diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index cfd59bf..50004b1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -48,7 +48,7 @@ jobs: - name: Install Zig uses: mlugg/setup-zig@v2 - name: Lint - run: zig fmt --check . + run: zig fmt --check . --exclude libs/ build-examples: needs: ["validation"] @@ -58,7 +58,7 @@ jobs: os: # FIXME: Problem with x11 in CI (latest ubuntu). But it works on linux #- linux-large - - macos-13-large + - macos-15-large - windows-large runs-on: ${{matrix.os}} diff --git a/README.md b/README.md index 383e8a7..20fdda7 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ Minimal is `0.15.1`. But you know try your version and believe. ## Bgfx version -- [BX](https://github.com/bkaradzic/bx//compare/1dc8c4827087c5a6cde221b0978baa15533348fd...master) +- [BX](https://github.com/bkaradzic/bx//compare/5dc415ee2e9935089b21186518436681c2d03b47...master) - [BImg](https://github.com/bkaradzic/bimg/compare/bf10ffbb3df1f9f12ad7a9105e5e96e11a9c5a0c...master) -- [BGFX](https://github.com/bkaradzic/bgfx/compare/ee2072d02f59ffbd89ef79026474a5e5fa17f206...master) +- [BGFX](https://github.com/bkaradzic/bgfx/compare/8a60697cfdfe6181b87ea0c49dff58e43448f712...master) ## Getting started diff --git a/build.zig b/build.zig index c9b191a..d38e453 100644 --- a/build.zig +++ b/build.zig @@ -1,7 +1,6 @@ const std = @import("std"); -const zbgfx = @import("src/zbgfx.zig"); -pub const build_shader = zbgfx.build; +pub const build_step = @import("src/build_step.zig"); pub fn build(b: *std.Build) !void { const target = b.standardTargetOptions(.{}); @@ -207,9 +206,31 @@ pub fn build(b: *std.Build) !void { }); } - const zbgfx_module = b.addModule("zbgfx", .{ - .root_source_file = b.path("src/zbgfx.zig"), - }); + const zbgfx_module = b.addModule( + "zbgfx", + .{ + .root_source_file = b.path("src/zbgfx.zig"), + .imports = &.{ + .{ + .name = "bgfx", + .module = b.createModule(.{ .root_source_file = b.path("libs/bgfx/bindings/zig/bgfx.zig") }), + }, + + // .{ + // .name = "embed_bgfx_shader_sh", + // .module = b.createModule(.{ .root_source_file = b.path("libs/bgfx/src/bgfx_shader.sh") }), + // }, + // .{ + // .name = "embed_bgfx_compute_sh", + // .module = b.createModule(.{ .root_source_file = b.path("libs/bgfx/src/bgfx_compute.sh") }), + // }, + // .{ + // .name = "embed_shaderlib_sh", + // .module = b.createModule(.{ .root_source_file = b.path("libs/bgfx/examples/common/shaderlib.sh") }), + // }, + }, + }, + ); _ = zbgfx_module; // autofix // @@ -274,7 +295,7 @@ pub fn build(b: *std.Build) !void { // Imgui .bin.h shader embeding step. // const shader_includes = b.path("shaders"); - const fs_imgui_image_bin_h = try zbgfx.build.compileBasicBinH( + const fs_imgui_image_bin_h = try build_step.compileBasicBinH( b, target, shaderc, @@ -291,7 +312,7 @@ pub fn build(b: *std.Build) !void { ); // - const fs_ocornut_imgui_bin_h = try zbgfx.build.compileBasicBinH( + const fs_ocornut_imgui_bin_h = try build_step.compileBasicBinH( b, target, shaderc, @@ -307,7 +328,7 @@ pub fn build(b: *std.Build) !void { }, ); - const vs_imgui_image_bin_h = try zbgfx.build.compileBasicBinH( + const vs_imgui_image_bin_h = try build_step.compileBasicBinH( b, target, shaderc, @@ -323,7 +344,7 @@ pub fn build(b: *std.Build) !void { }, ); - const vs_ocornut_imgui_bin_h = try zbgfx.build.compileBasicBinH( + const vs_ocornut_imgui_bin_h = try build_step.compileBasicBinH( b, target, shaderc, @@ -595,8 +616,6 @@ fn bxInclude(b: *std.Build, step: *std.Build.Step.Compile, target: std.Build.Res // FIXME: problem with compile with zig. if (target.result.os.tag == .windows) { step.root_module.addCMacro("BX_CONFIG_EXCEPTION_HANDLING_USE_WINDOWS_SEH", "0"); - } else if (target.result.os.tag == .linux) { - step.root_module.addCMacro("BX_CONFIG_EXCEPTION_HANDLING_USE_POSIX_SIGNALS", "0"); } step.root_module.addCMacro("BX_CONFIG_DEBUG", if (optimize == .Debug) "1" else "0"); @@ -839,6 +858,23 @@ const spirv_opt_files = .{ spirv_opt_path ++ "source/opcode.cpp", spirv_opt_path ++ "source/operand.cpp", spirv_opt_path ++ "source/to_string.cpp", + spirv_opt_path ++ "source/software_version.cpp", + spirv_opt_path ++ "source/spirv_endian.cpp", + spirv_opt_path ++ "source/spirv_optimizer_options.cpp", + spirv_opt_path ++ "source/spirv_reducer_options.cpp", + spirv_opt_path ++ "source/spirv_target_env.cpp", + spirv_opt_path ++ "source/spirv_validator_options.cpp", + spirv_opt_path ++ "source/table.cpp", + spirv_opt_path ++ "source/table2.cpp", + spirv_opt_path ++ "source/text.cpp", + spirv_opt_path ++ "source/text_handler.cpp", + spirv_opt_path ++ "source/parsed_operand.cpp", + spirv_opt_path ++ "source/print.cpp", + + spirv_opt_path ++ "source/util/bit_vector.cpp", + spirv_opt_path ++ "source/util/parse_number.cpp", + spirv_opt_path ++ "source/util/string_utils.cpp", + spirv_opt_path ++ "source/opt/graph.cpp", spirv_opt_path ++ "source/opt/aggressive_dead_code_elim_pass.cpp", spirv_opt_path ++ "source/opt/amd_ext_to_khr.cpp", @@ -963,8 +999,7 @@ const spirv_opt_files = .{ spirv_opt_path ++ "source/opt/split_combined_image_sampler_pass.cpp", spirv_opt_path ++ "source/opt/resolve_binding_conflicts_pass.cpp", spirv_opt_path ++ "source/opt/canonicalize_ids_pass.cpp", - spirv_opt_path ++ "source/parsed_operand.cpp", - spirv_opt_path ++ "source/print.cpp", + spirv_opt_path ++ "source/reduce/change_operand_reduction_opportunity.cpp", spirv_opt_path ++ "source/reduce/change_operand_to_undef_reduction_opportunity.cpp", spirv_opt_path ++ "source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp", @@ -996,19 +1031,7 @@ const spirv_opt_files = .{ spirv_opt_path ++ "source/reduce/structured_construct_to_block_reduction_opportunity_finder.cpp", spirv_opt_path ++ "source/reduce/structured_loop_to_selection_reduction_opportunity.cpp", spirv_opt_path ++ "source/reduce/structured_loop_to_selection_reduction_opportunity_finder.cpp", - spirv_opt_path ++ "source/software_version.cpp", - spirv_opt_path ++ "source/spirv_endian.cpp", - spirv_opt_path ++ "source/spirv_optimizer_options.cpp", - spirv_opt_path ++ "source/spirv_reducer_options.cpp", - spirv_opt_path ++ "source/spirv_target_env.cpp", - spirv_opt_path ++ "source/spirv_validator_options.cpp", - spirv_opt_path ++ "source/table.cpp", - spirv_opt_path ++ "source/table2.cpp", - spirv_opt_path ++ "source/text.cpp", - spirv_opt_path ++ "source/text_handler.cpp", - spirv_opt_path ++ "source/util/bit_vector.cpp", - spirv_opt_path ++ "source/util/parse_number.cpp", - spirv_opt_path ++ "source/util/string_utils.cpp", + spirv_opt_path ++ "source/val/basic_block.cpp", spirv_opt_path ++ "source/val/construct.cpp", spirv_opt_path ++ "source/val/function.cpp", @@ -1057,4 +1080,5 @@ const spirv_opt_files = .{ spirv_opt_path ++ "source/val/validate_tensor.cpp", spirv_opt_path ++ "source/val/validate_invalid_type.cpp", spirv_opt_path ++ "source/val/validate_graph.cpp", + spirv_opt_path ++ "source/val/validate_logical_pointers.cpp", }; diff --git a/examples/00-minimal/build_sample.zig b/examples/00-minimal/build_sample.zig index 1ef2c65..429671a 100644 --- a/examples/00-minimal/build_sample.zig +++ b/examples/00-minimal/build_sample.zig @@ -46,7 +46,7 @@ pub fn build( const combine_bin_zig = zbgfx_dep.artifact("combine_bin_zig"); const shader_includes = zbgfx_dep.path("shaders"); - const fs_cubes_zig = try zbgfx.build_shader.compileBasicBinZig( + const fs_cubes_zig = try zbgfx.build_step.compileBasicBinZig( b, target, shaderc, @@ -62,7 +62,7 @@ pub fn build( .includes = &.{shader_includes}, }, ); - const vs_cubes_zig = try zbgfx.build_shader.compileBasicBinZig( + const vs_cubes_zig = try zbgfx.build_step.compileBasicBinZig( b, target, shaderc, diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.EXT.h b/libs/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.EXT.h index 748d9c8..a5c2425 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.EXT.h +++ b/libs/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.EXT.h @@ -42,5 +42,7 @@ static const char* const E_SPV_EXT_shader_image_int64 = "SPV_EXT_shader_image_in static const char* const E_SPV_EXT_shader_tile_image = "SPV_EXT_shader_tile_image"; static const char* const E_SPV_EXT_mesh_shader = "SPV_EXT_mesh_shader"; static const char* const E_SPV_EXT_float8 = "SPV_EXT_float8"; +static const char* const E_SPV_EXT_shader_64bit_indexing = "SPV_EXT_shader_64bit_indexing"; +static const char* const E_SPV_EXT_shader_invocation_reorder = "SPV_EXT_shader_invocation_reorder"; #endif // #ifndef GLSLextEXT_H diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp b/libs/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp index eec6859..c42c139 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp +++ b/libs/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp @@ -127,15 +127,16 @@ class TGlslangToSpvTraverser : public glslang::TIntermTraverser { glslang::SpvOptions& options); virtual ~TGlslangToSpvTraverser() { } - bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*); - bool visitBinary(glslang::TVisit, glslang::TIntermBinary*); - void visitConstantUnion(glslang::TIntermConstantUnion*); - bool visitSelection(glslang::TVisit, glslang::TIntermSelection*); - bool visitSwitch(glslang::TVisit, glslang::TIntermSwitch*); - void visitSymbol(glslang::TIntermSymbol* symbol); - bool visitUnary(glslang::TVisit, glslang::TIntermUnary*); - bool visitLoop(glslang::TVisit, glslang::TIntermLoop*); - bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*); + bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*) override; + bool visitBinary(glslang::TVisit, glslang::TIntermBinary*) override; + void visitConstantUnion(glslang::TIntermConstantUnion*) override; + bool visitSelection(glslang::TVisit, glslang::TIntermSelection*) override; + bool visitSwitch(glslang::TVisit, glslang::TIntermSwitch*) override; + void visitSymbol(glslang::TIntermSymbol* symbol) override; + bool visitUnary(glslang::TVisit, glslang::TIntermUnary*) override; + bool visitLoop(glslang::TVisit, glslang::TIntermLoop*) override; + bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*) override; + bool visitVariableDecl(glslang::TVisit, glslang::TIntermVariableDecl*) override; void finishSpv(bool compileOnly); void dumpSpv(std::vector& out); @@ -194,7 +195,6 @@ class TGlslangToSpvTraverser : public glslang::TIntermTraverser { void makeGlobalInitializers(const glslang::TIntermSequence&); void collectRayTracingLinkerObjects(); void visitFunctions(const glslang::TIntermSequence&); - void handleFunctionEntry(const glslang::TIntermAggregate* node); void translateArguments(const glslang::TIntermAggregate& node, std::vector& arguments, spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags); void translateArguments(glslang::TIntermUnary& node, std::vector& arguments); @@ -390,6 +390,7 @@ spv::Decoration TranslateBlockDecoration(const glslang::TStorageQualifier storag case glslang::EvqCallableData: return spv::Decoration::Block; case glslang::EvqCallableDataIn: return spv::Decoration::Block; case glslang::EvqHitObjectAttrNV: return spv::Decoration::Block; + case glslang::EvqHitObjectAttrEXT: return spv::Decoration::Block; default: assert(0); break; @@ -465,6 +466,7 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T case glslang::EvqCallableData: case glslang::EvqCallableDataIn: case glslang::EvqHitObjectAttrNV: + case glslang::EvqHitObjectAttrEXT: return spv::Decoration::Max; default: assert(0); @@ -1323,7 +1325,8 @@ spv::LoopControlMask TGlslangToSpvTraverser::TranslateLoopControl(const glslang: // Translate glslang type to SPIR-V storage class. spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type) { - if (type.getBasicType() == glslang::EbtRayQuery || type.getBasicType() == glslang::EbtHitObjectNV) + if (type.getBasicType() == glslang::EbtRayQuery || type.getBasicType() == glslang::EbtHitObjectNV + || type.getBasicType() == glslang::EbtHitObjectEXT) return spv::StorageClass::Private; if (type.getQualifier().isSpirvByReference()) { if (type.getQualifier().isParamInput() || type.getQualifier().isParamOutput()) @@ -1389,6 +1392,7 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T case glslang::EvqCallableDataIn: return spv::StorageClass::IncomingCallableDataKHR; case glslang::EvqtaskPayloadSharedEXT : return spv::StorageClass::TaskPayloadWorkgroupEXT; case glslang::EvqHitObjectAttrNV: return spv::StorageClass::HitObjectAttributeNV; + case glslang::EvqHitObjectAttrEXT: return spv::StorageClass::HitObjectAttributeEXT; case glslang::EvqSpirvStorageClass: return static_cast(type.getQualifier().spirvStorageClass); default: assert(0); @@ -1713,6 +1717,13 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, builder.addExecutionMode(shaderEntry, spv::ExecutionMode::RequireFullQuadsKHR); } + if (glslangIntermediate->usingShader64BitIndexing()) + { + builder.addCapability(spv::Capability::Shader64BitIndexingEXT); + builder.addExtension(spv::E_SPV_EXT_shader_64bit_indexing); + builder.addExecutionMode(shaderEntry, spv::ExecutionMode::Shader64BitIndexingEXT); + } + spv::ExecutionMode mode; switch (glslangIntermediate->getStage()) { case EShLangVertex: @@ -2373,10 +2384,20 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T coherentFlags.nonUniform = 0; // normal case for indexing array or structure or block - builder.accessChainPush(builder.makeIntConstant(spvIndex), - coherentFlags, - node->getLeft()->getType().getBufferReferenceAlignment()); + if ((node->getRight()->getType().getBasicType() == glslang::EbtUint && glslangIntermediate->usingPromoteUint32Indices()) || + node->getRight()->getType().contains64BitInt()) { + int64_t idx = node->getRight()->getType().contains64BitInt() ? + node->getRight()->getAsConstantUnion()->getConstArray()[0].getI64Const() : + node->getRight()->getAsConstantUnion()->getConstArray()[0].getUConst(); + builder.accessChainPush(builder.makeInt64Constant(idx), + coherentFlags, + node->getLeft()->getType().getBufferReferenceAlignment()); + } else { + builder.accessChainPush(builder.makeIntConstant(spvIndex), + coherentFlags, + node->getLeft()->getType().getBufferReferenceAlignment()); + } // Add capabilities here for accessing PointSize and clip/cull distance. // We have deferred generation of associated capabilities until now. if (node->getLeft()->getType().isStruct() && ! node->getLeft()->getType().isArray()) @@ -2429,9 +2450,15 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T index, convertGlslangToSpvType(node->getLeft()->getType()), coherent_flags, glslangIntermediate->getBaseAlignmentScalar(node->getLeft()->getType(), dummySize)); - } else + } else { + if (glslangIntermediate->usingPromoteUint32Indices() && + node->getRight()->getType().getBasicType() == glslang::EbtUint) { + index = createIntWidthConversion(index, 0, builder.makeIntegerType(64, true), glslang::EbtInt64, node->getRight()->getType().getBasicType()); + } + builder.accessChainPush(index, coherent_flags, node->getLeft()->getType().getBufferReferenceAlignment()); + } } return false; case glslang::EOpVectorSwizzle: @@ -2658,6 +2685,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI // So, this has to be block.lastMember.length(). // SPV wants "block" and member number as the operands, go get them. + uint32_t bits = node->getType().contains64BitInt() ? 64 : 32; + spv::Id length; if (node->getOperand()->getType().isCoopMat()) { spv::Id typeId = convertGlslangToSpvType(node->getOperand()->getType()); @@ -2677,7 +2706,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI block->traverse(this); unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion() ->getConstArray()[0].getUConst(); - length = builder.createArrayLength(builder.accessChainGetLValue(), member); + length = builder.createArrayLength(builder.accessChainGetLValue(), member, bits); } // GLSL semantics say the result of .length() is an int, while SPIR-V says @@ -2685,9 +2714,9 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI // AST expectation of a signed result. if (glslangIntermediate->getSource() == glslang::EShSourceGlsl) { if (builder.isInSpecConstCodeGenMode()) { - length = builder.createBinOp(spv::Op::OpIAdd, builder.makeIntType(32), length, builder.makeIntConstant(0)); + length = builder.createBinOp(spv::Op::OpIAdd, builder.makeIntType(bits), length, builder.makeIntConstant(0)); } else { - length = builder.createUnaryOp(spv::Op::OpBitcast, builder.makeIntType(32), length); + length = builder.createUnaryOp(spv::Op::OpBitcast, builder.makeIntType(bits), length); } } @@ -2756,6 +2785,28 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI case glslang::EOpHitObjectGetSphereRadiusNV: case glslang::EOpHitObjectIsSphereHitNV: case glslang::EOpHitObjectIsLSSHitNV: + case glslang::EOpReorderThreadEXT: + case glslang::EOpHitObjectGetCurrentTimeEXT: + case glslang::EOpHitObjectGetHitKindEXT: + case glslang::EOpHitObjectGetPrimitiveIndexEXT: + case glslang::EOpHitObjectGetGeometryIndexEXT: + case glslang::EOpHitObjectGetInstanceIdEXT: + case glslang::EOpHitObjectGetInstanceCustomIndexEXT: + case glslang::EOpHitObjectGetObjectRayDirectionEXT: + case glslang::EOpHitObjectGetObjectRayOriginEXT: + case glslang::EOpHitObjectGetWorldRayDirectionEXT: + case glslang::EOpHitObjectGetWorldRayOriginEXT: + case glslang::EOpHitObjectGetWorldToObjectEXT: + case glslang::EOpHitObjectGetObjectToWorldEXT: + case glslang::EOpHitObjectGetRayTMaxEXT: + case glslang::EOpHitObjectGetRayTMinEXT: + case glslang::EOpHitObjectGetRayFlagsEXT: + case glslang::EOpHitObjectIsEmptyEXT: + case glslang::EOpHitObjectIsHitEXT: + case glslang::EOpHitObjectIsMissEXT: + case glslang::EOpHitObjectRecordEmptyEXT: + case glslang::EOpHitObjectGetShaderBindingTableRecordIndexEXT: + case glslang::EOpHitObjectGetShaderRecordBufferHandleEXT: return true; default: return false; @@ -2927,9 +2978,15 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI case glslang::EOpReorderThreadNV: builder.createNoResultOp(spv::Op::OpReorderThreadWithHitObjectNV, operand); return false; + case glslang::EOpReorderThreadEXT: + builder.createNoResultOp(spv::Op::OpReorderThreadWithHitObjectEXT, operand); + return false; case glslang::EOpHitObjectRecordEmptyNV: builder.createNoResultOp(spv::Op::OpHitObjectRecordEmptyNV, operand); return false; + case glslang::EOpHitObjectRecordEmptyEXT: + builder.createNoResultOp(spv::Op::OpHitObjectRecordEmptyEXT, operand); + return false; case glslang::EOpCreateTensorLayoutNV: result = builder.createOp(spv::Op::OpCreateTensorLayoutNV, resultType(), std::vector{}); @@ -3104,7 +3161,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt builder.enterFunction(shaderEntry); currentFunction = shaderEntry; } else { - handleFunctionEntry(node); + // SPIR-V functions should already be in the functionMap from the prepass + // that called makeFunctions(). + currentFunction = functionMap[node->getName().c_str()]; + spv::Block* functionBlock = currentFunction->getEntryBlock(); + builder.setBuildPoint(functionBlock); + builder.enterFunction(currentFunction); } if (options.generateDebugInfo && !options.emitNonSemanticShaderDebugInfo) { const auto& loc = node->getLoc(); @@ -3113,6 +3175,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt currentFunction->setDebugLineInfo(sourceFileId, loc.line, loc.column); } } else { + // Here we have finished visiting the function (post-visit). Finalize it. if (options.generateDebugInfo) { if (glslangIntermediate->getSource() == glslang::EShSourceGlsl && node->getSequence().size() > 1) { auto endLoc = node->getSequence()[1]->getAsAggregate()->getEndLoc(); @@ -3123,6 +3186,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt entryPointTerminated = true; builder.leaveFunction(); inEntryPoint = false; + currentFunction = nullptr; } return true; @@ -3576,6 +3640,46 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt builder.addCapability(spv::Capability::RayTracingLinearSweptSpheresGeometryNV); break; + case glslang::EOpHitObjectTraceRayEXT: + case glslang::EOpHitObjectTraceRayMotionEXT: + case glslang::EOpHitObjectGetAttributesEXT: + case glslang::EOpHitObjectExecuteShaderEXT: + case glslang::EOpHitObjectRecordEmptyEXT: + case glslang::EOpHitObjectRecordMissEXT: + case glslang::EOpHitObjectRecordMissMotionEXT: + case glslang::EOpReorderThreadEXT: + case glslang::EOpHitObjectSetShaderBindingTableRecordIndexEXT: + case glslang::EOpHitObjectReorderExecuteEXT: + case glslang::EOpHitObjectTraceReorderExecuteEXT: + case glslang::EOpHitObjectTraceMotionReorderExecuteEXT: + case glslang::EOpHitObjectRecordFromQueryEXT: + case glslang::EOpHitObjectGetIntersectionTriangleVertexPositionsEXT: + noReturnValue = true; + [[fallthrough]]; + case glslang::EOpHitObjectIsEmptyEXT: + case glslang::EOpHitObjectIsMissEXT: + case glslang::EOpHitObjectIsHitEXT: + case glslang::EOpHitObjectGetRayTMinEXT: + case glslang::EOpHitObjectGetRayTMaxEXT: + case glslang::EOpHitObjectGetRayFlagsEXT: + case glslang::EOpHitObjectGetObjectRayOriginEXT: + case glslang::EOpHitObjectGetObjectRayDirectionEXT: + case glslang::EOpHitObjectGetWorldRayOriginEXT: + case glslang::EOpHitObjectGetWorldRayDirectionEXT: + case glslang::EOpHitObjectGetObjectToWorldEXT: + case glslang::EOpHitObjectGetWorldToObjectEXT: + case glslang::EOpHitObjectGetInstanceCustomIndexEXT: + case glslang::EOpHitObjectGetInstanceIdEXT: + case glslang::EOpHitObjectGetGeometryIndexEXT: + case glslang::EOpHitObjectGetPrimitiveIndexEXT: + case glslang::EOpHitObjectGetHitKindEXT: + case glslang::EOpHitObjectGetCurrentTimeEXT: + case glslang::EOpHitObjectGetShaderBindingTableRecordIndexEXT: + case glslang::EOpHitObjectGetShaderRecordBufferHandleEXT: + builder.addExtension(spv::E_SPV_EXT_shader_invocation_reorder); + builder.addCapability(spv::Capability::ShaderInvocationReorderEXT); + break; + case glslang::EOpRayQueryGetIntersectionTriangleVertexPositionsEXT: builder.addExtension(spv::E_SPV_KHR_ray_tracing_position_fetch); builder.addCapability(spv::Capability::RayQueryPositionFetchKHR); @@ -3683,6 +3787,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt + case glslang::EOpHitObjectRecordFromQueryEXT: + case glslang::EOpHitObjectGetIntersectionTriangleVertexPositionsEXT: + if (arg == 0 || arg == 1) + lvalue = true; + break; + case glslang::EOpHitObjectRecordHitNV: case glslang::EOpHitObjectRecordHitMotionNV: case glslang::EOpHitObjectRecordHitWithIndexNV: @@ -3694,6 +3804,16 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpHitObjectRecordMissMotionNV: case glslang::EOpHitObjectGetAttributesNV: case glslang::EOpHitObjectGetClusterIdNV: + case glslang::EOpHitObjectTraceRayEXT: + case glslang::EOpHitObjectTraceRayMotionEXT: + case glslang::EOpHitObjectExecuteShaderEXT: + case glslang::EOpHitObjectRecordMissEXT: + case glslang::EOpHitObjectRecordMissMotionEXT: + case glslang::EOpHitObjectGetAttributesEXT: + case glslang::EOpHitObjectSetShaderBindingTableRecordIndexEXT: + case glslang::EOpHitObjectReorderExecuteEXT: + case glslang::EOpHitObjectTraceReorderExecuteEXT: + case glslang::EOpHitObjectTraceMotionReorderExecuteEXT: if (arg == 0) lvalue = true; break; @@ -3837,6 +3957,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt lvalue = true; break; case glslang::EOpReorderThreadNV: + case glslang::EOpReorderThreadEXT: //Three variants of reorderThreadNV, two of them use hitObjectNV if (arg == 0 && glslangOperands.size() != 2) lvalue = true; @@ -3973,22 +4094,33 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt )) { bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst(); operands.push_back(builder.makeIntConstant(cond ? 1 : 0)); - } else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) || - (arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) || - (arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR) || - (arg == 1 && glslangOp == glslang::EOpHitObjectExecuteShaderNV) || - (arg == 11 && glslangOp == glslang::EOpHitObjectTraceRayNV) || - (arg == 12 && glslangOp == glslang::EOpHitObjectTraceRayMotionNV)) { - const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0; - const int location = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getUConst(); - auto itNode = locationToSymbol[set].find(location); - visitSymbol(itNode->second); - spv::Id symId = getSymbolId(itNode->second); - operands.push_back(symId); + } else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) || + (arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) || + (arg == 1 && glslangOp == glslang::EOpExecuteCallableKHR) || + (arg == 1 && glslangOp == glslang::EOpHitObjectExecuteShaderNV) || + (arg == 1 && glslangOp == glslang::EOpHitObjectExecuteShaderEXT) || + (arg == 11 && glslangOp == glslang::EOpHitObjectTraceRayNV) || + (arg == 11 && glslangOp == glslang::EOpHitObjectTraceRayEXT) || + (arg == 12 && glslangOp == glslang::EOpHitObjectTraceRayMotionNV) || + (arg == 12 && glslangOp == glslang::EOpHitObjectTraceRayMotionEXT) || + (arg == 12 && glslangOp == glslang::EOpHitObjectTraceMotionReorderExecuteEXT && glslangOperands.size() == 13) || + (arg == 14 && glslangOp == glslang::EOpHitObjectTraceMotionReorderExecuteEXT && glslangOperands.size() == 15) || + (arg == 11 && glslangOp == glslang::EOpHitObjectTraceReorderExecuteEXT && glslangOperands.size() == 12) || + (arg == 13 && glslangOp == glslang::EOpHitObjectTraceReorderExecuteEXT && glslangOperands.size() == 14) || + (arg == 1 && glslangOp == glslang::EOpHitObjectReorderExecuteEXT && glslangOperands.size() == 2) || + (arg == 3 && glslangOp == glslang::EOpHitObjectReorderExecuteEXT && glslangOperands.size() == 4)) { + const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0; + const int location = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getUConst(); + auto itNode = locationToSymbol[set].find(location); + visitSymbol(itNode->second); + spv::Id symId = getSymbolId(itNode->second); + operands.push_back(symId); } else if ((arg == 12 && glslangOp == glslang::EOpHitObjectRecordHitNV) || (arg == 13 && glslangOp == glslang::EOpHitObjectRecordHitMotionNV) || (arg == 11 && glslangOp == glslang::EOpHitObjectRecordHitWithIndexNV) || (arg == 12 && glslangOp == glslang::EOpHitObjectRecordHitWithIndexMotionNV) || + (arg == 3 && glslangOp == glslang::EOpHitObjectRecordFromQueryEXT) || + (arg == 1 && glslangOp == glslang::EOpHitObjectGetAttributesEXT) || (arg == 1 && glslangOp == glslang::EOpHitObjectGetAttributesNV)) { const int location = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getUConst(); const int set = 2; @@ -4198,7 +4330,19 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // store the result to the pointer (out param 'm') builder.createStore(result, operands[1]); result = 0; + } else if (node->getOp() == glslang::EOpHitObjectGetIntersectionTriangleVertexPositionsEXT) { + std::vector idImmOps; + + idImmOps.push_back(spv::IdImmediate(true, operands[0])); // hitObject + + spv::Op spvOp = spv::Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT; + spv::Id typeId = builder.makeArrayType(builder.makeVectorType(builder.makeFloatType(32), 3), + builder.makeUintConstant(3), 0); + spv::Id result = builder.createOp(spvOp, typeId, idImmOps); + // store the result to the pointer (out param 'm') + builder.createStore(result, operands[1]); + result = 0; } else if (node->getOp() == glslang::EOpCooperativeMatrixMulAdd) { auto matrixOperands = spv::CooperativeMatrixOperandsMask::MaskNone; @@ -4800,7 +4944,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn builder.setBuildPoint(&test); node->getTest()->traverse(this); - spv::Id condition = accessChainLoad(node->getTest()->getType()); + spv::Id condition = accessChainLoad(node->getTestExpr()->getType()); builder.createConditionalBranch(condition, &blocks.body, &blocks.merge); builder.setBuildPoint(&blocks.body); @@ -4831,7 +4975,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn if (node->getTest()) { node->getTest()->traverse(this); spv::Id condition = - accessChainLoad(node->getTest()->getType()); + accessChainLoad(node->getTestExpr()->getType()); builder.createConditionalBranch(condition, &blocks.head, &blocks.merge); } else { // TODO: unless there was a break/return/discard instruction @@ -4914,6 +5058,18 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T return false; } +bool TGlslangToSpvTraverser::visitVariableDecl(glslang::TVisit visit, glslang::TIntermVariableDecl* node) +{ + if (visit == glslang::EvPreVisit) { + builder.setDebugSourceLocation(node->getDeclSymbol()->getLoc().line, node->getDeclSymbol()->getLoc().getFilename()); + // We touch the symbol once here to create the debug info. + getSymbolId(node->getDeclSymbol()); + } + + return true; +} + + spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* node, spv::Id forcedType) { // First, steer off constants, which are not SPIR-V variables, but @@ -4921,8 +5077,12 @@ spv::Id TGlslangToSpvTraverser::createSpvVariable(const glslang::TIntermSymbol* // This includes specialization constants. if (node->getQualifier().isConstant()) { spv::Id result = createSpvConstant(*node); - if (result != spv::NoResult) + if (result != spv::NoResult) { + auto name = node->getAsSymbolNode()->getAccessName().c_str(); + auto typeId = convertGlslangToSpvType(node->getType()); + builder.createConstVariable(typeId, name, result, currentFunction == nullptr); return result; + } } // Now, handle actual variables @@ -5209,18 +5369,50 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty case glslang::EbtSampler: { const glslang::TSampler& sampler = type.getSampler(); + std::string debugName; + if (sampler.isPureSampler()) { - spvType = builder.makeSamplerType(); + if (options.emitNonSemanticShaderDebugInfo) { + if (glslangIntermediate->getSource() == glslang::EShSourceGlsl) { + debugName = sampler.getString(); + } + else { + debugName = "type.sampler"; + } + } + spvType = builder.makeSamplerType(debugName.c_str()); } else { // an image is present, make its type + if (options.emitNonSemanticShaderDebugInfo) { + if (glslangIntermediate->getSource() == glslang::EShSourceGlsl) { + debugName = sampler.removeCombined().getString(); + } + else { + switch (sampler.dim) { + case glslang::Esd1D: debugName = "type.1d.image"; break; + case glslang::Esd2D: debugName = "type.2d.image"; break; + case glslang::Esd3D: debugName = "type.3d.image"; break; + case glslang::EsdCube: debugName = "type.cube.image"; break; + default: debugName = "type.image"; break; + } + } + } spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), sampler.isShadow(), sampler.isArrayed(), sampler.isMultiSample(), - sampler.isImageClass() ? 2 : 1, TranslateImageFormat(type)); + sampler.isImageClass() ? 2 : 1, TranslateImageFormat(type), debugName.c_str()); if (sampler.isCombined() && (!sampler.isBuffer() || glslangIntermediate->getSpv().spv < glslang::EShTargetSpv_1_6)) { // Already has both image and sampler, make the combined type. Only combine sampler to // buffer if before SPIR-V 1.6. - spvType = builder.makeSampledImageType(spvType); + if (options.emitNonSemanticShaderDebugInfo) { + if (glslangIntermediate->getSource() == glslang::EShSourceGlsl) { + debugName = sampler.getString(); + } + else { + debugName = "type.sampled.image"; + } + } + spvType = builder.makeSampledImageType(spvType, debugName.c_str()); } } } @@ -5254,6 +5446,13 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty spvType = builder.makeHitObjectNVType(); } break; + + case glslang::EbtHitObjectEXT: { + builder.addExtension(spv::E_SPV_EXT_shader_invocation_reorder); + builder.addCapability(spv::Capability::ShaderInvocationReorderEXT); + spvType = builder.makeHitObjectEXTType(); + } + break; case glslang::EbtSpirvType: { // GL_EXT_spirv_intrinsics const auto& spirvType = type.getSpirvType(); @@ -5654,7 +5853,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy // Per the GLSL spec, bool variables inside of a uniform or buffer block are generated as uint. // But for debug info, we want to represent them as bool because that is the original type in - // the source code. The bool type can be nested within a vector or a multidimensional array, + // the source code. The bool type can be nested within a vector or a multidimensional array, // so we must construct the chain of types up from the scalar bool. if (glslangIntermediate->getSource() == glslang::EShSourceGlsl && explicitLayout != glslang::ElpNone && glslangMember.type->getBasicType() == glslang::EbtBool) { @@ -5830,6 +6029,8 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, if (qualifier.hasHitObjectShaderRecordNV()) builder.addDecoration(spvType, spv::Decoration::HitObjectShaderRecordBufferNV); + if (qualifier.hasHitObjectShaderRecordEXT()) + builder.addDecoration(spvType, spv::Decoration::HitObjectShaderRecordBufferEXT); } // Turn the expression forming the array size into an id. @@ -6396,6 +6597,7 @@ void TGlslangToSpvTraverser::collectRayTracingLinkerObjects() break; case glslang::EvqHitObjectAttrNV: + case glslang::EvqHitObjectAttrEXT: set = 2; break; @@ -6418,16 +6620,6 @@ void TGlslangToSpvTraverser::visitFunctions(const glslang::TIntermSequence& glsl } } -void TGlslangToSpvTraverser::handleFunctionEntry(const glslang::TIntermAggregate* node) -{ - // SPIR-V functions should already be in the functionMap from the prepass - // that called makeFunctions(). - currentFunction = functionMap[node->getName().c_str()]; - spv::Block* functionBlock = currentFunction->getEntryBlock(); - builder.setBuildPoint(functionBlock); - builder.enterFunction(currentFunction); -} - void TGlslangToSpvTraverser::translateArguments(const glslang::TIntermAggregate& node, std::vector& arguments, spv::Builder::AccessChain::CoherentFlags &lvalueCoherentFlags) { @@ -8075,74 +8267,150 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe unaryOp = spv::Op::OpHitObjectIsEmptyNV; break; + case glslang::EOpHitObjectIsEmptyEXT: + unaryOp = spv::Op::OpHitObjectIsEmptyEXT; + break; + case glslang::EOpHitObjectIsMissNV: unaryOp = spv::Op::OpHitObjectIsMissNV; break; + case glslang::EOpHitObjectIsMissEXT: + unaryOp = spv::Op::OpHitObjectIsMissEXT; + break; + case glslang::EOpHitObjectIsHitNV: unaryOp = spv::Op::OpHitObjectIsHitNV; break; + case glslang::EOpHitObjectIsHitEXT: + unaryOp = spv::Op::OpHitObjectIsHitEXT; + break; + case glslang::EOpHitObjectGetObjectRayOriginNV: unaryOp = spv::Op::OpHitObjectGetObjectRayOriginNV; break; + case glslang::EOpHitObjectGetObjectRayOriginEXT: + unaryOp = spv::Op::OpHitObjectGetObjectRayOriginEXT; + break; + case glslang::EOpHitObjectGetObjectRayDirectionNV: unaryOp = spv::Op::OpHitObjectGetObjectRayDirectionNV; break; + case glslang::EOpHitObjectGetObjectRayDirectionEXT: + unaryOp = spv::Op::OpHitObjectGetObjectRayDirectionEXT; + break; + case glslang::EOpHitObjectGetWorldRayOriginNV: unaryOp = spv::Op::OpHitObjectGetWorldRayOriginNV; break; + case glslang::EOpHitObjectGetWorldRayOriginEXT: + unaryOp = spv::Op::OpHitObjectGetWorldRayOriginEXT; + break; + case glslang::EOpHitObjectGetWorldRayDirectionNV: unaryOp = spv::Op::OpHitObjectGetWorldRayDirectionNV; break; + case glslang::EOpHitObjectGetWorldRayDirectionEXT: + unaryOp = spv::Op::OpHitObjectGetWorldRayDirectionEXT; + break; + case glslang::EOpHitObjectGetObjectToWorldNV: unaryOp = spv::Op::OpHitObjectGetObjectToWorldNV; break; + case glslang::EOpHitObjectGetObjectToWorldEXT: + unaryOp = spv::Op::OpHitObjectGetObjectToWorldEXT; + break; + case glslang::EOpHitObjectGetWorldToObjectNV: unaryOp = spv::Op::OpHitObjectGetWorldToObjectNV; break; + case glslang::EOpHitObjectGetWorldToObjectEXT: + unaryOp = spv::Op::OpHitObjectGetWorldToObjectEXT; + break; + case glslang::EOpHitObjectGetRayTMinNV: unaryOp = spv::Op::OpHitObjectGetRayTMinNV; break; + case glslang::EOpHitObjectGetRayTMinEXT: + unaryOp = spv::Op::OpHitObjectGetRayTMinEXT; + break; + case glslang::EOpHitObjectGetRayTMaxNV: unaryOp = spv::Op::OpHitObjectGetRayTMaxNV; break; + case glslang::EOpHitObjectGetRayTMaxEXT: + unaryOp = spv::Op::OpHitObjectGetRayTMaxEXT; + break; + + case glslang::EOpHitObjectGetRayFlagsEXT: + unaryOp = spv::Op::OpHitObjectGetRayFlagsEXT; + break; + case glslang::EOpHitObjectGetPrimitiveIndexNV: unaryOp = spv::Op::OpHitObjectGetPrimitiveIndexNV; break; + case glslang::EOpHitObjectGetPrimitiveIndexEXT: + unaryOp = spv::Op::OpHitObjectGetPrimitiveIndexEXT; + break; + case glslang::EOpHitObjectGetInstanceIdNV: unaryOp = spv::Op::OpHitObjectGetInstanceIdNV; break; + case glslang::EOpHitObjectGetInstanceIdEXT: + unaryOp = spv::Op::OpHitObjectGetInstanceIdEXT; + break; + case glslang::EOpHitObjectGetInstanceCustomIndexNV: unaryOp = spv::Op::OpHitObjectGetInstanceCustomIndexNV; break; + case glslang::EOpHitObjectGetInstanceCustomIndexEXT: + unaryOp = spv::Op::OpHitObjectGetInstanceCustomIndexEXT; + break; + case glslang::EOpHitObjectGetGeometryIndexNV: unaryOp = spv::Op::OpHitObjectGetGeometryIndexNV; break; + case glslang::EOpHitObjectGetGeometryIndexEXT: + unaryOp = spv::Op::OpHitObjectGetGeometryIndexEXT; + break; + case glslang::EOpHitObjectGetHitKindNV: unaryOp = spv::Op::OpHitObjectGetHitKindNV; break; + case glslang::EOpHitObjectGetHitKindEXT: + unaryOp = spv::Op::OpHitObjectGetHitKindEXT; + break; + case glslang::EOpHitObjectGetCurrentTimeNV: unaryOp = spv::Op::OpHitObjectGetCurrentTimeNV; break; + case glslang::EOpHitObjectGetCurrentTimeEXT: + unaryOp = spv::Op::OpHitObjectGetCurrentTimeEXT; + break; + case glslang::EOpHitObjectGetShaderBindingTableRecordIndexNV: unaryOp = spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV; break; + case glslang::EOpHitObjectGetShaderBindingTableRecordIndexEXT: + unaryOp = spv::Op::OpHitObjectGetShaderBindingTableRecordIndexEXT; + break; + case glslang::EOpHitObjectGetShaderRecordBufferHandleNV: unaryOp = spv::Op::OpHitObjectGetShaderRecordBufferHandleNV; break; @@ -8182,6 +8450,10 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe builder.addCapability(spv::Capability::RayTracingLinearSweptSpheresGeometryNV); break; + case glslang::EOpHitObjectGetShaderRecordBufferHandleEXT: + unaryOp = spv::Op::OpHitObjectGetShaderRecordBufferHandleEXT; + break; + case glslang::EOpFetchMicroTriangleVertexPositionNV: unaryOp = spv::Op::OpFetchMicroTriangleVertexPositionNV; break; @@ -9819,9 +10091,15 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: case glslang::EOpHitObjectTraceRayNV: builder.createNoResultOp(spv::Op::OpHitObjectTraceRayNV, operands); return 0; + case glslang::EOpHitObjectTraceRayEXT: + builder.createNoResultOp(spv::Op::OpHitObjectTraceRayEXT, operands); + return 0; case glslang::EOpHitObjectTraceRayMotionNV: builder.createNoResultOp(spv::Op::OpHitObjectTraceRayMotionNV, operands); return 0; + case glslang::EOpHitObjectTraceRayMotionEXT: + builder.createNoResultOp(spv::Op::OpHitObjectTraceRayMotionEXT, operands); + return 0; case glslang::EOpHitObjectRecordHitNV: builder.createNoResultOp(spv::Op::OpHitObjectRecordHitNV, operands); return 0; @@ -9837,20 +10115,37 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: case glslang::EOpHitObjectRecordMissNV: builder.createNoResultOp(spv::Op::OpHitObjectRecordMissNV, operands); return 0; + case glslang::EOpHitObjectRecordMissEXT: + builder.createNoResultOp(spv::Op::OpHitObjectRecordMissEXT, operands); + return 0; case glslang::EOpHitObjectRecordMissMotionNV: builder.createNoResultOp(spv::Op::OpHitObjectRecordMissMotionNV, operands); return 0; + case glslang::EOpHitObjectRecordMissMotionEXT: + builder.createNoResultOp(spv::Op::OpHitObjectRecordMissMotionEXT, operands); + return 0; case glslang::EOpHitObjectExecuteShaderNV: builder.createNoResultOp(spv::Op::OpHitObjectExecuteShaderNV, operands); return 0; + case glslang::EOpHitObjectExecuteShaderEXT: + builder.createNoResultOp(spv::Op::OpHitObjectExecuteShaderEXT, operands); + return 0; case glslang::EOpHitObjectIsEmptyNV: typeId = builder.makeBoolType(); opCode = spv::Op::OpHitObjectIsEmptyNV; break; + case glslang::EOpHitObjectIsEmptyEXT: + typeId = builder.makeBoolType(); + opCode = spv::Op::OpHitObjectIsEmptyEXT; + break; case glslang::EOpHitObjectIsMissNV: typeId = builder.makeBoolType(); opCode = spv::Op::OpHitObjectIsMissNV; break; + case glslang::EOpHitObjectIsMissEXT: + typeId = builder.makeBoolType(); + opCode = spv::Op::OpHitObjectIsMissEXT; + break; case glslang::EOpHitObjectIsHitNV: typeId = builder.makeBoolType(); opCode = spv::Op::OpHitObjectIsHitNV; @@ -9863,69 +10158,143 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: typeId = builder.makeBoolType(); opCode = spv::Op::OpHitObjectIsLSSHitNV; break; + case glslang::EOpHitObjectIsHitEXT: + typeId = builder.makeBoolType(); + opCode = spv::Op::OpHitObjectIsHitEXT; + break; case glslang::EOpHitObjectGetRayTMinNV: typeId = builder.makeFloatType(32); opCode = spv::Op::OpHitObjectGetRayTMinNV; break; + case glslang::EOpHitObjectGetRayTMinEXT: + typeId = builder.makeFloatType(32); + opCode = spv::Op::OpHitObjectGetRayTMinEXT; + break; case glslang::EOpHitObjectGetRayTMaxNV: typeId = builder.makeFloatType(32); opCode = spv::Op::OpHitObjectGetRayTMaxNV; break; + case glslang::EOpHitObjectGetRayTMaxEXT: + typeId = builder.makeFloatType(32); + opCode = spv::Op::OpHitObjectGetRayTMaxEXT; + break; + case glslang::EOpHitObjectGetRayFlagsEXT: + typeId = builder.makeIntegerType(32, 0); + opCode = spv::Op::OpHitObjectGetRayFlagsEXT; + break; case glslang::EOpHitObjectGetObjectRayOriginNV: typeId = builder.makeVectorType(builder.makeFloatType(32), 3); opCode = spv::Op::OpHitObjectGetObjectRayOriginNV; break; + case glslang::EOpHitObjectGetObjectRayOriginEXT: + typeId = builder.makeVectorType(builder.makeFloatType(32), 3); + opCode = spv::Op::OpHitObjectGetObjectRayOriginEXT; + break; case glslang::EOpHitObjectGetObjectRayDirectionNV: typeId = builder.makeVectorType(builder.makeFloatType(32), 3); opCode = spv::Op::OpHitObjectGetObjectRayDirectionNV; break; + case glslang::EOpHitObjectGetObjectRayDirectionEXT: + typeId = builder.makeVectorType(builder.makeFloatType(32), 3); + opCode = spv::Op::OpHitObjectGetObjectRayDirectionEXT; + break; case glslang::EOpHitObjectGetWorldRayOriginNV: typeId = builder.makeVectorType(builder.makeFloatType(32), 3); opCode = spv::Op::OpHitObjectGetWorldRayOriginNV; break; + case glslang::EOpHitObjectGetWorldRayOriginEXT: + typeId = builder.makeVectorType(builder.makeFloatType(32), 3); + opCode = spv::Op::OpHitObjectGetWorldRayOriginEXT; + break; case glslang::EOpHitObjectGetWorldRayDirectionNV: typeId = builder.makeVectorType(builder.makeFloatType(32), 3); opCode = spv::Op::OpHitObjectGetWorldRayDirectionNV; break; + case glslang::EOpHitObjectGetWorldRayDirectionEXT: + typeId = builder.makeVectorType(builder.makeFloatType(32), 3); + opCode = spv::Op::OpHitObjectGetWorldRayDirectionEXT; + break; case glslang::EOpHitObjectGetWorldToObjectNV: typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); opCode = spv::Op::OpHitObjectGetWorldToObjectNV; break; + case glslang::EOpHitObjectGetWorldToObjectEXT: + typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); + opCode = spv::Op::OpHitObjectGetWorldToObjectEXT; + break; case glslang::EOpHitObjectGetObjectToWorldNV: typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); opCode = spv::Op::OpHitObjectGetObjectToWorldNV; break; + case glslang::EOpHitObjectGetObjectToWorldEXT: + typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3); + opCode = spv::Op::OpHitObjectGetObjectToWorldEXT; + break; case glslang::EOpHitObjectGetInstanceCustomIndexNV: typeId = builder.makeIntegerType(32, 1); opCode = spv::Op::OpHitObjectGetInstanceCustomIndexNV; break; + case glslang::EOpHitObjectGetInstanceCustomIndexEXT: + typeId = builder.makeIntegerType(32, 1); + opCode = spv::Op::OpHitObjectGetInstanceCustomIndexEXT; + break; case glslang::EOpHitObjectGetInstanceIdNV: typeId = builder.makeIntegerType(32, 1); opCode = spv::Op::OpHitObjectGetInstanceIdNV; break; + case glslang::EOpHitObjectGetInstanceIdEXT: + typeId = builder.makeIntegerType(32, 1); + opCode = spv::Op::OpHitObjectGetInstanceIdEXT; + break; case glslang::EOpHitObjectGetGeometryIndexNV: typeId = builder.makeIntegerType(32, 1); opCode = spv::Op::OpHitObjectGetGeometryIndexNV; break; + case glslang::EOpHitObjectGetGeometryIndexEXT: + typeId = builder.makeIntegerType(32, 1); + opCode = spv::Op::OpHitObjectGetGeometryIndexEXT; + break; case glslang::EOpHitObjectGetPrimitiveIndexNV: typeId = builder.makeIntegerType(32, 1); opCode = spv::Op::OpHitObjectGetPrimitiveIndexNV; break; + case glslang::EOpHitObjectGetPrimitiveIndexEXT: + typeId = builder.makeIntegerType(32, 1); + opCode = spv::Op::OpHitObjectGetPrimitiveIndexEXT; + break; case glslang::EOpHitObjectGetHitKindNV: typeId = builder.makeIntegerType(32, 0); opCode = spv::Op::OpHitObjectGetHitKindNV; break; + case glslang::EOpHitObjectGetHitKindEXT: + typeId = builder.makeIntegerType(32, 0); + opCode = spv::Op::OpHitObjectGetHitKindEXT; + break; case glslang::EOpHitObjectGetCurrentTimeNV: typeId = builder.makeFloatType(32); opCode = spv::Op::OpHitObjectGetCurrentTimeNV; break; + case glslang::EOpHitObjectGetCurrentTimeEXT: + typeId = builder.makeFloatType(32); + opCode = spv::Op::OpHitObjectGetCurrentTimeEXT; + break; case glslang::EOpHitObjectGetShaderBindingTableRecordIndexNV: typeId = builder.makeIntegerType(32, 0); opCode = spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV; return 0; + case glslang::EOpHitObjectGetShaderBindingTableRecordIndexEXT: + typeId = builder.makeIntegerType(32, 0); + opCode = spv::Op::OpHitObjectGetShaderBindingTableRecordIndexEXT; + return 0; case glslang::EOpHitObjectGetAttributesNV: builder.createNoResultOp(spv::Op::OpHitObjectGetAttributesNV, operands); return 0; + case glslang::EOpHitObjectGetAttributesEXT: + builder.createNoResultOp(spv::Op::OpHitObjectGetAttributesEXT, operands); + return 0; + case glslang::EOpHitObjectRecordFromQueryEXT: + builder.createNoResultOp(spv::Op::OpHitObjectRecordFromQueryEXT, operands); + return 0; case glslang::EOpHitObjectGetShaderRecordBufferHandleNV: typeId = builder.makeVectorType(builder.makeUintType(32), 2); opCode = spv::Op::OpHitObjectGetShaderRecordBufferHandleNV; @@ -9934,6 +10303,13 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: typeId = builder.makeIntegerType(32, 1); opCode = spv::Op::OpHitObjectGetClusterIdNV; break; + case glslang::EOpHitObjectGetShaderRecordBufferHandleEXT: + typeId = builder.makeVectorType(builder.makeUintType(32), 2); + opCode = spv::Op::OpHitObjectGetShaderRecordBufferHandleEXT; + break; + case glslang::EOpHitObjectSetShaderBindingTableRecordIndexEXT: + builder.createNoResultOp(spv::Op::OpHitObjectSetShaderBindingTableRecordIndexEXT, operands); + return 0; case glslang::EOpReorderThreadNV: { if (operands.size() == 2) { builder.createNoResultOp(spv::Op::OpReorderThreadWithHintNV, operands); @@ -9941,9 +10317,54 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: builder.createNoResultOp(spv::Op::OpReorderThreadWithHitObjectNV, operands); } return 0; + } + case glslang::EOpReorderThreadEXT: { + if (operands.size() == 2) { + builder.createNoResultOp(spv::Op::OpReorderThreadWithHintEXT, operands); + } else { + builder.createNoResultOp(spv::Op::OpReorderThreadWithHitObjectEXT, operands); + } + return 0; + } + case glslang::EOpHitObjectReorderExecuteEXT: { + if (operands.size() == 2) { + builder.createNoResultOp(spv::Op::OpHitObjectReorderExecuteShaderEXT, operands); + } else { + // GLSL intrinsic is + // hitObjectReorderExecuteEXT(hitObjectEXT hitObject, uint hint, uint bits,int payload) while + // SPIRV is hitObject id , payload id, optional hint id, optional bits id hence reorder operands + builder.createNoResultOp(spv::Op::OpHitObjectReorderExecuteShaderEXT, {operands[0], operands[3], operands[1], operands[2]}); + } + return 0; } + case glslang::EOpHitObjectTraceReorderExecuteEXT: { + if (operands.size() == 12) { + builder.createNoResultOp(spv::Op::OpHitObjectTraceReorderExecuteEXT, operands); + } else { + std::vector argOperands; + std::copy(operands.begin(), operands.begin() + 11, std::back_inserter(argOperands)); + argOperands.push_back(operands[13]); + argOperands.push_back(operands[11]); + argOperands.push_back(operands[12]); + builder.createNoResultOp(spv::Op::OpHitObjectTraceReorderExecuteEXT, argOperands); + } + return 0; + } + case glslang::EOpHitObjectTraceMotionReorderExecuteEXT: { + if (operands.size() == 13) { + builder.createNoResultOp(spv::Op::OpHitObjectTraceMotionReorderExecuteEXT, operands); + } else { + std::vector argOperands; + std::copy(operands.begin(), operands.begin() + 12, std::back_inserter(argOperands)); + argOperands.push_back(operands[14]); + argOperands.push_back(operands[12]); + argOperands.push_back(operands[13]); + builder.createNoResultOp(spv::Op::OpHitObjectTraceMotionReorderExecuteEXT, argOperands); + } + return 0; + } case glslang::EOpImageSampleWeightedQCOM: typeId = builder.makeVectorType(builder.makeFloatType(32), 4); opCode = spv::Op::OpImageSampleWeightedQCOM; @@ -10367,11 +10788,13 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol if (symbol->getQualifier().hasLocation()) { if (!(glslangIntermediate->isRayTracingStage() && (glslangIntermediate->IsRequestedExtension(glslang::E_GL_EXT_ray_tracing) || - glslangIntermediate->IsRequestedExtension(glslang::E_GL_NV_shader_invocation_reorder)) + glslangIntermediate->IsRequestedExtension(glslang::E_GL_NV_shader_invocation_reorder) || + glslangIntermediate->IsRequestedExtension(glslang::E_GL_EXT_shader_invocation_reorder)) && (builder.getStorageClass(id) == spv::StorageClass::RayPayloadKHR || builder.getStorageClass(id) == spv::StorageClass::IncomingRayPayloadKHR || builder.getStorageClass(id) == spv::StorageClass::CallableDataKHR || builder.getStorageClass(id) == spv::StorageClass::IncomingCallableDataKHR || + builder.getStorageClass(id) == spv::StorageClass::HitObjectAttributeEXT || builder.getStorageClass(id) == spv::StorageClass::HitObjectAttributeNV))) { // Location values are used to link TraceRayKHR/ExecuteCallableKHR/HitObjectGetAttributesNV // to corresponding variables but are not valid in SPIRV since they are supported only @@ -10672,7 +11095,7 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n int nextConst = 0; result = createSpvConstantFromConstUnionArray(sn->getType(), *const_union_array, nextConst, true); } else { - logger->missingFunctionality("Invalid initializer for spec onstant."); + logger->missingFunctionality("Invalid initializer for spec constant."); return spv::NoResult; } builder.addName(result, sn->getName().c_str()); diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.cpp b/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.cpp index 0d77fe6..6e7f3cc 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.cpp +++ b/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.cpp @@ -125,7 +125,7 @@ Id Builder::makeBoolType() return type->getResultId(); } -Id Builder::makeSamplerType() +Id Builder::makeSamplerType(const char* debugName) { Instruction* type; if (groupedTypes[enumCast(Op::OpTypeSampler)].size() == 0) { @@ -138,7 +138,7 @@ Id Builder::makeSamplerType() if (emitNonSemanticShaderDebugInfo) { - auto const debugResultId = makeOpaqueDebugType("type.sampler"); + auto const debugResultId = makeOpaqueDebugType(debugName); debugId[type->getResultId()] = debugResultId; } @@ -841,7 +841,7 @@ Id Builder::makeDebugFunctionType(Id returnType, const std::vector& paramTyp } Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, - ImageFormat format) + ImageFormat format, const char* debugName) { assert(sampled == 1 || sampled == 2); @@ -922,24 +922,14 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo if (emitNonSemanticShaderDebugInfo) { - auto TypeName = [&dim]() -> char const* { - switch (dim) { - case Dim::Dim1D: return "type.1d.image"; - case Dim::Dim2D: return "type.2d.image"; - case Dim::Dim3D: return "type.3d.image"; - case Dim::Cube: return "type.cube.image"; - default: return "type.image"; - } - }; - - auto const debugResultId = makeOpaqueDebugType(TypeName()); + auto const debugResultId = makeOpaqueDebugType(debugName); debugId[type->getResultId()] = debugResultId; } return type->getResultId(); } -Id Builder::makeSampledImageType(Id imageType) +Id Builder::makeSampledImageType(Id imageType, const char* debugName) { // try to find it Instruction* type; @@ -959,7 +949,7 @@ Id Builder::makeSampledImageType(Id imageType) if (emitNonSemanticShaderDebugInfo) { - auto const debugResultId = makeOpaqueDebugType("type.sampled.image"); + auto const debugResultId = makeOpaqueDebugType(debugName); debugId[type->getResultId()] = debugResultId; } @@ -1512,6 +1502,20 @@ Id Builder::makeRayQueryType() return type->getResultId(); } +Id Builder::makeHitObjectEXTType() +{ + Instruction *type; + if (groupedTypes[enumCast(Op::OpTypeHitObjectEXT)].size() == 0) { + type = new Instruction(getUniqueId(), NoType, Op::OpTypeHitObjectEXT); + groupedTypes[enumCast(Op::OpTypeHitObjectEXT)].push_back(type); + constantsTypesGlobals.push_back(std::unique_ptr(type)); + module.mapInstruction(type); + } else { + type = groupedTypes[enumCast(Op::OpTypeHitObjectEXT)].back(); + } + + return type->getResultId(); +} Id Builder::makeHitObjectNVType() { Instruction *type; @@ -1520,6 +1524,10 @@ Id Builder::makeHitObjectNVType() groupedTypes[enumCast(Op::OpTypeHitObjectNV)].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); module.mapInstruction(type); + if (emitNonSemanticShaderDebugInfo) { + spv::Id debugType = makeOpaqueDebugType("hitObjectNV"); + debugId[type->getResultId()] = debugType; + } } else { type = groupedTypes[enumCast(Op::OpTypeHitObjectNV)].back(); } @@ -2658,7 +2666,7 @@ Id Builder::makeDebugFunction([[maybe_unused]] Function* function, Id nameId, Id type->addIdOperand(makeDebugCompilationUnit()); // scope type->addIdOperand(nameId); // linkage name type->addIdOperand(makeUintConstant(NonSemanticShaderDebugInfo100FlagIsPublic)); - type->addIdOperand(makeUintConstant(currentLine)); + type->addIdOperand(makeUintConstant(currentLine)); constantsTypesGlobals.push_back(std::unique_ptr(type)); module.mapInstruction(type); return funcId; @@ -2734,6 +2742,8 @@ void Builder::leaveLexicalBlock() // Comments in header void Builder::enterFunction(Function const* function) { + currentFunction = function; + // Save and disable debugInfo for HLSL entry point function. It is a wrapper // function with no user code in it. restoreNonSemanticShaderDebugInfo = emitNonSemanticShaderDebugInfo; @@ -2784,6 +2794,9 @@ void Builder::leaveFunction() currentDebugScopeId.pop(); emitNonSemanticShaderDebugInfo = restoreNonSemanticShaderDebugInfo; + + // Clear current function record + currentFunction = nullptr; } // Comments in header @@ -2803,6 +2816,20 @@ void Builder::makeStatementTerminator(spv::Op opcode, const std::vector& ope createAndSetNoPredecessorBlock(name); } +void Builder::createConstVariable(Id type, const char* name, Id constant, bool isGlobal) +{ + if (emitNonSemanticShaderDebugInfo) { + Id debugType = getDebugType(type); + if (isGlobal) { + createDebugGlobalVariable(debugType, name, constant); + } + else { + auto debugLocal = createDebugLocalVariable(debugType, name); + makeDebugValue(debugLocal, constant); + } + } +} + // Comments in header Id Builder::createVariable(Decoration precision, StorageClass storageClass, Id type, const char* name, Id initializer, bool const compilerGenerated) @@ -2813,31 +2840,30 @@ Id Builder::createVariable(Decoration precision, StorageClass storageClass, Id t if (initializer != NoResult) inst->addIdOperand(initializer); - switch (storageClass) { - case StorageClass::Function: + if (storageClass == StorageClass::Function) { // Validation rules require the declaration in the entry block buildPoint->getParent().addLocalVariable(std::unique_ptr(inst)); + } + else { + constantsTypesGlobals.push_back(std::unique_ptr(inst)); + module.mapInstruction(inst); + } - if (emitNonSemanticShaderDebugInfo && !compilerGenerated) - { + if (emitNonSemanticShaderDebugInfo && !compilerGenerated) + { + // For debug info, we prefer respecting how the variable is declared in source code. + // We may emulate some local variables as global variable with private storage in SPIR-V, but we still want to + // treat them as local variables in debug info. + if (storageClass == StorageClass::Function || (currentFunction && storageClass == StorageClass::Private)) { auto const debugLocalVariableId = createDebugLocalVariable(debugId[type], name); debugId[inst->getResultId()] = debugLocalVariableId; makeDebugDeclare(debugLocalVariableId, inst->getResultId()); } - - break; - - default: - constantsTypesGlobals.push_back(std::unique_ptr(inst)); - module.mapInstruction(inst); - - if (emitNonSemanticShaderDebugInfo) - { + else { auto const debugResultId = createDebugGlobalVariable(debugId[type], name, inst->getResultId()); debugId[inst->getResultId()] = debugResultId; } - break; } if (name) @@ -2942,9 +2968,9 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vec return chain->getResultId(); } -Id Builder::createArrayLength(Id base, unsigned int member) +Id Builder::createArrayLength(Id base, unsigned int member, unsigned int bits) { - spv::Id intType = makeUintType(32); + spv::Id intType = makeUintType(bits); Instruction* length = new Instruction(getUniqueId(), intType, Op::OpArrayLength); length->reserveOperands(2); length->addIdOperand(base); diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h b/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h index 2ab7d02..68b4764 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h +++ b/libs/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h @@ -138,7 +138,7 @@ class Builder { if (trackDebugInfo) { dirtyLineTracker = true; if (line != 0) { - // TODO: This is special handling of some AST nodes having (untracked) line 0. + // TODO: This is special handling of some AST nodes having (untracked) line 0. // But they should have a valid line number. currentLine = line; if (filename) { @@ -235,9 +235,9 @@ class Builder { Id makeArrayType(Id element, Id sizeId, int stride); // 0 stride means no stride decoration Id makeRuntimeArray(Id element); Id makeFunctionType(Id returnType, const std::vector& paramTypes); - Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format); - Id makeSamplerType(); - Id makeSampledImageType(Id imageType); + Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format, const char* debugNames); + Id makeSamplerType(const char* debugName); + Id makeSampledImageType(Id imageType, const char* debugName); Id makeCooperativeMatrixTypeKHR(Id component, Id scope, Id rows, Id cols, Id use); Id makeCooperativeMatrixTypeNV(Id component, Id scope, Id rows, Id cols); Id makeCooperativeMatrixTypeWithSameShape(Id component, Id otherType); @@ -284,6 +284,8 @@ class Builder { Id makeRayQueryType(); // hitObjectNV type Id makeHitObjectNVType(); + // hitObjectEXT type + Id makeHitObjectEXTType(); // For querying about types. Id getTypeId(Id resultId) const { return module.getTypeId(resultId); } @@ -511,6 +513,10 @@ class Builder { // such as OpEmitMeshTasksEXT void makeStatementTerminator(spv::Op opcode, const std::vector& operands, const char* name); + // Create a global/local constant. Because OpConstant is automatically emitted by getting the constant + // ids, this function only handles debug info. + void createConstVariable(Id type, const char* name, Id constant, bool isGlobal); + // Create a global or function local or IO variable. Id createVariable(Decoration precision, StorageClass storageClass, Id type, const char* name = nullptr, Id initializer = NoResult, bool const compilerGenerated = true); @@ -531,7 +537,7 @@ class Builder { Id createAccessChain(StorageClass, Id base, const std::vector& offsets); // Create an OpArrayLength instruction - Id createArrayLength(Id base, unsigned int member); + Id createArrayLength(Id base, unsigned int member, unsigned int bits); // Create an OpCooperativeMatrixLengthKHR instruction Id createCooperativeMatrixLengthKHR(Id type); @@ -936,7 +942,11 @@ class Builder { void setUseReplicatedComposites(bool use) { useReplicatedComposites = use; } - protected: +private: + // Helper to get size of a scalar (in bytes) + unsigned int postProcessGetLargestScalarSize(const Instruction& type); + +protected: Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value); Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2); Id findCompositeConstant(Op typeClass, Op opcode, Id typeId, const std::vector& comps, size_t numMembers); @@ -1002,6 +1012,8 @@ class Builder { Block* buildPoint; Id uniqueId; Function* entryPointFunction; + // This tracks the current function being built, or nullptr if not in a function. + Function const* currentFunction { nullptr }; bool generatingOpCodeForSpecConst; bool useReplicatedComposites { false }; AccessChain accessChain; diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp b/libs/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp index 4f61864..068e33e 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp +++ b/libs/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp @@ -43,6 +43,7 @@ #include #include +#include "SPIRV/spvIR.h" #include "SpvBuilder.h" #include "spirv.hpp11" #include "spvUtil.h" @@ -201,6 +202,37 @@ void Builder::postProcessType(const Instruction& inst, Id typeId) } } +unsigned int Builder::postProcessGetLargestScalarSize(const Instruction& type) +{ + switch (type.getOpCode()) { + case Op::OpTypeBool: + return 1; + case Op::OpTypeInt: + case Op::OpTypeFloat: + return type.getImmediateOperand(0) / 8; + case Op::OpTypePointer: + return 8; + case Op::OpTypeVector: + case Op::OpTypeMatrix: + case Op::OpTypeArray: + case Op::OpTypeRuntimeArray: { + const Instruction* elem_type = module.getInstruction(type.getIdOperand(0)); + return postProcessGetLargestScalarSize(*elem_type); + } + case Op::OpTypeStruct: { + unsigned int largest = 0; + for (int i = 0; i < type.getNumOperands(); ++i) { + const Instruction* elem_type = module.getInstruction(type.getIdOperand(i)); + unsigned int elem_size = postProcessGetLargestScalarSize(*elem_type); + largest = std::max(largest, elem_size); + } + return largest; + } + default: + return 0; + } +} + // Called for each instruction that resides in a block. void Builder::postProcess(Instruction& inst) { @@ -249,12 +281,12 @@ void Builder::postProcess(Instruction& inst) // and this function computes the rest from the SPIR-V Offset decorations. Instruction *accessChain = module.getInstruction(inst.getIdOperand(0)); if (accessChain->getOpCode() == Op::OpAccessChain) { - Instruction *base = module.getInstruction(accessChain->getIdOperand(0)); + const Instruction* base = module.getInstruction(accessChain->getIdOperand(0)); // Get the type of the base of the access chain. It must be a pointer type. Id typeId = base->getTypeId(); Instruction *type = module.getInstruction(typeId); assert(type->getOpCode() == Op::OpTypePointer); - if (type->getImmediateOperand(0) != StorageClass::PhysicalStorageBufferEXT) { + if (type->getImmediateOperand(0) != StorageClass::PhysicalStorageBuffer) { break; } // Get the pointee type. @@ -265,6 +297,7 @@ void Builder::postProcess(Instruction& inst) // Offset/ArrayStride/MatrixStride decorations, and bitwise OR them all // together. int alignment = 0; + bool first_struct_elem = false; for (int i = 1; i < accessChain->getNumOperands(); ++i) { Instruction *idx = module.getInstruction(accessChain->getIdOperand(i)); if (type->getOpCode() == Op::OpTypeStruct) { @@ -277,7 +310,12 @@ void Builder::postProcess(Instruction& inst) decoration.get()->getImmediateOperand(1) == c && (decoration.get()->getImmediateOperand(2) == Decoration::Offset || decoration.get()->getImmediateOperand(2) == Decoration::MatrixStride)) { - alignment |= decoration.get()->getImmediateOperand(3); + unsigned int opernad_value = decoration.get()->getImmediateOperand(3); + alignment |= opernad_value; + if (opernad_value == 0 && + decoration.get()->getImmediateOperand(2) == Decoration::Offset) { + first_struct_elem = true; + } } }; std::for_each(decorations.begin(), decorations.end(), function); @@ -303,18 +341,51 @@ void Builder::postProcess(Instruction& inst) } } assert(inst.getNumOperands() >= 3); - auto const memoryAccess = (MemoryAccessMask)inst.getImmediateOperand((inst.getOpCode() == Op::OpStore) ? 2 : 1); + const bool is_store = inst.getOpCode() == Op::OpStore; + auto const memoryAccess = (MemoryAccessMask)inst.getImmediateOperand(is_store ? 2 : 1); assert(anySet(memoryAccess, MemoryAccessMask::Aligned)); static_cast(memoryAccess); + // Compute the index of the alignment operand. int alignmentIdx = 2; - if (inst.getOpCode() == Op::OpStore) + if (is_store) alignmentIdx++; // Merge new and old (mis)alignment alignment |= inst.getImmediateOperand(alignmentIdx); + + if (!is_store) { + Instruction* inst_type = module.getInstruction(inst.getTypeId()); + if (inst_type->getOpCode() == Op::OpTypePointer && + inst_type->getImmediateOperand(0) == StorageClass::PhysicalStorageBuffer) { + // This means we are loading a pointer which means need to ensure it is at least 8-byte aligned + // See https://github.com/KhronosGroup/glslang/issues/4084 + // In case the alignment is currently 4, need to ensure it is 8 before grabbing the LSB + alignment |= 8; + alignment &= 8; + } + } + // Pick the LSB alignment = alignment & ~(alignment & (alignment-1)); + + // The edge case we find is when copying a struct to another struct, we never find the alignment anywhere, + // so in this case, fallback to doing a full size lookup on the type + if (alignment == 0 && first_struct_elem) { + // Quick get the struct type back + const Instruction* pointer_type = module.getInstruction(base->getTypeId()); + const Instruction* struct_type = module.getInstruction(pointer_type->getIdOperand(1)); + assert(struct_type->getOpCode() == Op::OpTypeStruct); + + const Instruction* elem_type = module.getInstruction(struct_type->getIdOperand(0)); + unsigned int largest_scalar = postProcessGetLargestScalarSize(*elem_type); + if (largest_scalar != 0) { + alignment = largest_scalar; + } else { + alignment = 16; // fallback if can't determine a godo alignment + } + } // update the Aligned operand + assert(alignment != 0); inst.setImmediateOperand(alignmentIdx, alignment); } break; diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/doc.cpp b/libs/bgfx/3rdparty/glslang/SPIRV/doc.cpp index b0189a5..dcc9b4e 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/doc.cpp +++ b/libs/bgfx/3rdparty/glslang/SPIRV/doc.cpp @@ -231,6 +231,8 @@ const char* ExecutionModeString(int mode) case (int)ExecutionMode::NonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT"; case (int)ExecutionMode::NonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT"; + case (int)ExecutionMode::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT"; + case ExecutionModeCeiling: default: return "Bad"; } @@ -265,6 +267,7 @@ const char* StorageClassString(int StorageClass) case (int)StorageClass::TaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; case (int)StorageClass::HitObjectAttributeNV: return "HitObjectAttributeNV"; case (int)StorageClass::TileImageEXT: return "TileImageEXT"; + case (int)StorageClass::HitObjectAttributeEXT: return "HitObjectAttributeEXT"; default: return "Bad"; } } @@ -344,6 +347,7 @@ const char* DecorationString(int decoration) case (int)Decoration::AliasedPointerEXT: return "DecorationAliasedPointerEXT"; case (int)Decoration::HitObjectShaderRecordBufferNV: return "DecorationHitObjectShaderRecordBufferNV"; + case (int)Decoration::HitObjectShaderRecordBufferEXT: return "DecorationHitObjectShaderRecordBufferEXT"; case (int)Decoration::SaturatedToLargestFloat8NormalConversionEXT: return "DecorationSaturatedToLargestFloat8NormalConversionEXT"; } @@ -1107,6 +1111,7 @@ const char* CapabilityString(int info) case (int)Capability::CoreBuiltinsARM: return "CoreBuiltinsARM"; case (int)Capability::ShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; + case (int)Capability::ShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT"; case (int)Capability::TextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM"; case (int)Capability::TextureBoxFilterQCOM: return "TextureBoxFilterQCOM"; @@ -1135,6 +1140,8 @@ const char* CapabilityString(int info) case (int)Capability::Float8EXT: return "Float8EXT"; case (int)Capability::Float8CooperativeMatrixEXT: return "Float8CooperativeMatrixEXT"; + case (int)Capability::Shader64BitIndexingEXT: return "CapabilityShader64BitIndexingEXT"; + default: return "Bad"; } } @@ -1718,6 +1725,43 @@ const char* OpcodeString(int op) case (int)Op::OpUDotAccSatKHR: return "OpUDotAccSatKHR"; case (int)Op::OpSUDotAccSatKHR: return "OpSUDotAccSatKHR"; + case (int)Op::OpTypeHitObjectEXT: return "OpTypeHitObjectEXT"; + case (int)Op::OpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT"; + case (int)Op::OpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT"; + case (int)Op::OpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT"; + case (int)Op::OpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT"; + case (int)Op::OpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT"; + case (int)Op::OpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT"; + case (int)Op::OpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT"; + case (int)Op::OpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT"; + case (int)Op::OpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT"; + case (int)Op::OpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT"; + case (int)Op::OpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT"; + case (int)Op::OpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT"; + case (int)Op::OpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT"; + case (int)Op::OpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT"; + case (int)Op::OpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT"; + case (int)Op::OpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT"; + case (int)Op::OpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT"; + case (int)Op::OpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT"; + case (int)Op::OpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT"; + case (int)Op::OpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT"; + case (int)Op::OpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT"; + case (int)Op::OpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT"; + case (int)Op::OpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT"; + case (int)Op::OpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT"; + case (int)Op::OpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT"; + case (int)Op::OpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT"; + case (int)Op::OpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT"; + case (int)Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT"; + case (int)Op::OpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT"; + case (int)Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT"; + case (int)Op::OpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteEXT"; + case (int)Op::OpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT"; + case (int)Op::OpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT"; + case (int)Op::OpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT"; + case (int)Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT"; + default: return "Bad"; } @@ -3853,6 +3897,191 @@ void Parameterize() InstructionDesc[enumCast(Op::OpTensorQuerySizeARM)].operands.push(OperandId, "'Tensor'"); InstructionDesc[enumCast(Op::OpTensorQuerySizeARM)].operands.push(OperandId, "'Dimension'", true); + InstructionDesc[enumCast(Op::OpTypeHitObjectEXT)].setResultAndType(true, false); + + InstructionDesc[enumCast(Op::OpHitObjectGetShaderRecordBufferHandleNV)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetShaderRecordBufferHandleNV)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetShaderRecordBufferHandleEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetShaderRecordBufferHandleEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpReorderThreadWithHintEXT)].operands.push(OperandId, "'Hint'"); + InstructionDesc[enumCast(Op::OpReorderThreadWithHintEXT)].operands.push(OperandId, "'Bits'"); + InstructionDesc[enumCast(Op::OpReorderThreadWithHintEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpReorderThreadWithHitObjectEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpReorderThreadWithHitObjectEXT)].operands.push(OperandId, "'Hint'"); + InstructionDesc[enumCast(Op::OpReorderThreadWithHitObjectEXT)].operands.push(OperandId, "'Bits'"); + InstructionDesc[enumCast(Op::OpReorderThreadWithHitObjectEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectGetCurrentTimeEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetCurrentTimeEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetHitKindEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetHitKindEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetPrimitiveIndexEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetPrimitiveIndexEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetGeometryIndexEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetGeometryIndexEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetInstanceIdEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetInstanceIdEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetInstanceCustomIndexEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetInstanceCustomIndexEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetObjectRayDirectionEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetObjectRayDirectionEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetObjectRayOriginEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetObjectRayOriginEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetWorldRayDirectionEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetWorldRayDirectionEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetWorldRayOriginEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetWorldRayOriginEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetWorldToObjectEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetWorldToObjectEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetObjectToWorldEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetObjectToWorldEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetRayTMaxEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetRayTMaxEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetRayTMinEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetRayTMinEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetRayFlagsEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetRayFlagsEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetShaderBindingTableRecordIndexEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetShaderBindingTableRecordIndexEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectIsEmptyEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectIsEmptyEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectIsHitEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectIsHitEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectIsMissEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectIsMissEXT)].setResultAndType(true, true); + + InstructionDesc[enumCast(Op::OpHitObjectGetAttributesEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetAttributesEXT)].operands.push(OperandId, "'HitObjectAttribute'"); + InstructionDesc[enumCast(Op::OpHitObjectGetAttributesEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectExecuteShaderEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectExecuteShaderEXT)].operands.push(OperandId, "'Payload'"); + InstructionDesc[enumCast(Op::OpHitObjectExecuteShaderEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'RayFlags'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'SBT Index'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'Origin'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'TMin'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'Direction'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].operands.push(OperandId, "'TMax'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'RayFlags'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'SBT Index'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'Origin'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'TMin'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'Direction'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'TMax'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].operands.push(OperandId, "'Current Time'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordMissMotionEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectRecordEmptyEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordEmptyEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'Acceleration Structure'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'RayFlags'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'Cullmask'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'SBT Record Offset'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'SBT Record Stride'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'Miss Index'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'Origin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'TMin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'Direction'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'TMax'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].operands.push(OperandId, "'Payload'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Acceleration Structure'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'RayFlags'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Cullmask'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'SBT Record Offset'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'SBT Record Stride'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Miss Index'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Origin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'TMin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Direction'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'TMax'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Time'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].operands.push(OperandId, "'Payload'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceRayMotionEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectSetShaderBindingTableRecordIndexEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectSetShaderBindingTableRecordIndexEXT)].operands.push(OperandId, "'SBT Record Index'"); + InstructionDesc[enumCast(Op::OpHitObjectSetShaderBindingTableRecordIndexEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectReorderExecuteShaderEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectReorderExecuteShaderEXT)].operands.push(OperandId, "'Payload'"); + InstructionDesc[enumCast(Op::OpHitObjectReorderExecuteShaderEXT)].operands.push(OperandId, "'Hint'"); + InstructionDesc[enumCast(Op::OpHitObjectReorderExecuteShaderEXT)].operands.push(OperandId, "'Bits'"); + InstructionDesc[enumCast(Op::OpHitObjectReorderExecuteShaderEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Acceleration Structure'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'RayFlags'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Cullmask'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'SBT Record Offset'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'SBT Record Stride'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Miss Index'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Origin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'TMin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Direction'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'TMax'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Payload'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Hint'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].operands.push(OperandId, "'Bits'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceReorderExecuteEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Acceleration Structure'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'RayFlags'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Cullmask'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'SBT Record Offset'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'SBT Record Stride'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Miss Index'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Origin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'TMin'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Direction'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'TMax'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Time'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Payload'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Hint'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].operands.push(OperandId, "'Bits'"); + InstructionDesc[enumCast(Op::OpHitObjectTraceMotionReorderExecuteEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectRecordFromQueryEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordFromQueryEXT)].operands.push(OperandId, "'RayQuery'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordFromQueryEXT)].operands.push(OperandId, "'SBT Record Index'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordFromQueryEXT)].operands.push(OperandId, "'HitObjectAttribute'"); + InstructionDesc[enumCast(Op::OpHitObjectRecordFromQueryEXT)].setResultAndType(false, false); + + InstructionDesc[enumCast(Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT)].operands.push(OperandId, "'HitObject'"); + InstructionDesc[enumCast(Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT)].setResultAndType(true, true); + }); } diff --git a/libs/bgfx/3rdparty/glslang/SPIRV/spirv.hpp11 b/libs/bgfx/3rdparty/glslang/SPIRV/spirv.hpp11 index 2ad294d..a2ce735 100644 --- a/libs/bgfx/3rdparty/glslang/SPIRV/spirv.hpp11 +++ b/libs/bgfx/3rdparty/glslang/SPIRV/spirv.hpp11 @@ -207,6 +207,7 @@ enum class ExecutionMode : unsigned { SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, + Shader64BitIndexingEXT = 5427, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, @@ -261,6 +262,7 @@ enum class StorageClass : unsigned { PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, + HitObjectAttributeEXT = 5411, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, @@ -579,6 +581,7 @@ enum class Decoration : unsigned { AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, + HitObjectShaderRecordBufferEXT = 5389, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -1188,6 +1191,7 @@ enum class Capability : unsigned { DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, + ShaderInvocationReorderEXT = 5388, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, CooperativeVectorNV = 5394, @@ -1196,6 +1200,7 @@ enum class Capability : unsigned { RawAccessChainsNV = 5414, RayTracingSpheresGeometryNV = 5418, RayTracingLinearSweptSpheresGeometryNV = 5419, + Shader64BitIndexingEXT = 5426, CooperativeMatrixReductionsNV = 5430, CooperativeMatrixConversionsNV = 5431, CooperativeMatrixPerElementOperationsNV = 5432, @@ -2074,6 +2079,36 @@ enum class Op : unsigned { OpFetchMicroTriangleVertexBarycentricNV = 5301, OpCooperativeVectorLoadNV = 5302, OpCooperativeVectorStoreNV = 5303, + OpHitObjectRecordFromQueryEXT = 5304, + OpHitObjectRecordMissEXT = 5305, + OpHitObjectRecordMissMotionEXT = 5306, + OpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307, + OpHitObjectGetRayFlagsEXT = 5308, + OpHitObjectSetShaderBindingTableRecordIndexEXT = 5309, + OpHitObjectReorderExecuteShaderEXT = 5310, + OpHitObjectTraceReorderExecuteEXT = 5311, + OpHitObjectTraceMotionReorderExecuteEXT = 5312, + OpTypeHitObjectEXT = 5313, + OpReorderThreadWithHintEXT = 5314, + OpReorderThreadWithHitObjectEXT = 5315, + OpHitObjectTraceRayEXT = 5316, + OpHitObjectTraceRayMotionEXT = 5317, + OpHitObjectRecordEmptyEXT = 5318, + OpHitObjectExecuteShaderEXT = 5319, + OpHitObjectGetCurrentTimeEXT = 5320, + OpHitObjectGetAttributesEXT = 5321, + OpHitObjectGetHitKindEXT = 5322, + OpHitObjectGetPrimitiveIndexEXT = 5323, + OpHitObjectGetGeometryIndexEXT = 5324, + OpHitObjectGetInstanceIdEXT = 5325, + OpHitObjectGetInstanceCustomIndexEXT = 5326, + OpHitObjectGetObjectRayOriginEXT = 5327, + OpHitObjectGetObjectRayDirectionEXT = 5328, + OpHitObjectGetWorldRayDirectionEXT = 5329, + OpHitObjectGetWorldRayOriginEXT = 5330, + OpHitObjectGetObjectToWorldEXT = 5331, + OpHitObjectGetWorldToObjectEXT = 5332, + OpHitObjectGetRayTMaxEXT = 5333, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -2087,6 +2122,12 @@ enum class Op : unsigned { OpExecuteCallableNV = 5344, OpRayQueryGetClusterIdNV = 5345, OpHitObjectGetClusterIdNV = 5346, + OpHitObjectGetRayTMinEXT = 5347, + OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348, + OpHitObjectGetShaderRecordBufferHandleEXT = 5349, + OpHitObjectIsEmptyEXT = 5350, + OpHitObjectIsHitEXT = 5351, + OpHitObjectIsMissEXT = 5352, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, @@ -2885,6 +2926,36 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeVectorLoadNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeVectorStoreNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordFromQueryEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordMissEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordMissMotionEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayFlagsEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectReorderExecuteShaderEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceReorderExecuteEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceMotionReorderExecuteEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpTypeHitObjectEXT: *hasResult = true; *hasResultType = false; break; + case Op::OpReorderThreadWithHintEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpReorderThreadWithHitObjectEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceRayEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceRayMotionEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordEmptyEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectExecuteShaderEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetCurrentTimeEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetAttributesEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetHitKindEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetPrimitiveIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetGeometryIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetInstanceIdEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetInstanceCustomIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectRayOriginEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectRayDirectionEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldRayDirectionEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldRayOriginEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectToWorldEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldToObjectEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayTMaxEXT: *hasResult = true; *hasResultType = true; break; case Op::OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break; case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; @@ -2896,6 +2967,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryGetClusterIdNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayTMinEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetShaderRecordBufferHandleEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsEmptyEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsHitEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsMissEXT: *hasResult = true; *hasResultType = true; break; case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; @@ -3350,6 +3427,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) { case ExecutionMode::SampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; case ExecutionMode::ShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; case ExecutionMode::ShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; + case ExecutionMode::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT"; case ExecutionMode::SharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL"; case ExecutionMode::RoundingModeRTPINTEL: return "RoundingModeRTPINTEL"; case ExecutionMode::RoundingModeRTNINTEL: return "RoundingModeRTNINTEL"; @@ -3399,6 +3477,7 @@ inline const char* StorageClassToString(StorageClass value) { case StorageClass::PhysicalStorageBuffer: return "PhysicalStorageBuffer"; case StorageClass::HitObjectAttributeNV: return "HitObjectAttributeNV"; case StorageClass::TaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; + case StorageClass::HitObjectAttributeEXT: return "HitObjectAttributeEXT"; case StorageClass::CodeSectionINTEL: return "CodeSectionINTEL"; case StorageClass::DeviceOnlyINTEL: return "DeviceOnlyINTEL"; case StorageClass::HostOnlyINTEL: return "HostOnlyINTEL"; @@ -3658,6 +3737,7 @@ inline const char* DecorationToString(Decoration value) { case Decoration::RestrictPointer: return "RestrictPointer"; case Decoration::AliasedPointer: return "AliasedPointer"; case Decoration::HitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV"; + case Decoration::HitObjectShaderRecordBufferEXT: return "HitObjectShaderRecordBufferEXT"; case Decoration::BindlessSamplerNV: return "BindlessSamplerNV"; case Decoration::BindlessImageNV: return "BindlessImageNV"; case Decoration::BoundSamplerNV: return "BoundSamplerNV"; @@ -4069,6 +4149,7 @@ inline const char* CapabilityToString(Capability value) { case Capability::DisplacementMicromapNV: return "DisplacementMicromapNV"; case Capability::RayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT"; case Capability::ShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; + case Capability::ShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT"; case Capability::BindlessTextureNV: return "BindlessTextureNV"; case Capability::RayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR"; case Capability::CooperativeVectorNV: return "CooperativeVectorNV"; @@ -4077,6 +4158,7 @@ inline const char* CapabilityToString(Capability value) { case Capability::RawAccessChainsNV: return "RawAccessChainsNV"; case Capability::RayTracingSpheresGeometryNV: return "RayTracingSpheresGeometryNV"; case Capability::RayTracingLinearSweptSpheresGeometryNV: return "RayTracingLinearSweptSpheresGeometryNV"; + case Capability::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT"; case Capability::CooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV"; case Capability::CooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV"; case Capability::CooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV"; @@ -4831,6 +4913,36 @@ inline const char* OpToString(Op value) { case Op::OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV"; case Op::OpCooperativeVectorLoadNV: return "OpCooperativeVectorLoadNV"; case Op::OpCooperativeVectorStoreNV: return "OpCooperativeVectorStoreNV"; + case Op::OpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT"; + case Op::OpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT"; + case Op::OpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT"; + case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT"; + case Op::OpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT"; + case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT"; + case Op::OpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteShaderEXT"; + case Op::OpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT"; + case Op::OpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT"; + case Op::OpTypeHitObjectEXT: return "OpTypeHitObjectEXT"; + case Op::OpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT"; + case Op::OpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT"; + case Op::OpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT"; + case Op::OpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT"; + case Op::OpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT"; + case Op::OpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT"; + case Op::OpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT"; + case Op::OpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT"; + case Op::OpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT"; + case Op::OpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT"; + case Op::OpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT"; + case Op::OpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT"; + case Op::OpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT"; + case Op::OpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT"; + case Op::OpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT"; + case Op::OpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT"; + case Op::OpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT"; + case Op::OpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT"; + case Op::OpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT"; + case Op::OpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT"; case Op::OpReportIntersectionKHR: return "OpReportIntersectionKHR"; case Op::OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case Op::OpTerminateRayNV: return "OpTerminateRayNV"; @@ -4842,6 +4954,12 @@ inline const char* OpToString(Op value) { case Op::OpExecuteCallableNV: return "OpExecuteCallableNV"; case Op::OpRayQueryGetClusterIdNV: return "OpRayQueryGetClusterIdNV"; case Op::OpHitObjectGetClusterIdNV: return "OpHitObjectGetClusterIdNV"; + case Op::OpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT"; + case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT"; + case Op::OpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT"; + case Op::OpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT"; + case Op::OpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT"; + case Op::OpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT"; case Op::OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; case Op::OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; case Op::OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; diff --git a/libs/bgfx/3rdparty/glslang/glslang/HLSL/hlslParseHelper.cpp b/libs/bgfx/3rdparty/glslang/glslang/HLSL/hlslParseHelper.cpp index 0732334..3dbdcb8 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/HLSL/hlslParseHelper.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/HLSL/hlslParseHelper.cpp @@ -801,9 +801,16 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, return result; // it was handled as an operator[] bool flattened = false; - int indexValue = 0; - if (index->getQualifier().isFrontEndConstant()) - indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + int64_t indexValue = 0; + if (index->getQualifier().isFrontEndConstant()) { + if (index->getType().contains64BitInt()) { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getI64Const(); + } else if (index->getType().getBasicType() == EbtUint) { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getUConst(); + } else { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + } + } variableCheck(base); if (! base->isArray() && ! base->isMatrix() && ! base->isVector()) { diff --git a/libs/bgfx/3rdparty/glslang/glslang/Include/BaseTypes.h b/libs/bgfx/3rdparty/glslang/glslang/Include/BaseTypes.h index f0c8714..3678afe 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/Include/BaseTypes.h +++ b/libs/bgfx/3rdparty/glslang/glslang/Include/BaseTypes.h @@ -69,6 +69,7 @@ enum TBasicType { EbtReference, EbtRayQuery, EbtHitObjectNV, + EbtHitObjectEXT, EbtCoopmat, EbtFunction, EbtTensorLayoutNV, @@ -111,6 +112,7 @@ enum TStorageQualifier { EvqCallableData, EvqCallableDataIn, EvqHitObjectAttrNV, + EvqHitObjectAttrEXT, EvqtaskPayloadSharedEXT, @@ -398,7 +400,8 @@ __inline const char* GetStorageQualifierString(TStorageQualifier q) case EvqCallableData: return "callableDataNV"; break; case EvqCallableDataIn: return "callableDataInNV"; break; case EvqtaskPayloadSharedEXT: return "taskPayloadSharedEXT"; break; - case EvqHitObjectAttrNV:return "hitObjectAttributeNV"; break; + case EvqHitObjectAttrNV: return "hitObjectAttributeNV"; break; + case EvqHitObjectAttrEXT:return "hitObjectAttributeEXT"; break; default: return "unknown qualifier"; } } diff --git a/libs/bgfx/3rdparty/glslang/glslang/Include/Types.h b/libs/bgfx/3rdparty/glslang/glslang/Include/Types.h index faada17..d3124ac 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/Include/Types.h +++ b/libs/bgfx/3rdparty/glslang/glslang/Include/Types.h @@ -130,6 +130,13 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool isTileAttachmentQCOM() const { return tileQCOM; } + // For combined sampler, returns the underlying texture. Otherwise, returns identity. + TSampler removeCombined() const { + TSampler result = *this; + result.combined = false; + return result; + } + void clear() { type = EbtVoid; @@ -238,9 +245,9 @@ struct TSampler { // misnomer now; includes images, textures without sampler, return ! operator==(right); } - TString getString() const + std::string getString() const { - TString s; + std::string s; if (isPureSampler()) { s.append("sampler"); @@ -818,6 +825,9 @@ class TQualifier { bool isHitObjectAttrNV() const { return storage == EvqHitObjectAttrNV; } + bool isHitObjectAttrEXT() const { + return storage == EvqHitObjectAttrEXT; + } // True if this type of IO is supposed to be arrayed with extra level for per-vertex data bool isArrayedIo(EShLanguage language) const @@ -854,6 +864,7 @@ class TQualifier { layoutFullQuads = false; layoutQuadDeriv = false; layoutHitObjectShaderRecordNV = false; + layoutHitObjectShaderRecordEXT = false; layoutBindlessSampler = false; layoutBindlessImage = false; layoutBufferReferenceAlign = layoutBufferReferenceAlignEnd; @@ -954,6 +965,7 @@ class TQualifier { bool layoutFullQuads; bool layoutQuadDeriv; bool layoutHitObjectShaderRecordNV; + bool layoutHitObjectShaderRecordEXT; // GL_EXT_spirv_intrinsics int spirvStorageClass; @@ -1065,6 +1077,7 @@ class TQualifier { bool isFullQuads() const { return layoutFullQuads; } bool isQuadDeriv() const { return layoutQuadDeriv; } bool hasHitObjectShaderRecordNV() const { return layoutHitObjectShaderRecordNV; } + bool hasHitObjectShaderRecordEXT() const { return layoutHitObjectShaderRecordEXT; } bool hasBufferReference() const { return layoutBufferReference; } bool hasBufferReferenceAlign() const { @@ -1930,7 +1943,7 @@ class TType { } virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery - || basicType == EbtHitObjectNV || isTileAttachmentQCOM() + || basicType == EbtHitObjectNV || basicType == EbtHitObjectEXT || isTileAttachmentQCOM() || isTensorARM(); } virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; } @@ -2326,6 +2339,8 @@ class TType { appendStr(" quad_derivatives"); if (qualifier.layoutHitObjectShaderRecordNV) appendStr(" hitobjectshaderrecordnv"); + if (qualifier.layoutHitObjectShaderRecordEXT) + appendStr(" hitobjectshaderrecordext"); if (qualifier.layoutBindlessSampler) appendStr(" layoutBindlessSampler"); @@ -2595,7 +2610,7 @@ class TType { TString getBasicTypeString() const { if (basicType == EbtSampler) - return sampler.getString(); + return TString{sampler.getString()}; else return getBasicString(); } diff --git a/libs/bgfx/3rdparty/glslang/glslang/Include/arrays.h b/libs/bgfx/3rdparty/glslang/glslang/Include/arrays.h index 91e1908..261af68 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/Include/arrays.h +++ b/libs/bgfx/3rdparty/glslang/glslang/Include/arrays.h @@ -66,6 +66,7 @@ struct TArraySize { return SameSpecializationConstants(node, rhs.node); } + bool operator!=(const TArraySize& rhs) const { return !(*this == rhs); } }; // @@ -198,6 +199,12 @@ struct TSmallArrayVector { } bool operator!=(const TSmallArrayVector& rhs) const { return ! operator==(rhs); } + const TArraySize& operator[](int index) const + { + assert(sizes && index < (int)sizes->size()); + return (*sizes)[index]; + } + protected: TSmallArrayVector(const TSmallArrayVector&); @@ -336,6 +343,10 @@ struct TArraySizes { return true; } + const TArraySize& getArraySize(int index) const + { + return sizes[index]; + } void setVariablyIndexed() { variablyIndexed = true; } bool isVariablyIndexed() const { return variablyIndexed; } diff --git a/libs/bgfx/3rdparty/glslang/glslang/Include/intermediate.h b/libs/bgfx/3rdparty/glslang/glslang/Include/intermediate.h index 9508ad7..9e520de 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/Include/intermediate.h +++ b/libs/bgfx/3rdparty/glslang/glslang/Include/intermediate.h @@ -875,6 +875,44 @@ enum TOperator { EOpFetchMicroTriangleVertexPositionNV, EOpFetchMicroTriangleVertexBarycentricNV, + // + // GL_EXT_shader_invocation_reorder + // + + EOpHitObjectTraceRayEXT, + EOpHitObjectTraceRayMotionEXT, + EOpHitObjectRecordMissEXT, + EOpHitObjectRecordMissMotionEXT, + EOpHitObjectRecordEmptyEXT, + EOpHitObjectExecuteShaderEXT, + EOpHitObjectIsEmptyEXT, + EOpHitObjectIsMissEXT, + EOpHitObjectIsHitEXT, + EOpHitObjectGetRayTMinEXT, + EOpHitObjectGetRayTMaxEXT, + EOpHitObjectGetRayFlagsEXT, + EOpHitObjectGetObjectRayOriginEXT, + EOpHitObjectGetObjectRayDirectionEXT, + EOpHitObjectGetWorldRayOriginEXT, + EOpHitObjectGetWorldRayDirectionEXT, + EOpHitObjectGetWorldToObjectEXT, + EOpHitObjectGetObjectToWorldEXT, + EOpHitObjectGetInstanceCustomIndexEXT, + EOpHitObjectGetInstanceIdEXT, + EOpHitObjectGetGeometryIndexEXT, + EOpHitObjectGetPrimitiveIndexEXT, + EOpHitObjectGetHitKindEXT, + EOpHitObjectGetShaderBindingTableRecordIndexEXT, + EOpHitObjectSetShaderBindingTableRecordIndexEXT, + EOpHitObjectGetShaderRecordBufferHandleEXT, + EOpHitObjectGetAttributesEXT, + EOpHitObjectGetCurrentTimeEXT, + EOpReorderThreadEXT, + EOpHitObjectReorderExecuteEXT, + EOpHitObjectTraceReorderExecuteEXT, + EOpHitObjectTraceMotionReorderExecuteEXT, + EOpHitObjectRecordFromQueryEXT, + EOpHitObjectGetIntersectionTriangleVertexPositionsEXT, // HLSL operations // @@ -1021,6 +1059,7 @@ enum TLinkType { }; class TIntermTraverser; +class TIntermVariableDecl; class TIntermOperator; class TIntermAggregate; class TIntermUnary; @@ -1049,6 +1088,7 @@ class TIntermNode { virtual const glslang::TSourceLoc& getLoc() const { return loc; } virtual void setLoc(const glslang::TSourceLoc& l) { loc = l; } virtual void traverse(glslang::TIntermTraverser*) = 0; + virtual glslang::TIntermVariableDecl* getAsVariableDecl() { return nullptr; } virtual glslang::TIntermTyped* getAsTyped() { return nullptr; } virtual glslang::TIntermOperator* getAsOperator() { return nullptr; } virtual glslang::TIntermConstantUnion* getAsConstantUnion() { return nullptr; } @@ -1062,6 +1102,7 @@ class TIntermNode { virtual glslang::TIntermBranch* getAsBranchNode() { return nullptr; } virtual glslang::TIntermLoop* getAsLoopNode() { return nullptr; } + virtual const glslang::TIntermVariableDecl* getAsVariableDecl() const { return nullptr; } virtual const glslang::TIntermTyped* getAsTyped() const { return nullptr; } virtual const glslang::TIntermOperator* getAsOperator() const { return nullptr; } virtual const glslang::TIntermConstantUnion* getAsConstantUnion() const { return nullptr; } @@ -1092,6 +1133,37 @@ struct TIntermNodePair { TIntermNode* node2; }; +// +// Represent declaration of a variable. +// +class TIntermVariableDecl : public TIntermNode { +public: + TIntermVariableDecl(TIntermSymbol* declSymbol, TIntermNode* initNode) : declSymbol(declSymbol), initNode(initNode) + { + } + TIntermVariableDecl(const TIntermVariableDecl&) = delete; + TIntermVariableDecl& operator=(const TIntermVariableDecl&) = delete; + + void traverse(glslang::TIntermTraverser* traverser) override; + + TIntermVariableDecl* getAsVariableDecl() override { return this; } + const TIntermVariableDecl* getAsVariableDecl() const override { return this; } + + TIntermSymbol* getDeclSymbol() { return declSymbol; } + const TIntermSymbol* getDeclSymbol() const { return declSymbol; } + + TIntermNode* getInitNode() { return initNode; } + const TIntermNode* getInitNode() const { return initNode; } + +private: + // This symbol represents the declared variable at its declaration point. + // It's not traversed by default. To traverse it, the visitor needs to have includeDeclSymbol enabled. + TIntermSymbol* declSymbol = nullptr; + + // The initializer + TIntermNode* initNode = nullptr; +}; + // // Intermediate class for nodes that have a type. // @@ -1136,7 +1208,7 @@ class TIntermTyped : public TIntermNode { // class TIntermLoop : public TIntermNode { public: - TIntermLoop(TIntermNode* aBody, TIntermTyped* aTest, TIntermTyped* aTerminal, bool testFirst) : + TIntermLoop(TIntermNode* aBody, TIntermNode* aTest, TIntermTyped* aTerminal, bool testFirst) : body(aBody), test(aTest), terminal(aTerminal), @@ -1155,10 +1227,20 @@ class TIntermLoop : public TIntermNode { virtual const TIntermLoop* getAsLoopNode() const { return this; } virtual void traverse(TIntermTraverser*); TIntermNode* getBody() const { return body; } - TIntermTyped* getTest() const { return test; } + TIntermNode* getTest() const { return test; } TIntermTyped* getTerminal() const { return terminal; } bool testFirst() const { return first; } + // Because the test node can be a declaration in a while loop, this function unwraps it to get the actual expression. + TIntermTyped* getTestExpr() const { + if (auto decl = test->getAsVariableDecl()) { + return decl->getInitNode()->getAsTyped(); + } + else { + return test->getAsTyped(); + } + } + void setUnroll() { unroll = true; } void setDontUnroll() { dontUnroll = true; @@ -1192,7 +1274,7 @@ class TIntermLoop : public TIntermNode { protected: TIntermNode* body; // code to loop over - TIntermTyped* test; // exit condition associated with loop, could be 0 for 'for' loops + TIntermNode* test; // exit condition associated with loop, could be 0 for 'for' loops TIntermTyped* terminal; // exists for for-loops bool first; // true for while and for, not for do-while bool unroll; // true if unroll requested @@ -1753,24 +1835,26 @@ enum TVisit class TIntermTraverser { public: POOL_ALLOCATOR_NEW_DELETE(glslang::GetThreadPoolAllocator()) - TIntermTraverser(bool preVisit = true, bool inVisit = false, bool postVisit = false, bool rightToLeft = false) : + TIntermTraverser(bool preVisit = true, bool inVisit = false, bool postVisit = false, bool rightToLeft = false, bool includeDeclSymbol = false) : preVisit(preVisit), inVisit(inVisit), postVisit(postVisit), rightToLeft(rightToLeft), + includeDeclSymbol(includeDeclSymbol), depth(0), maxDepth(0) { } virtual ~TIntermTraverser() { } - virtual void visitSymbol(TIntermSymbol*) { } - virtual void visitConstantUnion(TIntermConstantUnion*) { } - virtual bool visitBinary(TVisit, TIntermBinary*) { return true; } - virtual bool visitUnary(TVisit, TIntermUnary*) { return true; } - virtual bool visitSelection(TVisit, TIntermSelection*) { return true; } - virtual bool visitAggregate(TVisit, TIntermAggregate*) { return true; } - virtual bool visitLoop(TVisit, TIntermLoop*) { return true; } - virtual bool visitBranch(TVisit, TIntermBranch*) { return true; } - virtual bool visitSwitch(TVisit, TIntermSwitch*) { return true; } + virtual void visitSymbol(TIntermSymbol*) { } + virtual void visitConstantUnion(TIntermConstantUnion*) { } + virtual bool visitBinary(TVisit, TIntermBinary*) { return true; } + virtual bool visitUnary(TVisit, TIntermUnary*) { return true; } + virtual bool visitSelection(TVisit, TIntermSelection*) { return true; } + virtual bool visitAggregate(TVisit, TIntermAggregate*) { return true; } + virtual bool visitLoop(TVisit, TIntermLoop*) { return true; } + virtual bool visitBranch(TVisit, TIntermBranch*) { return true; } + virtual bool visitSwitch(TVisit, TIntermSwitch*) { return true; } + virtual bool visitVariableDecl(TVisit, TIntermVariableDecl*) { return true; } int getMaxDepth() const { return maxDepth; } @@ -1797,6 +1881,11 @@ class TIntermTraverser { const bool postVisit; const bool rightToLeft; + // Whether to traverse declaration symbols in the traversal. + // By default, declaration symbols are not visited in the traversal to avoid + // visiting them in SPIR-V generation where they are not needed. + const bool includeDeclSymbol; + protected: TIntermTraverser& operator=(TIntermTraverser&); diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp index 6242963..34bc529 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp @@ -4830,17 +4830,19 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uint", "uvec2", "uvec4", "uint64_t", "u64vec2", "u64vec4", }; - for (auto t : allTypes) { - cooperativeMatrixFuncs << "void coopMatLoad(out coopmat m, volatile coherent nontemporal " << t << "[] buf, uint element, uint stride, int matrixLayout);\n"; - cooperativeMatrixFuncs << "void coopMatStore(coopmat m, volatile coherent nontemporal " << t << "[] buf, uint element, uint stride, int matrixLayout);\n"; + for (auto elemTy : {"uint", "uint64_t"}) { + for (auto t : allTypes) { + cooperativeMatrixFuncs << "void coopMatLoad(out coopmat m, volatile coherent nontemporal " << t << "[] buf, " << elemTy << " element, uint stride, int matrixLayout);\n"; + cooperativeMatrixFuncs << "void coopMatStore(coopmat m, volatile coherent nontemporal " << t << "[] buf, " << elemTy << " element, uint stride, int matrixLayout);\n"; + } + // Just use uint8_t for buffer type, we have special matching rules to allow any conversion + cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, " << elemTy << " element, tensorLayoutNV t);\n"; + cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, " << elemTy << " element, tensorLayoutNV t, tensorViewNV v);\n"; + cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, " << elemTy << " element, tensorLayoutNV t, __function f);\n"; + cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, " << elemTy << " element, tensorLayoutNV t, tensorViewNV v, __function f);\n"; + cooperativeMatrixFuncs << "void coopMatStoreTensorNV(coopmat m, volatile coherent nontemporal uint8_t[] buf, " << elemTy << " element, tensorLayoutNV t);\n"; + cooperativeMatrixFuncs << "void coopMatStoreTensorNV(coopmat m, volatile coherent nontemporal uint8_t[] buf, " << elemTy << " element, tensorLayoutNV t, tensorViewNV v);\n"; } - // Just use uint8_t for buffer type, we have special matching rules to allow any conversion - cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, uint element, tensorLayoutNV t);\n"; - cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, uint element, tensorLayoutNV t, tensorViewNV v);\n"; - cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, uint element, tensorLayoutNV t, __function f);\n"; - cooperativeMatrixFuncs << "void coopMatLoadTensorNV(inout coopmat m, volatile coherent nontemporal uint8_t[] buf, uint element, tensorLayoutNV t, tensorViewNV v, __function f);\n"; - cooperativeMatrixFuncs << "void coopMatStoreTensorNV(coopmat m, volatile coherent nontemporal uint8_t[] buf, uint element, tensorLayoutNV t);\n"; - cooperativeMatrixFuncs << "void coopMatStoreTensorNV(coopmat m, volatile coherent nontemporal uint8_t[] buf, uint element, tensorLayoutNV t, tensorViewNV v);\n"; } cooperativeMatrixFuncs << @@ -5001,49 +5003,54 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "float32_t", "float64_t", }; - for (uint32_t i = 0; i < sizeof(basicTypes)/sizeof(basicTypes[0]); ++i) { - std::string func = std::string("void coopVecMatMulNV(out coopvecNV result, ") + - std::string("coopvecNV v, ") + - std::string("int inputInterpretation, ") + - std::string(basicTypes[i]) + std::string("[] matrix, ") + - std::string("uint matrixOffset, ") + - std::string("int matrixInterpretation, ") + - std::string("uint M, ") + - std::string("uint K, ") + - std::string("int matrixLayout, ") + - std::string("bool transpose, ") + - std::string("uint matrixStride);\n"); - commonBuiltins.append(func.c_str()); - - for (uint32_t j = 0; j < sizeof(basicTypes)/sizeof(basicTypes[0]); ++j) { - func = std::string("void coopVecMatMulAddNV(out coopvecNV result, ") + - std::string("coopvecNV v, ") + - std::string("int inputInterpretation, ") + - std::string(basicTypes[i]) + std::string("[] matrix, ") + - std::string("uint matrixOffset, ") + - std::string("int matrixInterpretation, ") + - std::string(basicTypes[j]) + std::string("[] bias, ") + - std::string("uint biasOffset, ") + - std::string("int biasInterpretation, ") + - std::string("uint M, ") + - std::string("uint K, ") + - std::string("int matrixLayout, ") + - std::string("bool transpose, ") + - std::string("uint matrixStride);\n"); + std::string coopVecOffsetTypes[] = { + "uint", + "uint64_t", + }; + for (auto offsetTy : coopVecOffsetTypes) { + for (uint32_t i = 0; i < sizeof(basicTypes)/sizeof(basicTypes[0]); ++i) { + std::string func = std::string("void coopVecMatMulNV(out coopvecNV result, ") + + std::string("coopvecNV v, ") + + std::string("int inputInterpretation, ") + + std::string(basicTypes[i]) + std::string("[] matrix, ") + + offsetTy + std::string(" matrixOffset, ") + + std::string("int matrixInterpretation, ") + + std::string("uint M, ") + + std::string("uint K, ") + + std::string("int matrixLayout, ") + + std::string("bool transpose, ") + + std::string("uint matrixStride);\n"); commonBuiltins.append(func.c_str()); - } - func = std::string("void coopVecOuterProductAccumulateNV(coopvecNV v1, coopvecNV v2, ") + - std::string(basicTypes[i]) + - std::string("[] buf, uint offset, uint stride, int matrixLayout, int matrixInterpretation);\n"); - commonBuiltins.append(func.c_str()); + for (uint32_t j = 0; j < sizeof(basicTypes)/sizeof(basicTypes[0]); ++j) { + func = std::string("void coopVecMatMulAddNV(out coopvecNV result, ") + + std::string("coopvecNV v, ") + + std::string("int inputInterpretation, ") + + std::string(basicTypes[i]) + std::string("[] matrix, ") + + offsetTy + std::string(" matrixOffset, ") + + std::string("int matrixInterpretation, ") + + std::string(basicTypes[j]) + std::string("[] bias, ") + + offsetTy + std::string(" biasOffset, ") + + std::string("int biasInterpretation, ") + + std::string("uint M, ") + + std::string("uint K, ") + + std::string("int matrixLayout, ") + + std::string("bool transpose, ") + + std::string("uint matrixStride);\n"); + commonBuiltins.append(func.c_str()); + } + + func = std::string("void coopVecOuterProductAccumulateNV(coopvecNV v1, coopvecNV v2, ") + + std::string(basicTypes[i]) + + std::string("[] buf, ") + offsetTy + std::string(" offset, uint stride, int matrixLayout, int matrixInterpretation);\n"); + commonBuiltins.append(func.c_str()); - func = std::string("void coopVecReduceSumAccumulateNV(coopvecNV v, ") + - std::string(basicTypes[i]) + - std::string("[] buf, uint offset);\n"); - commonBuiltins.append(func.c_str()); + func = std::string("void coopVecReduceSumAccumulateNV(coopvecNV v, ") + + std::string(basicTypes[i]) + + std::string("[] buf, ") + offsetTy + std::string(" offset);\n"); + commonBuiltins.append(func.c_str()); + } } - std::string cooperativeVectorFuncs = "coopvecNV fma(coopvecNV, coopvecNV, coopvecNV);\n" "coopvecNV min(coopvecNV, coopvecNV);\n" @@ -5105,13 +5112,16 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "f32vec4", "f64vec4", }; - for (uint32_t i = 0; i < sizeof(scalarAndVectorTypes)/sizeof(scalarAndVectorTypes[0]); ++i) { - std::string load = std::string("void coopVecLoadNV(out coopvecNV v, volatile coherent ") + - std::string(scalarAndVectorTypes[i]) + std::string("[] buf, uint offset);"); - std::string store = std::string("void coopVecStoreNV(coopvecNV v, volatile coherent ") + - std::string(scalarAndVectorTypes[i]) + std::string("[] buf, uint offset);"); - commonBuiltins.append(load.c_str()); - commonBuiltins.append(store.c_str()); + + for (auto offsetTy : coopVecOffsetTypes) { + for (uint32_t i = 0; i < sizeof(scalarAndVectorTypes)/sizeof(scalarAndVectorTypes[0]); ++i) { + std::string load = std::string("void coopVecLoadNV(out coopvecNV v, volatile coherent ") + + std::string(scalarAndVectorTypes[i]) + std::string("[] buf, ") + offsetTy + std::string(" offset);"); + std::string store = std::string("void coopVecStoreNV(coopvecNV v, volatile coherent ") + + std::string(scalarAndVectorTypes[i]) + std::string("[] buf, ") + offsetTy + std::string(" offset);"); + commonBuiltins.append(load.c_str()); + commonBuiltins.append(store.c_str()); + } } commonBuiltins.append( @@ -5397,6 +5407,45 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void hitObjectGetLSSRadiiNV(hitObjectNV, out float[2]);" "bool hitObjectIsSphereHitNV(hitObjectNV);" "bool hitObjectIsLSSHitNV(hitObjectNV);" + "void hitObjectTraceRayEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "void hitObjectTraceRayMotionEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" + "void hitObjectRecordMissEXT(hitObjectEXT,uint,uint,vec3,float,vec3,float);" + "void hitObjectRecordMissMotionEXT(hitObjectEXT,uint,uint,vec3,float,vec3,float,float);" + "void hitObjectRecordEmptyEXT(hitObjectEXT);" + "void hitObjectExecuteShaderEXT(hitObjectEXT,int);" + "bool hitObjectIsEmptyEXT(hitObjectEXT);" + "bool hitObjectIsMissEXT(hitObjectEXT);" + "bool hitObjectIsHitEXT(hitObjectEXT);" + "float hitObjectGetRayTMinEXT(hitObjectEXT);" + "float hitObjectGetRayTMaxEXT(hitObjectEXT);" + "uint hitObjectGetRayFlagsEXT(hitObjectEXT);" + "vec3 hitObjectGetWorldRayOriginEXT(hitObjectEXT);" + "vec3 hitObjectGetWorldRayDirectionEXT(hitObjectEXT);" + "vec3 hitObjectGetObjectRayOriginEXT(hitObjectEXT);" + "vec3 hitObjectGetObjectRayDirectionEXT(hitObjectEXT);" + "mat4x3 hitObjectGetWorldToObjectEXT(hitObjectEXT);" + "mat4x3 hitObjectGetObjectToWorldEXT(hitObjectEXT);" + "int hitObjectGetInstanceCustomIndexEXT(hitObjectEXT);" + "int hitObjectGetInstanceIdEXT(hitObjectEXT);" + "int hitObjectGetGeometryIndexEXT(hitObjectEXT);" + "int hitObjectGetPrimitiveIndexEXT(hitObjectEXT);" + "uint hitObjectGetHitKindEXT(hitObjectEXT);" + "void hitObjectGetAttributesEXT(hitObjectEXT,int);" + "float hitObjectGetCurrentTimeEXT(hitObjectEXT);" + "uint hitObjectGetShaderBindingTableRecordIndexEXT(hitObjectEXT);" + "uvec2 hitObjectGetShaderRecordBufferHandleEXT(hitObjectEXT);" + "void hitObjectSetShaderBindingTableRecordIndexEXT(hitObjectEXT, uint);" + "void hitObjectReorderExecuteEXT(hitObjectEXT,int);" + "void hitObjectReorderExecuteEXT(hitObjectEXT,uint,uint,int);" + "void hitObjectTraceReorderExecuteEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "void hitObjectTraceReorderExecuteEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,uint,uint,int);" + "void hitObjectTraceMotionReorderExecuteEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" + "void hitObjectTraceMotionReorderExecuteEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,uint,uint,int);" + "void hitObjectRecordFromQueryEXT(hitObjectEXT, rayQueryEXT, uint, int);" + "void hitObjectGetIntersectionTriangleVertexPositionsEXT(hitObjectEXT, out vec3[3]);" + "void reorderThreadEXT(uint, uint);" + "void reorderThreadEXT(hitObjectEXT);" + "void reorderThreadEXT(hitObjectEXT, uint, uint);" "\n"); stageBuiltins[EShLangIntersect].append( "bool reportIntersectionNV(float, uint);" @@ -5449,6 +5498,36 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void hitObjectGetLSSRadiiNV(hitObjectNV, out float[2]);" "bool hitObjectIsSphereHitNV(hitObjectNV);" "bool hitObjectIsLSSHitNV(hitObjectNV);" + "void hitObjectTraceRayEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "void hitObjectTraceRayMotionEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" + "void hitObjectRecordMissEXT(hitObjectEXT,uint,uint,vec3,float,vec3,float);" + "void hitObjectRecordMissMotionEXT(hitObjectEXT,uint,uint,vec3,float,vec3,float,float);" + "void hitObjectRecordEmptyEXT(hitObjectEXT);" + "void hitObjectExecuteShaderEXT(hitObjectEXT,int);" + "bool hitObjectIsEmptyEXT(hitObjectEXT);" + "bool hitObjectIsMissEXT(hitObjectEXT);" + "bool hitObjectIsHitEXT(hitObjectEXT);" + "float hitObjectGetRayTMinEXT(hitObjectEXT);" + "float hitObjectGetRayTMaxEXT(hitObjectEXT);" + "uint hitObjectGetRayFlagsEXT(hitObjectEXT);" + "vec3 hitObjectGetWorldRayOriginEXT(hitObjectEXT);" + "vec3 hitObjectGetWorldRayDirectionEXT(hitObjectEXT);" + "vec3 hitObjectGetObjectRayOriginEXT(hitObjectEXT);" + "vec3 hitObjectGetObjectRayDirectionEXT(hitObjectEXT);" + "mat4x3 hitObjectGetWorldToObjectEXT(hitObjectEXT);" + "mat4x3 hitObjectGetObjectToWorldEXT(hitObjectEXT);" + "int hitObjectGetInstanceCustomIndexEXT(hitObjectEXT);" + "int hitObjectGetInstanceIdEXT(hitObjectEXT);" + "int hitObjectGetGeometryIndexEXT(hitObjectEXT);" + "int hitObjectGetPrimitiveIndexEXT(hitObjectEXT);" + "uint hitObjectGetHitKindEXT(hitObjectEXT);" + "void hitObjectGetAttributesEXT(hitObjectEXT,int);" + "float hitObjectGetCurrentTimeEXT(hitObjectEXT);" + "uint hitObjectGetShaderBindingTableRecordIndexEXT(hitObjectEXT);" + "uvec2 hitObjectGetShaderRecordBufferHandleEXT(hitObjectEXT);" + "void hitObjectSetShaderBindingTableRecordIndexEXT(hitObjectEXT, uint);" + "void hitObjectRecordFromQueryEXT(hitObjectEXT, rayQueryEXT,uint, int);" + "void hitObjectGetIntersectionTriangleVertexPositionsEXT(hitObjectEXT, out vec3[3]);" "\n"); stageBuiltins[EShLangMiss].append( "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" @@ -5493,6 +5572,36 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "void hitObjectGetLSSRadiiNV(hitObjectNV, out float[2]);" "bool hitObjectIsSphereHitNV(hitObjectNV);" "bool hitObjectIsLSSHitNV(hitObjectNV);" + "void hitObjectTraceRayEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" + "void hitObjectTraceRayMotionEXT(hitObjectEXT,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);" + "void hitObjectRecordMissEXT(hitObjectEXT,uint,uint,vec3,float,vec3,float);" + "void hitObjectRecordMissMotionEXT(hitObjectEXT,uint,uint,vec3,float,vec3,float,float);" + "void hitObjectRecordEmptyEXT(hitObjectEXT);" + "void hitObjectExecuteShaderEXT(hitObjectEXT,int);" + "bool hitObjectIsEmptyEXT(hitObjectEXT);" + "bool hitObjectIsMissEXT(hitObjectEXT);" + "bool hitObjectIsHitEXT(hitObjectEXT);" + "float hitObjectGetRayTMinEXT(hitObjectEXT);" + "float hitObjectGetRayTMaxEXT(hitObjectEXT);" + "uint hitObjectGetRayFlagsEXT(hitObjectEXT);" + "vec3 hitObjectGetWorldRayOriginEXT(hitObjectEXT);" + "vec3 hitObjectGetWorldRayDirectionEXT(hitObjectEXT);" + "vec3 hitObjectGetObjectRayOriginEXT(hitObjectEXT);" + "vec3 hitObjectGetObjectRayDirectionEXT(hitObjectEXT);" + "mat4x3 hitObjectGetWorldToObjectEXT(hitObjectEXT);" + "mat4x3 hitObjectGetObjectToWorldEXT(hitObjectEXT);" + "int hitObjectGetInstanceCustomIndexEXT(hitObjectEXT);" + "int hitObjectGetInstanceIdEXT(hitObjectEXT);" + "int hitObjectGetGeometryIndexEXT(hitObjectEXT);" + "int hitObjectGetPrimitiveIndexEXT(hitObjectEXT);" + "uint hitObjectGetHitKindEXT(hitObjectEXT);" + "void hitObjectGetAttributesEXT(hitObjectEXT,int);" + "float hitObjectGetCurrentTimeEXT(hitObjectEXT);" + "uint hitObjectGetShaderBindingTableRecordIndexEXT(hitObjectEXT);" + "uvec2 hitObjectGetShaderRecordBufferHandleEXT(hitObjectEXT);" + "void hitObjectSetShaderBindingTableRecordIndexEXT(hitObjectEXT, uint);" + "void hitObjectRecordFromQueryEXT(hitObjectEXT, rayQueryEXT, uint, int);" + "void hitObjectGetIntersectionTriangleVertexPositionsEXT(hitObjectEXT, out vec3[3]);" "\n"); stageBuiltins[EShLangCallable].append( "void executeCallableNV(uint, int);" @@ -6965,7 +7074,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV false, ms ? true : false); - TString typeName = sampler.getString(); + TString typeName = TString{sampler.getString()}; addQueryFunctions(sampler, typeName, version, profile); addImageFunctions(sampler, typeName, version, profile); @@ -7068,7 +7177,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c ms ? true : false); } - TString typeName = sampler.getString(); + TString typeName = TString{sampler.getString()}; if (dim == EsdSubpass) { addSubpassSampling(sampler, typeName, version, profile); @@ -7092,7 +7201,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c // texture types. sampler.setTexture(sampler.type, sampler.dim, sampler.arrayed, sampler.shadow, sampler.ms); - TString textureTypeName = sampler.getString(); + TString textureTypeName = TString{sampler.getString()}; addSamplingFunctions(sampler, textureTypeName, version, profile); addQueryFunctions(sampler, textureTypeName, version, profile); } @@ -9782,10 +9891,32 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion } { - symbolTable.setFunctionExtensions("coopMatLoad", 1, &E_GL_KHR_cooperative_matrix); - symbolTable.setFunctionExtensions("coopMatStore", 1, &E_GL_KHR_cooperative_matrix); + auto coopMatKHRCallback = [](const char *name) -> std::vector { + std::vector ret; + if (strstr(name, "u64") != nullptr) { + ret.push_back(E_GL_EXT_shader_64bit_indexing); + } else { + ret.push_back(E_GL_KHR_cooperative_matrix); + } + return ret; + }; + auto coopMat2NVCallback = [](const char *name) -> std::vector { + std::vector ret; + if (strstr(name, "u64") != nullptr) { + ret.push_back(E_GL_EXT_shader_64bit_indexing); + } else { + ret.push_back(E_GL_NV_cooperative_matrix2); + } + return ret; + }; + + symbolTable.setFunctionExtensionsCallback("coopMatLoad", coopMatKHRCallback); + symbolTable.setFunctionExtensionsCallback("coopMatStore", coopMatKHRCallback); symbolTable.setFunctionExtensions("coopMatMulAdd", 1, &E_GL_KHR_cooperative_matrix); + symbolTable.setFunctionExtensionsCallback("coopMatLoadTensorNV", coopMat2NVCallback); + symbolTable.setFunctionExtensionsCallback("coopMatStoreTensorNV", coopMat2NVCallback); + symbolTable.setFunctionExtensions("coopMatReduceNV", 1, &E_GL_NV_cooperative_matrix2); symbolTable.setFunctionExtensions("coopMatPerElementNV", 1, &E_GL_NV_cooperative_matrix2); symbolTable.setFunctionExtensions("coopMatTransposeNV", 1, &E_GL_NV_cooperative_matrix2); @@ -9808,12 +9939,23 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("tensorWriteARM", 1, &E_GL_ARM_tensors); symbolTable.setFunctionExtensions("tensorSizeARM", 1, &E_GL_ARM_tensors); } - { - symbolTable.setFunctionExtensions("coopVecMatMulNV", 1, &E_GL_NV_cooperative_vector); - symbolTable.setFunctionExtensions("coopVecMatMulAddNV", 1, &E_GL_NV_cooperative_vector); - symbolTable.setFunctionExtensions("coopVecOuterProductAccumulateNV", 1, &E_GL_NV_cooperative_vector); - symbolTable.setFunctionExtensions("coopVecReduceSumAccumulateNV", 1, &E_GL_NV_cooperative_vector); + auto coopVecCallback = [](const char *name) -> std::vector { + std::vector ret; + // This looks for u64 as the last parameter (the offset) + if (strstr(name, "u641;") != nullptr) { + ret.push_back(E_GL_EXT_shader_64bit_indexing); + } else { + ret.push_back(E_GL_NV_cooperative_vector); + } + return ret; + }; + symbolTable.setFunctionExtensionsCallback("coopVecMatMulNV", coopVecCallback); + symbolTable.setFunctionExtensionsCallback("coopVecMatMulAddNV", coopVecCallback); + symbolTable.setFunctionExtensionsCallback("coopVecLoadNV", coopVecCallback); + symbolTable.setFunctionExtensionsCallback("coopVecStoreNV", coopVecCallback); + symbolTable.setFunctionExtensionsCallback("coopVecOuterProductAccumulateNV", coopVecCallback); + symbolTable.setFunctionExtensionsCallback("coopVecReduceSumAccumulateNV", coopVecCallback); } { @@ -9997,6 +10139,40 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("hitObjectGetLSSRadiiNV", 1, &E_GL_NV_linear_swept_spheres); symbolTable.setFunctionExtensions("hitObjectIsSphereHitNV", 1, &E_GL_NV_linear_swept_spheres); symbolTable.setFunctionExtensions("hitObjectIsLSSHitNV", 1, &E_GL_NV_linear_swept_spheres); + symbolTable.setFunctionExtensions("hitObjectTraceRayEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectTraceRayMotionEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectRecordMissEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectRecordMissMotionEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectRecordEmptyEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectExecuteShaderEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectIsEmptyEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectIsMissEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectIsHitEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetRayTMinEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetRayTMaxEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetRayFlagsEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetObjectRayOriginEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetObjectRayDirectionEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetWorldRayOriginEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetWorldRayDirectionEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetWorldToObjectEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetObjectToWorldEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetInstanceCustomIndexEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetInstanceIdEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetGeometryIndexEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetPrimitiveIndexEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetHitKindEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetAttributesEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetCurrentTimeEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetShaderBindingTableRecordIndexEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetShaderRecordBufferHandleEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectSetShaderBindingTableRecordIndexEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("reorderThreadEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectReorderExecuteEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectTraceReorderExecuteEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectTraceMotionReorderExecuteEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectRecordFromQueryEXT", 1, &E_GL_EXT_shader_invocation_reorder); + symbolTable.setFunctionExtensions("hitObjectGetIntersectionTriangleVertexPositionsEXT", 1, &E_GL_EXT_shader_invocation_reorder); BuiltInVariable("gl_LaunchIDNV", EbvLaunchId, symbolTable); @@ -11200,6 +11376,40 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("hitObjectGetLSSRadiiNV", EOpHitObjectGetLSSRadiiNV); symbolTable.relateToOperator("hitObjectIsSphereHitNV", EOpHitObjectIsSphereHitNV); symbolTable.relateToOperator("hitObjectIsLSSHitNV", EOpHitObjectIsLSSHitNV); + symbolTable.relateToOperator("hitObjectTraceRayEXT", EOpHitObjectTraceRayEXT); + symbolTable.relateToOperator("hitObjectTraceRayMotionEXT", EOpHitObjectTraceRayMotionEXT); + symbolTable.relateToOperator("hitObjectRecordMissEXT", EOpHitObjectRecordMissEXT); + symbolTable.relateToOperator("hitObjectRecordMissMotionEXT", EOpHitObjectRecordMissMotionEXT); + symbolTable.relateToOperator("hitObjectRecordEmptyEXT", EOpHitObjectRecordEmptyEXT); + symbolTable.relateToOperator("hitObjectExecuteShaderEXT", EOpHitObjectExecuteShaderEXT); + symbolTable.relateToOperator("hitObjectIsEmptyEXT", EOpHitObjectIsEmptyEXT); + symbolTable.relateToOperator("hitObjectIsMissEXT", EOpHitObjectIsMissEXT); + symbolTable.relateToOperator("hitObjectIsHitEXT", EOpHitObjectIsHitEXT); + symbolTable.relateToOperator("hitObjectGetRayTMinEXT", EOpHitObjectGetRayTMinEXT); + symbolTable.relateToOperator("hitObjectGetRayTMaxEXT", EOpHitObjectGetRayTMaxEXT); + symbolTable.relateToOperator("hitObjectGetRayFlagsEXT", EOpHitObjectGetRayFlagsEXT); + symbolTable.relateToOperator("hitObjectGetObjectRayOriginEXT", EOpHitObjectGetObjectRayOriginEXT); + symbolTable.relateToOperator("hitObjectGetObjectRayDirectionEXT", EOpHitObjectGetObjectRayDirectionEXT); + symbolTable.relateToOperator("hitObjectGetWorldRayOriginEXT", EOpHitObjectGetWorldRayOriginEXT); + symbolTable.relateToOperator("hitObjectGetWorldRayDirectionEXT", EOpHitObjectGetWorldRayDirectionEXT); + symbolTable.relateToOperator("hitObjectGetWorldToObjectEXT", EOpHitObjectGetWorldToObjectEXT); + symbolTable.relateToOperator("hitObjectGetObjectToWorldEXT", EOpHitObjectGetObjectToWorldEXT); + symbolTable.relateToOperator("hitObjectGetInstanceCustomIndexEXT", EOpHitObjectGetInstanceCustomIndexEXT); + symbolTable.relateToOperator("hitObjectGetInstanceIdEXT", EOpHitObjectGetInstanceIdEXT); + symbolTable.relateToOperator("hitObjectGetGeometryIndexEXT", EOpHitObjectGetGeometryIndexEXT); + symbolTable.relateToOperator("hitObjectGetPrimitiveIndexEXT", EOpHitObjectGetPrimitiveIndexEXT); + symbolTable.relateToOperator("hitObjectGetHitKindEXT", EOpHitObjectGetHitKindEXT); + symbolTable.relateToOperator("hitObjectGetAttributesEXT", EOpHitObjectGetAttributesEXT); + symbolTable.relateToOperator("hitObjectGetCurrentTimeEXT", EOpHitObjectGetCurrentTimeEXT); + symbolTable.relateToOperator("hitObjectGetShaderBindingTableRecordIndexEXT", EOpHitObjectGetShaderBindingTableRecordIndexEXT); + symbolTable.relateToOperator("hitObjectGetShaderRecordBufferHandleEXT", EOpHitObjectGetShaderRecordBufferHandleEXT); + symbolTable.relateToOperator("hitObjectSetShaderBindingTableRecordIndexEXT", EOpHitObjectSetShaderBindingTableRecordIndexEXT); + symbolTable.relateToOperator("reorderThreadEXT", EOpReorderThreadEXT); + symbolTable.relateToOperator("hitObjectReorderExecuteEXT", EOpHitObjectReorderExecuteEXT); + symbolTable.relateToOperator("hitObjectTraceReorderExecuteEXT", EOpHitObjectTraceReorderExecuteEXT); + symbolTable.relateToOperator("hitObjectTraceMotionReorderExecuteEXT", EOpHitObjectTraceMotionReorderExecuteEXT); + symbolTable.relateToOperator("hitObjectRecordFromQueryEXT", EOpHitObjectRecordFromQueryEXT); + symbolTable.relateToOperator("hitObjectGetIntersectionTriangleVertexPositionsEXT", EOpHitObjectGetIntersectionTriangleVertexPositionsEXT); } break; case EShLangIntersect: diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/IntermTraverse.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/IntermTraverse.cpp index 553b1b5..447e8cb 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/IntermTraverse.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/IntermTraverse.cpp @@ -306,4 +306,35 @@ void TIntermSwitch::traverse(TIntermTraverser* it) it->visitSwitch(EvPostVisit, this); } +// +// Traverse a variable declaration. +// +void TIntermVariableDecl::traverse(TIntermTraverser *it) +{ + bool visit = true; + + if (it->preVisit) + visit = it->visitVariableDecl(EvPreVisit, this); + + if (visit) { + it->incrementDepth(this); + if (it->rightToLeft) { + if (it->includeDeclSymbol) + declSymbol->traverse(it); + if (initNode) + initNode->traverse(it); + } + else { + if (initNode) + initNode->traverse(it); + if (it->includeDeclSymbol) + declSymbol->traverse(it); + } + it->decrementDepth(); + } + + if (visit && it->postVisit) + it->visitVariableDecl(EvPostVisit, this); +} + } // end namespace glslang diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp index 60116ef..90410f0 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp @@ -118,7 +118,8 @@ TIntermSymbol* TIntermediate::addSymbol(const TType& type, const TSourceLoc& loc TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc& loc) { // No operations work on blocks - if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock) + if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock || + left->getType().getBasicType() == EbtString || right->getType().getBasicType() == EbtString) return nullptr; // Convert "reference +/- int" and "reference - reference" to integer math @@ -2382,7 +2383,8 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true trueBlock = std::get<0>(children); falseBlock = std::get<1>(children); - if (trueBlock == nullptr || falseBlock == nullptr) + if (trueBlock == nullptr || falseBlock == nullptr || + trueBlock->getBasicType() == EbtString || falseBlock->getBasicType() == EbtString) return nullptr; // Handle a vector condition as a mix @@ -2650,7 +2652,7 @@ const TIntermTyped* TIntermediate::traverseLValueBase(const TIntermTyped* node, // // Create while and do-while loop nodes. // -TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, +TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermNode* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) { TIntermLoop* node = new TIntermLoop(body, test, terminal, testFirst); @@ -2662,7 +2664,7 @@ TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TInte // // Create a for-loop sequence. // -TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, +TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermNode* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc, TIntermLoop*& node) { node = new TIntermLoop(body, test, terminal, testFirst); diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/LiveTraverser.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/LiveTraverser.h index 0e9d748..76ccfec 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/LiveTraverser.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/LiveTraverser.h @@ -59,8 +59,8 @@ namespace glslang { class TLiveTraverser : public TIntermTraverser { public: TLiveTraverser(const TIntermediate& i, bool traverseAll = false, - bool preVisit = true, bool inVisit = false, bool postVisit = false) : - TIntermTraverser(preVisit, inVisit, postVisit), + bool preVisit = true, bool inVisit = false, bool postVisit = false, bool includeDeclSymbol = false) : + TIntermTraverser(preVisit, inVisit, postVisit, false, includeDeclSymbol), intermediate(i), traverseAll(traverseAll) { } diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp index 95c7f00..45ada17 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp @@ -171,6 +171,9 @@ bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, case EbtHitObjectNV: message = "can't modify hitObjectNV"; break; + case EbtHitObjectEXT: + message = "can't modify hitObjectEXT"; + break; default: break; } @@ -279,7 +282,7 @@ void TParseContextBase::trackLinkage(TSymbol& symbol) // Ensure index is in bounds, correct if necessary. // Give an error if not. -void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int& index) +void TParseContextBase::checkIndex(const TSourceLoc& loc, const TType& type, int64_t& index) { const auto sizeIsSpecializationExpression = [&type]() { return type.containsSpecializationSize() && @@ -484,6 +487,16 @@ const TFunction* TParseContextBase::selectFunction( return true; }; + const auto enabled = [this](const TFunction& candidate) -> bool { + bool enabled = candidate.getNumExtensions() == 0; + for (int i = 0; i < candidate.getNumExtensions(); ++i) { + TExtensionBehavior behavior = getExtensionBehavior(candidate.getExtensions()[i]); + if (behavior == EBhEnable || behavior == EBhRequire) + enabled = true; + } + return enabled; + }; + const TFunction* incumbent = viableCandidates.front(); for (auto it = viableCandidates.begin() + 1; it != viableCandidates.end(); ++it) { const TFunction& candidate = *(*it); @@ -499,7 +512,7 @@ const TFunction* TParseContextBase::selectFunction( // In the case of default parameters, it may have an identical initial set, which is // also ambiguous - if (betterParam(*incumbent, candidate) || equivalentParams(*incumbent, candidate)) + if ((betterParam(*incumbent, candidate) || equivalentParams(*incumbent, candidate)) && enabled(candidate)) tie = true; } diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp index b9bd764..667ed67 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp @@ -43,6 +43,7 @@ #include "Scan.h" #include +#include #include "Versions.h" #include "preprocessor/PpContext.h" @@ -404,6 +405,14 @@ void TParseContext::handlePragma(const TSourceLoc& loc, const TVector& if (tokens.size() != 1) error(loc, "extra tokens", "#pragma", ""); intermediate.setReplicatedComposites(); + } else if (spvVersion.spv > 0 && tokens[0].compare("promote_uint32_indices") == 0) { + if (tokens.size() != 1) + error(loc, "extra tokens", "#pragma", ""); + intermediate.setPromoteUint32Indices(); + } else if (spvVersion.spv > 0 && tokens[0].compare("shader_64bit_indexing") == 0) { + if (tokens.size() != 1) + error(loc, "extra tokens", "#pragma", ""); + intermediate.setShader64BitIndexing(); } else if (tokens[0].compare("once") == 0) { warn(loc, "not implemented", "#pragma once", ""); } else if (tokens[0].compare("glslang_binary_double_output") == 0) { @@ -542,10 +551,16 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb // TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) { - int indexValue = 0; - if (index->getQualifier().isFrontEndConstant()) - indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); - + int64_t indexValue = 0; + if (index->getQualifier().isFrontEndConstant()) { + if (index->getType().contains64BitInt()) { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getI64Const(); + } else if (index->getType().getBasicType() == EbtUint) { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getUConst(); + } else { + indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + } + } // basic type checks... variableCheck(base); @@ -624,7 +639,8 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn TType& leftType = binaryNode->getLeft()->getWritableType(); TArraySizes& arraySizes = *leftType.getArraySizes(); assert(arraySizes.getNumDims() == 2); - arraySizes.setDimSize(1, std::max(arraySizes.getDimSize(1), indexValue + 1)); + assert(indexValue < std::numeric_limits::max()); + arraySizes.setDimSize(1, std::max(arraySizes.getDimSize(1), (int)indexValue + 1)); } } } else @@ -972,10 +988,10 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm // Save away the name in the AST for now. Processing is completed in // handleLengthMethod(). // - if (field == "length") { + if (field == "length" || field == "length64") { if (base->isArray()) { - profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, ".length"); - profileRequires(loc, EEsProfile, 300, nullptr, ".length"); + profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, (TString(".") + field).c_str()); + profileRequires(loc, EEsProfile, 300, nullptr, (TString(".") + field).c_str()); } else if (base->isVector() || base->isMatrix()) { const char* feature = ".length() on vectors and matrices"; requireProfile(loc, ~EEsProfile, feature); @@ -986,7 +1002,12 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm return base; } - return intermediate.addMethod(base, TType(EbtInt), &field, loc); + if (field == "length") { + return intermediate.addMethod(base, TType(EbtInt), &field, loc); + } else { + requireExtensions(loc, 1, &E_GL_EXT_shader_64bit_indexing, "length64"); + return intermediate.addMethod(base, TType(EbtInt64), &field, loc); + } } // It's not .length() if we get to here. @@ -1484,6 +1505,17 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction i == 1 && arg->getAsTyped()->getType().getBasicType() != aggregate->getSequence()[0]->getAsTyped()->getType().getBasicType()) error(arguments->getLoc(), "cooperative vector basic types must match", fnCandidate->getName().c_str(), ""); + // Check that coopVecLoadNV and coopVecStoreNV buffer parameter is in buffer or shared storage + if (builtIn && (fnCandidate->getBuiltInOp() == EOpCooperativeVectorLoadNV || + fnCandidate->getBuiltInOp() == EOpCooperativeVectorStoreNV) && + i == 1) { + TStorageQualifier storage = arg->getAsTyped()->getType().getQualifier().storage; + if (storage != EvqBuffer && storage != EvqShared) { + error(arguments->getLoc(), "buffer argument must be in buffer or shared storage", + fnCandidate->getName().c_str(), ""); + } + } + // TODO 4.5 functionality: A shader will fail to compile // if the value passed to the memargument of an atomic memory function does not correspond to a buffer or // shared variable. It is acceptable to pass an element of an array or a single component of a vector to the @@ -1777,7 +1809,81 @@ void TParseContext::handleCoopMat2FunctionCall(const TSourceLoc& loc, const TFun // Set result type to match type of first parameter result->setType(result->getAsAggregate()->getSequence()[0]->getAsTyped()->getType()); } else { - // For MulAdd, set result type to match type of C parameter + // The only remaining operation is MulAdd + assert(fnCandidate->getBuiltInOp() == EOpCooperativeMatrixMulAdd || + fnCandidate->getBuiltInOp() == EOpCooperativeMatrixMulAddNV); + + // Validate that the matrix sizes are compatible for multiplication and addition + const auto &sequence = arguments->getAsAggregate()->getSequence(); + + using ArrayDim = const TArraySize&; + auto getDim = [](const TIntermSequence& seq, int idx) -> std::tuple { + const auto &type = seq[idx]->getAsTyped()->getType(); + const auto *size = type.getTypeParameters()->arraySizes; + + if (type.isCoopMatNV()) { + // coopmatNV don't encode usage, so provide the correct usage by default + return {size->getArraySize(2), size->getArraySize(3), idx}; + } else { + assert(type.isCoopMatKHR()); + return {size->getArraySize(1), size->getArraySize(2), size->getDimSize(3)}; + } + }; + + // sizes look like: [scope, rows, cols, use] + auto [aRows, aCols, aUse] = getDim(sequence, 0); + auto [bRows, bCols, bUse] = getDim(sequence, 1); + auto [cRows, cCols, cUse] = getDim(sequence, 2); + + auto toString = [](ArrayDim dim) -> std::string { + std::stringstream buf; + if (dim.node == nullptr) { + buf << dim.size; + } else { + buf << "spec_const"; + } + return buf.str(); + }; + + if (aCols != bRows) { + auto aRowsStr = toString(aRows); + auto aColsStr = toString(aCols); + auto bRowsStr = toString(bRows); + auto bColsStr = toString(bCols); + error(loc, "cannot multiply coop matrices with incompatible sizes", + sequence[0]->getAsSymbolNode()->getMangledName().c_str(), + "%s x %s with %s x %s", + aRowsStr.c_str(), + aColsStr.c_str(), + bRowsStr.c_str(), + bColsStr.c_str()); + } else if (aRows != cRows || bCols != cCols) { + auto aRowsStr = toString(aRows); + auto bColsStr = toString(bCols); + auto cRowsStr = toString(cRows); + auto cColsStr = toString(cCols); + error(loc, "cannot add coop matrices with incompatible sizes", + sequence[2]->getAsSymbolNode()->getMangledName().c_str(), + "%s x %s with %s x %s", + aRowsStr.c_str(), + bColsStr.c_str(), + cRowsStr.c_str(), + cColsStr.c_str()); + } else if (aUse != 0) { + error(loc, "coop matrix A in MulAdd operation has incompatible usage property,", + sequence[0]->getAsSymbolNode()->getMangledName().c_str(), + "found %d, but needed 0", aUse); + } else if (bUse != 1) { + error(loc, "coop matrix B in MulAdd operation has incompatible usage property,", + sequence[1]->getAsSymbolNode()->getMangledName().c_str(), + "found %d, but needed 1", bUse); + } else if (cUse != 2) { + error(loc, "coop matrix C in MulAdd operation has incompatible usage property,", + sequence[2]->getAsSymbolNode()->getMangledName().c_str(), + "found %d, but needed 2", cUse); + } + + // Set result type to match type of C parameter result->setType(result->getAsAggregate()->getSequence()[2]->getAsTyped()->getType()); } } @@ -1789,9 +1895,9 @@ static const uint32_t spv_Scope_Subgroup = 3; void TParseContext::handleVector2CoopMatConversionCall(const TSourceLoc& loc, const TFunction* fnCandidate, TIntermTyped*& result, TIntermNode* arguments) { - const int CM_MatrixUseA = 0; // == gl_MatrixUseA - const int CM_MatrixUseB = 1; // == gl_MatrixUseB - const int CM_MatrixUseAccumulator = 2; // == gl_MatrixUseAccumulator + const uint32_t CM_MatrixUseA = 0; // == gl_MatrixUseA + const uint32_t CM_MatrixUseB = 1; // == gl_MatrixUseB + const uint32_t CM_MatrixUseAccumulator = 2; // == gl_MatrixUseAccumulator TOperator builtinOp = fnCandidate->getBuiltInOp(); @@ -1883,7 +1989,7 @@ void TParseContext::handleVector2CoopMatConversionCall(const TSourceLoc& loc, co error(loc, "cooperative matrix has unsupported scope; gl_SubgroupScope is expected", "", ""); } - if (coopMatKHRuse < CM_MatrixUseA || coopMatKHRuse > CM_MatrixUseAccumulator) { + if (coopMatKHRuse > CM_MatrixUseAccumulator) { coopMatKHRuse = CM_MatrixUseA; error(loc, "cooperative matrix use must be one of gl_MatrixUseA, gl_MatrixUseB, gl_MatrixUseAccumulator", "", ""); @@ -1961,7 +2067,7 @@ void TParseContext::handleVector2CoopMatConversionCall(const TSourceLoc& loc, co error(loc, "cooperative matrix has unsupported scope; gl_SubgroupScope is expected", "", ""); } - if (coopMatKHRuse < CM_MatrixUseA || coopMatKHRuse > CM_MatrixUseAccumulator) { + if (coopMatKHRuse > CM_MatrixUseAccumulator) { coopMatKHRuse = CM_MatrixUseA; error(loc, "cooperative matrix use must be one of gl_MatrixUseA, gl_MatrixUseB, gl_MatrixUseAccumulator", "", ""); @@ -2354,7 +2460,7 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier"); else if (isRuntimeLength(*intermNode->getAsTyped())) { // Create a unary op and let the back end handle it - return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); + return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, function->getType()); } else error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method"); } @@ -2737,6 +2843,19 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan TString featureString; const char* feature = nullptr; + + auto checkConstantArgWithLocation = [&](int argIndex, const char* argDescription, + const char* errMsg, int ioRTLocationSet) { + //ioRTLocationSet refers to grouping of locations of RT input/outputs as defined in TIntermediate::usedIoRT + if (!(*argp)[argIndex]->getAsConstantUnion()) { + error(loc, "argument must be compile-time constant", argDescription, argIndex == 10 ? "a" : ""); + } else if (ioRTLocationSet >= 0) { + unsigned int location = (*argp)[argIndex]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); + if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(ioRTLocationSet, location) < 0) + error(loc, "with layout(location =", errMsg, "%d)", location); + } + }; + switch (callNode.getOp()) { case EOpTextureGather: case EOpTextureGatherOffset: @@ -3026,108 +3145,46 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan break; } + case EOpTraceNV: - if (!(*argp)[10]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", "a"); + checkConstantArgWithLocation(10, "payload number", nullptr, -1); break; case EOpTraceRayMotionNV: - if (!(*argp)[11]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", "a"); + checkConstantArgWithLocation(11, "payload number", nullptr, -1); break; case EOpTraceKHR: - if (!(*argp)[10]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", "a"); - else { - unsigned int location = (*argp)[10]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0) - error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location); - } + checkConstantArgWithLocation(10, "payload number", "no rayPayloadEXT/rayPayloadInEXT declared", 0); break; case EOpExecuteCallableNV: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "callable data number", ""); + checkConstantArgWithLocation(1, "callable data number", nullptr, -1); break; case EOpExecuteCallableKHR: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "callable data number", ""); - else { - unsigned int location = (*argp)[1]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(1, location) < 0) - error(loc, "with layout(location =", "no callableDataEXT/callableDataInEXT declared", "%d)", location); - } + checkConstantArgWithLocation(1, "callable data number", "no callableDataEXT/callableDataInEXT declared", 1); break; case EOpHitObjectTraceRayNV: - if (!(*argp)[11]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", ""); - else { - unsigned int location = (*argp)[11]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0) - error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location); - } + checkConstantArgWithLocation(11, "payload number", "no rayPayloadEXT/rayPayloadInEXT declared", 0); break; case EOpHitObjectTraceRayMotionNV: - if (!(*argp)[12]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", ""); - else { - unsigned int location = (*argp)[12]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0) - error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location); - } + checkConstantArgWithLocation(12, "payload number", "no rayPayloadEXT/rayPayloadInEXT declared", 0); break; case EOpHitObjectExecuteShaderNV: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "payload number", ""); - else { - unsigned int location = (*argp)[1]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0) - error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location); - } + checkConstantArgWithLocation(1, "payload number", "no rayPayloadEXT/rayPayloadInEXT declared", 0); break; case EOpHitObjectRecordHitNV: - if (!(*argp)[12]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "hitobjectattribute number", ""); - else { - unsigned int location = (*argp)[12]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0) - error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location); - } + checkConstantArgWithLocation(12, "hitobjectattribute number", "no hitObjectAttributeNV declared", 2); break; case EOpHitObjectRecordHitMotionNV: - if (!(*argp)[13]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "hitobjectattribute number", ""); - else { - unsigned int location = (*argp)[13]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0) - error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location); - } + checkConstantArgWithLocation(13, "hitobjectattribute number", "no hitObjectAttributeNV declared", 2); break; case EOpHitObjectRecordHitWithIndexNV: - if (!(*argp)[11]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "hitobjectattribute number", ""); - else { - unsigned int location = (*argp)[11]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0) - error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location); - } + checkConstantArgWithLocation(11, "hitobjectattribute number", "no hitObjectAttributeNV declared", 2); break; case EOpHitObjectRecordHitWithIndexMotionNV: - if (!(*argp)[12]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "hitobjectattribute number", ""); - else { - unsigned int location = (*argp)[12]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0) - error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location); - } + checkConstantArgWithLocation(12, "hitobjectattribute number", "no hitObjectAttributeNV declared", 2); break; case EOpHitObjectGetAttributesNV: - if (!(*argp)[1]->getAsConstantUnion()) - error(loc, "argument must be compile-time constant", "hitobjectattribute number", ""); - else { - unsigned int location = (*argp)[1]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst(); - if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0) - error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location); - } + checkConstantArgWithLocation(1, "hitobjectattribute number", "no hitObjectAttributeNV declared", 2); break; case EOpRayQueryGetIntersectionType: @@ -4098,6 +4155,21 @@ void TParseContext::integerCheck(const TIntermTyped* node, const char* token) error(node->getLoc(), "scalar integer expression required", token, ""); } +// +// Both test, and if necessary spit out an error, to see if the node is really +// supported as an array index. +// +void TParseContext::arrayIndexCheck(const TIntermTyped* node, const char* token) +{ + auto from_type = node->getBasicType(); + + if ((from_type == EbtInt64 || from_type == EbtUint64) && + extensionTurnedOn(E_GL_EXT_shader_64bit_indexing)) + return; + + integerCheck(node, token); +} + // // Both test, and if necessary spit out an error, to see if we are currently // globally scoped. @@ -4773,11 +4845,22 @@ void TParseContext::accStructCheck(const TSourceLoc& loc, const TType& type, con } +void TParseContext::hitObjectEXTCheck(const TSourceLoc & loc, const TType & type, const TString & identifier) +{ + if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtHitObjectEXT)) { + error(loc, "struct is not allowed to contain hitObjectEXT:", type.getTypeName().c_str(), identifier.c_str()); + } else if (type.getBasicType() == EbtHitObjectEXT) { + TStorageQualifier qualifier = type.getQualifier().storage; + if (qualifier != EvqGlobal && qualifier != EvqTemporary) { + error(loc, "hitObjectEXT can only be declared in global or function scope with no storage qualifier:", "hitObjectEXT", identifier.c_str()); + } + } +} void TParseContext::hitObjectNVCheck(const TSourceLoc & loc, const TType & type, const TString & identifier) { - if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtHitObjectNV)) { + if (type.getBasicType() == EbtStruct && ( containsFieldWithBasicType(type, EbtHitObjectNV))) { error(loc, "struct is not allowed to contain hitObjectNV:", type.getTypeName().c_str(), identifier.c_str()); - } else if (type.getBasicType() == EbtHitObjectNV) { + } else if ((type.getBasicType() == EbtHitObjectNV)) { TStorageQualifier qualifier = type.getQualifier().storage; if (qualifier != EvqGlobal && qualifier != EvqTemporary) { error(loc, "hitObjectNV can only be declared in global or function scope with no storage qualifier:", "hitObjectNV", identifier.c_str()); @@ -5502,6 +5585,9 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua if (qualifier.storage == EvqBuffer && lastMember) return; + if (qualifier.storage == EvqUniform && lastMember && extensionTurnedOn(E_GL_EXT_uniform_buffer_unsized_array)) + return; + arraySizeRequiredCheck(loc, *arraySizes); } @@ -5626,6 +5712,20 @@ void TParseContext::checkRuntimeSizable(const TSourceLoc& loc, const TIntermType } } + // Check for last member of a uniform block, which can be runtime sizeable + // when using GL_EXT_uniform_buffer_unsized_array + if (base.getType().getQualifier().storage == EvqUniform && extensionTurnedOn(E_GL_EXT_uniform_buffer_unsized_array)) { + const TIntermBinary* binary = base.getAsBinaryNode(); + if (binary != nullptr && + binary->getOp() == EOpIndexDirectStruct) { + + const int index = binary->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); + const int memberCount = (int)binary->getLeft()->getType().getStruct()->size(); + if (index == memberCount - 1) + return; + } + } + // check for additional things allowed by GL_EXT_nonuniform_qualifier if (base.getBasicType() == EbtSampler || base.getBasicType() == EbtAccStruct || base.getBasicType() == EbtRayQuery || base.getBasicType() == EbtHitObjectNV || (base.getBasicType() == EbtBlock && base.getType().getQualifier().isUniformOrBuffer())) @@ -6334,9 +6434,9 @@ void TParseContext::inductiveLoopCheck(const TSourceLoc& loc, TIntermNode* init, inductiveLoopIds.insert(loopIndex); // condition's form must be "loop-index relational-operator constant-expression" - bool badCond = ! loop->getTest(); + bool badCond = ! loop->getTestExpr(); if (! badCond) { - TIntermBinary* binaryCond = loop->getTest()->getAsBinaryNode(); + TIntermBinary* binaryCond = loop->getTestExpr()->getAsBinaryNode(); badCond = ! binaryCond; if (! badCond) { switch (binaryCond->getOp()) { @@ -6736,8 +6836,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi } for (TLayoutDepth depth = (TLayoutDepth)(EldNone + 1); depth < EldCount; depth = (TLayoutDepth)(depth+1)) { if (id == TQualifier::getLayoutDepthString(depth)) { - requireProfile(loc, ECoreProfile | ECompatibilityProfile, "depth layout qualifier"); - profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, nullptr, "depth layout qualifier"); + const char* feature = "depth layout qualifier"; + requireProfile(loc, ECoreProfile | ECompatibilityProfile | EEsProfile, feature); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, E_GL_ARB_conservative_depth, feature); + profileRequires(loc, EEsProfile, 0, E_GL_EXT_conservative_depth, feature); publicType.shaderQualifiers.layoutDepth = depth; return; } @@ -6827,6 +6929,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi requireExtensions(loc, 1, &E_GL_NV_shader_invocation_reorder, "hitobject shader record NV"); publicType.qualifier.layoutHitObjectShaderRecordNV = true; return; + } else if (id == "hitobjectshaderrecordext") { + requireExtensions(loc, 1, &E_GL_EXT_shader_invocation_reorder, "hitobject shader record EXT"); + publicType.qualifier.layoutHitObjectShaderRecordEXT = true; + return; } } @@ -7342,6 +7448,8 @@ void TParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifie if (src.layoutHitObjectShaderRecordNV) dst.layoutHitObjectShaderRecordNV = true; dst.layoutTileAttachmentQCOM |= src.layoutTileAttachmentQCOM; + if (src.layoutHitObjectShaderRecordEXT) + dst.layoutHitObjectShaderRecordEXT = true; } } @@ -7508,6 +7616,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) case EvqCallableData: case EvqCallableDataIn: case EvqHitObjectAttrNV: + case EvqHitObjectAttrEXT: case EvqSpirvStorageClass: break; case EvqTileImageEXT: @@ -8905,7 +9014,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden if (initializer) { if (type.getBasicType() == EbtRayQuery) { error(loc, "ray queries can only be initialized by using the rayQueryInitializeEXT intrinsic:", "=", identifier.c_str()); - } else if (type.getBasicType() == EbtHitObjectNV) { + } else if ((type.getBasicType() == EbtHitObjectNV) || (type.getBasicType() == EbtHitObjectEXT)) { error(loc, "hit objects cannot be initialized using initializers", "=", identifier.c_str()); } @@ -9005,6 +9114,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden atomicUintCheck(loc, type, identifier); accStructCheck(loc, type, identifier); hitObjectNVCheck(loc, type, identifier); + hitObjectEXTCheck(loc, type, identifier); checkAndResizeMeshViewDim(loc, type, /*isBlockMember*/ false); if (type.getQualifier().storage == EvqConst && type.containsReference()) { error(loc, "variables with reference type can't have qualifier 'const'", "qualifier", ""); @@ -9109,7 +9219,22 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden // fix up fixOffset(loc, *symbol); - return initNode; + // TODO: The decl AST is turned on based on debug info right now. We should expose it as an explicit option. + if (intermediate.getDebugInfo()) { + TVariable* variable = symbol->getAsVariable(); + if (variable) { + auto decl = new TIntermVariableDecl(intermediate.addSymbol(*variable, loc), initNode); + decl->setLoc(loc); + return decl; + } + else { + // We ignore builtins redeclarations + return nullptr; + } + } + else { + return initNode; + } } // Pick up global defaults from the provide global defaults into dst. @@ -10030,9 +10155,9 @@ void TParseContext::updateBindlessQualifier(TType& memberType) } // -// Do everything needed to add an interface block. +// Do everything needed to add an interface block. Returns the declarator node if there's an instance declaration. // -void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, +TIntermNode* TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, TArraySizes* arraySizes) { if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) @@ -10098,7 +10223,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // do all the rest. if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) { redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes); - return; + return nullptr; } // Not a redeclaration of a built-in; check that all names are user names. @@ -10264,7 +10389,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con } } if (!instanceName) { - return; + return nullptr; } } else { // @@ -10287,11 +10412,11 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con if (existingName->getType().getBasicType() == EbtBlock) { if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString()); - return; + return nullptr; } } else { error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); - return; + return nullptr; } } } @@ -10308,7 +10433,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con else error(loc, "block instance name redefinition", variable.getName().c_str(), ""); - return; + return nullptr; } // Check for general layout qualifier errors @@ -10323,6 +10448,17 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con // Save it in the AST for linker use. trackLinkage(variable); + + TIntermAggregate* declNode = nullptr; + if (intermediate.getDebugInfo()) { + auto blockDeclNode = new TIntermVariableDecl(intermediate.addSymbol(variable, loc), nullptr); + blockDeclNode->setLoc(loc); + + // We have to wrap the declaration with a sequence to fit the same processing logic with variables. + declNode = new TIntermAggregate(EOpSequence); + declNode->getSequence().push_back(blockDeclNode); + } + return declNode; } // @@ -10411,6 +10547,10 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q profileRequires(loc, ~EEsProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV block"); requireStage(loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | EShLangMissMask), "hitObjectAttributeNV block"); break; + case EvqHitObjectAttrEXT: + profileRequires(loc, ~EEsProfile, 460, E_GL_EXT_shader_invocation_reorder, "hitObjectAttributeEXT block"); + requireStage(loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | EShLangMissMask), "hitObjectAttributeEXT block"); + break; default: error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), ""); break; diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h index 2bb82eb..bf5cab2 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h @@ -115,7 +115,7 @@ class TParseContextBase : public TParseVersions { virtual void setLimits(const TBuiltInResource&) = 0; - void checkIndex(const TSourceLoc&, const TType&, int& index); + void checkIndex(const TSourceLoc&, const TType&, int64_t& index); EShLanguage getLanguage() const { return language; } void setScanContext(TScanContext* c) { scanContext = c; } @@ -381,6 +381,7 @@ class TParseContext : public TParseContextBase { void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; void constantValueCheck(TIntermTyped* node, const char* token); void integerCheck(const TIntermTyped* node, const char* token); + void arrayIndexCheck(const TIntermTyped* node, const char* token); void globalCheck(const TSourceLoc&, const char* token); bool constructorError(const TSourceLoc&, TIntermNode*, TFunction&, TOperator, TType&); bool constructorTextureSamplerError(const TSourceLoc&, const TFunction&); @@ -397,6 +398,7 @@ class TParseContext : public TParseContextBase { void samplerCheck(const TSourceLoc&, const TType&, const TString& identifier, TIntermTyped* initializer); void atomicUintCheck(const TSourceLoc&, const TType&, const TString& identifier); void accStructCheck(const TSourceLoc & loc, const TType & type, const TString & identifier); + void hitObjectEXTCheck(const TSourceLoc& loc, const TType& type, const TString& identifier); void hitObjectNVCheck(const TSourceLoc & loc, const TType & type, const TString & identifier); void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier); void memberQualifierCheck(glslang::TPublicType&); @@ -454,7 +456,7 @@ class TParseContext : public TParseContextBase { TParameter getParamWithDefault(const TPublicType& ty, TString* identifier, TIntermTyped* initializer, const TSourceLoc& loc); void inheritMemoryQualifiers(const TQualifier& from, TQualifier& to); - void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = nullptr, TArraySizes* arraySizes = nullptr); + TIntermNode* declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = nullptr, TArraySizes* arraySizes = nullptr); void blockStorageRemap(const TSourceLoc&, const TString*, TQualifier&); void blockStageIoCheck(const TSourceLoc&, const TQualifier&); void blockQualifierCheck(const TSourceLoc&, const TQualifier&, bool instanceName); diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/RemoveTree.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/RemoveTree.cpp index 1d33bfd..29baf1f 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/RemoveTree.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/RemoveTree.cpp @@ -43,7 +43,7 @@ namespace glslang { // Code to recursively delete the intermediate tree. // struct TRemoveTraverser : TIntermTraverser { - TRemoveTraverser() : TIntermTraverser(false, false, true, false) {} + TRemoveTraverser() : TIntermTraverser(false, false, true, false, true) {} virtual void visitSymbol(TIntermSymbol* node) { @@ -103,6 +103,12 @@ struct TRemoveTraverser : TIntermTraverser { return true; } + + virtual bool visitVariableDecl(TVisit /* visit */, TIntermVariableDecl* decl) + { + delete decl; + return true; + } }; // diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp index 28b1fe1..8a08a3c 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp @@ -771,6 +771,9 @@ const std::unordered_map KeywordMap { {"tensorARM",TENSORARM}, + {"hitObjectEXT",HITOBJECTEXT}, + {"hitObjectAttributeEXT",HITOBJECTATTREXT}, + {"__function",FUNCTION}, {"tensorLayoutNV",TENSORLAYOUTNV}, {"tensorViewNV",TENSORVIEWNV}, @@ -1917,6 +1920,13 @@ int TScanContext::tokenizeIdentifier() return keyword; return identifierOrType(); + case HITOBJECTEXT: + if (parseContext.symbolTable.atBuiltInLevel() || + (!parseContext.isEsProfile() && parseContext.version >= 460 + && parseContext.extensionTurnedOn(E_GL_EXT_shader_invocation_reorder))) + return keyword; + return identifierOrType(); + case HITOBJECTATTRNV: if (parseContext.symbolTable.atBuiltInLevel() || (!parseContext.isEsProfile() && parseContext.version >= 460 @@ -1924,6 +1934,13 @@ int TScanContext::tokenizeIdentifier() return keyword; return identifierOrType(); + case HITOBJECTATTREXT: + if (parseContext.symbolTable.atBuiltInLevel() || + (!parseContext.isEsProfile() && parseContext.version >= 460 + && parseContext.extensionTurnedOn(E_GL_EXT_shader_invocation_reorder))) + return keyword; + return identifierOrType(); + case FUNCTION: case TENSORLAYOUTNV: case TENSORVIEWNV: diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp index dbcd575..fd8a690 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp @@ -86,6 +86,7 @@ void TType::buildMangledName(TString& mangledName) const case EbtRayQuery: mangledName += "rq"; break; case EbtSpirvType: mangledName += "spv-t"; break; case EbtHitObjectNV: mangledName += "ho"; break; + case EbtHitObjectEXT: mangledName += "ho"; break; case EbtTensorLayoutNV: mangledName += "tl"; break; case EbtTensorViewNV: mangledName += "tv"; break; case EbtSampler: @@ -346,6 +347,24 @@ void TSymbolTableLevel::setFunctionExtensions(const char* name, int num, const c } } +// Call the callback function to determine the required extensions +void TSymbolTableLevel::setFunctionExtensionsCallback(const char* name, std::function(const char *)> const &func) +{ + tLevel::const_iterator candidate = level.lower_bound(name); + while (candidate != level.end()) { + const TString& candidateName = (*candidate).first; + TString::size_type parenAt = candidateName.find_first_of('('); + if (parenAt != candidateName.npos && candidateName.compare(0, parenAt, name) == 0) { + TSymbol* symbol = candidate->second; + + auto exts = func(candidateName.c_str()); + symbol->setExtensions(exts.size(), exts.data()); + } else + break; + ++candidate; + } +} + // Make a single function require an extension(s). i.e., this will only set the extensions for the symbol that matches 'name' exactly. // This is different from setFunctionExtensions, which uses std::map::lower_bound to effectively set all symbols that start with 'name'. // Should only be used for a version/profile that actually needs the extension(s). diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.h index c2f5ccf..edeb8d5 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/SymbolTable.h @@ -69,6 +69,8 @@ #include "../Include/intermediate.h" #include "../Include/InfoSink.h" +#include + namespace glslang { // @@ -596,6 +598,7 @@ class TSymbolTableLevel { void relateToOperator(const char* name, TOperator op); void setFunctionExtensions(const char* name, int num, const char* const extensions[]); + void setFunctionExtensionsCallback(const char* name, std::function(const char *)> const &func); void setSingleFunctionExtensions(const char* name, int num, const char* const extensions[]); void dump(TInfoSink& infoSink, bool complete = false) const; TSymbolTableLevel* clone() const; @@ -898,6 +901,12 @@ class TSymbolTable { table[level]->setFunctionExtensions(name, num, extensions); } + void setFunctionExtensionsCallback(const char* name, std::function(const char *)> const &func) + { + for (unsigned int level = 0; level < table.size(); ++level) + table[level]->setFunctionExtensionsCallback(name, func); + } + void setSingleFunctionExtensions(const char* name, int num, const char* const extensions[]) { for (unsigned int level = 0; level < table.size(); ++level) diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp index 59628b7..e8ce150 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp @@ -229,6 +229,7 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_draw_instanced] = EBhDisable; extensionBehavior[E_GL_ARB_bindless_texture] = EBhDisable; extensionBehavior[E_GL_ARB_fragment_coord_conventions] = EBhDisable; + extensionBehavior[E_GL_ARB_conservative_depth] = EBhDisable; extensionBehavior[E_GL_KHR_shader_subgroup_basic] = EBhDisable; @@ -385,6 +386,9 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_EXT_bfloat16] = EBhDisable; extensionBehavior[E_GL_EXT_float_e4m3] = EBhDisable; extensionBehavior[E_GL_EXT_float_e5m2] = EBhDisable; + extensionBehavior[E_GL_EXT_uniform_buffer_unsized_array] = EBhDisable; + extensionBehavior[E_GL_EXT_shader_64bit_indexing] = EBhDisable; + extensionBehavior[E_GL_EXT_conservative_depth] = EBhDisable; // OVR extensions extensionBehavior[E_GL_OVR_multiview] = EBhDisable; @@ -410,6 +414,8 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_EXT_integer_dot_product] = EBhDisable; + extensionBehavior[E_GL_EXT_shader_invocation_reorder] = EBhDisable; + // Record extensions not for spv. spvUnsupportedExt.push_back(E_GL_ARB_bindless_texture); } @@ -431,6 +437,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_EXT_shader_texture_lod 1\n" "#define GL_EXT_shadow_samplers 1\n" "#define GL_EXT_fragment_shading_rate 1\n" + "#define GL_EXT_conservative_depth 1\n" // AEP "#define GL_ANDROID_extension_pack_es31a 1\n" @@ -520,6 +527,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_NV_gpu_shader5 1\n" "#define GL_ARB_draw_instanced 1\n" "#define GL_ARB_fragment_coord_conventions 1\n" + "#define GL_ARB_conservative_depth 1\n" "#define GL_EXT_shader_non_constant_global_initializers 1\n" "#define GL_EXT_shader_image_load_formatted 1\n" @@ -627,6 +635,10 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_EXT_bfloat16 1\n" "#define GL_EXT_float_e5m2 1\n" "#define GL_EXT_float_e4m3 1\n" + "#define GL_EXT_uniform_buffer_unsized_array 1\n" + "#define GL_EXT_shader_64bit_indexing 1\n" + + "#define GL_EXT_shader_invocation_reorder 1\n" ; if (spvVersion.spv == 0) { diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h index 8bc4f71..48a7c5b 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h @@ -165,6 +165,7 @@ const char* const E_GL_ARB_vertex_attrib_64bit = "GL_ARB_vertex_attrib_ const char* const E_GL_ARB_draw_instanced = "GL_ARB_draw_instanced"; const char* const E_GL_ARB_fragment_coord_conventions = "GL_ARB_fragment_coord_conventions"; const char* const E_GL_ARB_bindless_texture = "GL_ARB_bindless_texture"; +const char* const E_GL_ARB_conservative_depth = "GL_ARB_conservative_depth"; const char* const E_GL_KHR_shader_subgroup_basic = "GL_KHR_shader_subgroup_basic"; const char* const E_GL_KHR_shader_subgroup_vote = "GL_KHR_shader_subgroup_vote"; @@ -226,6 +227,8 @@ const char* const E_GL_EXT_control_flow_attributes2 = "GL_EXT_control_fl const char* const E_GL_EXT_spec_constant_composites = "GL_EXT_spec_constant_composites"; const char* const E_GL_EXT_texture_offset_non_const = "GL_EXT_texture_offset_non_const"; const char* const E_GL_EXT_nontemporal_keyword = "GL_EXT_nontemporal_keyword"; +const char* const E_GL_EXT_uniform_buffer_unsized_array = "GL_EXT_uniform_buffer_unsized_array"; +const char* const E_GL_EXT_conservative_depth = "GL_EXT_conservative_depth"; // Arrays of extensions for the above viewportEXTs duplications @@ -364,6 +367,10 @@ const char* const E_GL_EXT_bfloat16 = "GL_EXT_bfloat16"; const char* const E_GL_EXT_float_e5m2 = "GL_EXT_float_e5m2"; const char* const E_GL_EXT_float_e4m3 = "GL_EXT_float_e4m3"; +const char* const E_GL_EXT_shader_64bit_indexing = "GL_EXT_shader_64bit_indexing"; + +const char* const E_GL_EXT_shader_invocation_reorder = "GL_EXT_shader_invocation_reorder"; + // Arrays of extensions for the above AEP duplications const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader }; diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y index e9b1aac..9758048 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y @@ -182,7 +182,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token FCOOPMATNV ICOOPMATNV UCOOPMATNV %token COOPMAT %token COOPVECNV -%token HITOBJECTNV HITOBJECTATTRNV +%token HITOBJECTNV HITOBJECTATTRNV HITOBJECTEXT HITOBJECTATTREXT %token TENSORLAYOUTNV TENSORVIEWNV %token TENSORARM @@ -298,7 +298,8 @@ extern int yylex(YYSTYPE*, TParseContext&); %type conditional_expression constant_expression %type logical_or_expression logical_xor_expression logical_and_expression %type shift_expression and_expression exclusive_or_expression inclusive_or_expression -%type function_call initializer condition conditionopt +%type function_call initializer +%type condition conditionopt %type translation_unit function_definition %type statement simple_statement @@ -451,7 +452,7 @@ postfix_expression integer_expression : expression { - parseContext.integerCheck($1, "[]"); + parseContext.arrayIndexCheck($1, "[]"); $$ = $1; } ; @@ -555,7 +556,7 @@ function_identifier TIntermMethod* method = $1->getAsMethodNode(); if (method) { - $$.function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); + $$.function = new TFunction(&method->getMethodName(), method->getType(), EOpArrayLength); $$.intermNode = method->getObject(); } else { TIntermSymbol* symbol = $1->getAsSymbolNode(); @@ -912,16 +913,13 @@ declaration $$ = 0; } | block_structure SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList); - $$ = 0; + $$ = parseContext.declareBlock($1.loc, *$1.typeList); } | block_structure IDENTIFIER SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList, $2.string); - $$ = 0; + $$ = parseContext.declareBlock($1.loc, *$1.typeList, $2.string); } | block_structure IDENTIFIER array_specifier SEMICOLON { - parseContext.declareBlock($1.loc, *$1.typeList, $2.string, $3.arraySizes); - $$ = 0; + $$ = parseContext.declareBlock($1.loc, *$1.typeList, $2.string, $3.arraySizes); } | type_qualifier SEMICOLON { parseContext.globalQualifierFixCheck($1.loc, $1.qualifier); @@ -1164,21 +1162,23 @@ init_declarator_list } | init_declarator_list COMMA IDENTIFIER { $$ = $1; - parseContext.declareVariable($3.loc, *$3.string, $1.type); + TIntermNode* declNode = parseContext.declareVariable($3.loc, *$3.string, $1.type); + $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, declNode, $3.loc); } | init_declarator_list COMMA IDENTIFIER array_specifier { $$ = $1; - parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes); + TIntermNode* declNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes); + $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, declNode, $3.loc); } | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer { $$.type = $1.type; - TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6); - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $5.loc); + TIntermNode* declNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6); + $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, declNode, $5.loc); } | init_declarator_list COMMA IDENTIFIER EQUAL initializer { $$.type = $1.type; - TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5); - $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $4.loc); + TIntermNode* declNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5); + $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, declNode, $4.loc); } ; @@ -1190,23 +1190,24 @@ single_declaration } | fully_specified_type IDENTIFIER { $$.type = $1; - $$.intermNode = 0; - parseContext.declareVariable($2.loc, *$2.string, $1); + TIntermNode* declNode = parseContext.declareVariable($2.loc, *$2.string, $1); + $$.intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, $2.loc); + } | fully_specified_type IDENTIFIER array_specifier { $$.type = $1; - $$.intermNode = 0; - parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes); + TIntermNode* declNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes); + $$.intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, $2.loc); } | fully_specified_type IDENTIFIER array_specifier EQUAL initializer { $$.type = $1; - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5); - $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $4.loc); + TIntermNode* declNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5); + $$.intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, $2.loc); } | fully_specified_type IDENTIFIER EQUAL initializer { $$.type = $1; - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); - $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $3.loc); + TIntermNode* declNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); + $$.intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, $2.loc); } // Grammar Note: No 'enum', or 'typedef'. @@ -1537,14 +1538,22 @@ storage_qualifier $$.init($1.loc); $$.qualifier.storage = EvqHitAttr; } - | HITOBJECTATTRNV { + | HITOBJECTATTRNV { parseContext.globalCheck($1.loc, "hitAttributeNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | EShLangMissMask), "hitObjectAttributeNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV"); $$.init($1.loc); $$.qualifier.storage = EvqHitObjectAttrNV; - } + } + | HITOBJECTATTREXT { + parseContext.globalCheck($1.loc, "hitAttributeEXT"); + parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask + | EShLangMissMask), "hitObjectAttributeEXT"); + parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_shader_invocation_reorder, "hitObjectAttributeEXT"); + $$.init($1.loc); + $$.qualifier.storage = EvqHitObjectAttrEXT; + } | HITATTREXT { parseContext.globalCheck($1.loc, "hitAttributeEXT"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask @@ -3647,10 +3656,14 @@ type_specifier_nonarray parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier"); $$ = $1; } - | HITOBJECTNV { + | HITOBJECTNV { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtHitObjectNV; - } + } + | HITOBJECTEXT { + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtHitObjectEXT; + } | struct_specifier { $$ = $1; $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3990,11 +4003,7 @@ condition parseContext.boolCheck($2.loc, $1); TType type($1); - TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); - if (initNode) - $$ = initNode->getAsTyped(); - else - $$ = 0; + $$ = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); } ; @@ -4084,6 +4093,10 @@ iteration_statement_nonattributed condition RIGHT_PAREN statement_no_new_scope { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); $$ = parseContext.intermediate.addLoop($6, $4, 0, true, $1.loc); + if (parseContext.intermediate.getDebugInfo()) { + $$ = parseContext.intermediate.makeAggregate($$, $1.loc); + $$->getAsAggregate()->setOperator(EOpScope); + } --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; @@ -4101,6 +4114,10 @@ iteration_statement_nonattributed parseContext.boolCheck($8.loc, $6); $$ = parseContext.intermediate.addLoop($3, $6, 0, false, $4.loc); + if (parseContext.intermediate.getDebugInfo()) { + $$ = parseContext.intermediate.makeAggregate($$, $4.loc); + $$->getAsAggregate()->setOperator(EOpScope); + } parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; @@ -4119,7 +4136,7 @@ iteration_statement_nonattributed if (! parseContext.limits.nonInductiveForLoops) parseContext.inductiveLoopCheck($1.loc, $4, forLoop); $$ = parseContext.intermediate.growAggregate($$, forLoop, $1.loc); - $$->getAsAggregate()->setOperator(EOpSequence); + $$->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp index a08410b..f0ec8c6 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp @@ -303,439 +303,441 @@ enum yysymbol_kind_t YYSYMBOL_COOPVECNV = 179, /* COOPVECNV */ YYSYMBOL_HITOBJECTNV = 180, /* HITOBJECTNV */ YYSYMBOL_HITOBJECTATTRNV = 181, /* HITOBJECTATTRNV */ - YYSYMBOL_TENSORLAYOUTNV = 182, /* TENSORLAYOUTNV */ - YYSYMBOL_TENSORVIEWNV = 183, /* TENSORVIEWNV */ - YYSYMBOL_TENSORARM = 184, /* TENSORARM */ - YYSYMBOL_SAMPLERCUBEARRAY = 185, /* SAMPLERCUBEARRAY */ - YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 186, /* SAMPLERCUBEARRAYSHADOW */ - YYSYMBOL_ISAMPLERCUBEARRAY = 187, /* ISAMPLERCUBEARRAY */ - YYSYMBOL_USAMPLERCUBEARRAY = 188, /* USAMPLERCUBEARRAY */ - YYSYMBOL_SAMPLER1D = 189, /* SAMPLER1D */ - YYSYMBOL_SAMPLER1DARRAY = 190, /* SAMPLER1DARRAY */ - YYSYMBOL_SAMPLER1DARRAYSHADOW = 191, /* SAMPLER1DARRAYSHADOW */ - YYSYMBOL_ISAMPLER1D = 192, /* ISAMPLER1D */ - YYSYMBOL_SAMPLER1DSHADOW = 193, /* SAMPLER1DSHADOW */ - YYSYMBOL_SAMPLER2DRECT = 194, /* SAMPLER2DRECT */ - YYSYMBOL_SAMPLER2DRECTSHADOW = 195, /* SAMPLER2DRECTSHADOW */ - YYSYMBOL_ISAMPLER2DRECT = 196, /* ISAMPLER2DRECT */ - YYSYMBOL_USAMPLER2DRECT = 197, /* USAMPLER2DRECT */ - YYSYMBOL_SAMPLERBUFFER = 198, /* SAMPLERBUFFER */ - YYSYMBOL_ISAMPLERBUFFER = 199, /* ISAMPLERBUFFER */ - YYSYMBOL_USAMPLERBUFFER = 200, /* USAMPLERBUFFER */ - YYSYMBOL_SAMPLER2DMS = 201, /* SAMPLER2DMS */ - YYSYMBOL_ISAMPLER2DMS = 202, /* ISAMPLER2DMS */ - YYSYMBOL_USAMPLER2DMS = 203, /* USAMPLER2DMS */ - YYSYMBOL_SAMPLER2DMSARRAY = 204, /* SAMPLER2DMSARRAY */ - YYSYMBOL_ISAMPLER2DMSARRAY = 205, /* ISAMPLER2DMSARRAY */ - YYSYMBOL_USAMPLER2DMSARRAY = 206, /* USAMPLER2DMSARRAY */ - YYSYMBOL_SAMPLEREXTERNALOES = 207, /* SAMPLEREXTERNALOES */ - YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 208, /* SAMPLEREXTERNAL2DY2YEXT */ - YYSYMBOL_ISAMPLER1DARRAY = 209, /* ISAMPLER1DARRAY */ - YYSYMBOL_USAMPLER1D = 210, /* USAMPLER1D */ - YYSYMBOL_USAMPLER1DARRAY = 211, /* USAMPLER1DARRAY */ - YYSYMBOL_F16SAMPLER1D = 212, /* F16SAMPLER1D */ - YYSYMBOL_F16SAMPLER2D = 213, /* F16SAMPLER2D */ - YYSYMBOL_F16SAMPLER3D = 214, /* F16SAMPLER3D */ - YYSYMBOL_F16SAMPLER2DRECT = 215, /* F16SAMPLER2DRECT */ - YYSYMBOL_F16SAMPLERCUBE = 216, /* F16SAMPLERCUBE */ - YYSYMBOL_F16SAMPLER1DARRAY = 217, /* F16SAMPLER1DARRAY */ - YYSYMBOL_F16SAMPLER2DARRAY = 218, /* F16SAMPLER2DARRAY */ - YYSYMBOL_F16SAMPLERCUBEARRAY = 219, /* F16SAMPLERCUBEARRAY */ - YYSYMBOL_F16SAMPLERBUFFER = 220, /* F16SAMPLERBUFFER */ - YYSYMBOL_F16SAMPLER2DMS = 221, /* F16SAMPLER2DMS */ - YYSYMBOL_F16SAMPLER2DMSARRAY = 222, /* F16SAMPLER2DMSARRAY */ - YYSYMBOL_F16SAMPLER1DSHADOW = 223, /* F16SAMPLER1DSHADOW */ - YYSYMBOL_F16SAMPLER2DSHADOW = 224, /* F16SAMPLER2DSHADOW */ - YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 225, /* F16SAMPLER1DARRAYSHADOW */ - YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 226, /* F16SAMPLER2DARRAYSHADOW */ - YYSYMBOL_F16SAMPLER2DRECTSHADOW = 227, /* F16SAMPLER2DRECTSHADOW */ - YYSYMBOL_F16SAMPLERCUBESHADOW = 228, /* F16SAMPLERCUBESHADOW */ - YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 229, /* F16SAMPLERCUBEARRAYSHADOW */ - YYSYMBOL_IMAGE1D = 230, /* IMAGE1D */ - YYSYMBOL_IIMAGE1D = 231, /* IIMAGE1D */ - YYSYMBOL_UIMAGE1D = 232, /* UIMAGE1D */ - YYSYMBOL_IMAGE2D = 233, /* IMAGE2D */ - YYSYMBOL_IIMAGE2D = 234, /* IIMAGE2D */ - YYSYMBOL_UIMAGE2D = 235, /* UIMAGE2D */ - YYSYMBOL_IMAGE3D = 236, /* IMAGE3D */ - YYSYMBOL_IIMAGE3D = 237, /* IIMAGE3D */ - YYSYMBOL_UIMAGE3D = 238, /* UIMAGE3D */ - YYSYMBOL_IMAGE2DRECT = 239, /* IMAGE2DRECT */ - YYSYMBOL_IIMAGE2DRECT = 240, /* IIMAGE2DRECT */ - YYSYMBOL_UIMAGE2DRECT = 241, /* UIMAGE2DRECT */ - YYSYMBOL_IMAGECUBE = 242, /* IMAGECUBE */ - YYSYMBOL_IIMAGECUBE = 243, /* IIMAGECUBE */ - YYSYMBOL_UIMAGECUBE = 244, /* UIMAGECUBE */ - YYSYMBOL_IMAGEBUFFER = 245, /* IMAGEBUFFER */ - YYSYMBOL_IIMAGEBUFFER = 246, /* IIMAGEBUFFER */ - YYSYMBOL_UIMAGEBUFFER = 247, /* UIMAGEBUFFER */ - YYSYMBOL_IMAGE1DARRAY = 248, /* IMAGE1DARRAY */ - YYSYMBOL_IIMAGE1DARRAY = 249, /* IIMAGE1DARRAY */ - YYSYMBOL_UIMAGE1DARRAY = 250, /* UIMAGE1DARRAY */ - YYSYMBOL_IMAGE2DARRAY = 251, /* IMAGE2DARRAY */ - YYSYMBOL_IIMAGE2DARRAY = 252, /* IIMAGE2DARRAY */ - YYSYMBOL_UIMAGE2DARRAY = 253, /* UIMAGE2DARRAY */ - YYSYMBOL_IMAGECUBEARRAY = 254, /* IMAGECUBEARRAY */ - YYSYMBOL_IIMAGECUBEARRAY = 255, /* IIMAGECUBEARRAY */ - YYSYMBOL_UIMAGECUBEARRAY = 256, /* UIMAGECUBEARRAY */ - YYSYMBOL_IMAGE2DMS = 257, /* IMAGE2DMS */ - YYSYMBOL_IIMAGE2DMS = 258, /* IIMAGE2DMS */ - YYSYMBOL_UIMAGE2DMS = 259, /* UIMAGE2DMS */ - YYSYMBOL_IMAGE2DMSARRAY = 260, /* IMAGE2DMSARRAY */ - YYSYMBOL_IIMAGE2DMSARRAY = 261, /* IIMAGE2DMSARRAY */ - YYSYMBOL_UIMAGE2DMSARRAY = 262, /* UIMAGE2DMSARRAY */ - YYSYMBOL_F16IMAGE1D = 263, /* F16IMAGE1D */ - YYSYMBOL_F16IMAGE2D = 264, /* F16IMAGE2D */ - YYSYMBOL_F16IMAGE3D = 265, /* F16IMAGE3D */ - YYSYMBOL_F16IMAGE2DRECT = 266, /* F16IMAGE2DRECT */ - YYSYMBOL_F16IMAGECUBE = 267, /* F16IMAGECUBE */ - YYSYMBOL_F16IMAGE1DARRAY = 268, /* F16IMAGE1DARRAY */ - YYSYMBOL_F16IMAGE2DARRAY = 269, /* F16IMAGE2DARRAY */ - YYSYMBOL_F16IMAGECUBEARRAY = 270, /* F16IMAGECUBEARRAY */ - YYSYMBOL_F16IMAGEBUFFER = 271, /* F16IMAGEBUFFER */ - YYSYMBOL_F16IMAGE2DMS = 272, /* F16IMAGE2DMS */ - YYSYMBOL_F16IMAGE2DMSARRAY = 273, /* F16IMAGE2DMSARRAY */ - YYSYMBOL_I64IMAGE1D = 274, /* I64IMAGE1D */ - YYSYMBOL_U64IMAGE1D = 275, /* U64IMAGE1D */ - YYSYMBOL_I64IMAGE2D = 276, /* I64IMAGE2D */ - YYSYMBOL_U64IMAGE2D = 277, /* U64IMAGE2D */ - YYSYMBOL_I64IMAGE3D = 278, /* I64IMAGE3D */ - YYSYMBOL_U64IMAGE3D = 279, /* U64IMAGE3D */ - YYSYMBOL_I64IMAGE2DRECT = 280, /* I64IMAGE2DRECT */ - YYSYMBOL_U64IMAGE2DRECT = 281, /* U64IMAGE2DRECT */ - YYSYMBOL_I64IMAGECUBE = 282, /* I64IMAGECUBE */ - YYSYMBOL_U64IMAGECUBE = 283, /* U64IMAGECUBE */ - YYSYMBOL_I64IMAGEBUFFER = 284, /* I64IMAGEBUFFER */ - YYSYMBOL_U64IMAGEBUFFER = 285, /* U64IMAGEBUFFER */ - YYSYMBOL_I64IMAGE1DARRAY = 286, /* I64IMAGE1DARRAY */ - YYSYMBOL_U64IMAGE1DARRAY = 287, /* U64IMAGE1DARRAY */ - YYSYMBOL_I64IMAGE2DARRAY = 288, /* I64IMAGE2DARRAY */ - YYSYMBOL_U64IMAGE2DARRAY = 289, /* U64IMAGE2DARRAY */ - YYSYMBOL_I64IMAGECUBEARRAY = 290, /* I64IMAGECUBEARRAY */ - YYSYMBOL_U64IMAGECUBEARRAY = 291, /* U64IMAGECUBEARRAY */ - YYSYMBOL_I64IMAGE2DMS = 292, /* I64IMAGE2DMS */ - YYSYMBOL_U64IMAGE2DMS = 293, /* U64IMAGE2DMS */ - YYSYMBOL_I64IMAGE2DMSARRAY = 294, /* I64IMAGE2DMSARRAY */ - YYSYMBOL_U64IMAGE2DMSARRAY = 295, /* U64IMAGE2DMSARRAY */ - YYSYMBOL_TEXTURECUBEARRAY = 296, /* TEXTURECUBEARRAY */ - YYSYMBOL_ITEXTURECUBEARRAY = 297, /* ITEXTURECUBEARRAY */ - YYSYMBOL_UTEXTURECUBEARRAY = 298, /* UTEXTURECUBEARRAY */ - YYSYMBOL_TEXTURE1D = 299, /* TEXTURE1D */ - YYSYMBOL_ITEXTURE1D = 300, /* ITEXTURE1D */ - YYSYMBOL_UTEXTURE1D = 301, /* UTEXTURE1D */ - YYSYMBOL_TEXTURE1DARRAY = 302, /* TEXTURE1DARRAY */ - YYSYMBOL_ITEXTURE1DARRAY = 303, /* ITEXTURE1DARRAY */ - YYSYMBOL_UTEXTURE1DARRAY = 304, /* UTEXTURE1DARRAY */ - YYSYMBOL_TEXTURE2DRECT = 305, /* TEXTURE2DRECT */ - YYSYMBOL_ITEXTURE2DRECT = 306, /* ITEXTURE2DRECT */ - YYSYMBOL_UTEXTURE2DRECT = 307, /* UTEXTURE2DRECT */ - YYSYMBOL_TEXTUREBUFFER = 308, /* TEXTUREBUFFER */ - YYSYMBOL_ITEXTUREBUFFER = 309, /* ITEXTUREBUFFER */ - YYSYMBOL_UTEXTUREBUFFER = 310, /* UTEXTUREBUFFER */ - YYSYMBOL_TEXTURE2DMS = 311, /* TEXTURE2DMS */ - YYSYMBOL_ITEXTURE2DMS = 312, /* ITEXTURE2DMS */ - YYSYMBOL_UTEXTURE2DMS = 313, /* UTEXTURE2DMS */ - YYSYMBOL_TEXTURE2DMSARRAY = 314, /* TEXTURE2DMSARRAY */ - YYSYMBOL_ITEXTURE2DMSARRAY = 315, /* ITEXTURE2DMSARRAY */ - YYSYMBOL_UTEXTURE2DMSARRAY = 316, /* UTEXTURE2DMSARRAY */ - YYSYMBOL_F16TEXTURE1D = 317, /* F16TEXTURE1D */ - YYSYMBOL_F16TEXTURE2D = 318, /* F16TEXTURE2D */ - YYSYMBOL_F16TEXTURE3D = 319, /* F16TEXTURE3D */ - YYSYMBOL_F16TEXTURE2DRECT = 320, /* F16TEXTURE2DRECT */ - YYSYMBOL_F16TEXTURECUBE = 321, /* F16TEXTURECUBE */ - YYSYMBOL_F16TEXTURE1DARRAY = 322, /* F16TEXTURE1DARRAY */ - YYSYMBOL_F16TEXTURE2DARRAY = 323, /* F16TEXTURE2DARRAY */ - YYSYMBOL_F16TEXTURECUBEARRAY = 324, /* F16TEXTURECUBEARRAY */ - YYSYMBOL_F16TEXTUREBUFFER = 325, /* F16TEXTUREBUFFER */ - YYSYMBOL_F16TEXTURE2DMS = 326, /* F16TEXTURE2DMS */ - YYSYMBOL_F16TEXTURE2DMSARRAY = 327, /* F16TEXTURE2DMSARRAY */ - YYSYMBOL_SUBPASSINPUT = 328, /* SUBPASSINPUT */ - YYSYMBOL_SUBPASSINPUTMS = 329, /* SUBPASSINPUTMS */ - YYSYMBOL_ISUBPASSINPUT = 330, /* ISUBPASSINPUT */ - YYSYMBOL_ISUBPASSINPUTMS = 331, /* ISUBPASSINPUTMS */ - YYSYMBOL_USUBPASSINPUT = 332, /* USUBPASSINPUT */ - YYSYMBOL_USUBPASSINPUTMS = 333, /* USUBPASSINPUTMS */ - YYSYMBOL_F16SUBPASSINPUT = 334, /* F16SUBPASSINPUT */ - YYSYMBOL_F16SUBPASSINPUTMS = 335, /* F16SUBPASSINPUTMS */ - YYSYMBOL_SPIRV_INSTRUCTION = 336, /* SPIRV_INSTRUCTION */ - YYSYMBOL_SPIRV_EXECUTION_MODE = 337, /* SPIRV_EXECUTION_MODE */ - YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 338, /* SPIRV_EXECUTION_MODE_ID */ - YYSYMBOL_SPIRV_DECORATE = 339, /* SPIRV_DECORATE */ - YYSYMBOL_SPIRV_DECORATE_ID = 340, /* SPIRV_DECORATE_ID */ - YYSYMBOL_SPIRV_DECORATE_STRING = 341, /* SPIRV_DECORATE_STRING */ - YYSYMBOL_SPIRV_TYPE = 342, /* SPIRV_TYPE */ - YYSYMBOL_SPIRV_STORAGE_CLASS = 343, /* SPIRV_STORAGE_CLASS */ - YYSYMBOL_SPIRV_BY_REFERENCE = 344, /* SPIRV_BY_REFERENCE */ - YYSYMBOL_SPIRV_LITERAL = 345, /* SPIRV_LITERAL */ - YYSYMBOL_ATTACHMENTEXT = 346, /* ATTACHMENTEXT */ - YYSYMBOL_IATTACHMENTEXT = 347, /* IATTACHMENTEXT */ - YYSYMBOL_UATTACHMENTEXT = 348, /* UATTACHMENTEXT */ - YYSYMBOL_LEFT_OP = 349, /* LEFT_OP */ - YYSYMBOL_RIGHT_OP = 350, /* RIGHT_OP */ - YYSYMBOL_INC_OP = 351, /* INC_OP */ - YYSYMBOL_DEC_OP = 352, /* DEC_OP */ - YYSYMBOL_LE_OP = 353, /* LE_OP */ - YYSYMBOL_GE_OP = 354, /* GE_OP */ - YYSYMBOL_EQ_OP = 355, /* EQ_OP */ - YYSYMBOL_NE_OP = 356, /* NE_OP */ - YYSYMBOL_AND_OP = 357, /* AND_OP */ - YYSYMBOL_OR_OP = 358, /* OR_OP */ - YYSYMBOL_XOR_OP = 359, /* XOR_OP */ - YYSYMBOL_MUL_ASSIGN = 360, /* MUL_ASSIGN */ - YYSYMBOL_DIV_ASSIGN = 361, /* DIV_ASSIGN */ - YYSYMBOL_ADD_ASSIGN = 362, /* ADD_ASSIGN */ - YYSYMBOL_MOD_ASSIGN = 363, /* MOD_ASSIGN */ - YYSYMBOL_LEFT_ASSIGN = 364, /* LEFT_ASSIGN */ - YYSYMBOL_RIGHT_ASSIGN = 365, /* RIGHT_ASSIGN */ - YYSYMBOL_AND_ASSIGN = 366, /* AND_ASSIGN */ - YYSYMBOL_XOR_ASSIGN = 367, /* XOR_ASSIGN */ - YYSYMBOL_OR_ASSIGN = 368, /* OR_ASSIGN */ - YYSYMBOL_SUB_ASSIGN = 369, /* SUB_ASSIGN */ - YYSYMBOL_STRING_LITERAL = 370, /* STRING_LITERAL */ - YYSYMBOL_LEFT_PAREN = 371, /* LEFT_PAREN */ - YYSYMBOL_RIGHT_PAREN = 372, /* RIGHT_PAREN */ - YYSYMBOL_LEFT_BRACKET = 373, /* LEFT_BRACKET */ - YYSYMBOL_RIGHT_BRACKET = 374, /* RIGHT_BRACKET */ - YYSYMBOL_LEFT_BRACE = 375, /* LEFT_BRACE */ - YYSYMBOL_RIGHT_BRACE = 376, /* RIGHT_BRACE */ - YYSYMBOL_DOT = 377, /* DOT */ - YYSYMBOL_COMMA = 378, /* COMMA */ - YYSYMBOL_COLON = 379, /* COLON */ - YYSYMBOL_EQUAL = 380, /* EQUAL */ - YYSYMBOL_SEMICOLON = 381, /* SEMICOLON */ - YYSYMBOL_BANG = 382, /* BANG */ - YYSYMBOL_DASH = 383, /* DASH */ - YYSYMBOL_TILDE = 384, /* TILDE */ - YYSYMBOL_PLUS = 385, /* PLUS */ - YYSYMBOL_STAR = 386, /* STAR */ - YYSYMBOL_SLASH = 387, /* SLASH */ - YYSYMBOL_PERCENT = 388, /* PERCENT */ - YYSYMBOL_LEFT_ANGLE = 389, /* LEFT_ANGLE */ - YYSYMBOL_RIGHT_ANGLE = 390, /* RIGHT_ANGLE */ - YYSYMBOL_VERTICAL_BAR = 391, /* VERTICAL_BAR */ - YYSYMBOL_CARET = 392, /* CARET */ - YYSYMBOL_AMPERSAND = 393, /* AMPERSAND */ - YYSYMBOL_QUESTION = 394, /* QUESTION */ - YYSYMBOL_INVARIANT = 395, /* INVARIANT */ - YYSYMBOL_HIGH_PRECISION = 396, /* HIGH_PRECISION */ - YYSYMBOL_MEDIUM_PRECISION = 397, /* MEDIUM_PRECISION */ - YYSYMBOL_LOW_PRECISION = 398, /* LOW_PRECISION */ - YYSYMBOL_PRECISION = 399, /* PRECISION */ - YYSYMBOL_PACKED = 400, /* PACKED */ - YYSYMBOL_RESOURCE = 401, /* RESOURCE */ - YYSYMBOL_SUPERP = 402, /* SUPERP */ - YYSYMBOL_FLOATCONSTANT = 403, /* FLOATCONSTANT */ - YYSYMBOL_INTCONSTANT = 404, /* INTCONSTANT */ - YYSYMBOL_UINTCONSTANT = 405, /* UINTCONSTANT */ - YYSYMBOL_BOOLCONSTANT = 406, /* BOOLCONSTANT */ - YYSYMBOL_IDENTIFIER = 407, /* IDENTIFIER */ - YYSYMBOL_TYPE_NAME = 408, /* TYPE_NAME */ - YYSYMBOL_CENTROID = 409, /* CENTROID */ - YYSYMBOL_IN = 410, /* IN */ - YYSYMBOL_OUT = 411, /* OUT */ - YYSYMBOL_INOUT = 412, /* INOUT */ - YYSYMBOL_STRUCT = 413, /* STRUCT */ - YYSYMBOL_VOID = 414, /* VOID */ - YYSYMBOL_WHILE = 415, /* WHILE */ - YYSYMBOL_BREAK = 416, /* BREAK */ - YYSYMBOL_CONTINUE = 417, /* CONTINUE */ - YYSYMBOL_DO = 418, /* DO */ - YYSYMBOL_ELSE = 419, /* ELSE */ - YYSYMBOL_FOR = 420, /* FOR */ - YYSYMBOL_IF = 421, /* IF */ - YYSYMBOL_DISCARD = 422, /* DISCARD */ - YYSYMBOL_RETURN = 423, /* RETURN */ - YYSYMBOL_SWITCH = 424, /* SWITCH */ - YYSYMBOL_CASE = 425, /* CASE */ - YYSYMBOL_DEFAULT = 426, /* DEFAULT */ - YYSYMBOL_TERMINATE_INVOCATION = 427, /* TERMINATE_INVOCATION */ - YYSYMBOL_TERMINATE_RAY = 428, /* TERMINATE_RAY */ - YYSYMBOL_IGNORE_INTERSECTION = 429, /* IGNORE_INTERSECTION */ - YYSYMBOL_UNIFORM = 430, /* UNIFORM */ - YYSYMBOL_SHARED = 431, /* SHARED */ - YYSYMBOL_BUFFER = 432, /* BUFFER */ - YYSYMBOL_TILEIMAGEEXT = 433, /* TILEIMAGEEXT */ - YYSYMBOL_FLAT = 434, /* FLAT */ - YYSYMBOL_SMOOTH = 435, /* SMOOTH */ - YYSYMBOL_LAYOUT = 436, /* LAYOUT */ - YYSYMBOL_DOUBLECONSTANT = 437, /* DOUBLECONSTANT */ - YYSYMBOL_INT16CONSTANT = 438, /* INT16CONSTANT */ - YYSYMBOL_UINT16CONSTANT = 439, /* UINT16CONSTANT */ - YYSYMBOL_FLOAT16CONSTANT = 440, /* FLOAT16CONSTANT */ - YYSYMBOL_INT32CONSTANT = 441, /* INT32CONSTANT */ - YYSYMBOL_UINT32CONSTANT = 442, /* UINT32CONSTANT */ - YYSYMBOL_INT64CONSTANT = 443, /* INT64CONSTANT */ - YYSYMBOL_UINT64CONSTANT = 444, /* UINT64CONSTANT */ - YYSYMBOL_SUBROUTINE = 445, /* SUBROUTINE */ - YYSYMBOL_DEMOTE = 446, /* DEMOTE */ - YYSYMBOL_FUNCTION = 447, /* FUNCTION */ - YYSYMBOL_PAYLOADNV = 448, /* PAYLOADNV */ - YYSYMBOL_PAYLOADINNV = 449, /* PAYLOADINNV */ - YYSYMBOL_HITATTRNV = 450, /* HITATTRNV */ - YYSYMBOL_CALLDATANV = 451, /* CALLDATANV */ - YYSYMBOL_CALLDATAINNV = 452, /* CALLDATAINNV */ - YYSYMBOL_PAYLOADEXT = 453, /* PAYLOADEXT */ - YYSYMBOL_PAYLOADINEXT = 454, /* PAYLOADINEXT */ - YYSYMBOL_HITATTREXT = 455, /* HITATTREXT */ - YYSYMBOL_CALLDATAEXT = 456, /* CALLDATAEXT */ - YYSYMBOL_CALLDATAINEXT = 457, /* CALLDATAINEXT */ - YYSYMBOL_PATCH = 458, /* PATCH */ - YYSYMBOL_SAMPLE = 459, /* SAMPLE */ - YYSYMBOL_NONUNIFORM = 460, /* NONUNIFORM */ - YYSYMBOL_COHERENT = 461, /* COHERENT */ - YYSYMBOL_VOLATILE = 462, /* VOLATILE */ - YYSYMBOL_RESTRICT = 463, /* RESTRICT */ - YYSYMBOL_READONLY = 464, /* READONLY */ - YYSYMBOL_WRITEONLY = 465, /* WRITEONLY */ - YYSYMBOL_NONTEMPORAL = 466, /* NONTEMPORAL */ - YYSYMBOL_DEVICECOHERENT = 467, /* DEVICECOHERENT */ - YYSYMBOL_QUEUEFAMILYCOHERENT = 468, /* QUEUEFAMILYCOHERENT */ - YYSYMBOL_WORKGROUPCOHERENT = 469, /* WORKGROUPCOHERENT */ - YYSYMBOL_SUBGROUPCOHERENT = 470, /* SUBGROUPCOHERENT */ - YYSYMBOL_NONPRIVATE = 471, /* NONPRIVATE */ - YYSYMBOL_SHADERCALLCOHERENT = 472, /* SHADERCALLCOHERENT */ - YYSYMBOL_NOPERSPECTIVE = 473, /* NOPERSPECTIVE */ - YYSYMBOL_EXPLICITINTERPAMD = 474, /* EXPLICITINTERPAMD */ - YYSYMBOL_PERVERTEXEXT = 475, /* PERVERTEXEXT */ - YYSYMBOL_PERVERTEXNV = 476, /* PERVERTEXNV */ - YYSYMBOL_PERPRIMITIVENV = 477, /* PERPRIMITIVENV */ - YYSYMBOL_PERVIEWNV = 478, /* PERVIEWNV */ - YYSYMBOL_PERTASKNV = 479, /* PERTASKNV */ - YYSYMBOL_PERPRIMITIVEEXT = 480, /* PERPRIMITIVEEXT */ - YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 481, /* TASKPAYLOADWORKGROUPEXT */ - YYSYMBOL_PRECISE = 482, /* PRECISE */ - YYSYMBOL_YYACCEPT = 483, /* $accept */ - YYSYMBOL_variable_identifier = 484, /* variable_identifier */ - YYSYMBOL_primary_expression = 485, /* primary_expression */ - YYSYMBOL_postfix_expression = 486, /* postfix_expression */ - YYSYMBOL_integer_expression = 487, /* integer_expression */ - YYSYMBOL_function_call = 488, /* function_call */ - YYSYMBOL_function_call_or_method = 489, /* function_call_or_method */ - YYSYMBOL_function_call_generic = 490, /* function_call_generic */ - YYSYMBOL_function_call_header_no_parameters = 491, /* function_call_header_no_parameters */ - YYSYMBOL_function_call_header_with_parameters = 492, /* function_call_header_with_parameters */ - YYSYMBOL_function_call_header = 493, /* function_call_header */ - YYSYMBOL_function_identifier = 494, /* function_identifier */ - YYSYMBOL_unary_expression = 495, /* unary_expression */ - YYSYMBOL_unary_operator = 496, /* unary_operator */ - YYSYMBOL_multiplicative_expression = 497, /* multiplicative_expression */ - YYSYMBOL_additive_expression = 498, /* additive_expression */ - YYSYMBOL_shift_expression = 499, /* shift_expression */ - YYSYMBOL_relational_expression = 500, /* relational_expression */ - YYSYMBOL_equality_expression = 501, /* equality_expression */ - YYSYMBOL_and_expression = 502, /* and_expression */ - YYSYMBOL_exclusive_or_expression = 503, /* exclusive_or_expression */ - YYSYMBOL_inclusive_or_expression = 504, /* inclusive_or_expression */ - YYSYMBOL_logical_and_expression = 505, /* logical_and_expression */ - YYSYMBOL_logical_xor_expression = 506, /* logical_xor_expression */ - YYSYMBOL_logical_or_expression = 507, /* logical_or_expression */ - YYSYMBOL_conditional_expression = 508, /* conditional_expression */ - YYSYMBOL_509_1 = 509, /* $@1 */ - YYSYMBOL_assignment_expression = 510, /* assignment_expression */ - YYSYMBOL_assignment_operator = 511, /* assignment_operator */ - YYSYMBOL_expression = 512, /* expression */ - YYSYMBOL_constant_expression = 513, /* constant_expression */ - YYSYMBOL_declaration = 514, /* declaration */ - YYSYMBOL_block_structure = 515, /* block_structure */ - YYSYMBOL_516_2 = 516, /* $@2 */ - YYSYMBOL_identifier_list = 517, /* identifier_list */ - YYSYMBOL_function_prototype = 518, /* function_prototype */ - YYSYMBOL_function_declarator = 519, /* function_declarator */ - YYSYMBOL_function_header_with_parameters = 520, /* function_header_with_parameters */ - YYSYMBOL_function_header = 521, /* function_header */ - YYSYMBOL_parameter_declarator = 522, /* parameter_declarator */ - YYSYMBOL_parameter_declaration = 523, /* parameter_declaration */ - YYSYMBOL_parameter_type_specifier = 524, /* parameter_type_specifier */ - YYSYMBOL_init_declarator_list = 525, /* init_declarator_list */ - YYSYMBOL_single_declaration = 526, /* single_declaration */ - YYSYMBOL_fully_specified_type = 527, /* fully_specified_type */ - YYSYMBOL_invariant_qualifier = 528, /* invariant_qualifier */ - YYSYMBOL_interpolation_qualifier = 529, /* interpolation_qualifier */ - YYSYMBOL_layout_qualifier = 530, /* layout_qualifier */ - YYSYMBOL_layout_qualifier_id_list = 531, /* layout_qualifier_id_list */ - YYSYMBOL_layout_qualifier_id = 532, /* layout_qualifier_id */ - YYSYMBOL_precise_qualifier = 533, /* precise_qualifier */ - YYSYMBOL_type_qualifier = 534, /* type_qualifier */ - YYSYMBOL_single_type_qualifier = 535, /* single_type_qualifier */ - YYSYMBOL_storage_qualifier = 536, /* storage_qualifier */ - YYSYMBOL_non_uniform_qualifier = 537, /* non_uniform_qualifier */ - YYSYMBOL_type_name_list = 538, /* type_name_list */ - YYSYMBOL_type_specifier = 539, /* type_specifier */ - YYSYMBOL_array_specifier = 540, /* array_specifier */ - YYSYMBOL_type_parameter_specifier_opt = 541, /* type_parameter_specifier_opt */ - YYSYMBOL_type_parameter_specifier = 542, /* type_parameter_specifier */ - YYSYMBOL_type_parameter_specifier_list = 543, /* type_parameter_specifier_list */ - YYSYMBOL_type_specifier_nonarray = 544, /* type_specifier_nonarray */ - YYSYMBOL_precision_qualifier = 545, /* precision_qualifier */ - YYSYMBOL_struct_specifier = 546, /* struct_specifier */ - YYSYMBOL_547_3 = 547, /* $@3 */ - YYSYMBOL_548_4 = 548, /* $@4 */ - YYSYMBOL_struct_declaration_list = 549, /* struct_declaration_list */ - YYSYMBOL_struct_declaration = 550, /* struct_declaration */ - YYSYMBOL_struct_declarator_list = 551, /* struct_declarator_list */ - YYSYMBOL_struct_declarator = 552, /* struct_declarator */ - YYSYMBOL_initializer = 553, /* initializer */ - YYSYMBOL_initializer_list = 554, /* initializer_list */ - YYSYMBOL_declaration_statement = 555, /* declaration_statement */ - YYSYMBOL_statement = 556, /* statement */ - YYSYMBOL_simple_statement = 557, /* simple_statement */ - YYSYMBOL_demote_statement = 558, /* demote_statement */ - YYSYMBOL_compound_statement = 559, /* compound_statement */ - YYSYMBOL_560_5 = 560, /* $@5 */ - YYSYMBOL_561_6 = 561, /* $@6 */ - YYSYMBOL_statement_no_new_scope = 562, /* statement_no_new_scope */ - YYSYMBOL_statement_scoped = 563, /* statement_scoped */ - YYSYMBOL_564_7 = 564, /* $@7 */ - YYSYMBOL_565_8 = 565, /* $@8 */ - YYSYMBOL_compound_statement_no_new_scope = 566, /* compound_statement_no_new_scope */ - YYSYMBOL_statement_list = 567, /* statement_list */ - YYSYMBOL_expression_statement = 568, /* expression_statement */ - YYSYMBOL_selection_statement = 569, /* selection_statement */ - YYSYMBOL_selection_statement_nonattributed = 570, /* selection_statement_nonattributed */ - YYSYMBOL_selection_rest_statement = 571, /* selection_rest_statement */ - YYSYMBOL_condition = 572, /* condition */ - YYSYMBOL_switch_statement = 573, /* switch_statement */ - YYSYMBOL_switch_statement_nonattributed = 574, /* switch_statement_nonattributed */ - YYSYMBOL_575_9 = 575, /* $@9 */ - YYSYMBOL_switch_statement_list = 576, /* switch_statement_list */ - YYSYMBOL_case_label = 577, /* case_label */ - YYSYMBOL_iteration_statement = 578, /* iteration_statement */ - YYSYMBOL_iteration_statement_nonattributed = 579, /* iteration_statement_nonattributed */ - YYSYMBOL_580_10 = 580, /* $@10 */ - YYSYMBOL_581_11 = 581, /* $@11 */ - YYSYMBOL_582_12 = 582, /* $@12 */ - YYSYMBOL_for_init_statement = 583, /* for_init_statement */ - YYSYMBOL_conditionopt = 584, /* conditionopt */ - YYSYMBOL_for_rest_statement = 585, /* for_rest_statement */ - YYSYMBOL_jump_statement = 586, /* jump_statement */ - YYSYMBOL_translation_unit = 587, /* translation_unit */ - YYSYMBOL_external_declaration = 588, /* external_declaration */ - YYSYMBOL_function_definition = 589, /* function_definition */ - YYSYMBOL_590_13 = 590, /* $@13 */ - YYSYMBOL_attribute = 591, /* attribute */ - YYSYMBOL_attribute_list = 592, /* attribute_list */ - YYSYMBOL_single_attribute = 593, /* single_attribute */ - YYSYMBOL_spirv_requirements_list = 594, /* spirv_requirements_list */ - YYSYMBOL_spirv_requirements_parameter = 595, /* spirv_requirements_parameter */ - YYSYMBOL_spirv_extension_list = 596, /* spirv_extension_list */ - YYSYMBOL_spirv_capability_list = 597, /* spirv_capability_list */ - YYSYMBOL_spirv_execution_mode_qualifier = 598, /* spirv_execution_mode_qualifier */ - YYSYMBOL_spirv_execution_mode_parameter_list = 599, /* spirv_execution_mode_parameter_list */ - YYSYMBOL_spirv_execution_mode_parameter = 600, /* spirv_execution_mode_parameter */ - YYSYMBOL_spirv_execution_mode_id_parameter_list = 601, /* spirv_execution_mode_id_parameter_list */ - YYSYMBOL_spirv_storage_class_qualifier = 602, /* spirv_storage_class_qualifier */ - YYSYMBOL_spirv_decorate_qualifier = 603, /* spirv_decorate_qualifier */ - YYSYMBOL_spirv_decorate_parameter_list = 604, /* spirv_decorate_parameter_list */ - YYSYMBOL_spirv_decorate_parameter = 605, /* spirv_decorate_parameter */ - YYSYMBOL_spirv_decorate_id_parameter_list = 606, /* spirv_decorate_id_parameter_list */ - YYSYMBOL_spirv_decorate_id_parameter = 607, /* spirv_decorate_id_parameter */ - YYSYMBOL_spirv_decorate_string_parameter_list = 608, /* spirv_decorate_string_parameter_list */ - YYSYMBOL_spirv_type_specifier = 609, /* spirv_type_specifier */ - YYSYMBOL_spirv_type_parameter_list = 610, /* spirv_type_parameter_list */ - YYSYMBOL_spirv_type_parameter = 611, /* spirv_type_parameter */ - YYSYMBOL_spirv_instruction_qualifier = 612, /* spirv_instruction_qualifier */ - YYSYMBOL_spirv_instruction_qualifier_list = 613, /* spirv_instruction_qualifier_list */ - YYSYMBOL_spirv_instruction_qualifier_id = 614 /* spirv_instruction_qualifier_id */ + YYSYMBOL_HITOBJECTEXT = 182, /* HITOBJECTEXT */ + YYSYMBOL_HITOBJECTATTREXT = 183, /* HITOBJECTATTREXT */ + YYSYMBOL_TENSORLAYOUTNV = 184, /* TENSORLAYOUTNV */ + YYSYMBOL_TENSORVIEWNV = 185, /* TENSORVIEWNV */ + YYSYMBOL_TENSORARM = 186, /* TENSORARM */ + YYSYMBOL_SAMPLERCUBEARRAY = 187, /* SAMPLERCUBEARRAY */ + YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 188, /* SAMPLERCUBEARRAYSHADOW */ + YYSYMBOL_ISAMPLERCUBEARRAY = 189, /* ISAMPLERCUBEARRAY */ + YYSYMBOL_USAMPLERCUBEARRAY = 190, /* USAMPLERCUBEARRAY */ + YYSYMBOL_SAMPLER1D = 191, /* SAMPLER1D */ + YYSYMBOL_SAMPLER1DARRAY = 192, /* SAMPLER1DARRAY */ + YYSYMBOL_SAMPLER1DARRAYSHADOW = 193, /* SAMPLER1DARRAYSHADOW */ + YYSYMBOL_ISAMPLER1D = 194, /* ISAMPLER1D */ + YYSYMBOL_SAMPLER1DSHADOW = 195, /* SAMPLER1DSHADOW */ + YYSYMBOL_SAMPLER2DRECT = 196, /* SAMPLER2DRECT */ + YYSYMBOL_SAMPLER2DRECTSHADOW = 197, /* SAMPLER2DRECTSHADOW */ + YYSYMBOL_ISAMPLER2DRECT = 198, /* ISAMPLER2DRECT */ + YYSYMBOL_USAMPLER2DRECT = 199, /* USAMPLER2DRECT */ + YYSYMBOL_SAMPLERBUFFER = 200, /* SAMPLERBUFFER */ + YYSYMBOL_ISAMPLERBUFFER = 201, /* ISAMPLERBUFFER */ + YYSYMBOL_USAMPLERBUFFER = 202, /* USAMPLERBUFFER */ + YYSYMBOL_SAMPLER2DMS = 203, /* SAMPLER2DMS */ + YYSYMBOL_ISAMPLER2DMS = 204, /* ISAMPLER2DMS */ + YYSYMBOL_USAMPLER2DMS = 205, /* USAMPLER2DMS */ + YYSYMBOL_SAMPLER2DMSARRAY = 206, /* SAMPLER2DMSARRAY */ + YYSYMBOL_ISAMPLER2DMSARRAY = 207, /* ISAMPLER2DMSARRAY */ + YYSYMBOL_USAMPLER2DMSARRAY = 208, /* USAMPLER2DMSARRAY */ + YYSYMBOL_SAMPLEREXTERNALOES = 209, /* SAMPLEREXTERNALOES */ + YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 210, /* SAMPLEREXTERNAL2DY2YEXT */ + YYSYMBOL_ISAMPLER1DARRAY = 211, /* ISAMPLER1DARRAY */ + YYSYMBOL_USAMPLER1D = 212, /* USAMPLER1D */ + YYSYMBOL_USAMPLER1DARRAY = 213, /* USAMPLER1DARRAY */ + YYSYMBOL_F16SAMPLER1D = 214, /* F16SAMPLER1D */ + YYSYMBOL_F16SAMPLER2D = 215, /* F16SAMPLER2D */ + YYSYMBOL_F16SAMPLER3D = 216, /* F16SAMPLER3D */ + YYSYMBOL_F16SAMPLER2DRECT = 217, /* F16SAMPLER2DRECT */ + YYSYMBOL_F16SAMPLERCUBE = 218, /* F16SAMPLERCUBE */ + YYSYMBOL_F16SAMPLER1DARRAY = 219, /* F16SAMPLER1DARRAY */ + YYSYMBOL_F16SAMPLER2DARRAY = 220, /* F16SAMPLER2DARRAY */ + YYSYMBOL_F16SAMPLERCUBEARRAY = 221, /* F16SAMPLERCUBEARRAY */ + YYSYMBOL_F16SAMPLERBUFFER = 222, /* F16SAMPLERBUFFER */ + YYSYMBOL_F16SAMPLER2DMS = 223, /* F16SAMPLER2DMS */ + YYSYMBOL_F16SAMPLER2DMSARRAY = 224, /* F16SAMPLER2DMSARRAY */ + YYSYMBOL_F16SAMPLER1DSHADOW = 225, /* F16SAMPLER1DSHADOW */ + YYSYMBOL_F16SAMPLER2DSHADOW = 226, /* F16SAMPLER2DSHADOW */ + YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 227, /* F16SAMPLER1DARRAYSHADOW */ + YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 228, /* F16SAMPLER2DARRAYSHADOW */ + YYSYMBOL_F16SAMPLER2DRECTSHADOW = 229, /* F16SAMPLER2DRECTSHADOW */ + YYSYMBOL_F16SAMPLERCUBESHADOW = 230, /* F16SAMPLERCUBESHADOW */ + YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 231, /* F16SAMPLERCUBEARRAYSHADOW */ + YYSYMBOL_IMAGE1D = 232, /* IMAGE1D */ + YYSYMBOL_IIMAGE1D = 233, /* IIMAGE1D */ + YYSYMBOL_UIMAGE1D = 234, /* UIMAGE1D */ + YYSYMBOL_IMAGE2D = 235, /* IMAGE2D */ + YYSYMBOL_IIMAGE2D = 236, /* IIMAGE2D */ + YYSYMBOL_UIMAGE2D = 237, /* UIMAGE2D */ + YYSYMBOL_IMAGE3D = 238, /* IMAGE3D */ + YYSYMBOL_IIMAGE3D = 239, /* IIMAGE3D */ + YYSYMBOL_UIMAGE3D = 240, /* UIMAGE3D */ + YYSYMBOL_IMAGE2DRECT = 241, /* IMAGE2DRECT */ + YYSYMBOL_IIMAGE2DRECT = 242, /* IIMAGE2DRECT */ + YYSYMBOL_UIMAGE2DRECT = 243, /* UIMAGE2DRECT */ + YYSYMBOL_IMAGECUBE = 244, /* IMAGECUBE */ + YYSYMBOL_IIMAGECUBE = 245, /* IIMAGECUBE */ + YYSYMBOL_UIMAGECUBE = 246, /* UIMAGECUBE */ + YYSYMBOL_IMAGEBUFFER = 247, /* IMAGEBUFFER */ + YYSYMBOL_IIMAGEBUFFER = 248, /* IIMAGEBUFFER */ + YYSYMBOL_UIMAGEBUFFER = 249, /* UIMAGEBUFFER */ + YYSYMBOL_IMAGE1DARRAY = 250, /* IMAGE1DARRAY */ + YYSYMBOL_IIMAGE1DARRAY = 251, /* IIMAGE1DARRAY */ + YYSYMBOL_UIMAGE1DARRAY = 252, /* UIMAGE1DARRAY */ + YYSYMBOL_IMAGE2DARRAY = 253, /* IMAGE2DARRAY */ + YYSYMBOL_IIMAGE2DARRAY = 254, /* IIMAGE2DARRAY */ + YYSYMBOL_UIMAGE2DARRAY = 255, /* UIMAGE2DARRAY */ + YYSYMBOL_IMAGECUBEARRAY = 256, /* IMAGECUBEARRAY */ + YYSYMBOL_IIMAGECUBEARRAY = 257, /* IIMAGECUBEARRAY */ + YYSYMBOL_UIMAGECUBEARRAY = 258, /* UIMAGECUBEARRAY */ + YYSYMBOL_IMAGE2DMS = 259, /* IMAGE2DMS */ + YYSYMBOL_IIMAGE2DMS = 260, /* IIMAGE2DMS */ + YYSYMBOL_UIMAGE2DMS = 261, /* UIMAGE2DMS */ + YYSYMBOL_IMAGE2DMSARRAY = 262, /* IMAGE2DMSARRAY */ + YYSYMBOL_IIMAGE2DMSARRAY = 263, /* IIMAGE2DMSARRAY */ + YYSYMBOL_UIMAGE2DMSARRAY = 264, /* UIMAGE2DMSARRAY */ + YYSYMBOL_F16IMAGE1D = 265, /* F16IMAGE1D */ + YYSYMBOL_F16IMAGE2D = 266, /* F16IMAGE2D */ + YYSYMBOL_F16IMAGE3D = 267, /* F16IMAGE3D */ + YYSYMBOL_F16IMAGE2DRECT = 268, /* F16IMAGE2DRECT */ + YYSYMBOL_F16IMAGECUBE = 269, /* F16IMAGECUBE */ + YYSYMBOL_F16IMAGE1DARRAY = 270, /* F16IMAGE1DARRAY */ + YYSYMBOL_F16IMAGE2DARRAY = 271, /* F16IMAGE2DARRAY */ + YYSYMBOL_F16IMAGECUBEARRAY = 272, /* F16IMAGECUBEARRAY */ + YYSYMBOL_F16IMAGEBUFFER = 273, /* F16IMAGEBUFFER */ + YYSYMBOL_F16IMAGE2DMS = 274, /* F16IMAGE2DMS */ + YYSYMBOL_F16IMAGE2DMSARRAY = 275, /* F16IMAGE2DMSARRAY */ + YYSYMBOL_I64IMAGE1D = 276, /* I64IMAGE1D */ + YYSYMBOL_U64IMAGE1D = 277, /* U64IMAGE1D */ + YYSYMBOL_I64IMAGE2D = 278, /* I64IMAGE2D */ + YYSYMBOL_U64IMAGE2D = 279, /* U64IMAGE2D */ + YYSYMBOL_I64IMAGE3D = 280, /* I64IMAGE3D */ + YYSYMBOL_U64IMAGE3D = 281, /* U64IMAGE3D */ + YYSYMBOL_I64IMAGE2DRECT = 282, /* I64IMAGE2DRECT */ + YYSYMBOL_U64IMAGE2DRECT = 283, /* U64IMAGE2DRECT */ + YYSYMBOL_I64IMAGECUBE = 284, /* I64IMAGECUBE */ + YYSYMBOL_U64IMAGECUBE = 285, /* U64IMAGECUBE */ + YYSYMBOL_I64IMAGEBUFFER = 286, /* I64IMAGEBUFFER */ + YYSYMBOL_U64IMAGEBUFFER = 287, /* U64IMAGEBUFFER */ + YYSYMBOL_I64IMAGE1DARRAY = 288, /* I64IMAGE1DARRAY */ + YYSYMBOL_U64IMAGE1DARRAY = 289, /* U64IMAGE1DARRAY */ + YYSYMBOL_I64IMAGE2DARRAY = 290, /* I64IMAGE2DARRAY */ + YYSYMBOL_U64IMAGE2DARRAY = 291, /* U64IMAGE2DARRAY */ + YYSYMBOL_I64IMAGECUBEARRAY = 292, /* I64IMAGECUBEARRAY */ + YYSYMBOL_U64IMAGECUBEARRAY = 293, /* U64IMAGECUBEARRAY */ + YYSYMBOL_I64IMAGE2DMS = 294, /* I64IMAGE2DMS */ + YYSYMBOL_U64IMAGE2DMS = 295, /* U64IMAGE2DMS */ + YYSYMBOL_I64IMAGE2DMSARRAY = 296, /* I64IMAGE2DMSARRAY */ + YYSYMBOL_U64IMAGE2DMSARRAY = 297, /* U64IMAGE2DMSARRAY */ + YYSYMBOL_TEXTURECUBEARRAY = 298, /* TEXTURECUBEARRAY */ + YYSYMBOL_ITEXTURECUBEARRAY = 299, /* ITEXTURECUBEARRAY */ + YYSYMBOL_UTEXTURECUBEARRAY = 300, /* UTEXTURECUBEARRAY */ + YYSYMBOL_TEXTURE1D = 301, /* TEXTURE1D */ + YYSYMBOL_ITEXTURE1D = 302, /* ITEXTURE1D */ + YYSYMBOL_UTEXTURE1D = 303, /* UTEXTURE1D */ + YYSYMBOL_TEXTURE1DARRAY = 304, /* TEXTURE1DARRAY */ + YYSYMBOL_ITEXTURE1DARRAY = 305, /* ITEXTURE1DARRAY */ + YYSYMBOL_UTEXTURE1DARRAY = 306, /* UTEXTURE1DARRAY */ + YYSYMBOL_TEXTURE2DRECT = 307, /* TEXTURE2DRECT */ + YYSYMBOL_ITEXTURE2DRECT = 308, /* ITEXTURE2DRECT */ + YYSYMBOL_UTEXTURE2DRECT = 309, /* UTEXTURE2DRECT */ + YYSYMBOL_TEXTUREBUFFER = 310, /* TEXTUREBUFFER */ + YYSYMBOL_ITEXTUREBUFFER = 311, /* ITEXTUREBUFFER */ + YYSYMBOL_UTEXTUREBUFFER = 312, /* UTEXTUREBUFFER */ + YYSYMBOL_TEXTURE2DMS = 313, /* TEXTURE2DMS */ + YYSYMBOL_ITEXTURE2DMS = 314, /* ITEXTURE2DMS */ + YYSYMBOL_UTEXTURE2DMS = 315, /* UTEXTURE2DMS */ + YYSYMBOL_TEXTURE2DMSARRAY = 316, /* TEXTURE2DMSARRAY */ + YYSYMBOL_ITEXTURE2DMSARRAY = 317, /* ITEXTURE2DMSARRAY */ + YYSYMBOL_UTEXTURE2DMSARRAY = 318, /* UTEXTURE2DMSARRAY */ + YYSYMBOL_F16TEXTURE1D = 319, /* F16TEXTURE1D */ + YYSYMBOL_F16TEXTURE2D = 320, /* F16TEXTURE2D */ + YYSYMBOL_F16TEXTURE3D = 321, /* F16TEXTURE3D */ + YYSYMBOL_F16TEXTURE2DRECT = 322, /* F16TEXTURE2DRECT */ + YYSYMBOL_F16TEXTURECUBE = 323, /* F16TEXTURECUBE */ + YYSYMBOL_F16TEXTURE1DARRAY = 324, /* F16TEXTURE1DARRAY */ + YYSYMBOL_F16TEXTURE2DARRAY = 325, /* F16TEXTURE2DARRAY */ + YYSYMBOL_F16TEXTURECUBEARRAY = 326, /* F16TEXTURECUBEARRAY */ + YYSYMBOL_F16TEXTUREBUFFER = 327, /* F16TEXTUREBUFFER */ + YYSYMBOL_F16TEXTURE2DMS = 328, /* F16TEXTURE2DMS */ + YYSYMBOL_F16TEXTURE2DMSARRAY = 329, /* F16TEXTURE2DMSARRAY */ + YYSYMBOL_SUBPASSINPUT = 330, /* SUBPASSINPUT */ + YYSYMBOL_SUBPASSINPUTMS = 331, /* SUBPASSINPUTMS */ + YYSYMBOL_ISUBPASSINPUT = 332, /* ISUBPASSINPUT */ + YYSYMBOL_ISUBPASSINPUTMS = 333, /* ISUBPASSINPUTMS */ + YYSYMBOL_USUBPASSINPUT = 334, /* USUBPASSINPUT */ + YYSYMBOL_USUBPASSINPUTMS = 335, /* USUBPASSINPUTMS */ + YYSYMBOL_F16SUBPASSINPUT = 336, /* F16SUBPASSINPUT */ + YYSYMBOL_F16SUBPASSINPUTMS = 337, /* F16SUBPASSINPUTMS */ + YYSYMBOL_SPIRV_INSTRUCTION = 338, /* SPIRV_INSTRUCTION */ + YYSYMBOL_SPIRV_EXECUTION_MODE = 339, /* SPIRV_EXECUTION_MODE */ + YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 340, /* SPIRV_EXECUTION_MODE_ID */ + YYSYMBOL_SPIRV_DECORATE = 341, /* SPIRV_DECORATE */ + YYSYMBOL_SPIRV_DECORATE_ID = 342, /* SPIRV_DECORATE_ID */ + YYSYMBOL_SPIRV_DECORATE_STRING = 343, /* SPIRV_DECORATE_STRING */ + YYSYMBOL_SPIRV_TYPE = 344, /* SPIRV_TYPE */ + YYSYMBOL_SPIRV_STORAGE_CLASS = 345, /* SPIRV_STORAGE_CLASS */ + YYSYMBOL_SPIRV_BY_REFERENCE = 346, /* SPIRV_BY_REFERENCE */ + YYSYMBOL_SPIRV_LITERAL = 347, /* SPIRV_LITERAL */ + YYSYMBOL_ATTACHMENTEXT = 348, /* ATTACHMENTEXT */ + YYSYMBOL_IATTACHMENTEXT = 349, /* IATTACHMENTEXT */ + YYSYMBOL_UATTACHMENTEXT = 350, /* UATTACHMENTEXT */ + YYSYMBOL_LEFT_OP = 351, /* LEFT_OP */ + YYSYMBOL_RIGHT_OP = 352, /* RIGHT_OP */ + YYSYMBOL_INC_OP = 353, /* INC_OP */ + YYSYMBOL_DEC_OP = 354, /* DEC_OP */ + YYSYMBOL_LE_OP = 355, /* LE_OP */ + YYSYMBOL_GE_OP = 356, /* GE_OP */ + YYSYMBOL_EQ_OP = 357, /* EQ_OP */ + YYSYMBOL_NE_OP = 358, /* NE_OP */ + YYSYMBOL_AND_OP = 359, /* AND_OP */ + YYSYMBOL_OR_OP = 360, /* OR_OP */ + YYSYMBOL_XOR_OP = 361, /* XOR_OP */ + YYSYMBOL_MUL_ASSIGN = 362, /* MUL_ASSIGN */ + YYSYMBOL_DIV_ASSIGN = 363, /* DIV_ASSIGN */ + YYSYMBOL_ADD_ASSIGN = 364, /* ADD_ASSIGN */ + YYSYMBOL_MOD_ASSIGN = 365, /* MOD_ASSIGN */ + YYSYMBOL_LEFT_ASSIGN = 366, /* LEFT_ASSIGN */ + YYSYMBOL_RIGHT_ASSIGN = 367, /* RIGHT_ASSIGN */ + YYSYMBOL_AND_ASSIGN = 368, /* AND_ASSIGN */ + YYSYMBOL_XOR_ASSIGN = 369, /* XOR_ASSIGN */ + YYSYMBOL_OR_ASSIGN = 370, /* OR_ASSIGN */ + YYSYMBOL_SUB_ASSIGN = 371, /* SUB_ASSIGN */ + YYSYMBOL_STRING_LITERAL = 372, /* STRING_LITERAL */ + YYSYMBOL_LEFT_PAREN = 373, /* LEFT_PAREN */ + YYSYMBOL_RIGHT_PAREN = 374, /* RIGHT_PAREN */ + YYSYMBOL_LEFT_BRACKET = 375, /* LEFT_BRACKET */ + YYSYMBOL_RIGHT_BRACKET = 376, /* RIGHT_BRACKET */ + YYSYMBOL_LEFT_BRACE = 377, /* LEFT_BRACE */ + YYSYMBOL_RIGHT_BRACE = 378, /* RIGHT_BRACE */ + YYSYMBOL_DOT = 379, /* DOT */ + YYSYMBOL_COMMA = 380, /* COMMA */ + YYSYMBOL_COLON = 381, /* COLON */ + YYSYMBOL_EQUAL = 382, /* EQUAL */ + YYSYMBOL_SEMICOLON = 383, /* SEMICOLON */ + YYSYMBOL_BANG = 384, /* BANG */ + YYSYMBOL_DASH = 385, /* DASH */ + YYSYMBOL_TILDE = 386, /* TILDE */ + YYSYMBOL_PLUS = 387, /* PLUS */ + YYSYMBOL_STAR = 388, /* STAR */ + YYSYMBOL_SLASH = 389, /* SLASH */ + YYSYMBOL_PERCENT = 390, /* PERCENT */ + YYSYMBOL_LEFT_ANGLE = 391, /* LEFT_ANGLE */ + YYSYMBOL_RIGHT_ANGLE = 392, /* RIGHT_ANGLE */ + YYSYMBOL_VERTICAL_BAR = 393, /* VERTICAL_BAR */ + YYSYMBOL_CARET = 394, /* CARET */ + YYSYMBOL_AMPERSAND = 395, /* AMPERSAND */ + YYSYMBOL_QUESTION = 396, /* QUESTION */ + YYSYMBOL_INVARIANT = 397, /* INVARIANT */ + YYSYMBOL_HIGH_PRECISION = 398, /* HIGH_PRECISION */ + YYSYMBOL_MEDIUM_PRECISION = 399, /* MEDIUM_PRECISION */ + YYSYMBOL_LOW_PRECISION = 400, /* LOW_PRECISION */ + YYSYMBOL_PRECISION = 401, /* PRECISION */ + YYSYMBOL_PACKED = 402, /* PACKED */ + YYSYMBOL_RESOURCE = 403, /* RESOURCE */ + YYSYMBOL_SUPERP = 404, /* SUPERP */ + YYSYMBOL_FLOATCONSTANT = 405, /* FLOATCONSTANT */ + YYSYMBOL_INTCONSTANT = 406, /* INTCONSTANT */ + YYSYMBOL_UINTCONSTANT = 407, /* UINTCONSTANT */ + YYSYMBOL_BOOLCONSTANT = 408, /* BOOLCONSTANT */ + YYSYMBOL_IDENTIFIER = 409, /* IDENTIFIER */ + YYSYMBOL_TYPE_NAME = 410, /* TYPE_NAME */ + YYSYMBOL_CENTROID = 411, /* CENTROID */ + YYSYMBOL_IN = 412, /* IN */ + YYSYMBOL_OUT = 413, /* OUT */ + YYSYMBOL_INOUT = 414, /* INOUT */ + YYSYMBOL_STRUCT = 415, /* STRUCT */ + YYSYMBOL_VOID = 416, /* VOID */ + YYSYMBOL_WHILE = 417, /* WHILE */ + YYSYMBOL_BREAK = 418, /* BREAK */ + YYSYMBOL_CONTINUE = 419, /* CONTINUE */ + YYSYMBOL_DO = 420, /* DO */ + YYSYMBOL_ELSE = 421, /* ELSE */ + YYSYMBOL_FOR = 422, /* FOR */ + YYSYMBOL_IF = 423, /* IF */ + YYSYMBOL_DISCARD = 424, /* DISCARD */ + YYSYMBOL_RETURN = 425, /* RETURN */ + YYSYMBOL_SWITCH = 426, /* SWITCH */ + YYSYMBOL_CASE = 427, /* CASE */ + YYSYMBOL_DEFAULT = 428, /* DEFAULT */ + YYSYMBOL_TERMINATE_INVOCATION = 429, /* TERMINATE_INVOCATION */ + YYSYMBOL_TERMINATE_RAY = 430, /* TERMINATE_RAY */ + YYSYMBOL_IGNORE_INTERSECTION = 431, /* IGNORE_INTERSECTION */ + YYSYMBOL_UNIFORM = 432, /* UNIFORM */ + YYSYMBOL_SHARED = 433, /* SHARED */ + YYSYMBOL_BUFFER = 434, /* BUFFER */ + YYSYMBOL_TILEIMAGEEXT = 435, /* TILEIMAGEEXT */ + YYSYMBOL_FLAT = 436, /* FLAT */ + YYSYMBOL_SMOOTH = 437, /* SMOOTH */ + YYSYMBOL_LAYOUT = 438, /* LAYOUT */ + YYSYMBOL_DOUBLECONSTANT = 439, /* DOUBLECONSTANT */ + YYSYMBOL_INT16CONSTANT = 440, /* INT16CONSTANT */ + YYSYMBOL_UINT16CONSTANT = 441, /* UINT16CONSTANT */ + YYSYMBOL_FLOAT16CONSTANT = 442, /* FLOAT16CONSTANT */ + YYSYMBOL_INT32CONSTANT = 443, /* INT32CONSTANT */ + YYSYMBOL_UINT32CONSTANT = 444, /* UINT32CONSTANT */ + YYSYMBOL_INT64CONSTANT = 445, /* INT64CONSTANT */ + YYSYMBOL_UINT64CONSTANT = 446, /* UINT64CONSTANT */ + YYSYMBOL_SUBROUTINE = 447, /* SUBROUTINE */ + YYSYMBOL_DEMOTE = 448, /* DEMOTE */ + YYSYMBOL_FUNCTION = 449, /* FUNCTION */ + YYSYMBOL_PAYLOADNV = 450, /* PAYLOADNV */ + YYSYMBOL_PAYLOADINNV = 451, /* PAYLOADINNV */ + YYSYMBOL_HITATTRNV = 452, /* HITATTRNV */ + YYSYMBOL_CALLDATANV = 453, /* CALLDATANV */ + YYSYMBOL_CALLDATAINNV = 454, /* CALLDATAINNV */ + YYSYMBOL_PAYLOADEXT = 455, /* PAYLOADEXT */ + YYSYMBOL_PAYLOADINEXT = 456, /* PAYLOADINEXT */ + YYSYMBOL_HITATTREXT = 457, /* HITATTREXT */ + YYSYMBOL_CALLDATAEXT = 458, /* CALLDATAEXT */ + YYSYMBOL_CALLDATAINEXT = 459, /* CALLDATAINEXT */ + YYSYMBOL_PATCH = 460, /* PATCH */ + YYSYMBOL_SAMPLE = 461, /* SAMPLE */ + YYSYMBOL_NONUNIFORM = 462, /* NONUNIFORM */ + YYSYMBOL_COHERENT = 463, /* COHERENT */ + YYSYMBOL_VOLATILE = 464, /* VOLATILE */ + YYSYMBOL_RESTRICT = 465, /* RESTRICT */ + YYSYMBOL_READONLY = 466, /* READONLY */ + YYSYMBOL_WRITEONLY = 467, /* WRITEONLY */ + YYSYMBOL_NONTEMPORAL = 468, /* NONTEMPORAL */ + YYSYMBOL_DEVICECOHERENT = 469, /* DEVICECOHERENT */ + YYSYMBOL_QUEUEFAMILYCOHERENT = 470, /* QUEUEFAMILYCOHERENT */ + YYSYMBOL_WORKGROUPCOHERENT = 471, /* WORKGROUPCOHERENT */ + YYSYMBOL_SUBGROUPCOHERENT = 472, /* SUBGROUPCOHERENT */ + YYSYMBOL_NONPRIVATE = 473, /* NONPRIVATE */ + YYSYMBOL_SHADERCALLCOHERENT = 474, /* SHADERCALLCOHERENT */ + YYSYMBOL_NOPERSPECTIVE = 475, /* NOPERSPECTIVE */ + YYSYMBOL_EXPLICITINTERPAMD = 476, /* EXPLICITINTERPAMD */ + YYSYMBOL_PERVERTEXEXT = 477, /* PERVERTEXEXT */ + YYSYMBOL_PERVERTEXNV = 478, /* PERVERTEXNV */ + YYSYMBOL_PERPRIMITIVENV = 479, /* PERPRIMITIVENV */ + YYSYMBOL_PERVIEWNV = 480, /* PERVIEWNV */ + YYSYMBOL_PERTASKNV = 481, /* PERTASKNV */ + YYSYMBOL_PERPRIMITIVEEXT = 482, /* PERPRIMITIVEEXT */ + YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 483, /* TASKPAYLOADWORKGROUPEXT */ + YYSYMBOL_PRECISE = 484, /* PRECISE */ + YYSYMBOL_YYACCEPT = 485, /* $accept */ + YYSYMBOL_variable_identifier = 486, /* variable_identifier */ + YYSYMBOL_primary_expression = 487, /* primary_expression */ + YYSYMBOL_postfix_expression = 488, /* postfix_expression */ + YYSYMBOL_integer_expression = 489, /* integer_expression */ + YYSYMBOL_function_call = 490, /* function_call */ + YYSYMBOL_function_call_or_method = 491, /* function_call_or_method */ + YYSYMBOL_function_call_generic = 492, /* function_call_generic */ + YYSYMBOL_function_call_header_no_parameters = 493, /* function_call_header_no_parameters */ + YYSYMBOL_function_call_header_with_parameters = 494, /* function_call_header_with_parameters */ + YYSYMBOL_function_call_header = 495, /* function_call_header */ + YYSYMBOL_function_identifier = 496, /* function_identifier */ + YYSYMBOL_unary_expression = 497, /* unary_expression */ + YYSYMBOL_unary_operator = 498, /* unary_operator */ + YYSYMBOL_multiplicative_expression = 499, /* multiplicative_expression */ + YYSYMBOL_additive_expression = 500, /* additive_expression */ + YYSYMBOL_shift_expression = 501, /* shift_expression */ + YYSYMBOL_relational_expression = 502, /* relational_expression */ + YYSYMBOL_equality_expression = 503, /* equality_expression */ + YYSYMBOL_and_expression = 504, /* and_expression */ + YYSYMBOL_exclusive_or_expression = 505, /* exclusive_or_expression */ + YYSYMBOL_inclusive_or_expression = 506, /* inclusive_or_expression */ + YYSYMBOL_logical_and_expression = 507, /* logical_and_expression */ + YYSYMBOL_logical_xor_expression = 508, /* logical_xor_expression */ + YYSYMBOL_logical_or_expression = 509, /* logical_or_expression */ + YYSYMBOL_conditional_expression = 510, /* conditional_expression */ + YYSYMBOL_511_1 = 511, /* $@1 */ + YYSYMBOL_assignment_expression = 512, /* assignment_expression */ + YYSYMBOL_assignment_operator = 513, /* assignment_operator */ + YYSYMBOL_expression = 514, /* expression */ + YYSYMBOL_constant_expression = 515, /* constant_expression */ + YYSYMBOL_declaration = 516, /* declaration */ + YYSYMBOL_block_structure = 517, /* block_structure */ + YYSYMBOL_518_2 = 518, /* $@2 */ + YYSYMBOL_identifier_list = 519, /* identifier_list */ + YYSYMBOL_function_prototype = 520, /* function_prototype */ + YYSYMBOL_function_declarator = 521, /* function_declarator */ + YYSYMBOL_function_header_with_parameters = 522, /* function_header_with_parameters */ + YYSYMBOL_function_header = 523, /* function_header */ + YYSYMBOL_parameter_declarator = 524, /* parameter_declarator */ + YYSYMBOL_parameter_declaration = 525, /* parameter_declaration */ + YYSYMBOL_parameter_type_specifier = 526, /* parameter_type_specifier */ + YYSYMBOL_init_declarator_list = 527, /* init_declarator_list */ + YYSYMBOL_single_declaration = 528, /* single_declaration */ + YYSYMBOL_fully_specified_type = 529, /* fully_specified_type */ + YYSYMBOL_invariant_qualifier = 530, /* invariant_qualifier */ + YYSYMBOL_interpolation_qualifier = 531, /* interpolation_qualifier */ + YYSYMBOL_layout_qualifier = 532, /* layout_qualifier */ + YYSYMBOL_layout_qualifier_id_list = 533, /* layout_qualifier_id_list */ + YYSYMBOL_layout_qualifier_id = 534, /* layout_qualifier_id */ + YYSYMBOL_precise_qualifier = 535, /* precise_qualifier */ + YYSYMBOL_type_qualifier = 536, /* type_qualifier */ + YYSYMBOL_single_type_qualifier = 537, /* single_type_qualifier */ + YYSYMBOL_storage_qualifier = 538, /* storage_qualifier */ + YYSYMBOL_non_uniform_qualifier = 539, /* non_uniform_qualifier */ + YYSYMBOL_type_name_list = 540, /* type_name_list */ + YYSYMBOL_type_specifier = 541, /* type_specifier */ + YYSYMBOL_array_specifier = 542, /* array_specifier */ + YYSYMBOL_type_parameter_specifier_opt = 543, /* type_parameter_specifier_opt */ + YYSYMBOL_type_parameter_specifier = 544, /* type_parameter_specifier */ + YYSYMBOL_type_parameter_specifier_list = 545, /* type_parameter_specifier_list */ + YYSYMBOL_type_specifier_nonarray = 546, /* type_specifier_nonarray */ + YYSYMBOL_precision_qualifier = 547, /* precision_qualifier */ + YYSYMBOL_struct_specifier = 548, /* struct_specifier */ + YYSYMBOL_549_3 = 549, /* $@3 */ + YYSYMBOL_550_4 = 550, /* $@4 */ + YYSYMBOL_struct_declaration_list = 551, /* struct_declaration_list */ + YYSYMBOL_struct_declaration = 552, /* struct_declaration */ + YYSYMBOL_struct_declarator_list = 553, /* struct_declarator_list */ + YYSYMBOL_struct_declarator = 554, /* struct_declarator */ + YYSYMBOL_initializer = 555, /* initializer */ + YYSYMBOL_initializer_list = 556, /* initializer_list */ + YYSYMBOL_declaration_statement = 557, /* declaration_statement */ + YYSYMBOL_statement = 558, /* statement */ + YYSYMBOL_simple_statement = 559, /* simple_statement */ + YYSYMBOL_demote_statement = 560, /* demote_statement */ + YYSYMBOL_compound_statement = 561, /* compound_statement */ + YYSYMBOL_562_5 = 562, /* $@5 */ + YYSYMBOL_563_6 = 563, /* $@6 */ + YYSYMBOL_statement_no_new_scope = 564, /* statement_no_new_scope */ + YYSYMBOL_statement_scoped = 565, /* statement_scoped */ + YYSYMBOL_566_7 = 566, /* $@7 */ + YYSYMBOL_567_8 = 567, /* $@8 */ + YYSYMBOL_compound_statement_no_new_scope = 568, /* compound_statement_no_new_scope */ + YYSYMBOL_statement_list = 569, /* statement_list */ + YYSYMBOL_expression_statement = 570, /* expression_statement */ + YYSYMBOL_selection_statement = 571, /* selection_statement */ + YYSYMBOL_selection_statement_nonattributed = 572, /* selection_statement_nonattributed */ + YYSYMBOL_selection_rest_statement = 573, /* selection_rest_statement */ + YYSYMBOL_condition = 574, /* condition */ + YYSYMBOL_switch_statement = 575, /* switch_statement */ + YYSYMBOL_switch_statement_nonattributed = 576, /* switch_statement_nonattributed */ + YYSYMBOL_577_9 = 577, /* $@9 */ + YYSYMBOL_switch_statement_list = 578, /* switch_statement_list */ + YYSYMBOL_case_label = 579, /* case_label */ + YYSYMBOL_iteration_statement = 580, /* iteration_statement */ + YYSYMBOL_iteration_statement_nonattributed = 581, /* iteration_statement_nonattributed */ + YYSYMBOL_582_10 = 582, /* $@10 */ + YYSYMBOL_583_11 = 583, /* $@11 */ + YYSYMBOL_584_12 = 584, /* $@12 */ + YYSYMBOL_for_init_statement = 585, /* for_init_statement */ + YYSYMBOL_conditionopt = 586, /* conditionopt */ + YYSYMBOL_for_rest_statement = 587, /* for_rest_statement */ + YYSYMBOL_jump_statement = 588, /* jump_statement */ + YYSYMBOL_translation_unit = 589, /* translation_unit */ + YYSYMBOL_external_declaration = 590, /* external_declaration */ + YYSYMBOL_function_definition = 591, /* function_definition */ + YYSYMBOL_592_13 = 592, /* $@13 */ + YYSYMBOL_attribute = 593, /* attribute */ + YYSYMBOL_attribute_list = 594, /* attribute_list */ + YYSYMBOL_single_attribute = 595, /* single_attribute */ + YYSYMBOL_spirv_requirements_list = 596, /* spirv_requirements_list */ + YYSYMBOL_spirv_requirements_parameter = 597, /* spirv_requirements_parameter */ + YYSYMBOL_spirv_extension_list = 598, /* spirv_extension_list */ + YYSYMBOL_spirv_capability_list = 599, /* spirv_capability_list */ + YYSYMBOL_spirv_execution_mode_qualifier = 600, /* spirv_execution_mode_qualifier */ + YYSYMBOL_spirv_execution_mode_parameter_list = 601, /* spirv_execution_mode_parameter_list */ + YYSYMBOL_spirv_execution_mode_parameter = 602, /* spirv_execution_mode_parameter */ + YYSYMBOL_spirv_execution_mode_id_parameter_list = 603, /* spirv_execution_mode_id_parameter_list */ + YYSYMBOL_spirv_storage_class_qualifier = 604, /* spirv_storage_class_qualifier */ + YYSYMBOL_spirv_decorate_qualifier = 605, /* spirv_decorate_qualifier */ + YYSYMBOL_spirv_decorate_parameter_list = 606, /* spirv_decorate_parameter_list */ + YYSYMBOL_spirv_decorate_parameter = 607, /* spirv_decorate_parameter */ + YYSYMBOL_spirv_decorate_id_parameter_list = 608, /* spirv_decorate_id_parameter_list */ + YYSYMBOL_spirv_decorate_id_parameter = 609, /* spirv_decorate_id_parameter */ + YYSYMBOL_spirv_decorate_string_parameter_list = 610, /* spirv_decorate_string_parameter_list */ + YYSYMBOL_spirv_type_specifier = 611, /* spirv_type_specifier */ + YYSYMBOL_spirv_type_parameter_list = 612, /* spirv_type_parameter_list */ + YYSYMBOL_spirv_type_parameter = 613, /* spirv_type_parameter */ + YYSYMBOL_spirv_instruction_qualifier = 614, /* spirv_instruction_qualifier */ + YYSYMBOL_spirv_instruction_qualifier_list = 615, /* spirv_instruction_qualifier_list */ + YYSYMBOL_spirv_instruction_qualifier_id = 616 /* spirv_instruction_qualifier_id */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -750,7 +752,7 @@ typedef enum yysymbol_kind_t yysymbol_kind_t; extern int yylex(YYSTYPE*, TParseContext&); -#line 754 "MachineIndependent/glslang_tab.cpp" +#line 756 "MachineIndependent/glslang_tab.cpp" #ifdef short @@ -1072,21 +1074,21 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 471 +#define YYFINAL 473 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13688 +#define YYLAST 13744 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 483 +#define YYNTOKENS 485 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 132 /* YYNRULES -- Number of rules. */ -#define YYNRULES 719 +#define YYNRULES 721 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 966 +#define YYNSTATES 968 /* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 737 +#define YYMAXUTOK 739 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1173,85 +1175,86 @@ static const yytype_int16 yytranslate[] = 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482 + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 361, 361, 367, 370, 375, 378, 381, 385, 388, - 391, 395, 399, 403, 407, 411, 415, 421, 428, 431, - 434, 437, 440, 445, 453, 460, 467, 473, 477, 484, - 487, 493, 511, 536, 544, 549, 576, 584, 590, 594, - 598, 618, 619, 620, 621, 627, 628, 633, 638, 647, - 648, 653, 661, 662, 668, 677, 678, 683, 688, 693, - 701, 702, 711, 723, 724, 733, 734, 743, 744, 753, - 754, 762, 763, 771, 772, 780, 781, 781, 799, 800, - 816, 820, 824, 828, 833, 837, 841, 845, 849, 853, - 857, 864, 867, 878, 885, 890, 897, 902, 907, 914, - 918, 922, 926, 931, 939, 939, 950, 954, 961, 966, - 974, 982, 994, 997, 1004, 1017, 1037, 1044, 1067, 1082, - 1101, 1112, 1123, 1133, 1143, 1153, 1162, 1165, 1169, 1173, - 1178, 1186, 1191, 1196, 1201, 1206, 1215, 1225, 1252, 1261, - 1268, 1275, 1282, 1289, 1297, 1305, 1315, 1325, 1332, 1342, - 1348, 1351, 1358, 1362, 1366, 1374, 1383, 1386, 1397, 1400, - 1403, 1407, 1411, 1415, 1419, 1422, 1427, 1431, 1436, 1444, - 1448, 1453, 1459, 1465, 1472, 1477, 1482, 1490, 1495, 1507, - 1521, 1527, 1532, 1540, 1548, 1556, 1564, 1572, 1580, 1588, - 1596, 1604, 1611, 1618, 1622, 1627, 1632, 1637, 1642, 1647, - 1652, 1656, 1660, 1664, 1668, 1672, 1678, 1684, 1694, 1701, - 1704, 1712, 1719, 1730, 1735, 1743, 1747, 1757, 1760, 1766, - 1772, 1778, 1786, 1796, 1800, 1804, 1808, 1813, 1817, 1822, - 1827, 1832, 1837, 1842, 1847, 1852, 1857, 1862, 1868, 1874, - 1880, 1885, 1890, 1895, 1900, 1905, 1910, 1915, 1920, 1925, - 1930, 1935, 1940, 1947, 1952, 1957, 1962, 1967, 1972, 1977, - 1982, 1987, 1992, 1997, 2002, 2007, 2012, 2017, 2025, 2033, - 2041, 2047, 2053, 2059, 2065, 2071, 2077, 2083, 2089, 2095, - 2101, 2107, 2113, 2119, 2125, 2131, 2137, 2143, 2149, 2155, - 2161, 2167, 2173, 2179, 2185, 2191, 2197, 2203, 2209, 2215, - 2221, 2227, 2233, 2239, 2245, 2251, 2257, 2263, 2269, 2275, - 2281, 2287, 2293, 2301, 2309, 2317, 2325, 2333, 2341, 2349, - 2357, 2365, 2373, 2381, 2389, 2395, 2401, 2407, 2413, 2419, - 2425, 2431, 2437, 2443, 2449, 2455, 2461, 2467, 2473, 2479, - 2485, 2491, 2497, 2503, 2509, 2515, 2521, 2527, 2533, 2539, - 2545, 2551, 2557, 2563, 2569, 2575, 2581, 2587, 2593, 2599, - 2605, 2609, 2613, 2617, 2622, 2627, 2632, 2637, 2642, 2647, - 2652, 2657, 2662, 2667, 2672, 2677, 2682, 2687, 2693, 2699, - 2705, 2711, 2717, 2723, 2729, 2735, 2741, 2747, 2753, 2759, - 2765, 2770, 2775, 2780, 2785, 2790, 2795, 2800, 2805, 2810, - 2815, 2820, 2825, 2830, 2835, 2840, 2845, 2850, 2855, 2860, - 2865, 2870, 2875, 2880, 2885, 2890, 2895, 2900, 2905, 2910, - 2915, 2920, 2925, 2930, 2936, 2942, 2947, 2952, 2957, 2963, - 2968, 2973, 2978, 2984, 2989, 2994, 2999, 3005, 3010, 3015, - 3020, 3026, 3032, 3038, 3044, 3049, 3055, 3061, 3067, 3072, - 3077, 3082, 3087, 3092, 3098, 3103, 3108, 3113, 3119, 3124, - 3129, 3134, 3140, 3145, 3150, 3155, 3161, 3166, 3171, 3176, - 3182, 3187, 3192, 3197, 3203, 3208, 3213, 3218, 3224, 3229, - 3234, 3239, 3245, 3250, 3255, 3260, 3266, 3271, 3276, 3281, - 3287, 3292, 3297, 3302, 3308, 3313, 3318, 3323, 3329, 3334, - 3339, 3344, 3350, 3355, 3360, 3365, 3371, 3376, 3381, 3386, - 3392, 3397, 3402, 3407, 3412, 3417, 3422, 3427, 3432, 3437, - 3442, 3447, 3452, 3457, 3462, 3467, 3472, 3477, 3482, 3487, - 3492, 3497, 3502, 3507, 3512, 3518, 3524, 3530, 3536, 3542, - 3548, 3554, 3561, 3568, 3574, 3580, 3586, 3592, 3599, 3606, - 3613, 3620, 3625, 3630, 3634, 3640, 3646, 3650, 3654, 3659, - 3675, 3680, 3685, 3693, 3693, 3710, 3710, 3720, 3723, 3736, - 3758, 3785, 3789, 3795, 3800, 3811, 3814, 3820, 3826, 3835, - 3838, 3844, 3848, 3849, 3855, 3856, 3857, 3858, 3859, 3860, - 3861, 3862, 3866, 3874, 3875, 3879, 3875, 3893, 3894, 3898, - 3898, 3905, 3905, 3919, 3922, 3932, 3940, 3951, 3952, 3956, - 3959, 3966, 3973, 3977, 3985, 3989, 4002, 4005, 4012, 4012, - 4032, 4035, 4041, 4053, 4065, 4068, 4076, 4076, 4091, 4091, - 4109, 4109, 4130, 4133, 4139, 4142, 4148, 4152, 4159, 4164, - 4169, 4176, 4179, 4183, 4187, 4191, 4200, 4204, 4213, 4216, - 4219, 4227, 4227, 4269, 4274, 4277, 4282, 4285, 4290, 4293, - 4298, 4301, 4306, 4309, 4314, 4317, 4322, 4326, 4331, 4335, - 4340, 4344, 4351, 4354, 4359, 4362, 4365, 4368, 4371, 4376, - 4385, 4396, 4401, 4409, 4413, 4418, 4422, 4427, 4431, 4436, - 4440, 4447, 4450, 4455, 4458, 4461, 4464, 4469, 4472, 4477, - 4483, 4486, 4489, 4492, 4497, 4501, 4506, 4510, 4515, 4519, - 4526, 4529, 4534, 4537, 4542, 4545, 4551, 4554, 4559, 4562 + 0, 362, 362, 368, 371, 376, 379, 382, 386, 389, + 392, 396, 400, 404, 408, 412, 416, 422, 429, 432, + 435, 438, 441, 446, 454, 461, 468, 474, 478, 485, + 488, 494, 512, 537, 545, 550, 577, 585, 591, 595, + 599, 619, 620, 621, 622, 628, 629, 634, 639, 648, + 649, 654, 662, 663, 669, 678, 679, 684, 689, 694, + 702, 703, 712, 724, 725, 734, 735, 744, 745, 754, + 755, 763, 764, 772, 773, 781, 782, 782, 800, 801, + 817, 821, 825, 829, 834, 838, 842, 846, 850, 854, + 858, 865, 868, 879, 886, 891, 898, 903, 908, 915, + 918, 921, 924, 929, 937, 937, 948, 952, 959, 964, + 972, 980, 992, 995, 1002, 1015, 1035, 1042, 1065, 1080, + 1099, 1110, 1121, 1131, 1141, 1151, 1160, 1163, 1168, 1173, + 1178, 1186, 1191, 1197, 1202, 1207, 1216, 1226, 1253, 1262, + 1269, 1276, 1283, 1290, 1298, 1306, 1316, 1326, 1333, 1343, + 1349, 1352, 1359, 1363, 1367, 1375, 1384, 1387, 1398, 1401, + 1404, 1408, 1412, 1416, 1420, 1423, 1428, 1432, 1437, 1445, + 1449, 1454, 1460, 1466, 1473, 1478, 1483, 1491, 1496, 1508, + 1522, 1528, 1533, 1541, 1549, 1557, 1565, 1573, 1581, 1589, + 1597, 1605, 1613, 1620, 1627, 1631, 1636, 1641, 1646, 1651, + 1656, 1661, 1665, 1669, 1673, 1677, 1681, 1687, 1693, 1703, + 1710, 1713, 1721, 1728, 1739, 1744, 1752, 1756, 1766, 1769, + 1775, 1781, 1787, 1795, 1805, 1809, 1813, 1817, 1822, 1826, + 1831, 1836, 1841, 1846, 1851, 1856, 1861, 1866, 1871, 1877, + 1883, 1889, 1894, 1899, 1904, 1909, 1914, 1919, 1924, 1929, + 1934, 1939, 1944, 1949, 1956, 1961, 1966, 1971, 1976, 1981, + 1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021, 2026, 2034, + 2042, 2050, 2056, 2062, 2068, 2074, 2080, 2086, 2092, 2098, + 2104, 2110, 2116, 2122, 2128, 2134, 2140, 2146, 2152, 2158, + 2164, 2170, 2176, 2182, 2188, 2194, 2200, 2206, 2212, 2218, + 2224, 2230, 2236, 2242, 2248, 2254, 2260, 2266, 2272, 2278, + 2284, 2290, 2296, 2302, 2310, 2318, 2326, 2334, 2342, 2350, + 2358, 2366, 2374, 2382, 2390, 2398, 2404, 2410, 2416, 2422, + 2428, 2434, 2440, 2446, 2452, 2458, 2464, 2470, 2476, 2482, + 2488, 2494, 2500, 2506, 2512, 2518, 2524, 2530, 2536, 2542, + 2548, 2554, 2560, 2566, 2572, 2578, 2584, 2590, 2596, 2602, + 2608, 2614, 2618, 2622, 2626, 2631, 2636, 2641, 2646, 2651, + 2656, 2661, 2666, 2671, 2676, 2681, 2686, 2691, 2696, 2702, + 2708, 2714, 2720, 2726, 2732, 2738, 2744, 2750, 2756, 2762, + 2768, 2774, 2779, 2784, 2789, 2794, 2799, 2804, 2809, 2814, + 2819, 2824, 2829, 2834, 2839, 2844, 2849, 2854, 2859, 2864, + 2869, 2874, 2879, 2884, 2889, 2894, 2899, 2904, 2909, 2914, + 2919, 2924, 2929, 2934, 2939, 2945, 2951, 2956, 2961, 2966, + 2972, 2977, 2982, 2987, 2993, 2998, 3003, 3008, 3014, 3019, + 3024, 3029, 3035, 3041, 3047, 3053, 3058, 3064, 3070, 3076, + 3081, 3086, 3091, 3096, 3101, 3107, 3112, 3117, 3122, 3128, + 3133, 3138, 3143, 3149, 3154, 3159, 3164, 3170, 3175, 3180, + 3185, 3191, 3196, 3201, 3206, 3212, 3217, 3222, 3227, 3233, + 3238, 3243, 3248, 3254, 3259, 3264, 3269, 3275, 3280, 3285, + 3290, 3296, 3301, 3306, 3311, 3317, 3322, 3327, 3332, 3338, + 3343, 3348, 3353, 3359, 3364, 3369, 3374, 3380, 3385, 3390, + 3395, 3401, 3406, 3411, 3416, 3421, 3426, 3431, 3436, 3441, + 3446, 3451, 3456, 3461, 3466, 3471, 3476, 3481, 3486, 3491, + 3496, 3501, 3506, 3511, 3516, 3521, 3527, 3533, 3539, 3545, + 3551, 3557, 3563, 3570, 3577, 3583, 3589, 3595, 3601, 3608, + 3615, 3622, 3629, 3634, 3639, 3643, 3649, 3655, 3659, 3663, + 3667, 3672, 3688, 3693, 3698, 3706, 3706, 3723, 3723, 3733, + 3736, 3749, 3771, 3798, 3802, 3808, 3813, 3824, 3827, 3833, + 3839, 3848, 3851, 3857, 3861, 3862, 3868, 3869, 3870, 3871, + 3872, 3873, 3874, 3875, 3879, 3887, 3888, 3892, 3888, 3906, + 3907, 3911, 3911, 3918, 3918, 3932, 3935, 3945, 3953, 3964, + 3965, 3969, 3972, 3979, 3986, 3990, 3998, 4002, 4011, 4014, + 4021, 4021, 4041, 4044, 4050, 4062, 4074, 4077, 4085, 4085, + 4104, 4104, 4126, 4126, 4147, 4150, 4156, 4159, 4165, 4169, + 4176, 4181, 4186, 4193, 4196, 4200, 4204, 4208, 4217, 4221, + 4230, 4233, 4236, 4244, 4244, 4286, 4291, 4294, 4299, 4302, + 4307, 4310, 4315, 4318, 4323, 4326, 4331, 4334, 4339, 4343, + 4348, 4352, 4357, 4361, 4368, 4371, 4376, 4379, 4382, 4385, + 4388, 4393, 4402, 4413, 4418, 4426, 4430, 4435, 4439, 4444, + 4448, 4453, 4457, 4464, 4467, 4472, 4475, 4478, 4481, 4486, + 4489, 4494, 4500, 4503, 4506, 4509, 4514, 4518, 4523, 4527, + 4532, 4536, 4543, 4546, 4551, 4554, 4559, 4562, 4568, 4571, + 4576, 4579 }; #endif @@ -1299,17 +1302,17 @@ static const char *const yytname[] = "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT", "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", - "COOPMAT", "COOPVECNV", "HITOBJECTNV", "HITOBJECTATTRNV", - "TENSORLAYOUTNV", "TENSORVIEWNV", "TENSORARM", "SAMPLERCUBEARRAY", - "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", - "SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", - "SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", - "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", - "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", - "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", - "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY", - "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D", - "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE", + "COOPMAT", "COOPVECNV", "HITOBJECTNV", "HITOBJECTATTRNV", "HITOBJECTEXT", + "HITOBJECTATTREXT", "TENSORLAYOUTNV", "TENSORVIEWNV", "TENSORARM", + "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", + "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY", + "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT", + "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT", + "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS", + "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", + "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", + "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", + "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE", "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY", "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY", "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW", @@ -1432,12 +1435,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-893) +#define YYPACT_NINF (-894) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-714) +#define YYTABLE_NINF (-716) #define yytable_value_is_error(Yyn) \ 0 @@ -1446,103 +1449,103 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 4809, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -330, -285, -276, -250, -225, -198, - -107, -96, -893, -893, -893, -893, -893, -64, -893, -893, - -893, -893, -893, -93, -893, -893, -893, -893, -893, -329, - -893, -893, -893, -893, -893, -893, -893, -41, -31, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -327, -40, -30, -143, - 8649, -244, -893, -62, -893, -893, -893, -893, 5769, -893, - -893, -893, -893, -46, -893, -893, 969, -893, -893, 8649, - -34, -893, -893, -893, 6249, -59, -251, -153, -152, -148, - -147, -59, -146, -58, 13241, -893, -25, -370, -56, -893, - -326, -893, -23, -20, 6729, -893, -893, -893, 8649, -53, - -52, -893, -279, -893, -19, -134, -893, -893, 11870, -16, - -893, -893, -893, -14, -48, 8649, -893, -21, -18, -17, - -893, -231, -893, -230, -15, -12, -11, -10, -228, -9, - -8, -7, -5, -4, -2, -227, 6, -1, 8, -293, - -893, 1, 8649, -893, 3, -893, -218, -893, -893, -200, - 10042, -893, -322, 1449, -893, -893, -13, -893, -893, -893, - -291, -256, -893, 10499, -255, -893, -44, -893, 11870, 11870, - -893, 11870, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -294, -893, -893, -893, 12, -196, 12327, 14, -893, - 11870, -893, 15, -334, 7, -20, 16, -893, -337, -59, - -893, -6, -893, -341, 17, -142, 11870, -138, -893, -306, - -137, -174, -136, 18, -128, -59, -893, 12784, -893, -127, - 11870, 19, -58, -893, 8649, -3, 7209, -893, 8649, 11870, - -893, -370, -893, 10, -893, -893, -80, -95, -297, -315, - -55, 13, 11, 21, 32, 33, -324, 20, -893, 10956, - -893, 22, -893, -893, 24, 27, 35, -893, 28, 29, - 39, 11413, 31, 11870, 26, 40, 41, 43, 44, -257, - -893, -893, -92, -893, -40, 42, 15, -893, -893, -893, - -893, -893, 1929, -893, -893, -893, -893, -893, -893, -893, - -893, -893, 5289, 37, 10499, 7, 10499, -241, 9128, -893, - -893, 10499, 8649, -893, -893, -893, -195, -893, -893, 11870, - 34, -893, -893, 11870, 61, -893, -893, -893, 11870, -893, - -893, -893, -338, -893, -893, -192, 60, -893, -893, -893, - -893, -893, -893, -188, -893, -187, -893, -893, -184, 64, - -893, -893, -893, -893, -180, -893, -179, -893, -893, -893, - -893, -893, -177, -893, 67, -893, -176, 68, -175, 60, - -893, -259, -172, -893, 76, 77, -893, -893, -3, -16, - -84, -893, -893, -893, 7689, -893, -893, -893, 11870, 11870, - 11870, 11870, 11870, 11870, 11870, 11870, 11870, 11870, 11870, 11870, - 11870, 11870, 11870, 11870, 11870, 11870, 11870, -893, -893, -893, - 78, -893, 2409, -893, -893, -893, 2409, -893, 11870, -893, - -893, -83, 11870, -264, -893, -893, -893, -893, -893, -893, - -893, -893, -893, -893, -893, -893, -893, -893, -893, -893, - 11870, 11870, -893, -893, -893, -893, -893, -893, -893, -893, - -893, 10499, -893, -893, -130, -893, 8169, -893, 82, 72, - -893, -893, -893, -893, -893, -150, -140, -893, -328, -893, - -341, -893, -341, -893, 11870, 11870, -893, -306, -893, -306, - -893, -174, -174, -893, 81, 18, -893, 12784, -893, 11870, - -893, -893, -82, 7, -3, -893, -893, -893, -893, -893, - -80, -80, -95, -95, -297, -297, -297, -297, -315, -315, - -55, 13, 11, 21, 32, 33, 11870, -893, 2409, 4329, - -24, 3849, -168, -893, -167, -893, -893, -893, -893, -893, - 9585, -893, -893, -893, 87, -893, 55, -893, -163, -893, - -160, -893, -159, -893, -158, -893, -156, -155, -893, -893, - -893, -45, 84, 72, 54, 90, 93, -893, -893, 4329, - 91, -893, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, 11870, -893, 85, 2889, 11870, -893, 88, 99, - 53, 98, 3369, -893, 101, -893, 10499, -893, -893, -893, - -151, 11870, 2889, 91, -893, -893, 2409, -893, 96, 72, - -893, -893, 2409, 102, -893, -893 + 4827, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -305, -284, -273, -250, + -220, -203, -187, -131, -894, -894, -894, -894, -894, -227, + -894, -894, -894, -894, -894, -59, -894, -894, -894, -894, + -894, -328, -894, -894, -894, -894, -894, -894, -894, -102, + -100, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -342, -217, + -319, -177, 8683, -225, -894, -153, -894, -894, -894, -894, + 5791, -894, -894, -894, -894, -106, -894, -894, 971, -894, + -894, 8683, -92, -894, -894, -894, 6273, -128, -219, -156, + -155, -127, -123, -128, -119, -75, 13295, -894, -68, -369, + -64, -894, -330, -894, -41, -22, 6755, -894, -894, -894, + 8683, -55, -54, -894, -285, -894, -21, -140, -894, -894, + 11918, -18, -894, -894, -894, -16, -50, 8683, -894, -23, + -20, -19, -894, -318, -894, -259, -17, -14, -13, -12, + -231, -11, -10, -9, -8, -7, -5, -230, 6, -4, + 8, -322, -894, -1, 8683, -894, -3, -894, -228, -894, + -894, -212, 10082, -894, -323, 1453, -894, -894, -15, -894, + -894, -894, -281, -256, -894, 10541, -255, -894, -46, -894, + 11918, 11918, -894, 11918, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -316, -894, -894, -894, 10, -209, 12377, + 12, -894, 11918, -894, 13, -294, 3, -22, 14, -894, + -341, -128, -894, -6, -894, -329, 15, -117, 11918, -110, + -894, -139, -109, -148, -108, 16, -104, -128, -894, 12836, + -894, -103, 11918, 17, -75, -894, 8683, -2, 7237, -894, + 8683, 11918, -894, -369, -894, 1, -894, -894, -126, -251, + -234, -320, -130, 7, 11, 21, 30, 31, -321, 18, + -894, 11000, -894, 19, -894, -894, 22, 23, 25, -894, + 27, 28, 32, 11459, 43, 11918, 37, 36, 39, 40, + 41, -257, -894, -894, -136, -894, -217, 53, 13, -894, + -894, -894, -894, -894, 1935, -894, -894, -894, -894, -894, + -894, -894, -894, -894, 5309, 48, 10541, 3, 10541, -243, + 9164, -894, -894, 10541, 8683, -894, -894, -894, -207, -894, + -894, 11918, 26, -894, -894, 11918, 68, -894, -894, -894, + 11918, -894, -894, -894, -326, -894, -894, -200, 61, -894, + -894, -894, -894, -894, -894, -199, -894, -196, -894, -894, + -195, 24, -894, -894, -894, -894, -192, -894, -175, -894, + -894, -894, -894, -894, -174, -894, 64, -894, -173, 67, + -170, 61, -894, -289, -166, -894, 74, 76, -894, -894, + -2, -18, -73, -894, -894, -894, 7719, -894, -894, -894, + 11918, 11918, 11918, 11918, 11918, 11918, 11918, 11918, 11918, 11918, + 11918, 11918, 11918, 11918, 11918, 11918, 11918, 11918, 11918, -894, + -894, -894, 20, -894, 2417, -894, -894, -894, 2417, -894, + 11918, -894, -894, -72, 11918, -38, -894, -894, -894, -894, + -894, -894, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, 11918, 11918, -894, -894, -894, -894, -894, -894, + -894, -894, -894, 10541, -894, -894, -132, -894, 8201, -894, + 77, 72, -894, -894, -894, -894, -894, -277, -235, -894, + -324, -894, -329, -894, -329, -894, 11918, 11918, -894, -139, + -894, -139, -894, -148, -148, -894, 82, 16, -894, 12836, + -894, 11918, -894, -894, -45, 3, -2, -894, -894, -894, + -894, -894, -126, -126, -251, -251, -234, -234, -234, -234, + -320, -320, -130, 7, 11, 21, 30, 31, 11918, -894, + 2417, 4345, -26, 3863, -163, -894, -162, -894, -894, -894, + -894, -894, 9623, -894, -894, -894, 83, -894, 52, -894, + -161, -894, -159, -894, -158, -894, -154, -894, -151, -150, + -894, -894, -894, -33, 81, 72, 54, 87, 89, -894, + -894, 4345, 90, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -894, -894, 11918, -894, 84, 2899, 11918, -894, + 85, 97, 55, 96, 3381, -894, 98, -894, 10541, -894, + -894, -894, -149, 11918, 2899, 90, -894, -894, 2417, -894, + 91, 72, -894, -894, 2417, 86, -894, -894 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1550,141 +1553,141 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 0, 169, 227, 225, 226, 224, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 228, 229, 230, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 365, 366, 367, 368, 369, 370, 371, 391, 392, 393, - 394, 395, 396, 397, 406, 419, 420, 407, 408, 410, - 409, 411, 412, 413, 414, 415, 416, 417, 418, 178, - 179, 254, 255, 253, 256, 257, 252, 258, 265, 266, - 263, 264, 261, 262, 259, 260, 297, 298, 299, 309, - 310, 311, 294, 295, 296, 306, 307, 308, 291, 292, - 293, 303, 304, 305, 288, 289, 290, 300, 301, 302, - 267, 268, 269, 312, 313, 314, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 324, 325, - 326, 282, 283, 284, 336, 337, 338, 285, 286, 287, - 348, 349, 350, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 363, - 360, 361, 362, 547, 548, 549, 550, 554, 557, 183, - 551, 552, 555, 375, 376, 399, 402, 364, 373, 374, - 390, 372, 421, 422, 425, 426, 427, 429, 430, 431, - 433, 434, 435, 437, 438, 534, 535, 398, 400, 401, - 377, 378, 379, 423, 380, 384, 385, 388, 428, 432, - 436, 381, 382, 386, 387, 424, 383, 389, 468, 470, - 471, 472, 474, 475, 476, 478, 479, 480, 482, 483, - 484, 486, 487, 488, 490, 491, 492, 494, 495, 496, - 498, 499, 500, 502, 503, 504, 506, 507, 508, 510, - 511, 469, 473, 477, 481, 485, 493, 497, 501, 489, - 505, 509, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 403, 404, 405, 439, 448, 450, - 444, 449, 451, 452, 454, 455, 456, 458, 459, 460, - 462, 463, 464, 466, 467, 440, 441, 442, 453, 443, - 445, 446, 447, 457, 461, 465, 539, 540, 543, 544, - 545, 546, 541, 542, 0, 0, 0, 0, 0, 0, - 0, 0, 167, 168, 536, 537, 538, 0, 650, 138, - 560, 561, 562, 0, 559, 173, 171, 172, 170, 0, - 223, 174, 176, 177, 175, 140, 139, 0, 205, 553, - 185, 187, 182, 189, 191, 186, 188, 184, 190, 192, - 180, 181, 208, 193, 200, 201, 202, 203, 204, 194, - 195, 196, 197, 198, 199, 141, 142, 144, 143, 145, - 147, 148, 146, 207, 155, 649, 0, 651, 0, 113, - 112, 0, 126, 131, 162, 161, 159, 163, 0, 156, - 158, 164, 136, 218, 160, 558, 0, 646, 648, 0, - 0, 165, 166, 556, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 565, 0, 0, 0, 99, - 0, 94, 0, 108, 0, 122, 114, 124, 0, 125, - 0, 97, 132, 102, 106, 0, 157, 137, 0, 211, - 217, 1, 647, 0, 0, 0, 96, 0, 0, 0, - 658, 0, 716, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 656, 0, - 654, 0, 0, 563, 152, 154, 0, 150, 209, 0, - 0, 100, 0, 0, 652, 109, 0, 115, 121, 123, - 118, 127, 117, 0, 133, 104, 0, 103, 0, 0, - 9, 0, 43, 42, 44, 41, 5, 6, 7, 8, - 2, 16, 14, 15, 17, 10, 11, 12, 13, 3, - 18, 37, 20, 25, 26, 0, 0, 30, 0, 221, - 0, 36, 220, 0, 212, 110, 0, 95, 0, 0, - 714, 0, 666, 0, 0, 0, 0, 0, 683, 0, - 0, 0, 0, 0, 0, 0, 708, 0, 681, 0, - 0, 0, 0, 98, 0, 0, 0, 567, 0, 0, - 149, 0, 206, 0, 213, 45, 49, 52, 55, 60, - 63, 65, 67, 69, 71, 73, 75, 0, 34, 0, - 101, 594, 603, 607, 0, 0, 0, 628, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 78, 91, 0, 581, 0, 164, 136, 584, 605, 583, - 591, 582, 0, 585, 586, 609, 587, 616, 588, 589, - 624, 590, 0, 0, 0, 119, 0, 128, 0, 575, - 135, 0, 0, 107, 38, 39, 0, 22, 23, 0, - 0, 28, 27, 0, 223, 31, 33, 40, 0, 219, - 111, 718, 0, 719, 659, 0, 0, 717, 678, 674, - 675, 676, 677, 0, 672, 0, 93, 679, 0, 0, - 693, 694, 695, 696, 0, 691, 0, 700, 701, 702, - 703, 699, 0, 697, 0, 704, 0, 0, 0, 2, - 712, 218, 0, 710, 0, 0, 653, 655, 0, 573, - 0, 571, 566, 568, 0, 153, 151, 210, 0, 0, + 0, 169, 228, 226, 227, 225, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 229, 230, 231, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 366, 367, 368, 369, 370, 371, 372, 392, 393, 394, + 395, 396, 397, 398, 407, 420, 421, 408, 409, 411, + 410, 412, 413, 414, 415, 416, 417, 418, 419, 178, + 179, 255, 256, 254, 257, 258, 253, 259, 266, 267, + 264, 265, 262, 263, 260, 261, 298, 299, 300, 310, + 311, 312, 295, 296, 297, 307, 308, 309, 292, 293, + 294, 304, 305, 306, 289, 290, 291, 301, 302, 303, + 268, 269, 270, 313, 314, 315, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 325, 326, + 327, 283, 284, 285, 337, 338, 339, 286, 287, 288, + 349, 350, 351, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 364, + 361, 362, 363, 548, 549, 550, 551, 555, 558, 183, + 559, 184, 552, 553, 556, 376, 377, 400, 403, 365, + 374, 375, 391, 373, 422, 423, 426, 427, 428, 430, + 431, 432, 434, 435, 436, 438, 439, 535, 536, 399, + 401, 402, 378, 379, 380, 424, 381, 385, 386, 389, + 429, 433, 437, 382, 383, 387, 388, 425, 384, 390, + 469, 471, 472, 473, 475, 476, 477, 479, 480, 481, + 483, 484, 485, 487, 488, 489, 491, 492, 493, 495, + 496, 497, 499, 500, 501, 503, 504, 505, 507, 508, + 509, 511, 512, 470, 474, 478, 482, 486, 494, 498, + 502, 490, 506, 510, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 404, 405, 406, 440, + 449, 451, 445, 450, 452, 453, 455, 456, 457, 459, + 460, 461, 463, 464, 465, 467, 468, 441, 442, 443, + 454, 444, 446, 447, 448, 458, 462, 466, 540, 541, + 544, 545, 546, 547, 542, 543, 0, 0, 0, 0, + 0, 0, 0, 0, 167, 168, 537, 538, 539, 0, + 652, 138, 562, 563, 564, 0, 561, 173, 171, 172, + 170, 0, 224, 174, 176, 177, 175, 140, 139, 0, + 206, 554, 186, 188, 182, 190, 192, 187, 189, 185, + 191, 193, 180, 181, 209, 194, 201, 202, 203, 204, + 205, 195, 196, 197, 198, 199, 200, 141, 142, 144, + 143, 145, 147, 148, 146, 208, 155, 651, 0, 653, + 0, 113, 112, 0, 126, 131, 162, 161, 159, 163, + 0, 156, 158, 164, 136, 219, 160, 560, 0, 648, + 650, 0, 0, 165, 166, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, + 0, 99, 0, 94, 0, 108, 0, 122, 114, 124, + 0, 125, 0, 97, 132, 102, 106, 0, 157, 137, + 0, 212, 218, 1, 649, 0, 0, 0, 96, 0, + 0, 0, 660, 0, 718, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 658, 0, 656, 0, 0, 565, 152, 154, 0, 150, + 210, 0, 0, 100, 0, 0, 654, 109, 0, 115, + 121, 123, 118, 127, 117, 0, 133, 104, 0, 103, + 0, 0, 9, 0, 43, 42, 44, 41, 5, 6, + 7, 8, 2, 16, 14, 15, 17, 10, 11, 12, + 13, 3, 18, 37, 20, 25, 26, 0, 0, 30, + 0, 222, 0, 36, 221, 0, 213, 110, 0, 95, + 0, 0, 716, 0, 668, 0, 0, 0, 0, 0, + 685, 0, 0, 0, 0, 0, 0, 0, 710, 0, + 683, 0, 0, 0, 0, 98, 0, 0, 0, 569, + 0, 0, 149, 0, 207, 0, 214, 45, 49, 52, + 55, 60, 63, 65, 67, 69, 71, 73, 75, 0, + 34, 0, 101, 596, 605, 609, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 45, 78, 91, 0, 583, 0, 164, 136, 586, + 607, 585, 593, 584, 0, 587, 588, 611, 589, 618, + 590, 591, 626, 592, 0, 0, 0, 119, 0, 128, + 0, 577, 135, 0, 0, 107, 38, 39, 0, 22, + 23, 0, 0, 28, 27, 0, 224, 31, 33, 40, + 0, 220, 111, 720, 0, 721, 661, 0, 0, 719, + 680, 676, 677, 678, 679, 0, 674, 0, 93, 681, + 0, 0, 695, 696, 697, 698, 0, 693, 0, 702, + 703, 704, 705, 701, 0, 699, 0, 706, 0, 0, + 0, 2, 714, 219, 0, 712, 0, 0, 655, 657, + 0, 575, 0, 573, 568, 570, 0, 153, 151, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 214, 215, - 0, 593, 0, 626, 639, 638, 0, 630, 0, 642, - 640, 0, 0, 0, 623, 643, 644, 645, 592, 81, - 82, 84, 83, 86, 87, 88, 89, 90, 85, 80, - 0, 0, 608, 604, 606, 610, 617, 625, 116, 120, - 130, 0, 578, 579, 0, 134, 0, 4, 0, 24, - 21, 32, 222, 662, 664, 0, 0, 715, 0, 668, - 0, 667, 0, 670, 0, 0, 685, 0, 684, 0, - 687, 0, 0, 689, 0, 0, 709, 0, 706, 0, - 682, 657, 0, 574, 0, 569, 564, 46, 47, 48, - 51, 50, 53, 54, 58, 59, 56, 57, 61, 62, - 64, 66, 68, 70, 72, 74, 0, 216, 595, 0, - 0, 0, 0, 641, 0, 622, 79, 92, 129, 576, - 0, 105, 19, 660, 0, 661, 0, 673, 0, 680, - 0, 692, 0, 698, 0, 705, 0, 0, 711, 570, - 572, 0, 0, 614, 0, 0, 0, 633, 632, 635, - 601, 618, 577, 580, 663, 665, 669, 671, 686, 688, - 690, 707, 0, 596, 0, 0, 0, 634, 0, 0, - 613, 0, 0, 611, 0, 77, 0, 598, 627, 597, - 0, 636, 0, 601, 600, 602, 620, 615, 0, 637, - 631, 612, 621, 0, 629, 619 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 215, 216, 0, 595, 0, 628, 641, 640, 0, 632, + 0, 644, 642, 0, 0, 0, 625, 645, 646, 647, + 594, 81, 82, 84, 83, 86, 87, 88, 89, 90, + 85, 80, 0, 0, 610, 606, 608, 612, 619, 627, + 116, 120, 130, 0, 580, 581, 0, 134, 0, 4, + 0, 24, 21, 32, 223, 664, 666, 0, 0, 717, + 0, 670, 0, 669, 0, 672, 0, 0, 687, 0, + 686, 0, 689, 0, 0, 691, 0, 0, 711, 0, + 708, 0, 684, 659, 0, 576, 0, 571, 566, 46, + 47, 48, 51, 50, 53, 54, 58, 59, 56, 57, + 61, 62, 64, 66, 68, 70, 72, 74, 0, 217, + 597, 0, 0, 0, 0, 643, 0, 624, 79, 92, + 129, 578, 0, 105, 19, 662, 0, 663, 0, 675, + 0, 682, 0, 694, 0, 700, 0, 707, 0, 0, + 713, 572, 574, 0, 0, 616, 0, 0, 0, 635, + 634, 637, 603, 620, 579, 582, 665, 667, 671, 673, + 688, 690, 692, 709, 0, 598, 0, 0, 0, 636, + 0, 0, 615, 0, 0, 613, 0, 77, 0, 600, + 629, 599, 0, 638, 0, 603, 602, 604, 622, 617, + 0, 639, 633, 614, 623, 0, 631, 621 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -893, -569, -893, -893, -893, -893, -893, -893, -893, -893, - -893, -893, -438, -893, -526, -417, -516, -421, -287, -283, - -282, -284, -280, -278, -893, -503, -893, -509, -893, -504, - -550, 4, -893, -893, -893, 5, -413, -893, -893, 25, - 36, 38, -893, -893, -426, -893, -893, -893, -893, -119, - -893, -409, -387, -893, 9, -893, 0, -452, -893, -893, - -893, -566, 133, -893, -893, -893, -570, -573, -249, -367, - -653, -893, -390, -633, -892, -893, -447, -893, -893, -460, - -458, -893, -893, 45, -748, -383, -893, -162, -893, -420, - -893, -161, -893, -893, -893, -893, -157, -893, -893, -893, - -893, -893, -893, -893, -893, 80, -893, -893, 2, -893, - -89, -272, -449, -893, -893, -893, -325, -321, -331, -893, - -893, -323, -320, -319, -333, -318, -893, -335, -317, -893, - -406, -565 + -894, -569, -894, -894, -894, -894, -894, -894, -894, -894, + -894, -894, -438, -894, -521, -406, -522, -410, -283, -286, + -282, -287, -280, -279, -894, -505, -894, -509, -894, -504, + -559, 4, -894, -894, -894, 5, -419, -894, -894, 33, + 29, 34, -894, -894, -430, -894, -894, -894, -894, -122, + -894, -409, -394, -894, 9, -894, 0, -453, -894, -894, + -894, -579, 127, -894, -894, -894, -570, -577, -252, -372, + -653, -894, -393, -631, -893, -894, -451, -894, -894, -459, + -458, -894, -894, 42, -749, -385, -894, -165, -894, -421, + -894, -157, -894, -894, -894, -894, -147, -894, -894, -894, + -894, -894, -894, -894, -894, 73, -894, -894, 2, -894, + -91, -246, -449, -894, -894, -894, -332, -327, -331, -894, + -894, -333, -325, -335, -317, -337, -894, -338, -315, -894, + -415, -565 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 549, 550, 551, 818, 552, 553, 554, 555, 556, - 557, 558, 639, 560, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 640, 876, 641, 800, 642, - 730, 643, 406, 672, 465, 644, 408, 409, 410, 455, - 456, 457, 411, 412, 413, 414, 415, 416, 506, 507, - 417, 418, 419, 420, 561, 509, 618, 512, 469, 470, - 563, 423, 424, 425, 598, 502, 596, 597, 740, 741, - 670, 814, 647, 648, 649, 650, 651, 772, 912, 948, - 940, 941, 942, 949, 652, 653, 654, 655, 943, 915, - 656, 657, 944, 963, 658, 659, 660, 879, 776, 881, - 919, 938, 939, 661, 426, 427, 428, 452, 662, 499, - 500, 479, 480, 825, 826, 430, 703, 704, 708, 431, - 432, 714, 715, 722, 723, 726, 433, 732, 733, 434, - 481, 482 + 0, 551, 552, 553, 820, 554, 555, 556, 557, 558, + 559, 560, 641, 562, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 642, 878, 643, 802, 644, + 732, 645, 408, 674, 467, 646, 410, 411, 412, 457, + 458, 459, 413, 414, 415, 416, 417, 418, 508, 509, + 419, 420, 421, 422, 563, 511, 620, 514, 471, 472, + 565, 425, 426, 427, 600, 504, 598, 599, 742, 743, + 672, 816, 649, 650, 651, 652, 653, 774, 914, 950, + 942, 943, 944, 951, 654, 655, 656, 657, 945, 917, + 658, 659, 946, 965, 660, 661, 662, 881, 778, 883, + 921, 940, 941, 663, 428, 429, 430, 454, 664, 501, + 502, 481, 482, 827, 828, 432, 705, 706, 710, 433, + 434, 716, 717, 724, 725, 728, 435, 734, 735, 436, + 483, 484 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1692,248 +1695,297 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 422, 458, 429, 474, 405, 407, 697, 617, 474, 421, - 524, 809, 721, 810, 669, 813, 473, 564, 815, 804, - 475, 731, 697, 743, 878, 475, 707, 676, 744, 698, - 559, 466, 823, 691, 766, 495, 692, 504, 755, 756, - 735, 435, 691, 947, 688, 458, 445, 510, 685, 745, - 955, 619, 753, 754, 449, 511, 689, 677, 678, 620, - 947, 505, 699, 700, 701, 702, 824, 693, 665, 667, - 767, 466, 605, 706, 757, 758, 693, -35, 446, 679, - 450, 591, 510, 680, 706, 592, 436, 706, 466, 664, - 674, 675, 522, 594, 510, 437, 706, 710, 711, 712, - 713, 523, 816, 789, 790, 791, 792, 793, 794, 795, - 796, 797, 798, -713, 801, 885, 770, 510, 619, -713, - 694, 438, 687, 799, 666, 671, 694, 781, 694, 783, - 468, 694, 619, 694, 460, 694, 694, 461, 605, 811, - 694, 570, 572, 880, 578, 586, 439, 571, 573, 605, - 579, 587, 605, 483, 600, 669, 484, 669, 888, 669, - 601, 605, 669, 695, 485, 487, 489, 491, 493, 494, - 497, 743, 602, 440, 821, 819, 682, 817, 603, 728, - 827, 605, 683, 801, 829, 831, 571, 594, 833, 594, - 830, 832, 836, 838, 834, 840, 843, 846, 837, 839, - 848, 841, 844, 847, 920, 921, 849, 466, 962, 926, - 801, 801, 927, 928, 929, 830, 930, 931, 834, 837, - 841, 958, 844, 849, 893, 860, 861, 801, 894, 717, - 718, 719, 720, 540, 895, 454, 474, 923, 896, 864, - 865, 866, 867, 743, 526, 804, 889, 527, 890, 473, - 822, 486, 488, 475, 484, 484, 490, 492, 496, 484, - 484, 484, 705, 594, 441, 484, 709, 716, 724, 484, - 484, 484, 721, 721, 882, 442, 727, 734, 884, 484, - 484, 731, 697, 731, 899, 707, 801, 853, 751, 802, - 752, 886, 887, 957, 854, 801, 854, 855, 883, 909, - 759, 760, 669, 350, 351, 352, 748, 749, 750, 443, - 857, 858, 859, 605, 605, 605, 605, 605, 605, 605, - 605, 605, 605, 605, 605, 605, 605, 605, 605, 804, - 447, 706, 706, 801, 932, 594, 862, 863, 868, 869, - 448, 451, 453, 468, 706, 462, 706, 476, 478, 498, - 503, 508, 513, 347, 520, 521, 525, 510, 565, 566, - 567, 569, 568, 673, 663, 574, 575, 576, 577, 580, - 581, 582, 911, 583, 584, 913, 585, 589, 588, 590, - 619, 669, 593, 599, 681, 686, -34, 522, 725, 764, - 692, 916, 765, 736, 768, 773, 605, 605, 771, 777, - 778, 696, 782, 762, 739, 784, 761, 594, 774, 605, - 459, 605, 763, -36, 808, 913, 775, 747, 467, 421, - 779, 785, 786, 945, 787, 788, 422, 421, 429, 422, - 405, 407, 950, -29, 422, 421, 429, 669, 421, 477, - 828, 820, 835, 421, 501, 842, 845, 959, 850, 851, - 801, 905, 877, 914, 459, 515, 892, 924, 459, 925, - 933, 934, 935, 421, 936, 946, -599, 421, 562, 951, - 475, 952, 953, 621, 870, 467, 956, 964, 965, 871, - 873, 872, 746, 518, 421, 874, 444, 910, 875, 852, - 517, 917, 960, 914, 954, 961, 519, 514, 918, 937, - 805, 806, 595, 737, 900, 807, 472, 898, 903, 897, - 475, 421, 907, 646, 0, 0, 902, 901, 0, 0, - 0, 0, 645, 904, 0, 0, 0, 906, 0, 0, - 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, + 424, 476, 431, 460, 407, 409, 476, 619, 699, 423, + 733, 526, 475, 811, 723, 812, 671, 815, 566, 709, + 817, 745, 477, 806, 699, 880, 468, 477, 497, 678, + 746, 693, 561, 737, 694, 757, 758, 679, 680, 768, + 506, 451, 747, 700, 949, 512, 825, 460, 693, 447, + 687, 957, 621, 513, 593, 455, 572, -35, 594, 681, + 622, 949, 573, 682, 507, 695, 468, 452, 437, 667, + 669, 759, 760, 708, 607, 769, 701, 702, 703, 704, + 826, 448, 695, 468, 708, -715, 690, 708, 524, 438, + 512, -715, 676, 677, 512, 596, 708, 525, 691, 895, + 439, 666, 470, 896, 818, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 574, 772, 755, 756, 512, + 621, 575, 696, 440, 689, 801, 668, 673, 696, 783, + 696, 785, 621, 696, 753, 696, 754, 696, 696, 813, + 607, 897, 696, 580, 588, 898, 602, 882, 445, 581, + 589, 607, 603, 441, 607, 462, 697, 671, 463, 671, + 890, 671, 604, 607, 671, 684, 453, 819, 605, 745, + 442, 685, 730, 803, 829, 831, 823, 821, 833, 835, + 573, 832, 838, 607, 834, 836, 443, 485, 839, 596, + 486, 596, 487, 489, 491, 493, 495, 496, 499, 840, + 842, 845, 468, 456, 848, 841, 843, 846, 850, 964, + 849, 922, 923, 928, 851, 929, 930, 803, 803, 832, + 931, 836, 839, 932, 933, 960, 843, 761, 762, 846, + 851, 803, 862, 863, 476, 866, 867, 868, 869, 925, + 528, 745, 444, 529, 803, 475, 891, 804, 892, 806, + 488, 490, 824, 486, 486, 477, 464, 719, 720, 721, + 722, 542, 750, 751, 752, 596, 712, 713, 714, 715, + 733, 449, 733, 450, 723, 723, 884, 901, 709, 492, + 886, 480, 486, 494, 699, 470, 486, 498, 855, 707, + 486, 478, 486, 888, 889, 959, 711, 718, 726, 486, + 486, 486, 729, 736, 671, 486, 486, 856, 803, 505, + 857, 885, 859, 860, 861, 607, 607, 607, 607, 607, + 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, + 607, 708, 708, 806, 500, 856, 515, 596, 911, 352, + 353, 354, 803, 887, 708, 510, 708, 803, 934, 864, + 865, 870, 871, 349, 522, 523, 527, 512, 567, 568, + 569, 571, 570, 675, 665, 576, 577, 578, 579, 582, + 583, 584, 585, 586, 913, 587, 591, 915, 621, 601, + 590, 592, 595, 671, 683, 688, -34, 524, 727, 766, + 694, 918, 767, 738, 770, 775, 879, 773, 607, 607, + 779, 780, 763, 698, 837, 764, 776, 741, 777, 596, + 749, 607, 461, 607, 765, 781, 784, 915, 786, 787, + 469, 423, 788, 789, 790, 947, -36, 810, 424, 423, + 431, 424, 407, 409, 952, 822, 424, 423, 431, 671, + 423, 479, -29, 830, 844, 423, 503, 847, 852, 961, + 853, 916, 803, 894, 907, 926, 461, 517, 927, 935, + 461, 937, 938, 936, 967, 423, 948, -601, 953, 423, + 564, 954, 477, 623, 966, 958, 955, 469, 873, 875, + 872, 748, 446, 874, 912, 519, 423, 876, 854, 877, + 919, 916, 956, 520, 521, 962, 516, 963, 920, 807, + 939, 474, 900, 739, 597, 899, 902, 808, 904, 906, + 908, 909, 477, 423, 903, 648, 0, 809, 0, 0, + 0, 0, 0, 0, 647, 0, 905, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 690, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 738, 0, 595, 0, 595, 0, - 0, 0, 0, 421, 0, 421, 0, 421, 0, 0, + 0, 0, 0, 0, 0, 0, 740, 0, 597, 0, + 597, 0, 0, 0, 0, 423, 0, 423, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 645, 422, 0, 0, 0, 0, 0, 0, 0, - 0, 421, 595, 0, 0, 0, 0, 0, 0, 0, - 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, + 0, 0, 0, 647, 424, 0, 0, 0, 0, 0, + 0, 0, 0, 423, 597, 0, 0, 0, 0, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 595, 0, 0, 0, 0, 0, - 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, + 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 646, 0, 0, 0, 646, 0, 0, 0, - 0, 645, 0, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 0, 0, 648, 0, + 0, 0, 0, 647, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 595, 0, 0, 0, - 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 646, 646, - 0, 646, 0, 429, 0, 0, 0, 645, 645, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, - 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 646, 0, 645, 0, 0, 0, 0, 0, - 0, 645, 646, 0, 0, 0, 646, 0, 0, 0, - 0, 645, 646, 0, 0, 645, 0, 0, 0, 471, - 0, 645, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 648, 648, 0, 648, 0, 431, 0, 0, 0, 647, + 647, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, - 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 347, 0, 621, 622, 0, 0, 0, 0, - 623, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 624, 625, 626, 627, 0, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 638, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 347, 0, 621, 803, 0, 0, 0, 0, - 623, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 624, 625, 626, 627, 0, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 638, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 648, 0, 0, 0, 0, 0, 0, 0, 0, + 647, 0, 0, 0, 0, 0, 0, 648, 0, 0, + 0, 0, 0, 0, 648, 0, 647, 0, 0, 0, + 0, 0, 0, 647, 648, 0, 0, 0, 648, 0, + 0, 0, 0, 647, 648, 0, 0, 647, 0, 0, + 0, 473, 0, 647, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, + 353, 354, 355, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 357, 358, 359, 360, 361, 362, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 363, 364, 365, 366, 367, 368, 369, + 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 0, 530, 531, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 532, 533, 0, 349, 0, + 623, 624, 0, 0, 0, 0, 625, 534, 535, 536, + 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 351, 352, 353, 354, 355, 0, 0, 0, 538, 539, + 540, 541, 542, 356, 357, 358, 359, 360, 361, 362, + 626, 627, 628, 629, 0, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 363, 364, 365, 366, 367, + 368, 369, 543, 544, 545, 546, 547, 548, 549, 550, + 370, 640, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 530, 531, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, + 349, 0, 623, 805, 0, 0, 0, 0, 625, 534, + 535, 536, 537, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 351, 352, 353, 354, 355, 0, 0, 0, + 538, 539, 540, 541, 542, 356, 357, 358, 359, 360, + 361, 362, 626, 627, 628, 629, 0, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 363, 364, 365, + 366, 367, 368, 369, 543, 544, 545, 546, 547, 548, + 549, 550, 370, 640, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, + 533, 0, 349, 0, 623, 0, 0, 0, 0, 0, + 625, 534, 535, 536, 537, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 351, 352, 353, 354, 355, 0, + 0, 0, 538, 539, 540, 541, 542, 356, 357, 358, + 359, 360, 361, 362, 626, 627, 628, 629, 0, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 363, + 364, 365, 366, 367, 368, 369, 543, 544, 545, 546, + 547, 548, 549, 550, 370, 640, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -1967,165 +2019,214 @@ static const yytype_int16 yytable[] = 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 347, 0, 621, 0, 0, 0, 0, 0, - 623, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 624, 625, 626, 627, 0, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 638, 369, 370, 371, 372, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 530, 531, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 532, 533, 0, 349, 0, 515, 0, 0, 0, + 0, 0, 625, 534, 535, 536, 537, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, + 355, 0, 0, 0, 538, 539, 540, 541, 542, 356, + 357, 358, 359, 360, 361, 362, 626, 627, 628, 629, + 0, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 363, 364, 365, 366, 367, 368, 369, 543, 544, + 545, 546, 547, 548, 549, 550, 370, 640, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 347, 0, 513, 0, 0, 0, 0, 0, - 623, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 624, 625, 626, 627, 0, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 638, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 347, 0, 0, 0, 0, 0, 0, 0, - 623, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 624, 625, 626, 627, 0, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 638, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 347, 0, 0, 0, 0, 0, 0, 0, - 623, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, + 403, 404, 405, 406, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 0, 0, 530, 531, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 532, 533, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 625, 534, 535, 536, 537, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, + 353, 354, 355, 0, 0, 0, 538, 539, 540, 541, + 542, 356, 357, 358, 359, 360, 361, 362, 626, 627, + 628, 629, 0, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 363, 364, 365, 366, 367, 368, 369, + 543, 544, 545, 546, 547, 548, 549, 550, 370, 640, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 0, 530, 531, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 532, 533, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 625, 534, 535, 536, + 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 351, 352, 353, 354, 355, 0, 0, 0, 538, 539, + 540, 541, 542, 356, 357, 358, 359, 360, 361, 362, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 364, 365, 366, 367, + 368, 369, 543, 544, 545, 546, 547, 548, 549, 550, + 370, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 0, 0, 0, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 530, 531, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, + 535, 536, 537, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 351, 352, 353, 354, 0, 0, 0, 0, + 538, 539, 540, 541, 542, 356, 357, 358, 359, 360, + 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 363, 364, 365, + 366, 367, 368, 369, 543, 544, 545, 546, 547, 548, + 549, 550, 370, 0, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, + 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 351, 352, 353, 354, 355, 0, + 0, 0, 0, 0, 0, 0, 0, 356, 357, 358, + 359, 360, 361, 362, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, + 364, 365, 366, 367, 368, 369, 0, 0, 0, 0, + 0, 0, 0, 0, 370, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -2158,166 +2259,215 @@ static const yytype_int16 yytable[] = 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 541, 542, 543, 544, - 545, 546, 547, 548, 368, 0, 369, 370, 371, 372, + 329, 330, 331, 332, 333, 334, 335, 0, 0, 0, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 357, 358, 359, 360, 361, 362, 626, 0, 0, 629, + 0, 630, 631, 0, 0, 634, 0, 0, 0, 0, + 0, 363, 364, 365, 366, 367, 368, 369, 0, 0, + 0, 0, 0, 0, 0, 0, 370, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 403, 404, 405, 406, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 0, + 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, - 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 353, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 0, 0, 0, 0, 465, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, + 353, 354, 0, 0, 0, 0, 0, 0, 0, 0, + 466, 356, 357, 358, 359, 360, 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 363, 364, 365, 366, 367, 368, 369, + 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 0, 0, 0, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 624, 0, 0, 627, 0, 628, - 629, 0, 0, 632, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 351, 352, 353, 354, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 356, 357, 358, 359, 360, 361, 362, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 364, 365, 366, 367, + 368, 369, 0, 0, 0, 0, 0, 0, 0, 0, + 370, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 0, 0, 0, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 464, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 0, 351, 352, 353, 354, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 356, 357, 358, 359, 360, + 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 363, 364, 365, + 366, 367, 368, 369, 0, 0, 0, 0, 0, 0, + 0, 0, 370, 0, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 0, 0, 0, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 351, 352, 353, 354, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 356, 357, 358, + 359, 360, 361, 362, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, + 364, 365, 366, 367, 368, 369, 0, 0, 0, 0, + 0, 0, 0, 0, 370, 0, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -2350,76 +2500,354 @@ static const yytype_int16 yytable[] = 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 329, 330, 331, 332, 333, 334, 335, 0, 0, 0, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 357, 358, 359, 360, 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, + 0, 363, 364, 365, 366, 367, 368, 369, 0, 0, + 0, 0, 0, 0, 0, 0, 370, 0, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 403, 404, 405, 406, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 0, + 0, 0, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, + 353, 354, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 356, 357, 358, 359, 360, 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, + 0, 0, 0, 363, 364, 365, 366, 367, 368, 369, + 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 0, 0, 0, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 351, 352, 353, 354, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 356, 357, 358, 359, 360, 361, 362, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 364, 365, 366, 367, + 368, 369, 0, 0, 0, 0, 0, 0, 0, 0, + 370, 0, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 0, 0, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 0, 180, 0, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 0, 0, 0, 0, 0, 0, 342, 0, + 0, 0, 346, 347, 348, 0, 0, 530, 531, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, + 0, 670, 814, 0, 0, 0, 0, 0, 534, 535, + 536, 537, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, + 539, 540, 541, 542, 356, 0, 0, 0, 0, 361, + 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 543, 544, 545, 546, 547, 548, 549, + 550, 0, 0, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 384, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 0, 0, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 0, 180, 0, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 0, 0, 0, 0, 0, 0, 342, 0, 0, + 0, 346, 347, 348, 0, 0, 530, 531, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, + 670, 924, 0, 0, 0, 0, 0, 534, 535, 536, + 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 538, 539, + 540, 541, 542, 356, 0, 0, 0, 0, 361, 362, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 543, 544, 545, 546, 547, 548, 549, 550, + 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 384, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 0, 0, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 0, 180, 0, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, + 346, 347, 348, 0, 0, 530, 531, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 532, 533, 0, 0, 606, 0, + 0, 0, 0, 0, 0, 0, 534, 535, 536, 537, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 538, 539, 540, + 541, 542, 356, 0, 0, 0, 0, 361, 362, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 543, 544, 545, 546, 547, 548, 549, 550, 0, + 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 384, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 0, 0, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 0, 180, 0, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 0, + 0, 0, 0, 0, 0, 342, 0, 0, 0, 346, + 347, 348, 0, 0, 530, 531, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 532, 533, 0, 0, 0, 670, 0, + 0, 0, 0, 0, 0, 534, 535, 536, 537, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 538, 539, 540, 541, + 542, 356, 0, 0, 0, 0, 361, 362, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 543, 544, 545, 546, 547, 548, 549, 550, 0, 0, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 384, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 0, 0, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 0, 180, 0, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 0, 0, + 0, 0, 0, 0, 342, 0, 0, 0, 346, 347, + 348, 0, 0, 530, 531, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 532, 533, 0, 0, 771, 0, 0, 0, + 0, 0, 0, 0, 534, 535, 536, 537, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 538, 539, 540, 541, 542, + 356, 0, 0, 0, 0, 361, 362, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 543, + 544, 545, 546, 547, 548, 549, 550, 0, 0, 371, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 384, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 0, 0, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, @@ -2431,7 +2859,7 @@ static const yytype_int16 yytable[] = 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 180, 0, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, @@ -2446,166 +2874,20 @@ static const yytype_int16 yytable[] = 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 329, 330, 331, 332, 333, 334, 335, 0, 0, 0, + 0, 0, 0, 342, 0, 0, 0, 346, 347, 348, + 0, 0, 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 782, 534, 535, 536, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, + 0, 0, 0, 0, 538, 539, 540, 541, 542, 356, + 0, 0, 0, 0, 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 856, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 543, 544, + 545, 546, 547, 548, 549, 550, 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 350, 351, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 354, 355, 356, - 357, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 361, - 362, 363, 364, 365, 366, 367, 0, 0, 0, 0, - 0, 0, 0, 0, 368, 0, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 2, 3, 4, 5, 6, 7, 8, 9, + 0, 384, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, @@ -2623,7 +2905,7 @@ static const yytype_int16 yytable[] = 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 180, 0, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, @@ -2638,19 +2920,111 @@ static const yytype_int16 yytable[] = 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 0, 0, 0, 0, 0, 0, - 340, 0, 0, 0, 344, 345, 346, 0, 0, 528, - 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 530, 531, - 0, 0, 0, 668, 812, 0, 0, 0, 0, 0, - 532, 533, 534, 535, 0, 0, 0, 0, 0, 0, + 330, 331, 332, 333, 334, 335, 0, 0, 0, 0, + 0, 0, 342, 0, 0, 0, 346, 347, 348, 0, + 0, 530, 531, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 534, 535, 536, 537, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 538, 539, 540, 541, 542, 356, 0, + 0, 0, 0, 361, 362, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 543, 544, 545, + 546, 547, 548, 549, 550, 0, 0, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 384, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 0, 180, + 0, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 0, 0, 0, 0, 0, + 0, 342, 0, 0, 0, 346, 347, 348, 0, 0, + 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, + 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 534, 535, 536, 537, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 538, 539, 540, 541, 542, 356, 0, 0, + 0, 0, 361, 686, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 543, 544, 545, 546, + 547, 548, 549, 550, 0, 0, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 0, 0, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 0, 180, 0, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 0, 0, 0, 0, 0, 0, + 342, 0, 0, 0, 346, 347, 348, 0, 0, 530, + 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 536, 537, 538, 539, 540, 354, 0, 0, 0, - 0, 359, 360, 0, 0, 0, 0, 0, 0, 0, + 534, 535, 536, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 541, 542, 543, 544, 545, - 546, 547, 548, 0, 0, 369, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 382, 2, + 0, 538, 539, 540, 541, 731, 356, 0, 0, 0, + 0, 361, 362, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 543, 544, 545, 546, 547, + 548, 549, 550, 0, 0, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 384, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, @@ -2668,7 +3042,7 @@ static const yytype_int16 yytable[] = 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 0, 180, 181, 182, + 173, 174, 175, 176, 177, 178, 0, 180, 0, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, @@ -2684,71 +3058,126 @@ static const yytype_int16 yytable[] = 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 0, 0, 0, 0, 0, 0, 340, 0, 0, - 0, 344, 345, 346, 0, 0, 528, 529, 0, 0, + 333, 334, 335, 0, 0, 0, 0, 0, 0, 342, + 0, 0, 0, 346, 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 530, 531, 0, 0, 0, - 668, 922, 0, 0, 0, 0, 0, 532, 533, 534, - 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 536, 537, - 538, 539, 540, 354, 0, 0, 0, 0, 359, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 541, 542, 543, 544, 545, 546, 547, 548, - 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 382, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 0, 0, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 0, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 0, 0, - 0, 0, 0, 0, 340, 0, 0, 0, 344, 345, - 346, 0, 0, 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 530, 531, 0, 0, 604, 0, 0, 0, - 0, 0, 0, 0, 532, 533, 534, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 536, 537, 538, 539, 540, - 354, 0, 0, 0, 0, 359, 360, 0, 0, 0, + 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, + 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, - 542, 543, 544, 545, 546, 547, 548, 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 382, 2, 3, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 371 +}; + +static const yytype_int16 yycheck[] = +{ + 0, 431, 0, 412, 0, 0, 436, 512, 573, 0, + 589, 464, 431, 666, 583, 668, 525, 670, 471, 578, + 673, 598, 431, 654, 589, 774, 420, 436, 443, 533, + 600, 372, 470, 592, 375, 355, 356, 353, 354, 360, + 409, 383, 601, 372, 937, 375, 372, 456, 372, 377, + 559, 944, 375, 383, 376, 374, 374, 373, 380, 375, + 383, 954, 380, 379, 433, 406, 460, 409, 373, 522, + 523, 391, 392, 578, 512, 396, 405, 406, 407, 408, + 406, 409, 406, 477, 589, 374, 380, 592, 373, 373, + 375, 380, 530, 531, 375, 504, 601, 382, 392, 376, + 373, 382, 391, 380, 674, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 374, 621, 351, 352, 375, + 375, 380, 571, 373, 562, 382, 382, 382, 577, 633, + 579, 635, 375, 582, 385, 584, 387, 586, 587, 382, + 578, 376, 591, 374, 374, 380, 374, 778, 375, 380, + 380, 589, 380, 373, 592, 380, 571, 666, 383, 668, + 813, 670, 374, 601, 673, 374, 383, 374, 380, 746, + 373, 380, 587, 380, 374, 374, 685, 681, 374, 374, + 380, 380, 374, 621, 380, 380, 373, 406, 380, 598, + 409, 600, 438, 439, 440, 441, 442, 443, 444, 374, + 374, 374, 596, 380, 374, 380, 380, 380, 374, 958, + 380, 374, 374, 374, 380, 374, 374, 380, 380, 380, + 374, 380, 380, 374, 374, 374, 380, 357, 358, 380, + 380, 380, 753, 754, 664, 757, 758, 759, 760, 892, + 380, 818, 373, 383, 380, 664, 378, 383, 380, 880, + 406, 406, 690, 409, 409, 664, 409, 405, 406, 407, + 408, 409, 388, 389, 390, 674, 405, 406, 407, 408, + 849, 373, 851, 373, 843, 844, 780, 836, 837, 406, + 784, 409, 409, 406, 849, 391, 409, 406, 741, 406, + 409, 383, 409, 802, 803, 948, 406, 406, 406, 409, + 409, 409, 406, 406, 813, 409, 409, 380, 380, 377, + 383, 383, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 836, 837, 964, 409, 380, 377, 746, 383, 398, + 399, 400, 380, 381, 849, 409, 851, 380, 381, 755, + 756, 761, 762, 375, 409, 409, 377, 375, 374, 409, + 383, 380, 382, 409, 379, 382, 380, 380, 380, 380, + 380, 380, 380, 380, 878, 380, 380, 881, 375, 382, + 374, 373, 383, 892, 374, 373, 373, 373, 372, 359, + 375, 417, 361, 376, 376, 373, 376, 378, 836, 837, + 373, 373, 395, 409, 380, 394, 383, 409, 383, 818, + 409, 849, 412, 851, 393, 383, 373, 921, 381, 383, + 420, 412, 383, 383, 383, 934, 373, 379, 428, 420, + 428, 431, 428, 428, 938, 409, 436, 428, 436, 948, + 431, 436, 374, 382, 380, 436, 446, 380, 374, 953, + 374, 881, 380, 376, 372, 372, 456, 455, 406, 378, + 460, 374, 373, 409, 378, 456, 382, 377, 383, 460, + 470, 374, 881, 377, 383, 377, 421, 477, 764, 766, + 763, 603, 355, 765, 856, 456, 477, 767, 740, 768, + 883, 921, 943, 460, 460, 954, 454, 955, 883, 664, + 921, 428, 834, 594, 504, 832, 837, 664, 841, 844, + 847, 849, 921, 504, 839, 515, -1, 664, -1, -1, + -1, -1, -1, -1, 515, -1, 843, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 851, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 567, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 596, -1, 598, -1, + 600, -1, -1, -1, -1, 596, -1, 598, -1, 600, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 654, -1, -1, -1, -1, -1, + -1, -1, -1, 654, 664, -1, -1, -1, -1, -1, + -1, -1, -1, 664, 674, -1, -1, -1, -1, -1, + -1, -1, -1, 674, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 746, -1, -1, -1, + -1, -1, -1, -1, -1, 746, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 774, -1, -1, -1, 778, -1, + -1, -1, -1, 774, -1, -1, -1, 778, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 818, -1, + -1, -1, -1, -1, -1, -1, -1, 818, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 880, 881, -1, 883, -1, 883, -1, -1, -1, 880, + 881, -1, 883, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 921, -1, -1, -1, -1, -1, -1, -1, -1, + 921, -1, -1, -1, -1, -1, -1, 937, -1, -1, + -1, -1, -1, -1, 944, -1, 937, -1, -1, -1, + -1, -1, -1, 944, 954, -1, -1, -1, 958, -1, + -1, -1, -1, 954, 964, -1, -1, 958, -1, -1, + -1, 0, -1, 964, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 0, 0, 61, 62, 63, 64, 65, 66, 67, 68, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, @@ -2760,7 +3189,7 @@ static const yytype_int16 yytable[] = 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, @@ -2775,254 +3204,28 @@ static const yytype_int16 yytable[] = 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 0, 0, 0, 0, 0, - 0, 340, 0, 0, 0, 344, 345, 346, 0, 0, - 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, - 531, 0, 0, 0, 668, 0, 0, 0, 0, 0, - 0, 532, 533, 534, 535, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 536, 537, 538, 539, 540, 354, 0, 0, - 0, 0, 359, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 541, 542, 543, 544, - 545, 546, 547, 548, 0, 0, 369, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 0, 0, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 0, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 0, 0, 0, 0, 0, 340, 0, - 0, 0, 344, 345, 346, 0, 0, 528, 529, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 530, 531, 0, 0, - 769, 0, 0, 0, 0, 0, 0, 0, 532, 533, - 534, 535, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, - 537, 538, 539, 540, 354, 0, 0, 0, 0, 359, - 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 541, 542, 543, 544, 545, 546, 547, - 548, 0, 0, 369, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 382, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 0, 0, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 0, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 0, - 0, 0, 0, 0, 0, 340, 0, 0, 0, 344, - 345, 346, 0, 0, 528, 529, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 530, 531, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 780, 532, 533, 534, 535, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 536, 537, 538, 539, - 540, 354, 0, 0, 0, 0, 359, 360, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 541, 542, 543, 544, 545, 546, 547, 548, 0, 0, - 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 382, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 0, 0, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 0, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 0, 0, 0, 0, - 0, 0, 340, 0, 0, 0, 344, 345, 346, 0, - 0, 528, 529, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 532, 533, 534, 535, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 536, 537, 538, 539, 540, 354, 0, - 0, 0, 0, 359, 360, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 541, 542, 543, - 544, 545, 546, 547, 548, 0, 0, 369, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 382, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 0, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 0, 0, 0, 0, 0, 0, 340, - 0, 0, 0, 344, 345, 346, 0, 0, 528, 529, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 530, 531, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, - 533, 534, 535, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 536, 537, 538, 539, 540, 354, 0, 0, 0, 0, - 359, 684, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 541, 542, 543, 544, 545, 546, - 547, 548, 0, 0, 369, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 382, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 0, 0, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 0, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, - 344, 345, 346, 0, 0, 528, 529, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 530, 531, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 532, 533, 534, 535, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 536, 537, 538, - 539, 729, 354, 0, 0, 0, 0, 359, 360, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 541, 542, 543, 544, 545, 546, 547, 548, 0, - 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 382, 2, 3, 4, 5, 6, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 375, -1, -1, -1, + -1, -1, -1, -1, 383, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, + 399, 400, 401, -1, -1, -1, -1, -1, -1, -1, + -1, 410, 411, 412, 413, 414, 415, 416, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 434, 435, 436, 437, 438, + -1, -1, -1, -1, -1, -1, -1, -1, 447, -1, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 0, 61, 62, 63, 64, 65, 66, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, @@ -3034,7 +3237,7 @@ static const yytype_int16 yytable[] = 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 0, 180, 181, 182, 183, 184, 185, 186, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, @@ -3049,744 +3252,119 @@ static const yytype_int16 yytable[] = 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 0, 0, 0, - 0, 0, 0, 340, 0, 0, 0, 344, 345, 346, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, - 0, 0, 0, 0, 359, 360, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 369 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 410, 0, 429, 0, 0, 571, 510, 434, 0, - 462, 664, 581, 666, 523, 668, 429, 469, 671, 652, - 429, 587, 587, 596, 772, 434, 576, 531, 598, 370, - 468, 418, 370, 370, 358, 441, 373, 407, 353, 354, - 590, 371, 370, 935, 378, 454, 375, 373, 557, 599, - 942, 373, 349, 350, 381, 381, 390, 351, 352, 381, - 952, 431, 403, 404, 405, 406, 404, 404, 520, 521, - 394, 458, 510, 576, 389, 390, 404, 371, 407, 373, - 407, 374, 373, 377, 587, 378, 371, 590, 475, 380, - 528, 529, 371, 502, 373, 371, 599, 403, 404, 405, - 406, 380, 672, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 372, 378, 379, 619, 373, 373, 378, - 569, 371, 560, 380, 380, 380, 575, 631, 577, 633, - 389, 580, 373, 582, 378, 584, 585, 381, 576, 380, - 589, 372, 372, 776, 372, 372, 371, 378, 378, 587, - 378, 378, 590, 404, 372, 664, 407, 666, 811, 668, - 378, 599, 671, 569, 436, 437, 438, 439, 440, 441, - 442, 744, 372, 371, 683, 679, 372, 372, 378, 585, - 372, 619, 378, 378, 372, 372, 378, 596, 372, 598, - 378, 378, 372, 372, 378, 372, 372, 372, 378, 378, - 372, 378, 378, 378, 372, 372, 378, 594, 956, 372, - 378, 378, 372, 372, 372, 378, 372, 372, 378, 378, - 378, 372, 378, 378, 374, 751, 752, 378, 378, 403, - 404, 405, 406, 407, 374, 378, 662, 890, 378, 755, - 756, 757, 758, 816, 378, 878, 376, 381, 378, 662, - 688, 404, 404, 662, 407, 407, 404, 404, 404, 407, - 407, 407, 404, 672, 371, 407, 404, 404, 404, 407, - 407, 407, 841, 842, 778, 371, 404, 404, 782, 407, - 407, 847, 847, 849, 834, 835, 378, 739, 383, 381, - 385, 800, 801, 946, 378, 378, 378, 381, 381, 381, - 355, 356, 811, 396, 397, 398, 386, 387, 388, 373, - 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 760, 761, 762, 763, 764, 765, 766, 962, - 371, 834, 835, 378, 379, 744, 753, 754, 759, 760, - 371, 381, 372, 389, 847, 407, 849, 381, 407, 407, - 375, 407, 375, 373, 407, 407, 375, 373, 372, 407, - 381, 378, 380, 407, 377, 380, 378, 378, 378, 378, - 378, 378, 876, 378, 378, 879, 378, 378, 372, 371, - 373, 890, 381, 380, 372, 371, 371, 371, 370, 357, - 373, 415, 359, 374, 374, 371, 834, 835, 376, 371, - 371, 407, 371, 392, 407, 379, 393, 816, 381, 847, - 410, 849, 391, 371, 377, 919, 381, 407, 418, 410, - 381, 381, 381, 932, 381, 381, 426, 418, 426, 429, - 426, 426, 936, 372, 434, 426, 434, 946, 429, 434, - 380, 407, 378, 434, 444, 378, 378, 951, 372, 372, - 378, 370, 374, 879, 454, 453, 374, 370, 458, 404, - 376, 407, 372, 454, 371, 380, 375, 458, 468, 381, - 879, 372, 419, 375, 761, 475, 375, 381, 376, 762, - 764, 763, 601, 458, 475, 765, 353, 854, 766, 738, - 454, 881, 952, 919, 941, 953, 458, 452, 881, 919, - 662, 662, 502, 592, 835, 662, 426, 832, 841, 830, - 919, 502, 847, 513, -1, -1, 839, 837, -1, -1, - -1, -1, 513, 842, -1, -1, -1, 845, -1, -1, - -1, -1, 849, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 565, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 594, -1, 596, -1, 598, -1, - -1, -1, -1, 594, -1, 596, -1, 598, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 372, 373, -1, 375, -1, + 377, 378, -1, -1, -1, -1, 383, 384, 385, 386, + 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 397, 398, 399, 400, 401, -1, -1, -1, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, -1, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 652, -1, -1, -1, -1, -1, -1, -1, - -1, 652, 662, -1, -1, -1, -1, -1, -1, -1, - -1, 662, 672, -1, -1, -1, -1, -1, -1, -1, - -1, 672, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 744, -1, -1, -1, -1, -1, - -1, -1, -1, 744, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 772, -1, -1, -1, 776, -1, -1, -1, - -1, 772, -1, -1, -1, 776, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 816, -1, -1, -1, - -1, -1, -1, -1, -1, 816, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 878, 879, - -1, 881, -1, 881, -1, -1, -1, 878, 879, -1, - 881, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 919, - -1, -1, -1, -1, -1, -1, -1, -1, 919, -1, - -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, - -1, -1, 942, -1, 935, -1, -1, -1, -1, -1, - -1, 942, 952, -1, -1, -1, 956, -1, -1, -1, - -1, 952, 962, -1, -1, 956, -1, -1, -1, 0, - -1, 962, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 373, -1, -1, -1, -1, -1, -1, -1, - 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, 373, -1, 375, 376, -1, -1, -1, -1, - 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, 373, -1, 375, 376, -1, -1, -1, -1, - 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, 373, -1, 375, -1, -1, -1, -1, -1, - 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, 373, -1, 375, -1, -1, -1, -1, -1, - 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, 373, -1, -1, -1, -1, -1, -1, -1, - 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, 373, -1, -1, -1, -1, -1, -1, -1, - 381, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 382, 383, 384, 385, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 373, -1, -1, -1, -1, -1, -1, -1, - 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, 399, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, 415, -1, -1, 418, -1, 420, - 421, -1, -1, 424, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 373, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 377, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, 372, 373, -1, + 375, -1, 377, 378, -1, -1, -1, -1, 383, 384, + 385, 386, 387, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 397, 398, 399, 400, 401, -1, -1, -1, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, -1, -1, + 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, + 373, -1, 375, -1, 377, -1, -1, -1, -1, -1, + 383, 384, 385, 386, 387, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 397, 398, 399, 400, 401, -1, + -1, -1, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, @@ -3819,70 +3397,215 @@ static const yytype_int16 yycheck[] = 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 376, -1, -1, -1, -1, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, + -1, 372, 373, -1, 375, -1, 377, -1, -1, -1, + -1, -1, 383, 384, 385, 386, 387, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 397, 398, 399, 400, + 401, -1, -1, -1, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + -1, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, + 481, 482, 483, 484, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 372, 373, -1, 375, -1, -1, -1, + -1, -1, -1, -1, 383, 384, 385, 386, 387, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, + 399, 400, 401, -1, -1, -1, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 376, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 372, 373, -1, 375, -1, + -1, -1, -1, -1, -1, -1, 383, 384, 385, 386, + 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 397, 398, 399, 400, 401, -1, -1, -1, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, -1, -1, -1, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, -1, -1, 353, 354, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 372, 373, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 384, + 385, 386, 387, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 397, 398, 399, 400, -1, -1, -1, -1, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, -1, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 375, -1, -1, -1, -1, -1, -1, -1, + 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 397, 398, 399, 400, 401, -1, + -1, -1, -1, -1, -1, -1, -1, 410, 411, 412, + 413, 414, 415, 416, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, 434, 435, 436, 437, 438, -1, -1, -1, -1, + -1, -1, -1, -1, 447, -1, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, @@ -3915,121 +3638,124 @@ static const yytype_int16 yycheck[] = 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, + 331, 332, 333, 334, 335, 336, 337, -1, -1, -1, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 397, 398, 399, 400, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, + 411, 412, 413, 414, 415, 416, 417, -1, -1, 420, + -1, 422, 423, -1, -1, 426, -1, -1, -1, -1, + -1, 432, 433, 434, 435, 436, 437, 438, -1, -1, + -1, -1, -1, -1, -1, -1, 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, -1, -1, + 481, 482, 483, 484, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, + -1, -1, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 383, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, + 399, 400, -1, -1, -1, -1, -1, -1, -1, -1, + 409, 410, 411, 412, 413, 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 434, 435, 436, 437, 438, + -1, -1, -1, -1, -1, -1, -1, -1, 447, -1, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, -1, -1, -1, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 395, 396, 397, 398, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 408, 409, 410, - 411, 412, 413, 414, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 430, - 431, 432, 433, 434, 435, 436, -1, -1, -1, -1, - -1, -1, -1, -1, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, - -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, -1, -1, -1, -1, -1, -1, - 342, -1, -1, -1, 346, 347, 348, -1, -1, 351, - 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, - -1, -1, -1, 375, 376, -1, -1, -1, -1, -1, - 382, 383, 384, 385, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 403, 404, 405, 406, 407, 408, -1, -1, -1, - -1, 413, 414, -1, -1, -1, -1, -1, -1, -1, + 397, 398, 399, 400, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 410, 411, 412, 413, 414, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 437, 438, 439, 440, 441, - 442, 443, 444, -1, -1, 447, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 460, 4, + -1, -1, -1, -1, -1, 432, 433, 434, 435, 436, + 437, 438, -1, -1, -1, -1, -1, -1, -1, -1, + 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, @@ -4041,7 +3767,7 @@ static const yytype_int16 yycheck[] = 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, -1, 182, 183, 184, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, @@ -4057,71 +3783,76 @@ static const yytype_int16 yycheck[] = 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, -1, -1, -1, -1, -1, -1, 342, -1, -1, - -1, 346, 347, 348, -1, -1, 351, 352, -1, -1, + 335, 336, 337, -1, -1, -1, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 370, 371, -1, -1, -1, - 375, 376, -1, -1, -1, -1, -1, 382, 383, 384, - 385, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 403, 404, - 405, 406, 407, 408, -1, -1, -1, -1, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 379, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 437, 438, 439, 440, 441, 442, 443, 444, - -1, -1, 447, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 460, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, -1, -1, - -1, -1, -1, -1, 342, -1, -1, -1, 346, 347, - 348, -1, -1, 351, 352, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 370, 371, -1, -1, 374, -1, -1, -1, - -1, -1, -1, -1, 382, 383, 384, 385, -1, -1, + -1, -1, 397, 398, 399, 400, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 410, 411, 412, 413, 414, + 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 432, 433, 434, + 435, 436, 437, 438, -1, -1, -1, -1, -1, -1, + -1, -1, 447, -1, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, -1, -1, -1, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 403, 404, 405, 406, 407, - 408, -1, -1, -1, -1, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 437, - 438, 439, 440, 441, 442, 443, 444, -1, -1, 447, + -1, -1, -1, -1, -1, 378, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 460, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, 397, 398, 399, 400, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 410, 411, 412, + 413, 414, 415, 416, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 432, + 433, 434, 435, 436, 437, 438, -1, -1, -1, -1, + -1, -1, -1, -1, 447, -1, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, @@ -4133,7 +3864,7 @@ static const yytype_int16 yycheck[] = 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, @@ -4148,65 +3879,164 @@ static const yytype_int16 yycheck[] = 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, -1, -1, -1, -1, -1, - -1, 342, -1, -1, -1, 346, 347, 348, -1, -1, - 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, - 371, -1, -1, -1, 375, -1, -1, -1, -1, -1, - -1, 382, 383, 384, 385, -1, -1, -1, -1, -1, + 331, 332, 333, 334, 335, 336, 337, -1, -1, -1, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 403, 404, 405, 406, 407, 408, -1, -1, - -1, -1, 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 437, 438, 439, 440, - 441, 442, 443, 444, -1, -1, 447, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 460, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, -1, -1, -1, -1, -1, -1, 342, -1, - -1, -1, 346, 347, 348, -1, -1, 351, 352, -1, + -1, -1, -1, -1, -1, -1, -1, 378, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 397, 398, 399, 400, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, + 411, 412, 413, 414, 415, 416, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 432, 433, 434, 435, 436, 437, 438, -1, -1, + -1, -1, -1, -1, -1, -1, 447, -1, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, + -1, -1, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 378, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, + 399, 400, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 410, 411, 412, 413, 414, 415, 416, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 432, 433, 434, 435, 436, 437, 438, + -1, -1, -1, -1, -1, -1, -1, -1, 447, -1, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, -1, -1, -1, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 397, 398, 399, 400, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 410, 411, 412, 413, 414, 415, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 432, 433, 434, 435, 436, + 437, 438, -1, -1, -1, -1, -1, -1, -1, -1, + 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, -1, 182, -1, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, -1, -1, -1, -1, -1, -1, 344, -1, + -1, -1, 348, 349, 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 370, 371, -1, -1, - 374, -1, -1, -1, -1, -1, -1, -1, 382, 383, - 384, 385, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 403, - 404, 405, 406, 407, 408, -1, -1, -1, -1, 413, - 414, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 372, 373, -1, -1, + -1, 377, 378, -1, -1, -1, -1, -1, 384, 385, + 386, 387, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 405, + 406, 407, 408, 409, 410, -1, -1, -1, -1, 415, + 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 437, 438, 439, 440, 441, 442, 443, - 444, -1, -1, 447, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 460, 4, 5, 6, + -1, -1, -1, 439, 440, 441, 442, 443, 444, 445, + 446, -1, -1, 449, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 462, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, @@ -4224,7 +4054,7 @@ static const yytype_int16 yycheck[] = 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 177, 178, 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, @@ -4239,20 +4069,112 @@ static const yytype_int16 yycheck[] = 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, -1, - -1, -1, -1, -1, -1, 342, -1, -1, -1, 346, - 347, 348, -1, -1, 351, 352, -1, -1, -1, -1, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, -1, -1, -1, -1, -1, -1, 344, -1, -1, + -1, 348, 349, 350, -1, -1, 353, 354, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 372, 373, -1, -1, -1, + 377, 378, -1, -1, -1, -1, -1, 384, 385, 386, + 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 405, 406, + 407, 408, 409, 410, -1, -1, -1, -1, 415, 416, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 439, 440, 441, 442, 443, 444, 445, 446, + -1, -1, 449, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 462, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, -1, 182, -1, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + -1, -1, -1, -1, -1, -1, 344, -1, -1, -1, + 348, 349, 350, -1, -1, 353, 354, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 372, 373, -1, -1, 376, -1, + -1, -1, -1, -1, -1, -1, 384, 385, 386, 387, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 405, 406, 407, + 408, 409, 410, -1, -1, -1, -1, 415, 416, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, + -1, 449, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 462, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, + -1, -1, -1, -1, -1, 344, -1, -1, -1, 348, + 349, 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 370, 371, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, + -1, -1, -1, 372, 373, -1, -1, -1, 377, -1, + -1, -1, -1, -1, -1, 384, 385, 386, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 403, 404, 405, 406, - 407, 408, -1, -1, -1, -1, 413, 414, -1, -1, + -1, -1, -1, -1, -1, -1, 405, 406, 407, 408, + 409, 410, -1, -1, -1, -1, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 437, 438, 439, 440, 441, 442, 443, 444, -1, -1, - 447, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 460, 4, 5, 6, 7, 8, 9, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 462, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, @@ -4270,7 +4192,7 @@ static const yytype_int16 yycheck[] = 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, + 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, @@ -4285,20 +4207,112 @@ static const yytype_int16 yycheck[] = 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, -1, -1, -1, -1, - -1, -1, 342, -1, -1, -1, 346, 347, 348, -1, - -1, 351, 352, -1, -1, -1, -1, -1, -1, -1, + 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, + -1, -1, -1, -1, 344, -1, -1, -1, 348, 349, + 350, -1, -1, 353, 354, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 372, 373, -1, -1, 376, -1, -1, -1, + -1, -1, -1, -1, 384, 385, 386, 387, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 405, 406, 407, 408, 409, + 410, -1, -1, -1, -1, 415, 416, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 439, + 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 462, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, -1, -1, -1, + -1, -1, -1, 344, -1, -1, -1, 348, 349, 350, + -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 372, 373, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 383, 384, 385, 386, 387, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 405, 406, 407, 408, 409, 410, + -1, -1, -1, -1, 415, 416, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 439, 440, + 441, 442, 443, 444, 445, 446, -1, -1, 449, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 462, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, + 182, -1, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, -1, -1, -1, -1, + -1, -1, 344, -1, -1, -1, 348, 349, 350, -1, + -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 370, 371, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 382, 383, 384, 385, -1, -1, -1, -1, + 372, 373, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 384, 385, 386, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 403, 404, 405, 406, 407, 408, -1, - -1, -1, -1, 413, 414, -1, -1, -1, -1, -1, + -1, -1, -1, 405, 406, 407, 408, 409, 410, -1, + -1, -1, -1, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 437, 438, 439, - 440, 441, 442, 443, 444, -1, -1, 447, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 439, 440, 441, + 442, 443, 444, 445, 446, -1, -1, 449, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 460, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 462, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, @@ -4316,7 +4330,7 @@ static const yytype_int16 yycheck[] = 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + -1, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, @@ -4331,109 +4345,110 @@ static const yytype_int16 yycheck[] = 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, -1, -1, -1, -1, -1, -1, 342, - -1, -1, -1, 346, 347, 348, -1, -1, 351, 352, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 370, 371, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 382, - 383, 384, 385, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 403, 404, 405, 406, 407, 408, -1, -1, -1, -1, - 413, 414, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 437, 438, 439, 440, 441, 442, - 443, 444, -1, -1, 447, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 460, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - -1, -1, -1, -1, -1, -1, 342, -1, -1, -1, - 346, 347, 348, -1, -1, 351, 352, -1, -1, -1, + 333, 334, 335, 336, 337, -1, -1, -1, -1, -1, + -1, 344, -1, -1, -1, 348, 349, 350, -1, -1, + 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, + 373, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 384, 385, 386, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 370, 371, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 382, 383, 384, 385, + -1, -1, 405, 406, 407, 408, 409, 410, -1, -1, + -1, -1, 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 403, 404, 405, - 406, 407, 408, -1, -1, -1, -1, 413, 414, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 437, 438, 439, 440, 441, 442, 443, 444, -1, - -1, 447, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 460, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, -1, -1, -1, - -1, -1, -1, 342, -1, -1, -1, 346, 347, 348, + -1, -1, -1, -1, -1, -1, 439, 440, 441, 442, + 443, 444, 445, 446, -1, -1, 449, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 462, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, -1, 182, -1, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, -1, -1, -1, -1, -1, -1, + 344, -1, -1, -1, 348, 349, 350, -1, -1, 353, + 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 372, 373, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 384, 385, 386, 387, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 405, 406, 407, 408, 409, 410, -1, -1, -1, + -1, 415, 416, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 462, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, -1, 182, -1, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, -1, -1, -1, -1, -1, -1, 344, + -1, -1, -1, 348, 349, 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, - -1, -1, -1, -1, 413, 414, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 410, -1, -1, -1, -1, + 415, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 447 + -1, -1, -1, -1, 449 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -4474,146 +4489,147 @@ static const yytype_int16 yystos[] = 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 373, 381, 395, - 396, 397, 398, 399, 408, 409, 410, 411, 412, 413, - 414, 430, 431, 432, 433, 434, 435, 436, 445, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 375, + 383, 397, 398, 399, 400, 401, 410, 411, 412, 413, + 414, 415, 416, 432, 433, 434, 435, 436, 437, 438, + 447, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 514, 515, 518, 519, 520, - 521, 525, 526, 527, 528, 529, 530, 533, 534, 535, - 536, 537, 539, 544, 545, 546, 587, 588, 589, 591, - 598, 602, 603, 609, 612, 371, 371, 371, 371, 371, - 371, 371, 371, 373, 545, 375, 407, 371, 371, 381, - 407, 381, 590, 372, 378, 522, 523, 524, 534, 539, - 378, 381, 407, 381, 407, 517, 535, 539, 389, 541, - 542, 0, 588, 519, 527, 534, 381, 518, 407, 594, - 595, 613, 614, 404, 407, 594, 404, 594, 404, 594, - 404, 594, 404, 594, 594, 613, 404, 594, 407, 592, - 593, 539, 548, 375, 407, 431, 531, 532, 407, 538, - 373, 381, 540, 375, 566, 591, 377, 523, 522, 524, - 407, 407, 371, 380, 540, 375, 378, 381, 351, 352, - 370, 371, 382, 383, 384, 385, 403, 404, 405, 406, - 407, 437, 438, 439, 440, 441, 442, 443, 444, 484, - 485, 486, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 537, 539, 543, 540, 372, 407, 381, 380, 378, - 372, 378, 372, 378, 380, 378, 378, 378, 372, 378, - 378, 378, 378, 378, 378, 378, 372, 378, 372, 378, - 371, 374, 378, 381, 534, 539, 549, 550, 547, 380, - 372, 378, 372, 378, 374, 495, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 539, 373, - 381, 375, 376, 381, 415, 416, 417, 418, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 446, 495, - 508, 510, 512, 514, 518, 537, 539, 555, 556, 557, - 558, 559, 567, 568, 569, 570, 573, 574, 577, 578, - 579, 586, 591, 377, 380, 540, 380, 540, 375, 510, - 553, 380, 516, 407, 495, 495, 512, 351, 352, 373, - 377, 372, 372, 378, 414, 510, 371, 495, 378, 390, - 591, 370, 373, 404, 595, 613, 407, 614, 370, 403, - 404, 405, 406, 599, 600, 404, 508, 513, 601, 404, - 403, 404, 405, 406, 604, 605, 404, 403, 404, 405, - 406, 484, 606, 607, 404, 370, 608, 404, 613, 407, - 513, 544, 610, 611, 404, 513, 374, 593, 539, 407, - 551, 552, 376, 550, 549, 513, 532, 407, 386, 387, - 388, 383, 385, 349, 350, 353, 354, 389, 390, 355, - 356, 393, 392, 391, 357, 359, 358, 394, 374, 374, - 508, 376, 560, 371, 381, 381, 581, 371, 371, 381, - 381, 512, 371, 512, 379, 381, 381, 381, 381, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 380, - 511, 378, 381, 376, 556, 570, 574, 579, 377, 553, - 553, 380, 376, 553, 554, 553, 549, 372, 487, 512, - 407, 510, 495, 370, 404, 596, 597, 372, 380, 372, - 378, 372, 378, 372, 378, 378, 372, 378, 372, 378, - 372, 378, 378, 372, 378, 378, 372, 378, 372, 378, - 372, 372, 551, 540, 378, 381, 376, 495, 495, 495, - 497, 497, 498, 498, 499, 499, 499, 499, 500, 500, - 501, 502, 503, 504, 505, 506, 509, 374, 567, 580, - 556, 582, 512, 381, 512, 379, 510, 510, 553, 376, - 378, 376, 374, 374, 378, 374, 378, 600, 599, 513, - 601, 605, 604, 607, 606, 370, 608, 610, 611, 381, - 552, 512, 561, 512, 527, 572, 415, 555, 568, 583, - 372, 372, 376, 553, 370, 404, 372, 372, 372, 372, - 372, 372, 379, 376, 407, 372, 371, 572, 584, 585, - 563, 564, 565, 571, 575, 510, 380, 557, 562, 566, - 512, 381, 372, 419, 559, 557, 375, 553, 372, 512, - 562, 563, 567, 576, 381, 376 + 478, 479, 480, 481, 482, 483, 484, 516, 517, 520, + 521, 522, 523, 527, 528, 529, 530, 531, 532, 535, + 536, 537, 538, 539, 541, 546, 547, 548, 589, 590, + 591, 593, 600, 604, 605, 611, 614, 373, 373, 373, + 373, 373, 373, 373, 373, 375, 547, 377, 409, 373, + 373, 383, 409, 383, 592, 374, 380, 524, 525, 526, + 536, 541, 380, 383, 409, 383, 409, 519, 537, 541, + 391, 543, 544, 0, 590, 521, 529, 536, 383, 520, + 409, 596, 597, 615, 616, 406, 409, 596, 406, 596, + 406, 596, 406, 596, 406, 596, 596, 615, 406, 596, + 409, 594, 595, 541, 550, 377, 409, 433, 533, 534, + 409, 540, 375, 383, 542, 377, 568, 593, 379, 525, + 524, 526, 409, 409, 373, 382, 542, 377, 380, 383, + 353, 354, 372, 373, 384, 385, 386, 387, 405, 406, + 407, 408, 409, 439, 440, 441, 442, 443, 444, 445, + 446, 486, 487, 488, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 539, 541, 545, 542, 374, 409, 383, + 382, 380, 374, 380, 374, 380, 382, 380, 380, 380, + 374, 380, 380, 380, 380, 380, 380, 380, 374, 380, + 374, 380, 373, 376, 380, 383, 536, 541, 551, 552, + 549, 382, 374, 380, 374, 380, 376, 497, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 541, 375, 383, 377, 378, 383, 417, 418, 419, 420, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 448, 497, 510, 512, 514, 516, 520, 539, 541, 557, + 558, 559, 560, 561, 569, 570, 571, 572, 575, 576, + 579, 580, 581, 588, 593, 379, 382, 542, 382, 542, + 377, 512, 555, 382, 518, 409, 497, 497, 514, 353, + 354, 375, 379, 374, 374, 380, 416, 512, 373, 497, + 380, 392, 593, 372, 375, 406, 597, 615, 409, 616, + 372, 405, 406, 407, 408, 601, 602, 406, 510, 515, + 603, 406, 405, 406, 407, 408, 606, 607, 406, 405, + 406, 407, 408, 486, 608, 609, 406, 372, 610, 406, + 615, 409, 515, 546, 612, 613, 406, 515, 376, 595, + 541, 409, 553, 554, 378, 552, 551, 515, 534, 409, + 388, 389, 390, 385, 387, 351, 352, 355, 356, 391, + 392, 357, 358, 395, 394, 393, 359, 361, 360, 396, + 376, 376, 510, 378, 562, 373, 383, 383, 583, 373, + 373, 383, 383, 514, 373, 514, 381, 383, 383, 383, + 383, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 382, 513, 380, 383, 378, 558, 572, 576, 581, + 379, 555, 555, 382, 378, 555, 556, 555, 551, 374, + 489, 514, 409, 512, 497, 372, 406, 598, 599, 374, + 382, 374, 380, 374, 380, 374, 380, 380, 374, 380, + 374, 380, 374, 380, 380, 374, 380, 380, 374, 380, + 374, 380, 374, 374, 553, 542, 380, 383, 378, 497, + 497, 497, 499, 499, 500, 500, 501, 501, 501, 501, + 502, 502, 503, 504, 505, 506, 507, 508, 511, 376, + 569, 582, 558, 584, 514, 383, 514, 381, 512, 512, + 555, 378, 380, 378, 376, 376, 380, 376, 380, 602, + 601, 515, 603, 607, 606, 609, 608, 372, 610, 612, + 613, 383, 554, 514, 563, 514, 529, 574, 417, 557, + 570, 585, 374, 374, 378, 555, 372, 406, 374, 374, + 374, 374, 374, 374, 381, 378, 409, 374, 373, 574, + 586, 587, 565, 566, 567, 573, 577, 512, 382, 559, + 564, 568, 514, 383, 374, 421, 561, 559, 377, 555, + 374, 514, 564, 565, 569, 578, 383, 378 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int16 yyr1[] = { - 0, 483, 484, 485, 485, 485, 485, 485, 485, 485, - 485, 485, 485, 485, 485, 485, 485, 485, 486, 486, - 486, 486, 486, 486, 487, 488, 489, 490, 490, 491, - 491, 492, 492, 493, 494, 494, 494, 495, 495, 495, - 495, 496, 496, 496, 496, 497, 497, 497, 497, 498, - 498, 498, 499, 499, 499, 500, 500, 500, 500, 500, - 501, 501, 501, 502, 502, 503, 503, 504, 504, 505, - 505, 506, 506, 507, 507, 508, 509, 508, 510, 510, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 512, 512, 513, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 516, 515, 517, 517, 518, 518, - 518, 518, 519, 519, 520, 520, 520, 521, 522, 522, - 522, 523, 523, 523, 523, 524, 525, 525, 525, 525, - 525, 526, 526, 526, 526, 526, 527, 527, 528, 529, - 529, 529, 529, 529, 529, 529, 529, 529, 529, 530, - 531, 531, 532, 532, 532, 533, 534, 534, 535, 535, - 535, 535, 535, 535, 535, 535, 535, 535, 535, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 537, 538, - 538, 539, 539, 540, 540, 540, 540, 541, 541, 542, - 543, 543, 543, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 544, - 545, 545, 545, 547, 546, 548, 546, 549, 549, 550, - 550, 551, 551, 552, 552, 553, 553, 553, 553, 554, - 554, 555, 556, 556, 557, 557, 557, 557, 557, 557, - 557, 557, 558, 559, 560, 561, 559, 562, 562, 564, - 563, 565, 563, 566, 566, 567, 567, 568, 568, 569, - 569, 570, 571, 571, 572, 572, 573, 573, 575, 574, - 576, 576, 577, 577, 578, 578, 580, 579, 581, 579, - 582, 579, 583, 583, 584, 584, 585, 585, 586, 586, - 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, - 588, 590, 589, 591, 592, 592, 593, 593, 594, 594, - 595, 595, 596, 596, 597, 597, 598, 598, 598, 598, - 598, 598, 599, 599, 600, 600, 600, 600, 600, 601, - 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, - 603, 604, 604, 605, 605, 605, 605, 606, 606, 607, - 607, 607, 607, 607, 608, 608, 609, 609, 609, 609, - 610, 610, 611, 611, 612, 612, 613, 613, 614, 614 + 0, 485, 486, 487, 487, 487, 487, 487, 487, 487, + 487, 487, 487, 487, 487, 487, 487, 487, 488, 488, + 488, 488, 488, 488, 489, 490, 491, 492, 492, 493, + 493, 494, 494, 495, 496, 496, 496, 497, 497, 497, + 497, 498, 498, 498, 498, 499, 499, 499, 499, 500, + 500, 500, 501, 501, 501, 502, 502, 502, 502, 502, + 503, 503, 503, 504, 504, 505, 505, 506, 506, 507, + 507, 508, 508, 509, 509, 510, 511, 510, 512, 512, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 514, 514, 515, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 518, 517, 519, 519, 520, 520, + 520, 520, 521, 521, 522, 522, 522, 523, 524, 524, + 524, 525, 525, 525, 525, 526, 527, 527, 527, 527, + 527, 528, 528, 528, 528, 528, 529, 529, 530, 531, + 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, + 533, 533, 534, 534, 534, 535, 536, 536, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 538, 538, 538, 538, 538, 538, 538, 539, + 540, 540, 541, 541, 542, 542, 542, 542, 543, 543, + 544, 545, 545, 545, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 546, 547, 547, 547, 549, 548, 550, 548, 551, + 551, 552, 552, 553, 553, 554, 554, 555, 555, 555, + 555, 556, 556, 557, 558, 558, 559, 559, 559, 559, + 559, 559, 559, 559, 560, 561, 562, 563, 561, 564, + 564, 566, 565, 567, 565, 568, 568, 569, 569, 570, + 570, 571, 571, 572, 573, 573, 574, 574, 575, 575, + 577, 576, 578, 578, 579, 579, 580, 580, 582, 581, + 583, 581, 584, 581, 585, 585, 586, 586, 587, 587, + 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, + 590, 590, 590, 592, 591, 593, 594, 594, 595, 595, + 596, 596, 597, 597, 598, 598, 599, 599, 600, 600, + 600, 600, 600, 600, 601, 601, 602, 602, 602, 602, + 602, 603, 603, 604, 604, 605, 605, 605, 605, 605, + 605, 605, 605, 606, 606, 607, 607, 607, 607, 608, + 608, 609, 609, 609, 609, 609, 610, 610, 611, 611, + 611, 611, 612, 612, 613, 613, 614, 614, 615, 615, + 616, 616 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -4639,9 +4655,9 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, - 3, 2, 3, 2, 3, 3, 4, 1, 0, 3, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, + 1, 3, 2, 3, 2, 3, 3, 4, 1, 0, + 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -4675,22 +4691,23 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, - 4, 1, 3, 1, 2, 1, 3, 4, 2, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 0, 0, 5, 1, 1, 0, - 2, 0, 2, 2, 3, 1, 2, 1, 2, 1, - 2, 5, 3, 1, 1, 4, 1, 2, 0, 8, - 0, 1, 3, 2, 1, 2, 0, 6, 0, 8, - 0, 7, 1, 1, 1, 0, 2, 3, 2, 2, - 2, 3, 2, 2, 2, 2, 1, 2, 1, 1, - 1, 0, 3, 5, 1, 3, 1, 4, 1, 3, - 5, 5, 1, 3, 1, 3, 4, 6, 6, 8, - 6, 8, 1, 3, 1, 1, 1, 1, 1, 1, - 3, 4, 6, 4, 6, 6, 8, 6, 8, 6, - 8, 1, 3, 1, 1, 1, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 3, 6, 8, 4, 6, - 1, 3, 1, 1, 4, 6, 1, 3, 3, 3 + 1, 1, 1, 1, 1, 0, 6, 0, 5, 1, + 2, 3, 4, 1, 3, 1, 2, 1, 3, 4, + 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 0, 0, 5, 1, + 1, 0, 2, 0, 2, 2, 3, 1, 2, 1, + 2, 1, 2, 5, 3, 1, 1, 4, 1, 2, + 0, 8, 0, 1, 3, 2, 1, 2, 0, 6, + 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, + 2, 2, 2, 3, 2, 2, 2, 2, 1, 2, + 1, 1, 1, 0, 3, 5, 1, 3, 1, 4, + 1, 3, 5, 5, 1, 3, 1, 3, 4, 6, + 6, 8, 6, 8, 1, 3, 1, 1, 1, 1, + 1, 1, 3, 4, 6, 4, 6, 6, 8, 6, + 8, 6, 8, 1, 3, 1, 1, 1, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 3, 6, 8, + 4, 6, 1, 3, 1, 1, 4, 6, 1, 3, + 3, 3 }; @@ -5432,260 +5449,260 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); switch (yyn) { case 2: /* variable_identifier: IDENTIFIER */ -#line 361 "MachineIndependent/glslang.y" +#line 362 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } -#line 5440 "MachineIndependent/glslang_tab.cpp" +#line 5457 "MachineIndependent/glslang_tab.cpp" break; case 3: /* primary_expression: variable_identifier */ -#line 367 "MachineIndependent/glslang.y" +#line 368 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5448 "MachineIndependent/glslang_tab.cpp" +#line 5465 "MachineIndependent/glslang_tab.cpp" break; case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */ -#line 370 "MachineIndependent/glslang.y" +#line 371 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 5458 "MachineIndependent/glslang_tab.cpp" +#line 5475 "MachineIndependent/glslang_tab.cpp" break; case 5: /* primary_expression: FLOATCONSTANT */ -#line 375 "MachineIndependent/glslang.y" +#line 376 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 5466 "MachineIndependent/glslang_tab.cpp" +#line 5483 "MachineIndependent/glslang_tab.cpp" break; case 6: /* primary_expression: INTCONSTANT */ -#line 378 "MachineIndependent/glslang.y" +#line 379 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 5474 "MachineIndependent/glslang_tab.cpp" +#line 5491 "MachineIndependent/glslang_tab.cpp" break; case 7: /* primary_expression: UINTCONSTANT */ -#line 381 "MachineIndependent/glslang.y" +#line 382 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 5483 "MachineIndependent/glslang_tab.cpp" +#line 5500 "MachineIndependent/glslang_tab.cpp" break; case 8: /* primary_expression: BOOLCONSTANT */ -#line 385 "MachineIndependent/glslang.y" +#line 386 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 5491 "MachineIndependent/glslang_tab.cpp" +#line 5508 "MachineIndependent/glslang_tab.cpp" break; case 9: /* primary_expression: STRING_LITERAL */ -#line 388 "MachineIndependent/glslang.y" +#line 389 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true); } -#line 5499 "MachineIndependent/glslang_tab.cpp" +#line 5516 "MachineIndependent/glslang_tab.cpp" break; case 10: /* primary_expression: INT32CONSTANT */ -#line 391 "MachineIndependent/glslang.y" +#line 392 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 5508 "MachineIndependent/glslang_tab.cpp" +#line 5525 "MachineIndependent/glslang_tab.cpp" break; case 11: /* primary_expression: UINT32CONSTANT */ -#line 395 "MachineIndependent/glslang.y" +#line 396 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 5517 "MachineIndependent/glslang_tab.cpp" +#line 5534 "MachineIndependent/glslang_tab.cpp" break; case 12: /* primary_expression: INT64CONSTANT */ -#line 399 "MachineIndependent/glslang.y" +#line 400 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); } -#line 5526 "MachineIndependent/glslang_tab.cpp" +#line 5543 "MachineIndependent/glslang_tab.cpp" break; case 13: /* primary_expression: UINT64CONSTANT */ -#line 403 "MachineIndependent/glslang.y" +#line 404 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); } -#line 5535 "MachineIndependent/glslang_tab.cpp" +#line 5552 "MachineIndependent/glslang_tab.cpp" break; case 14: /* primary_expression: INT16CONSTANT */ -#line 407 "MachineIndependent/glslang.y" +#line 408 "MachineIndependent/glslang.y" { parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 5544 "MachineIndependent/glslang_tab.cpp" +#line 5561 "MachineIndependent/glslang_tab.cpp" break; case 15: /* primary_expression: UINT16CONSTANT */ -#line 411 "MachineIndependent/glslang.y" +#line 412 "MachineIndependent/glslang.y" { parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 5553 "MachineIndependent/glslang_tab.cpp" +#line 5570 "MachineIndependent/glslang_tab.cpp" break; case 16: /* primary_expression: DOUBLECONSTANT */ -#line 415 "MachineIndependent/glslang.y" +#line 416 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal"); if (! parseContext.symbolTable.atBuiltInLevel()) parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); } -#line 5564 "MachineIndependent/glslang_tab.cpp" +#line 5581 "MachineIndependent/glslang_tab.cpp" break; case 17: /* primary_expression: FLOAT16CONSTANT */ -#line 421 "MachineIndependent/glslang.y" +#line 422 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); } -#line 5573 "MachineIndependent/glslang_tab.cpp" +#line 5590 "MachineIndependent/glslang_tab.cpp" break; case 18: /* postfix_expression: primary_expression */ -#line 428 "MachineIndependent/glslang.y" +#line 429 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5581 "MachineIndependent/glslang_tab.cpp" +#line 5598 "MachineIndependent/glslang_tab.cpp" break; case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */ -#line 431 "MachineIndependent/glslang.y" +#line 432 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } -#line 5589 "MachineIndependent/glslang_tab.cpp" +#line 5606 "MachineIndependent/glslang_tab.cpp" break; case 20: /* postfix_expression: function_call */ -#line 434 "MachineIndependent/glslang.y" +#line 435 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5597 "MachineIndependent/glslang_tab.cpp" +#line 5614 "MachineIndependent/glslang_tab.cpp" break; case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */ -#line 437 "MachineIndependent/glslang.y" +#line 438 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } -#line 5605 "MachineIndependent/glslang_tab.cpp" +#line 5622 "MachineIndependent/glslang_tab.cpp" break; case 22: /* postfix_expression: postfix_expression INC_OP */ -#line 440 "MachineIndependent/glslang.y" +#line 441 "MachineIndependent/glslang.y" { parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); } -#line 5615 "MachineIndependent/glslang_tab.cpp" +#line 5632 "MachineIndependent/glslang_tab.cpp" break; case 23: /* postfix_expression: postfix_expression DEC_OP */ -#line 445 "MachineIndependent/glslang.y" +#line 446 "MachineIndependent/glslang.y" { parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); } -#line 5625 "MachineIndependent/glslang_tab.cpp" +#line 5642 "MachineIndependent/glslang_tab.cpp" break; case 24: /* integer_expression: expression */ -#line 453 "MachineIndependent/glslang.y" +#line 454 "MachineIndependent/glslang.y" { - parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); + parseContext.arrayIndexCheck((yyvsp[0].interm.intermTypedNode), "[]"); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5634 "MachineIndependent/glslang_tab.cpp" +#line 5651 "MachineIndependent/glslang_tab.cpp" break; case 25: /* function_call: function_call_or_method */ -#line 460 "MachineIndependent/glslang.y" +#line 461 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); delete (yyvsp[0].interm).function; } -#line 5643 "MachineIndependent/glslang_tab.cpp" +#line 5660 "MachineIndependent/glslang_tab.cpp" break; case 26: /* function_call_or_method: function_call_generic */ -#line 467 "MachineIndependent/glslang.y" +#line 468 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); } -#line 5651 "MachineIndependent/glslang_tab.cpp" +#line 5668 "MachineIndependent/glslang_tab.cpp" break; case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */ -#line 473 "MachineIndependent/glslang.y" +#line 474 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 5660 "MachineIndependent/glslang_tab.cpp" +#line 5677 "MachineIndependent/glslang_tab.cpp" break; case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */ -#line 477 "MachineIndependent/glslang.y" +#line 478 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 5669 "MachineIndependent/glslang_tab.cpp" +#line 5686 "MachineIndependent/glslang_tab.cpp" break; case 29: /* function_call_header_no_parameters: function_call_header VOID */ -#line 484 "MachineIndependent/glslang.y" +#line 485 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-1].interm); } -#line 5677 "MachineIndependent/glslang_tab.cpp" +#line 5694 "MachineIndependent/glslang_tab.cpp" break; case 30: /* function_call_header_no_parameters: function_call_header */ -#line 487 "MachineIndependent/glslang.y" +#line 488 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); } -#line 5685 "MachineIndependent/glslang_tab.cpp" +#line 5702 "MachineIndependent/glslang_tab.cpp" break; case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */ -#line 493 "MachineIndependent/glslang.y" +#line 494 "MachineIndependent/glslang.y" { if (parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed @@ -5704,11 +5721,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); } } -#line 5708 "MachineIndependent/glslang_tab.cpp" +#line 5725 "MachineIndependent/glslang_tab.cpp" break; case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */ -#line 511 "MachineIndependent/glslang.y" +#line 512 "MachineIndependent/glslang.y" { if (parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed @@ -5731,29 +5748,29 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); } } -#line 5735 "MachineIndependent/glslang_tab.cpp" +#line 5752 "MachineIndependent/glslang_tab.cpp" break; case 33: /* function_call_header: function_identifier LEFT_PAREN */ -#line 536 "MachineIndependent/glslang.y" +#line 537 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-1].interm); } -#line 5743 "MachineIndependent/glslang_tab.cpp" +#line 5760 "MachineIndependent/glslang_tab.cpp" break; case 34: /* function_identifier: type_specifier */ -#line 544 "MachineIndependent/glslang.y" +#line 545 "MachineIndependent/glslang.y" { // Constructor (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 5753 "MachineIndependent/glslang_tab.cpp" +#line 5770 "MachineIndependent/glslang_tab.cpp" break; case 35: /* function_identifier: postfix_expression */ -#line 549 "MachineIndependent/glslang.y" +#line 550 "MachineIndependent/glslang.y" { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -5763,7 +5780,7 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); if (method) { - (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); + (yyval.interm).function = new TFunction(&method->getMethodName(), method->getType(), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); @@ -5781,50 +5798,50 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull); } } -#line 5785 "MachineIndependent/glslang_tab.cpp" +#line 5802 "MachineIndependent/glslang_tab.cpp" break; case 36: /* function_identifier: non_uniform_qualifier */ -#line 576 "MachineIndependent/glslang.y" +#line 577 "MachineIndependent/glslang.y" { // Constructor (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 5795 "MachineIndependent/glslang_tab.cpp" +#line 5812 "MachineIndependent/glslang_tab.cpp" break; case 37: /* unary_expression: postfix_expression */ -#line 584 "MachineIndependent/glslang.y" +#line 585 "MachineIndependent/glslang.y" { parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 5806 "MachineIndependent/glslang_tab.cpp" +#line 5823 "MachineIndependent/glslang_tab.cpp" break; case 38: /* unary_expression: INC_OP unary_expression */ -#line 590 "MachineIndependent/glslang.y" +#line 591 "MachineIndependent/glslang.y" { parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); } -#line 5815 "MachineIndependent/glslang_tab.cpp" +#line 5832 "MachineIndependent/glslang_tab.cpp" break; case 39: /* unary_expression: DEC_OP unary_expression */ -#line 594 "MachineIndependent/glslang.y" +#line 595 "MachineIndependent/glslang.y" { parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); } -#line 5824 "MachineIndependent/glslang_tab.cpp" +#line 5841 "MachineIndependent/glslang_tab.cpp" break; case 40: /* unary_expression: unary_operator unary_expression */ -#line 598 "MachineIndependent/glslang.y" +#line 599 "MachineIndependent/glslang.y" { if ((yyvsp[-1].interm).op != EOpNull) { char errorOp[2] = {0, 0}; @@ -5841,179 +5858,179 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 5845 "MachineIndependent/glslang_tab.cpp" +#line 5862 "MachineIndependent/glslang_tab.cpp" break; case 41: /* unary_operator: PLUS */ -#line 618 "MachineIndependent/glslang.y" +#line 619 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 5851 "MachineIndependent/glslang_tab.cpp" +#line 5868 "MachineIndependent/glslang_tab.cpp" break; case 42: /* unary_operator: DASH */ -#line 619 "MachineIndependent/glslang.y" +#line 620 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 5857 "MachineIndependent/glslang_tab.cpp" +#line 5874 "MachineIndependent/glslang_tab.cpp" break; case 43: /* unary_operator: BANG */ -#line 620 "MachineIndependent/glslang.y" +#line 621 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 5863 "MachineIndependent/glslang_tab.cpp" +#line 5880 "MachineIndependent/glslang_tab.cpp" break; case 44: /* unary_operator: TILDE */ -#line 621 "MachineIndependent/glslang.y" +#line 622 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 5870 "MachineIndependent/glslang_tab.cpp" +#line 5887 "MachineIndependent/glslang_tab.cpp" break; case 45: /* multiplicative_expression: unary_expression */ -#line 627 "MachineIndependent/glslang.y" +#line 628 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5876 "MachineIndependent/glslang_tab.cpp" +#line 5893 "MachineIndependent/glslang_tab.cpp" break; case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */ -#line 628 "MachineIndependent/glslang.y" +#line 629 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5886 "MachineIndependent/glslang_tab.cpp" +#line 5903 "MachineIndependent/glslang_tab.cpp" break; case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */ -#line 633 "MachineIndependent/glslang.y" +#line 634 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5896 "MachineIndependent/glslang_tab.cpp" +#line 5913 "MachineIndependent/glslang_tab.cpp" break; case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */ -#line 638 "MachineIndependent/glslang.y" +#line 639 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5907 "MachineIndependent/glslang_tab.cpp" +#line 5924 "MachineIndependent/glslang_tab.cpp" break; case 49: /* additive_expression: multiplicative_expression */ -#line 647 "MachineIndependent/glslang.y" +#line 648 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5913 "MachineIndependent/glslang_tab.cpp" +#line 5930 "MachineIndependent/glslang_tab.cpp" break; case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */ -#line 648 "MachineIndependent/glslang.y" +#line 649 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5923 "MachineIndependent/glslang_tab.cpp" +#line 5940 "MachineIndependent/glslang_tab.cpp" break; case 51: /* additive_expression: additive_expression DASH multiplicative_expression */ -#line 653 "MachineIndependent/glslang.y" +#line 654 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5933 "MachineIndependent/glslang_tab.cpp" +#line 5950 "MachineIndependent/glslang_tab.cpp" break; case 52: /* shift_expression: additive_expression */ -#line 661 "MachineIndependent/glslang.y" +#line 662 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5939 "MachineIndependent/glslang_tab.cpp" +#line 5956 "MachineIndependent/glslang_tab.cpp" break; case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */ -#line 662 "MachineIndependent/glslang.y" +#line 663 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5950 "MachineIndependent/glslang_tab.cpp" +#line 5967 "MachineIndependent/glslang_tab.cpp" break; case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */ -#line 668 "MachineIndependent/glslang.y" +#line 669 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 5961 "MachineIndependent/glslang_tab.cpp" +#line 5978 "MachineIndependent/glslang_tab.cpp" break; case 55: /* relational_expression: shift_expression */ -#line 677 "MachineIndependent/glslang.y" +#line 678 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 5967 "MachineIndependent/glslang_tab.cpp" +#line 5984 "MachineIndependent/glslang_tab.cpp" break; case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */ -#line 678 "MachineIndependent/glslang.y" +#line 679 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 5977 "MachineIndependent/glslang_tab.cpp" +#line 5994 "MachineIndependent/glslang_tab.cpp" break; case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */ -#line 683 "MachineIndependent/glslang.y" +#line 684 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 5987 "MachineIndependent/glslang_tab.cpp" +#line 6004 "MachineIndependent/glslang_tab.cpp" break; case 58: /* relational_expression: relational_expression LE_OP shift_expression */ -#line 688 "MachineIndependent/glslang.y" +#line 689 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 5997 "MachineIndependent/glslang_tab.cpp" +#line 6014 "MachineIndependent/glslang_tab.cpp" break; case 59: /* relational_expression: relational_expression GE_OP shift_expression */ -#line 693 "MachineIndependent/glslang.y" +#line 694 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 6007 "MachineIndependent/glslang_tab.cpp" +#line 6024 "MachineIndependent/glslang_tab.cpp" break; case 60: /* equality_expression: relational_expression */ -#line 701 "MachineIndependent/glslang.y" +#line 702 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6013 "MachineIndependent/glslang_tab.cpp" +#line 6030 "MachineIndependent/glslang_tab.cpp" break; case 61: /* equality_expression: equality_expression EQ_OP relational_expression */ -#line 702 "MachineIndependent/glslang.y" +#line 703 "MachineIndependent/glslang.y" { parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); @@ -6023,11 +6040,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 6027 "MachineIndependent/glslang_tab.cpp" +#line 6044 "MachineIndependent/glslang_tab.cpp" break; case 62: /* equality_expression: equality_expression NE_OP relational_expression */ -#line 711 "MachineIndependent/glslang.y" +#line 712 "MachineIndependent/glslang.y" { parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); @@ -6037,124 +6054,124 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 6041 "MachineIndependent/glslang_tab.cpp" +#line 6058 "MachineIndependent/glslang_tab.cpp" break; case 63: /* and_expression: equality_expression */ -#line 723 "MachineIndependent/glslang.y" +#line 724 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6047 "MachineIndependent/glslang_tab.cpp" +#line 6064 "MachineIndependent/glslang_tab.cpp" break; case 64: /* and_expression: and_expression AMPERSAND equality_expression */ -#line 724 "MachineIndependent/glslang.y" +#line 725 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 6058 "MachineIndependent/glslang_tab.cpp" +#line 6075 "MachineIndependent/glslang_tab.cpp" break; case 65: /* exclusive_or_expression: and_expression */ -#line 733 "MachineIndependent/glslang.y" +#line 734 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6064 "MachineIndependent/glslang_tab.cpp" +#line 6081 "MachineIndependent/glslang_tab.cpp" break; case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */ -#line 734 "MachineIndependent/glslang.y" +#line 735 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 6075 "MachineIndependent/glslang_tab.cpp" +#line 6092 "MachineIndependent/glslang_tab.cpp" break; case 67: /* inclusive_or_expression: exclusive_or_expression */ -#line 743 "MachineIndependent/glslang.y" +#line 744 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6081 "MachineIndependent/glslang_tab.cpp" +#line 6098 "MachineIndependent/glslang_tab.cpp" break; case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */ -#line 744 "MachineIndependent/glslang.y" +#line 745 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 6092 "MachineIndependent/glslang_tab.cpp" +#line 6109 "MachineIndependent/glslang_tab.cpp" break; case 69: /* logical_and_expression: inclusive_or_expression */ -#line 753 "MachineIndependent/glslang.y" +#line 754 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6098 "MachineIndependent/glslang_tab.cpp" +#line 6115 "MachineIndependent/glslang_tab.cpp" break; case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */ -#line 754 "MachineIndependent/glslang.y" +#line 755 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 6108 "MachineIndependent/glslang_tab.cpp" +#line 6125 "MachineIndependent/glslang_tab.cpp" break; case 71: /* logical_xor_expression: logical_and_expression */ -#line 762 "MachineIndependent/glslang.y" +#line 763 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6114 "MachineIndependent/glslang_tab.cpp" +#line 6131 "MachineIndependent/glslang_tab.cpp" break; case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */ -#line 763 "MachineIndependent/glslang.y" +#line 764 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 6124 "MachineIndependent/glslang_tab.cpp" +#line 6141 "MachineIndependent/glslang_tab.cpp" break; case 73: /* logical_or_expression: logical_xor_expression */ -#line 771 "MachineIndependent/glslang.y" +#line 772 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6130 "MachineIndependent/glslang_tab.cpp" +#line 6147 "MachineIndependent/glslang_tab.cpp" break; case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */ -#line 772 "MachineIndependent/glslang.y" +#line 773 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 6140 "MachineIndependent/glslang_tab.cpp" +#line 6157 "MachineIndependent/glslang_tab.cpp" break; case 75: /* conditional_expression: logical_or_expression */ -#line 780 "MachineIndependent/glslang.y" +#line 781 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6146 "MachineIndependent/glslang_tab.cpp" +#line 6163 "MachineIndependent/glslang_tab.cpp" break; case 76: /* $@1: %empty */ -#line 781 "MachineIndependent/glslang.y" +#line 782 "MachineIndependent/glslang.y" { ++parseContext.controlFlowNestingLevel; } -#line 6154 "MachineIndependent/glslang_tab.cpp" +#line 6171 "MachineIndependent/glslang_tab.cpp" break; case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */ -#line 784 "MachineIndependent/glslang.y" +#line 785 "MachineIndependent/glslang.y" { --parseContext.controlFlowNestingLevel; parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); @@ -6167,17 +6184,17 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 6171 "MachineIndependent/glslang_tab.cpp" +#line 6188 "MachineIndependent/glslang_tab.cpp" break; case 78: /* assignment_expression: conditional_expression */ -#line 799 "MachineIndependent/glslang.y" +#line 800 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6177 "MachineIndependent/glslang_tab.cpp" +#line 6194 "MachineIndependent/glslang_tab.cpp" break; case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */ -#line 800 "MachineIndependent/glslang.y" +#line 801 "MachineIndependent/glslang.y" { parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); @@ -6191,119 +6208,119 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } -#line 6195 "MachineIndependent/glslang_tab.cpp" +#line 6212 "MachineIndependent/glslang_tab.cpp" break; case 80: /* assignment_operator: EQUAL */ -#line 816 "MachineIndependent/glslang.y" +#line 817 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } -#line 6204 "MachineIndependent/glslang_tab.cpp" +#line 6221 "MachineIndependent/glslang_tab.cpp" break; case 81: /* assignment_operator: MUL_ASSIGN */ -#line 820 "MachineIndependent/glslang.y" +#line 821 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } -#line 6213 "MachineIndependent/glslang_tab.cpp" +#line 6230 "MachineIndependent/glslang_tab.cpp" break; case 82: /* assignment_operator: DIV_ASSIGN */ -#line 824 "MachineIndependent/glslang.y" +#line 825 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } -#line 6222 "MachineIndependent/glslang_tab.cpp" +#line 6239 "MachineIndependent/glslang_tab.cpp" break; case 83: /* assignment_operator: MOD_ASSIGN */ -#line 828 "MachineIndependent/glslang.y" +#line 829 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } -#line 6232 "MachineIndependent/glslang_tab.cpp" +#line 6249 "MachineIndependent/glslang_tab.cpp" break; case 84: /* assignment_operator: ADD_ASSIGN */ -#line 833 "MachineIndependent/glslang.y" +#line 834 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } -#line 6241 "MachineIndependent/glslang_tab.cpp" +#line 6258 "MachineIndependent/glslang_tab.cpp" break; case 85: /* assignment_operator: SUB_ASSIGN */ -#line 837 "MachineIndependent/glslang.y" +#line 838 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } -#line 6250 "MachineIndependent/glslang_tab.cpp" +#line 6267 "MachineIndependent/glslang_tab.cpp" break; case 86: /* assignment_operator: LEFT_ASSIGN */ -#line 841 "MachineIndependent/glslang.y" +#line 842 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 6259 "MachineIndependent/glslang_tab.cpp" +#line 6276 "MachineIndependent/glslang_tab.cpp" break; case 87: /* assignment_operator: RIGHT_ASSIGN */ -#line 845 "MachineIndependent/glslang.y" +#line 846 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 6268 "MachineIndependent/glslang_tab.cpp" +#line 6285 "MachineIndependent/glslang_tab.cpp" break; case 88: /* assignment_operator: AND_ASSIGN */ -#line 849 "MachineIndependent/glslang.y" +#line 850 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 6277 "MachineIndependent/glslang_tab.cpp" +#line 6294 "MachineIndependent/glslang_tab.cpp" break; case 89: /* assignment_operator: XOR_ASSIGN */ -#line 853 "MachineIndependent/glslang.y" +#line 854 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 6286 "MachineIndependent/glslang_tab.cpp" +#line 6303 "MachineIndependent/glslang_tab.cpp" break; case 90: /* assignment_operator: OR_ASSIGN */ -#line 857 "MachineIndependent/glslang.y" +#line 858 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 6295 "MachineIndependent/glslang_tab.cpp" +#line 6312 "MachineIndependent/glslang_tab.cpp" break; case 91: /* expression: assignment_expression */ -#line 864 "MachineIndependent/glslang.y" +#line 865 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6303 "MachineIndependent/glslang_tab.cpp" +#line 6320 "MachineIndependent/glslang_tab.cpp" break; case 92: /* expression: expression COMMA assignment_expression */ -#line 867 "MachineIndependent/glslang.y" +#line 868 "MachineIndependent/glslang.y" { parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); @@ -6312,30 +6329,30 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 6316 "MachineIndependent/glslang_tab.cpp" +#line 6333 "MachineIndependent/glslang_tab.cpp" break; case 93: /* constant_expression: conditional_expression */ -#line 878 "MachineIndependent/glslang.y" +#line 879 "MachineIndependent/glslang.y" { parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6325 "MachineIndependent/glslang_tab.cpp" +#line 6342 "MachineIndependent/glslang_tab.cpp" break; case 94: /* declaration: function_prototype SEMICOLON */ -#line 885 "MachineIndependent/glslang.y" +#line 886 "MachineIndependent/glslang.y" { parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 6335 "MachineIndependent/glslang_tab.cpp" +#line 6352 "MachineIndependent/glslang_tab.cpp" break; case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON */ -#line 890 "MachineIndependent/glslang.y" +#line 891 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier"); (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier @@ -6343,31 +6360,31 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 6347 "MachineIndependent/glslang_tab.cpp" +#line 6364 "MachineIndependent/glslang_tab.cpp" break; case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON */ -#line 897 "MachineIndependent/glslang.y" +#line 898 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier"); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier"); (yyval.interm.intermNode) = 0; } -#line 6357 "MachineIndependent/glslang_tab.cpp" +#line 6374 "MachineIndependent/glslang_tab.cpp" break; case 97: /* declaration: init_declarator_list SEMICOLON */ -#line 902 "MachineIndependent/glslang.y" +#line 903 "MachineIndependent/glslang.y" { if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; } -#line 6367 "MachineIndependent/glslang_tab.cpp" +#line 6384 "MachineIndependent/glslang_tab.cpp" break; case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */ -#line 907 "MachineIndependent/glslang.y" +#line 908 "MachineIndependent/glslang.y" { parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope @@ -6375,64 +6392,61 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 6379 "MachineIndependent/glslang_tab.cpp" +#line 6396 "MachineIndependent/glslang_tab.cpp" break; case 99: /* declaration: block_structure SEMICOLON */ -#line 914 "MachineIndependent/glslang.y" +#line 915 "MachineIndependent/glslang.y" { - parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); - (yyval.interm.intermNode) = 0; + (yyval.interm.intermNode) = parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); } -#line 6388 "MachineIndependent/glslang_tab.cpp" +#line 6404 "MachineIndependent/glslang_tab.cpp" break; case 100: /* declaration: block_structure IDENTIFIER SEMICOLON */ #line 918 "MachineIndependent/glslang.y" { - parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); - (yyval.interm.intermNode) = 0; + (yyval.interm.intermNode) = parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); } -#line 6397 "MachineIndependent/glslang_tab.cpp" +#line 6412 "MachineIndependent/glslang_tab.cpp" break; case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */ -#line 922 "MachineIndependent/glslang.y" +#line 921 "MachineIndependent/glslang.y" { - parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); - (yyval.interm.intermNode) = 0; + (yyval.interm.intermNode) = parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); } -#line 6406 "MachineIndependent/glslang_tab.cpp" +#line 6420 "MachineIndependent/glslang_tab.cpp" break; case 102: /* declaration: type_qualifier SEMICOLON */ -#line 926 "MachineIndependent/glslang.y" +#line 924 "MachineIndependent/glslang.y" { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } -#line 6416 "MachineIndependent/glslang_tab.cpp" +#line 6430 "MachineIndependent/glslang_tab.cpp" break; case 103: /* declaration: type_qualifier identifier_list SEMICOLON */ -#line 931 "MachineIndependent/glslang.y" +#line 929 "MachineIndependent/glslang.y" { parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } -#line 6426 "MachineIndependent/glslang_tab.cpp" +#line 6440 "MachineIndependent/glslang_tab.cpp" break; case 104: /* $@2: %empty */ -#line 939 "MachineIndependent/glslang.y" +#line 937 "MachineIndependent/glslang.y" { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 6432 "MachineIndependent/glslang_tab.cpp" +#line 6446 "MachineIndependent/glslang_tab.cpp" break; case 105: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */ -#line 939 "MachineIndependent/glslang.y" +#line 937 "MachineIndependent/glslang.y" { --parseContext.blockNestingLevel; parseContext.blockName = (yyvsp[-4].lex).string; @@ -6442,39 +6456,39 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).loc = (yyvsp[-5].interm.type).loc; (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } -#line 6446 "MachineIndependent/glslang_tab.cpp" +#line 6460 "MachineIndependent/glslang_tab.cpp" break; case 106: /* identifier_list: IDENTIFIER */ -#line 950 "MachineIndependent/glslang.y" +#line 948 "MachineIndependent/glslang.y" { (yyval.interm.identifierList) = new TIdentifierList; (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 6455 "MachineIndependent/glslang_tab.cpp" +#line 6469 "MachineIndependent/glslang_tab.cpp" break; case 107: /* identifier_list: identifier_list COMMA IDENTIFIER */ -#line 954 "MachineIndependent/glslang.y" +#line 952 "MachineIndependent/glslang.y" { (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 6464 "MachineIndependent/glslang_tab.cpp" +#line 6478 "MachineIndependent/glslang_tab.cpp" break; case 108: /* function_prototype: function_declarator RIGHT_PAREN */ -#line 961 "MachineIndependent/glslang.y" +#line 959 "MachineIndependent/glslang.y" { (yyval.interm).function = (yyvsp[-1].interm.function); if (parseContext.compileOnly) (yyval.interm).function->setExport(); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 6474 "MachineIndependent/glslang_tab.cpp" +#line 6488 "MachineIndependent/glslang_tab.cpp" break; case 109: /* function_prototype: function_declarator RIGHT_PAREN attribute */ -#line 966 "MachineIndependent/glslang.y" +#line 964 "MachineIndependent/glslang.y" { (yyval.interm).function = (yyvsp[-2].interm.function); if (parseContext.compileOnly) (yyval.interm).function->setExport(); @@ -6483,11 +6497,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.requireExtensions((yyvsp[-1].lex).loc, 2, extensions, "attribute"); parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes)); } -#line 6487 "MachineIndependent/glslang_tab.cpp" +#line 6501 "MachineIndependent/glslang_tab.cpp" break; case 110: /* function_prototype: attribute function_declarator RIGHT_PAREN */ -#line 974 "MachineIndependent/glslang.y" +#line 972 "MachineIndependent/glslang.y" { (yyval.interm).function = (yyvsp[-1].interm.function); if (parseContext.compileOnly) (yyval.interm).function->setExport(); @@ -6496,11 +6510,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.requireExtensions((yyvsp[0].lex).loc, 2, extensions, "attribute"); parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes)); } -#line 6500 "MachineIndependent/glslang_tab.cpp" +#line 6514 "MachineIndependent/glslang_tab.cpp" break; case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute */ -#line 982 "MachineIndependent/glslang.y" +#line 980 "MachineIndependent/glslang.y" { (yyval.interm).function = (yyvsp[-2].interm.function); if (parseContext.compileOnly) (yyval.interm).function->setExport(); @@ -6510,27 +6524,27 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes)); parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes)); } -#line 6514 "MachineIndependent/glslang_tab.cpp" +#line 6528 "MachineIndependent/glslang_tab.cpp" break; case 112: /* function_declarator: function_header */ -#line 994 "MachineIndependent/glslang.y" +#line 992 "MachineIndependent/glslang.y" { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 6522 "MachineIndependent/glslang_tab.cpp" +#line 6536 "MachineIndependent/glslang_tab.cpp" break; case 113: /* function_declarator: function_header_with_parameters */ -#line 997 "MachineIndependent/glslang.y" +#line 995 "MachineIndependent/glslang.y" { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 6530 "MachineIndependent/glslang_tab.cpp" +#line 6544 "MachineIndependent/glslang_tab.cpp" break; case 114: /* function_header_with_parameters: function_header parameter_declaration */ -#line 1004 "MachineIndependent/glslang.y" +#line 1002 "MachineIndependent/glslang.y" { // Add the parameter (yyval.interm.function) = (yyvsp[-1].interm.function); @@ -6544,11 +6558,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); else delete (yyvsp[0].interm).param.type; } -#line 6548 "MachineIndependent/glslang_tab.cpp" +#line 6562 "MachineIndependent/glslang_tab.cpp" break; case 115: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */ -#line 1017 "MachineIndependent/glslang.y" +#line 1015 "MachineIndependent/glslang.y" { // // Only first parameter of one-parameter functions can be void @@ -6569,20 +6583,20 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-2].interm.function), (yyvsp[0].interm).param); } } -#line 6573 "MachineIndependent/glslang_tab.cpp" +#line 6587 "MachineIndependent/glslang_tab.cpp" break; case 116: /* function_header_with_parameters: function_header_with_parameters COMMA DOT DOT DOT */ -#line 1037 "MachineIndependent/glslang.y" +#line 1035 "MachineIndependent/glslang.y" { (yyval.interm.function) = (yyvsp[-4].interm.function); parseContext.makeVariadic((yyvsp[-4].interm.function), (yyvsp[-2].lex).loc); } -#line 6582 "MachineIndependent/glslang_tab.cpp" +#line 6596 "MachineIndependent/glslang_tab.cpp" break; case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */ -#line 1044 "MachineIndependent/glslang.y" +#line 1042 "MachineIndependent/glslang.y" { if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", @@ -6602,11 +6616,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } -#line 6606 "MachineIndependent/glslang_tab.cpp" +#line 6620 "MachineIndependent/glslang_tab.cpp" break; case 118: /* parameter_declarator: type_specifier IDENTIFIER */ -#line 1067 "MachineIndependent/glslang.y" +#line 1065 "MachineIndependent/glslang.y" { if ((yyvsp[-1].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -6622,11 +6636,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } -#line 6626 "MachineIndependent/glslang_tab.cpp" +#line 6640 "MachineIndependent/glslang_tab.cpp" break; case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */ -#line 1082 "MachineIndependent/glslang.y" +#line 1080 "MachineIndependent/glslang.y" { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -6646,21 +6660,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } -#line 6650 "MachineIndependent/glslang_tab.cpp" +#line 6664 "MachineIndependent/glslang_tab.cpp" break; case 120: /* parameter_declarator: type_specifier IDENTIFIER EQUAL initializer */ -#line 1101 "MachineIndependent/glslang.y" +#line 1099 "MachineIndependent/glslang.y" { TParameter param = parseContext.getParamWithDefault((yyvsp[-3].interm.type), (yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).param = param; } -#line 6660 "MachineIndependent/glslang_tab.cpp" +#line 6674 "MachineIndependent/glslang_tab.cpp" break; case 121: /* parameter_declaration: type_qualifier parameter_declarator */ -#line 1112 "MachineIndependent/glslang.y" +#line 1110 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) @@ -6672,11 +6686,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 6676 "MachineIndependent/glslang_tab.cpp" +#line 6690 "MachineIndependent/glslang_tab.cpp" break; case 122: /* parameter_declaration: parameter_declarator */ -#line 1123 "MachineIndependent/glslang.y" +#line 1121 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); @@ -6684,11 +6698,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->hasTypeParameter()); } -#line 6688 "MachineIndependent/glslang_tab.cpp" +#line 6702 "MachineIndependent/glslang_tab.cpp" break; case 123: /* parameter_declaration: type_qualifier parameter_type_specifier */ -#line 1133 "MachineIndependent/glslang.y" +#line 1131 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) @@ -6699,11 +6713,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 6703 "MachineIndependent/glslang_tab.cpp" +#line 6717 "MachineIndependent/glslang_tab.cpp" break; case 124: /* parameter_declaration: parameter_type_specifier */ -#line 1143 "MachineIndependent/glslang.y" +#line 1141 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); @@ -6711,64 +6725,66 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->hasTypeParameter()); } -#line 6715 "MachineIndependent/glslang_tab.cpp" +#line 6729 "MachineIndependent/glslang_tab.cpp" break; case 125: /* parameter_type_specifier: type_specifier */ -#line 1153 "MachineIndependent/glslang.y" +#line 1151 "MachineIndependent/glslang.y" { TParameter param = { 0, new TType((yyvsp[0].interm.type)), {} }; (yyval.interm).param = param; if ((yyvsp[0].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } -#line 6726 "MachineIndependent/glslang_tab.cpp" +#line 6740 "MachineIndependent/glslang_tab.cpp" break; case 126: /* init_declarator_list: single_declaration */ -#line 1162 "MachineIndependent/glslang.y" +#line 1160 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[0].interm); } -#line 6734 "MachineIndependent/glslang_tab.cpp" +#line 6748 "MachineIndependent/glslang_tab.cpp" break; case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */ -#line 1165 "MachineIndependent/glslang.y" +#line 1163 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-2].interm); - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, declNode, (yyvsp[0].lex).loc); } -#line 6743 "MachineIndependent/glslang_tab.cpp" +#line 6758 "MachineIndependent/glslang_tab.cpp" break; case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */ -#line 1169 "MachineIndependent/glslang.y" +#line 1168 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-3].interm); - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-3].interm).intermNode, declNode, (yyvsp[-1].lex).loc); } -#line 6752 "MachineIndependent/glslang_tab.cpp" +#line 6768 "MachineIndependent/glslang_tab.cpp" break; case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */ #line 1173 "MachineIndependent/glslang.y" { (yyval.interm).type = (yyvsp[-5].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, declNode, (yyvsp[-1].lex).loc); } -#line 6762 "MachineIndependent/glslang_tab.cpp" +#line 6778 "MachineIndependent/glslang_tab.cpp" break; case 130: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */ #line 1178 "MachineIndependent/glslang.y" { (yyval.interm).type = (yyvsp[-4].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, declNode, (yyvsp[-1].lex).loc); } -#line 6772 "MachineIndependent/glslang_tab.cpp" +#line 6788 "MachineIndependent/glslang_tab.cpp" break; case 131: /* single_declaration: fully_specified_type */ @@ -6778,51 +6794,52 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 6782 "MachineIndependent/glslang_tab.cpp" +#line 6798 "MachineIndependent/glslang_tab.cpp" break; case 132: /* single_declaration: fully_specified_type IDENTIFIER */ #line 1191 "MachineIndependent/glslang.y" { (yyval.interm).type = (yyvsp[-1].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[0].lex).loc); + } -#line 6792 "MachineIndependent/glslang_tab.cpp" +#line 6809 "MachineIndependent/glslang_tab.cpp" break; case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */ -#line 1196 "MachineIndependent/glslang.y" +#line 1197 "MachineIndependent/glslang.y" { (yyval.interm).type = (yyvsp[-2].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[-1].lex).loc); } -#line 6802 "MachineIndependent/glslang_tab.cpp" +#line 6819 "MachineIndependent/glslang_tab.cpp" break; case 134: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */ -#line 1201 "MachineIndependent/glslang.y" +#line 1202 "MachineIndependent/glslang.y" { (yyval.interm).type = (yyvsp[-4].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[-3].lex).loc); } -#line 6812 "MachineIndependent/glslang_tab.cpp" +#line 6829 "MachineIndependent/glslang_tab.cpp" break; case 135: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */ -#line 1206 "MachineIndependent/glslang.y" +#line 1207 "MachineIndependent/glslang.y" { (yyval.interm).type = (yyvsp[-3].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + TIntermNode* declNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[-2].lex).loc); } -#line 6822 "MachineIndependent/glslang_tab.cpp" +#line 6839 "MachineIndependent/glslang_tab.cpp" break; case 136: /* fully_specified_type: type_specifier */ -#line 1215 "MachineIndependent/glslang.y" +#line 1216 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); @@ -6833,11 +6850,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier, (yyval.interm.type).hasTypeParameter()); } -#line 6837 "MachineIndependent/glslang_tab.cpp" +#line 6854 "MachineIndependent/glslang_tab.cpp" break; case 137: /* fully_specified_type: type_qualifier type_specifier */ -#line 1225 "MachineIndependent/glslang.y" +#line 1226 "MachineIndependent/glslang.y" { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, false, &(yyvsp[0].interm.type)); parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); @@ -6862,22 +6879,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 6866 "MachineIndependent/glslang_tab.cpp" +#line 6883 "MachineIndependent/glslang_tab.cpp" break; case 138: /* invariant_qualifier: INVARIANT */ -#line 1252 "MachineIndependent/glslang.y" +#line 1253 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } -#line 6877 "MachineIndependent/glslang_tab.cpp" +#line 6894 "MachineIndependent/glslang_tab.cpp" break; case 139: /* interpolation_qualifier: SMOOTH */ -#line 1261 "MachineIndependent/glslang.y" +#line 1262 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); @@ -6885,11 +6902,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } -#line 6889 "MachineIndependent/glslang_tab.cpp" +#line 6906 "MachineIndependent/glslang_tab.cpp" break; case 140: /* interpolation_qualifier: FLAT */ -#line 1268 "MachineIndependent/glslang.y" +#line 1269 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); @@ -6897,11 +6914,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } -#line 6901 "MachineIndependent/glslang_tab.cpp" +#line 6918 "MachineIndependent/glslang_tab.cpp" break; case 141: /* interpolation_qualifier: NOPERSPECTIVE */ -#line 1275 "MachineIndependent/glslang.y" +#line 1276 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective"); @@ -6909,11 +6926,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nopersp = true; } -#line 6913 "MachineIndependent/glslang_tab.cpp" +#line 6930 "MachineIndependent/glslang_tab.cpp" break; case 142: /* interpolation_qualifier: EXPLICITINTERPAMD */ -#line 1282 "MachineIndependent/glslang.y" +#line 1283 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); @@ -6921,11 +6938,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.explicitInterp = true; } -#line 6925 "MachineIndependent/glslang_tab.cpp" +#line 6942 "MachineIndependent/glslang_tab.cpp" break; case 143: /* interpolation_qualifier: PERVERTEXNV */ -#line 1289 "MachineIndependent/glslang.y" +#line 1290 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric"); @@ -6934,11 +6951,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.pervertexNV = true; } -#line 6938 "MachineIndependent/glslang_tab.cpp" +#line 6955 "MachineIndependent/glslang_tab.cpp" break; case 144: /* interpolation_qualifier: PERVERTEXEXT */ -#line 1297 "MachineIndependent/glslang.y" +#line 1298 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexEXT"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric"); @@ -6947,11 +6964,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.pervertexEXT = true; } -#line 6951 "MachineIndependent/glslang_tab.cpp" +#line 6968 "MachineIndependent/glslang_tab.cpp" break; case 145: /* interpolation_qualifier: PERPRIMITIVENV */ -#line 1305 "MachineIndependent/glslang.y" +#line 1306 "MachineIndependent/glslang.y" { // No need for profile version or extension check. Shader stage already checks both. parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV"); @@ -6962,11 +6979,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perPrimitiveNV = true; } -#line 6966 "MachineIndependent/glslang_tab.cpp" +#line 6983 "MachineIndependent/glslang_tab.cpp" break; case 146: /* interpolation_qualifier: PERPRIMITIVEEXT */ -#line 1315 "MachineIndependent/glslang.y" +#line 1316 "MachineIndependent/glslang.y" { // No need for profile version or extension check. Shader stage already checks both. parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveEXT"); @@ -6977,11 +6994,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perPrimitiveNV = true; } -#line 6981 "MachineIndependent/glslang_tab.cpp" +#line 6998 "MachineIndependent/glslang_tab.cpp" break; case 147: /* interpolation_qualifier: PERVIEWNV */ -#line 1325 "MachineIndependent/glslang.y" +#line 1326 "MachineIndependent/glslang.y" { // No need for profile version or extension check. Shader stage already checks both. parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV"); @@ -6989,11 +7006,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perViewNV = true; } -#line 6993 "MachineIndependent/glslang_tab.cpp" +#line 7010 "MachineIndependent/glslang_tab.cpp" break; case 148: /* interpolation_qualifier: PERTASKNV */ -#line 1332 "MachineIndependent/glslang.y" +#line 1333 "MachineIndependent/glslang.y" { // No need for profile version or extension check. Shader stage already checks both. parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV"); @@ -7001,84 +7018,84 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.perTaskNV = true; } -#line 7005 "MachineIndependent/glslang_tab.cpp" +#line 7022 "MachineIndependent/glslang_tab.cpp" break; case 149: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */ -#line 1342 "MachineIndependent/glslang.y" +#line 1343 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[-1].interm.type); } -#line 7013 "MachineIndependent/glslang_tab.cpp" +#line 7030 "MachineIndependent/glslang_tab.cpp" break; case 150: /* layout_qualifier_id_list: layout_qualifier_id */ -#line 1348 "MachineIndependent/glslang.y" +#line 1349 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7021 "MachineIndependent/glslang_tab.cpp" +#line 7038 "MachineIndependent/glslang_tab.cpp" break; case 151: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */ -#line 1351 "MachineIndependent/glslang.y" +#line 1352 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[-2].interm.type); (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 7031 "MachineIndependent/glslang_tab.cpp" +#line 7048 "MachineIndependent/glslang_tab.cpp" break; case 152: /* layout_qualifier_id: IDENTIFIER */ -#line 1358 "MachineIndependent/glslang.y" +#line 1359 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } -#line 7040 "MachineIndependent/glslang_tab.cpp" +#line 7057 "MachineIndependent/glslang_tab.cpp" break; case 153: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */ -#line 1362 "MachineIndependent/glslang.y" +#line 1363 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-2].lex).loc); parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } -#line 7049 "MachineIndependent/glslang_tab.cpp" +#line 7066 "MachineIndependent/glslang_tab.cpp" break; case 154: /* layout_qualifier_id: SHARED */ -#line 1366 "MachineIndependent/glslang.y" +#line 1367 "MachineIndependent/glslang.y" { // because "shared" is both an identifier and a keyword (yyval.interm.type).init((yyvsp[0].lex).loc); TString strShared("shared"); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } -#line 7059 "MachineIndependent/glslang_tab.cpp" +#line 7076 "MachineIndependent/glslang_tab.cpp" break; case 155: /* precise_qualifier: PRECISE */ -#line 1374 "MachineIndependent/glslang.y" +#line 1375 "MachineIndependent/glslang.y" { parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.noContraction = true; } -#line 7070 "MachineIndependent/glslang_tab.cpp" +#line 7087 "MachineIndependent/glslang_tab.cpp" break; case 156: /* type_qualifier: single_type_qualifier */ -#line 1383 "MachineIndependent/glslang.y" +#line 1384 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7078 "MachineIndependent/glslang_tab.cpp" +#line 7095 "MachineIndependent/glslang_tab.cpp" break; case 157: /* type_qualifier: type_qualifier single_type_qualifier */ -#line 1386 "MachineIndependent/glslang.y" +#line 1387 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[-1].interm.type); if ((yyval.interm.type).basicType == EbtVoid) @@ -7087,151 +7104,151 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 7091 "MachineIndependent/glslang_tab.cpp" +#line 7108 "MachineIndependent/glslang_tab.cpp" break; case 158: /* single_type_qualifier: storage_qualifier */ -#line 1397 "MachineIndependent/glslang.y" +#line 1398 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7099 "MachineIndependent/glslang_tab.cpp" +#line 7116 "MachineIndependent/glslang_tab.cpp" break; case 159: /* single_type_qualifier: layout_qualifier */ -#line 1400 "MachineIndependent/glslang.y" +#line 1401 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7107 "MachineIndependent/glslang_tab.cpp" +#line 7124 "MachineIndependent/glslang_tab.cpp" break; case 160: /* single_type_qualifier: precision_qualifier */ -#line 1403 "MachineIndependent/glslang.y" +#line 1404 "MachineIndependent/glslang.y" { parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7116 "MachineIndependent/glslang_tab.cpp" +#line 7133 "MachineIndependent/glslang_tab.cpp" break; case 161: /* single_type_qualifier: interpolation_qualifier */ -#line 1407 "MachineIndependent/glslang.y" +#line 1408 "MachineIndependent/glslang.y" { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7125 "MachineIndependent/glslang_tab.cpp" +#line 7142 "MachineIndependent/glslang_tab.cpp" break; case 162: /* single_type_qualifier: invariant_qualifier */ -#line 1411 "MachineIndependent/glslang.y" +#line 1412 "MachineIndependent/glslang.y" { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7134 "MachineIndependent/glslang_tab.cpp" +#line 7151 "MachineIndependent/glslang_tab.cpp" break; case 163: /* single_type_qualifier: precise_qualifier */ -#line 1415 "MachineIndependent/glslang.y" +#line 1416 "MachineIndependent/glslang.y" { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7143 "MachineIndependent/glslang_tab.cpp" +#line 7160 "MachineIndependent/glslang_tab.cpp" break; case 164: /* single_type_qualifier: non_uniform_qualifier */ -#line 1419 "MachineIndependent/glslang.y" +#line 1420 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7151 "MachineIndependent/glslang_tab.cpp" +#line 7168 "MachineIndependent/glslang_tab.cpp" break; case 165: /* single_type_qualifier: spirv_storage_class_qualifier */ -#line 1422 "MachineIndependent/glslang.y" +#line 1423 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class"); parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier"); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7161 "MachineIndependent/glslang_tab.cpp" +#line 7178 "MachineIndependent/glslang_tab.cpp" break; case 166: /* single_type_qualifier: spirv_decorate_qualifier */ -#line 1427 "MachineIndependent/glslang.y" +#line 1428 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier"); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 7170 "MachineIndependent/glslang_tab.cpp" +#line 7187 "MachineIndependent/glslang_tab.cpp" break; case 167: /* single_type_qualifier: SPIRV_BY_REFERENCE */ -#line 1431 "MachineIndependent/glslang.y" +#line 1432 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.setSpirvByReference(); } -#line 7180 "MachineIndependent/glslang_tab.cpp" +#line 7197 "MachineIndependent/glslang_tab.cpp" break; case 168: /* single_type_qualifier: SPIRV_LITERAL */ -#line 1436 "MachineIndependent/glslang.y" +#line 1437 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.setSpirvLiteral(); } -#line 7190 "MachineIndependent/glslang_tab.cpp" +#line 7207 "MachineIndependent/glslang_tab.cpp" break; case 169: /* storage_qualifier: CONST */ -#line 1444 "MachineIndependent/glslang.y" +#line 1445 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 7199 "MachineIndependent/glslang_tab.cpp" +#line 7216 "MachineIndependent/glslang_tab.cpp" break; case 170: /* storage_qualifier: INOUT */ -#line 1448 "MachineIndependent/glslang.y" +#line 1449 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 7209 "MachineIndependent/glslang_tab.cpp" +#line 7226 "MachineIndependent/glslang_tab.cpp" break; case 171: /* storage_qualifier: IN */ -#line 1453 "MachineIndependent/glslang.y" +#line 1454 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "in"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 7220 "MachineIndependent/glslang_tab.cpp" +#line 7237 "MachineIndependent/glslang_tab.cpp" break; case 172: /* storage_qualifier: OUT */ -#line 1459 "MachineIndependent/glslang.y" +#line 1460 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "out"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 7231 "MachineIndependent/glslang_tab.cpp" +#line 7248 "MachineIndependent/glslang_tab.cpp" break; case 173: /* storage_qualifier: CENTROID */ -#line 1465 "MachineIndependent/glslang.y" +#line 1466 "MachineIndependent/glslang.y" { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); @@ -7239,31 +7256,31 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 7243 "MachineIndependent/glslang_tab.cpp" +#line 7260 "MachineIndependent/glslang_tab.cpp" break; case 174: /* storage_qualifier: UNIFORM */ -#line 1472 "MachineIndependent/glslang.y" +#line 1473 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 7253 "MachineIndependent/glslang_tab.cpp" +#line 7270 "MachineIndependent/glslang_tab.cpp" break; case 175: /* storage_qualifier: TILEIMAGEEXT */ -#line 1477 "MachineIndependent/glslang.y" +#line 1478 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "tileImageEXT"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqTileImageEXT; } -#line 7263 "MachineIndependent/glslang_tab.cpp" +#line 7280 "MachineIndependent/glslang_tab.cpp" break; case 176: /* storage_qualifier: SHARED */ -#line 1482 "MachineIndependent/glslang.y" +#line 1483 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); @@ -7272,21 +7289,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 7276 "MachineIndependent/glslang_tab.cpp" +#line 7293 "MachineIndependent/glslang_tab.cpp" break; case 177: /* storage_qualifier: BUFFER */ -#line 1490 "MachineIndependent/glslang.y" +#line 1491 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 7286 "MachineIndependent/glslang_tab.cpp" +#line 7303 "MachineIndependent/glslang_tab.cpp" break; case 178: /* storage_qualifier: ATTRIBUTE */ -#line 1495 "MachineIndependent/glslang.y" +#line 1496 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); @@ -7299,11 +7316,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 7303 "MachineIndependent/glslang_tab.cpp" +#line 7320 "MachineIndependent/glslang_tab.cpp" break; case 179: /* storage_qualifier: VARYING */ -#line 1507 "MachineIndependent/glslang.y" +#line 1508 "MachineIndependent/glslang.y" { parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); @@ -7318,32 +7335,32 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 7322 "MachineIndependent/glslang_tab.cpp" +#line 7339 "MachineIndependent/glslang_tab.cpp" break; case 180: /* storage_qualifier: PATCH */ -#line 1521 "MachineIndependent/glslang.y" +#line 1522 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } -#line 7333 "MachineIndependent/glslang_tab.cpp" +#line 7350 "MachineIndependent/glslang_tab.cpp" break; case 181: /* storage_qualifier: SAMPLE */ -#line 1527 "MachineIndependent/glslang.y" +#line 1528 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } -#line 7343 "MachineIndependent/glslang_tab.cpp" +#line 7360 "MachineIndependent/glslang_tab.cpp" break; case 182: /* storage_qualifier: HITATTRNV */ -#line 1532 "MachineIndependent/glslang.y" +#line 1533 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask @@ -7352,24 +7369,37 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqHitAttr; } -#line 7356 "MachineIndependent/glslang_tab.cpp" +#line 7373 "MachineIndependent/glslang_tab.cpp" break; case 183: /* storage_qualifier: HITOBJECTATTRNV */ -#line 1540 "MachineIndependent/glslang.y" - { +#line 1541 "MachineIndependent/glslang.y" + { parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | EShLangMissMask), "hitObjectAttributeNV"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqHitObjectAttrNV; - } -#line 7369 "MachineIndependent/glslang_tab.cpp" + } +#line 7386 "MachineIndependent/glslang_tab.cpp" + break; + + case 184: /* storage_qualifier: HITOBJECTATTREXT */ +#line 1549 "MachineIndependent/glslang.y" + { + parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask + | EShLangMissMask), "hitObjectAttributeEXT"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_shader_invocation_reorder, "hitObjectAttributeEXT"); + (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).qualifier.storage = EvqHitObjectAttrEXT; + } +#line 7399 "MachineIndependent/glslang_tab.cpp" break; - case 184: /* storage_qualifier: HITATTREXT */ -#line 1548 "MachineIndependent/glslang.y" + case 185: /* storage_qualifier: HITATTREXT */ +#line 1557 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask @@ -7378,11 +7408,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqHitAttr; } -#line 7382 "MachineIndependent/glslang_tab.cpp" +#line 7412 "MachineIndependent/glslang_tab.cpp" break; - case 185: /* storage_qualifier: PAYLOADNV */ -#line 1556 "MachineIndependent/glslang.y" + case 186: /* storage_qualifier: PAYLOADNV */ +#line 1565 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | @@ -7391,11 +7421,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqPayload; } -#line 7395 "MachineIndependent/glslang_tab.cpp" +#line 7425 "MachineIndependent/glslang_tab.cpp" break; - case 186: /* storage_qualifier: PAYLOADEXT */ -#line 1564 "MachineIndependent/glslang.y" + case 187: /* storage_qualifier: PAYLOADEXT */ +#line 1573 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | @@ -7404,11 +7434,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqPayload; } -#line 7408 "MachineIndependent/glslang_tab.cpp" +#line 7438 "MachineIndependent/glslang_tab.cpp" break; - case 187: /* storage_qualifier: PAYLOADINNV */ -#line 1572 "MachineIndependent/glslang.y" + case 188: /* storage_qualifier: PAYLOADINNV */ +#line 1581 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask | @@ -7417,11 +7447,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqPayloadIn; } -#line 7421 "MachineIndependent/glslang_tab.cpp" +#line 7451 "MachineIndependent/glslang_tab.cpp" break; - case 188: /* storage_qualifier: PAYLOADINEXT */ -#line 1580 "MachineIndependent/glslang.y" + case 189: /* storage_qualifier: PAYLOADINEXT */ +#line 1589 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask | @@ -7430,11 +7460,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqPayloadIn; } -#line 7434 "MachineIndependent/glslang_tab.cpp" +#line 7464 "MachineIndependent/glslang_tab.cpp" break; - case 189: /* storage_qualifier: CALLDATANV */ -#line 1588 "MachineIndependent/glslang.y" + case 190: /* storage_qualifier: CALLDATANV */ +#line 1597 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | @@ -7443,11 +7473,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqCallableData; } -#line 7447 "MachineIndependent/glslang_tab.cpp" +#line 7477 "MachineIndependent/glslang_tab.cpp" break; - case 190: /* storage_qualifier: CALLDATAEXT */ -#line 1596 "MachineIndependent/glslang.y" + case 191: /* storage_qualifier: CALLDATAEXT */ +#line 1605 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | @@ -7456,11 +7486,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqCallableData; } -#line 7460 "MachineIndependent/glslang_tab.cpp" +#line 7490 "MachineIndependent/glslang_tab.cpp" break; - case 191: /* storage_qualifier: CALLDATAINNV */ -#line 1604 "MachineIndependent/glslang.y" + case 192: /* storage_qualifier: CALLDATAINNV */ +#line 1613 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV"); @@ -7468,11 +7498,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqCallableDataIn; } -#line 7472 "MachineIndependent/glslang_tab.cpp" +#line 7502 "MachineIndependent/glslang_tab.cpp" break; - case 192: /* storage_qualifier: CALLDATAINEXT */ -#line 1611 "MachineIndependent/glslang.y" + case 193: /* storage_qualifier: CALLDATAINEXT */ +#line 1620 "MachineIndependent/glslang.y" { parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT"); @@ -7480,147 +7510,147 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqCallableDataIn; } -#line 7484 "MachineIndependent/glslang_tab.cpp" +#line 7514 "MachineIndependent/glslang_tab.cpp" break; - case 193: /* storage_qualifier: COHERENT */ -#line 1618 "MachineIndependent/glslang.y" + case 194: /* storage_qualifier: COHERENT */ +#line 1627 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 7493 "MachineIndependent/glslang_tab.cpp" +#line 7523 "MachineIndependent/glslang_tab.cpp" break; - case 194: /* storage_qualifier: DEVICECOHERENT */ -#line 1622 "MachineIndependent/glslang.y" + case 195: /* storage_qualifier: DEVICECOHERENT */ +#line 1631 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent"); (yyval.interm.type).qualifier.devicecoherent = true; } -#line 7503 "MachineIndependent/glslang_tab.cpp" +#line 7533 "MachineIndependent/glslang_tab.cpp" break; - case 195: /* storage_qualifier: QUEUEFAMILYCOHERENT */ -#line 1627 "MachineIndependent/glslang.y" + case 196: /* storage_qualifier: QUEUEFAMILYCOHERENT */ +#line 1636 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent"); (yyval.interm.type).qualifier.queuefamilycoherent = true; } -#line 7513 "MachineIndependent/glslang_tab.cpp" +#line 7543 "MachineIndependent/glslang_tab.cpp" break; - case 196: /* storage_qualifier: WORKGROUPCOHERENT */ -#line 1632 "MachineIndependent/glslang.y" + case 197: /* storage_qualifier: WORKGROUPCOHERENT */ +#line 1641 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent"); (yyval.interm.type).qualifier.workgroupcoherent = true; } -#line 7523 "MachineIndependent/glslang_tab.cpp" +#line 7553 "MachineIndependent/glslang_tab.cpp" break; - case 197: /* storage_qualifier: SUBGROUPCOHERENT */ -#line 1637 "MachineIndependent/glslang.y" + case 198: /* storage_qualifier: SUBGROUPCOHERENT */ +#line 1646 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent"); (yyval.interm.type).qualifier.subgroupcoherent = true; } -#line 7533 "MachineIndependent/glslang_tab.cpp" +#line 7563 "MachineIndependent/glslang_tab.cpp" break; - case 198: /* storage_qualifier: NONPRIVATE */ -#line 1642 "MachineIndependent/glslang.y" + case 199: /* storage_qualifier: NONPRIVATE */ +#line 1651 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate"); (yyval.interm.type).qualifier.nonprivate = true; } -#line 7543 "MachineIndependent/glslang_tab.cpp" +#line 7573 "MachineIndependent/glslang_tab.cpp" break; - case 199: /* storage_qualifier: SHADERCALLCOHERENT */ -#line 1647 "MachineIndependent/glslang.y" + case 200: /* storage_qualifier: SHADERCALLCOHERENT */ +#line 1656 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent"); (yyval.interm.type).qualifier.shadercallcoherent = true; } -#line 7553 "MachineIndependent/glslang_tab.cpp" +#line 7583 "MachineIndependent/glslang_tab.cpp" break; - case 200: /* storage_qualifier: VOLATILE */ -#line 1652 "MachineIndependent/glslang.y" + case 201: /* storage_qualifier: VOLATILE */ +#line 1661 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 7562 "MachineIndependent/glslang_tab.cpp" +#line 7592 "MachineIndependent/glslang_tab.cpp" break; - case 201: /* storage_qualifier: RESTRICT */ -#line 1656 "MachineIndependent/glslang.y" + case 202: /* storage_qualifier: RESTRICT */ +#line 1665 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 7571 "MachineIndependent/glslang_tab.cpp" +#line 7601 "MachineIndependent/glslang_tab.cpp" break; - case 202: /* storage_qualifier: READONLY */ -#line 1660 "MachineIndependent/glslang.y" + case 203: /* storage_qualifier: READONLY */ +#line 1669 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 7580 "MachineIndependent/glslang_tab.cpp" +#line 7610 "MachineIndependent/glslang_tab.cpp" break; - case 203: /* storage_qualifier: WRITEONLY */ -#line 1664 "MachineIndependent/glslang.y" + case 204: /* storage_qualifier: WRITEONLY */ +#line 1673 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 7589 "MachineIndependent/glslang_tab.cpp" +#line 7619 "MachineIndependent/glslang_tab.cpp" break; - case 204: /* storage_qualifier: NONTEMPORAL */ -#line 1668 "MachineIndependent/glslang.y" + case 205: /* storage_qualifier: NONTEMPORAL */ +#line 1677 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nontemporal = true; } -#line 7598 "MachineIndependent/glslang_tab.cpp" +#line 7628 "MachineIndependent/glslang_tab.cpp" break; - case 205: /* storage_qualifier: SUBROUTINE */ -#line 1672 "MachineIndependent/glslang.y" + case 206: /* storage_qualifier: SUBROUTINE */ +#line 1681 "MachineIndependent/glslang.y" { parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[0].lex).loc); } -#line 7609 "MachineIndependent/glslang_tab.cpp" +#line 7639 "MachineIndependent/glslang_tab.cpp" break; - case 206: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */ -#line 1678 "MachineIndependent/glslang.y" + case 207: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */ +#line 1687 "MachineIndependent/glslang.y" { parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[-3].lex).loc); } -#line 7620 "MachineIndependent/glslang_tab.cpp" +#line 7650 "MachineIndependent/glslang_tab.cpp" break; - case 207: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT */ -#line 1684 "MachineIndependent/glslang.y" + case 208: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT */ +#line 1693 "MachineIndependent/glslang.y" { // No need for profile version or extension check. Shader stage already checks both. parseContext.globalCheck((yyvsp[0].lex).loc, "taskPayloadSharedEXT"); @@ -7628,38 +7658,38 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqtaskPayloadSharedEXT; } -#line 7632 "MachineIndependent/glslang_tab.cpp" +#line 7662 "MachineIndependent/glslang_tab.cpp" break; - case 208: /* non_uniform_qualifier: NONUNIFORM */ -#line 1694 "MachineIndependent/glslang.y" + case 209: /* non_uniform_qualifier: NONUNIFORM */ +#line 1703 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nonUniform = true; } -#line 7641 "MachineIndependent/glslang_tab.cpp" +#line 7671 "MachineIndependent/glslang_tab.cpp" break; - case 209: /* type_name_list: IDENTIFIER */ -#line 1701 "MachineIndependent/glslang.y" + case 210: /* type_name_list: IDENTIFIER */ +#line 1710 "MachineIndependent/glslang.y" { // TODO } -#line 7649 "MachineIndependent/glslang_tab.cpp" +#line 7679 "MachineIndependent/glslang_tab.cpp" break; - case 210: /* type_name_list: type_name_list COMMA IDENTIFIER */ -#line 1704 "MachineIndependent/glslang.y" + case 211: /* type_name_list: type_name_list COMMA IDENTIFIER */ +#line 1713 "MachineIndependent/glslang.y" { // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 7659 "MachineIndependent/glslang_tab.cpp" +#line 7689 "MachineIndependent/glslang_tab.cpp" break; - case 211: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */ -#line 1712 "MachineIndependent/glslang.y" + case 212: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */ +#line 1721 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); @@ -7667,11 +7697,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.typeParametersCheck((yyvsp[-1].interm.type).loc, (yyval.interm.type)); } -#line 7671 "MachineIndependent/glslang_tab.cpp" +#line 7701 "MachineIndependent/glslang_tab.cpp" break; - case 212: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */ -#line 1719 "MachineIndependent/glslang.y" + case 213: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */ +#line 1728 "MachineIndependent/glslang.y" { parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.type) = (yyvsp[-2].interm.type); @@ -7680,21 +7710,21 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; parseContext.typeParametersCheck((yyvsp[-2].interm.type).loc, (yyval.interm.type)); } -#line 7684 "MachineIndependent/glslang_tab.cpp" +#line 7714 "MachineIndependent/glslang_tab.cpp" break; - case 213: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */ -#line 1730 "MachineIndependent/glslang.y" + case 214: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */ +#line 1739 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 7694 "MachineIndependent/glslang_tab.cpp" +#line 7724 "MachineIndependent/glslang_tab.cpp" break; - case 214: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */ -#line 1735 "MachineIndependent/glslang.y" + case 215: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */ +#line 1744 "MachineIndependent/glslang.y" { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -7703,20 +7733,20 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } -#line 7707 "MachineIndependent/glslang_tab.cpp" +#line 7737 "MachineIndependent/glslang_tab.cpp" break; - case 215: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */ -#line 1743 "MachineIndependent/glslang.y" + case 216: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */ +#line 1752 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 7716 "MachineIndependent/glslang_tab.cpp" +#line 7746 "MachineIndependent/glslang_tab.cpp" break; - case 216: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */ -#line 1747 "MachineIndependent/glslang.y" + case 217: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */ +#line 1756 "MachineIndependent/glslang.y" { (yyval.interm) = (yyvsp[-3].interm); @@ -7724,46 +7754,46 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } -#line 7728 "MachineIndependent/glslang_tab.cpp" +#line 7758 "MachineIndependent/glslang_tab.cpp" break; - case 217: /* type_parameter_specifier_opt: type_parameter_specifier */ -#line 1757 "MachineIndependent/glslang.y" + case 218: /* type_parameter_specifier_opt: type_parameter_specifier */ +#line 1766 "MachineIndependent/glslang.y" { (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); } -#line 7736 "MachineIndependent/glslang_tab.cpp" +#line 7766 "MachineIndependent/glslang_tab.cpp" break; - case 218: /* type_parameter_specifier_opt: %empty */ -#line 1760 "MachineIndependent/glslang.y" + case 219: /* type_parameter_specifier_opt: %empty */ +#line 1769 "MachineIndependent/glslang.y" { (yyval.interm.typeParameters) = 0; } -#line 7744 "MachineIndependent/glslang_tab.cpp" +#line 7774 "MachineIndependent/glslang_tab.cpp" break; - case 219: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */ -#line 1766 "MachineIndependent/glslang.y" + case 220: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */ +#line 1775 "MachineIndependent/glslang.y" { (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); } -#line 7752 "MachineIndependent/glslang_tab.cpp" +#line 7782 "MachineIndependent/glslang_tab.cpp" break; - case 220: /* type_parameter_specifier_list: type_specifier */ -#line 1772 "MachineIndependent/glslang.y" + case 221: /* type_parameter_specifier_list: type_specifier */ +#line 1781 "MachineIndependent/glslang.y" { (yyval.interm.typeParameters) = new TTypeParameters; (yyval.interm.typeParameters)->arraySizes = new TArraySizes; (yyval.interm.typeParameters)->spirvType = (yyvsp[0].interm.type).spirvType; (yyval.interm.typeParameters)->basicType = (yyvsp[0].interm.type).basicType; } -#line 7763 "MachineIndependent/glslang_tab.cpp" +#line 7793 "MachineIndependent/glslang_tab.cpp" break; - case 221: /* type_parameter_specifier_list: unary_expression */ -#line 1778 "MachineIndependent/glslang.y" + case 222: /* type_parameter_specifier_list: unary_expression */ +#line 1787 "MachineIndependent/glslang.y" { (yyval.interm.typeParameters) = new TTypeParameters; (yyval.interm.typeParameters)->arraySizes = new TArraySizes; @@ -7772,11 +7802,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true); (yyval.interm.typeParameters)->arraySizes->addInnerSize(size); } -#line 7776 "MachineIndependent/glslang_tab.cpp" +#line 7806 "MachineIndependent/glslang_tab.cpp" break; - case 222: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */ -#line 1786 "MachineIndependent/glslang.y" + case 223: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */ +#line 1795 "MachineIndependent/glslang.y" { (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters); @@ -7784,300 +7814,300 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true); (yyval.interm.typeParameters)->arraySizes->addInnerSize(size); } -#line 7788 "MachineIndependent/glslang_tab.cpp" +#line 7818 "MachineIndependent/glslang_tab.cpp" break; - case 223: /* type_specifier_nonarray: VOID */ -#line 1796 "MachineIndependent/glslang.y" + case 224: /* type_specifier_nonarray: VOID */ +#line 1805 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 7797 "MachineIndependent/glslang_tab.cpp" +#line 7827 "MachineIndependent/glslang_tab.cpp" break; - case 224: /* type_specifier_nonarray: FLOAT */ -#line 1800 "MachineIndependent/glslang.y" + case 225: /* type_specifier_nonarray: FLOAT */ +#line 1809 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 7806 "MachineIndependent/glslang_tab.cpp" +#line 7836 "MachineIndependent/glslang_tab.cpp" break; - case 225: /* type_specifier_nonarray: INT */ -#line 1804 "MachineIndependent/glslang.y" + case 226: /* type_specifier_nonarray: INT */ +#line 1813 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 7815 "MachineIndependent/glslang_tab.cpp" +#line 7845 "MachineIndependent/glslang_tab.cpp" break; - case 226: /* type_specifier_nonarray: UINT */ -#line 1808 "MachineIndependent/glslang.y" + case 227: /* type_specifier_nonarray: UINT */ +#line 1817 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 7825 "MachineIndependent/glslang_tab.cpp" +#line 7855 "MachineIndependent/glslang_tab.cpp" break; - case 227: /* type_specifier_nonarray: BOOL */ -#line 1813 "MachineIndependent/glslang.y" + case 228: /* type_specifier_nonarray: BOOL */ +#line 1822 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 7834 "MachineIndependent/glslang_tab.cpp" +#line 7864 "MachineIndependent/glslang_tab.cpp" break; - case 228: /* type_specifier_nonarray: VEC2 */ -#line 1817 "MachineIndependent/glslang.y" + case 229: /* type_specifier_nonarray: VEC2 */ +#line 1826 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 7844 "MachineIndependent/glslang_tab.cpp" +#line 7874 "MachineIndependent/glslang_tab.cpp" break; - case 229: /* type_specifier_nonarray: VEC3 */ -#line 1822 "MachineIndependent/glslang.y" + case 230: /* type_specifier_nonarray: VEC3 */ +#line 1831 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 7854 "MachineIndependent/glslang_tab.cpp" +#line 7884 "MachineIndependent/glslang_tab.cpp" break; - case 230: /* type_specifier_nonarray: VEC4 */ -#line 1827 "MachineIndependent/glslang.y" + case 231: /* type_specifier_nonarray: VEC4 */ +#line 1836 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 7864 "MachineIndependent/glslang_tab.cpp" +#line 7894 "MachineIndependent/glslang_tab.cpp" break; - case 231: /* type_specifier_nonarray: BVEC2 */ -#line 1832 "MachineIndependent/glslang.y" + case 232: /* type_specifier_nonarray: BVEC2 */ +#line 1841 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } -#line 7874 "MachineIndependent/glslang_tab.cpp" +#line 7904 "MachineIndependent/glslang_tab.cpp" break; - case 232: /* type_specifier_nonarray: BVEC3 */ -#line 1837 "MachineIndependent/glslang.y" + case 233: /* type_specifier_nonarray: BVEC3 */ +#line 1846 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } -#line 7884 "MachineIndependent/glslang_tab.cpp" +#line 7914 "MachineIndependent/glslang_tab.cpp" break; - case 233: /* type_specifier_nonarray: BVEC4 */ -#line 1842 "MachineIndependent/glslang.y" + case 234: /* type_specifier_nonarray: BVEC4 */ +#line 1851 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } -#line 7894 "MachineIndependent/glslang_tab.cpp" +#line 7924 "MachineIndependent/glslang_tab.cpp" break; - case 234: /* type_specifier_nonarray: IVEC2 */ -#line 1847 "MachineIndependent/glslang.y" + case 235: /* type_specifier_nonarray: IVEC2 */ +#line 1856 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 7904 "MachineIndependent/glslang_tab.cpp" +#line 7934 "MachineIndependent/glslang_tab.cpp" break; - case 235: /* type_specifier_nonarray: IVEC3 */ -#line 1852 "MachineIndependent/glslang.y" + case 236: /* type_specifier_nonarray: IVEC3 */ +#line 1861 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 7914 "MachineIndependent/glslang_tab.cpp" +#line 7944 "MachineIndependent/glslang_tab.cpp" break; - case 236: /* type_specifier_nonarray: IVEC4 */ -#line 1857 "MachineIndependent/glslang.y" + case 237: /* type_specifier_nonarray: IVEC4 */ +#line 1866 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 7924 "MachineIndependent/glslang_tab.cpp" +#line 7954 "MachineIndependent/glslang_tab.cpp" break; - case 237: /* type_specifier_nonarray: UVEC2 */ -#line 1862 "MachineIndependent/glslang.y" + case 238: /* type_specifier_nonarray: UVEC2 */ +#line 1871 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 7935 "MachineIndependent/glslang_tab.cpp" +#line 7965 "MachineIndependent/glslang_tab.cpp" break; - case 238: /* type_specifier_nonarray: UVEC3 */ -#line 1868 "MachineIndependent/glslang.y" + case 239: /* type_specifier_nonarray: UVEC3 */ +#line 1877 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 7946 "MachineIndependent/glslang_tab.cpp" +#line 7976 "MachineIndependent/glslang_tab.cpp" break; - case 239: /* type_specifier_nonarray: UVEC4 */ -#line 1874 "MachineIndependent/glslang.y" + case 240: /* type_specifier_nonarray: UVEC4 */ +#line 1883 "MachineIndependent/glslang.y" { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 7957 "MachineIndependent/glslang_tab.cpp" +#line 7987 "MachineIndependent/glslang_tab.cpp" break; - case 240: /* type_specifier_nonarray: MAT2 */ -#line 1880 "MachineIndependent/glslang.y" + case 241: /* type_specifier_nonarray: MAT2 */ +#line 1889 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 7967 "MachineIndependent/glslang_tab.cpp" +#line 7997 "MachineIndependent/glslang_tab.cpp" break; - case 241: /* type_specifier_nonarray: MAT3 */ -#line 1885 "MachineIndependent/glslang.y" + case 242: /* type_specifier_nonarray: MAT3 */ +#line 1894 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 7977 "MachineIndependent/glslang_tab.cpp" +#line 8007 "MachineIndependent/glslang_tab.cpp" break; - case 242: /* type_specifier_nonarray: MAT4 */ -#line 1890 "MachineIndependent/glslang.y" + case 243: /* type_specifier_nonarray: MAT4 */ +#line 1899 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 7987 "MachineIndependent/glslang_tab.cpp" +#line 8017 "MachineIndependent/glslang_tab.cpp" break; - case 243: /* type_specifier_nonarray: MAT2X2 */ -#line 1895 "MachineIndependent/glslang.y" + case 244: /* type_specifier_nonarray: MAT2X2 */ +#line 1904 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 7997 "MachineIndependent/glslang_tab.cpp" +#line 8027 "MachineIndependent/glslang_tab.cpp" break; - case 244: /* type_specifier_nonarray: MAT2X3 */ -#line 1900 "MachineIndependent/glslang.y" + case 245: /* type_specifier_nonarray: MAT2X3 */ +#line 1909 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 8007 "MachineIndependent/glslang_tab.cpp" +#line 8037 "MachineIndependent/glslang_tab.cpp" break; - case 245: /* type_specifier_nonarray: MAT2X4 */ -#line 1905 "MachineIndependent/glslang.y" + case 246: /* type_specifier_nonarray: MAT2X4 */ +#line 1914 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 8017 "MachineIndependent/glslang_tab.cpp" +#line 8047 "MachineIndependent/glslang_tab.cpp" break; - case 246: /* type_specifier_nonarray: MAT3X2 */ -#line 1910 "MachineIndependent/glslang.y" + case 247: /* type_specifier_nonarray: MAT3X2 */ +#line 1919 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 8027 "MachineIndependent/glslang_tab.cpp" +#line 8057 "MachineIndependent/glslang_tab.cpp" break; - case 247: /* type_specifier_nonarray: MAT3X3 */ -#line 1915 "MachineIndependent/glslang.y" + case 248: /* type_specifier_nonarray: MAT3X3 */ +#line 1924 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 8037 "MachineIndependent/glslang_tab.cpp" +#line 8067 "MachineIndependent/glslang_tab.cpp" break; - case 248: /* type_specifier_nonarray: MAT3X4 */ -#line 1920 "MachineIndependent/glslang.y" + case 249: /* type_specifier_nonarray: MAT3X4 */ +#line 1929 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 8047 "MachineIndependent/glslang_tab.cpp" +#line 8077 "MachineIndependent/glslang_tab.cpp" break; - case 249: /* type_specifier_nonarray: MAT4X2 */ -#line 1925 "MachineIndependent/glslang.y" + case 250: /* type_specifier_nonarray: MAT4X2 */ +#line 1934 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 8057 "MachineIndependent/glslang_tab.cpp" +#line 8087 "MachineIndependent/glslang_tab.cpp" break; - case 250: /* type_specifier_nonarray: MAT4X3 */ -#line 1930 "MachineIndependent/glslang.y" + case 251: /* type_specifier_nonarray: MAT4X3 */ +#line 1939 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 8067 "MachineIndependent/glslang_tab.cpp" +#line 8097 "MachineIndependent/glslang_tab.cpp" break; - case 251: /* type_specifier_nonarray: MAT4X4 */ -#line 1935 "MachineIndependent/glslang.y" + case 252: /* type_specifier_nonarray: MAT4X4 */ +#line 1944 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 8077 "MachineIndependent/glslang_tab.cpp" +#line 8107 "MachineIndependent/glslang_tab.cpp" break; - case 252: /* type_specifier_nonarray: DOUBLE */ -#line 1940 "MachineIndependent/glslang.y" + case 253: /* type_specifier_nonarray: DOUBLE */ +#line 1949 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8085,151 +8115,151 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 8089 "MachineIndependent/glslang_tab.cpp" +#line 8119 "MachineIndependent/glslang_tab.cpp" break; - case 253: /* type_specifier_nonarray: BFLOAT16_T */ -#line 1947 "MachineIndependent/glslang.y" + case 254: /* type_specifier_nonarray: BFLOAT16_T */ +#line 1956 "MachineIndependent/glslang.y" { parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "bfloat16_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBFloat16; } -#line 8099 "MachineIndependent/glslang_tab.cpp" +#line 8129 "MachineIndependent/glslang_tab.cpp" break; - case 254: /* type_specifier_nonarray: FLOATE5M2_T */ -#line 1952 "MachineIndependent/glslang.y" + case 255: /* type_specifier_nonarray: FLOATE5M2_T */ +#line 1961 "MachineIndependent/glslang.y" { parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "floate5m2_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE5M2; } -#line 8109 "MachineIndependent/glslang_tab.cpp" +#line 8139 "MachineIndependent/glslang_tab.cpp" break; - case 255: /* type_specifier_nonarray: FLOATE4M3_T */ -#line 1957 "MachineIndependent/glslang.y" + case 256: /* type_specifier_nonarray: FLOATE4M3_T */ +#line 1966 "MachineIndependent/glslang.y" { parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "floate4m3_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE4M3; } -#line 8119 "MachineIndependent/glslang_tab.cpp" +#line 8149 "MachineIndependent/glslang_tab.cpp" break; - case 256: /* type_specifier_nonarray: FLOAT16_T */ -#line 1962 "MachineIndependent/glslang.y" + case 257: /* type_specifier_nonarray: FLOAT16_T */ +#line 1971 "MachineIndependent/glslang.y" { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; } -#line 8129 "MachineIndependent/glslang_tab.cpp" +#line 8159 "MachineIndependent/glslang_tab.cpp" break; - case 257: /* type_specifier_nonarray: FLOAT32_T */ -#line 1967 "MachineIndependent/glslang.y" + case 258: /* type_specifier_nonarray: FLOAT32_T */ +#line 1976 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 8139 "MachineIndependent/glslang_tab.cpp" +#line 8169 "MachineIndependent/glslang_tab.cpp" break; - case 258: /* type_specifier_nonarray: FLOAT64_T */ -#line 1972 "MachineIndependent/glslang.y" + case 259: /* type_specifier_nonarray: FLOAT64_T */ +#line 1981 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 8149 "MachineIndependent/glslang_tab.cpp" +#line 8179 "MachineIndependent/glslang_tab.cpp" break; - case 259: /* type_specifier_nonarray: INT8_T */ -#line 1977 "MachineIndependent/glslang.y" + case 260: /* type_specifier_nonarray: INT8_T */ +#line 1986 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; } -#line 8159 "MachineIndependent/glslang_tab.cpp" +#line 8189 "MachineIndependent/glslang_tab.cpp" break; - case 260: /* type_specifier_nonarray: UINT8_T */ -#line 1982 "MachineIndependent/glslang.y" + case 261: /* type_specifier_nonarray: UINT8_T */ +#line 1991 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; } -#line 8169 "MachineIndependent/glslang_tab.cpp" +#line 8199 "MachineIndependent/glslang_tab.cpp" break; - case 261: /* type_specifier_nonarray: INT16_T */ -#line 1987 "MachineIndependent/glslang.y" + case 262: /* type_specifier_nonarray: INT16_T */ +#line 1996 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; } -#line 8179 "MachineIndependent/glslang_tab.cpp" +#line 8209 "MachineIndependent/glslang_tab.cpp" break; - case 262: /* type_specifier_nonarray: UINT16_T */ -#line 1992 "MachineIndependent/glslang.y" + case 263: /* type_specifier_nonarray: UINT16_T */ +#line 2001 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; } -#line 8189 "MachineIndependent/glslang_tab.cpp" +#line 8219 "MachineIndependent/glslang_tab.cpp" break; - case 263: /* type_specifier_nonarray: INT32_T */ -#line 1997 "MachineIndependent/glslang.y" + case 264: /* type_specifier_nonarray: INT32_T */ +#line 2006 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 8199 "MachineIndependent/glslang_tab.cpp" +#line 8229 "MachineIndependent/glslang_tab.cpp" break; - case 264: /* type_specifier_nonarray: UINT32_T */ -#line 2002 "MachineIndependent/glslang.y" + case 265: /* type_specifier_nonarray: UINT32_T */ +#line 2011 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 8209 "MachineIndependent/glslang_tab.cpp" +#line 8239 "MachineIndependent/glslang_tab.cpp" break; - case 265: /* type_specifier_nonarray: INT64_T */ -#line 2007 "MachineIndependent/glslang.y" + case 266: /* type_specifier_nonarray: INT64_T */ +#line 2016 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } -#line 8219 "MachineIndependent/glslang_tab.cpp" +#line 8249 "MachineIndependent/glslang_tab.cpp" break; - case 266: /* type_specifier_nonarray: UINT64_T */ -#line 2012 "MachineIndependent/glslang.y" + case 267: /* type_specifier_nonarray: UINT64_T */ +#line 2021 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } -#line 8229 "MachineIndependent/glslang_tab.cpp" +#line 8259 "MachineIndependent/glslang_tab.cpp" break; - case 267: /* type_specifier_nonarray: DVEC2 */ -#line 2017 "MachineIndependent/glslang.y" + case 268: /* type_specifier_nonarray: DVEC2 */ +#line 2026 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8238,11 +8268,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 8242 "MachineIndependent/glslang_tab.cpp" +#line 8272 "MachineIndependent/glslang_tab.cpp" break; - case 268: /* type_specifier_nonarray: DVEC3 */ -#line 2025 "MachineIndependent/glslang.y" + case 269: /* type_specifier_nonarray: DVEC3 */ +#line 2034 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8251,11 +8281,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 8255 "MachineIndependent/glslang_tab.cpp" +#line 8285 "MachineIndependent/glslang_tab.cpp" break; - case 269: /* type_specifier_nonarray: DVEC4 */ -#line 2033 "MachineIndependent/glslang.y" + case 270: /* type_specifier_nonarray: DVEC4 */ +#line 2042 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8264,473 +8294,473 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 8268 "MachineIndependent/glslang_tab.cpp" +#line 8298 "MachineIndependent/glslang_tab.cpp" break; - case 270: /* type_specifier_nonarray: BF16VEC2 */ -#line 2041 "MachineIndependent/glslang.y" + case 271: /* type_specifier_nonarray: BF16VEC2 */ +#line 2050 "MachineIndependent/glslang.y" { parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBFloat16; (yyval.interm.type).setVector(2); } -#line 8279 "MachineIndependent/glslang_tab.cpp" +#line 8309 "MachineIndependent/glslang_tab.cpp" break; - case 271: /* type_specifier_nonarray: BF16VEC3 */ -#line 2047 "MachineIndependent/glslang.y" + case 272: /* type_specifier_nonarray: BF16VEC3 */ +#line 2056 "MachineIndependent/glslang.y" { parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBFloat16; (yyval.interm.type).setVector(3); } -#line 8290 "MachineIndependent/glslang_tab.cpp" +#line 8320 "MachineIndependent/glslang_tab.cpp" break; - case 272: /* type_specifier_nonarray: BF16VEC4 */ -#line 2053 "MachineIndependent/glslang.y" + case 273: /* type_specifier_nonarray: BF16VEC4 */ +#line 2062 "MachineIndependent/glslang.y" { parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBFloat16; (yyval.interm.type).setVector(4); } -#line 8301 "MachineIndependent/glslang_tab.cpp" +#line 8331 "MachineIndependent/glslang_tab.cpp" break; - case 273: /* type_specifier_nonarray: FE5M2VEC2 */ -#line 2059 "MachineIndependent/glslang.y" + case 274: /* type_specifier_nonarray: FE5M2VEC2 */ +#line 2068 "MachineIndependent/glslang.y" { parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe5m2 vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE5M2; (yyval.interm.type).setVector(2); } -#line 8312 "MachineIndependent/glslang_tab.cpp" +#line 8342 "MachineIndependent/glslang_tab.cpp" break; - case 274: /* type_specifier_nonarray: FE5M2VEC3 */ -#line 2065 "MachineIndependent/glslang.y" + case 275: /* type_specifier_nonarray: FE5M2VEC3 */ +#line 2074 "MachineIndependent/glslang.y" { parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe5m2 vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE5M2; (yyval.interm.type).setVector(3); } -#line 8323 "MachineIndependent/glslang_tab.cpp" +#line 8353 "MachineIndependent/glslang_tab.cpp" break; - case 275: /* type_specifier_nonarray: FE5M2VEC4 */ -#line 2071 "MachineIndependent/glslang.y" + case 276: /* type_specifier_nonarray: FE5M2VEC4 */ +#line 2080 "MachineIndependent/glslang.y" { parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe5m2 vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE5M2; (yyval.interm.type).setVector(4); } -#line 8334 "MachineIndependent/glslang_tab.cpp" +#line 8364 "MachineIndependent/glslang_tab.cpp" break; - case 276: /* type_specifier_nonarray: FE4M3VEC2 */ -#line 2077 "MachineIndependent/glslang.y" + case 277: /* type_specifier_nonarray: FE4M3VEC2 */ +#line 2086 "MachineIndependent/glslang.y" { parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe4m3 vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE4M3; (yyval.interm.type).setVector(2); } -#line 8345 "MachineIndependent/glslang_tab.cpp" +#line 8375 "MachineIndependent/glslang_tab.cpp" break; - case 277: /* type_specifier_nonarray: FE4M3VEC3 */ -#line 2083 "MachineIndependent/glslang.y" + case 278: /* type_specifier_nonarray: FE4M3VEC3 */ +#line 2092 "MachineIndependent/glslang.y" { parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe4m3 vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE4M3; (yyval.interm.type).setVector(3); } -#line 8356 "MachineIndependent/glslang_tab.cpp" +#line 8386 "MachineIndependent/glslang_tab.cpp" break; - case 278: /* type_specifier_nonarray: FE4M3VEC4 */ -#line 2089 "MachineIndependent/glslang.y" + case 279: /* type_specifier_nonarray: FE4M3VEC4 */ +#line 2098 "MachineIndependent/glslang.y" { parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe4m3 vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloatE4M3; (yyval.interm.type).setVector(4); } -#line 8367 "MachineIndependent/glslang_tab.cpp" +#line 8397 "MachineIndependent/glslang_tab.cpp" break; - case 279: /* type_specifier_nonarray: F16VEC2 */ -#line 2095 "MachineIndependent/glslang.y" + case 280: /* type_specifier_nonarray: F16VEC2 */ +#line 2104 "MachineIndependent/glslang.y" { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(2); } -#line 8378 "MachineIndependent/glslang_tab.cpp" +#line 8408 "MachineIndependent/glslang_tab.cpp" break; - case 280: /* type_specifier_nonarray: F16VEC3 */ -#line 2101 "MachineIndependent/glslang.y" + case 281: /* type_specifier_nonarray: F16VEC3 */ +#line 2110 "MachineIndependent/glslang.y" { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(3); } -#line 8389 "MachineIndependent/glslang_tab.cpp" +#line 8419 "MachineIndependent/glslang_tab.cpp" break; - case 281: /* type_specifier_nonarray: F16VEC4 */ -#line 2107 "MachineIndependent/glslang.y" + case 282: /* type_specifier_nonarray: F16VEC4 */ +#line 2116 "MachineIndependent/glslang.y" { parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setVector(4); } -#line 8400 "MachineIndependent/glslang_tab.cpp" +#line 8430 "MachineIndependent/glslang_tab.cpp" break; - case 282: /* type_specifier_nonarray: F32VEC2 */ -#line 2113 "MachineIndependent/glslang.y" + case 283: /* type_specifier_nonarray: F32VEC2 */ +#line 2122 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 8411 "MachineIndependent/glslang_tab.cpp" +#line 8441 "MachineIndependent/glslang_tab.cpp" break; - case 283: /* type_specifier_nonarray: F32VEC3 */ -#line 2119 "MachineIndependent/glslang.y" + case 284: /* type_specifier_nonarray: F32VEC3 */ +#line 2128 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 8422 "MachineIndependent/glslang_tab.cpp" +#line 8452 "MachineIndependent/glslang_tab.cpp" break; - case 284: /* type_specifier_nonarray: F32VEC4 */ -#line 2125 "MachineIndependent/glslang.y" + case 285: /* type_specifier_nonarray: F32VEC4 */ +#line 2134 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 8433 "MachineIndependent/glslang_tab.cpp" +#line 8463 "MachineIndependent/glslang_tab.cpp" break; - case 285: /* type_specifier_nonarray: F64VEC2 */ -#line 2131 "MachineIndependent/glslang.y" + case 286: /* type_specifier_nonarray: F64VEC2 */ +#line 2140 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 8444 "MachineIndependent/glslang_tab.cpp" +#line 8474 "MachineIndependent/glslang_tab.cpp" break; - case 286: /* type_specifier_nonarray: F64VEC3 */ -#line 2137 "MachineIndependent/glslang.y" + case 287: /* type_specifier_nonarray: F64VEC3 */ +#line 2146 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 8455 "MachineIndependent/glslang_tab.cpp" +#line 8485 "MachineIndependent/glslang_tab.cpp" break; - case 287: /* type_specifier_nonarray: F64VEC4 */ -#line 2143 "MachineIndependent/glslang.y" + case 288: /* type_specifier_nonarray: F64VEC4 */ +#line 2152 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 8466 "MachineIndependent/glslang_tab.cpp" +#line 8496 "MachineIndependent/glslang_tab.cpp" break; - case 288: /* type_specifier_nonarray: I8VEC2 */ -#line 2149 "MachineIndependent/glslang.y" + case 289: /* type_specifier_nonarray: I8VEC2 */ +#line 2158 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(2); } -#line 8477 "MachineIndependent/glslang_tab.cpp" +#line 8507 "MachineIndependent/glslang_tab.cpp" break; - case 289: /* type_specifier_nonarray: I8VEC3 */ -#line 2155 "MachineIndependent/glslang.y" + case 290: /* type_specifier_nonarray: I8VEC3 */ +#line 2164 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(3); } -#line 8488 "MachineIndependent/glslang_tab.cpp" +#line 8518 "MachineIndependent/glslang_tab.cpp" break; - case 290: /* type_specifier_nonarray: I8VEC4 */ -#line 2161 "MachineIndependent/glslang.y" + case 291: /* type_specifier_nonarray: I8VEC4 */ +#line 2170 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt8; (yyval.interm.type).setVector(4); } -#line 8499 "MachineIndependent/glslang_tab.cpp" +#line 8529 "MachineIndependent/glslang_tab.cpp" break; - case 291: /* type_specifier_nonarray: I16VEC2 */ -#line 2167 "MachineIndependent/glslang.y" + case 292: /* type_specifier_nonarray: I16VEC2 */ +#line 2176 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(2); } -#line 8510 "MachineIndependent/glslang_tab.cpp" +#line 8540 "MachineIndependent/glslang_tab.cpp" break; - case 292: /* type_specifier_nonarray: I16VEC3 */ -#line 2173 "MachineIndependent/glslang.y" + case 293: /* type_specifier_nonarray: I16VEC3 */ +#line 2182 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(3); } -#line 8521 "MachineIndependent/glslang_tab.cpp" +#line 8551 "MachineIndependent/glslang_tab.cpp" break; - case 293: /* type_specifier_nonarray: I16VEC4 */ -#line 2179 "MachineIndependent/glslang.y" + case 294: /* type_specifier_nonarray: I16VEC4 */ +#line 2188 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt16; (yyval.interm.type).setVector(4); } -#line 8532 "MachineIndependent/glslang_tab.cpp" +#line 8562 "MachineIndependent/glslang_tab.cpp" break; - case 294: /* type_specifier_nonarray: I32VEC2 */ -#line 2185 "MachineIndependent/glslang.y" + case 295: /* type_specifier_nonarray: I32VEC2 */ +#line 2194 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 8543 "MachineIndependent/glslang_tab.cpp" +#line 8573 "MachineIndependent/glslang_tab.cpp" break; - case 295: /* type_specifier_nonarray: I32VEC3 */ -#line 2191 "MachineIndependent/glslang.y" + case 296: /* type_specifier_nonarray: I32VEC3 */ +#line 2200 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 8554 "MachineIndependent/glslang_tab.cpp" +#line 8584 "MachineIndependent/glslang_tab.cpp" break; - case 296: /* type_specifier_nonarray: I32VEC4 */ -#line 2197 "MachineIndependent/glslang.y" + case 297: /* type_specifier_nonarray: I32VEC4 */ +#line 2206 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 8565 "MachineIndependent/glslang_tab.cpp" +#line 8595 "MachineIndependent/glslang_tab.cpp" break; - case 297: /* type_specifier_nonarray: I64VEC2 */ -#line 2203 "MachineIndependent/glslang.y" + case 298: /* type_specifier_nonarray: I64VEC2 */ +#line 2212 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } -#line 8576 "MachineIndependent/glslang_tab.cpp" +#line 8606 "MachineIndependent/glslang_tab.cpp" break; - case 298: /* type_specifier_nonarray: I64VEC3 */ -#line 2209 "MachineIndependent/glslang.y" + case 299: /* type_specifier_nonarray: I64VEC3 */ +#line 2218 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } -#line 8587 "MachineIndependent/glslang_tab.cpp" +#line 8617 "MachineIndependent/glslang_tab.cpp" break; - case 299: /* type_specifier_nonarray: I64VEC4 */ -#line 2215 "MachineIndependent/glslang.y" + case 300: /* type_specifier_nonarray: I64VEC4 */ +#line 2224 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } -#line 8598 "MachineIndependent/glslang_tab.cpp" +#line 8628 "MachineIndependent/glslang_tab.cpp" break; - case 300: /* type_specifier_nonarray: U8VEC2 */ -#line 2221 "MachineIndependent/glslang.y" + case 301: /* type_specifier_nonarray: U8VEC2 */ +#line 2230 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(2); } -#line 8609 "MachineIndependent/glslang_tab.cpp" +#line 8639 "MachineIndependent/glslang_tab.cpp" break; - case 301: /* type_specifier_nonarray: U8VEC3 */ -#line 2227 "MachineIndependent/glslang.y" + case 302: /* type_specifier_nonarray: U8VEC3 */ +#line 2236 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(3); } -#line 8620 "MachineIndependent/glslang_tab.cpp" +#line 8650 "MachineIndependent/glslang_tab.cpp" break; - case 302: /* type_specifier_nonarray: U8VEC4 */ -#line 2233 "MachineIndependent/glslang.y" + case 303: /* type_specifier_nonarray: U8VEC4 */ +#line 2242 "MachineIndependent/glslang.y" { parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint8; (yyval.interm.type).setVector(4); } -#line 8631 "MachineIndependent/glslang_tab.cpp" +#line 8661 "MachineIndependent/glslang_tab.cpp" break; - case 303: /* type_specifier_nonarray: U16VEC2 */ -#line 2239 "MachineIndependent/glslang.y" + case 304: /* type_specifier_nonarray: U16VEC2 */ +#line 2248 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(2); } -#line 8642 "MachineIndependent/glslang_tab.cpp" +#line 8672 "MachineIndependent/glslang_tab.cpp" break; - case 304: /* type_specifier_nonarray: U16VEC3 */ -#line 2245 "MachineIndependent/glslang.y" + case 305: /* type_specifier_nonarray: U16VEC3 */ +#line 2254 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(3); } -#line 8653 "MachineIndependent/glslang_tab.cpp" +#line 8683 "MachineIndependent/glslang_tab.cpp" break; - case 305: /* type_specifier_nonarray: U16VEC4 */ -#line 2251 "MachineIndependent/glslang.y" + case 306: /* type_specifier_nonarray: U16VEC4 */ +#line 2260 "MachineIndependent/glslang.y" { parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint16; (yyval.interm.type).setVector(4); } -#line 8664 "MachineIndependent/glslang_tab.cpp" +#line 8694 "MachineIndependent/glslang_tab.cpp" break; - case 306: /* type_specifier_nonarray: U32VEC2 */ -#line 2257 "MachineIndependent/glslang.y" + case 307: /* type_specifier_nonarray: U32VEC2 */ +#line 2266 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 8675 "MachineIndependent/glslang_tab.cpp" +#line 8705 "MachineIndependent/glslang_tab.cpp" break; - case 307: /* type_specifier_nonarray: U32VEC3 */ -#line 2263 "MachineIndependent/glslang.y" + case 308: /* type_specifier_nonarray: U32VEC3 */ +#line 2272 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 8686 "MachineIndependent/glslang_tab.cpp" +#line 8716 "MachineIndependent/glslang_tab.cpp" break; - case 308: /* type_specifier_nonarray: U32VEC4 */ -#line 2269 "MachineIndependent/glslang.y" + case 309: /* type_specifier_nonarray: U32VEC4 */ +#line 2278 "MachineIndependent/glslang.y" { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 8697 "MachineIndependent/glslang_tab.cpp" +#line 8727 "MachineIndependent/glslang_tab.cpp" break; - case 309: /* type_specifier_nonarray: U64VEC2 */ -#line 2275 "MachineIndependent/glslang.y" + case 310: /* type_specifier_nonarray: U64VEC2 */ +#line 2284 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } -#line 8708 "MachineIndependent/glslang_tab.cpp" +#line 8738 "MachineIndependent/glslang_tab.cpp" break; - case 310: /* type_specifier_nonarray: U64VEC3 */ -#line 2281 "MachineIndependent/glslang.y" + case 311: /* type_specifier_nonarray: U64VEC3 */ +#line 2290 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } -#line 8719 "MachineIndependent/glslang_tab.cpp" +#line 8749 "MachineIndependent/glslang_tab.cpp" break; - case 311: /* type_specifier_nonarray: U64VEC4 */ -#line 2287 "MachineIndependent/glslang.y" + case 312: /* type_specifier_nonarray: U64VEC4 */ +#line 2296 "MachineIndependent/glslang.y" { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } -#line 8730 "MachineIndependent/glslang_tab.cpp" +#line 8760 "MachineIndependent/glslang_tab.cpp" break; - case 312: /* type_specifier_nonarray: DMAT2 */ -#line 2293 "MachineIndependent/glslang.y" + case 313: /* type_specifier_nonarray: DMAT2 */ +#line 2302 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8739,11 +8769,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 8743 "MachineIndependent/glslang_tab.cpp" +#line 8773 "MachineIndependent/glslang_tab.cpp" break; - case 313: /* type_specifier_nonarray: DMAT3 */ -#line 2301 "MachineIndependent/glslang.y" + case 314: /* type_specifier_nonarray: DMAT3 */ +#line 2310 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8752,11 +8782,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 8756 "MachineIndependent/glslang_tab.cpp" +#line 8786 "MachineIndependent/glslang_tab.cpp" break; - case 314: /* type_specifier_nonarray: DMAT4 */ -#line 2309 "MachineIndependent/glslang.y" + case 315: /* type_specifier_nonarray: DMAT4 */ +#line 2318 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8765,11 +8795,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 8769 "MachineIndependent/glslang_tab.cpp" +#line 8799 "MachineIndependent/glslang_tab.cpp" break; - case 315: /* type_specifier_nonarray: DMAT2X2 */ -#line 2317 "MachineIndependent/glslang.y" + case 316: /* type_specifier_nonarray: DMAT2X2 */ +#line 2326 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8778,11 +8808,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 8782 "MachineIndependent/glslang_tab.cpp" +#line 8812 "MachineIndependent/glslang_tab.cpp" break; - case 316: /* type_specifier_nonarray: DMAT2X3 */ -#line 2325 "MachineIndependent/glslang.y" + case 317: /* type_specifier_nonarray: DMAT2X3 */ +#line 2334 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8791,11 +8821,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 8795 "MachineIndependent/glslang_tab.cpp" +#line 8825 "MachineIndependent/glslang_tab.cpp" break; - case 317: /* type_specifier_nonarray: DMAT2X4 */ -#line 2333 "MachineIndependent/glslang.y" + case 318: /* type_specifier_nonarray: DMAT2X4 */ +#line 2342 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8804,11 +8834,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 8808 "MachineIndependent/glslang_tab.cpp" +#line 8838 "MachineIndependent/glslang_tab.cpp" break; - case 318: /* type_specifier_nonarray: DMAT3X2 */ -#line 2341 "MachineIndependent/glslang.y" + case 319: /* type_specifier_nonarray: DMAT3X2 */ +#line 2350 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8817,11 +8847,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 8821 "MachineIndependent/glslang_tab.cpp" +#line 8851 "MachineIndependent/glslang_tab.cpp" break; - case 319: /* type_specifier_nonarray: DMAT3X3 */ -#line 2349 "MachineIndependent/glslang.y" + case 320: /* type_specifier_nonarray: DMAT3X3 */ +#line 2358 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8830,11 +8860,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 8834 "MachineIndependent/glslang_tab.cpp" +#line 8864 "MachineIndependent/glslang_tab.cpp" break; - case 320: /* type_specifier_nonarray: DMAT3X4 */ -#line 2357 "MachineIndependent/glslang.y" + case 321: /* type_specifier_nonarray: DMAT3X4 */ +#line 2366 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8843,11 +8873,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 8847 "MachineIndependent/glslang_tab.cpp" +#line 8877 "MachineIndependent/glslang_tab.cpp" break; - case 321: /* type_specifier_nonarray: DMAT4X2 */ -#line 2365 "MachineIndependent/glslang.y" + case 322: /* type_specifier_nonarray: DMAT4X2 */ +#line 2374 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8856,11 +8886,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 8860 "MachineIndependent/glslang_tab.cpp" +#line 8890 "MachineIndependent/glslang_tab.cpp" break; - case 322: /* type_specifier_nonarray: DMAT4X3 */ -#line 2373 "MachineIndependent/glslang.y" + case 323: /* type_specifier_nonarray: DMAT4X3 */ +#line 2382 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8869,11 +8899,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 8873 "MachineIndependent/glslang_tab.cpp" +#line 8903 "MachineIndependent/glslang_tab.cpp" break; - case 323: /* type_specifier_nonarray: DMAT4X4 */ -#line 2381 "MachineIndependent/glslang.y" + case 324: /* type_specifier_nonarray: DMAT4X4 */ +#line 2390 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix"); if (! parseContext.symbolTable.atBuiltInLevel()) @@ -8882,2261 +8912,2261 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 8886 "MachineIndependent/glslang_tab.cpp" +#line 8916 "MachineIndependent/glslang_tab.cpp" break; - case 324: /* type_specifier_nonarray: F16MAT2 */ -#line 2389 "MachineIndependent/glslang.y" + case 325: /* type_specifier_nonarray: F16MAT2 */ +#line 2398 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } -#line 8897 "MachineIndependent/glslang_tab.cpp" +#line 8927 "MachineIndependent/glslang_tab.cpp" break; - case 325: /* type_specifier_nonarray: F16MAT3 */ -#line 2395 "MachineIndependent/glslang.y" + case 326: /* type_specifier_nonarray: F16MAT3 */ +#line 2404 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } -#line 8908 "MachineIndependent/glslang_tab.cpp" +#line 8938 "MachineIndependent/glslang_tab.cpp" break; - case 326: /* type_specifier_nonarray: F16MAT4 */ -#line 2401 "MachineIndependent/glslang.y" + case 327: /* type_specifier_nonarray: F16MAT4 */ +#line 2410 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } -#line 8919 "MachineIndependent/glslang_tab.cpp" +#line 8949 "MachineIndependent/glslang_tab.cpp" break; - case 327: /* type_specifier_nonarray: F16MAT2X2 */ -#line 2407 "MachineIndependent/glslang.y" + case 328: /* type_specifier_nonarray: F16MAT2X2 */ +#line 2416 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } -#line 8930 "MachineIndependent/glslang_tab.cpp" +#line 8960 "MachineIndependent/glslang_tab.cpp" break; - case 328: /* type_specifier_nonarray: F16MAT2X3 */ -#line 2413 "MachineIndependent/glslang.y" + case 329: /* type_specifier_nonarray: F16MAT2X3 */ +#line 2422 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 3); } -#line 8941 "MachineIndependent/glslang_tab.cpp" +#line 8971 "MachineIndependent/glslang_tab.cpp" break; - case 329: /* type_specifier_nonarray: F16MAT2X4 */ -#line 2419 "MachineIndependent/glslang.y" + case 330: /* type_specifier_nonarray: F16MAT2X4 */ +#line 2428 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 4); } -#line 8952 "MachineIndependent/glslang_tab.cpp" +#line 8982 "MachineIndependent/glslang_tab.cpp" break; - case 330: /* type_specifier_nonarray: F16MAT3X2 */ -#line 2425 "MachineIndependent/glslang.y" + case 331: /* type_specifier_nonarray: F16MAT3X2 */ +#line 2434 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 2); } -#line 8963 "MachineIndependent/glslang_tab.cpp" +#line 8993 "MachineIndependent/glslang_tab.cpp" break; - case 331: /* type_specifier_nonarray: F16MAT3X3 */ -#line 2431 "MachineIndependent/glslang.y" + case 332: /* type_specifier_nonarray: F16MAT3X3 */ +#line 2440 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } -#line 8974 "MachineIndependent/glslang_tab.cpp" +#line 9004 "MachineIndependent/glslang_tab.cpp" break; - case 332: /* type_specifier_nonarray: F16MAT3X4 */ -#line 2437 "MachineIndependent/glslang.y" + case 333: /* type_specifier_nonarray: F16MAT3X4 */ +#line 2446 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 4); } -#line 8985 "MachineIndependent/glslang_tab.cpp" +#line 9015 "MachineIndependent/glslang_tab.cpp" break; - case 333: /* type_specifier_nonarray: F16MAT4X2 */ -#line 2443 "MachineIndependent/glslang.y" + case 334: /* type_specifier_nonarray: F16MAT4X2 */ +#line 2452 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 2); } -#line 8996 "MachineIndependent/glslang_tab.cpp" +#line 9026 "MachineIndependent/glslang_tab.cpp" break; - case 334: /* type_specifier_nonarray: F16MAT4X3 */ -#line 2449 "MachineIndependent/glslang.y" + case 335: /* type_specifier_nonarray: F16MAT4X3 */ +#line 2458 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 3); } -#line 9007 "MachineIndependent/glslang_tab.cpp" +#line 9037 "MachineIndependent/glslang_tab.cpp" break; - case 335: /* type_specifier_nonarray: F16MAT4X4 */ -#line 2455 "MachineIndependent/glslang.y" + case 336: /* type_specifier_nonarray: F16MAT4X4 */ +#line 2464 "MachineIndependent/glslang.y" { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } -#line 9018 "MachineIndependent/glslang_tab.cpp" +#line 9048 "MachineIndependent/glslang_tab.cpp" break; - case 336: /* type_specifier_nonarray: F32MAT2 */ -#line 2461 "MachineIndependent/glslang.y" + case 337: /* type_specifier_nonarray: F32MAT2 */ +#line 2470 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 9029 "MachineIndependent/glslang_tab.cpp" +#line 9059 "MachineIndependent/glslang_tab.cpp" break; - case 337: /* type_specifier_nonarray: F32MAT3 */ -#line 2467 "MachineIndependent/glslang.y" + case 338: /* type_specifier_nonarray: F32MAT3 */ +#line 2476 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 9040 "MachineIndependent/glslang_tab.cpp" +#line 9070 "MachineIndependent/glslang_tab.cpp" break; - case 338: /* type_specifier_nonarray: F32MAT4 */ -#line 2473 "MachineIndependent/glslang.y" + case 339: /* type_specifier_nonarray: F32MAT4 */ +#line 2482 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 9051 "MachineIndependent/glslang_tab.cpp" +#line 9081 "MachineIndependent/glslang_tab.cpp" break; - case 339: /* type_specifier_nonarray: F32MAT2X2 */ -#line 2479 "MachineIndependent/glslang.y" + case 340: /* type_specifier_nonarray: F32MAT2X2 */ +#line 2488 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 9062 "MachineIndependent/glslang_tab.cpp" +#line 9092 "MachineIndependent/glslang_tab.cpp" break; - case 340: /* type_specifier_nonarray: F32MAT2X3 */ -#line 2485 "MachineIndependent/glslang.y" + case 341: /* type_specifier_nonarray: F32MAT2X3 */ +#line 2494 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 9073 "MachineIndependent/glslang_tab.cpp" +#line 9103 "MachineIndependent/glslang_tab.cpp" break; - case 341: /* type_specifier_nonarray: F32MAT2X4 */ -#line 2491 "MachineIndependent/glslang.y" + case 342: /* type_specifier_nonarray: F32MAT2X4 */ +#line 2500 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 9084 "MachineIndependent/glslang_tab.cpp" +#line 9114 "MachineIndependent/glslang_tab.cpp" break; - case 342: /* type_specifier_nonarray: F32MAT3X2 */ -#line 2497 "MachineIndependent/glslang.y" + case 343: /* type_specifier_nonarray: F32MAT3X2 */ +#line 2506 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 9095 "MachineIndependent/glslang_tab.cpp" +#line 9125 "MachineIndependent/glslang_tab.cpp" break; - case 343: /* type_specifier_nonarray: F32MAT3X3 */ -#line 2503 "MachineIndependent/glslang.y" + case 344: /* type_specifier_nonarray: F32MAT3X3 */ +#line 2512 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 9106 "MachineIndependent/glslang_tab.cpp" +#line 9136 "MachineIndependent/glslang_tab.cpp" break; - case 344: /* type_specifier_nonarray: F32MAT3X4 */ -#line 2509 "MachineIndependent/glslang.y" + case 345: /* type_specifier_nonarray: F32MAT3X4 */ +#line 2518 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 9117 "MachineIndependent/glslang_tab.cpp" +#line 9147 "MachineIndependent/glslang_tab.cpp" break; - case 345: /* type_specifier_nonarray: F32MAT4X2 */ -#line 2515 "MachineIndependent/glslang.y" + case 346: /* type_specifier_nonarray: F32MAT4X2 */ +#line 2524 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 9128 "MachineIndependent/glslang_tab.cpp" +#line 9158 "MachineIndependent/glslang_tab.cpp" break; - case 346: /* type_specifier_nonarray: F32MAT4X3 */ -#line 2521 "MachineIndependent/glslang.y" + case 347: /* type_specifier_nonarray: F32MAT4X3 */ +#line 2530 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 9139 "MachineIndependent/glslang_tab.cpp" +#line 9169 "MachineIndependent/glslang_tab.cpp" break; - case 347: /* type_specifier_nonarray: F32MAT4X4 */ -#line 2527 "MachineIndependent/glslang.y" + case 348: /* type_specifier_nonarray: F32MAT4X4 */ +#line 2536 "MachineIndependent/glslang.y" { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 9150 "MachineIndependent/glslang_tab.cpp" +#line 9180 "MachineIndependent/glslang_tab.cpp" break; - case 348: /* type_specifier_nonarray: F64MAT2 */ -#line 2533 "MachineIndependent/glslang.y" + case 349: /* type_specifier_nonarray: F64MAT2 */ +#line 2542 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 9161 "MachineIndependent/glslang_tab.cpp" +#line 9191 "MachineIndependent/glslang_tab.cpp" break; - case 349: /* type_specifier_nonarray: F64MAT3 */ -#line 2539 "MachineIndependent/glslang.y" + case 350: /* type_specifier_nonarray: F64MAT3 */ +#line 2548 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 9172 "MachineIndependent/glslang_tab.cpp" +#line 9202 "MachineIndependent/glslang_tab.cpp" break; - case 350: /* type_specifier_nonarray: F64MAT4 */ -#line 2545 "MachineIndependent/glslang.y" + case 351: /* type_specifier_nonarray: F64MAT4 */ +#line 2554 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 9183 "MachineIndependent/glslang_tab.cpp" +#line 9213 "MachineIndependent/glslang_tab.cpp" break; - case 351: /* type_specifier_nonarray: F64MAT2X2 */ -#line 2551 "MachineIndependent/glslang.y" + case 352: /* type_specifier_nonarray: F64MAT2X2 */ +#line 2560 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 9194 "MachineIndependent/glslang_tab.cpp" +#line 9224 "MachineIndependent/glslang_tab.cpp" break; - case 352: /* type_specifier_nonarray: F64MAT2X3 */ -#line 2557 "MachineIndependent/glslang.y" + case 353: /* type_specifier_nonarray: F64MAT2X3 */ +#line 2566 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 9205 "MachineIndependent/glslang_tab.cpp" +#line 9235 "MachineIndependent/glslang_tab.cpp" break; - case 353: /* type_specifier_nonarray: F64MAT2X4 */ -#line 2563 "MachineIndependent/glslang.y" + case 354: /* type_specifier_nonarray: F64MAT2X4 */ +#line 2572 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 9216 "MachineIndependent/glslang_tab.cpp" +#line 9246 "MachineIndependent/glslang_tab.cpp" break; - case 354: /* type_specifier_nonarray: F64MAT3X2 */ -#line 2569 "MachineIndependent/glslang.y" + case 355: /* type_specifier_nonarray: F64MAT3X2 */ +#line 2578 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 9227 "MachineIndependent/glslang_tab.cpp" +#line 9257 "MachineIndependent/glslang_tab.cpp" break; - case 355: /* type_specifier_nonarray: F64MAT3X3 */ -#line 2575 "MachineIndependent/glslang.y" + case 356: /* type_specifier_nonarray: F64MAT3X3 */ +#line 2584 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 9238 "MachineIndependent/glslang_tab.cpp" +#line 9268 "MachineIndependent/glslang_tab.cpp" break; - case 356: /* type_specifier_nonarray: F64MAT3X4 */ -#line 2581 "MachineIndependent/glslang.y" + case 357: /* type_specifier_nonarray: F64MAT3X4 */ +#line 2590 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 9249 "MachineIndependent/glslang_tab.cpp" +#line 9279 "MachineIndependent/glslang_tab.cpp" break; - case 357: /* type_specifier_nonarray: F64MAT4X2 */ -#line 2587 "MachineIndependent/glslang.y" + case 358: /* type_specifier_nonarray: F64MAT4X2 */ +#line 2596 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 9260 "MachineIndependent/glslang_tab.cpp" +#line 9290 "MachineIndependent/glslang_tab.cpp" break; - case 358: /* type_specifier_nonarray: F64MAT4X3 */ -#line 2593 "MachineIndependent/glslang.y" + case 359: /* type_specifier_nonarray: F64MAT4X3 */ +#line 2602 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 9271 "MachineIndependent/glslang_tab.cpp" +#line 9301 "MachineIndependent/glslang_tab.cpp" break; - case 359: /* type_specifier_nonarray: F64MAT4X4 */ -#line 2599 "MachineIndependent/glslang.y" + case 360: /* type_specifier_nonarray: F64MAT4X4 */ +#line 2608 "MachineIndependent/glslang.y" { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 9282 "MachineIndependent/glslang_tab.cpp" +#line 9312 "MachineIndependent/glslang_tab.cpp" break; - case 360: /* type_specifier_nonarray: ACCSTRUCTNV */ -#line 2605 "MachineIndependent/glslang.y" + case 361: /* type_specifier_nonarray: ACCSTRUCTNV */ +#line 2614 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAccStruct; } -#line 9291 "MachineIndependent/glslang_tab.cpp" +#line 9321 "MachineIndependent/glslang_tab.cpp" break; - case 361: /* type_specifier_nonarray: ACCSTRUCTEXT */ -#line 2609 "MachineIndependent/glslang.y" + case 362: /* type_specifier_nonarray: ACCSTRUCTEXT */ +#line 2618 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAccStruct; } -#line 9300 "MachineIndependent/glslang_tab.cpp" +#line 9330 "MachineIndependent/glslang_tab.cpp" break; - case 362: /* type_specifier_nonarray: RAYQUERYEXT */ -#line 2613 "MachineIndependent/glslang.y" + case 363: /* type_specifier_nonarray: RAYQUERYEXT */ +#line 2622 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtRayQuery; } -#line 9309 "MachineIndependent/glslang_tab.cpp" +#line 9339 "MachineIndependent/glslang_tab.cpp" break; - case 363: /* type_specifier_nonarray: ATOMIC_UINT */ -#line 2617 "MachineIndependent/glslang.y" + case 364: /* type_specifier_nonarray: ATOMIC_UINT */ +#line 2626 "MachineIndependent/glslang.y" { parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } -#line 9319 "MachineIndependent/glslang_tab.cpp" +#line 9349 "MachineIndependent/glslang_tab.cpp" break; - case 364: /* type_specifier_nonarray: SAMPLER1D */ -#line 2622 "MachineIndependent/glslang.y" + case 365: /* type_specifier_nonarray: SAMPLER1D */ +#line 2631 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 9329 "MachineIndependent/glslang_tab.cpp" +#line 9359 "MachineIndependent/glslang_tab.cpp" break; - case 365: /* type_specifier_nonarray: SAMPLER2D */ -#line 2627 "MachineIndependent/glslang.y" + case 366: /* type_specifier_nonarray: SAMPLER2D */ +#line 2636 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 9339 "MachineIndependent/glslang_tab.cpp" +#line 9369 "MachineIndependent/glslang_tab.cpp" break; - case 366: /* type_specifier_nonarray: SAMPLER3D */ -#line 2632 "MachineIndependent/glslang.y" + case 367: /* type_specifier_nonarray: SAMPLER3D */ +#line 2641 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 9349 "MachineIndependent/glslang_tab.cpp" +#line 9379 "MachineIndependent/glslang_tab.cpp" break; - case 367: /* type_specifier_nonarray: SAMPLERCUBE */ -#line 2637 "MachineIndependent/glslang.y" + case 368: /* type_specifier_nonarray: SAMPLERCUBE */ +#line 2646 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 9359 "MachineIndependent/glslang_tab.cpp" +#line 9389 "MachineIndependent/glslang_tab.cpp" break; - case 368: /* type_specifier_nonarray: SAMPLER2DSHADOW */ -#line 2642 "MachineIndependent/glslang.y" + case 369: /* type_specifier_nonarray: SAMPLER2DSHADOW */ +#line 2651 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 9369 "MachineIndependent/glslang_tab.cpp" +#line 9399 "MachineIndependent/glslang_tab.cpp" break; - case 369: /* type_specifier_nonarray: SAMPLERCUBESHADOW */ -#line 2647 "MachineIndependent/glslang.y" + case 370: /* type_specifier_nonarray: SAMPLERCUBESHADOW */ +#line 2656 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 9379 "MachineIndependent/glslang_tab.cpp" +#line 9409 "MachineIndependent/glslang_tab.cpp" break; - case 370: /* type_specifier_nonarray: SAMPLER2DARRAY */ -#line 2652 "MachineIndependent/glslang.y" + case 371: /* type_specifier_nonarray: SAMPLER2DARRAY */ +#line 2661 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 9389 "MachineIndependent/glslang_tab.cpp" +#line 9419 "MachineIndependent/glslang_tab.cpp" break; - case 371: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */ -#line 2657 "MachineIndependent/glslang.y" + case 372: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */ +#line 2666 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 9399 "MachineIndependent/glslang_tab.cpp" +#line 9429 "MachineIndependent/glslang_tab.cpp" break; - case 372: /* type_specifier_nonarray: SAMPLER1DSHADOW */ -#line 2662 "MachineIndependent/glslang.y" + case 373: /* type_specifier_nonarray: SAMPLER1DSHADOW */ +#line 2671 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 9409 "MachineIndependent/glslang_tab.cpp" +#line 9439 "MachineIndependent/glslang_tab.cpp" break; - case 373: /* type_specifier_nonarray: SAMPLER1DARRAY */ -#line 2667 "MachineIndependent/glslang.y" + case 374: /* type_specifier_nonarray: SAMPLER1DARRAY */ +#line 2676 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 9419 "MachineIndependent/glslang_tab.cpp" +#line 9449 "MachineIndependent/glslang_tab.cpp" break; - case 374: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */ -#line 2672 "MachineIndependent/glslang.y" + case 375: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */ +#line 2681 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 9429 "MachineIndependent/glslang_tab.cpp" +#line 9459 "MachineIndependent/glslang_tab.cpp" break; - case 375: /* type_specifier_nonarray: SAMPLERCUBEARRAY */ -#line 2677 "MachineIndependent/glslang.y" + case 376: /* type_specifier_nonarray: SAMPLERCUBEARRAY */ +#line 2686 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 9439 "MachineIndependent/glslang_tab.cpp" +#line 9469 "MachineIndependent/glslang_tab.cpp" break; - case 376: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */ -#line 2682 "MachineIndependent/glslang.y" + case 377: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */ +#line 2691 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 9449 "MachineIndependent/glslang_tab.cpp" +#line 9479 "MachineIndependent/glslang_tab.cpp" break; - case 377: /* type_specifier_nonarray: F16SAMPLER1D */ -#line 2687 "MachineIndependent/glslang.y" + case 378: /* type_specifier_nonarray: F16SAMPLER1D */ +#line 2696 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd1D); } -#line 9460 "MachineIndependent/glslang_tab.cpp" +#line 9490 "MachineIndependent/glslang_tab.cpp" break; - case 378: /* type_specifier_nonarray: F16SAMPLER2D */ -#line 2693 "MachineIndependent/glslang.y" + case 379: /* type_specifier_nonarray: F16SAMPLER2D */ +#line 2702 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd2D); } -#line 9471 "MachineIndependent/glslang_tab.cpp" +#line 9501 "MachineIndependent/glslang_tab.cpp" break; - case 379: /* type_specifier_nonarray: F16SAMPLER3D */ -#line 2699 "MachineIndependent/glslang.y" + case 380: /* type_specifier_nonarray: F16SAMPLER3D */ +#line 2708 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd3D); } -#line 9482 "MachineIndependent/glslang_tab.cpp" +#line 9512 "MachineIndependent/glslang_tab.cpp" break; - case 380: /* type_specifier_nonarray: F16SAMPLERCUBE */ -#line 2705 "MachineIndependent/glslang.y" + case 381: /* type_specifier_nonarray: F16SAMPLERCUBE */ +#line 2714 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdCube); } -#line 9493 "MachineIndependent/glslang_tab.cpp" +#line 9523 "MachineIndependent/glslang_tab.cpp" break; - case 381: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */ -#line 2711 "MachineIndependent/glslang.y" + case 382: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */ +#line 2720 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true); } -#line 9504 "MachineIndependent/glslang_tab.cpp" +#line 9534 "MachineIndependent/glslang_tab.cpp" break; - case 382: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */ -#line 2717 "MachineIndependent/glslang.y" + case 383: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */ +#line 2726 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true); } -#line 9515 "MachineIndependent/glslang_tab.cpp" +#line 9545 "MachineIndependent/glslang_tab.cpp" break; - case 383: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */ -#line 2723 "MachineIndependent/glslang.y" + case 384: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */ +#line 2732 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true); } -#line 9526 "MachineIndependent/glslang_tab.cpp" +#line 9556 "MachineIndependent/glslang_tab.cpp" break; - case 384: /* type_specifier_nonarray: F16SAMPLER1DARRAY */ -#line 2729 "MachineIndependent/glslang.y" + case 385: /* type_specifier_nonarray: F16SAMPLER1DARRAY */ +#line 2738 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true); } -#line 9537 "MachineIndependent/glslang_tab.cpp" +#line 9567 "MachineIndependent/glslang_tab.cpp" break; - case 385: /* type_specifier_nonarray: F16SAMPLER2DARRAY */ -#line 2735 "MachineIndependent/glslang.y" + case 386: /* type_specifier_nonarray: F16SAMPLER2DARRAY */ +#line 2744 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true); } -#line 9548 "MachineIndependent/glslang_tab.cpp" +#line 9578 "MachineIndependent/glslang_tab.cpp" break; - case 386: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */ -#line 2741 "MachineIndependent/glslang.y" + case 387: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */ +#line 2750 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true); } -#line 9559 "MachineIndependent/glslang_tab.cpp" +#line 9589 "MachineIndependent/glslang_tab.cpp" break; - case 387: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */ -#line 2747 "MachineIndependent/glslang.y" + case 388: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */ +#line 2756 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true); } -#line 9570 "MachineIndependent/glslang_tab.cpp" +#line 9600 "MachineIndependent/glslang_tab.cpp" break; - case 388: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */ -#line 2753 "MachineIndependent/glslang.y" + case 389: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */ +#line 2762 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true); } -#line 9581 "MachineIndependent/glslang_tab.cpp" +#line 9611 "MachineIndependent/glslang_tab.cpp" break; - case 389: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */ -#line 2759 "MachineIndependent/glslang.y" + case 390: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */ +#line 2768 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true); } -#line 9592 "MachineIndependent/glslang_tab.cpp" +#line 9622 "MachineIndependent/glslang_tab.cpp" break; - case 390: /* type_specifier_nonarray: ISAMPLER1D */ -#line 2765 "MachineIndependent/glslang.y" + case 391: /* type_specifier_nonarray: ISAMPLER1D */ +#line 2774 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 9602 "MachineIndependent/glslang_tab.cpp" +#line 9632 "MachineIndependent/glslang_tab.cpp" break; - case 391: /* type_specifier_nonarray: ISAMPLER2D */ -#line 2770 "MachineIndependent/glslang.y" + case 392: /* type_specifier_nonarray: ISAMPLER2D */ +#line 2779 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 9612 "MachineIndependent/glslang_tab.cpp" +#line 9642 "MachineIndependent/glslang_tab.cpp" break; - case 392: /* type_specifier_nonarray: ISAMPLER3D */ -#line 2775 "MachineIndependent/glslang.y" + case 393: /* type_specifier_nonarray: ISAMPLER3D */ +#line 2784 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 9622 "MachineIndependent/glslang_tab.cpp" +#line 9652 "MachineIndependent/glslang_tab.cpp" break; - case 393: /* type_specifier_nonarray: ISAMPLERCUBE */ -#line 2780 "MachineIndependent/glslang.y" + case 394: /* type_specifier_nonarray: ISAMPLERCUBE */ +#line 2789 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 9632 "MachineIndependent/glslang_tab.cpp" +#line 9662 "MachineIndependent/glslang_tab.cpp" break; - case 394: /* type_specifier_nonarray: ISAMPLER2DARRAY */ -#line 2785 "MachineIndependent/glslang.y" + case 395: /* type_specifier_nonarray: ISAMPLER2DARRAY */ +#line 2794 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 9642 "MachineIndependent/glslang_tab.cpp" +#line 9672 "MachineIndependent/glslang_tab.cpp" break; - case 395: /* type_specifier_nonarray: USAMPLER2D */ -#line 2790 "MachineIndependent/glslang.y" + case 396: /* type_specifier_nonarray: USAMPLER2D */ +#line 2799 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 9652 "MachineIndependent/glslang_tab.cpp" +#line 9682 "MachineIndependent/glslang_tab.cpp" break; - case 396: /* type_specifier_nonarray: USAMPLER3D */ -#line 2795 "MachineIndependent/glslang.y" + case 397: /* type_specifier_nonarray: USAMPLER3D */ +#line 2804 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 9662 "MachineIndependent/glslang_tab.cpp" +#line 9692 "MachineIndependent/glslang_tab.cpp" break; - case 397: /* type_specifier_nonarray: USAMPLERCUBE */ -#line 2800 "MachineIndependent/glslang.y" + case 398: /* type_specifier_nonarray: USAMPLERCUBE */ +#line 2809 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 9672 "MachineIndependent/glslang_tab.cpp" +#line 9702 "MachineIndependent/glslang_tab.cpp" break; - case 398: /* type_specifier_nonarray: ISAMPLER1DARRAY */ -#line 2805 "MachineIndependent/glslang.y" + case 399: /* type_specifier_nonarray: ISAMPLER1DARRAY */ +#line 2814 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 9682 "MachineIndependent/glslang_tab.cpp" +#line 9712 "MachineIndependent/glslang_tab.cpp" break; - case 399: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */ -#line 2810 "MachineIndependent/glslang.y" + case 400: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */ +#line 2819 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 9692 "MachineIndependent/glslang_tab.cpp" +#line 9722 "MachineIndependent/glslang_tab.cpp" break; - case 400: /* type_specifier_nonarray: USAMPLER1D */ -#line 2815 "MachineIndependent/glslang.y" + case 401: /* type_specifier_nonarray: USAMPLER1D */ +#line 2824 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 9702 "MachineIndependent/glslang_tab.cpp" +#line 9732 "MachineIndependent/glslang_tab.cpp" break; - case 401: /* type_specifier_nonarray: USAMPLER1DARRAY */ -#line 2820 "MachineIndependent/glslang.y" + case 402: /* type_specifier_nonarray: USAMPLER1DARRAY */ +#line 2829 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 9712 "MachineIndependent/glslang_tab.cpp" +#line 9742 "MachineIndependent/glslang_tab.cpp" break; - case 402: /* type_specifier_nonarray: USAMPLERCUBEARRAY */ -#line 2825 "MachineIndependent/glslang.y" + case 403: /* type_specifier_nonarray: USAMPLERCUBEARRAY */ +#line 2834 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 9722 "MachineIndependent/glslang_tab.cpp" +#line 9752 "MachineIndependent/glslang_tab.cpp" break; - case 403: /* type_specifier_nonarray: TEXTURECUBEARRAY */ -#line 2830 "MachineIndependent/glslang.y" + case 404: /* type_specifier_nonarray: TEXTURECUBEARRAY */ +#line 2839 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 9732 "MachineIndependent/glslang_tab.cpp" +#line 9762 "MachineIndependent/glslang_tab.cpp" break; - case 404: /* type_specifier_nonarray: ITEXTURECUBEARRAY */ -#line 2835 "MachineIndependent/glslang.y" + case 405: /* type_specifier_nonarray: ITEXTURECUBEARRAY */ +#line 2844 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 9742 "MachineIndependent/glslang_tab.cpp" +#line 9772 "MachineIndependent/glslang_tab.cpp" break; - case 405: /* type_specifier_nonarray: UTEXTURECUBEARRAY */ -#line 2840 "MachineIndependent/glslang.y" + case 406: /* type_specifier_nonarray: UTEXTURECUBEARRAY */ +#line 2849 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 9752 "MachineIndependent/glslang_tab.cpp" +#line 9782 "MachineIndependent/glslang_tab.cpp" break; - case 406: /* type_specifier_nonarray: USAMPLER2DARRAY */ -#line 2845 "MachineIndependent/glslang.y" + case 407: /* type_specifier_nonarray: USAMPLER2DARRAY */ +#line 2854 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 9762 "MachineIndependent/glslang_tab.cpp" +#line 9792 "MachineIndependent/glslang_tab.cpp" break; - case 407: /* type_specifier_nonarray: TEXTURE2D */ -#line 2850 "MachineIndependent/glslang.y" + case 408: /* type_specifier_nonarray: TEXTURE2D */ +#line 2859 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 9772 "MachineIndependent/glslang_tab.cpp" +#line 9802 "MachineIndependent/glslang_tab.cpp" break; - case 408: /* type_specifier_nonarray: TEXTURE3D */ -#line 2855 "MachineIndependent/glslang.y" + case 409: /* type_specifier_nonarray: TEXTURE3D */ +#line 2864 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 9782 "MachineIndependent/glslang_tab.cpp" +#line 9812 "MachineIndependent/glslang_tab.cpp" break; - case 409: /* type_specifier_nonarray: TEXTURE2DARRAY */ -#line 2860 "MachineIndependent/glslang.y" + case 410: /* type_specifier_nonarray: TEXTURE2DARRAY */ +#line 2869 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 9792 "MachineIndependent/glslang_tab.cpp" +#line 9822 "MachineIndependent/glslang_tab.cpp" break; - case 410: /* type_specifier_nonarray: TEXTURECUBE */ -#line 2865 "MachineIndependent/glslang.y" + case 411: /* type_specifier_nonarray: TEXTURECUBE */ +#line 2874 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 9802 "MachineIndependent/glslang_tab.cpp" +#line 9832 "MachineIndependent/glslang_tab.cpp" break; - case 411: /* type_specifier_nonarray: ITEXTURE2D */ -#line 2870 "MachineIndependent/glslang.y" + case 412: /* type_specifier_nonarray: ITEXTURE2D */ +#line 2879 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 9812 "MachineIndependent/glslang_tab.cpp" +#line 9842 "MachineIndependent/glslang_tab.cpp" break; - case 412: /* type_specifier_nonarray: ITEXTURE3D */ -#line 2875 "MachineIndependent/glslang.y" + case 413: /* type_specifier_nonarray: ITEXTURE3D */ +#line 2884 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 9822 "MachineIndependent/glslang_tab.cpp" +#line 9852 "MachineIndependent/glslang_tab.cpp" break; - case 413: /* type_specifier_nonarray: ITEXTURECUBE */ -#line 2880 "MachineIndependent/glslang.y" + case 414: /* type_specifier_nonarray: ITEXTURECUBE */ +#line 2889 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 9832 "MachineIndependent/glslang_tab.cpp" +#line 9862 "MachineIndependent/glslang_tab.cpp" break; - case 414: /* type_specifier_nonarray: ITEXTURE2DARRAY */ -#line 2885 "MachineIndependent/glslang.y" + case 415: /* type_specifier_nonarray: ITEXTURE2DARRAY */ +#line 2894 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 9842 "MachineIndependent/glslang_tab.cpp" +#line 9872 "MachineIndependent/glslang_tab.cpp" break; - case 415: /* type_specifier_nonarray: UTEXTURE2D */ -#line 2890 "MachineIndependent/glslang.y" + case 416: /* type_specifier_nonarray: UTEXTURE2D */ +#line 2899 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 9852 "MachineIndependent/glslang_tab.cpp" +#line 9882 "MachineIndependent/glslang_tab.cpp" break; - case 416: /* type_specifier_nonarray: UTEXTURE3D */ -#line 2895 "MachineIndependent/glslang.y" + case 417: /* type_specifier_nonarray: UTEXTURE3D */ +#line 2904 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 9862 "MachineIndependent/glslang_tab.cpp" +#line 9892 "MachineIndependent/glslang_tab.cpp" break; - case 417: /* type_specifier_nonarray: UTEXTURECUBE */ -#line 2900 "MachineIndependent/glslang.y" + case 418: /* type_specifier_nonarray: UTEXTURECUBE */ +#line 2909 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 9872 "MachineIndependent/glslang_tab.cpp" +#line 9902 "MachineIndependent/glslang_tab.cpp" break; - case 418: /* type_specifier_nonarray: UTEXTURE2DARRAY */ -#line 2905 "MachineIndependent/glslang.y" + case 419: /* type_specifier_nonarray: UTEXTURE2DARRAY */ +#line 2914 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 9882 "MachineIndependent/glslang_tab.cpp" +#line 9912 "MachineIndependent/glslang_tab.cpp" break; - case 419: /* type_specifier_nonarray: SAMPLER */ -#line 2910 "MachineIndependent/glslang.y" + case 420: /* type_specifier_nonarray: SAMPLER */ +#line 2919 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } -#line 9892 "MachineIndependent/glslang_tab.cpp" +#line 9922 "MachineIndependent/glslang_tab.cpp" break; - case 420: /* type_specifier_nonarray: SAMPLERSHADOW */ -#line 2915 "MachineIndependent/glslang.y" + case 421: /* type_specifier_nonarray: SAMPLERSHADOW */ +#line 2924 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } -#line 9902 "MachineIndependent/glslang_tab.cpp" +#line 9932 "MachineIndependent/glslang_tab.cpp" break; - case 421: /* type_specifier_nonarray: SAMPLER2DRECT */ -#line 2920 "MachineIndependent/glslang.y" + case 422: /* type_specifier_nonarray: SAMPLER2DRECT */ +#line 2929 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 9912 "MachineIndependent/glslang_tab.cpp" +#line 9942 "MachineIndependent/glslang_tab.cpp" break; - case 422: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */ -#line 2925 "MachineIndependent/glslang.y" + case 423: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */ +#line 2934 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 9922 "MachineIndependent/glslang_tab.cpp" +#line 9952 "MachineIndependent/glslang_tab.cpp" break; - case 423: /* type_specifier_nonarray: F16SAMPLER2DRECT */ -#line 2930 "MachineIndependent/glslang.y" + case 424: /* type_specifier_nonarray: F16SAMPLER2DRECT */ +#line 2939 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdRect); } -#line 9933 "MachineIndependent/glslang_tab.cpp" +#line 9963 "MachineIndependent/glslang_tab.cpp" break; - case 424: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */ -#line 2936 "MachineIndependent/glslang.y" + case 425: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */ +#line 2945 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true); } -#line 9944 "MachineIndependent/glslang_tab.cpp" +#line 9974 "MachineIndependent/glslang_tab.cpp" break; - case 425: /* type_specifier_nonarray: ISAMPLER2DRECT */ -#line 2942 "MachineIndependent/glslang.y" + case 426: /* type_specifier_nonarray: ISAMPLER2DRECT */ +#line 2951 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 9954 "MachineIndependent/glslang_tab.cpp" +#line 9984 "MachineIndependent/glslang_tab.cpp" break; - case 426: /* type_specifier_nonarray: USAMPLER2DRECT */ -#line 2947 "MachineIndependent/glslang.y" + case 427: /* type_specifier_nonarray: USAMPLER2DRECT */ +#line 2956 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 9964 "MachineIndependent/glslang_tab.cpp" +#line 9994 "MachineIndependent/glslang_tab.cpp" break; - case 427: /* type_specifier_nonarray: SAMPLERBUFFER */ -#line 2952 "MachineIndependent/glslang.y" + case 428: /* type_specifier_nonarray: SAMPLERBUFFER */ +#line 2961 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 9974 "MachineIndependent/glslang_tab.cpp" +#line 10004 "MachineIndependent/glslang_tab.cpp" break; - case 428: /* type_specifier_nonarray: F16SAMPLERBUFFER */ -#line 2957 "MachineIndependent/glslang.y" + case 429: /* type_specifier_nonarray: F16SAMPLERBUFFER */ +#line 2966 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer); } -#line 9985 "MachineIndependent/glslang_tab.cpp" +#line 10015 "MachineIndependent/glslang_tab.cpp" break; - case 429: /* type_specifier_nonarray: ISAMPLERBUFFER */ -#line 2963 "MachineIndependent/glslang.y" + case 430: /* type_specifier_nonarray: ISAMPLERBUFFER */ +#line 2972 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 9995 "MachineIndependent/glslang_tab.cpp" +#line 10025 "MachineIndependent/glslang_tab.cpp" break; - case 430: /* type_specifier_nonarray: USAMPLERBUFFER */ -#line 2968 "MachineIndependent/glslang.y" + case 431: /* type_specifier_nonarray: USAMPLERBUFFER */ +#line 2977 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 10005 "MachineIndependent/glslang_tab.cpp" +#line 10035 "MachineIndependent/glslang_tab.cpp" break; - case 431: /* type_specifier_nonarray: SAMPLER2DMS */ -#line 2973 "MachineIndependent/glslang.y" + case 432: /* type_specifier_nonarray: SAMPLER2DMS */ +#line 2982 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 10015 "MachineIndependent/glslang_tab.cpp" +#line 10045 "MachineIndependent/glslang_tab.cpp" break; - case 432: /* type_specifier_nonarray: F16SAMPLER2DMS */ -#line 2978 "MachineIndependent/glslang.y" + case 433: /* type_specifier_nonarray: F16SAMPLER2DMS */ +#line 2987 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true); } -#line 10026 "MachineIndependent/glslang_tab.cpp" +#line 10056 "MachineIndependent/glslang_tab.cpp" break; - case 433: /* type_specifier_nonarray: ISAMPLER2DMS */ -#line 2984 "MachineIndependent/glslang.y" + case 434: /* type_specifier_nonarray: ISAMPLER2DMS */ +#line 2993 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 10036 "MachineIndependent/glslang_tab.cpp" +#line 10066 "MachineIndependent/glslang_tab.cpp" break; - case 434: /* type_specifier_nonarray: USAMPLER2DMS */ -#line 2989 "MachineIndependent/glslang.y" + case 435: /* type_specifier_nonarray: USAMPLER2DMS */ +#line 2998 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 10046 "MachineIndependent/glslang_tab.cpp" +#line 10076 "MachineIndependent/glslang_tab.cpp" break; - case 435: /* type_specifier_nonarray: SAMPLER2DMSARRAY */ -#line 2994 "MachineIndependent/glslang.y" + case 436: /* type_specifier_nonarray: SAMPLER2DMSARRAY */ +#line 3003 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 10056 "MachineIndependent/glslang_tab.cpp" +#line 10086 "MachineIndependent/glslang_tab.cpp" break; - case 436: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */ -#line 2999 "MachineIndependent/glslang.y" + case 437: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */ +#line 3008 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true); } -#line 10067 "MachineIndependent/glslang_tab.cpp" +#line 10097 "MachineIndependent/glslang_tab.cpp" break; - case 437: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */ -#line 3005 "MachineIndependent/glslang.y" + case 438: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */ +#line 3014 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 10077 "MachineIndependent/glslang_tab.cpp" +#line 10107 "MachineIndependent/glslang_tab.cpp" break; - case 438: /* type_specifier_nonarray: USAMPLER2DMSARRAY */ -#line 3010 "MachineIndependent/glslang.y" + case 439: /* type_specifier_nonarray: USAMPLER2DMSARRAY */ +#line 3019 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 10087 "MachineIndependent/glslang_tab.cpp" +#line 10117 "MachineIndependent/glslang_tab.cpp" break; - case 439: /* type_specifier_nonarray: TEXTURE1D */ -#line 3015 "MachineIndependent/glslang.y" + case 440: /* type_specifier_nonarray: TEXTURE1D */ +#line 3024 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 10097 "MachineIndependent/glslang_tab.cpp" +#line 10127 "MachineIndependent/glslang_tab.cpp" break; - case 440: /* type_specifier_nonarray: F16TEXTURE1D */ -#line 3020 "MachineIndependent/glslang.y" + case 441: /* type_specifier_nonarray: F16TEXTURE1D */ +#line 3029 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D); } -#line 10108 "MachineIndependent/glslang_tab.cpp" +#line 10138 "MachineIndependent/glslang_tab.cpp" break; - case 441: /* type_specifier_nonarray: F16TEXTURE2D */ -#line 3026 "MachineIndependent/glslang.y" + case 442: /* type_specifier_nonarray: F16TEXTURE2D */ +#line 3035 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D); } -#line 10119 "MachineIndependent/glslang_tab.cpp" +#line 10149 "MachineIndependent/glslang_tab.cpp" break; - case 442: /* type_specifier_nonarray: F16TEXTURE3D */ -#line 3032 "MachineIndependent/glslang.y" + case 443: /* type_specifier_nonarray: F16TEXTURE3D */ +#line 3041 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D); } -#line 10130 "MachineIndependent/glslang_tab.cpp" +#line 10160 "MachineIndependent/glslang_tab.cpp" break; - case 443: /* type_specifier_nonarray: F16TEXTURECUBE */ -#line 3038 "MachineIndependent/glslang.y" + case 444: /* type_specifier_nonarray: F16TEXTURECUBE */ +#line 3047 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube); } -#line 10141 "MachineIndependent/glslang_tab.cpp" +#line 10171 "MachineIndependent/glslang_tab.cpp" break; - case 444: /* type_specifier_nonarray: TEXTURE1DARRAY */ -#line 3044 "MachineIndependent/glslang.y" + case 445: /* type_specifier_nonarray: TEXTURE1DARRAY */ +#line 3053 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 10151 "MachineIndependent/glslang_tab.cpp" +#line 10181 "MachineIndependent/glslang_tab.cpp" break; - case 445: /* type_specifier_nonarray: F16TEXTURE1DARRAY */ -#line 3049 "MachineIndependent/glslang.y" + case 446: /* type_specifier_nonarray: F16TEXTURE1DARRAY */ +#line 3058 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true); } -#line 10162 "MachineIndependent/glslang_tab.cpp" +#line 10192 "MachineIndependent/glslang_tab.cpp" break; - case 446: /* type_specifier_nonarray: F16TEXTURE2DARRAY */ -#line 3055 "MachineIndependent/glslang.y" + case 447: /* type_specifier_nonarray: F16TEXTURE2DARRAY */ +#line 3064 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true); } -#line 10173 "MachineIndependent/glslang_tab.cpp" +#line 10203 "MachineIndependent/glslang_tab.cpp" break; - case 447: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */ -#line 3061 "MachineIndependent/glslang.y" + case 448: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */ +#line 3070 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true); } -#line 10184 "MachineIndependent/glslang_tab.cpp" +#line 10214 "MachineIndependent/glslang_tab.cpp" break; - case 448: /* type_specifier_nonarray: ITEXTURE1D */ -#line 3067 "MachineIndependent/glslang.y" + case 449: /* type_specifier_nonarray: ITEXTURE1D */ +#line 3076 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 10194 "MachineIndependent/glslang_tab.cpp" +#line 10224 "MachineIndependent/glslang_tab.cpp" break; - case 449: /* type_specifier_nonarray: ITEXTURE1DARRAY */ -#line 3072 "MachineIndependent/glslang.y" + case 450: /* type_specifier_nonarray: ITEXTURE1DARRAY */ +#line 3081 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 10204 "MachineIndependent/glslang_tab.cpp" +#line 10234 "MachineIndependent/glslang_tab.cpp" break; - case 450: /* type_specifier_nonarray: UTEXTURE1D */ -#line 3077 "MachineIndependent/glslang.y" + case 451: /* type_specifier_nonarray: UTEXTURE1D */ +#line 3086 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 10214 "MachineIndependent/glslang_tab.cpp" +#line 10244 "MachineIndependent/glslang_tab.cpp" break; - case 451: /* type_specifier_nonarray: UTEXTURE1DARRAY */ -#line 3082 "MachineIndependent/glslang.y" + case 452: /* type_specifier_nonarray: UTEXTURE1DARRAY */ +#line 3091 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 10224 "MachineIndependent/glslang_tab.cpp" +#line 10254 "MachineIndependent/glslang_tab.cpp" break; - case 452: /* type_specifier_nonarray: TEXTURE2DRECT */ -#line 3087 "MachineIndependent/glslang.y" + case 453: /* type_specifier_nonarray: TEXTURE2DRECT */ +#line 3096 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 10234 "MachineIndependent/glslang_tab.cpp" +#line 10264 "MachineIndependent/glslang_tab.cpp" break; - case 453: /* type_specifier_nonarray: F16TEXTURE2DRECT */ -#line 3092 "MachineIndependent/glslang.y" + case 454: /* type_specifier_nonarray: F16TEXTURE2DRECT */ +#line 3101 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect); } -#line 10245 "MachineIndependent/glslang_tab.cpp" +#line 10275 "MachineIndependent/glslang_tab.cpp" break; - case 454: /* type_specifier_nonarray: ITEXTURE2DRECT */ -#line 3098 "MachineIndependent/glslang.y" + case 455: /* type_specifier_nonarray: ITEXTURE2DRECT */ +#line 3107 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 10255 "MachineIndependent/glslang_tab.cpp" +#line 10285 "MachineIndependent/glslang_tab.cpp" break; - case 455: /* type_specifier_nonarray: UTEXTURE2DRECT */ -#line 3103 "MachineIndependent/glslang.y" + case 456: /* type_specifier_nonarray: UTEXTURE2DRECT */ +#line 3112 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 10265 "MachineIndependent/glslang_tab.cpp" +#line 10295 "MachineIndependent/glslang_tab.cpp" break; - case 456: /* type_specifier_nonarray: TEXTUREBUFFER */ -#line 3108 "MachineIndependent/glslang.y" + case 457: /* type_specifier_nonarray: TEXTUREBUFFER */ +#line 3117 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 10275 "MachineIndependent/glslang_tab.cpp" +#line 10305 "MachineIndependent/glslang_tab.cpp" break; - case 457: /* type_specifier_nonarray: F16TEXTUREBUFFER */ -#line 3113 "MachineIndependent/glslang.y" + case 458: /* type_specifier_nonarray: F16TEXTUREBUFFER */ +#line 3122 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer); } -#line 10286 "MachineIndependent/glslang_tab.cpp" +#line 10316 "MachineIndependent/glslang_tab.cpp" break; - case 458: /* type_specifier_nonarray: ITEXTUREBUFFER */ -#line 3119 "MachineIndependent/glslang.y" + case 459: /* type_specifier_nonarray: ITEXTUREBUFFER */ +#line 3128 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 10296 "MachineIndependent/glslang_tab.cpp" +#line 10326 "MachineIndependent/glslang_tab.cpp" break; - case 459: /* type_specifier_nonarray: UTEXTUREBUFFER */ -#line 3124 "MachineIndependent/glslang.y" + case 460: /* type_specifier_nonarray: UTEXTUREBUFFER */ +#line 3133 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 10306 "MachineIndependent/glslang_tab.cpp" +#line 10336 "MachineIndependent/glslang_tab.cpp" break; - case 460: /* type_specifier_nonarray: TEXTURE2DMS */ -#line 3129 "MachineIndependent/glslang.y" + case 461: /* type_specifier_nonarray: TEXTURE2DMS */ +#line 3138 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 10316 "MachineIndependent/glslang_tab.cpp" +#line 10346 "MachineIndependent/glslang_tab.cpp" break; - case 461: /* type_specifier_nonarray: F16TEXTURE2DMS */ -#line 3134 "MachineIndependent/glslang.y" + case 462: /* type_specifier_nonarray: F16TEXTURE2DMS */ +#line 3143 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true); } -#line 10327 "MachineIndependent/glslang_tab.cpp" +#line 10357 "MachineIndependent/glslang_tab.cpp" break; - case 462: /* type_specifier_nonarray: ITEXTURE2DMS */ -#line 3140 "MachineIndependent/glslang.y" + case 463: /* type_specifier_nonarray: ITEXTURE2DMS */ +#line 3149 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 10337 "MachineIndependent/glslang_tab.cpp" +#line 10367 "MachineIndependent/glslang_tab.cpp" break; - case 463: /* type_specifier_nonarray: UTEXTURE2DMS */ -#line 3145 "MachineIndependent/glslang.y" + case 464: /* type_specifier_nonarray: UTEXTURE2DMS */ +#line 3154 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 10347 "MachineIndependent/glslang_tab.cpp" +#line 10377 "MachineIndependent/glslang_tab.cpp" break; - case 464: /* type_specifier_nonarray: TEXTURE2DMSARRAY */ -#line 3150 "MachineIndependent/glslang.y" + case 465: /* type_specifier_nonarray: TEXTURE2DMSARRAY */ +#line 3159 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 10357 "MachineIndependent/glslang_tab.cpp" +#line 10387 "MachineIndependent/glslang_tab.cpp" break; - case 465: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */ -#line 3155 "MachineIndependent/glslang.y" + case 466: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */ +#line 3164 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true); } -#line 10368 "MachineIndependent/glslang_tab.cpp" +#line 10398 "MachineIndependent/glslang_tab.cpp" break; - case 466: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */ -#line 3161 "MachineIndependent/glslang.y" + case 467: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */ +#line 3170 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 10378 "MachineIndependent/glslang_tab.cpp" +#line 10408 "MachineIndependent/glslang_tab.cpp" break; - case 467: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */ -#line 3166 "MachineIndependent/glslang.y" + case 468: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */ +#line 3175 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 10388 "MachineIndependent/glslang_tab.cpp" +#line 10418 "MachineIndependent/glslang_tab.cpp" break; - case 468: /* type_specifier_nonarray: IMAGE1D */ -#line 3171 "MachineIndependent/glslang.y" + case 469: /* type_specifier_nonarray: IMAGE1D */ +#line 3180 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 10398 "MachineIndependent/glslang_tab.cpp" +#line 10428 "MachineIndependent/glslang_tab.cpp" break; - case 469: /* type_specifier_nonarray: F16IMAGE1D */ -#line 3176 "MachineIndependent/glslang.y" + case 470: /* type_specifier_nonarray: F16IMAGE1D */ +#line 3185 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D); } -#line 10409 "MachineIndependent/glslang_tab.cpp" +#line 10439 "MachineIndependent/glslang_tab.cpp" break; - case 470: /* type_specifier_nonarray: IIMAGE1D */ -#line 3182 "MachineIndependent/glslang.y" + case 471: /* type_specifier_nonarray: IIMAGE1D */ +#line 3191 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 10419 "MachineIndependent/glslang_tab.cpp" +#line 10449 "MachineIndependent/glslang_tab.cpp" break; - case 471: /* type_specifier_nonarray: UIMAGE1D */ -#line 3187 "MachineIndependent/glslang.y" + case 472: /* type_specifier_nonarray: UIMAGE1D */ +#line 3196 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 10429 "MachineIndependent/glslang_tab.cpp" +#line 10459 "MachineIndependent/glslang_tab.cpp" break; - case 472: /* type_specifier_nonarray: IMAGE2D */ -#line 3192 "MachineIndependent/glslang.y" + case 473: /* type_specifier_nonarray: IMAGE2D */ +#line 3201 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 10439 "MachineIndependent/glslang_tab.cpp" +#line 10469 "MachineIndependent/glslang_tab.cpp" break; - case 473: /* type_specifier_nonarray: F16IMAGE2D */ -#line 3197 "MachineIndependent/glslang.y" + case 474: /* type_specifier_nonarray: F16IMAGE2D */ +#line 3206 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D); } -#line 10450 "MachineIndependent/glslang_tab.cpp" +#line 10480 "MachineIndependent/glslang_tab.cpp" break; - case 474: /* type_specifier_nonarray: IIMAGE2D */ -#line 3203 "MachineIndependent/glslang.y" + case 475: /* type_specifier_nonarray: IIMAGE2D */ +#line 3212 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 10460 "MachineIndependent/glslang_tab.cpp" +#line 10490 "MachineIndependent/glslang_tab.cpp" break; - case 475: /* type_specifier_nonarray: UIMAGE2D */ -#line 3208 "MachineIndependent/glslang.y" + case 476: /* type_specifier_nonarray: UIMAGE2D */ +#line 3217 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 10470 "MachineIndependent/glslang_tab.cpp" +#line 10500 "MachineIndependent/glslang_tab.cpp" break; - case 476: /* type_specifier_nonarray: IMAGE3D */ -#line 3213 "MachineIndependent/glslang.y" + case 477: /* type_specifier_nonarray: IMAGE3D */ +#line 3222 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 10480 "MachineIndependent/glslang_tab.cpp" +#line 10510 "MachineIndependent/glslang_tab.cpp" break; - case 477: /* type_specifier_nonarray: F16IMAGE3D */ -#line 3218 "MachineIndependent/glslang.y" + case 478: /* type_specifier_nonarray: F16IMAGE3D */ +#line 3227 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D); } -#line 10491 "MachineIndependent/glslang_tab.cpp" +#line 10521 "MachineIndependent/glslang_tab.cpp" break; - case 478: /* type_specifier_nonarray: IIMAGE3D */ -#line 3224 "MachineIndependent/glslang.y" + case 479: /* type_specifier_nonarray: IIMAGE3D */ +#line 3233 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 10501 "MachineIndependent/glslang_tab.cpp" +#line 10531 "MachineIndependent/glslang_tab.cpp" break; - case 479: /* type_specifier_nonarray: UIMAGE3D */ -#line 3229 "MachineIndependent/glslang.y" + case 480: /* type_specifier_nonarray: UIMAGE3D */ +#line 3238 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 10511 "MachineIndependent/glslang_tab.cpp" +#line 10541 "MachineIndependent/glslang_tab.cpp" break; - case 480: /* type_specifier_nonarray: IMAGE2DRECT */ -#line 3234 "MachineIndependent/glslang.y" + case 481: /* type_specifier_nonarray: IMAGE2DRECT */ +#line 3243 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 10521 "MachineIndependent/glslang_tab.cpp" +#line 10551 "MachineIndependent/glslang_tab.cpp" break; - case 481: /* type_specifier_nonarray: F16IMAGE2DRECT */ -#line 3239 "MachineIndependent/glslang.y" + case 482: /* type_specifier_nonarray: F16IMAGE2DRECT */ +#line 3248 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect); } -#line 10532 "MachineIndependent/glslang_tab.cpp" +#line 10562 "MachineIndependent/glslang_tab.cpp" break; - case 482: /* type_specifier_nonarray: IIMAGE2DRECT */ -#line 3245 "MachineIndependent/glslang.y" + case 483: /* type_specifier_nonarray: IIMAGE2DRECT */ +#line 3254 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 10542 "MachineIndependent/glslang_tab.cpp" +#line 10572 "MachineIndependent/glslang_tab.cpp" break; - case 483: /* type_specifier_nonarray: UIMAGE2DRECT */ -#line 3250 "MachineIndependent/glslang.y" + case 484: /* type_specifier_nonarray: UIMAGE2DRECT */ +#line 3259 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 10552 "MachineIndependent/glslang_tab.cpp" +#line 10582 "MachineIndependent/glslang_tab.cpp" break; - case 484: /* type_specifier_nonarray: IMAGECUBE */ -#line 3255 "MachineIndependent/glslang.y" + case 485: /* type_specifier_nonarray: IMAGECUBE */ +#line 3264 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 10562 "MachineIndependent/glslang_tab.cpp" +#line 10592 "MachineIndependent/glslang_tab.cpp" break; - case 485: /* type_specifier_nonarray: F16IMAGECUBE */ -#line 3260 "MachineIndependent/glslang.y" + case 486: /* type_specifier_nonarray: F16IMAGECUBE */ +#line 3269 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube); } -#line 10573 "MachineIndependent/glslang_tab.cpp" +#line 10603 "MachineIndependent/glslang_tab.cpp" break; - case 486: /* type_specifier_nonarray: IIMAGECUBE */ -#line 3266 "MachineIndependent/glslang.y" + case 487: /* type_specifier_nonarray: IIMAGECUBE */ +#line 3275 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 10583 "MachineIndependent/glslang_tab.cpp" +#line 10613 "MachineIndependent/glslang_tab.cpp" break; - case 487: /* type_specifier_nonarray: UIMAGECUBE */ -#line 3271 "MachineIndependent/glslang.y" + case 488: /* type_specifier_nonarray: UIMAGECUBE */ +#line 3280 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 10593 "MachineIndependent/glslang_tab.cpp" +#line 10623 "MachineIndependent/glslang_tab.cpp" break; - case 488: /* type_specifier_nonarray: IMAGEBUFFER */ -#line 3276 "MachineIndependent/glslang.y" + case 489: /* type_specifier_nonarray: IMAGEBUFFER */ +#line 3285 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 10603 "MachineIndependent/glslang_tab.cpp" +#line 10633 "MachineIndependent/glslang_tab.cpp" break; - case 489: /* type_specifier_nonarray: F16IMAGEBUFFER */ -#line 3281 "MachineIndependent/glslang.y" + case 490: /* type_specifier_nonarray: F16IMAGEBUFFER */ +#line 3290 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer); } -#line 10614 "MachineIndependent/glslang_tab.cpp" +#line 10644 "MachineIndependent/glslang_tab.cpp" break; - case 490: /* type_specifier_nonarray: IIMAGEBUFFER */ -#line 3287 "MachineIndependent/glslang.y" + case 491: /* type_specifier_nonarray: IIMAGEBUFFER */ +#line 3296 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } -#line 10624 "MachineIndependent/glslang_tab.cpp" +#line 10654 "MachineIndependent/glslang_tab.cpp" break; - case 491: /* type_specifier_nonarray: UIMAGEBUFFER */ -#line 3292 "MachineIndependent/glslang.y" + case 492: /* type_specifier_nonarray: UIMAGEBUFFER */ +#line 3301 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } -#line 10634 "MachineIndependent/glslang_tab.cpp" +#line 10664 "MachineIndependent/glslang_tab.cpp" break; - case 492: /* type_specifier_nonarray: IMAGE1DARRAY */ -#line 3297 "MachineIndependent/glslang.y" + case 493: /* type_specifier_nonarray: IMAGE1DARRAY */ +#line 3306 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } -#line 10644 "MachineIndependent/glslang_tab.cpp" +#line 10674 "MachineIndependent/glslang_tab.cpp" break; - case 493: /* type_specifier_nonarray: F16IMAGE1DARRAY */ -#line 3302 "MachineIndependent/glslang.y" + case 494: /* type_specifier_nonarray: F16IMAGE1DARRAY */ +#line 3311 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true); } -#line 10655 "MachineIndependent/glslang_tab.cpp" +#line 10685 "MachineIndependent/glslang_tab.cpp" break; - case 494: /* type_specifier_nonarray: IIMAGE1DARRAY */ -#line 3308 "MachineIndependent/glslang.y" + case 495: /* type_specifier_nonarray: IIMAGE1DARRAY */ +#line 3317 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } -#line 10665 "MachineIndependent/glslang_tab.cpp" +#line 10695 "MachineIndependent/glslang_tab.cpp" break; - case 495: /* type_specifier_nonarray: UIMAGE1DARRAY */ -#line 3313 "MachineIndependent/glslang.y" + case 496: /* type_specifier_nonarray: UIMAGE1DARRAY */ +#line 3322 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } -#line 10675 "MachineIndependent/glslang_tab.cpp" +#line 10705 "MachineIndependent/glslang_tab.cpp" break; - case 496: /* type_specifier_nonarray: IMAGE2DARRAY */ -#line 3318 "MachineIndependent/glslang.y" + case 497: /* type_specifier_nonarray: IMAGE2DARRAY */ +#line 3327 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } -#line 10685 "MachineIndependent/glslang_tab.cpp" +#line 10715 "MachineIndependent/glslang_tab.cpp" break; - case 497: /* type_specifier_nonarray: F16IMAGE2DARRAY */ -#line 3323 "MachineIndependent/glslang.y" + case 498: /* type_specifier_nonarray: F16IMAGE2DARRAY */ +#line 3332 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true); } -#line 10696 "MachineIndependent/glslang_tab.cpp" +#line 10726 "MachineIndependent/glslang_tab.cpp" break; - case 498: /* type_specifier_nonarray: IIMAGE2DARRAY */ -#line 3329 "MachineIndependent/glslang.y" + case 499: /* type_specifier_nonarray: IIMAGE2DARRAY */ +#line 3338 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } -#line 10706 "MachineIndependent/glslang_tab.cpp" +#line 10736 "MachineIndependent/glslang_tab.cpp" break; - case 499: /* type_specifier_nonarray: UIMAGE2DARRAY */ -#line 3334 "MachineIndependent/glslang.y" + case 500: /* type_specifier_nonarray: UIMAGE2DARRAY */ +#line 3343 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } -#line 10716 "MachineIndependent/glslang_tab.cpp" +#line 10746 "MachineIndependent/glslang_tab.cpp" break; - case 500: /* type_specifier_nonarray: IMAGECUBEARRAY */ -#line 3339 "MachineIndependent/glslang.y" + case 501: /* type_specifier_nonarray: IMAGECUBEARRAY */ +#line 3348 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } -#line 10726 "MachineIndependent/glslang_tab.cpp" +#line 10756 "MachineIndependent/glslang_tab.cpp" break; - case 501: /* type_specifier_nonarray: F16IMAGECUBEARRAY */ -#line 3344 "MachineIndependent/glslang.y" + case 502: /* type_specifier_nonarray: F16IMAGECUBEARRAY */ +#line 3353 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true); } -#line 10737 "MachineIndependent/glslang_tab.cpp" +#line 10767 "MachineIndependent/glslang_tab.cpp" break; - case 502: /* type_specifier_nonarray: IIMAGECUBEARRAY */ -#line 3350 "MachineIndependent/glslang.y" + case 503: /* type_specifier_nonarray: IIMAGECUBEARRAY */ +#line 3359 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } -#line 10747 "MachineIndependent/glslang_tab.cpp" +#line 10777 "MachineIndependent/glslang_tab.cpp" break; - case 503: /* type_specifier_nonarray: UIMAGECUBEARRAY */ -#line 3355 "MachineIndependent/glslang.y" + case 504: /* type_specifier_nonarray: UIMAGECUBEARRAY */ +#line 3364 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } -#line 10757 "MachineIndependent/glslang_tab.cpp" +#line 10787 "MachineIndependent/glslang_tab.cpp" break; - case 504: /* type_specifier_nonarray: IMAGE2DMS */ -#line 3360 "MachineIndependent/glslang.y" + case 505: /* type_specifier_nonarray: IMAGE2DMS */ +#line 3369 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } -#line 10767 "MachineIndependent/glslang_tab.cpp" +#line 10797 "MachineIndependent/glslang_tab.cpp" break; - case 505: /* type_specifier_nonarray: F16IMAGE2DMS */ -#line 3365 "MachineIndependent/glslang.y" + case 506: /* type_specifier_nonarray: F16IMAGE2DMS */ +#line 3374 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true); } -#line 10778 "MachineIndependent/glslang_tab.cpp" +#line 10808 "MachineIndependent/glslang_tab.cpp" break; - case 506: /* type_specifier_nonarray: IIMAGE2DMS */ -#line 3371 "MachineIndependent/glslang.y" + case 507: /* type_specifier_nonarray: IIMAGE2DMS */ +#line 3380 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } -#line 10788 "MachineIndependent/glslang_tab.cpp" +#line 10818 "MachineIndependent/glslang_tab.cpp" break; - case 507: /* type_specifier_nonarray: UIMAGE2DMS */ -#line 3376 "MachineIndependent/glslang.y" + case 508: /* type_specifier_nonarray: UIMAGE2DMS */ +#line 3385 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } -#line 10798 "MachineIndependent/glslang_tab.cpp" +#line 10828 "MachineIndependent/glslang_tab.cpp" break; - case 508: /* type_specifier_nonarray: IMAGE2DMSARRAY */ -#line 3381 "MachineIndependent/glslang.y" + case 509: /* type_specifier_nonarray: IMAGE2DMSARRAY */ +#line 3390 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } -#line 10808 "MachineIndependent/glslang_tab.cpp" +#line 10838 "MachineIndependent/glslang_tab.cpp" break; - case 509: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */ -#line 3386 "MachineIndependent/glslang.y" + case 510: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */ +#line 3395 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true); } -#line 10819 "MachineIndependent/glslang_tab.cpp" +#line 10849 "MachineIndependent/glslang_tab.cpp" break; - case 510: /* type_specifier_nonarray: IIMAGE2DMSARRAY */ -#line 3392 "MachineIndependent/glslang.y" + case 511: /* type_specifier_nonarray: IIMAGE2DMSARRAY */ +#line 3401 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } -#line 10829 "MachineIndependent/glslang_tab.cpp" +#line 10859 "MachineIndependent/glslang_tab.cpp" break; - case 511: /* type_specifier_nonarray: UIMAGE2DMSARRAY */ -#line 3397 "MachineIndependent/glslang.y" + case 512: /* type_specifier_nonarray: UIMAGE2DMSARRAY */ +#line 3406 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } -#line 10839 "MachineIndependent/glslang_tab.cpp" +#line 10869 "MachineIndependent/glslang_tab.cpp" break; - case 512: /* type_specifier_nonarray: I64IMAGE1D */ -#line 3402 "MachineIndependent/glslang.y" + case 513: /* type_specifier_nonarray: I64IMAGE1D */ +#line 3411 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D); } -#line 10849 "MachineIndependent/glslang_tab.cpp" +#line 10879 "MachineIndependent/glslang_tab.cpp" break; - case 513: /* type_specifier_nonarray: U64IMAGE1D */ -#line 3407 "MachineIndependent/glslang.y" + case 514: /* type_specifier_nonarray: U64IMAGE1D */ +#line 3416 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D); } -#line 10859 "MachineIndependent/glslang_tab.cpp" +#line 10889 "MachineIndependent/glslang_tab.cpp" break; - case 514: /* type_specifier_nonarray: I64IMAGE2D */ -#line 3412 "MachineIndependent/glslang.y" + case 515: /* type_specifier_nonarray: I64IMAGE2D */ +#line 3421 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D); } -#line 10869 "MachineIndependent/glslang_tab.cpp" +#line 10899 "MachineIndependent/glslang_tab.cpp" break; - case 515: /* type_specifier_nonarray: U64IMAGE2D */ -#line 3417 "MachineIndependent/glslang.y" + case 516: /* type_specifier_nonarray: U64IMAGE2D */ +#line 3426 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D); } -#line 10879 "MachineIndependent/glslang_tab.cpp" +#line 10909 "MachineIndependent/glslang_tab.cpp" break; - case 516: /* type_specifier_nonarray: I64IMAGE3D */ -#line 3422 "MachineIndependent/glslang.y" + case 517: /* type_specifier_nonarray: I64IMAGE3D */ +#line 3431 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D); } -#line 10889 "MachineIndependent/glslang_tab.cpp" +#line 10919 "MachineIndependent/glslang_tab.cpp" break; - case 517: /* type_specifier_nonarray: U64IMAGE3D */ -#line 3427 "MachineIndependent/glslang.y" + case 518: /* type_specifier_nonarray: U64IMAGE3D */ +#line 3436 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D); } -#line 10899 "MachineIndependent/glslang_tab.cpp" +#line 10929 "MachineIndependent/glslang_tab.cpp" break; - case 518: /* type_specifier_nonarray: I64IMAGE2DRECT */ -#line 3432 "MachineIndependent/glslang.y" + case 519: /* type_specifier_nonarray: I64IMAGE2DRECT */ +#line 3441 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect); } -#line 10909 "MachineIndependent/glslang_tab.cpp" +#line 10939 "MachineIndependent/glslang_tab.cpp" break; - case 519: /* type_specifier_nonarray: U64IMAGE2DRECT */ -#line 3437 "MachineIndependent/glslang.y" + case 520: /* type_specifier_nonarray: U64IMAGE2DRECT */ +#line 3446 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect); } -#line 10919 "MachineIndependent/glslang_tab.cpp" +#line 10949 "MachineIndependent/glslang_tab.cpp" break; - case 520: /* type_specifier_nonarray: I64IMAGECUBE */ -#line 3442 "MachineIndependent/glslang.y" + case 521: /* type_specifier_nonarray: I64IMAGECUBE */ +#line 3451 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube); } -#line 10929 "MachineIndependent/glslang_tab.cpp" +#line 10959 "MachineIndependent/glslang_tab.cpp" break; - case 521: /* type_specifier_nonarray: U64IMAGECUBE */ -#line 3447 "MachineIndependent/glslang.y" + case 522: /* type_specifier_nonarray: U64IMAGECUBE */ +#line 3456 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube); } -#line 10939 "MachineIndependent/glslang_tab.cpp" +#line 10969 "MachineIndependent/glslang_tab.cpp" break; - case 522: /* type_specifier_nonarray: I64IMAGEBUFFER */ -#line 3452 "MachineIndependent/glslang.y" + case 523: /* type_specifier_nonarray: I64IMAGEBUFFER */ +#line 3461 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer); } -#line 10949 "MachineIndependent/glslang_tab.cpp" +#line 10979 "MachineIndependent/glslang_tab.cpp" break; - case 523: /* type_specifier_nonarray: U64IMAGEBUFFER */ -#line 3457 "MachineIndependent/glslang.y" + case 524: /* type_specifier_nonarray: U64IMAGEBUFFER */ +#line 3466 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer); } -#line 10959 "MachineIndependent/glslang_tab.cpp" +#line 10989 "MachineIndependent/glslang_tab.cpp" break; - case 524: /* type_specifier_nonarray: I64IMAGE1DARRAY */ -#line 3462 "MachineIndependent/glslang.y" + case 525: /* type_specifier_nonarray: I64IMAGE1DARRAY */ +#line 3471 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true); } -#line 10969 "MachineIndependent/glslang_tab.cpp" +#line 10999 "MachineIndependent/glslang_tab.cpp" break; - case 525: /* type_specifier_nonarray: U64IMAGE1DARRAY */ -#line 3467 "MachineIndependent/glslang.y" + case 526: /* type_specifier_nonarray: U64IMAGE1DARRAY */ +#line 3476 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true); } -#line 10979 "MachineIndependent/glslang_tab.cpp" +#line 11009 "MachineIndependent/glslang_tab.cpp" break; - case 526: /* type_specifier_nonarray: I64IMAGE2DARRAY */ -#line 3472 "MachineIndependent/glslang.y" + case 527: /* type_specifier_nonarray: I64IMAGE2DARRAY */ +#line 3481 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true); } -#line 10989 "MachineIndependent/glslang_tab.cpp" +#line 11019 "MachineIndependent/glslang_tab.cpp" break; - case 527: /* type_specifier_nonarray: U64IMAGE2DARRAY */ -#line 3477 "MachineIndependent/glslang.y" + case 528: /* type_specifier_nonarray: U64IMAGE2DARRAY */ +#line 3486 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true); } -#line 10999 "MachineIndependent/glslang_tab.cpp" +#line 11029 "MachineIndependent/glslang_tab.cpp" break; - case 528: /* type_specifier_nonarray: I64IMAGECUBEARRAY */ -#line 3482 "MachineIndependent/glslang.y" + case 529: /* type_specifier_nonarray: I64IMAGECUBEARRAY */ +#line 3491 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true); } -#line 11009 "MachineIndependent/glslang_tab.cpp" +#line 11039 "MachineIndependent/glslang_tab.cpp" break; - case 529: /* type_specifier_nonarray: U64IMAGECUBEARRAY */ -#line 3487 "MachineIndependent/glslang.y" + case 530: /* type_specifier_nonarray: U64IMAGECUBEARRAY */ +#line 3496 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true); } -#line 11019 "MachineIndependent/glslang_tab.cpp" +#line 11049 "MachineIndependent/glslang_tab.cpp" break; - case 530: /* type_specifier_nonarray: I64IMAGE2DMS */ -#line 3492 "MachineIndependent/glslang.y" + case 531: /* type_specifier_nonarray: I64IMAGE2DMS */ +#line 3501 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true); } -#line 11029 "MachineIndependent/glslang_tab.cpp" +#line 11059 "MachineIndependent/glslang_tab.cpp" break; - case 531: /* type_specifier_nonarray: U64IMAGE2DMS */ -#line 3497 "MachineIndependent/glslang.y" + case 532: /* type_specifier_nonarray: U64IMAGE2DMS */ +#line 3506 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true); } -#line 11039 "MachineIndependent/glslang_tab.cpp" +#line 11069 "MachineIndependent/glslang_tab.cpp" break; - case 532: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */ -#line 3502 "MachineIndependent/glslang.y" + case 533: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */ +#line 3511 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true); } -#line 11049 "MachineIndependent/glslang_tab.cpp" +#line 11079 "MachineIndependent/glslang_tab.cpp" break; - case 533: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */ -#line 3507 "MachineIndependent/glslang.y" + case 534: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */ +#line 3516 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true); } -#line 11059 "MachineIndependent/glslang_tab.cpp" +#line 11089 "MachineIndependent/glslang_tab.cpp" break; - case 534: /* type_specifier_nonarray: SAMPLEREXTERNALOES */ -#line 3512 "MachineIndependent/glslang.y" + case 535: /* type_specifier_nonarray: SAMPLEREXTERNALOES */ +#line 3521 "MachineIndependent/glslang.y" { // GL_OES_EGL_image_external (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 11070 "MachineIndependent/glslang_tab.cpp" +#line 11100 "MachineIndependent/glslang_tab.cpp" break; - case 535: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */ -#line 3518 "MachineIndependent/glslang.y" + case 536: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */ +#line 3527 "MachineIndependent/glslang.y" { // GL_EXT_YUV_target (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.yuv = true; } -#line 11081 "MachineIndependent/glslang_tab.cpp" +#line 11111 "MachineIndependent/glslang_tab.cpp" break; - case 536: /* type_specifier_nonarray: ATTACHMENTEXT */ -#line 3524 "MachineIndependent/glslang.y" + case 537: /* type_specifier_nonarray: ATTACHMENTEXT */ +#line 3533 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setAttachmentEXT(EbtFloat); } -#line 11092 "MachineIndependent/glslang_tab.cpp" +#line 11122 "MachineIndependent/glslang_tab.cpp" break; - case 537: /* type_specifier_nonarray: IATTACHMENTEXT */ -#line 3530 "MachineIndependent/glslang.y" + case 538: /* type_specifier_nonarray: IATTACHMENTEXT */ +#line 3539 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setAttachmentEXT(EbtInt); } -#line 11103 "MachineIndependent/glslang_tab.cpp" +#line 11133 "MachineIndependent/glslang_tab.cpp" break; - case 538: /* type_specifier_nonarray: UATTACHMENTEXT */ -#line 3536 "MachineIndependent/glslang.y" + case 539: /* type_specifier_nonarray: UATTACHMENTEXT */ +#line 3545 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setAttachmentEXT(EbtUint); } -#line 11114 "MachineIndependent/glslang_tab.cpp" +#line 11144 "MachineIndependent/glslang_tab.cpp" break; - case 539: /* type_specifier_nonarray: SUBPASSINPUT */ -#line 3542 "MachineIndependent/glslang.y" + case 540: /* type_specifier_nonarray: SUBPASSINPUT */ +#line 3551 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 11125 "MachineIndependent/glslang_tab.cpp" +#line 11155 "MachineIndependent/glslang_tab.cpp" break; - case 540: /* type_specifier_nonarray: SUBPASSINPUTMS */ -#line 3548 "MachineIndependent/glslang.y" + case 541: /* type_specifier_nonarray: SUBPASSINPUTMS */ +#line 3557 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 11136 "MachineIndependent/glslang_tab.cpp" +#line 11166 "MachineIndependent/glslang_tab.cpp" break; - case 541: /* type_specifier_nonarray: F16SUBPASSINPUT */ -#line 3554 "MachineIndependent/glslang.y" + case 542: /* type_specifier_nonarray: F16SUBPASSINPUT */ +#line 3563 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); @@ -11144,11 +11174,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat16); } -#line 11148 "MachineIndependent/glslang_tab.cpp" +#line 11178 "MachineIndependent/glslang_tab.cpp" break; - case 542: /* type_specifier_nonarray: F16SUBPASSINPUTMS */ -#line 3561 "MachineIndependent/glslang.y" + case 543: /* type_specifier_nonarray: F16SUBPASSINPUTMS */ +#line 3570 "MachineIndependent/glslang.y" { parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel()); parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); @@ -11156,55 +11186,55 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat16, true); } -#line 11160 "MachineIndependent/glslang_tab.cpp" +#line 11190 "MachineIndependent/glslang_tab.cpp" break; - case 543: /* type_specifier_nonarray: ISUBPASSINPUT */ -#line 3568 "MachineIndependent/glslang.y" + case 544: /* type_specifier_nonarray: ISUBPASSINPUT */ +#line 3577 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 11171 "MachineIndependent/glslang_tab.cpp" +#line 11201 "MachineIndependent/glslang_tab.cpp" break; - case 544: /* type_specifier_nonarray: ISUBPASSINPUTMS */ -#line 3574 "MachineIndependent/glslang.y" + case 545: /* type_specifier_nonarray: ISUBPASSINPUTMS */ +#line 3583 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 11182 "MachineIndependent/glslang_tab.cpp" +#line 11212 "MachineIndependent/glslang_tab.cpp" break; - case 545: /* type_specifier_nonarray: USUBPASSINPUT */ -#line 3580 "MachineIndependent/glslang.y" + case 546: /* type_specifier_nonarray: USUBPASSINPUT */ +#line 3589 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 11193 "MachineIndependent/glslang_tab.cpp" +#line 11223 "MachineIndependent/glslang_tab.cpp" break; - case 546: /* type_specifier_nonarray: USUBPASSINPUTMS */ -#line 3586 "MachineIndependent/glslang.y" + case 547: /* type_specifier_nonarray: USUBPASSINPUTMS */ +#line 3595 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 11204 "MachineIndependent/glslang_tab.cpp" +#line 11234 "MachineIndependent/glslang_tab.cpp" break; - case 547: /* type_specifier_nonarray: FCOOPMATNV */ -#line 3592 "MachineIndependent/glslang.y" + case 548: /* type_specifier_nonarray: FCOOPMATNV */ +#line 3601 "MachineIndependent/glslang.y" { parseContext.fcoopmatCheckNV((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); @@ -11212,11 +11242,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).coopmatNV = true; (yyval.interm.type).coopmatKHR = false; } -#line 11216 "MachineIndependent/glslang_tab.cpp" +#line 11246 "MachineIndependent/glslang_tab.cpp" break; - case 548: /* type_specifier_nonarray: ICOOPMATNV */ -#line 3599 "MachineIndependent/glslang.y" + case 549: /* type_specifier_nonarray: ICOOPMATNV */ +#line 3608 "MachineIndependent/glslang.y" { parseContext.intcoopmatCheckNV((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); @@ -11224,11 +11254,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).coopmatNV = true; (yyval.interm.type).coopmatKHR = false; } -#line 11228 "MachineIndependent/glslang_tab.cpp" +#line 11258 "MachineIndependent/glslang_tab.cpp" break; - case 549: /* type_specifier_nonarray: UCOOPMATNV */ -#line 3606 "MachineIndependent/glslang.y" + case 550: /* type_specifier_nonarray: UCOOPMATNV */ +#line 3615 "MachineIndependent/glslang.y" { parseContext.intcoopmatCheckNV((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); @@ -11236,11 +11266,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).coopmatNV = true; (yyval.interm.type).coopmatKHR = false; } -#line 11240 "MachineIndependent/glslang_tab.cpp" +#line 11270 "MachineIndependent/glslang_tab.cpp" break; - case 550: /* type_specifier_nonarray: COOPMAT */ -#line 3613 "MachineIndependent/glslang.y" + case 551: /* type_specifier_nonarray: COOPMAT */ +#line 3622 "MachineIndependent/glslang.y" { parseContext.coopmatCheck((yyvsp[0].lex).loc, "coopmat", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); @@ -11248,90 +11278,99 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).coopmatNV = false; (yyval.interm.type).coopmatKHR = true; } -#line 11252 "MachineIndependent/glslang_tab.cpp" +#line 11282 "MachineIndependent/glslang_tab.cpp" break; - case 551: /* type_specifier_nonarray: TENSORLAYOUTNV */ -#line 3620 "MachineIndependent/glslang.y" + case 552: /* type_specifier_nonarray: TENSORLAYOUTNV */ +#line 3629 "MachineIndependent/glslang.y" { parseContext.tensorLayoutViewCheck((yyvsp[0].lex).loc, "tensorLayoutNV", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtTensorLayoutNV; } -#line 11262 "MachineIndependent/glslang_tab.cpp" +#line 11292 "MachineIndependent/glslang_tab.cpp" break; - case 552: /* type_specifier_nonarray: TENSORVIEWNV */ -#line 3625 "MachineIndependent/glslang.y" + case 553: /* type_specifier_nonarray: TENSORVIEWNV */ +#line 3634 "MachineIndependent/glslang.y" { parseContext.tensorLayoutViewCheck((yyvsp[0].lex).loc, "tensorViewNV", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtTensorViewNV; } -#line 11272 "MachineIndependent/glslang_tab.cpp" +#line 11302 "MachineIndependent/glslang_tab.cpp" break; - case 553: /* type_specifier_nonarray: FUNCTION */ -#line 3630 "MachineIndependent/glslang.y" + case 554: /* type_specifier_nonarray: FUNCTION */ +#line 3639 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).basicType = EbtFunction; } -#line 11281 "MachineIndependent/glslang_tab.cpp" +#line 11311 "MachineIndependent/glslang_tab.cpp" break; - case 554: /* type_specifier_nonarray: COOPVECNV */ -#line 3634 "MachineIndependent/glslang.y" + case 555: /* type_specifier_nonarray: COOPVECNV */ +#line 3643 "MachineIndependent/glslang.y" { parseContext.coopvecCheck((yyvsp[0].lex).loc, "coopvecNV", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtCoopvecNV; (yyval.interm.type).coopvecNV = true; } -#line 11292 "MachineIndependent/glslang_tab.cpp" +#line 11322 "MachineIndependent/glslang_tab.cpp" break; - case 555: /* type_specifier_nonarray: TENSORARM */ -#line 3640 "MachineIndependent/glslang.y" + case 556: /* type_specifier_nonarray: TENSORARM */ +#line 3649 "MachineIndependent/glslang.y" { parseContext.tensorCheckARM((yyvsp[0].lex).loc, "tensorARM", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).tensorRankARM = 1; // placeholder value (yyval.interm.type).basicType = EbtTensorARM; } -#line 11303 "MachineIndependent/glslang_tab.cpp" +#line 11333 "MachineIndependent/glslang_tab.cpp" break; - case 556: /* type_specifier_nonarray: spirv_type_specifier */ -#line 3646 "MachineIndependent/glslang.y" + case 557: /* type_specifier_nonarray: spirv_type_specifier */ +#line 3655 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier"); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 11312 "MachineIndependent/glslang_tab.cpp" +#line 11342 "MachineIndependent/glslang_tab.cpp" break; - case 557: /* type_specifier_nonarray: HITOBJECTNV */ -#line 3650 "MachineIndependent/glslang.y" - { + case 558: /* type_specifier_nonarray: HITOBJECTNV */ +#line 3659 "MachineIndependent/glslang.y" + { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtHitObjectNV; - } -#line 11321 "MachineIndependent/glslang_tab.cpp" + } +#line 11351 "MachineIndependent/glslang_tab.cpp" + break; + + case 559: /* type_specifier_nonarray: HITOBJECTEXT */ +#line 3663 "MachineIndependent/glslang.y" + { + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtHitObjectEXT; + } +#line 11360 "MachineIndependent/glslang_tab.cpp" break; - case 558: /* type_specifier_nonarray: struct_specifier */ -#line 3654 "MachineIndependent/glslang.y" + case 560: /* type_specifier_nonarray: struct_specifier */ +#line 3667 "MachineIndependent/glslang.y" { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 11331 "MachineIndependent/glslang_tab.cpp" +#line 11370 "MachineIndependent/glslang_tab.cpp" break; - case 559: /* type_specifier_nonarray: TYPE_NAME */ -#line 3659 "MachineIndependent/glslang.y" + case 561: /* type_specifier_nonarray: TYPE_NAME */ +#line 3672 "MachineIndependent/glslang.y" { // // This is for user defined type names. The lexical phase looked up the @@ -11345,47 +11384,47 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 11349 "MachineIndependent/glslang_tab.cpp" +#line 11388 "MachineIndependent/glslang_tab.cpp" break; - case 560: /* precision_qualifier: HIGH_PRECISION */ -#line 3675 "MachineIndependent/glslang.y" + case 562: /* precision_qualifier: HIGH_PRECISION */ +#line 3688 "MachineIndependent/glslang.y" { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 11359 "MachineIndependent/glslang_tab.cpp" +#line 11398 "MachineIndependent/glslang_tab.cpp" break; - case 561: /* precision_qualifier: MEDIUM_PRECISION */ -#line 3680 "MachineIndependent/glslang.y" + case 563: /* precision_qualifier: MEDIUM_PRECISION */ +#line 3693 "MachineIndependent/glslang.y" { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 11369 "MachineIndependent/glslang_tab.cpp" +#line 11408 "MachineIndependent/glslang_tab.cpp" break; - case 562: /* precision_qualifier: LOW_PRECISION */ -#line 3685 "MachineIndependent/glslang.y" + case 564: /* precision_qualifier: LOW_PRECISION */ +#line 3698 "MachineIndependent/glslang.y" { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 11379 "MachineIndependent/glslang_tab.cpp" +#line 11418 "MachineIndependent/glslang_tab.cpp" break; - case 563: /* $@3: %empty */ -#line 3693 "MachineIndependent/glslang.y" + case 565: /* $@3: %empty */ +#line 3706 "MachineIndependent/glslang.y" { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 11385 "MachineIndependent/glslang_tab.cpp" +#line 11424 "MachineIndependent/glslang_tab.cpp" break; - case 564: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */ -#line 3693 "MachineIndependent/glslang.y" + case 566: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */ +#line 3706 "MachineIndependent/glslang.y" { TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); @@ -11403,17 +11442,17 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 11407 "MachineIndependent/glslang_tab.cpp" +#line 11446 "MachineIndependent/glslang_tab.cpp" break; - case 565: /* $@4: %empty */ -#line 3710 "MachineIndependent/glslang.y" + case 567: /* $@4: %empty */ +#line 3723 "MachineIndependent/glslang.y" { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 11413 "MachineIndependent/glslang_tab.cpp" +#line 11452 "MachineIndependent/glslang_tab.cpp" break; - case 566: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */ -#line 3710 "MachineIndependent/glslang.y" + case 568: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */ +#line 3723 "MachineIndependent/glslang.y" { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -11421,19 +11460,19 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 11425 "MachineIndependent/glslang_tab.cpp" +#line 11464 "MachineIndependent/glslang_tab.cpp" break; - case 567: /* struct_declaration_list: struct_declaration */ -#line 3720 "MachineIndependent/glslang.y" + case 569: /* struct_declaration_list: struct_declaration */ +#line 3733 "MachineIndependent/glslang.y" { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } -#line 11433 "MachineIndependent/glslang_tab.cpp" +#line 11472 "MachineIndependent/glslang_tab.cpp" break; - case 568: /* struct_declaration_list: struct_declaration_list struct_declaration */ -#line 3723 "MachineIndependent/glslang.y" + case 570: /* struct_declaration_list: struct_declaration_list struct_declaration */ +#line 3736 "MachineIndependent/glslang.y" { (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { @@ -11444,11 +11483,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 11448 "MachineIndependent/glslang_tab.cpp" +#line 11487 "MachineIndependent/glslang_tab.cpp" break; - case 569: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */ -#line 3736 "MachineIndependent/glslang.y" + case 571: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */ +#line 3749 "MachineIndependent/glslang.y" { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -11471,11 +11510,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 11475 "MachineIndependent/glslang_tab.cpp" +#line 11514 "MachineIndependent/glslang_tab.cpp" break; - case 570: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */ -#line 3758 "MachineIndependent/glslang.y" + case 572: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */ +#line 3771 "MachineIndependent/glslang.y" { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -11500,38 +11539,38 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (*(yyval.interm.typeList))[i].type->shallowCopy(type); } } -#line 11504 "MachineIndependent/glslang_tab.cpp" +#line 11543 "MachineIndependent/glslang_tab.cpp" break; - case 571: /* struct_declarator_list: struct_declarator */ -#line 3785 "MachineIndependent/glslang.y" + case 573: /* struct_declarator_list: struct_declarator */ +#line 3798 "MachineIndependent/glslang.y" { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 11513 "MachineIndependent/glslang_tab.cpp" +#line 11552 "MachineIndependent/glslang_tab.cpp" break; - case 572: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */ -#line 3789 "MachineIndependent/glslang.y" + case 574: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */ +#line 3802 "MachineIndependent/glslang.y" { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 11521 "MachineIndependent/glslang_tab.cpp" +#line 11560 "MachineIndependent/glslang_tab.cpp" break; - case 573: /* struct_declarator: IDENTIFIER */ -#line 3795 "MachineIndependent/glslang.y" + case 575: /* struct_declarator: IDENTIFIER */ +#line 3808 "MachineIndependent/glslang.y" { (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } -#line 11531 "MachineIndependent/glslang_tab.cpp" +#line 11570 "MachineIndependent/glslang_tab.cpp" break; - case 574: /* struct_declarator: IDENTIFIER array_specifier */ -#line 3800 "MachineIndependent/glslang.y" + case 576: /* struct_declarator: IDENTIFIER array_specifier */ +#line 3813 "MachineIndependent/glslang.y" { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); @@ -11540,168 +11579,168 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } -#line 11544 "MachineIndependent/glslang_tab.cpp" +#line 11583 "MachineIndependent/glslang_tab.cpp" break; - case 575: /* initializer: assignment_expression */ -#line 3811 "MachineIndependent/glslang.y" + case 577: /* initializer: assignment_expression */ +#line 3824 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 11552 "MachineIndependent/glslang_tab.cpp" +#line 11591 "MachineIndependent/glslang_tab.cpp" break; - case 576: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */ -#line 3814 "MachineIndependent/glslang.y" + case 578: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */ +#line 3827 "MachineIndependent/glslang.y" { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } -#line 11563 "MachineIndependent/glslang_tab.cpp" +#line 11602 "MachineIndependent/glslang_tab.cpp" break; - case 577: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */ -#line 3820 "MachineIndependent/glslang.y" + case 579: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */ +#line 3833 "MachineIndependent/glslang.y" { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 11574 "MachineIndependent/glslang_tab.cpp" +#line 11613 "MachineIndependent/glslang_tab.cpp" break; - case 578: /* initializer: LEFT_BRACE RIGHT_BRACE */ -#line 3826 "MachineIndependent/glslang.y" + case 580: /* initializer: LEFT_BRACE RIGHT_BRACE */ +#line 3839 "MachineIndependent/glslang.y" { const char* initFeature = "empty { } initializer"; parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature); (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc); } -#line 11585 "MachineIndependent/glslang_tab.cpp" +#line 11624 "MachineIndependent/glslang_tab.cpp" break; - case 579: /* initializer_list: initializer */ -#line 3835 "MachineIndependent/glslang.y" + case 581: /* initializer_list: initializer */ +#line 3848 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } -#line 11593 "MachineIndependent/glslang_tab.cpp" +#line 11632 "MachineIndependent/glslang_tab.cpp" break; - case 580: /* initializer_list: initializer_list COMMA initializer */ -#line 3838 "MachineIndependent/glslang.y" + case 582: /* initializer_list: initializer_list COMMA initializer */ +#line 3851 "MachineIndependent/glslang.y" { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } -#line 11601 "MachineIndependent/glslang_tab.cpp" +#line 11640 "MachineIndependent/glslang_tab.cpp" break; - case 581: /* declaration_statement: declaration */ -#line 3844 "MachineIndependent/glslang.y" + case 583: /* declaration_statement: declaration */ +#line 3857 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11607 "MachineIndependent/glslang_tab.cpp" +#line 11646 "MachineIndependent/glslang_tab.cpp" break; - case 582: /* statement: compound_statement */ -#line 3848 "MachineIndependent/glslang.y" + case 584: /* statement: compound_statement */ +#line 3861 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11613 "MachineIndependent/glslang_tab.cpp" +#line 11652 "MachineIndependent/glslang_tab.cpp" break; - case 583: /* statement: simple_statement */ -#line 3849 "MachineIndependent/glslang.y" + case 585: /* statement: simple_statement */ +#line 3862 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11619 "MachineIndependent/glslang_tab.cpp" +#line 11658 "MachineIndependent/glslang_tab.cpp" break; - case 584: /* simple_statement: declaration_statement */ -#line 3855 "MachineIndependent/glslang.y" + case 586: /* simple_statement: declaration_statement */ +#line 3868 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11625 "MachineIndependent/glslang_tab.cpp" +#line 11664 "MachineIndependent/glslang_tab.cpp" break; - case 585: /* simple_statement: expression_statement */ -#line 3856 "MachineIndependent/glslang.y" + case 587: /* simple_statement: expression_statement */ +#line 3869 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11631 "MachineIndependent/glslang_tab.cpp" +#line 11670 "MachineIndependent/glslang_tab.cpp" break; - case 586: /* simple_statement: selection_statement */ -#line 3857 "MachineIndependent/glslang.y" + case 588: /* simple_statement: selection_statement */ +#line 3870 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11637 "MachineIndependent/glslang_tab.cpp" +#line 11676 "MachineIndependent/glslang_tab.cpp" break; - case 587: /* simple_statement: switch_statement */ -#line 3858 "MachineIndependent/glslang.y" + case 589: /* simple_statement: switch_statement */ +#line 3871 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11643 "MachineIndependent/glslang_tab.cpp" +#line 11682 "MachineIndependent/glslang_tab.cpp" break; - case 588: /* simple_statement: case_label */ -#line 3859 "MachineIndependent/glslang.y" + case 590: /* simple_statement: case_label */ +#line 3872 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11649 "MachineIndependent/glslang_tab.cpp" +#line 11688 "MachineIndependent/glslang_tab.cpp" break; - case 589: /* simple_statement: iteration_statement */ -#line 3860 "MachineIndependent/glslang.y" + case 591: /* simple_statement: iteration_statement */ +#line 3873 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11655 "MachineIndependent/glslang_tab.cpp" +#line 11694 "MachineIndependent/glslang_tab.cpp" break; - case 590: /* simple_statement: jump_statement */ -#line 3861 "MachineIndependent/glslang.y" + case 592: /* simple_statement: jump_statement */ +#line 3874 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11661 "MachineIndependent/glslang_tab.cpp" +#line 11700 "MachineIndependent/glslang_tab.cpp" break; - case 591: /* simple_statement: demote_statement */ -#line 3862 "MachineIndependent/glslang.y" + case 593: /* simple_statement: demote_statement */ +#line 3875 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11667 "MachineIndependent/glslang_tab.cpp" +#line 11706 "MachineIndependent/glslang_tab.cpp" break; - case 592: /* demote_statement: DEMOTE SEMICOLON */ -#line 3866 "MachineIndependent/glslang.y" + case 594: /* demote_statement: DEMOTE SEMICOLON */ +#line 3879 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote"); parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc); } -#line 11677 "MachineIndependent/glslang_tab.cpp" +#line 11716 "MachineIndependent/glslang_tab.cpp" break; - case 593: /* compound_statement: LEFT_BRACE RIGHT_BRACE */ -#line 3874 "MachineIndependent/glslang.y" + case 595: /* compound_statement: LEFT_BRACE RIGHT_BRACE */ +#line 3887 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = 0; } -#line 11683 "MachineIndependent/glslang_tab.cpp" +#line 11722 "MachineIndependent/glslang_tab.cpp" break; - case 594: /* $@5: %empty */ -#line 3875 "MachineIndependent/glslang.y" + case 596: /* $@5: %empty */ +#line 3888 "MachineIndependent/glslang.y" { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 11692 "MachineIndependent/glslang_tab.cpp" +#line 11731 "MachineIndependent/glslang_tab.cpp" break; - case 595: /* $@6: %empty */ -#line 3879 "MachineIndependent/glslang.y" + case 597: /* $@6: %empty */ +#line 3892 "MachineIndependent/glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 11701 "MachineIndependent/glslang_tab.cpp" +#line 11740 "MachineIndependent/glslang_tab.cpp" break; - case 596: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */ -#line 3883 "MachineIndependent/glslang.y" + case 598: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */ +#line 3896 "MachineIndependent/glslang.y" { if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) { (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence); @@ -11709,69 +11748,69 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } -#line 11713 "MachineIndependent/glslang_tab.cpp" +#line 11752 "MachineIndependent/glslang_tab.cpp" break; - case 597: /* statement_no_new_scope: compound_statement_no_new_scope */ -#line 3893 "MachineIndependent/glslang.y" + case 599: /* statement_no_new_scope: compound_statement_no_new_scope */ +#line 3906 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11719 "MachineIndependent/glslang_tab.cpp" +#line 11758 "MachineIndependent/glslang_tab.cpp" break; - case 598: /* statement_no_new_scope: simple_statement */ -#line 3894 "MachineIndependent/glslang.y" + case 600: /* statement_no_new_scope: simple_statement */ +#line 3907 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11725 "MachineIndependent/glslang_tab.cpp" +#line 11764 "MachineIndependent/glslang_tab.cpp" break; - case 599: /* $@7: %empty */ -#line 3898 "MachineIndependent/glslang.y" + case 601: /* $@7: %empty */ +#line 3911 "MachineIndependent/glslang.y" { ++parseContext.controlFlowNestingLevel; } -#line 11733 "MachineIndependent/glslang_tab.cpp" +#line 11772 "MachineIndependent/glslang_tab.cpp" break; - case 600: /* statement_scoped: $@7 compound_statement */ -#line 3901 "MachineIndependent/glslang.y" + case 602: /* statement_scoped: $@7 compound_statement */ +#line 3914 "MachineIndependent/glslang.y" { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11742 "MachineIndependent/glslang_tab.cpp" +#line 11781 "MachineIndependent/glslang_tab.cpp" break; - case 601: /* $@8: %empty */ -#line 3905 "MachineIndependent/glslang.y" + case 603: /* $@8: %empty */ +#line 3918 "MachineIndependent/glslang.y" { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 11752 "MachineIndependent/glslang_tab.cpp" +#line 11791 "MachineIndependent/glslang_tab.cpp" break; - case 602: /* statement_scoped: $@8 simple_statement */ -#line 3910 "MachineIndependent/glslang.y" + case 604: /* statement_scoped: $@8 simple_statement */ +#line 3923 "MachineIndependent/glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11763 "MachineIndependent/glslang_tab.cpp" +#line 11802 "MachineIndependent/glslang_tab.cpp" break; - case 603: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */ -#line 3919 "MachineIndependent/glslang.y" + case 605: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */ +#line 3932 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = 0; } -#line 11771 "MachineIndependent/glslang_tab.cpp" +#line 11810 "MachineIndependent/glslang_tab.cpp" break; - case 604: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */ -#line 3922 "MachineIndependent/glslang.y" + case 606: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */ +#line 3935 "MachineIndependent/glslang.y" { if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) { (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); @@ -11779,11 +11818,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } -#line 11783 "MachineIndependent/glslang_tab.cpp" +#line 11822 "MachineIndependent/glslang_tab.cpp" break; - case 605: /* statement_list: statement */ -#line 3932 "MachineIndependent/glslang.y" + case 607: /* statement_list: statement */ +#line 3945 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || @@ -11792,11 +11831,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 11796 "MachineIndependent/glslang_tab.cpp" +#line 11835 "MachineIndependent/glslang_tab.cpp" break; - case 606: /* statement_list: statement_list statement */ -#line 3940 "MachineIndependent/glslang.y" + case 608: /* statement_list: statement_list statement */ +#line 3953 "MachineIndependent/glslang.y" { if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { @@ -11805,110 +11844,106 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 11809 "MachineIndependent/glslang_tab.cpp" +#line 11848 "MachineIndependent/glslang_tab.cpp" break; - case 607: /* expression_statement: SEMICOLON */ -#line 3951 "MachineIndependent/glslang.y" + case 609: /* expression_statement: SEMICOLON */ +#line 3964 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = 0; } -#line 11815 "MachineIndependent/glslang_tab.cpp" +#line 11854 "MachineIndependent/glslang_tab.cpp" break; - case 608: /* expression_statement: expression SEMICOLON */ -#line 3952 "MachineIndependent/glslang.y" + case 610: /* expression_statement: expression SEMICOLON */ +#line 3965 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 11821 "MachineIndependent/glslang_tab.cpp" +#line 11860 "MachineIndependent/glslang_tab.cpp" break; - case 609: /* selection_statement: selection_statement_nonattributed */ -#line 3956 "MachineIndependent/glslang.y" + case 611: /* selection_statement: selection_statement_nonattributed */ +#line 3969 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11829 "MachineIndependent/glslang_tab.cpp" +#line 11868 "MachineIndependent/glslang_tab.cpp" break; - case 610: /* selection_statement: attribute selection_statement_nonattributed */ -#line 3959 "MachineIndependent/glslang.y" + case 612: /* selection_statement: attribute selection_statement_nonattributed */ +#line 3972 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11839 "MachineIndependent/glslang_tab.cpp" +#line 11878 "MachineIndependent/glslang_tab.cpp" break; - case 611: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */ -#line 3966 "MachineIndependent/glslang.y" + case 613: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */ +#line 3979 "MachineIndependent/glslang.y" { parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } -#line 11848 "MachineIndependent/glslang_tab.cpp" +#line 11887 "MachineIndependent/glslang_tab.cpp" break; - case 612: /* selection_rest_statement: statement_scoped ELSE statement_scoped */ -#line 3973 "MachineIndependent/glslang.y" + case 614: /* selection_rest_statement: statement_scoped ELSE statement_scoped */ +#line 3986 "MachineIndependent/glslang.y" { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 11857 "MachineIndependent/glslang_tab.cpp" +#line 11896 "MachineIndependent/glslang_tab.cpp" break; - case 613: /* selection_rest_statement: statement_scoped */ -#line 3977 "MachineIndependent/glslang.y" + case 615: /* selection_rest_statement: statement_scoped */ +#line 3990 "MachineIndependent/glslang.y" { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 11866 "MachineIndependent/glslang_tab.cpp" +#line 11905 "MachineIndependent/glslang_tab.cpp" break; - case 614: /* condition: expression */ -#line 3985 "MachineIndependent/glslang.y" + case 616: /* condition: expression */ +#line 3998 "MachineIndependent/glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode); parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } -#line 11875 "MachineIndependent/glslang_tab.cpp" +#line 11914 "MachineIndependent/glslang_tab.cpp" break; - case 615: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */ -#line 3989 "MachineIndependent/glslang.y" + case 617: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */ +#line 4002 "MachineIndependent/glslang.y" { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); TType type((yyvsp[-3].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - if (initNode) - (yyval.interm.intermTypedNode) = initNode->getAsTyped(); - else - (yyval.interm.intermTypedNode) = 0; + (yyval.interm.intermNode) = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); } -#line 11890 "MachineIndependent/glslang_tab.cpp" +#line 11925 "MachineIndependent/glslang_tab.cpp" break; - case 616: /* switch_statement: switch_statement_nonattributed */ -#line 4002 "MachineIndependent/glslang.y" + case 618: /* switch_statement: switch_statement_nonattributed */ +#line 4011 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11898 "MachineIndependent/glslang_tab.cpp" +#line 11933 "MachineIndependent/glslang_tab.cpp" break; - case 617: /* switch_statement: attribute switch_statement_nonattributed */ -#line 4005 "MachineIndependent/glslang.y" + case 619: /* switch_statement: attribute switch_statement_nonattributed */ +#line 4014 "MachineIndependent/glslang.y" { parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute"); parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11908 "MachineIndependent/glslang_tab.cpp" +#line 11943 "MachineIndependent/glslang_tab.cpp" break; - case 618: /* $@9: %empty */ -#line 4012 "MachineIndependent/glslang.y" + case 620: /* $@9: %empty */ +#line 4021 "MachineIndependent/glslang.y" { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -11917,11 +11952,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 11921 "MachineIndependent/glslang_tab.cpp" +#line 11956 "MachineIndependent/glslang_tab.cpp" break; - case 619: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */ -#line 4020 "MachineIndependent/glslang.y" + case 621: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */ +#line 4029 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); @@ -11931,27 +11966,27 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 11935 "MachineIndependent/glslang_tab.cpp" +#line 11970 "MachineIndependent/glslang_tab.cpp" break; - case 620: /* switch_statement_list: %empty */ -#line 4032 "MachineIndependent/glslang.y" + case 622: /* switch_statement_list: %empty */ +#line 4041 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = 0; } -#line 11943 "MachineIndependent/glslang_tab.cpp" +#line 11978 "MachineIndependent/glslang_tab.cpp" break; - case 621: /* switch_statement_list: statement_list */ -#line 4035 "MachineIndependent/glslang.y" + case 623: /* switch_statement_list: statement_list */ +#line 4044 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11951 "MachineIndependent/glslang_tab.cpp" +#line 11986 "MachineIndependent/glslang_tab.cpp" break; - case 622: /* case_label: CASE expression COLON */ -#line 4041 "MachineIndependent/glslang.y" + case 624: /* case_label: CASE expression COLON */ +#line 4050 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -11964,11 +11999,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 11968 "MachineIndependent/glslang_tab.cpp" +#line 12003 "MachineIndependent/glslang_tab.cpp" break; - case 623: /* case_label: DEFAULT COLON */ -#line 4053 "MachineIndependent/glslang.y" + case 625: /* case_label: DEFAULT COLON */ +#line 4062 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -11978,30 +12013,30 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 11982 "MachineIndependent/glslang_tab.cpp" +#line 12017 "MachineIndependent/glslang_tab.cpp" break; - case 624: /* iteration_statement: iteration_statement_nonattributed */ -#line 4065 "MachineIndependent/glslang.y" + case 626: /* iteration_statement: iteration_statement_nonattributed */ +#line 4074 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 11990 "MachineIndependent/glslang_tab.cpp" +#line 12025 "MachineIndependent/glslang_tab.cpp" break; - case 625: /* iteration_statement: attribute iteration_statement_nonattributed */ -#line 4068 "MachineIndependent/glslang.y" + case 627: /* iteration_statement: attribute iteration_statement_nonattributed */ +#line 4077 "MachineIndependent/glslang.y" { const char * extensions[2] = { E_GL_EXT_control_flow_attributes, E_GL_EXT_control_flow_attributes2 }; parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 2, extensions, "attribute"); parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 12001 "MachineIndependent/glslang_tab.cpp" +#line 12036 "MachineIndependent/glslang_tab.cpp" break; - case 626: /* $@10: %empty */ -#line 4076 "MachineIndependent/glslang.y" + case 628: /* $@10: %empty */ +#line 4085 "MachineIndependent/glslang.y" { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -12010,34 +12045,38 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 12014 "MachineIndependent/glslang_tab.cpp" +#line 12049 "MachineIndependent/glslang_tab.cpp" break; - case 627: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */ -#line 4084 "MachineIndependent/glslang.y" + case 629: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */ +#line 4093 "MachineIndependent/glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermNode), 0, true, (yyvsp[-5].lex).loc); + if (parseContext.intermediate.getDebugInfo()) { + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyval.interm.intermNode), (yyvsp[-5].lex).loc); + (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpScope); + } --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 12026 "MachineIndependent/glslang_tab.cpp" +#line 12065 "MachineIndependent/glslang_tab.cpp" break; - case 628: /* $@11: %empty */ -#line 4091 "MachineIndependent/glslang.y" + case 630: /* $@11: %empty */ +#line 4104 "MachineIndependent/glslang.y" { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 12037 "MachineIndependent/glslang_tab.cpp" +#line 12076 "MachineIndependent/glslang_tab.cpp" break; - case 629: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */ -#line 4097 "MachineIndependent/glslang.y" + case 631: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */ +#line 4110 "MachineIndependent/glslang.y" { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -12045,27 +12084,31 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); + if (parseContext.intermediate.getDebugInfo()) { + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyval.interm.intermNode), (yyvsp[-4].lex).loc); + (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpScope); + } parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 12054 "MachineIndependent/glslang_tab.cpp" +#line 12097 "MachineIndependent/glslang_tab.cpp" break; - case 630: /* $@12: %empty */ -#line 4109 "MachineIndependent/glslang.y" + case 632: /* $@12: %empty */ +#line 4126 "MachineIndependent/glslang.y" { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 12065 "MachineIndependent/glslang_tab.cpp" +#line 12108 "MachineIndependent/glslang_tab.cpp" break; - case 631: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */ -#line 4115 "MachineIndependent/glslang.y" + case 633: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */ +#line 4132 "MachineIndependent/glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); @@ -12073,86 +12116,86 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); if (! parseContext.limits.nonInductiveForLoops) parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); - (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode)->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 12082 "MachineIndependent/glslang_tab.cpp" +#line 12125 "MachineIndependent/glslang_tab.cpp" break; - case 632: /* for_init_statement: expression_statement */ -#line 4130 "MachineIndependent/glslang.y" + case 634: /* for_init_statement: expression_statement */ +#line 4147 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 12090 "MachineIndependent/glslang_tab.cpp" +#line 12133 "MachineIndependent/glslang_tab.cpp" break; - case 633: /* for_init_statement: declaration_statement */ -#line 4133 "MachineIndependent/glslang.y" + case 635: /* for_init_statement: declaration_statement */ +#line 4150 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 12098 "MachineIndependent/glslang_tab.cpp" +#line 12141 "MachineIndependent/glslang_tab.cpp" break; - case 634: /* conditionopt: condition */ -#line 4139 "MachineIndependent/glslang.y" + case 636: /* conditionopt: condition */ +#line 4156 "MachineIndependent/glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 12106 "MachineIndependent/glslang_tab.cpp" +#line 12149 "MachineIndependent/glslang_tab.cpp" break; - case 635: /* conditionopt: %empty */ -#line 4142 "MachineIndependent/glslang.y" + case 637: /* conditionopt: %empty */ +#line 4159 "MachineIndependent/glslang.y" { - (yyval.interm.intermTypedNode) = 0; + (yyval.interm.intermNode) = 0; } -#line 12114 "MachineIndependent/glslang_tab.cpp" +#line 12157 "MachineIndependent/glslang_tab.cpp" break; - case 636: /* for_rest_statement: conditionopt SEMICOLON */ -#line 4148 "MachineIndependent/glslang.y" + case 638: /* for_rest_statement: conditionopt SEMICOLON */ +#line 4165 "MachineIndependent/glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 12123 "MachineIndependent/glslang_tab.cpp" +#line 12166 "MachineIndependent/glslang_tab.cpp" break; - case 637: /* for_rest_statement: conditionopt SEMICOLON expression */ -#line 4152 "MachineIndependent/glslang.y" + case 639: /* for_rest_statement: conditionopt SEMICOLON expression */ +#line 4169 "MachineIndependent/glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 12132 "MachineIndependent/glslang_tab.cpp" +#line 12175 "MachineIndependent/glslang_tab.cpp" break; - case 638: /* jump_statement: CONTINUE SEMICOLON */ -#line 4159 "MachineIndependent/glslang.y" + case 640: /* jump_statement: CONTINUE SEMICOLON */ +#line 4176 "MachineIndependent/glslang.y" { if (parseContext.loopNestingLevel <= 0) parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } -#line 12142 "MachineIndependent/glslang_tab.cpp" +#line 12185 "MachineIndependent/glslang_tab.cpp" break; - case 639: /* jump_statement: BREAK SEMICOLON */ -#line 4164 "MachineIndependent/glslang.y" + case 641: /* jump_statement: BREAK SEMICOLON */ +#line 4181 "MachineIndependent/glslang.y" { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } -#line 12152 "MachineIndependent/glslang_tab.cpp" +#line 12195 "MachineIndependent/glslang_tab.cpp" break; - case 640: /* jump_statement: RETURN SEMICOLON */ -#line 4169 "MachineIndependent/glslang.y" + case 642: /* jump_statement: RETURN SEMICOLON */ +#line 4186 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -12160,101 +12203,101 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 12164 "MachineIndependent/glslang_tab.cpp" +#line 12207 "MachineIndependent/glslang_tab.cpp" break; - case 641: /* jump_statement: RETURN expression SEMICOLON */ -#line 4176 "MachineIndependent/glslang.y" + case 643: /* jump_statement: RETURN expression SEMICOLON */ +#line 4193 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 12172 "MachineIndependent/glslang_tab.cpp" +#line 12215 "MachineIndependent/glslang_tab.cpp" break; - case 642: /* jump_statement: DISCARD SEMICOLON */ -#line 4179 "MachineIndependent/glslang.y" + case 644: /* jump_statement: DISCARD SEMICOLON */ +#line 4196 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } -#line 12181 "MachineIndependent/glslang_tab.cpp" +#line 12224 "MachineIndependent/glslang_tab.cpp" break; - case 643: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */ -#line 4183 "MachineIndependent/glslang.y" + case 645: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */ +#line 4200 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc); } -#line 12190 "MachineIndependent/glslang_tab.cpp" +#line 12233 "MachineIndependent/glslang_tab.cpp" break; - case 644: /* jump_statement: TERMINATE_RAY SEMICOLON */ -#line 4187 "MachineIndependent/glslang.y" + case 646: /* jump_statement: TERMINATE_RAY SEMICOLON */ +#line 4204 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc); } -#line 12199 "MachineIndependent/glslang_tab.cpp" +#line 12242 "MachineIndependent/glslang_tab.cpp" break; - case 645: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */ -#line 4191 "MachineIndependent/glslang.y" + case 647: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */ +#line 4208 "MachineIndependent/glslang.y" { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc); } -#line 12208 "MachineIndependent/glslang_tab.cpp" +#line 12251 "MachineIndependent/glslang_tab.cpp" break; - case 646: /* translation_unit: external_declaration */ -#line 4200 "MachineIndependent/glslang.y" + case 648: /* translation_unit: external_declaration */ +#line 4217 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 12217 "MachineIndependent/glslang_tab.cpp" +#line 12260 "MachineIndependent/glslang_tab.cpp" break; - case 647: /* translation_unit: translation_unit external_declaration */ -#line 4204 "MachineIndependent/glslang.y" + case 649: /* translation_unit: translation_unit external_declaration */ +#line 4221 "MachineIndependent/glslang.y" { if ((yyvsp[0].interm.intermNode) != nullptr) { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } } -#line 12228 "MachineIndependent/glslang_tab.cpp" +#line 12271 "MachineIndependent/glslang_tab.cpp" break; - case 648: /* external_declaration: function_definition */ -#line 4213 "MachineIndependent/glslang.y" + case 650: /* external_declaration: function_definition */ +#line 4230 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 12236 "MachineIndependent/glslang_tab.cpp" +#line 12279 "MachineIndependent/glslang_tab.cpp" break; - case 649: /* external_declaration: declaration */ -#line 4216 "MachineIndependent/glslang.y" + case 651: /* external_declaration: declaration */ +#line 4233 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 12244 "MachineIndependent/glslang_tab.cpp" +#line 12287 "MachineIndependent/glslang_tab.cpp" break; - case 650: /* external_declaration: SEMICOLON */ -#line 4219 "MachineIndependent/glslang.y" + case 652: /* external_declaration: SEMICOLON */ +#line 4236 "MachineIndependent/glslang.y" { parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); (yyval.interm.intermNode) = nullptr; } -#line 12254 "MachineIndependent/glslang_tab.cpp" +#line 12297 "MachineIndependent/glslang_tab.cpp" break; - case 651: /* $@13: %empty */ -#line 4227 "MachineIndependent/glslang.y" + case 653: /* $@13: %empty */ +#line 4244 "MachineIndependent/glslang.y" { (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); @@ -12267,11 +12310,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); ++parseContext.statementNestingLevel; } } -#line 12271 "MachineIndependent/glslang_tab.cpp" +#line 12314 "MachineIndependent/glslang_tab.cpp" break; - case 652: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */ -#line 4239 "MachineIndependent/glslang.y" + case 654: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */ +#line 4256 "MachineIndependent/glslang.y" { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -12299,228 +12342,228 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); --parseContext.statementNestingLevel; } } -#line 12303 "MachineIndependent/glslang_tab.cpp" +#line 12346 "MachineIndependent/glslang_tab.cpp" break; - case 653: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */ -#line 4269 "MachineIndependent/glslang.y" + case 655: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */ +#line 4286 "MachineIndependent/glslang.y" { (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); } -#line 12311 "MachineIndependent/glslang_tab.cpp" +#line 12354 "MachineIndependent/glslang_tab.cpp" break; - case 654: /* attribute_list: single_attribute */ -#line 4274 "MachineIndependent/glslang.y" + case 656: /* attribute_list: single_attribute */ +#line 4291 "MachineIndependent/glslang.y" { (yyval.interm.attributes) = (yyvsp[0].interm.attributes); } -#line 12319 "MachineIndependent/glslang_tab.cpp" +#line 12362 "MachineIndependent/glslang_tab.cpp" break; - case 655: /* attribute_list: attribute_list COMMA single_attribute */ -#line 4277 "MachineIndependent/glslang.y" + case 657: /* attribute_list: attribute_list COMMA single_attribute */ +#line 4294 "MachineIndependent/glslang.y" { (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); } -#line 12327 "MachineIndependent/glslang_tab.cpp" +#line 12370 "MachineIndependent/glslang_tab.cpp" break; - case 656: /* single_attribute: IDENTIFIER */ -#line 4282 "MachineIndependent/glslang.y" + case 658: /* single_attribute: IDENTIFIER */ +#line 4299 "MachineIndependent/glslang.y" { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); } -#line 12335 "MachineIndependent/glslang_tab.cpp" +#line 12378 "MachineIndependent/glslang_tab.cpp" break; - case 657: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */ -#line 4285 "MachineIndependent/glslang.y" + case 659: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */ +#line 4302 "MachineIndependent/glslang.y" { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); } -#line 12343 "MachineIndependent/glslang_tab.cpp" +#line 12386 "MachineIndependent/glslang_tab.cpp" break; - case 658: /* spirv_requirements_list: spirv_requirements_parameter */ -#line 4290 "MachineIndependent/glslang.y" + case 660: /* spirv_requirements_list: spirv_requirements_parameter */ +#line 4307 "MachineIndependent/glslang.y" { (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq); } -#line 12351 "MachineIndependent/glslang_tab.cpp" +#line 12394 "MachineIndependent/glslang_tab.cpp" break; - case 659: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter */ -#line 4293 "MachineIndependent/glslang.y" + case 661: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter */ +#line 4310 "MachineIndependent/glslang.y" { (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq)); } -#line 12359 "MachineIndependent/glslang_tab.cpp" +#line 12402 "MachineIndependent/glslang_tab.cpp" break; - case 660: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET */ -#line 4298 "MachineIndependent/glslang.y" + case 662: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET */ +#line 4315 "MachineIndependent/glslang.y" { (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr); } -#line 12367 "MachineIndependent/glslang_tab.cpp" +#line 12410 "MachineIndependent/glslang_tab.cpp" break; - case 661: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET */ -#line 4301 "MachineIndependent/glslang.y" + case 663: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET */ +#line 4318 "MachineIndependent/glslang.y" { (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12375 "MachineIndependent/glslang_tab.cpp" +#line 12418 "MachineIndependent/glslang_tab.cpp" break; - case 662: /* spirv_extension_list: STRING_LITERAL */ -#line 4306 "MachineIndependent/glslang.y" + case 664: /* spirv_extension_list: STRING_LITERAL */ +#line 4323 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); } -#line 12383 "MachineIndependent/glslang_tab.cpp" +#line 12426 "MachineIndependent/glslang_tab.cpp" break; - case 663: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL */ -#line 4309 "MachineIndependent/glslang.y" + case 665: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL */ +#line 4326 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); } -#line 12391 "MachineIndependent/glslang_tab.cpp" +#line 12434 "MachineIndependent/glslang_tab.cpp" break; - case 664: /* spirv_capability_list: INTCONSTANT */ -#line 4314 "MachineIndependent/glslang.y" + case 666: /* spirv_capability_list: INTCONSTANT */ +#line 4331 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true)); } -#line 12399 "MachineIndependent/glslang_tab.cpp" +#line 12442 "MachineIndependent/glslang_tab.cpp" break; - case 665: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT */ -#line 4317 "MachineIndependent/glslang.y" + case 667: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT */ +#line 4334 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true)); } -#line 12407 "MachineIndependent/glslang_tab.cpp" +#line 12450 "MachineIndependent/glslang_tab.cpp" break; - case 666: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN */ -#line 4322 "MachineIndependent/glslang.y" + case 668: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN */ +#line 4339 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i); (yyval.interm.intermNode) = 0; } -#line 12416 "MachineIndependent/glslang_tab.cpp" +#line 12459 "MachineIndependent/glslang_tab.cpp" break; - case 667: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ -#line 4326 "MachineIndependent/glslang.y" + case 669: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ +#line 4343 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i); (yyval.interm.intermNode) = 0; } -#line 12426 "MachineIndependent/glslang_tab.cpp" +#line 12469 "MachineIndependent/glslang_tab.cpp" break; - case 668: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */ -#line 4331 "MachineIndependent/glslang.y" + case 670: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */ +#line 4348 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); (yyval.interm.intermNode) = 0; } -#line 12435 "MachineIndependent/glslang_tab.cpp" +#line 12478 "MachineIndependent/glslang_tab.cpp" break; - case 669: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */ -#line 4335 "MachineIndependent/glslang.y" + case 671: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN */ +#line 4352 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); (yyval.interm.intermNode) = 0; } -#line 12445 "MachineIndependent/glslang_tab.cpp" +#line 12488 "MachineIndependent/glslang_tab.cpp" break; - case 670: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */ -#line 4340 "MachineIndependent/glslang.y" + case 672: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */ +#line 4357 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); (yyval.interm.intermNode) = 0; } -#line 12454 "MachineIndependent/glslang_tab.cpp" +#line 12497 "MachineIndependent/glslang_tab.cpp" break; - case 671: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */ -#line 4344 "MachineIndependent/glslang.y" + case 673: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN */ +#line 4361 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); (yyval.interm.intermNode) = 0; } -#line 12464 "MachineIndependent/glslang_tab.cpp" +#line 12507 "MachineIndependent/glslang_tab.cpp" break; - case 672: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter */ -#line 4351 "MachineIndependent/glslang.y" + case 674: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter */ +#line 4368 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); } -#line 12472 "MachineIndependent/glslang_tab.cpp" +#line 12515 "MachineIndependent/glslang_tab.cpp" break; - case 673: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter */ -#line 4354 "MachineIndependent/glslang.y" + case 675: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter */ +#line 4371 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 12480 "MachineIndependent/glslang_tab.cpp" +#line 12523 "MachineIndependent/glslang_tab.cpp" break; - case 674: /* spirv_execution_mode_parameter: FLOATCONSTANT */ -#line 4359 "MachineIndependent/glslang.y" + case 676: /* spirv_execution_mode_parameter: FLOATCONSTANT */ +#line 4376 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 12488 "MachineIndependent/glslang_tab.cpp" +#line 12531 "MachineIndependent/glslang_tab.cpp" break; - case 675: /* spirv_execution_mode_parameter: INTCONSTANT */ -#line 4362 "MachineIndependent/glslang.y" + case 677: /* spirv_execution_mode_parameter: INTCONSTANT */ +#line 4379 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 12496 "MachineIndependent/glslang_tab.cpp" +#line 12539 "MachineIndependent/glslang_tab.cpp" break; - case 676: /* spirv_execution_mode_parameter: UINTCONSTANT */ -#line 4365 "MachineIndependent/glslang.y" + case 678: /* spirv_execution_mode_parameter: UINTCONSTANT */ +#line 4382 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 12504 "MachineIndependent/glslang_tab.cpp" +#line 12547 "MachineIndependent/glslang_tab.cpp" break; - case 677: /* spirv_execution_mode_parameter: BOOLCONSTANT */ -#line 4368 "MachineIndependent/glslang.y" + case 679: /* spirv_execution_mode_parameter: BOOLCONSTANT */ +#line 4385 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 12512 "MachineIndependent/glslang_tab.cpp" +#line 12555 "MachineIndependent/glslang_tab.cpp" break; - case 678: /* spirv_execution_mode_parameter: STRING_LITERAL */ -#line 4371 "MachineIndependent/glslang.y" + case 680: /* spirv_execution_mode_parameter: STRING_LITERAL */ +#line 4388 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true); } -#line 12520 "MachineIndependent/glslang_tab.cpp" +#line 12563 "MachineIndependent/glslang_tab.cpp" break; - case 679: /* spirv_execution_mode_id_parameter_list: constant_expression */ -#line 4376 "MachineIndependent/glslang.y" + case 681: /* spirv_execution_mode_id_parameter_list: constant_expression */ +#line 4393 "MachineIndependent/glslang.y" { if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat && (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt && @@ -12530,11 +12573,11 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), ""); (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode)); } -#line 12534 "MachineIndependent/glslang_tab.cpp" +#line 12577 "MachineIndependent/glslang_tab.cpp" break; - case 680: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression */ -#line 4385 "MachineIndependent/glslang.y" + case 682: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression */ +#line 4402 "MachineIndependent/glslang.y" { if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat && (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt && @@ -12544,351 +12587,351 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), ""); (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode)); } -#line 12548 "MachineIndependent/glslang_tab.cpp" +#line 12591 "MachineIndependent/glslang_tab.cpp" break; - case 681: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN */ -#line 4396 "MachineIndependent/glslang.y" + case 683: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN */ +#line 4413 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-3].lex).loc); (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass; (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i; } -#line 12558 "MachineIndependent/glslang_tab.cpp" +#line 12601 "MachineIndependent/glslang_tab.cpp" break; - case 682: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ -#line 4401 "MachineIndependent/glslang.y" + case 684: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ +#line 4418 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc); parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass; (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i; } -#line 12569 "MachineIndependent/glslang_tab.cpp" +#line 12612 "MachineIndependent/glslang_tab.cpp" break; - case 683: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN */ -#line 4409 "MachineIndependent/glslang.y" + case 685: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN */ +#line 4426 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-3].lex).loc); (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i); } -#line 12578 "MachineIndependent/glslang_tab.cpp" +#line 12621 "MachineIndependent/glslang_tab.cpp" break; - case 684: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ -#line 4413 "MachineIndependent/glslang.y" + case 686: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN */ +#line 4430 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc); parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i); } -#line 12588 "MachineIndependent/glslang_tab.cpp" +#line 12631 "MachineIndependent/glslang_tab.cpp" break; - case 685: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */ -#line 4418 "MachineIndependent/glslang.y" + case 687: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */ +#line 4435 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc); (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12597 "MachineIndependent/glslang_tab.cpp" +#line 12640 "MachineIndependent/glslang_tab.cpp" break; - case 686: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */ -#line 4422 "MachineIndependent/glslang.y" + case 688: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN */ +#line 4439 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-7].lex).loc); parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12607 "MachineIndependent/glslang_tab.cpp" +#line 12650 "MachineIndependent/glslang_tab.cpp" break; - case 687: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */ -#line 4427 "MachineIndependent/glslang.y" + case 689: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */ +#line 4444 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc); (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12616 "MachineIndependent/glslang_tab.cpp" +#line 12659 "MachineIndependent/glslang_tab.cpp" break; - case 688: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */ -#line 4431 "MachineIndependent/glslang.y" + case 690: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN */ +#line 4448 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-7].lex).loc); parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12626 "MachineIndependent/glslang_tab.cpp" +#line 12669 "MachineIndependent/glslang_tab.cpp" break; - case 689: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */ -#line 4436 "MachineIndependent/glslang.y" + case 691: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */ +#line 4453 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc); (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12635 "MachineIndependent/glslang_tab.cpp" +#line 12678 "MachineIndependent/glslang_tab.cpp" break; - case 690: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */ -#line 4440 "MachineIndependent/glslang.y" + case 692: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN */ +#line 4457 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-7].lex).loc); parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate()); } -#line 12645 "MachineIndependent/glslang_tab.cpp" +#line 12688 "MachineIndependent/glslang_tab.cpp" break; - case 691: /* spirv_decorate_parameter_list: spirv_decorate_parameter */ -#line 4447 "MachineIndependent/glslang.y" + case 693: /* spirv_decorate_parameter_list: spirv_decorate_parameter */ +#line 4464 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); } -#line 12653 "MachineIndependent/glslang_tab.cpp" +#line 12696 "MachineIndependent/glslang_tab.cpp" break; - case 692: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter */ -#line 4450 "MachineIndependent/glslang.y" + case 694: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter */ +#line 4467 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 12661 "MachineIndependent/glslang_tab.cpp" +#line 12704 "MachineIndependent/glslang_tab.cpp" break; - case 693: /* spirv_decorate_parameter: FLOATCONSTANT */ -#line 4455 "MachineIndependent/glslang.y" + case 695: /* spirv_decorate_parameter: FLOATCONSTANT */ +#line 4472 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 12669 "MachineIndependent/glslang_tab.cpp" +#line 12712 "MachineIndependent/glslang_tab.cpp" break; - case 694: /* spirv_decorate_parameter: INTCONSTANT */ -#line 4458 "MachineIndependent/glslang.y" + case 696: /* spirv_decorate_parameter: INTCONSTANT */ +#line 4475 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 12677 "MachineIndependent/glslang_tab.cpp" +#line 12720 "MachineIndependent/glslang_tab.cpp" break; - case 695: /* spirv_decorate_parameter: UINTCONSTANT */ -#line 4461 "MachineIndependent/glslang.y" + case 697: /* spirv_decorate_parameter: UINTCONSTANT */ +#line 4478 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 12685 "MachineIndependent/glslang_tab.cpp" +#line 12728 "MachineIndependent/glslang_tab.cpp" break; - case 696: /* spirv_decorate_parameter: BOOLCONSTANT */ -#line 4464 "MachineIndependent/glslang.y" + case 698: /* spirv_decorate_parameter: BOOLCONSTANT */ +#line 4481 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 12693 "MachineIndependent/glslang_tab.cpp" +#line 12736 "MachineIndependent/glslang_tab.cpp" break; - case 697: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter */ -#line 4469 "MachineIndependent/glslang.y" + case 699: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter */ +#line 4486 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); } -#line 12701 "MachineIndependent/glslang_tab.cpp" +#line 12744 "MachineIndependent/glslang_tab.cpp" break; - case 698: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter */ -#line 4472 "MachineIndependent/glslang.y" + case 700: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter */ +#line 4489 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 12709 "MachineIndependent/glslang_tab.cpp" +#line 12752 "MachineIndependent/glslang_tab.cpp" break; - case 699: /* spirv_decorate_id_parameter: variable_identifier */ -#line 4477 "MachineIndependent/glslang.y" + case 701: /* spirv_decorate_id_parameter: variable_identifier */ +#line 4494 "MachineIndependent/glslang.y" { if ((yyvsp[0].interm.intermTypedNode)->getAsConstantUnion() || (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode()) (yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode); else parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "only allow constants or variables which are not elements of a composite", "", ""); } -#line 12720 "MachineIndependent/glslang_tab.cpp" +#line 12763 "MachineIndependent/glslang_tab.cpp" break; - case 700: /* spirv_decorate_id_parameter: FLOATCONSTANT */ -#line 4483 "MachineIndependent/glslang.y" + case 702: /* spirv_decorate_id_parameter: FLOATCONSTANT */ +#line 4500 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 12728 "MachineIndependent/glslang_tab.cpp" +#line 12771 "MachineIndependent/glslang_tab.cpp" break; - case 701: /* spirv_decorate_id_parameter: INTCONSTANT */ -#line 4486 "MachineIndependent/glslang.y" + case 703: /* spirv_decorate_id_parameter: INTCONSTANT */ +#line 4503 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 12736 "MachineIndependent/glslang_tab.cpp" +#line 12779 "MachineIndependent/glslang_tab.cpp" break; - case 702: /* spirv_decorate_id_parameter: UINTCONSTANT */ -#line 4489 "MachineIndependent/glslang.y" + case 704: /* spirv_decorate_id_parameter: UINTCONSTANT */ +#line 4506 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 12744 "MachineIndependent/glslang_tab.cpp" +#line 12787 "MachineIndependent/glslang_tab.cpp" break; - case 703: /* spirv_decorate_id_parameter: BOOLCONSTANT */ -#line 4492 "MachineIndependent/glslang.y" + case 705: /* spirv_decorate_id_parameter: BOOLCONSTANT */ +#line 4509 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 12752 "MachineIndependent/glslang_tab.cpp" +#line 12795 "MachineIndependent/glslang_tab.cpp" break; - case 704: /* spirv_decorate_string_parameter_list: STRING_LITERAL */ -#line 4497 "MachineIndependent/glslang.y" + case 706: /* spirv_decorate_string_parameter_list: STRING_LITERAL */ +#line 4514 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate( parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); } -#line 12761 "MachineIndependent/glslang_tab.cpp" +#line 12804 "MachineIndependent/glslang_tab.cpp" break; - case 705: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL */ -#line 4501 "MachineIndependent/glslang.y" + case 707: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL */ +#line 4518 "MachineIndependent/glslang.y" { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true)); } -#line 12769 "MachineIndependent/glslang_tab.cpp" +#line 12812 "MachineIndependent/glslang_tab.cpp" break; - case 706: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */ -#line 4506 "MachineIndependent/glslang.y" + case 708: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */ +#line 4523 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams)); } -#line 12778 "MachineIndependent/glslang_tab.cpp" +#line 12821 "MachineIndependent/glslang_tab.cpp" break; - case 707: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */ -#line 4510 "MachineIndependent/glslang.y" + case 709: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN */ +#line 4527 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq)); (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams)); } -#line 12788 "MachineIndependent/glslang_tab.cpp" +#line 12831 "MachineIndependent/glslang_tab.cpp" break; - case 708: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4515 "MachineIndependent/glslang.y" + case 710: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */ +#line 4532 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst)); } -#line 12797 "MachineIndependent/glslang_tab.cpp" +#line 12840 "MachineIndependent/glslang_tab.cpp" break; - case 709: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4519 "MachineIndependent/glslang.y" + case 711: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */ +#line 4536 "MachineIndependent/glslang.y" { (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst)); } -#line 12807 "MachineIndependent/glslang_tab.cpp" +#line 12850 "MachineIndependent/glslang_tab.cpp" break; - case 710: /* spirv_type_parameter_list: spirv_type_parameter */ -#line 4526 "MachineIndependent/glslang.y" + case 712: /* spirv_type_parameter_list: spirv_type_parameter */ +#line 4543 "MachineIndependent/glslang.y" { (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams); } -#line 12815 "MachineIndependent/glslang_tab.cpp" +#line 12858 "MachineIndependent/glslang_tab.cpp" break; - case 711: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter */ -#line 4529 "MachineIndependent/glslang.y" + case 713: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter */ +#line 4546 "MachineIndependent/glslang.y" { (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams)); } -#line 12823 "MachineIndependent/glslang_tab.cpp" +#line 12866 "MachineIndependent/glslang_tab.cpp" break; - case 712: /* spirv_type_parameter: constant_expression */ -#line 4534 "MachineIndependent/glslang.y" + case 714: /* spirv_type_parameter: constant_expression */ +#line 4551 "MachineIndependent/glslang.y" { (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion()); } -#line 12831 "MachineIndependent/glslang_tab.cpp" +#line 12874 "MachineIndependent/glslang_tab.cpp" break; - case 713: /* spirv_type_parameter: type_specifier_nonarray */ -#line 4537 "MachineIndependent/glslang.y" + case 715: /* spirv_type_parameter: type_specifier_nonarray */ +#line 4554 "MachineIndependent/glslang.y" { (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 12839 "MachineIndependent/glslang_tab.cpp" +#line 12882 "MachineIndependent/glslang_tab.cpp" break; - case 714: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4542 "MachineIndependent/glslang.y" + case 716: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN */ +#line 4559 "MachineIndependent/glslang.y" { (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst); } -#line 12847 "MachineIndependent/glslang_tab.cpp" +#line 12890 "MachineIndependent/glslang_tab.cpp" break; - case 715: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */ -#line 4545 "MachineIndependent/glslang.y" + case 717: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN */ +#line 4562 "MachineIndependent/glslang.y" { parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq)); (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst); } -#line 12856 "MachineIndependent/glslang_tab.cpp" +#line 12899 "MachineIndependent/glslang_tab.cpp" break; - case 716: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id */ -#line 4551 "MachineIndependent/glslang.y" + case 718: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id */ +#line 4568 "MachineIndependent/glslang.y" { (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst); } -#line 12864 "MachineIndependent/glslang_tab.cpp" +#line 12907 "MachineIndependent/glslang_tab.cpp" break; - case 717: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id */ -#line 4554 "MachineIndependent/glslang.y" + case 719: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id */ +#line 4571 "MachineIndependent/glslang.y" { (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst)); } -#line 12872 "MachineIndependent/glslang_tab.cpp" +#line 12915 "MachineIndependent/glslang_tab.cpp" break; - case 718: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL */ -#line 4559 "MachineIndependent/glslang.y" + case 720: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL */ +#line 4576 "MachineIndependent/glslang.y" { (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string); } -#line 12880 "MachineIndependent/glslang_tab.cpp" +#line 12923 "MachineIndependent/glslang_tab.cpp" break; - case 719: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT */ -#line 4562 "MachineIndependent/glslang.y" + case 721: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT */ +#line 4579 "MachineIndependent/glslang.y" { (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i); } -#line 12888 "MachineIndependent/glslang_tab.cpp" +#line 12931 "MachineIndependent/glslang_tab.cpp" break; -#line 12892 "MachineIndependent/glslang_tab.cpp" +#line 12935 "MachineIndependent/glslang_tab.cpp" default: break; } @@ -13112,5 +13155,5 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); return yyresult; } -#line 4566 "MachineIndependent/glslang.y" +#line 4583 "MachineIndependent/glslang.y" diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h index b92ddec..f90f704 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h @@ -233,307 +233,309 @@ extern int yydebug; COOPVECNV = 434, /* COOPVECNV */ HITOBJECTNV = 435, /* HITOBJECTNV */ HITOBJECTATTRNV = 436, /* HITOBJECTATTRNV */ - TENSORLAYOUTNV = 437, /* TENSORLAYOUTNV */ - TENSORVIEWNV = 438, /* TENSORVIEWNV */ - TENSORARM = 439, /* TENSORARM */ - SAMPLERCUBEARRAY = 440, /* SAMPLERCUBEARRAY */ - SAMPLERCUBEARRAYSHADOW = 441, /* SAMPLERCUBEARRAYSHADOW */ - ISAMPLERCUBEARRAY = 442, /* ISAMPLERCUBEARRAY */ - USAMPLERCUBEARRAY = 443, /* USAMPLERCUBEARRAY */ - SAMPLER1D = 444, /* SAMPLER1D */ - SAMPLER1DARRAY = 445, /* SAMPLER1DARRAY */ - SAMPLER1DARRAYSHADOW = 446, /* SAMPLER1DARRAYSHADOW */ - ISAMPLER1D = 447, /* ISAMPLER1D */ - SAMPLER1DSHADOW = 448, /* SAMPLER1DSHADOW */ - SAMPLER2DRECT = 449, /* SAMPLER2DRECT */ - SAMPLER2DRECTSHADOW = 450, /* SAMPLER2DRECTSHADOW */ - ISAMPLER2DRECT = 451, /* ISAMPLER2DRECT */ - USAMPLER2DRECT = 452, /* USAMPLER2DRECT */ - SAMPLERBUFFER = 453, /* SAMPLERBUFFER */ - ISAMPLERBUFFER = 454, /* ISAMPLERBUFFER */ - USAMPLERBUFFER = 455, /* USAMPLERBUFFER */ - SAMPLER2DMS = 456, /* SAMPLER2DMS */ - ISAMPLER2DMS = 457, /* ISAMPLER2DMS */ - USAMPLER2DMS = 458, /* USAMPLER2DMS */ - SAMPLER2DMSARRAY = 459, /* SAMPLER2DMSARRAY */ - ISAMPLER2DMSARRAY = 460, /* ISAMPLER2DMSARRAY */ - USAMPLER2DMSARRAY = 461, /* USAMPLER2DMSARRAY */ - SAMPLEREXTERNALOES = 462, /* SAMPLEREXTERNALOES */ - SAMPLEREXTERNAL2DY2YEXT = 463, /* SAMPLEREXTERNAL2DY2YEXT */ - ISAMPLER1DARRAY = 464, /* ISAMPLER1DARRAY */ - USAMPLER1D = 465, /* USAMPLER1D */ - USAMPLER1DARRAY = 466, /* USAMPLER1DARRAY */ - F16SAMPLER1D = 467, /* F16SAMPLER1D */ - F16SAMPLER2D = 468, /* F16SAMPLER2D */ - F16SAMPLER3D = 469, /* F16SAMPLER3D */ - F16SAMPLER2DRECT = 470, /* F16SAMPLER2DRECT */ - F16SAMPLERCUBE = 471, /* F16SAMPLERCUBE */ - F16SAMPLER1DARRAY = 472, /* F16SAMPLER1DARRAY */ - F16SAMPLER2DARRAY = 473, /* F16SAMPLER2DARRAY */ - F16SAMPLERCUBEARRAY = 474, /* F16SAMPLERCUBEARRAY */ - F16SAMPLERBUFFER = 475, /* F16SAMPLERBUFFER */ - F16SAMPLER2DMS = 476, /* F16SAMPLER2DMS */ - F16SAMPLER2DMSARRAY = 477, /* F16SAMPLER2DMSARRAY */ - F16SAMPLER1DSHADOW = 478, /* F16SAMPLER1DSHADOW */ - F16SAMPLER2DSHADOW = 479, /* F16SAMPLER2DSHADOW */ - F16SAMPLER1DARRAYSHADOW = 480, /* F16SAMPLER1DARRAYSHADOW */ - F16SAMPLER2DARRAYSHADOW = 481, /* F16SAMPLER2DARRAYSHADOW */ - F16SAMPLER2DRECTSHADOW = 482, /* F16SAMPLER2DRECTSHADOW */ - F16SAMPLERCUBESHADOW = 483, /* F16SAMPLERCUBESHADOW */ - F16SAMPLERCUBEARRAYSHADOW = 484, /* F16SAMPLERCUBEARRAYSHADOW */ - IMAGE1D = 485, /* IMAGE1D */ - IIMAGE1D = 486, /* IIMAGE1D */ - UIMAGE1D = 487, /* UIMAGE1D */ - IMAGE2D = 488, /* IMAGE2D */ - IIMAGE2D = 489, /* IIMAGE2D */ - UIMAGE2D = 490, /* UIMAGE2D */ - IMAGE3D = 491, /* IMAGE3D */ - IIMAGE3D = 492, /* IIMAGE3D */ - UIMAGE3D = 493, /* UIMAGE3D */ - IMAGE2DRECT = 494, /* IMAGE2DRECT */ - IIMAGE2DRECT = 495, /* IIMAGE2DRECT */ - UIMAGE2DRECT = 496, /* UIMAGE2DRECT */ - IMAGECUBE = 497, /* IMAGECUBE */ - IIMAGECUBE = 498, /* IIMAGECUBE */ - UIMAGECUBE = 499, /* UIMAGECUBE */ - IMAGEBUFFER = 500, /* IMAGEBUFFER */ - IIMAGEBUFFER = 501, /* IIMAGEBUFFER */ - UIMAGEBUFFER = 502, /* UIMAGEBUFFER */ - IMAGE1DARRAY = 503, /* IMAGE1DARRAY */ - IIMAGE1DARRAY = 504, /* IIMAGE1DARRAY */ - UIMAGE1DARRAY = 505, /* UIMAGE1DARRAY */ - IMAGE2DARRAY = 506, /* IMAGE2DARRAY */ - IIMAGE2DARRAY = 507, /* IIMAGE2DARRAY */ - UIMAGE2DARRAY = 508, /* UIMAGE2DARRAY */ - IMAGECUBEARRAY = 509, /* IMAGECUBEARRAY */ - IIMAGECUBEARRAY = 510, /* IIMAGECUBEARRAY */ - UIMAGECUBEARRAY = 511, /* UIMAGECUBEARRAY */ - IMAGE2DMS = 512, /* IMAGE2DMS */ - IIMAGE2DMS = 513, /* IIMAGE2DMS */ - UIMAGE2DMS = 514, /* UIMAGE2DMS */ - IMAGE2DMSARRAY = 515, /* IMAGE2DMSARRAY */ - IIMAGE2DMSARRAY = 516, /* IIMAGE2DMSARRAY */ - UIMAGE2DMSARRAY = 517, /* UIMAGE2DMSARRAY */ - F16IMAGE1D = 518, /* F16IMAGE1D */ - F16IMAGE2D = 519, /* F16IMAGE2D */ - F16IMAGE3D = 520, /* F16IMAGE3D */ - F16IMAGE2DRECT = 521, /* F16IMAGE2DRECT */ - F16IMAGECUBE = 522, /* F16IMAGECUBE */ - F16IMAGE1DARRAY = 523, /* F16IMAGE1DARRAY */ - F16IMAGE2DARRAY = 524, /* F16IMAGE2DARRAY */ - F16IMAGECUBEARRAY = 525, /* F16IMAGECUBEARRAY */ - F16IMAGEBUFFER = 526, /* F16IMAGEBUFFER */ - F16IMAGE2DMS = 527, /* F16IMAGE2DMS */ - F16IMAGE2DMSARRAY = 528, /* F16IMAGE2DMSARRAY */ - I64IMAGE1D = 529, /* I64IMAGE1D */ - U64IMAGE1D = 530, /* U64IMAGE1D */ - I64IMAGE2D = 531, /* I64IMAGE2D */ - U64IMAGE2D = 532, /* U64IMAGE2D */ - I64IMAGE3D = 533, /* I64IMAGE3D */ - U64IMAGE3D = 534, /* U64IMAGE3D */ - I64IMAGE2DRECT = 535, /* I64IMAGE2DRECT */ - U64IMAGE2DRECT = 536, /* U64IMAGE2DRECT */ - I64IMAGECUBE = 537, /* I64IMAGECUBE */ - U64IMAGECUBE = 538, /* U64IMAGECUBE */ - I64IMAGEBUFFER = 539, /* I64IMAGEBUFFER */ - U64IMAGEBUFFER = 540, /* U64IMAGEBUFFER */ - I64IMAGE1DARRAY = 541, /* I64IMAGE1DARRAY */ - U64IMAGE1DARRAY = 542, /* U64IMAGE1DARRAY */ - I64IMAGE2DARRAY = 543, /* I64IMAGE2DARRAY */ - U64IMAGE2DARRAY = 544, /* U64IMAGE2DARRAY */ - I64IMAGECUBEARRAY = 545, /* I64IMAGECUBEARRAY */ - U64IMAGECUBEARRAY = 546, /* U64IMAGECUBEARRAY */ - I64IMAGE2DMS = 547, /* I64IMAGE2DMS */ - U64IMAGE2DMS = 548, /* U64IMAGE2DMS */ - I64IMAGE2DMSARRAY = 549, /* I64IMAGE2DMSARRAY */ - U64IMAGE2DMSARRAY = 550, /* U64IMAGE2DMSARRAY */ - TEXTURECUBEARRAY = 551, /* TEXTURECUBEARRAY */ - ITEXTURECUBEARRAY = 552, /* ITEXTURECUBEARRAY */ - UTEXTURECUBEARRAY = 553, /* UTEXTURECUBEARRAY */ - TEXTURE1D = 554, /* TEXTURE1D */ - ITEXTURE1D = 555, /* ITEXTURE1D */ - UTEXTURE1D = 556, /* UTEXTURE1D */ - TEXTURE1DARRAY = 557, /* TEXTURE1DARRAY */ - ITEXTURE1DARRAY = 558, /* ITEXTURE1DARRAY */ - UTEXTURE1DARRAY = 559, /* UTEXTURE1DARRAY */ - TEXTURE2DRECT = 560, /* TEXTURE2DRECT */ - ITEXTURE2DRECT = 561, /* ITEXTURE2DRECT */ - UTEXTURE2DRECT = 562, /* UTEXTURE2DRECT */ - TEXTUREBUFFER = 563, /* TEXTUREBUFFER */ - ITEXTUREBUFFER = 564, /* ITEXTUREBUFFER */ - UTEXTUREBUFFER = 565, /* UTEXTUREBUFFER */ - TEXTURE2DMS = 566, /* TEXTURE2DMS */ - ITEXTURE2DMS = 567, /* ITEXTURE2DMS */ - UTEXTURE2DMS = 568, /* UTEXTURE2DMS */ - TEXTURE2DMSARRAY = 569, /* TEXTURE2DMSARRAY */ - ITEXTURE2DMSARRAY = 570, /* ITEXTURE2DMSARRAY */ - UTEXTURE2DMSARRAY = 571, /* UTEXTURE2DMSARRAY */ - F16TEXTURE1D = 572, /* F16TEXTURE1D */ - F16TEXTURE2D = 573, /* F16TEXTURE2D */ - F16TEXTURE3D = 574, /* F16TEXTURE3D */ - F16TEXTURE2DRECT = 575, /* F16TEXTURE2DRECT */ - F16TEXTURECUBE = 576, /* F16TEXTURECUBE */ - F16TEXTURE1DARRAY = 577, /* F16TEXTURE1DARRAY */ - F16TEXTURE2DARRAY = 578, /* F16TEXTURE2DARRAY */ - F16TEXTURECUBEARRAY = 579, /* F16TEXTURECUBEARRAY */ - F16TEXTUREBUFFER = 580, /* F16TEXTUREBUFFER */ - F16TEXTURE2DMS = 581, /* F16TEXTURE2DMS */ - F16TEXTURE2DMSARRAY = 582, /* F16TEXTURE2DMSARRAY */ - SUBPASSINPUT = 583, /* SUBPASSINPUT */ - SUBPASSINPUTMS = 584, /* SUBPASSINPUTMS */ - ISUBPASSINPUT = 585, /* ISUBPASSINPUT */ - ISUBPASSINPUTMS = 586, /* ISUBPASSINPUTMS */ - USUBPASSINPUT = 587, /* USUBPASSINPUT */ - USUBPASSINPUTMS = 588, /* USUBPASSINPUTMS */ - F16SUBPASSINPUT = 589, /* F16SUBPASSINPUT */ - F16SUBPASSINPUTMS = 590, /* F16SUBPASSINPUTMS */ - SPIRV_INSTRUCTION = 591, /* SPIRV_INSTRUCTION */ - SPIRV_EXECUTION_MODE = 592, /* SPIRV_EXECUTION_MODE */ - SPIRV_EXECUTION_MODE_ID = 593, /* SPIRV_EXECUTION_MODE_ID */ - SPIRV_DECORATE = 594, /* SPIRV_DECORATE */ - SPIRV_DECORATE_ID = 595, /* SPIRV_DECORATE_ID */ - SPIRV_DECORATE_STRING = 596, /* SPIRV_DECORATE_STRING */ - SPIRV_TYPE = 597, /* SPIRV_TYPE */ - SPIRV_STORAGE_CLASS = 598, /* SPIRV_STORAGE_CLASS */ - SPIRV_BY_REFERENCE = 599, /* SPIRV_BY_REFERENCE */ - SPIRV_LITERAL = 600, /* SPIRV_LITERAL */ - ATTACHMENTEXT = 601, /* ATTACHMENTEXT */ - IATTACHMENTEXT = 602, /* IATTACHMENTEXT */ - UATTACHMENTEXT = 603, /* UATTACHMENTEXT */ - LEFT_OP = 604, /* LEFT_OP */ - RIGHT_OP = 605, /* RIGHT_OP */ - INC_OP = 606, /* INC_OP */ - DEC_OP = 607, /* DEC_OP */ - LE_OP = 608, /* LE_OP */ - GE_OP = 609, /* GE_OP */ - EQ_OP = 610, /* EQ_OP */ - NE_OP = 611, /* NE_OP */ - AND_OP = 612, /* AND_OP */ - OR_OP = 613, /* OR_OP */ - XOR_OP = 614, /* XOR_OP */ - MUL_ASSIGN = 615, /* MUL_ASSIGN */ - DIV_ASSIGN = 616, /* DIV_ASSIGN */ - ADD_ASSIGN = 617, /* ADD_ASSIGN */ - MOD_ASSIGN = 618, /* MOD_ASSIGN */ - LEFT_ASSIGN = 619, /* LEFT_ASSIGN */ - RIGHT_ASSIGN = 620, /* RIGHT_ASSIGN */ - AND_ASSIGN = 621, /* AND_ASSIGN */ - XOR_ASSIGN = 622, /* XOR_ASSIGN */ - OR_ASSIGN = 623, /* OR_ASSIGN */ - SUB_ASSIGN = 624, /* SUB_ASSIGN */ - STRING_LITERAL = 625, /* STRING_LITERAL */ - LEFT_PAREN = 626, /* LEFT_PAREN */ - RIGHT_PAREN = 627, /* RIGHT_PAREN */ - LEFT_BRACKET = 628, /* LEFT_BRACKET */ - RIGHT_BRACKET = 629, /* RIGHT_BRACKET */ - LEFT_BRACE = 630, /* LEFT_BRACE */ - RIGHT_BRACE = 631, /* RIGHT_BRACE */ - DOT = 632, /* DOT */ - COMMA = 633, /* COMMA */ - COLON = 634, /* COLON */ - EQUAL = 635, /* EQUAL */ - SEMICOLON = 636, /* SEMICOLON */ - BANG = 637, /* BANG */ - DASH = 638, /* DASH */ - TILDE = 639, /* TILDE */ - PLUS = 640, /* PLUS */ - STAR = 641, /* STAR */ - SLASH = 642, /* SLASH */ - PERCENT = 643, /* PERCENT */ - LEFT_ANGLE = 644, /* LEFT_ANGLE */ - RIGHT_ANGLE = 645, /* RIGHT_ANGLE */ - VERTICAL_BAR = 646, /* VERTICAL_BAR */ - CARET = 647, /* CARET */ - AMPERSAND = 648, /* AMPERSAND */ - QUESTION = 649, /* QUESTION */ - INVARIANT = 650, /* INVARIANT */ - HIGH_PRECISION = 651, /* HIGH_PRECISION */ - MEDIUM_PRECISION = 652, /* MEDIUM_PRECISION */ - LOW_PRECISION = 653, /* LOW_PRECISION */ - PRECISION = 654, /* PRECISION */ - PACKED = 655, /* PACKED */ - RESOURCE = 656, /* RESOURCE */ - SUPERP = 657, /* SUPERP */ - FLOATCONSTANT = 658, /* FLOATCONSTANT */ - INTCONSTANT = 659, /* INTCONSTANT */ - UINTCONSTANT = 660, /* UINTCONSTANT */ - BOOLCONSTANT = 661, /* BOOLCONSTANT */ - IDENTIFIER = 662, /* IDENTIFIER */ - TYPE_NAME = 663, /* TYPE_NAME */ - CENTROID = 664, /* CENTROID */ - IN = 665, /* IN */ - OUT = 666, /* OUT */ - INOUT = 667, /* INOUT */ - STRUCT = 668, /* STRUCT */ - VOID = 669, /* VOID */ - WHILE = 670, /* WHILE */ - BREAK = 671, /* BREAK */ - CONTINUE = 672, /* CONTINUE */ - DO = 673, /* DO */ - ELSE = 674, /* ELSE */ - FOR = 675, /* FOR */ - IF = 676, /* IF */ - DISCARD = 677, /* DISCARD */ - RETURN = 678, /* RETURN */ - SWITCH = 679, /* SWITCH */ - CASE = 680, /* CASE */ - DEFAULT = 681, /* DEFAULT */ - TERMINATE_INVOCATION = 682, /* TERMINATE_INVOCATION */ - TERMINATE_RAY = 683, /* TERMINATE_RAY */ - IGNORE_INTERSECTION = 684, /* IGNORE_INTERSECTION */ - UNIFORM = 685, /* UNIFORM */ - SHARED = 686, /* SHARED */ - BUFFER = 687, /* BUFFER */ - TILEIMAGEEXT = 688, /* TILEIMAGEEXT */ - FLAT = 689, /* FLAT */ - SMOOTH = 690, /* SMOOTH */ - LAYOUT = 691, /* LAYOUT */ - DOUBLECONSTANT = 692, /* DOUBLECONSTANT */ - INT16CONSTANT = 693, /* INT16CONSTANT */ - UINT16CONSTANT = 694, /* UINT16CONSTANT */ - FLOAT16CONSTANT = 695, /* FLOAT16CONSTANT */ - INT32CONSTANT = 696, /* INT32CONSTANT */ - UINT32CONSTANT = 697, /* UINT32CONSTANT */ - INT64CONSTANT = 698, /* INT64CONSTANT */ - UINT64CONSTANT = 699, /* UINT64CONSTANT */ - SUBROUTINE = 700, /* SUBROUTINE */ - DEMOTE = 701, /* DEMOTE */ - FUNCTION = 702, /* FUNCTION */ - PAYLOADNV = 703, /* PAYLOADNV */ - PAYLOADINNV = 704, /* PAYLOADINNV */ - HITATTRNV = 705, /* HITATTRNV */ - CALLDATANV = 706, /* CALLDATANV */ - CALLDATAINNV = 707, /* CALLDATAINNV */ - PAYLOADEXT = 708, /* PAYLOADEXT */ - PAYLOADINEXT = 709, /* PAYLOADINEXT */ - HITATTREXT = 710, /* HITATTREXT */ - CALLDATAEXT = 711, /* CALLDATAEXT */ - CALLDATAINEXT = 712, /* CALLDATAINEXT */ - PATCH = 713, /* PATCH */ - SAMPLE = 714, /* SAMPLE */ - NONUNIFORM = 715, /* NONUNIFORM */ - COHERENT = 716, /* COHERENT */ - VOLATILE = 717, /* VOLATILE */ - RESTRICT = 718, /* RESTRICT */ - READONLY = 719, /* READONLY */ - WRITEONLY = 720, /* WRITEONLY */ - NONTEMPORAL = 721, /* NONTEMPORAL */ - DEVICECOHERENT = 722, /* DEVICECOHERENT */ - QUEUEFAMILYCOHERENT = 723, /* QUEUEFAMILYCOHERENT */ - WORKGROUPCOHERENT = 724, /* WORKGROUPCOHERENT */ - SUBGROUPCOHERENT = 725, /* SUBGROUPCOHERENT */ - NONPRIVATE = 726, /* NONPRIVATE */ - SHADERCALLCOHERENT = 727, /* SHADERCALLCOHERENT */ - NOPERSPECTIVE = 728, /* NOPERSPECTIVE */ - EXPLICITINTERPAMD = 729, /* EXPLICITINTERPAMD */ - PERVERTEXEXT = 730, /* PERVERTEXEXT */ - PERVERTEXNV = 731, /* PERVERTEXNV */ - PERPRIMITIVENV = 732, /* PERPRIMITIVENV */ - PERVIEWNV = 733, /* PERVIEWNV */ - PERTASKNV = 734, /* PERTASKNV */ - PERPRIMITIVEEXT = 735, /* PERPRIMITIVEEXT */ - TASKPAYLOADWORKGROUPEXT = 736, /* TASKPAYLOADWORKGROUPEXT */ - PRECISE = 737 /* PRECISE */ + HITOBJECTEXT = 437, /* HITOBJECTEXT */ + HITOBJECTATTREXT = 438, /* HITOBJECTATTREXT */ + TENSORLAYOUTNV = 439, /* TENSORLAYOUTNV */ + TENSORVIEWNV = 440, /* TENSORVIEWNV */ + TENSORARM = 441, /* TENSORARM */ + SAMPLERCUBEARRAY = 442, /* SAMPLERCUBEARRAY */ + SAMPLERCUBEARRAYSHADOW = 443, /* SAMPLERCUBEARRAYSHADOW */ + ISAMPLERCUBEARRAY = 444, /* ISAMPLERCUBEARRAY */ + USAMPLERCUBEARRAY = 445, /* USAMPLERCUBEARRAY */ + SAMPLER1D = 446, /* SAMPLER1D */ + SAMPLER1DARRAY = 447, /* SAMPLER1DARRAY */ + SAMPLER1DARRAYSHADOW = 448, /* SAMPLER1DARRAYSHADOW */ + ISAMPLER1D = 449, /* ISAMPLER1D */ + SAMPLER1DSHADOW = 450, /* SAMPLER1DSHADOW */ + SAMPLER2DRECT = 451, /* SAMPLER2DRECT */ + SAMPLER2DRECTSHADOW = 452, /* SAMPLER2DRECTSHADOW */ + ISAMPLER2DRECT = 453, /* ISAMPLER2DRECT */ + USAMPLER2DRECT = 454, /* USAMPLER2DRECT */ + SAMPLERBUFFER = 455, /* SAMPLERBUFFER */ + ISAMPLERBUFFER = 456, /* ISAMPLERBUFFER */ + USAMPLERBUFFER = 457, /* USAMPLERBUFFER */ + SAMPLER2DMS = 458, /* SAMPLER2DMS */ + ISAMPLER2DMS = 459, /* ISAMPLER2DMS */ + USAMPLER2DMS = 460, /* USAMPLER2DMS */ + SAMPLER2DMSARRAY = 461, /* SAMPLER2DMSARRAY */ + ISAMPLER2DMSARRAY = 462, /* ISAMPLER2DMSARRAY */ + USAMPLER2DMSARRAY = 463, /* USAMPLER2DMSARRAY */ + SAMPLEREXTERNALOES = 464, /* SAMPLEREXTERNALOES */ + SAMPLEREXTERNAL2DY2YEXT = 465, /* SAMPLEREXTERNAL2DY2YEXT */ + ISAMPLER1DARRAY = 466, /* ISAMPLER1DARRAY */ + USAMPLER1D = 467, /* USAMPLER1D */ + USAMPLER1DARRAY = 468, /* USAMPLER1DARRAY */ + F16SAMPLER1D = 469, /* F16SAMPLER1D */ + F16SAMPLER2D = 470, /* F16SAMPLER2D */ + F16SAMPLER3D = 471, /* F16SAMPLER3D */ + F16SAMPLER2DRECT = 472, /* F16SAMPLER2DRECT */ + F16SAMPLERCUBE = 473, /* F16SAMPLERCUBE */ + F16SAMPLER1DARRAY = 474, /* F16SAMPLER1DARRAY */ + F16SAMPLER2DARRAY = 475, /* F16SAMPLER2DARRAY */ + F16SAMPLERCUBEARRAY = 476, /* F16SAMPLERCUBEARRAY */ + F16SAMPLERBUFFER = 477, /* F16SAMPLERBUFFER */ + F16SAMPLER2DMS = 478, /* F16SAMPLER2DMS */ + F16SAMPLER2DMSARRAY = 479, /* F16SAMPLER2DMSARRAY */ + F16SAMPLER1DSHADOW = 480, /* F16SAMPLER1DSHADOW */ + F16SAMPLER2DSHADOW = 481, /* F16SAMPLER2DSHADOW */ + F16SAMPLER1DARRAYSHADOW = 482, /* F16SAMPLER1DARRAYSHADOW */ + F16SAMPLER2DARRAYSHADOW = 483, /* F16SAMPLER2DARRAYSHADOW */ + F16SAMPLER2DRECTSHADOW = 484, /* F16SAMPLER2DRECTSHADOW */ + F16SAMPLERCUBESHADOW = 485, /* F16SAMPLERCUBESHADOW */ + F16SAMPLERCUBEARRAYSHADOW = 486, /* F16SAMPLERCUBEARRAYSHADOW */ + IMAGE1D = 487, /* IMAGE1D */ + IIMAGE1D = 488, /* IIMAGE1D */ + UIMAGE1D = 489, /* UIMAGE1D */ + IMAGE2D = 490, /* IMAGE2D */ + IIMAGE2D = 491, /* IIMAGE2D */ + UIMAGE2D = 492, /* UIMAGE2D */ + IMAGE3D = 493, /* IMAGE3D */ + IIMAGE3D = 494, /* IIMAGE3D */ + UIMAGE3D = 495, /* UIMAGE3D */ + IMAGE2DRECT = 496, /* IMAGE2DRECT */ + IIMAGE2DRECT = 497, /* IIMAGE2DRECT */ + UIMAGE2DRECT = 498, /* UIMAGE2DRECT */ + IMAGECUBE = 499, /* IMAGECUBE */ + IIMAGECUBE = 500, /* IIMAGECUBE */ + UIMAGECUBE = 501, /* UIMAGECUBE */ + IMAGEBUFFER = 502, /* IMAGEBUFFER */ + IIMAGEBUFFER = 503, /* IIMAGEBUFFER */ + UIMAGEBUFFER = 504, /* UIMAGEBUFFER */ + IMAGE1DARRAY = 505, /* IMAGE1DARRAY */ + IIMAGE1DARRAY = 506, /* IIMAGE1DARRAY */ + UIMAGE1DARRAY = 507, /* UIMAGE1DARRAY */ + IMAGE2DARRAY = 508, /* IMAGE2DARRAY */ + IIMAGE2DARRAY = 509, /* IIMAGE2DARRAY */ + UIMAGE2DARRAY = 510, /* UIMAGE2DARRAY */ + IMAGECUBEARRAY = 511, /* IMAGECUBEARRAY */ + IIMAGECUBEARRAY = 512, /* IIMAGECUBEARRAY */ + UIMAGECUBEARRAY = 513, /* UIMAGECUBEARRAY */ + IMAGE2DMS = 514, /* IMAGE2DMS */ + IIMAGE2DMS = 515, /* IIMAGE2DMS */ + UIMAGE2DMS = 516, /* UIMAGE2DMS */ + IMAGE2DMSARRAY = 517, /* IMAGE2DMSARRAY */ + IIMAGE2DMSARRAY = 518, /* IIMAGE2DMSARRAY */ + UIMAGE2DMSARRAY = 519, /* UIMAGE2DMSARRAY */ + F16IMAGE1D = 520, /* F16IMAGE1D */ + F16IMAGE2D = 521, /* F16IMAGE2D */ + F16IMAGE3D = 522, /* F16IMAGE3D */ + F16IMAGE2DRECT = 523, /* F16IMAGE2DRECT */ + F16IMAGECUBE = 524, /* F16IMAGECUBE */ + F16IMAGE1DARRAY = 525, /* F16IMAGE1DARRAY */ + F16IMAGE2DARRAY = 526, /* F16IMAGE2DARRAY */ + F16IMAGECUBEARRAY = 527, /* F16IMAGECUBEARRAY */ + F16IMAGEBUFFER = 528, /* F16IMAGEBUFFER */ + F16IMAGE2DMS = 529, /* F16IMAGE2DMS */ + F16IMAGE2DMSARRAY = 530, /* F16IMAGE2DMSARRAY */ + I64IMAGE1D = 531, /* I64IMAGE1D */ + U64IMAGE1D = 532, /* U64IMAGE1D */ + I64IMAGE2D = 533, /* I64IMAGE2D */ + U64IMAGE2D = 534, /* U64IMAGE2D */ + I64IMAGE3D = 535, /* I64IMAGE3D */ + U64IMAGE3D = 536, /* U64IMAGE3D */ + I64IMAGE2DRECT = 537, /* I64IMAGE2DRECT */ + U64IMAGE2DRECT = 538, /* U64IMAGE2DRECT */ + I64IMAGECUBE = 539, /* I64IMAGECUBE */ + U64IMAGECUBE = 540, /* U64IMAGECUBE */ + I64IMAGEBUFFER = 541, /* I64IMAGEBUFFER */ + U64IMAGEBUFFER = 542, /* U64IMAGEBUFFER */ + I64IMAGE1DARRAY = 543, /* I64IMAGE1DARRAY */ + U64IMAGE1DARRAY = 544, /* U64IMAGE1DARRAY */ + I64IMAGE2DARRAY = 545, /* I64IMAGE2DARRAY */ + U64IMAGE2DARRAY = 546, /* U64IMAGE2DARRAY */ + I64IMAGECUBEARRAY = 547, /* I64IMAGECUBEARRAY */ + U64IMAGECUBEARRAY = 548, /* U64IMAGECUBEARRAY */ + I64IMAGE2DMS = 549, /* I64IMAGE2DMS */ + U64IMAGE2DMS = 550, /* U64IMAGE2DMS */ + I64IMAGE2DMSARRAY = 551, /* I64IMAGE2DMSARRAY */ + U64IMAGE2DMSARRAY = 552, /* U64IMAGE2DMSARRAY */ + TEXTURECUBEARRAY = 553, /* TEXTURECUBEARRAY */ + ITEXTURECUBEARRAY = 554, /* ITEXTURECUBEARRAY */ + UTEXTURECUBEARRAY = 555, /* UTEXTURECUBEARRAY */ + TEXTURE1D = 556, /* TEXTURE1D */ + ITEXTURE1D = 557, /* ITEXTURE1D */ + UTEXTURE1D = 558, /* UTEXTURE1D */ + TEXTURE1DARRAY = 559, /* TEXTURE1DARRAY */ + ITEXTURE1DARRAY = 560, /* ITEXTURE1DARRAY */ + UTEXTURE1DARRAY = 561, /* UTEXTURE1DARRAY */ + TEXTURE2DRECT = 562, /* TEXTURE2DRECT */ + ITEXTURE2DRECT = 563, /* ITEXTURE2DRECT */ + UTEXTURE2DRECT = 564, /* UTEXTURE2DRECT */ + TEXTUREBUFFER = 565, /* TEXTUREBUFFER */ + ITEXTUREBUFFER = 566, /* ITEXTUREBUFFER */ + UTEXTUREBUFFER = 567, /* UTEXTUREBUFFER */ + TEXTURE2DMS = 568, /* TEXTURE2DMS */ + ITEXTURE2DMS = 569, /* ITEXTURE2DMS */ + UTEXTURE2DMS = 570, /* UTEXTURE2DMS */ + TEXTURE2DMSARRAY = 571, /* TEXTURE2DMSARRAY */ + ITEXTURE2DMSARRAY = 572, /* ITEXTURE2DMSARRAY */ + UTEXTURE2DMSARRAY = 573, /* UTEXTURE2DMSARRAY */ + F16TEXTURE1D = 574, /* F16TEXTURE1D */ + F16TEXTURE2D = 575, /* F16TEXTURE2D */ + F16TEXTURE3D = 576, /* F16TEXTURE3D */ + F16TEXTURE2DRECT = 577, /* F16TEXTURE2DRECT */ + F16TEXTURECUBE = 578, /* F16TEXTURECUBE */ + F16TEXTURE1DARRAY = 579, /* F16TEXTURE1DARRAY */ + F16TEXTURE2DARRAY = 580, /* F16TEXTURE2DARRAY */ + F16TEXTURECUBEARRAY = 581, /* F16TEXTURECUBEARRAY */ + F16TEXTUREBUFFER = 582, /* F16TEXTUREBUFFER */ + F16TEXTURE2DMS = 583, /* F16TEXTURE2DMS */ + F16TEXTURE2DMSARRAY = 584, /* F16TEXTURE2DMSARRAY */ + SUBPASSINPUT = 585, /* SUBPASSINPUT */ + SUBPASSINPUTMS = 586, /* SUBPASSINPUTMS */ + ISUBPASSINPUT = 587, /* ISUBPASSINPUT */ + ISUBPASSINPUTMS = 588, /* ISUBPASSINPUTMS */ + USUBPASSINPUT = 589, /* USUBPASSINPUT */ + USUBPASSINPUTMS = 590, /* USUBPASSINPUTMS */ + F16SUBPASSINPUT = 591, /* F16SUBPASSINPUT */ + F16SUBPASSINPUTMS = 592, /* F16SUBPASSINPUTMS */ + SPIRV_INSTRUCTION = 593, /* SPIRV_INSTRUCTION */ + SPIRV_EXECUTION_MODE = 594, /* SPIRV_EXECUTION_MODE */ + SPIRV_EXECUTION_MODE_ID = 595, /* SPIRV_EXECUTION_MODE_ID */ + SPIRV_DECORATE = 596, /* SPIRV_DECORATE */ + SPIRV_DECORATE_ID = 597, /* SPIRV_DECORATE_ID */ + SPIRV_DECORATE_STRING = 598, /* SPIRV_DECORATE_STRING */ + SPIRV_TYPE = 599, /* SPIRV_TYPE */ + SPIRV_STORAGE_CLASS = 600, /* SPIRV_STORAGE_CLASS */ + SPIRV_BY_REFERENCE = 601, /* SPIRV_BY_REFERENCE */ + SPIRV_LITERAL = 602, /* SPIRV_LITERAL */ + ATTACHMENTEXT = 603, /* ATTACHMENTEXT */ + IATTACHMENTEXT = 604, /* IATTACHMENTEXT */ + UATTACHMENTEXT = 605, /* UATTACHMENTEXT */ + LEFT_OP = 606, /* LEFT_OP */ + RIGHT_OP = 607, /* RIGHT_OP */ + INC_OP = 608, /* INC_OP */ + DEC_OP = 609, /* DEC_OP */ + LE_OP = 610, /* LE_OP */ + GE_OP = 611, /* GE_OP */ + EQ_OP = 612, /* EQ_OP */ + NE_OP = 613, /* NE_OP */ + AND_OP = 614, /* AND_OP */ + OR_OP = 615, /* OR_OP */ + XOR_OP = 616, /* XOR_OP */ + MUL_ASSIGN = 617, /* MUL_ASSIGN */ + DIV_ASSIGN = 618, /* DIV_ASSIGN */ + ADD_ASSIGN = 619, /* ADD_ASSIGN */ + MOD_ASSIGN = 620, /* MOD_ASSIGN */ + LEFT_ASSIGN = 621, /* LEFT_ASSIGN */ + RIGHT_ASSIGN = 622, /* RIGHT_ASSIGN */ + AND_ASSIGN = 623, /* AND_ASSIGN */ + XOR_ASSIGN = 624, /* XOR_ASSIGN */ + OR_ASSIGN = 625, /* OR_ASSIGN */ + SUB_ASSIGN = 626, /* SUB_ASSIGN */ + STRING_LITERAL = 627, /* STRING_LITERAL */ + LEFT_PAREN = 628, /* LEFT_PAREN */ + RIGHT_PAREN = 629, /* RIGHT_PAREN */ + LEFT_BRACKET = 630, /* LEFT_BRACKET */ + RIGHT_BRACKET = 631, /* RIGHT_BRACKET */ + LEFT_BRACE = 632, /* LEFT_BRACE */ + RIGHT_BRACE = 633, /* RIGHT_BRACE */ + DOT = 634, /* DOT */ + COMMA = 635, /* COMMA */ + COLON = 636, /* COLON */ + EQUAL = 637, /* EQUAL */ + SEMICOLON = 638, /* SEMICOLON */ + BANG = 639, /* BANG */ + DASH = 640, /* DASH */ + TILDE = 641, /* TILDE */ + PLUS = 642, /* PLUS */ + STAR = 643, /* STAR */ + SLASH = 644, /* SLASH */ + PERCENT = 645, /* PERCENT */ + LEFT_ANGLE = 646, /* LEFT_ANGLE */ + RIGHT_ANGLE = 647, /* RIGHT_ANGLE */ + VERTICAL_BAR = 648, /* VERTICAL_BAR */ + CARET = 649, /* CARET */ + AMPERSAND = 650, /* AMPERSAND */ + QUESTION = 651, /* QUESTION */ + INVARIANT = 652, /* INVARIANT */ + HIGH_PRECISION = 653, /* HIGH_PRECISION */ + MEDIUM_PRECISION = 654, /* MEDIUM_PRECISION */ + LOW_PRECISION = 655, /* LOW_PRECISION */ + PRECISION = 656, /* PRECISION */ + PACKED = 657, /* PACKED */ + RESOURCE = 658, /* RESOURCE */ + SUPERP = 659, /* SUPERP */ + FLOATCONSTANT = 660, /* FLOATCONSTANT */ + INTCONSTANT = 661, /* INTCONSTANT */ + UINTCONSTANT = 662, /* UINTCONSTANT */ + BOOLCONSTANT = 663, /* BOOLCONSTANT */ + IDENTIFIER = 664, /* IDENTIFIER */ + TYPE_NAME = 665, /* TYPE_NAME */ + CENTROID = 666, /* CENTROID */ + IN = 667, /* IN */ + OUT = 668, /* OUT */ + INOUT = 669, /* INOUT */ + STRUCT = 670, /* STRUCT */ + VOID = 671, /* VOID */ + WHILE = 672, /* WHILE */ + BREAK = 673, /* BREAK */ + CONTINUE = 674, /* CONTINUE */ + DO = 675, /* DO */ + ELSE = 676, /* ELSE */ + FOR = 677, /* FOR */ + IF = 678, /* IF */ + DISCARD = 679, /* DISCARD */ + RETURN = 680, /* RETURN */ + SWITCH = 681, /* SWITCH */ + CASE = 682, /* CASE */ + DEFAULT = 683, /* DEFAULT */ + TERMINATE_INVOCATION = 684, /* TERMINATE_INVOCATION */ + TERMINATE_RAY = 685, /* TERMINATE_RAY */ + IGNORE_INTERSECTION = 686, /* IGNORE_INTERSECTION */ + UNIFORM = 687, /* UNIFORM */ + SHARED = 688, /* SHARED */ + BUFFER = 689, /* BUFFER */ + TILEIMAGEEXT = 690, /* TILEIMAGEEXT */ + FLAT = 691, /* FLAT */ + SMOOTH = 692, /* SMOOTH */ + LAYOUT = 693, /* LAYOUT */ + DOUBLECONSTANT = 694, /* DOUBLECONSTANT */ + INT16CONSTANT = 695, /* INT16CONSTANT */ + UINT16CONSTANT = 696, /* UINT16CONSTANT */ + FLOAT16CONSTANT = 697, /* FLOAT16CONSTANT */ + INT32CONSTANT = 698, /* INT32CONSTANT */ + UINT32CONSTANT = 699, /* UINT32CONSTANT */ + INT64CONSTANT = 700, /* INT64CONSTANT */ + UINT64CONSTANT = 701, /* UINT64CONSTANT */ + SUBROUTINE = 702, /* SUBROUTINE */ + DEMOTE = 703, /* DEMOTE */ + FUNCTION = 704, /* FUNCTION */ + PAYLOADNV = 705, /* PAYLOADNV */ + PAYLOADINNV = 706, /* PAYLOADINNV */ + HITATTRNV = 707, /* HITATTRNV */ + CALLDATANV = 708, /* CALLDATANV */ + CALLDATAINNV = 709, /* CALLDATAINNV */ + PAYLOADEXT = 710, /* PAYLOADEXT */ + PAYLOADINEXT = 711, /* PAYLOADINEXT */ + HITATTREXT = 712, /* HITATTREXT */ + CALLDATAEXT = 713, /* CALLDATAEXT */ + CALLDATAINEXT = 714, /* CALLDATAINEXT */ + PATCH = 715, /* PATCH */ + SAMPLE = 716, /* SAMPLE */ + NONUNIFORM = 717, /* NONUNIFORM */ + COHERENT = 718, /* COHERENT */ + VOLATILE = 719, /* VOLATILE */ + RESTRICT = 720, /* RESTRICT */ + READONLY = 721, /* READONLY */ + WRITEONLY = 722, /* WRITEONLY */ + NONTEMPORAL = 723, /* NONTEMPORAL */ + DEVICECOHERENT = 724, /* DEVICECOHERENT */ + QUEUEFAMILYCOHERENT = 725, /* QUEUEFAMILYCOHERENT */ + WORKGROUPCOHERENT = 726, /* WORKGROUPCOHERENT */ + SUBGROUPCOHERENT = 727, /* SUBGROUPCOHERENT */ + NONPRIVATE = 728, /* NONPRIVATE */ + SHADERCALLCOHERENT = 729, /* SHADERCALLCOHERENT */ + NOPERSPECTIVE = 730, /* NOPERSPECTIVE */ + EXPLICITINTERPAMD = 731, /* EXPLICITINTERPAMD */ + PERVERTEXEXT = 732, /* PERVERTEXEXT */ + PERVERTEXNV = 733, /* PERVERTEXNV */ + PERPRIMITIVENV = 734, /* PERPRIMITIVENV */ + PERVIEWNV = 735, /* PERVIEWNV */ + PERTASKNV = 736, /* PERTASKNV */ + PERPRIMITIVEEXT = 737, /* PERPRIMITIVEEXT */ + TASKPAYLOADWORKGROUPEXT = 738, /* TASKPAYLOADWORKGROUPEXT */ + PRECISE = 739 /* PRECISE */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -581,7 +583,7 @@ union YYSTYPE glslang::TTypeParameters* typeParameters; } interm; -#line 585 "MachineIndependent/glslang_tab.cpp.h" +#line 587 "MachineIndependent/glslang_tab.cpp.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp index b28da23..572652d 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp @@ -81,6 +81,7 @@ class TOutputTraverser : public TIntermTraverser { virtual bool visitLoop(TVisit, TIntermLoop* node); virtual bool visitBranch(TVisit, TIntermBranch* node); virtual bool visitSwitch(TVisit, TIntermSwitch* node); + virtual bool visitVariableDecl(TVisit, TIntermVariableDecl* node); TInfoSink& infoSink; protected: @@ -1399,6 +1400,16 @@ bool TOutputTraverser::visitSwitch(TVisit /* visit */, TIntermSwitch* node) return false; } +bool TOutputTraverser::visitVariableDecl(TVisit /* visit */, TIntermVariableDecl* node) +{ + TInfoSink& out = infoSink; + + OutputTreeText(out, node, depth); + + out.debug << "VarDecl: " << node->getDeclSymbol()->getName() << '\n'; + return true; +} + // // This function is the one to call externally to start the traversal. // Individual functions can be initialized to 0 to skip processing of that diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp index 0e5941a..00acd83 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp @@ -166,7 +166,7 @@ typedef std::vector TVarLiveVector; class TVarGatherTraverser : public TLiveTraverser { public: TVarGatherTraverser(const TIntermediate& i, bool traverseDeadCode, TVarLiveMap& inList, TVarLiveMap& outList, TVarLiveMap& uniformList) - : TLiveTraverser(i, traverseDeadCode, true, true, false) + : TLiveTraverser(i, traverseDeadCode, true, true, false, false) , inputList(inList) , outputList(outList) , uniformList(uniformList) @@ -209,7 +209,7 @@ class TVarSetTraverser : public TLiveTraverser { public: TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& inList, const TVarLiveMap& outList, const TVarLiveMap& uniformList) - : TLiveTraverser(i, true, true, true, false) + : TLiveTraverser(i, true, true, true, false, true) , inputList(inList) , outputList(outList) , uniformList(uniformList) diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp index 3fd6477..f4983c7 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp @@ -1986,6 +1986,8 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ set = 1; else if (qualifier.isHitObjectAttrNV()) set = 2; + else if (qualifier.isHitObjectAttrEXT()) + set = 2; else return -1; @@ -2024,7 +2026,7 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ // For raytracing IO (payloads and callabledata) each declaration occupies a single // slot irrespective of type. int collision = -1; // no collision - if (qualifier.isAnyPayload() || qualifier.isAnyCallable() || qualifier.isHitObjectAttrNV()) { + if (qualifier.isAnyPayload() || qualifier.isAnyCallable() || qualifier.isHitObjectAttrNV() || qualifier.isHitObjectAttrEXT()) { TRange range(qualifier.layoutLocation, qualifier.layoutLocation); collision = checkLocationRT(set, qualifier.layoutLocation); if (collision < 0) diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h index 0d299bd..2e10744 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h @@ -574,8 +574,8 @@ class TIntermediate { TIntermConstantUnion* addConstantUnion(const TString*, const TSourceLoc&, bool literal = false) const; TIntermTyped* promoteConstantUnion(TBasicType, TIntermConstantUnion*) const; bool parseConstTree(TIntermNode*, TConstUnionArray, TOperator, const TType&, bool singleConstantParam = false); - TIntermLoop* addLoop(TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); - TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, + TIntermLoop* addLoop(TIntermNode*, TIntermNode*, TIntermTyped*, bool testFirst, const TSourceLoc&); + TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermNode*, TIntermTyped*, bool testFirst, const TSourceLoc&, TIntermLoop*&); TIntermBranch* addBranch(TOperator, const TSourceLoc&); TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&); @@ -763,6 +763,16 @@ class TIntermediate { useReplicatedComposites = true; } bool usingReplicatedComposites() const { return useReplicatedComposites; } + void setPromoteUint32Indices() + { + promoteUint32Indices = true; + } + bool usingPromoteUint32Indices() const { return promoteUint32Indices; } + void setShader64BitIndexing() + { + shader64BitIndexing = true; + } + bool usingShader64BitIndexing() const { return shader64BitIndexing; } void setUseVariablePointers() { useVariablePointers = true; @@ -1295,6 +1305,8 @@ class TIntermediate { bool maximallyReconverges; bool usePhysicalStorageBuffer; bool useReplicatedComposites { false }; + bool promoteUint32Indices { false }; + bool shader64BitIndexing { false }; TSpirvRequirement* spirvRequirement; TSpirvExecutionMode* spirvExecutionMode; diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp index 5b44b13..9027036 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -153,12 +153,57 @@ int TPpContext::CPPdefine(TPpToken* ppToken) return token; } + int pendingPoundSymbols = 0; + TPpToken savePound; // record the definition of the macro while (token != '\n' && token != EndOfInput) { - mac.body.putToken(token, ppToken); + if (token == '#') { + pendingPoundSymbols++; + if (pendingPoundSymbols == 0) { + savePound = *ppToken; + } + } else if (pendingPoundSymbols == 0) { + mac.body.putToken(token, ppToken); + } else if (pendingPoundSymbols == 1) { + // A single #: stringify + parseContext.requireProfile(ppToken->loc, ~EEsProfile, "stringify (#)"); + parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, nullptr, "stringify (#)"); + bool isArg = false; + if (token == PpAtomIdentifier) { + for (int i = (int)mac.args.size() - 1; i >= 0; i--) { + if (strcmp(atomStrings.getString(mac.args[i]), ppToken->name) == 0) { + isArg = true; + break; + } + } + } + if (!isArg) { + parseContext.ppError(ppToken->loc, "'#' is not followed by a macro parameter.", "#", ""); + return token; + } + mac.body.putToken(tStringifyLevelInput::PUSH, ppToken); + mac.body.putToken(token, ppToken); + mac.body.putToken(tStringifyLevelInput::POP, ppToken); + pendingPoundSymbols = 0; + } else if (pendingPoundSymbols % 2 == 0) { + // Any number of pastes '##' in a row: idempotent, just becomes one paste + parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); + parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, nullptr, "token pasting (##)"); + for (int i = 0; i < pendingPoundSymbols / 2; i++) { + mac.body.putToken(PpAtomPaste, &savePound); + } + mac.body.putToken(token, ppToken); + pendingPoundSymbols = 0; + } else { + // An odd number of '#' i.e., mix of paste and stringify: does not give valid preprocessing token + parseContext.ppError(ppToken->loc, "Illegal sequence of paste (##) and stringify (#).", "#", ""); + return token; + } + token = scanToken(ppToken); - if (token != '\n' && ppToken->space) - mac.body.putToken(' ', ppToken); + } + if (pendingPoundSymbols != 0) { + parseContext.ppError(ppToken->loc, "Macro ended with incomplete '#' paste/stringify operators", "#", ""); } // check for duplicate definition @@ -1119,7 +1164,7 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken) } // see if are preceding a ## - if (mac->body.peekUntokenizedPasting()) { + if (mac->body.peekTokenizedPasting(false)) { prepaste = true; pasting = true; } diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpContext.h b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpContext.h index 3446f1e..582d119 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpContext.h @@ -311,7 +311,6 @@ class TPpContext { int getToken(TParseContextBase&, TPpToken*); bool atEnd() { return currentPos >= stream.size(); } bool peekTokenizedPasting(bool lastTokenPastes); - bool peekUntokenizedPasting(); void reset() { currentPos = 0; } protected: @@ -373,22 +372,6 @@ class TPpContext { } if (!inputStack.empty() && inputStack.back()->isStringInput() && !inElseSkip) { if (token == '\n') { - bool seenNumSign = false; - for (int i = 0; i < (int)lastLineTokens.size() - 1;) { - int curPos = i; - int curToken = lastLineTokens[i++]; - if (curToken == '#' && lastLineTokens[i] == '#') { - curToken = PpAtomPaste; - i++; - } - if (curToken == '#') { - if (seenNumSign) { - parseContext.ppError(lastLineTokenLocs[curPos], "(#) can be preceded in its line only by spaces or horizontal tabs", "#", ""); - } else { - seenNumSign = true; - } - } - } lastLineTokens.clear(); lastLineTokenLocs.clear(); } else { @@ -458,6 +441,38 @@ class TPpContext { static const int marker = -3; }; + class tStringifyLevelInput : public tInput { + int what; + tStringifyLevelInput(TPpContext* pp) : tInput(pp) { } + public: + static tStringifyLevelInput popMarker(TPpContext* pp) + { + tStringifyLevelInput sl(pp); + sl.what = POP; + return sl; + } + + static tStringifyLevelInput pushMarker(TPpContext* pp) + { + tStringifyLevelInput sl(pp); + sl.what = PUSH; + return sl; + } + + int scan(TPpToken*) override + { + if (done) + return EndOfInput; + done = true; + + return what; + } + virtual int getch() override { assert(0); return EndOfInput; } + virtual void ungetch() override { assert(0); } + static const int PUSH = -4; + static const int POP = -5; + }; + class tZeroInput : public tInput { public: tZeroInput(TPpContext* pp) : tInput(pp) { } diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp index df64b7b..a252295 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -97,7 +97,6 @@ namespace glslang { /////////////////////////////////// Floating point constants: ///////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// -// // Scan a single- or double-precision floating point constant. // Assumes that the scanner has seen at least one digit, // followed by either a decimal '.' or the letter 'e', or a @@ -1226,7 +1225,9 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) // int TPpContext::tokenize(TPpToken& ppToken) { - for(;;) { + int stringifyDepth = 0; + TPpToken stringifiedToken; // Tokens are appended to this as they come in + for (;;) { int token = scanToken(&ppToken); // Handle token-pasting logic @@ -1254,6 +1255,20 @@ int TPpContext::tokenize(TPpToken& ppToken) if (token == '\n') continue; + if (token == tStringifyLevelInput::PUSH) { + stringifyDepth++; + continue; + } + if (token == tStringifyLevelInput::POP) { + assert(stringifyDepth > 0); + stringifyDepth--; + if (stringifyDepth == 0) { + snprintf(ppToken.name, sizeof(ppToken.name), "%s", stringifiedToken.name); + return PpAtomConstString; + } + continue; + } + // expand macros if (token == PpAtomIdentifier) { switch (MacroExpand(&ppToken, false, true)) { @@ -1267,7 +1282,21 @@ int TPpContext::tokenize(TPpToken& ppToken) } } + bool needStringSupport = ifdepth == 0 && (token == PpAtomConstString || stringifyDepth > 0); + if (needStringSupport && parseContext.intermediate.getSource() != EShSourceHlsl) { + // HLSL allows string literals. + // GLSL allows string literals with GL_EXT_debug_printf. + const char* const string_literal_EXTs[] = { E_GL_EXT_debug_printf, E_GL_EXT_spirv_intrinsics }; + parseContext.requireExtensions(ppToken.loc, 2, string_literal_EXTs, "string literal"); + if (!parseContext.extensionTurnedOn(E_GL_EXT_debug_printf) && + !parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) { + continue; + } + } + switch (token) { + case PpAtomConstString: + break; case PpAtomIdentifier: case PpAtomConstInt: case PpAtomConstUint: @@ -1281,17 +1310,6 @@ int TPpContext::tokenize(TPpToken& ppToken) if (ppToken.name[0] == '\0') continue; break; - case PpAtomConstString: - // HLSL allows string literals. - // GLSL allows string literals with GL_EXT_debug_printf. - if (ifdepth == 0 && parseContext.intermediate.getSource() != EShSourceHlsl) { - const char* const string_literal_EXTs[] = { E_GL_EXT_debug_printf, E_GL_EXT_spirv_intrinsics }; - parseContext.requireExtensions(ppToken.loc, 2, string_literal_EXTs, "string literal"); - if (!parseContext.extensionTurnedOn(E_GL_EXT_debug_printf) && - !parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) - continue; - } - break; case '\'': parseContext.ppError(ppToken.loc, "character literals not supported", "\'", ""); continue; @@ -1299,6 +1317,17 @@ int TPpContext::tokenize(TPpToken& ppToken) snprintf(ppToken.name, sizeof(ppToken.name), "%s", atomStrings.getString(token)); break; } + if (stringifyDepth > 0) { + size_t existingLen = strlen(stringifiedToken.name); + char* dst = stringifiedToken.name + existingLen; + // stringify_depth would determine how many layers of \\\"\\\" are needed, if we wanted to. + if (ppToken.space) { + snprintf(dst, sizeof(stringifiedToken.name) - existingLen - 1, " %s", ppToken.name); + } else { + snprintf(dst, sizeof(stringifiedToken.name) - existingLen, "%s", ppToken.name); + } + continue; + } return token; } @@ -1329,6 +1358,7 @@ int TPpContext::tokenPaste(int token, TPpToken& ppToken) // This covers end of macro expansion if (endOfReplacementList()) { + // this should be unreachable, incomplete #/## sequences are caught at macro parsing time. parseContext.ppError(ppToken.loc, "unexpected location; end of replacement list", "##", ""); break; } diff --git a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp index e6ee64c..472df78 100644 --- a/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/libs/bgfx/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -105,7 +105,7 @@ void TPpContext::TokenStream::putToken(int atom, TPpToken* ppToken) } // Read the next token from a macro token stream. -int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken *ppToken) +int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken* ppToken) { if (atEnd()) return EndOfInput; @@ -113,16 +113,6 @@ int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken int atom = stream[currentPos++].get(*ppToken); ppToken->loc = parseContext.getCurrentLoc(); - // Check for ##, unless the current # is the last character - if (atom == '#') { - if (peekToken('#')) { - parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); - parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, nullptr, "token pasting (##)"); - currentPos++; - atom = PpAtomPaste; - } - } - return atom; } @@ -146,8 +136,10 @@ bool TPpContext::TokenStream::peekTokenizedPasting(bool lastTokenPastes) // 2. last token and we've been told after this there will be a ## - if (! lastTokenPastes) + if (! lastTokenPastes) { + currentPos = savePos; return false; + } // Getting here means the last token will be pasted, after this // Are we at the last non-whitespace token? @@ -167,29 +159,6 @@ bool TPpContext::TokenStream::peekTokenizedPasting(bool lastTokenPastes) return !moreTokens; } -// See if the next non-white-space tokens are two consecutive # -bool TPpContext::TokenStream::peekUntokenizedPasting() -{ - // don't return early, have to restore this - size_t savePos = currentPos; - - // skip white-space - while (peekToken(' ')) - ++currentPos; - - // check for ## - bool pasting = false; - if (peekToken('#')) { - ++currentPos; - if (peekToken('#')) - pasting = true; - } - - currentPos = savePos; - - return pasting; -} - void TPpContext::pushTokenStreamInput(TokenStream& ts, bool prepasting, bool expanded) { pushInput(new tTokenInput(this, &ts, prepasting, expanded)); diff --git a/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_core.h b/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_core.h index 78c9957..51a6189 100644 --- a/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_core.h +++ b/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_core.h @@ -66,7 +66,7 @@ extern "C" { //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 331 +#define VK_HEADER_VERSION 333 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) @@ -1134,7 +1134,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004, VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001, @@ -1311,6 +1310,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001, VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR = 1000579000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT = 1000581000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT = 1000581001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000, @@ -1358,6 +1359,11 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000, + VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001, + VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT = 1000628002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM = 1000629000, + VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM = 1000629001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR = 1000630000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR = 1000630001, VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002, @@ -1603,6 +1609,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO, VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO, VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES, @@ -2182,6 +2189,7 @@ typedef enum VkIndexType { typedef enum VkPipelineCacheHeaderVersion { VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM = 1000629000, VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF } VkPipelineCacheHeaderVersion; @@ -3199,13 +3207,15 @@ typedef VkFlags VkRenderPassCreateFlags; typedef enum VkSubpassDescriptionFlagBits { VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, - VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, - VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100, VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010, VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020, VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040, VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080, + VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT = 0x00000004, + VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT = 0x00000008, + VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT, + VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT, VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT, VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, @@ -6250,6 +6260,7 @@ typedef enum VkResolveModeFlagBits { VK_RESOLVE_MODE_MIN_BIT = 0x00000004, VK_RESOLVE_MODE_MAX_BIT = 0x00000008, VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010, + VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020, VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, @@ -7228,6 +7239,8 @@ typedef enum VkRenderingFlagBits { VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008, VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010, VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020, + VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040, + VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080, VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100, VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT, @@ -11651,7 +11664,7 @@ typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR { #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" typedef struct VkSurfaceProtectedCapabilitiesKHR { VkStructureType sType; - const void* pNext; + void* pNext; VkBool32 supportsProtected; } VkSurfaceProtectedCapabilitiesKHR; @@ -21111,7 +21124,7 @@ typedef struct VkWriteDescriptorSetTensorARM { typedef struct VkTensorFormatPropertiesARM { VkStructureType sType; - const void* pNext; + void* pNext; VkFormatFeatureFlags2 optimalTilingTensorFeatures; VkFormatFeatureFlags2 linearTilingTensorFeatures; } VkTensorFormatPropertiesARM; @@ -21260,7 +21273,7 @@ typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorVi typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements); typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos); typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData); typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData); @@ -21320,7 +21333,7 @@ VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM( #ifndef VK_ONLY_EXPORTED_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM( VkCommandBuffer commandBuffer, - const VkCopyTensorInfoARM* pCopyTensorInfo); + const VkCopyTensorInfoARM* pCopyTensorInfo); #endif #ifndef VK_ONLY_EXPORTED_PROTOTYPES @@ -21496,7 +21509,7 @@ typedef struct VkOpticalFlowImageFormatInfoNV { typedef struct VkOpticalFlowImageFormatPropertiesNV { VkStructureType sType; - const void* pNext; + void* pNext; VkFormat format; } VkOpticalFlowImageFormatPropertiesNV; @@ -21838,22 +21851,28 @@ typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM { #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder" -typedef enum VkRayTracingInvocationReorderModeNV { - VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0, - VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1, - VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF -} VkRayTracingInvocationReorderModeNV; +typedef enum VkRayTracingInvocationReorderModeEXT { + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT = 0, + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT = 1, + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT, + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT, + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkRayTracingInvocationReorderModeEXT; +typedef VkRayTracingInvocationReorderModeEXT VkRayTracingInvocationReorderModeNV; + typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV { - VkStructureType sType; - void* pNext; - VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint; + VkStructureType sType; + void* pNext; + VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint; } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV; -typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV { +typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT { VkStructureType sType; void* pNext; VkBool32 rayTracingInvocationReorder; -} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; +} VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT; + +typedef VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; @@ -22111,7 +22130,7 @@ typedef struct VkSetLatencyMarkerInfoNV { typedef struct VkLatencyTimingsFrameReportNV { VkStructureType sType; - const void* pNext; + void* pNext; uint64_t presentID; uint64_t inputSampleTimeUs; uint64_t simStartTimeUs; @@ -22228,11 +22247,15 @@ typedef enum VkDataGraphPipelinePropertyARM { typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM { VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0, + VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM = 1000629000, + VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM = 1000629001, VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF } VkPhysicalDeviceDataGraphProcessingEngineTypeARM; typedef enum VkPhysicalDeviceDataGraphOperationTypeARM { VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0, + VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000, + VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001, VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF } VkPhysicalDeviceDataGraphOperationTypeARM; typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM; @@ -22796,7 +22819,7 @@ typedef struct VkDisplaySurfaceStereoCreateInfoNV { typedef struct VkDisplayModeStereoPropertiesNV { VkStructureType sType; - const void* pNext; + void* pNext; VkBool32 hdmi3DSupported; } VkDisplayModeStereoPropertiesNV; @@ -23154,7 +23177,7 @@ typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV { typedef struct VkAccelerationStructureBuildSizesInfoKHR { VkStructureType sType; - const void* pNext; + void* pNext; VkDeviceSize accelerationStructureSize; VkDeviceSize updateScratchSize; VkDeviceSize buildScratchSize; @@ -23623,6 +23646,19 @@ typedef struct VkImageAlignmentControlCreateInfoMESA { +// VK_EXT_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_ray_tracing_invocation_reorder 1 +#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1 +#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_EXT_ray_tracing_invocation_reorder" +typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT { + VkStructureType sType; + void* pNext; + VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint; + uint32_t maxShaderBindingTableRecordIndex; +} VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT; + + + // VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_depth_clamp_control 1 #define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1 @@ -23890,6 +23926,74 @@ typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT { +// VK_EXT_custom_resolve is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_custom_resolve 1 +#define VK_EXT_CUSTOM_RESOLVE_SPEC_VERSION 1 +#define VK_EXT_CUSTOM_RESOLVE_EXTENSION_NAME "VK_EXT_custom_resolve" +typedef struct VkPhysicalDeviceCustomResolveFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 customResolve; +} VkPhysicalDeviceCustomResolveFeaturesEXT; + +typedef struct VkBeginCustomResolveInfoEXT { + VkStructureType sType; + void* pNext; +} VkBeginCustomResolveInfoEXT; + +typedef struct VkCustomResolveCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 customResolve; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkCustomResolveCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginCustomResolveEXT)(VkCommandBuffer commandBuffer, const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo); + +#ifndef VK_NO_PROTOTYPES +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginCustomResolveEXT( + VkCommandBuffer commandBuffer, + const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo); +#endif +#endif + + +// VK_QCOM_data_graph_model is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_data_graph_model 1 +#define VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM 3U +#define VK_QCOM_DATA_GRAPH_MODEL_SPEC_VERSION 1 +#define VK_QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME "VK_QCOM_data_graph_model" + +typedef enum VkDataGraphModelCacheTypeQCOM { + VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM = 0, + VK_DATA_GRAPH_MODEL_CACHE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF +} VkDataGraphModelCacheTypeQCOM; +typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM { + uint32_t headerSize; + VkPipelineCacheHeaderVersion headerVersion; + VkDataGraphModelCacheTypeQCOM cacheType; + uint32_t cacheVersion; + uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM]; +} VkPipelineCacheHeaderVersionDataGraphQCOM; + +typedef struct VkDataGraphPipelineBuiltinModelCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + const VkPhysicalDeviceDataGraphOperationSupportARM* pOperation; +} VkDataGraphPipelineBuiltinModelCreateInfoQCOM; + +typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 dataGraphModel; +} VkPhysicalDeviceDataGraphModelFeaturesQCOM; + + + // VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls. #define VK_SEC_pipeline_cache_incremental_mode 1 #define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1 diff --git a/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_ohos.h b/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_ohos.h index 7a6b49a..0731e55 100644 --- a/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_ohos.h +++ b/libs/bgfx/3rdparty/khronos/vulkan-local/vulkan_ohos.h @@ -22,7 +22,7 @@ extern "C" { // VK_OHOS_external_memory is a preprocessor guard. Do not pass it to API calls. #define VK_OHOS_external_memory 1 struct OH_NativeBuffer; -#define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 2 +#define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 1 #define VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME "VK_OHOS_external_memory" typedef struct VkNativeBufferUsageOHOS { VkStructureType sType; diff --git a/libs/bgfx/3rdparty/spirv-cross/main.cpp b/libs/bgfx/3rdparty/spirv-cross/main.cpp index 6059016..4442dbf 100644 --- a/libs/bgfx/3rdparty/spirv-cross/main.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/main.cpp @@ -47,7 +47,7 @@ #include "gitversion.h" #endif -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; using namespace std; @@ -285,7 +285,7 @@ static bool write_string_to_file(const char *path, const char *string) #pragma warning(pop) #endif -static void print_resources(const Compiler &compiler, spv::StorageClass storage, +static void print_resources(const Compiler &compiler, StorageClass storage, const SmallVector &resources) { fprintf(stderr, "%s\n", storage == StorageClassInput ? "builtin inputs" : "builtin outputs"); @@ -326,12 +326,12 @@ static void print_resources(const Compiler &compiler, spv::StorageClass storage, string builtin_str; switch (res.builtin) { - case spv::BuiltInPosition: builtin_str = "Position"; break; - case spv::BuiltInPointSize: builtin_str = "PointSize"; break; - case spv::BuiltInCullDistance: builtin_str = "CullDistance"; break; - case spv::BuiltInClipDistance: builtin_str = "ClipDistance"; break; - case spv::BuiltInTessLevelInner: builtin_str = "TessLevelInner"; break; - case spv::BuiltInTessLevelOuter: builtin_str = "TessLevelOuter"; break; + case BuiltInPosition: builtin_str = "Position"; break; + case BuiltInPointSize: builtin_str = "PointSize"; break; + case BuiltInCullDistance: builtin_str = "CullDistance"; break; + case BuiltInClipDistance: builtin_str = "ClipDistance"; break; + case BuiltInTessLevelInner: builtin_str = "TessLevelInner"; break; + case BuiltInTessLevelOuter: builtin_str = "TessLevelOuter"; break; default: builtin_str = string("builtin #") + to_string(res.builtin); } @@ -421,13 +421,13 @@ static void print_resources(const Compiler &compiler, const char *tag, const Sma fprintf(stderr, "=============\n\n"); } -static const char *execution_model_to_str(spv::ExecutionModel model) +static const char *execution_model_to_str(ExecutionModel model) { switch (model) { - case spv::ExecutionModelVertex: + case ExecutionModelVertex: return "vertex"; - case spv::ExecutionModelTessellationControl: + case ExecutionModelTessellationControl: return "tessellation control"; case ExecutionModelTessellationEvaluation: return "tessellation evaluation"; @@ -538,8 +538,8 @@ static void print_resources(const Compiler &compiler, const ShaderResources &res print_resources(compiler, "acceleration structures", res.acceleration_structures); print_resources(compiler, "tensors", res.tensors); print_resources(compiler, "record buffers", res.shader_record_buffers); - print_resources(compiler, spv::StorageClassInput, res.builtin_inputs); - print_resources(compiler, spv::StorageClassOutput, res.builtin_outputs); + print_resources(compiler, StorageClassInput, res.builtin_inputs); + print_resources(compiler, StorageClassOutput, res.builtin_outputs); } static void print_push_constant_resources(const Compiler &compiler, const SmallVector &res) @@ -1175,9 +1175,9 @@ static ExecutionModel stage_to_execution_model(const std::string &stage) else if (stage == "rcall") return ExecutionModelCallableKHR; else if (stage == "mesh") - return spv::ExecutionModelMeshEXT; + return ExecutionModelMeshEXT; else if (stage == "task") - return spv::ExecutionModelTaskEXT; + return ExecutionModelTaskEXT; else SPIRV_CROSS_THROW("Invalid stage."); } diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv.h b/libs/bgfx/3rdparty/spirv-cross/spirv.h index 005d451..26bc6d9 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv.h +++ b/libs/bgfx/3rdparty/spirv-cross/spirv.h @@ -642,6 +642,7 @@ typedef enum SpvDecoration_ { SpvDecorationHostAccessINTEL = 6188, SpvDecorationInitModeINTEL = 6190, SpvDecorationImplementInRegisterMapINTEL = 6191, + SpvDecorationConditionalINTEL = 6247, SpvDecorationCacheControlLoadINTEL = 6442, SpvDecorationCacheControlStoreINTEL = 6443, SpvDecorationMax = 0x7fffffff, @@ -1107,6 +1108,7 @@ typedef enum SpvCapability_ { SpvCapabilityTextureBoxFilterQCOM = 4485, SpvCapabilityTextureBlockMatchQCOM = 4486, SpvCapabilityTileShadingQCOM = 4495, + SpvCapabilityCooperativeMatrixConversionQCOM = 4496, SpvCapabilityTextureBlockMatch2QCOM = 4498, SpvCapabilityFloat16ImageAMD = 5008, SpvCapabilityImageGatherBiasLodAMD = 5009, @@ -1258,6 +1260,7 @@ typedef enum SpvCapability_ { SpvCapabilityBitInstructions = 6025, SpvCapabilityGroupNonUniformRotateKHR = 6026, SpvCapabilityFloatControls2 = 6029, + SpvCapabilityFMAKHR = 6030, SpvCapabilityAtomicFloat32AddEXT = 6033, SpvCapabilityAtomicFloat64AddEXT = 6034, SpvCapabilityLongCompositesINTEL = 6089, @@ -1282,6 +1285,9 @@ typedef enum SpvCapability_ { SpvCapabilitySubgroup2DBlockTransposeINTEL = 6230, SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL = 6236, SpvCapabilityTernaryBitwiseFunctionINTEL = 6241, + SpvCapabilityUntypedVariableLengthArrayINTEL = 6243, + SpvCapabilitySpecConditionalINTEL = 6245, + SpvCapabilityFunctionVariantsINTEL = 6246, SpvCapabilityGroupUniformArithmeticKHR = 6400, SpvCapabilityTensorFloat32RoundingINTEL = 6425, SpvCapabilityMaskedGatherScatterINTEL = 6427, @@ -1970,12 +1976,14 @@ typedef enum SpvOp_ { SpvOpUntypedInBoundsPtrAccessChainKHR = 4424, SpvOpUntypedArrayLengthKHR = 4425, SpvOpUntypedPrefetchKHR = 4426, + SpvOpFmaKHR = 4427, SpvOpSubgroupAllKHR = 4428, SpvOpSubgroupAnyKHR = 4429, SpvOpSubgroupAllEqualKHR = 4430, SpvOpGroupNonUniformRotateKHR = 4431, SpvOpSubgroupReadInvocationKHR = 4432, SpvOpExtInstWithForwardRefsKHR = 4433, + SpvOpUntypedGroupAsyncCopyKHR = 4434, SpvOpTraceRayKHR = 4445, SpvOpExecuteCallableKHR = 4446, SpvOpConvertUToAccelerationStructureKHR = 4447, @@ -2012,10 +2020,14 @@ typedef enum SpvOp_ { SpvOpImageBoxFilterQCOM = 4481, SpvOpImageBlockMatchSSDQCOM = 4482, SpvOpImageBlockMatchSADQCOM = 4483, + SpvOpBitCastArrayQCOM = 4497, SpvOpImageBlockMatchWindowSSDQCOM = 4500, SpvOpImageBlockMatchWindowSADQCOM = 4501, SpvOpImageBlockMatchGatherSSDQCOM = 4502, SpvOpImageBlockMatchGatherSADQCOM = 4503, + SpvOpCompositeConstructCoopMatQCOM = 4540, + SpvOpCompositeExtractCoopMatQCOM = 4541, + SpvOpExtractSubArrayQCOM = 4542, SpvOpGroupIAddNonUniformAMD = 5000, SpvOpGroupFAddNonUniformAMD = 5001, SpvOpGroupFMinNonUniformAMD = 5002, @@ -2097,6 +2109,7 @@ typedef enum SpvOp_ { SpvOpTypeAccelerationStructureNV = 5341, SpvOpExecuteCallableNV = 5344, SpvOpRayQueryGetClusterIdNV = 5345, + SpvOpRayQueryGetIntersectionClusterIdNV = 5345, SpvOpHitObjectGetClusterIdNV = 5346, SpvOpTypeCooperativeMatrixNV = 5358, SpvOpCooperativeMatrixLoadNV = 5359, @@ -2406,6 +2419,14 @@ typedef enum SpvOp_ { SpvOpSubgroup2DBlockStoreINTEL = 6235, SpvOpSubgroupMatrixMultiplyAccumulateINTEL = 6237, SpvOpBitwiseFunctionINTEL = 6242, + SpvOpUntypedVariableLengthArrayINTEL = 6244, + SpvOpConditionalExtensionINTEL = 6248, + SpvOpConditionalEntryPointINTEL = 6249, + SpvOpConditionalCapabilityINTEL = 6250, + SpvOpSpecConstantTargetINTEL = 6251, + SpvOpSpecConstantArchitectureINTEL = 6252, + SpvOpSpecConstantCapabilitiesINTEL = 6253, + SpvOpConditionalCopyObjectINTEL = 6254, SpvOpGroupIMulKHR = 6401, SpvOpGroupFMulKHR = 6402, SpvOpGroupBitwiseAndKHR = 6403, @@ -2800,12 +2821,14 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpUntypedInBoundsPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break; case SpvOpUntypedArrayLengthKHR: *hasResult = true; *hasResultType = true; break; case SpvOpUntypedPrefetchKHR: *hasResult = false; *hasResultType = false; break; + case SpvOpFmaKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case SpvOpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break; + case SpvOpUntypedGroupAsyncCopyKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; @@ -2836,10 +2859,14 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpBitCastArrayQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpCompositeConstructCoopMatQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpCompositeExtractCoopMatQCOM: *hasResult = true; *hasResultType = true; break; + case SpvOpExtractSubArrayQCOM: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; @@ -2918,7 +2945,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break; case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; - case SpvOpRayQueryGetClusterIdNV: *hasResult = true; *hasResultType = true; break; + case SpvOpRayQueryGetIntersectionClusterIdNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break; case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; @@ -3225,6 +3252,14 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpUntypedVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; @@ -3765,6 +3800,7 @@ inline const char* SpvDecorationToString(SpvDecoration value) { case SpvDecorationHostAccessINTEL: return "HostAccessINTEL"; case SpvDecorationInitModeINTEL: return "InitModeINTEL"; case SpvDecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; + case SpvDecorationConditionalINTEL: return "ConditionalINTEL"; case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL"; case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL"; default: return "Unknown"; @@ -4055,6 +4091,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM"; case SpvCapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM"; case SpvCapabilityTileShadingQCOM: return "TileShadingQCOM"; + case SpvCapabilityCooperativeMatrixConversionQCOM: return "CooperativeMatrixConversionQCOM"; case SpvCapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM"; case SpvCapabilityFloat16ImageAMD: return "Float16ImageAMD"; case SpvCapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; @@ -4181,6 +4218,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityBitInstructions: return "BitInstructions"; case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR"; case SpvCapabilityFloatControls2: return "FloatControls2"; + case SpvCapabilityFMAKHR: return "FMAKHR"; case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL"; @@ -4204,6 +4242,9 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilitySubgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL"; case SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL"; case SpvCapabilityTernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL"; + case SpvCapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL"; + case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL"; + case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL"; case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR"; case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL"; case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL"; @@ -4773,12 +4814,14 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpUntypedInBoundsPtrAccessChainKHR: return "OpUntypedInBoundsPtrAccessChainKHR"; case SpvOpUntypedArrayLengthKHR: return "OpUntypedArrayLengthKHR"; case SpvOpUntypedPrefetchKHR: return "OpUntypedPrefetchKHR"; + case SpvOpFmaKHR: return "OpFmaKHR"; case SpvOpSubgroupAllKHR: return "OpSubgroupAllKHR"; case SpvOpSubgroupAnyKHR: return "OpSubgroupAnyKHR"; case SpvOpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR"; case SpvOpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR"; case SpvOpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR"; case SpvOpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR"; + case SpvOpUntypedGroupAsyncCopyKHR: return "OpUntypedGroupAsyncCopyKHR"; case SpvOpTraceRayKHR: return "OpTraceRayKHR"; case SpvOpExecuteCallableKHR: return "OpExecuteCallableKHR"; case SpvOpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR"; @@ -4809,10 +4852,14 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM"; case SpvOpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM"; case SpvOpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM"; + case SpvOpBitCastArrayQCOM: return "OpBitCastArrayQCOM"; case SpvOpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM"; case SpvOpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM"; case SpvOpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM"; case SpvOpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM"; + case SpvOpCompositeConstructCoopMatQCOM: return "OpCompositeConstructCoopMatQCOM"; + case SpvOpCompositeExtractCoopMatQCOM: return "OpCompositeExtractCoopMatQCOM"; + case SpvOpExtractSubArrayQCOM: return "OpExtractSubArrayQCOM"; case SpvOpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD"; case SpvOpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD"; case SpvOpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD"; @@ -5198,6 +5245,14 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL"; case SpvOpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL"; case SpvOpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL"; + case SpvOpUntypedVariableLengthArrayINTEL: return "OpUntypedVariableLengthArrayINTEL"; + case SpvOpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL"; + case SpvOpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL"; + case SpvOpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL"; + case SpvOpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL"; + case SpvOpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL"; + case SpvOpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL"; + case SpvOpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL"; case SpvOpGroupIMulKHR: return "OpGroupIMulKHR"; case SpvOpGroupFMulKHR: return "OpGroupFMulKHR"; case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR"; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv.hpp index f7a7bf8..086fcc4 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv.hpp @@ -638,6 +638,7 @@ enum Decoration { DecorationHostAccessINTEL = 6188, DecorationInitModeINTEL = 6190, DecorationImplementInRegisterMapINTEL = 6191, + DecorationConditionalINTEL = 6247, DecorationCacheControlLoadINTEL = 6442, DecorationCacheControlStoreINTEL = 6443, DecorationMax = 0x7fffffff, @@ -1103,6 +1104,7 @@ enum Capability { CapabilityTextureBoxFilterQCOM = 4485, CapabilityTextureBlockMatchQCOM = 4486, CapabilityTileShadingQCOM = 4495, + CapabilityCooperativeMatrixConversionQCOM = 4496, CapabilityTextureBlockMatch2QCOM = 4498, CapabilityFloat16ImageAMD = 5008, CapabilityImageGatherBiasLodAMD = 5009, @@ -1254,6 +1256,7 @@ enum Capability { CapabilityBitInstructions = 6025, CapabilityGroupNonUniformRotateKHR = 6026, CapabilityFloatControls2 = 6029, + CapabilityFMAKHR = 6030, CapabilityAtomicFloat32AddEXT = 6033, CapabilityAtomicFloat64AddEXT = 6034, CapabilityLongCompositesINTEL = 6089, @@ -1278,6 +1281,9 @@ enum Capability { CapabilitySubgroup2DBlockTransposeINTEL = 6230, CapabilitySubgroupMatrixMultiplyAccumulateINTEL = 6236, CapabilityTernaryBitwiseFunctionINTEL = 6241, + CapabilityUntypedVariableLengthArrayINTEL = 6243, + CapabilitySpecConditionalINTEL = 6245, + CapabilityFunctionVariantsINTEL = 6246, CapabilityGroupUniformArithmeticKHR = 6400, CapabilityTensorFloat32RoundingINTEL = 6425, CapabilityMaskedGatherScatterINTEL = 6427, @@ -1966,12 +1972,14 @@ enum Op { OpUntypedInBoundsPtrAccessChainKHR = 4424, OpUntypedArrayLengthKHR = 4425, OpUntypedPrefetchKHR = 4426, + OpFmaKHR = 4427, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, OpExtInstWithForwardRefsKHR = 4433, + OpUntypedGroupAsyncCopyKHR = 4434, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, @@ -2008,10 +2016,14 @@ enum Op { OpImageBoxFilterQCOM = 4481, OpImageBlockMatchSSDQCOM = 4482, OpImageBlockMatchSADQCOM = 4483, + OpBitCastArrayQCOM = 4497, OpImageBlockMatchWindowSSDQCOM = 4500, OpImageBlockMatchWindowSADQCOM = 4501, OpImageBlockMatchGatherSSDQCOM = 4502, OpImageBlockMatchGatherSADQCOM = 4503, + OpCompositeConstructCoopMatQCOM = 4540, + OpCompositeExtractCoopMatQCOM = 4541, + OpExtractSubArrayQCOM = 4542, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, @@ -2093,6 +2105,7 @@ enum Op { OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpRayQueryGetClusterIdNV = 5345, + OpRayQueryGetIntersectionClusterIdNV = 5345, OpHitObjectGetClusterIdNV = 5346, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, @@ -2402,6 +2415,14 @@ enum Op { OpSubgroup2DBlockStoreINTEL = 6235, OpSubgroupMatrixMultiplyAccumulateINTEL = 6237, OpBitwiseFunctionINTEL = 6242, + OpUntypedVariableLengthArrayINTEL = 6244, + OpConditionalExtensionINTEL = 6248, + OpConditionalEntryPointINTEL = 6249, + OpConditionalCapabilityINTEL = 6250, + OpSpecConstantTargetINTEL = 6251, + OpSpecConstantArchitectureINTEL = 6252, + OpSpecConstantCapabilitiesINTEL = 6253, + OpConditionalCopyObjectINTEL = 6254, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, @@ -2796,12 +2817,14 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpUntypedInBoundsPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break; case OpUntypedArrayLengthKHR: *hasResult = true; *hasResultType = true; break; case OpUntypedPrefetchKHR: *hasResult = false; *hasResultType = false; break; + case OpFmaKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; case OpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break; + case OpUntypedGroupAsyncCopyKHR: *hasResult = true; *hasResultType = true; break; case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; @@ -2832,10 +2855,14 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break; + case OpBitCastArrayQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break; case OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break; + case OpCompositeConstructCoopMatQCOM: *hasResult = true; *hasResultType = true; break; + case OpCompositeExtractCoopMatQCOM: *hasResult = true; *hasResultType = true; break; + case OpExtractSubArrayQCOM: *hasResult = true; *hasResultType = true; break; case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; @@ -2914,7 +2941,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break; case OpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break; case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; - case OpRayQueryGetClusterIdNV: *hasResult = true; *hasResultType = true; break; + case OpRayQueryGetIntersectionClusterIdNV: *hasResult = true; *hasResultType = true; break; case OpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break; case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; @@ -3221,6 +3248,14 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break; case OpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break; case OpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break; + case OpUntypedVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; + case OpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break; + case OpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break; + case OpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break; + case OpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break; + case OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break; + case OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break; + case OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break; case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; @@ -3761,6 +3796,7 @@ inline const char* DecorationToString(Decoration value) { case DecorationHostAccessINTEL: return "HostAccessINTEL"; case DecorationInitModeINTEL: return "InitModeINTEL"; case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; + case DecorationConditionalINTEL: return "ConditionalINTEL"; case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL"; case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL"; default: return "Unknown"; @@ -4051,6 +4087,7 @@ inline const char* CapabilityToString(Capability value) { case CapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM"; case CapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM"; case CapabilityTileShadingQCOM: return "TileShadingQCOM"; + case CapabilityCooperativeMatrixConversionQCOM: return "CooperativeMatrixConversionQCOM"; case CapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM"; case CapabilityFloat16ImageAMD: return "Float16ImageAMD"; case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD"; @@ -4177,6 +4214,7 @@ inline const char* CapabilityToString(Capability value) { case CapabilityBitInstructions: return "BitInstructions"; case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR"; case CapabilityFloatControls2: return "FloatControls2"; + case CapabilityFMAKHR: return "FMAKHR"; case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; case CapabilityLongCompositesINTEL: return "LongCompositesINTEL"; @@ -4200,6 +4238,9 @@ inline const char* CapabilityToString(Capability value) { case CapabilitySubgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL"; case CapabilitySubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL"; case CapabilityTernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL"; + case CapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL"; + case CapabilitySpecConditionalINTEL: return "SpecConditionalINTEL"; + case CapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL"; case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR"; case CapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL"; case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL"; @@ -4769,12 +4810,14 @@ inline const char* OpToString(Op value) { case OpUntypedInBoundsPtrAccessChainKHR: return "OpUntypedInBoundsPtrAccessChainKHR"; case OpUntypedArrayLengthKHR: return "OpUntypedArrayLengthKHR"; case OpUntypedPrefetchKHR: return "OpUntypedPrefetchKHR"; + case OpFmaKHR: return "OpFmaKHR"; case OpSubgroupAllKHR: return "OpSubgroupAllKHR"; case OpSubgroupAnyKHR: return "OpSubgroupAnyKHR"; case OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR"; case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR"; case OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR"; case OpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR"; + case OpUntypedGroupAsyncCopyKHR: return "OpUntypedGroupAsyncCopyKHR"; case OpTraceRayKHR: return "OpTraceRayKHR"; case OpExecuteCallableKHR: return "OpExecuteCallableKHR"; case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR"; @@ -4805,10 +4848,14 @@ inline const char* OpToString(Op value) { case OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM"; case OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM"; case OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM"; + case OpBitCastArrayQCOM: return "OpBitCastArrayQCOM"; case OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM"; case OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM"; case OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM"; case OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM"; + case OpCompositeConstructCoopMatQCOM: return "OpCompositeConstructCoopMatQCOM"; + case OpCompositeExtractCoopMatQCOM: return "OpCompositeExtractCoopMatQCOM"; + case OpExtractSubArrayQCOM: return "OpExtractSubArrayQCOM"; case OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD"; case OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD"; case OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD"; @@ -5194,6 +5241,14 @@ inline const char* OpToString(Op value) { case OpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL"; case OpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL"; case OpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL"; + case OpUntypedVariableLengthArrayINTEL: return "OpUntypedVariableLengthArrayINTEL"; + case OpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL"; + case OpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL"; + case OpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL"; + case OpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL"; + case OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL"; + case OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL"; + case OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL"; case OpGroupIMulKHR: return "OpGroupIMulKHR"; case OpGroupFMulKHR: return "OpGroupFMulKHR"; case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR"; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_common.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_common.hpp index 854efe5..02d8423 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_common.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_common.hpp @@ -27,8 +27,17 @@ #ifndef SPV_ENABLE_UTILITY_CODE #define SPV_ENABLE_UTILITY_CODE #endif -#include "spirv.hpp" +// Pragmatic hack to avoid symbol conflicts when including both hpp11 and hpp headers in same translation unit. +// This is an unfortunate SPIRV-Headers issue that we cannot easily deal with ourselves. +#ifdef SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#define spv SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#define SPIRV_CROSS_SPV_HEADER_NAMESPACE SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#else +#define SPIRV_CROSS_SPV_HEADER_NAMESPACE spv +#endif + +#include "spirv.hpp" #include "spirv_cross_containers.hpp" #include "spirv_cross_error_handling.hpp" #include @@ -2041,4 +2050,7 @@ struct hash> }; } // namespace std +#ifdef SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#undef spv +#endif #endif diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cpp.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cpp.cpp index 61c30e9..4bb6fc2 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cpp.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cpp.cpp @@ -23,7 +23,7 @@ #include "spirv_cpp.hpp" -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; using namespace std; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cross.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cross.cpp index 4c1d39d..c99febe 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cross.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cross.cpp @@ -31,7 +31,7 @@ #include using namespace std; -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; Compiler::Compiler(vector ir_) @@ -628,7 +628,7 @@ bool Compiler::is_immutable(uint32_t id) const return false; } -static inline bool storage_class_is_interface(spv::StorageClass storage) +static inline bool storage_class_is_interface(StorageClass storage) { switch (storage) { @@ -661,8 +661,8 @@ bool Compiler::is_hidden_variable(const SPIRVariable &var, bool include_builtins // In SPIR-V 1.4 and up we must also use the active variable interface to disable global variables // which are not part of the entry point. - if (ir.get_spirv_version() >= 0x10400 && var.storage != spv::StorageClassGeneric && - var.storage != spv::StorageClassFunction && !interface_variable_exists_in_entry_point(var.self)) + if (ir.get_spirv_version() >= 0x10400 && var.storage != StorageClassGeneric && + var.storage != StorageClassFunction && !interface_variable_exists_in_entry_point(var.self)) { return true; } @@ -1341,7 +1341,7 @@ const SPIRType &Compiler::get_pointee_type(uint32_t type_id) const uint32_t Compiler::get_variable_data_type_id(const SPIRVariable &var) const { - if (var.phi_variable || var.storage == spv::StorageClass::StorageClassAtomicCounter) + if (var.phi_variable || var.storage == StorageClassAtomicCounter) return var.basetype; return get_pointee_type_id(var.basetype); } @@ -1378,7 +1378,7 @@ bool Compiler::is_sampled_image_type(const SPIRType &type) type.image.dim != DimBuffer; } -void Compiler::set_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration, +void Compiler::set_member_decoration_string(TypeID id, uint32_t index, Decoration decoration, const std::string &argument) { ir.set_member_decoration_string(id, index, decoration, argument); @@ -1439,7 +1439,7 @@ void Compiler::unset_member_decoration(TypeID id, uint32_t index, Decoration dec ir.unset_member_decoration(id, index, decoration); } -void Compiler::set_decoration_string(ID id, spv::Decoration decoration, const std::string &argument) +void Compiler::set_decoration_string(ID id, Decoration decoration, const std::string &argument) { ir.set_decoration_string(id, decoration, argument); } @@ -1602,7 +1602,7 @@ void Compiler::unset_decoration(ID id, Decoration decoration) ir.unset_decoration(id, decoration); } -bool Compiler::get_binary_offset_for_decoration(VariableID id, spv::Decoration decoration, uint32_t &word_offset) const +bool Compiler::get_binary_offset_for_decoration(VariableID id, Decoration decoration, uint32_t &word_offset) const { auto *m = ir.find_meta(id); if (!m) @@ -1907,6 +1907,15 @@ bool Compiler::traverse_all_reachable_opcodes(const SPIRBlock &block, OpcodeHand handler.set_current_block(block); handler.rearm_current_block(block); + if (handler.enable_result_types) + { + for (auto &phi: block.phi_variables) + { + auto &v = get(phi.function_variable); + handler.result_types[phi.function_variable] = v.basetype; + } + } + // Ideally, perhaps traverse the CFG instead of all blocks in order to eliminate dead blocks, // but this shouldn't be a problem in practice unless the SPIR-V is doing insane things like recursing // inside dead blocks ... @@ -1918,11 +1927,24 @@ bool Compiler::traverse_all_reachable_opcodes(const SPIRBlock &block, OpcodeHand if (!handler.handle(op, ops, i.length)) return false; + if (handler.enable_result_types) + { + // If it has one, keep track of the instruction's result type, mapped by ID + uint32_t result_type, result_id; + if (instruction_to_result_type(result_type, result_id, op, ops, i.length)) + handler.result_types[result_id] = result_type; + } + if (op == OpFunctionCall) { auto &func = get(ops[2]); if (handler.follow_function_call(func)) { + if (handler.enable_result_types) + for (auto &arg : func.arguments) + if (!arg.alias_global_variable) + handler.result_types[arg.id] = arg.type; + if (!handler.begin_function_scope(ops, i.length)) return false; if (!traverse_all_reachable_opcodes(get(ops[2]), handler)) @@ -2457,7 +2479,7 @@ uint32_t Compiler::get_work_group_size_specialization_constants(SpecializationCo return execution.workgroup_size.constant; } -uint32_t Compiler::get_execution_mode_argument(spv::ExecutionMode mode, uint32_t index) const +uint32_t Compiler::get_execution_mode_argument(ExecutionMode mode, uint32_t index) const { auto &execution = get_entry_point(); switch (mode) @@ -2643,14 +2665,14 @@ SmallVector Compiler::get_entry_points_and_stages() const return entries; } -void Compiler::rename_entry_point(const std::string &old_name, const std::string &new_name, spv::ExecutionModel model) +void Compiler::rename_entry_point(const std::string &old_name, const std::string &new_name, ExecutionModel model) { auto &entry = get_entry_point(old_name, model); entry.orig_name = new_name; entry.name = new_name; } -void Compiler::set_entry_point(const std::string &name, spv::ExecutionModel model) +void Compiler::set_entry_point(const std::string &name, ExecutionModel model) { auto &entry = get_entry_point(name, model); ir.default_entry_point = entry.self; @@ -3346,7 +3368,7 @@ void Compiler::analyze_parameter_preservation( Compiler::AnalyzeVariableScopeAccessHandler::AnalyzeVariableScopeAccessHandler(Compiler &compiler_, SPIRFunction &entry_) - : compiler(compiler_) + : OpcodeHandler(compiler_) , entry(entry_) { } @@ -3464,11 +3486,11 @@ bool Compiler::AnalyzeVariableScopeAccessHandler::handle_terminator(const SPIRBl return true; } -bool Compiler::AnalyzeVariableScopeAccessHandler::handle(spv::Op op, const uint32_t *args, uint32_t length) +bool Compiler::AnalyzeVariableScopeAccessHandler::handle(Op op, const uint32_t *args, uint32_t length) { // Keep track of the types of temporaries, so we can hoist them out as necessary. uint32_t result_type = 0, result_id = 0; - if (compiler.instruction_to_result_type(result_type, result_id, op, args, length)) + if (instruction_to_result_type(result_type, result_id, op, args, length)) { // For some opcodes, we will need to override the result id. // If we need to hoist the temporary, the temporary type is the input, not the result. @@ -3811,7 +3833,7 @@ bool Compiler::AnalyzeVariableScopeAccessHandler::handle(spv::Op op, const uint3 } Compiler::StaticExpressionAccessHandler::StaticExpressionAccessHandler(Compiler &compiler_, uint32_t variable_id_) - : compiler(compiler_) + : OpcodeHandler(compiler_) , variable_id(variable_id_) { } @@ -3821,7 +3843,7 @@ bool Compiler::StaticExpressionAccessHandler::follow_function_call(const SPIRFun return false; } -bool Compiler::StaticExpressionAccessHandler::handle(spv::Op op, const uint32_t *args, uint32_t length) +bool Compiler::StaticExpressionAccessHandler::handle(Op op, const uint32_t *args, uint32_t length) { switch (op) { @@ -4381,7 +4403,7 @@ bool Compiler::may_read_undefined_variable_in_block(const SPIRBlock &block, uint return true; } -bool Compiler::GeometryEmitDisocveryHandler::handle(spv::Op opcode, const uint32_t *, uint32_t) +bool Compiler::GeometryEmitDisocveryHandler::handle(Op opcode, const uint32_t *, uint32_t) { if (opcode == OpEmitVertex || opcode == OpEndPrimitive) { @@ -4399,8 +4421,9 @@ bool Compiler::GeometryEmitDisocveryHandler::begin_function_scope(const uint32_t return true; } -bool Compiler::GeometryEmitDisocveryHandler::end_function_scope([[maybe_unused]] const uint32_t *stream, uint32_t) +bool Compiler::GeometryEmitDisocveryHandler::end_function_scope(const uint32_t *stream, uint32_t) { + (void)stream; assert(function_stack.back() == &compiler.get(stream[2])); function_stack.pop_back(); @@ -4521,7 +4544,7 @@ void Compiler::ActiveBuiltinHandler::add_if_builtin_or_block(uint32_t id) add_if_builtin(id, true); } -bool Compiler::ActiveBuiltinHandler::handle(spv::Op opcode, const uint32_t *args, uint32_t length) +bool Compiler::ActiveBuiltinHandler::handle(Op opcode, const uint32_t *args, uint32_t length) { switch (opcode) { @@ -4716,7 +4739,7 @@ void Compiler::analyze_image_and_sampler_usage() comparison_ids.insert(combined.combined_id); } -bool Compiler::CombinedImageSamplerDrefHandler::handle(spv::Op opcode, const uint32_t *args, uint32_t) +bool Compiler::CombinedImageSamplerDrefHandler::handle(Op opcode, const uint32_t *args, uint32_t) { // Mark all sampled images which are used with Dref. switch (opcode) @@ -4825,11 +4848,11 @@ void Compiler::build_function_control_flow_graphs_and_analyze() } Compiler::CFGBuilder::CFGBuilder(Compiler &compiler_) - : compiler(compiler_) + : OpcodeHandler(compiler_) { } -bool Compiler::CFGBuilder::handle(spv::Op, const uint32_t *, uint32_t) +bool Compiler::CFGBuilder::handle(Op, const uint32_t *, uint32_t) { return true; } @@ -5005,7 +5028,7 @@ void Compiler::make_constant_null(uint32_t id, uint32_t type) } } -const SmallVector &Compiler::get_declared_capabilities() const +const SmallVector &Compiler::get_declared_capabilities() const { return ir.declared_capabilities; } @@ -5080,7 +5103,7 @@ bool Compiler::reflection_ssbo_instance_name_is_significant() const return aliased_ssbo_types; } -bool Compiler::instruction_to_result_type(uint32_t &result_type, uint32_t &result_id, spv::Op op, +bool Compiler::instruction_to_result_type(uint32_t &result_type, uint32_t &result_id, Op op, const uint32_t *args, uint32_t length) { if (length < 2) @@ -5127,7 +5150,7 @@ Bitset Compiler::combined_decoration_for_member(const SPIRType &type, uint32_t i return flags; } -bool Compiler::is_desktop_only_format(spv::ImageFormat format) +bool Compiler::is_desktop_only_format(ImageFormat format) { switch (format) { @@ -5197,7 +5220,7 @@ void Compiler::clear_force_recompile() } Compiler::PhysicalStorageBufferPointerHandler::PhysicalStorageBufferPointerHandler(Compiler &compiler_) - : compiler(compiler_) + : OpcodeHandler(compiler_) { } @@ -5246,7 +5269,7 @@ bool Compiler::PhysicalStorageBufferPointerHandler::type_is_bda_block_entry(uint uint32_t Compiler::PhysicalStorageBufferPointerHandler::get_minimum_scalar_alignment(const SPIRType &type) const { - if (type.storage == spv::StorageClassPhysicalStorageBuffer) + if (type.storage == StorageClassPhysicalStorageBuffer) return 8; else if (type.basetype == SPIRType::Struct) { @@ -5764,3 +5787,13 @@ void Compiler::add_loop_level() { current_loop_level++; } + +const SPIRType *Compiler::OpcodeHandler::get_expression_result_type(uint32_t id) const +{ + auto itr = result_types.find(id); + if (itr == result_types.end()) + return nullptr; + + return &compiler.get(itr->second); +} + diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cross.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cross.hpp index 65e4bed..601ca26 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cross.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cross.hpp @@ -27,12 +27,20 @@ #ifndef SPV_ENABLE_UTILITY_CODE #define SPV_ENABLE_UTILITY_CODE #endif + +// Pragmatic hack to avoid symbol conflicts when including both hpp11 and hpp headers in same translation unit. +// This is an unfortunate SPIRV-Headers issue that we cannot easily deal with ourselves. +#ifdef SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#define spv SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#endif + #include "spirv.hpp" #include "spirv_cfg.hpp" #include "spirv_cross_parsed_ir.hpp" namespace SPIRV_CROSS_NAMESPACE { +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; struct Resource { // Resources are identified with their SPIR-V ID. @@ -69,7 +77,7 @@ struct BuiltInResource // A builtin present here does not necessarily mean it's considered an active builtin, // since variable ID "activeness" is only tracked on OpVariable level, not Block members. // For that, update_active_builtins() -> has_active_builtin() can be used to further refine the reflection. - spv::BuiltIn builtin; + BuiltIn builtin; // This is the actual value type of the builtin. // Typically float4, float, array for the gl_PerVertex builtins. @@ -152,7 +160,7 @@ enum BufferPackingStandard struct EntryPoint { std::string name; - spv::ExecutionModel execution_model; + ExecutionModel execution_model; }; class Compiler @@ -183,8 +191,8 @@ class Compiler const std::string &get_name(ID id) const; // Applies a decoration to an ID. Effectively injects OpDecorate. - void set_decoration(ID id, spv::Decoration decoration, uint32_t argument = 0); - void set_decoration_string(ID id, spv::Decoration decoration, const std::string &argument); + void set_decoration(ID id, Decoration decoration, uint32_t argument = 0); + void set_decoration_string(ID id, Decoration decoration, const std::string &argument); // Overrides the identifier OpName of an ID. // Identifiers beginning with underscores or identifiers which contain double underscores @@ -192,22 +200,22 @@ class Compiler void set_name(ID id, const std::string &name); // Gets a bitmask for the decorations which are applied to ID. - // I.e. (1ull << spv::DecorationFoo) | (1ull << spv::DecorationBar) + // I.e. (1ull << DecorationFoo) | (1ull << DecorationBar) const Bitset &get_decoration_bitset(ID id) const; // Returns whether the decoration has been applied to the ID. - bool has_decoration(ID id, spv::Decoration decoration) const; + bool has_decoration(ID id, Decoration decoration) const; // Gets the value for decorations which take arguments. - // If the decoration is a boolean (i.e. spv::DecorationNonWritable), + // If the decoration is a boolean (i.e. DecorationNonWritable), // 1 will be returned. // If decoration doesn't exist or decoration is not recognized, // 0 will be returned. - uint32_t get_decoration(ID id, spv::Decoration decoration) const; - const std::string &get_decoration_string(ID id, spv::Decoration decoration) const; + uint32_t get_decoration(ID id, Decoration decoration) const; + const std::string &get_decoration_string(ID id, Decoration decoration) const; // Removes the decoration for an ID. - void unset_decoration(ID id, spv::Decoration decoration); + void unset_decoration(ID id, Decoration decoration); // Gets the SPIR-V type associated with ID. // Mostly used with Resource::type_id and Resource::base_type_id to parse the underlying type of a resource. @@ -217,7 +225,7 @@ class Compiler const SPIRType &get_type_from_variable(VariableID id) const; // Gets the underlying storage class for an OpVariable. - spv::StorageClass get_storage_class(VariableID id) const; + StorageClass get_storage_class(VariableID id) const; // If get_name() is an empty string, get the fallback name which will be used // instead in the disassembled source. @@ -232,8 +240,8 @@ class Compiler const std::string &get_member_name(TypeID id, uint32_t index) const; // Given an OpTypeStruct in ID, obtain the OpMemberDecoration for member number "index". - uint32_t get_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration) const; - const std::string &get_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration) const; + uint32_t get_member_decoration(TypeID id, uint32_t index, Decoration decoration) const; + const std::string &get_member_decoration_string(TypeID id, uint32_t index, Decoration decoration) const; // Sets the member identifier for OpTypeStruct ID, member number "index". void set_member_name(TypeID id, uint32_t index, const std::string &name); @@ -246,15 +254,15 @@ class Compiler const Bitset &get_member_decoration_bitset(TypeID id, uint32_t index) const; // Returns whether the decoration has been applied to a member of a struct. - bool has_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration) const; + bool has_member_decoration(TypeID id, uint32_t index, Decoration decoration) const; // Similar to set_decoration, but for struct members. - void set_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration, uint32_t argument = 0); - void set_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration, + void set_member_decoration(TypeID id, uint32_t index, Decoration decoration, uint32_t argument = 0); + void set_member_decoration_string(TypeID id, uint32_t index, Decoration decoration, const std::string &argument); // Unsets a member decoration, similar to unset_decoration. - void unset_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration); + void unset_member_decoration(TypeID id, uint32_t index, Decoration decoration); // Gets the fallback name for a member, similar to get_fallback_name. virtual const std::string get_fallback_member_name(uint32_t index) const @@ -340,28 +348,28 @@ class Compiler // Names for entry points in the SPIR-V module may alias if they belong to different execution models. // To disambiguate, we must pass along with the entry point names the execution model. SmallVector get_entry_points_and_stages() const; - void set_entry_point(const std::string &entry, spv::ExecutionModel execution_model); + void set_entry_point(const std::string &entry, ExecutionModel execution_model); // Renames an entry point from old_name to new_name. // If old_name is currently selected as the current entry point, it will continue to be the current entry point, // albeit with a new name. // get_entry_points() is essentially invalidated at this point. void rename_entry_point(const std::string &old_name, const std::string &new_name, - spv::ExecutionModel execution_model); - const SPIREntryPoint &get_entry_point(const std::string &name, spv::ExecutionModel execution_model) const; - SPIREntryPoint &get_entry_point(const std::string &name, spv::ExecutionModel execution_model); + ExecutionModel execution_model); + const SPIREntryPoint &get_entry_point(const std::string &name, ExecutionModel execution_model) const; + SPIREntryPoint &get_entry_point(const std::string &name, ExecutionModel execution_model); const std::string &get_cleansed_entry_point_name(const std::string &name, - spv::ExecutionModel execution_model) const; + ExecutionModel execution_model) const; // Traverses all reachable opcodes and sets active_builtins to a bitmask of all builtin variables which are accessed in the shader. void update_active_builtins(); - bool has_active_builtin(spv::BuiltIn builtin, spv::StorageClass storage) const; + bool has_active_builtin(BuiltIn builtin, StorageClass storage) const; // Query and modify OpExecutionMode. const Bitset &get_execution_mode_bitset() const; - void unset_execution_mode(spv::ExecutionMode mode); - void set_execution_mode(spv::ExecutionMode mode, uint32_t arg0 = 0, uint32_t arg1 = 0, uint32_t arg2 = 0); + void unset_execution_mode(ExecutionMode mode); + void set_execution_mode(ExecutionMode mode, uint32_t arg0 = 0, uint32_t arg1 = 0, uint32_t arg2 = 0); // Gets argument for an execution mode (LocalSize, Invocations, OutputVertices). // For LocalSize or LocalSizeId, the index argument is used to select the dimension (X = 0, Y = 1, Z = 2). @@ -369,8 +377,8 @@ class Compiler // LocalSizeId query returns an ID. If LocalSizeId execution mode is not used, it returns 0. // LocalSize always returns a literal. If execution mode is LocalSizeId, // the literal (spec constant or not) is still returned. - uint32_t get_execution_mode_argument(spv::ExecutionMode mode, uint32_t index = 0) const; - spv::ExecutionModel get_execution_model() const; + uint32_t get_execution_mode_argument(ExecutionMode mode, uint32_t index = 0) const; + ExecutionModel get_execution_model() const; bool is_tessellation_shader() const; bool is_tessellating_triangles() const; @@ -483,7 +491,7 @@ class Compiler // If the decoration was declared, sets the word_offset to an offset into the provided SPIR-V binary buffer and returns true, // otherwise, returns false. // If the decoration does not have any value attached to it (e.g. DecorationRelaxedPrecision), this function will also return false. - bool get_binary_offset_for_decoration(VariableID id, spv::Decoration decoration, uint32_t &word_offset) const; + bool get_binary_offset_for_decoration(VariableID id, Decoration decoration, uint32_t &word_offset) const; // HLSL counter buffer reflection interface. // Append/Consume/Increment/Decrement in HLSL is implemented as two "neighbor" buffer objects where @@ -509,7 +517,7 @@ class Compiler bool buffer_get_hlsl_counter_buffer(VariableID id, uint32_t &counter_id) const; // Gets the list of all SPIR-V Capabilities which were declared in the SPIR-V module. - const SmallVector &get_declared_capabilities() const; + const SmallVector &get_declared_capabilities() const; // Gets the list of all SPIR-V extensions which were declared in the SPIR-V module. const SmallVector &get_declared_extensions() const; @@ -672,14 +680,14 @@ class Compiler const SPIREntryPoint &get_entry_point() const; SPIREntryPoint &get_entry_point(); - static bool is_tessellation_shader(spv::ExecutionModel model); + static bool is_tessellation_shader(ExecutionModel model); virtual std::string to_name(uint32_t id, bool allow_alias = true) const; bool is_builtin_variable(const SPIRVariable &var) const; bool is_builtin_type(const SPIRType &type) const; bool is_hidden_variable(const SPIRVariable &var, bool include_builtins = false) const; bool is_immutable(uint32_t id) const; - bool is_member_builtin(const SPIRType &type, uint32_t index, spv::BuiltIn *builtin) const; + bool is_member_builtin(const SPIRType &type, uint32_t index, BuiltIn *builtin) const; bool is_scalar(const SPIRType &type) const; bool is_vector(const SPIRType &type) const; bool is_matrix(const SPIRType &type) const; @@ -788,11 +796,12 @@ class Compiler // Used internally to implement various traversals for queries. struct OpcodeHandler { + explicit OpcodeHandler(Compiler &compiler_) : compiler(compiler_) {} virtual ~OpcodeHandler() = default; // Return true if traversal should continue. // If false, traversal will end immediately. - virtual bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) = 0; + virtual bool handle(Op opcode, const uint32_t *args, uint32_t length) = 0; virtual bool handle_terminator(const SPIRBlock &) { return true; @@ -823,20 +832,40 @@ class Compiler { return true; } + + Compiler &compiler; + std::unordered_map result_types; + const SPIRType *get_expression_result_type(uint32_t id) const; + bool enable_result_types = false; + + template T &get(uint32_t id) + { + return compiler.get(id); + } + + template const T &get(uint32_t id) const + { + return compiler.get(id); + } + + template + T &set(uint32_t id, P &&... args) + { + return compiler.set(id, std::forward

(args)...); + } }; struct BufferAccessHandler : OpcodeHandler { BufferAccessHandler(const Compiler &compiler_, SmallVector &ranges_, uint32_t id_) - : compiler(compiler_) + : OpcodeHandler(const_cast(compiler_)) , ranges(ranges_) , id(id_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; - const Compiler &compiler; SmallVector &ranges; uint32_t id; @@ -846,29 +875,26 @@ class Compiler struct InterfaceVariableAccessHandler : OpcodeHandler { InterfaceVariableAccessHandler(const Compiler &compiler_, std::unordered_set &variables_) - : compiler(compiler_) + : OpcodeHandler(const_cast(compiler_)) , variables(variables_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; - const Compiler &compiler; std::unordered_set &variables; }; struct CombinedImageSamplerHandler : OpcodeHandler { - CombinedImageSamplerHandler(Compiler &compiler_) - : compiler(compiler_) + explicit CombinedImageSamplerHandler(Compiler &compiler_) + : OpcodeHandler(compiler_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; bool begin_function_scope(const uint32_t *args, uint32_t length) override; bool end_function_scope(const uint32_t *args, uint32_t length) override; - Compiler &compiler; - // Each function in the call stack needs its own remapping for parameters so we can deduce which global variable each texture/sampler the parameter is statically bound to. std::stack> parameter_remapping; std::stack functions; @@ -882,27 +908,24 @@ class Compiler struct DummySamplerForCombinedImageHandler : OpcodeHandler { - DummySamplerForCombinedImageHandler(Compiler &compiler_) - : compiler(compiler_) + explicit DummySamplerForCombinedImageHandler(Compiler &compiler_) + : OpcodeHandler(compiler_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; - - Compiler &compiler; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; bool need_dummy_sampler = false; }; struct ActiveBuiltinHandler : OpcodeHandler { - ActiveBuiltinHandler(Compiler &compiler_) - : compiler(compiler_) + explicit ActiveBuiltinHandler(Compiler &compiler_) + : OpcodeHandler(compiler_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; - Compiler &compiler; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; - void handle_builtin(const SPIRType &type, spv::BuiltIn builtin, const Bitset &decoration_flags); + void handle_builtin(const SPIRType &type, BuiltIn builtin, const Bitset &decoration_flags); void add_if_builtin(uint32_t id); void add_if_builtin_or_block(uint32_t id); void add_if_builtin(uint32_t id, bool allow_blocks); @@ -954,13 +977,12 @@ class Compiler struct CombinedImageSamplerDrefHandler : OpcodeHandler { - CombinedImageSamplerDrefHandler(Compiler &compiler_) - : compiler(compiler_) + explicit CombinedImageSamplerDrefHandler(Compiler &compiler_) + : OpcodeHandler(compiler_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; - Compiler &compiler; std::unordered_set dref_combined_samplers; }; @@ -968,14 +990,13 @@ class Compiler { CombinedImageSamplerUsageHandler(Compiler &compiler_, const std::unordered_set &dref_combined_samplers_) - : compiler(compiler_) + : OpcodeHandler(compiler_) , dref_combined_samplers(dref_combined_samplers_) { } bool begin_function_scope(const uint32_t *args, uint32_t length) override; - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; - Compiler &compiler; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; const std::unordered_set &dref_combined_samplers; std::unordered_map> dependency_hierarchy; @@ -997,8 +1018,7 @@ class Compiler explicit CFGBuilder(Compiler &compiler_); bool follow_function_call(const SPIRFunction &func) override; - bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; - Compiler &compiler; + bool handle(Op op, const uint32_t *args, uint32_t length) override; std::unordered_map> function_cfgs; }; @@ -1012,10 +1032,9 @@ class Compiler void notify_variable_access(uint32_t id, uint32_t block); bool id_is_phi_variable(uint32_t id) const; bool id_is_potential_temporary(uint32_t id) const; - bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; + bool handle(Op op, const uint32_t *args, uint32_t length) override; bool handle_terminator(const SPIRBlock &block) override; - Compiler &compiler; SPIRFunction &entry; std::unordered_map> accessed_variables_to_block; std::unordered_map> accessed_temporaries_to_block; @@ -1033,9 +1052,8 @@ class Compiler { StaticExpressionAccessHandler(Compiler &compiler_, uint32_t variable_id_); bool follow_function_call(const SPIRFunction &) override; - bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; + bool handle(Op op, const uint32_t *args, uint32_t length) override; - Compiler &compiler; uint32_t variable_id; uint32_t static_expression = 0; uint32_t write_count = 0; @@ -1049,8 +1067,7 @@ class Compiler struct PhysicalStorageBufferPointerHandler : OpcodeHandler { explicit PhysicalStorageBufferPointerHandler(Compiler &compiler_); - bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; - Compiler &compiler; + bool handle(Op op, const uint32_t *args, uint32_t length) override; std::unordered_set non_block_types; std::unordered_map physical_block_type_meta; @@ -1077,12 +1094,11 @@ class Compiler struct GeometryEmitDisocveryHandler : OpcodeHandler { explicit GeometryEmitDisocveryHandler(Compiler &compiler_) - : compiler(compiler_) + : OpcodeHandler(compiler_) { } - Compiler &compiler; - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; bool begin_function_scope(const uint32_t *, uint32_t) override; bool end_function_scope(const uint32_t *, uint32_t) override; SmallVector function_stack; @@ -1097,16 +1113,15 @@ class Compiler struct InterlockedResourceAccessHandler : OpcodeHandler { InterlockedResourceAccessHandler(Compiler &compiler_, uint32_t entry_point_id) - : compiler(compiler_) + : OpcodeHandler(compiler_) { call_stack.push_back(entry_point_id); } - bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; + bool handle(Op op, const uint32_t *args, uint32_t length) override; bool begin_function_scope(const uint32_t *args, uint32_t length) override; bool end_function_scope(const uint32_t *args, uint32_t length) override; - Compiler &compiler; bool in_crit_sec = false; uint32_t interlock_function_id = 0; @@ -1122,17 +1137,16 @@ class Compiler struct InterlockedResourceAccessPrepassHandler : OpcodeHandler { InterlockedResourceAccessPrepassHandler(Compiler &compiler_, uint32_t entry_point_id) - : compiler(compiler_) + : OpcodeHandler(compiler_) { call_stack.push_back(entry_point_id); } void rearm_current_block(const SPIRBlock &block) override; - bool handle(spv::Op op, const uint32_t *args, uint32_t length) override; + bool handle(Op op, const uint32_t *args, uint32_t length) override; bool begin_function_scope(const uint32_t *args, uint32_t length) override; bool end_function_scope(const uint32_t *args, uint32_t length) override; - Compiler &compiler; uint32_t interlock_function_id = 0; uint32_t current_block_id = 0; bool split_function_case = false; @@ -1149,11 +1163,11 @@ class Compiler std::unordered_map declared_block_names; - bool instruction_to_result_type(uint32_t &result_type, uint32_t &result_id, spv::Op op, const uint32_t *args, - uint32_t length); + static bool instruction_to_result_type( + uint32_t &result_type, uint32_t &result_id, Op op, const uint32_t *args, uint32_t length); Bitset combined_decoration_for_member(const SPIRType &type, uint32_t index) const; - static bool is_desktop_only_format(spv::ImageFormat format); + static bool is_desktop_only_format(ImageFormat format); bool is_depth_image(const SPIRType &type, uint32_t id) const; @@ -1198,4 +1212,8 @@ class Compiler }; } // namespace SPIRV_CROSS_NAMESPACE +#ifdef SPIRV_CROSS_SPV_HEADER_NAMESPACE_OVERRIDE +#undef spv +#endif + #endif diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_c.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_c.cpp index 8a4a492..e1b7b1d 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_c.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_c.cpp @@ -75,6 +75,7 @@ #define SPVC_END_SAFE_SCOPE(context, error) #endif +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace std; using namespace SPIRV_CROSS_NAMESPACE; @@ -957,7 +958,7 @@ spvc_result spvc_compiler_mask_stage_output_by_builtin(spvc_compiler compiler, S return SPVC_ERROR_INVALID_ARGUMENT; } - static_cast(compiler->compiler.get())->mask_stage_output_by_builtin(spv::BuiltIn(builtin)); + static_cast(compiler->compiler.get())->mask_stage_output_by_builtin(BuiltIn(builtin)); return SPVC_SUCCESS; #else (void)builtin; @@ -1080,7 +1081,7 @@ spvc_result spvc_compiler_hlsl_add_resource_binding(spvc_compiler compiler, HLSLResourceBinding bind; bind.binding = binding->binding; bind.desc_set = binding->desc_set; - bind.stage = static_cast(binding->stage); + bind.stage = static_cast(binding->stage); bind.cbv.register_binding = binding->cbv.register_binding; bind.cbv.register_space = binding->cbv.register_space; bind.uav.register_binding = binding->uav.register_binding; @@ -1109,7 +1110,7 @@ spvc_bool spvc_compiler_hlsl_is_resource_used(spvc_compiler compiler, SpvExecuti } auto &hlsl = *static_cast(compiler->compiler.get()); - return hlsl.is_hlsl_resource_binding_used(static_cast(model), set, binding) ? SPVC_TRUE : + return hlsl.is_hlsl_resource_binding_used(static_cast(model), set, binding) ? SPVC_TRUE : SPVC_FALSE; #else (void)model; @@ -1240,7 +1241,7 @@ spvc_result spvc_compiler_msl_add_vertex_attribute(spvc_compiler compiler, const MSLShaderInterfaceVariable attr; attr.location = va->location; attr.format = static_cast(va->format); - attr.builtin = static_cast(va->builtin); + attr.builtin = static_cast(va->builtin); msl.add_msl_shader_input(attr); return SPVC_SUCCESS; #else @@ -1263,7 +1264,7 @@ spvc_result spvc_compiler_msl_add_shader_input(spvc_compiler compiler, const spv MSLShaderInterfaceVariable input; input.location = si->location; input.format = static_cast(si->format); - input.builtin = static_cast(si->builtin); + input.builtin = static_cast(si->builtin); input.vecsize = si->vecsize; msl.add_msl_shader_input(input); return SPVC_SUCCESS; @@ -1287,7 +1288,7 @@ spvc_result spvc_compiler_msl_add_shader_input_2(spvc_compiler compiler, const s MSLShaderInterfaceVariable input; input.location = si->location; input.format = static_cast(si->format); - input.builtin = static_cast(si->builtin); + input.builtin = static_cast(si->builtin); input.vecsize = si->vecsize; input.rate = static_cast(si->rate); msl.add_msl_shader_input(input); @@ -1312,7 +1313,7 @@ spvc_result spvc_compiler_msl_add_shader_output(spvc_compiler compiler, const sp MSLShaderInterfaceVariable output; output.location = so->location; output.format = static_cast(so->format); - output.builtin = static_cast(so->builtin); + output.builtin = static_cast(so->builtin); output.vecsize = so->vecsize; msl.add_msl_shader_output(output); return SPVC_SUCCESS; @@ -1336,7 +1337,7 @@ spvc_result spvc_compiler_msl_add_shader_output_2(spvc_compiler compiler, const MSLShaderInterfaceVariable output; output.location = so->location; output.format = static_cast(so->format); - output.builtin = static_cast(so->builtin); + output.builtin = static_cast(so->builtin); output.vecsize = so->vecsize; output.rate = static_cast(so->rate); msl.add_msl_shader_output(output); @@ -1362,7 +1363,7 @@ spvc_result spvc_compiler_msl_add_resource_binding(spvc_compiler compiler, MSLResourceBinding bind; bind.binding = binding->binding; bind.desc_set = binding->desc_set; - bind.stage = static_cast(binding->stage); + bind.stage = static_cast(binding->stage); bind.msl_buffer = binding->msl_buffer; bind.msl_texture = binding->msl_texture; bind.msl_sampler = binding->msl_sampler; @@ -1389,7 +1390,7 @@ spvc_result spvc_compiler_msl_add_resource_binding_2(spvc_compiler compiler, MSLResourceBinding bind; bind.binding = binding->binding; bind.desc_set = binding->desc_set; - bind.stage = static_cast(binding->stage); + bind.stage = static_cast(binding->stage); bind.msl_buffer = binding->msl_buffer; bind.msl_texture = binding->msl_texture; bind.msl_sampler = binding->msl_sampler; @@ -1535,7 +1536,7 @@ spvc_bool spvc_compiler_msl_is_resource_used(spvc_compiler compiler, SpvExecutio } auto &msl = *static_cast(compiler->compiler.get()); - return msl.is_msl_resource_binding_used(static_cast(model), set, binding) ? SPVC_TRUE : + return msl.is_msl_resource_binding_used(static_cast(model), set, binding) ? SPVC_TRUE : SPVC_FALSE; #else (void)model; @@ -2082,13 +2083,13 @@ spvc_result spvc_resources_get_builtin_resource_list_for_type( void spvc_compiler_set_decoration(spvc_compiler compiler, SpvId id, SpvDecoration decoration, unsigned argument) { - compiler->compiler->set_decoration(id, static_cast(decoration), argument); + compiler->compiler->set_decoration(id, static_cast(decoration), argument); } void spvc_compiler_set_decoration_string(spvc_compiler compiler, SpvId id, SpvDecoration decoration, const char *argument) { - compiler->compiler->set_decoration_string(id, static_cast(decoration), argument); + compiler->compiler->set_decoration_string(id, static_cast(decoration), argument); } void spvc_compiler_set_name(spvc_compiler compiler, SpvId id, const char *argument) @@ -2099,13 +2100,13 @@ void spvc_compiler_set_name(spvc_compiler compiler, SpvId id, const char *argume void spvc_compiler_set_member_decoration(spvc_compiler compiler, spvc_type_id id, unsigned member_index, SpvDecoration decoration, unsigned argument) { - compiler->compiler->set_member_decoration(id, member_index, static_cast(decoration), argument); + compiler->compiler->set_member_decoration(id, member_index, static_cast(decoration), argument); } void spvc_compiler_set_member_decoration_string(spvc_compiler compiler, spvc_type_id id, unsigned member_index, SpvDecoration decoration, const char *argument) { - compiler->compiler->set_member_decoration_string(id, member_index, static_cast(decoration), + compiler->compiler->set_member_decoration_string(id, member_index, static_cast(decoration), argument); } @@ -2116,24 +2117,24 @@ void spvc_compiler_set_member_name(spvc_compiler compiler, spvc_type_id id, unsi void spvc_compiler_unset_decoration(spvc_compiler compiler, SpvId id, SpvDecoration decoration) { - compiler->compiler->unset_decoration(id, static_cast(decoration)); + compiler->compiler->unset_decoration(id, static_cast(decoration)); } void spvc_compiler_unset_member_decoration(spvc_compiler compiler, spvc_type_id id, unsigned member_index, SpvDecoration decoration) { - compiler->compiler->unset_member_decoration(id, member_index, static_cast(decoration)); + compiler->compiler->unset_member_decoration(id, member_index, static_cast(decoration)); } spvc_bool spvc_compiler_has_decoration(spvc_compiler compiler, SpvId id, SpvDecoration decoration) { - return compiler->compiler->has_decoration(id, static_cast(decoration)) ? SPVC_TRUE : SPVC_FALSE; + return compiler->compiler->has_decoration(id, static_cast(decoration)) ? SPVC_TRUE : SPVC_FALSE; } spvc_bool spvc_compiler_has_member_decoration(spvc_compiler compiler, spvc_type_id id, unsigned member_index, SpvDecoration decoration) { - return compiler->compiler->has_member_decoration(id, member_index, static_cast(decoration)) ? + return compiler->compiler->has_member_decoration(id, member_index, static_cast(decoration)) ? SPVC_TRUE : SPVC_FALSE; } @@ -2145,24 +2146,24 @@ const char *spvc_compiler_get_name(spvc_compiler compiler, SpvId id) unsigned spvc_compiler_get_decoration(spvc_compiler compiler, SpvId id, SpvDecoration decoration) { - return compiler->compiler->get_decoration(id, static_cast(decoration)); + return compiler->compiler->get_decoration(id, static_cast(decoration)); } const char *spvc_compiler_get_decoration_string(spvc_compiler compiler, SpvId id, SpvDecoration decoration) { - return compiler->compiler->get_decoration_string(id, static_cast(decoration)).c_str(); + return compiler->compiler->get_decoration_string(id, static_cast(decoration)).c_str(); } unsigned spvc_compiler_get_member_decoration(spvc_compiler compiler, spvc_type_id id, unsigned member_index, SpvDecoration decoration) { - return compiler->compiler->get_member_decoration(id, member_index, static_cast(decoration)); + return compiler->compiler->get_member_decoration(id, member_index, static_cast(decoration)); } const char *spvc_compiler_get_member_decoration_string(spvc_compiler compiler, spvc_type_id id, unsigned member_index, SpvDecoration decoration) { - return compiler->compiler->get_member_decoration_string(id, member_index, static_cast(decoration)) + return compiler->compiler->get_member_decoration_string(id, member_index, static_cast(decoration)) .c_str(); } @@ -2207,7 +2208,7 @@ spvc_result spvc_compiler_set_entry_point(spvc_compiler compiler, const char *na { SPVC_BEGIN_SAFE_SCOPE { - compiler->compiler->set_entry_point(name, static_cast(model)); + compiler->compiler->set_entry_point(name, static_cast(model)); } SPVC_END_SAFE_SCOPE(compiler->context, SPVC_ERROR_INVALID_ARGUMENT) return SPVC_SUCCESS; @@ -2218,7 +2219,7 @@ spvc_result spvc_compiler_rename_entry_point(spvc_compiler compiler, const char { SPVC_BEGIN_SAFE_SCOPE { - compiler->compiler->rename_entry_point(old_name, new_name, static_cast(model)); + compiler->compiler->rename_entry_point(old_name, new_name, static_cast(model)); } SPVC_END_SAFE_SCOPE(compiler->context, SPVC_ERROR_INVALID_ARGUMENT) return SPVC_SUCCESS; @@ -2230,7 +2231,7 @@ const char *spvc_compiler_get_cleansed_entry_point_name(spvc_compiler compiler, SPVC_BEGIN_SAFE_SCOPE { auto cleansed_name = - compiler->compiler->get_cleansed_entry_point_name(name, static_cast(model)); + compiler->compiler->get_cleansed_entry_point_name(name, static_cast(model)); return compiler->context->allocate_name(cleansed_name); } SPVC_END_SAFE_SCOPE(compiler->context, nullptr) @@ -2238,19 +2239,19 @@ const char *spvc_compiler_get_cleansed_entry_point_name(spvc_compiler compiler, void spvc_compiler_set_execution_mode(spvc_compiler compiler, SpvExecutionMode mode) { - compiler->compiler->set_execution_mode(static_cast(mode)); + compiler->compiler->set_execution_mode(static_cast(mode)); } void spvc_compiler_set_execution_mode_with_arguments(spvc_compiler compiler, SpvExecutionMode mode, unsigned arg0, unsigned arg1, unsigned arg2) { - compiler->compiler->set_execution_mode(static_cast(mode), arg0, arg1, arg2); + compiler->compiler->set_execution_mode(static_cast(mode), arg0, arg1, arg2); } void spvc_compiler_unset_execution_mode(spvc_compiler compiler, SpvExecutionMode mode) { - compiler->compiler->unset_execution_mode(static_cast(mode)); + compiler->compiler->unset_execution_mode(static_cast(mode)); } spvc_result spvc_compiler_get_execution_modes(spvc_compiler compiler, const SpvExecutionMode **modes, size_t *num_modes) @@ -2272,13 +2273,13 @@ spvc_result spvc_compiler_get_execution_modes(spvc_compiler compiler, const SpvE unsigned spvc_compiler_get_execution_mode_argument(spvc_compiler compiler, SpvExecutionMode mode) { - return compiler->compiler->get_execution_mode_argument(static_cast(mode)); + return compiler->compiler->get_execution_mode_argument(static_cast(mode)); } unsigned spvc_compiler_get_execution_mode_argument_by_index(spvc_compiler compiler, SpvExecutionMode mode, unsigned index) { - return compiler->compiler->get_execution_mode_argument(static_cast(mode), index); + return compiler->compiler->get_execution_mode_argument(static_cast(mode), index); } SpvExecutionModel spvc_compiler_get_execution_model(spvc_compiler compiler) @@ -2293,7 +2294,7 @@ void spvc_compiler_update_active_builtins(spvc_compiler compiler) spvc_bool spvc_compiler_has_active_builtin(spvc_compiler compiler, SpvBuiltIn builtin, SpvStorageClass storage) { - return compiler->compiler->has_active_builtin(static_cast(builtin), static_cast(storage)) ? + return compiler->compiler->has_active_builtin(static_cast(builtin), static_cast(storage)) ? SPVC_TRUE : SPVC_FALSE; } @@ -2722,7 +2723,7 @@ spvc_bool spvc_compiler_get_binary_offset_for_decoration(spvc_compiler compiler, unsigned *word_offset) { uint32_t off = 0; - bool ret = compiler->compiler->get_binary_offset_for_decoration(id, static_cast(decoration), off); + bool ret = compiler->compiler->get_binary_offset_for_decoration(id, static_cast(decoration), off); if (ret) { *word_offset = off; @@ -2755,7 +2756,7 @@ spvc_result spvc_compiler_get_declared_capabilities(spvc_compiler compiler, cons size_t *num_capabilities) { auto &caps = compiler->compiler->get_declared_capabilities(); - static_assert(sizeof(SpvCapability) == sizeof(spv::Capability), "Enum size mismatch."); + static_assert(sizeof(SpvCapability) == sizeof(Capability), "Enum size mismatch."); *capabilities = reinterpret_cast(caps.data()); *num_capabilities = caps.size(); return SPVC_SUCCESS; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.cpp index 1dcd24e..1c23ece 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.cpp @@ -26,7 +26,7 @@ #include using namespace std; -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; namespace SPIRV_CROSS_NAMESPACE { diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.hpp index 8c30ef8..0e825b4 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_parsed_ir.hpp @@ -30,6 +30,7 @@ namespace SPIRV_CROSS_NAMESPACE { +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; // This data structure holds all information needed to perform cross-compilation and reflection. // It is the output of the Parser, but any implementation could create this structure. @@ -87,7 +88,7 @@ class ParsedIR // Declared capabilities and extensions in the SPIR-V module. // Not really used except for reflection at the moment. - SmallVector declared_capabilities; + SmallVector declared_capabilities; SmallVector declared_extensions; // Meta data about blocks. The cross-compiler needs to query if a block is either of these types. @@ -111,7 +112,7 @@ class ParsedIR struct Source { - spv::SourceLanguage lang = spv::SourceLanguageUnknown; + SourceLanguage lang = SourceLanguageUnknown; uint32_t version = 0; bool es = false; bool known = false; @@ -122,8 +123,8 @@ class ParsedIR Source source; - spv::AddressingModel addressing_model = spv::AddressingModelMax; - spv::MemoryModel memory_model = spv::MemoryModelMax; + AddressingModel addressing_model = AddressingModelMax; + MemoryModel memory_model = MemoryModelMax; // Decoration handling methods. // Can be useful for simple "raw" reflection. @@ -131,25 +132,25 @@ class ParsedIR // and might as well just have the whole suite of decoration/name handling in one place. void set_name(ID id, const std::string &name); const std::string &get_name(ID id) const; - void set_decoration(ID id, spv::Decoration decoration, uint32_t argument = 0); - void set_decoration_string(ID id, spv::Decoration decoration, const std::string &argument); - bool has_decoration(ID id, spv::Decoration decoration) const; - uint32_t get_decoration(ID id, spv::Decoration decoration) const; - const std::string &get_decoration_string(ID id, spv::Decoration decoration) const; + void set_decoration(ID id, Decoration decoration, uint32_t argument = 0); + void set_decoration_string(ID id, Decoration decoration, const std::string &argument); + bool has_decoration(ID id, Decoration decoration) const; + uint32_t get_decoration(ID id, Decoration decoration) const; + const std::string &get_decoration_string(ID id, Decoration decoration) const; const Bitset &get_decoration_bitset(ID id) const; - void unset_decoration(ID id, spv::Decoration decoration); + void unset_decoration(ID id, Decoration decoration); // Decoration handling methods (for members of a struct). void set_member_name(TypeID id, uint32_t index, const std::string &name); const std::string &get_member_name(TypeID id, uint32_t index) const; - void set_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration, uint32_t argument = 0); - void set_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration, + void set_member_decoration(TypeID id, uint32_t index, Decoration decoration, uint32_t argument = 0); + void set_member_decoration_string(TypeID id, uint32_t index, Decoration decoration, const std::string &argument); - uint32_t get_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration) const; - const std::string &get_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration) const; - bool has_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration) const; + uint32_t get_member_decoration(TypeID id, uint32_t index, Decoration decoration) const; + const std::string &get_member_decoration_string(TypeID id, uint32_t index, Decoration decoration) const; + bool has_member_decoration(TypeID id, uint32_t index, Decoration decoration) const; const Bitset &get_member_decoration_bitset(TypeID id, uint32_t index) const; - void unset_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration); + void unset_member_decoration(TypeID id, uint32_t index, Decoration decoration); void mark_used_as_array_length(ID id); uint32_t increase_bound_by(uint32_t count); diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_util.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_util.cpp index 7cff010..f30706f 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_cross_util.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_cross_util.cpp @@ -24,7 +24,7 @@ #include "spirv_cross_util.hpp" #include "spirv_common.hpp" -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; namespace spirv_cross_util @@ -34,10 +34,10 @@ void rename_interface_variable(Compiler &compiler, const SmallVector & { for (auto &v : resources) { - if (!compiler.has_decoration(v.id, spv::DecorationLocation)) + if (!compiler.has_decoration(v.id, DecorationLocation)) continue; - auto loc = compiler.get_decoration(v.id, spv::DecorationLocation); + auto loc = compiler.get_decoration(v.id, DecorationLocation); if (loc != location) continue; @@ -61,16 +61,16 @@ void inherit_combined_sampler_bindings(Compiler &compiler) auto &samplers = compiler.get_combined_image_samplers(); for (auto &s : samplers) { - if (compiler.has_decoration(s.image_id, spv::DecorationDescriptorSet)) + if (compiler.has_decoration(s.image_id, DecorationDescriptorSet)) { - uint32_t set = compiler.get_decoration(s.image_id, spv::DecorationDescriptorSet); - compiler.set_decoration(s.combined_id, spv::DecorationDescriptorSet, set); + uint32_t set = compiler.get_decoration(s.image_id, DecorationDescriptorSet); + compiler.set_decoration(s.combined_id, DecorationDescriptorSet, set); } - if (compiler.has_decoration(s.image_id, spv::DecorationBinding)) + if (compiler.has_decoration(s.image_id, DecorationBinding)) { - uint32_t binding = compiler.get_decoration(s.image_id, spv::DecorationBinding); - compiler.set_decoration(s.combined_id, spv::DecorationBinding, binding); + uint32_t binding = compiler.get_decoration(s.image_id, DecorationBinding); + compiler.set_decoration(s.combined_id, DecorationBinding, binding); } } } diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.cpp index 5392bd7..3cb08f2 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.cpp @@ -37,7 +37,7 @@ #endif #include -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; using namespace std; @@ -267,7 +267,7 @@ static const char *to_pls_layout(PlsFormat format) } } -static std::pair pls_format_to_basetype(PlsFormat format) +static std::pair pls_format_to_basetype(PlsFormat format) { switch (format) { @@ -278,17 +278,17 @@ static std::pair pls_format_to_basetype(PlsFormat f case PlsRGB10A2: case PlsRGBA8: case PlsRG16: - return std::make_pair(spv::OpTypeFloat, SPIRType::Float); + return std::make_pair(OpTypeFloat, SPIRType::Float); case PlsRGBA8I: case PlsRG16I: - return std::make_pair(spv::OpTypeInt, SPIRType::Int); + return std::make_pair(OpTypeInt, SPIRType::Int); case PlsRGB10A2UI: case PlsRGBA8UI: case PlsRG16UI: case PlsR32UI: - return std::make_pair(spv::OpTypeInt, SPIRType::UInt); + return std::make_pair(OpTypeInt, SPIRType::UInt); } } @@ -654,6 +654,20 @@ void CompilerGLSL::find_static_extensions() ray_tracing_is_khr = true; break; + case CapabilityRayQueryPositionFetchKHR: + if (options.es || options.version < 460 || !options.vulkan_semantics) + SPIRV_CROSS_THROW("RayQuery Position Fetch requires Vulkan GLSL 460."); + require_extension_internal("GL_EXT_ray_tracing_position_fetch"); + ray_tracing_is_khr = true; + break; + + case CapabilityRayTracingPositionFetchKHR: + if (options.es || options.version < 460 || !options.vulkan_semantics) + SPIRV_CROSS_THROW("Ray Tracing Position Fetch requires Vulkan GLSL 460."); + require_extension_internal("GL_EXT_ray_tracing_position_fetch"); + ray_tracing_is_khr = true; + break; + case CapabilityRayTraversalPrimitiveCullingKHR: if (options.es || options.version < 460 || !options.vulkan_semantics) SPIRV_CROSS_THROW("RayQuery requires Vulkan GLSL 460."); @@ -1476,7 +1490,7 @@ string CompilerGLSL::layout_for_member(const SPIRType &type, uint32_t index) return res; } -const char *CompilerGLSL::format_to_glsl(spv::ImageFormat format) +const char *CompilerGLSL::format_to_glsl(ImageFormat format) { if (options.es && is_desktop_only_format(format)) SPIRV_CROSS_THROW("Attempting to use image format not supported in ES profile."); @@ -4324,7 +4338,7 @@ void CompilerGLSL::emit_subgroup_arithmetic_workaround(const std::string &func, } } -void CompilerGLSL::emit_extension_workarounds(spv::ExecutionModel model) +void CompilerGLSL::emit_extension_workarounds(ExecutionModel model) { static const char *workaround_types[] = { "int", "ivec2", "ivec3", "ivec4", "uint", "uvec2", "uvec3", "uvec4", "float", "vec2", "vec3", "vec4", "double", "dvec2", "dvec3", "dvec4" }; @@ -4643,7 +4657,7 @@ void CompilerGLSL::emit_extension_workarounds(spv::ExecutionModel model) if (shader_subgroup_supporter.is_feature_requested(Supp::SubgroupMemBarrier)) { - if (model == spv::ExecutionModelGLCompute) + if (model == ExecutionModelGLCompute) { statement("#ifndef GL_KHR_shader_subgroup_basic"); statement("void subgroupMemoryBarrier() { groupMemoryBarrier(); }"); @@ -4729,7 +4743,7 @@ void CompilerGLSL::emit_extension_workarounds(spv::ExecutionModel model) } auto arithmetic_feature_helper = - [&](Supp::Feature feat, std::string func_name, spv::Op op, spv::GroupOperation group_op) + [&](Supp::Feature feat, std::string func_name, Op op, GroupOperation group_op) { if (shader_subgroup_supporter.is_feature_requested(feat)) { @@ -6014,9 +6028,9 @@ string CompilerGLSL::constant_expression(const SPIRConstant &c, require_extension_internal("GL_EXT_null_initializer"); return backend.constant_null_initializer; } - else if (c.replicated && type.op != spv::OpTypeArray) + else if (c.replicated && type.op != OpTypeArray) { - if (type.op == spv::OpTypeMatrix) + if (type.op == OpTypeMatrix) { uint32_t num_elements = type.columns; // GLSL does not allow the replication constructor for matrices @@ -6151,7 +6165,7 @@ string CompilerGLSL::constant_expression(const SPIRConstant &c, else return join(type_to_glsl(type), "(0)"); } - else if (c.columns() == 1 && type.op != spv::OpTypeCooperativeMatrixKHR) + else if (c.columns() == 1 && type.op != OpTypeCooperativeMatrixKHR) { auto res = constant_expression_vector(c, 0); @@ -7470,29 +7484,29 @@ string CompilerGLSL::legacy_tex_op(const std::string &op, const SPIRType &imgtyp const char *type; switch (imgtype.image.dim) { - case spv::Dim1D: + case Dim1D: // Force 2D path for ES. if (options.es) type = (imgtype.image.arrayed && !options.es) ? "2DArray" : "2D"; else type = (imgtype.image.arrayed && !options.es) ? "1DArray" : "1D"; break; - case spv::Dim2D: + case Dim2D: type = (imgtype.image.arrayed && !options.es) ? "2DArray" : "2D"; break; - case spv::Dim3D: + case Dim3D: type = "3D"; break; - case spv::DimCube: + case DimCube: type = "Cube"; break; - case spv::DimRect: + case DimRect: type = "2DRect"; break; - case spv::DimBuffer: + case DimBuffer: type = "Buffer"; break; - case spv::DimSubpassData: + case DimSubpassData: type = "2D"; break; default: @@ -7535,7 +7549,7 @@ string CompilerGLSL::legacy_tex_op(const std::string &op, const SPIRType &imgtyp else SPIRV_CROSS_THROW(join(op, " not allowed on depth samplers in legacy ES")); - if (imgtype.image.dim == spv::DimCube) + if (imgtype.image.dim == DimCube) return "shadowCubeNV"; } @@ -7802,7 +7816,7 @@ string CompilerGLSL::to_combined_image_sampler(VariableID image_id, VariableID s } } -bool CompilerGLSL::is_supported_subgroup_op_in_opengl(spv::Op op, const uint32_t *ops) +bool CompilerGLSL::is_supported_subgroup_op_in_opengl(Op op, const uint32_t *ops) { switch (op) { @@ -8064,19 +8078,19 @@ std::string CompilerGLSL::to_texture_op(const Instruction &i, bool sparse, bool uint32_t coord_components = 0; switch (imgtype.image.dim) { - case spv::Dim1D: + case Dim1D: coord_components = 1; break; - case spv::Dim2D: + case Dim2D: coord_components = 2; break; - case spv::Dim3D: + case Dim3D: coord_components = 3; break; - case spv::DimCube: + case DimCube: coord_components = 3; break; - case spv::DimBuffer: + case DimBuffer: coord_components = 1; break; default: @@ -9517,6 +9531,35 @@ void CompilerGLSL::emit_subgroup_op(const Instruction &i) auto int_type = to_signed_basetype(integer_width); auto uint_type = to_unsigned_basetype(integer_width); + if (options.vulkan_semantics) + { + auto &return_type = get(ops[0]); + switch (return_type.basetype) + { + case SPIRType::SByte: + case SPIRType::UByte: + require_extension_internal("GL_EXT_shader_subgroup_extended_types_int8"); + break; + + case SPIRType::Short: + case SPIRType::UShort: + require_extension_internal("GL_EXT_shader_subgroup_extended_types_int16"); + break; + + case SPIRType::Half: + require_extension_internal("GL_EXT_shader_subgroup_extended_types_float16"); + break; + + case SPIRType::Int64: + case SPIRType::UInt64: + require_extension_internal("GL_EXT_shader_subgroup_extended_types_int64"); + break; + + default: + break; + } + } + switch (op) { case OpGroupNonUniformElect: @@ -10036,9 +10079,9 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) auto model = get_entry_point().model; switch (model) { - case spv::ExecutionModelIntersectionKHR: - case spv::ExecutionModelAnyHitKHR: - case spv::ExecutionModelClosestHitKHR: + case ExecutionModelIntersectionKHR: + case ExecutionModelAnyHitKHR: + case ExecutionModelClosestHitKHR: // gl_InstanceID is allowed in these shaders. break; @@ -10370,6 +10413,14 @@ string CompilerGLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) case BuiltInCullPrimitiveEXT: return "gl_CullPrimitiveEXT"; + case BuiltInHitTriangleVertexPositionsKHR: + { + if (!options.vulkan_semantics) + SPIRV_CROSS_THROW("Need Vulkan semantics for EXT_ray_tracing_position_fetch."); + require_extension_internal("GL_EXT_ray_tracing_position_fetch"); + return "gl_HitTriangleVertexPositionsEXT"; + } + case BuiltInClusterIDNV: { if (!options.vulkan_semantics) @@ -10490,7 +10541,7 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice bool dimension_flatten = false; bool access_meshlet_position_y = false; bool chain_is_builtin = false; - spv::BuiltIn chained_builtin = {}; + BuiltIn chained_builtin = {}; if (auto *base_expr = maybe_get(base)) { @@ -10622,7 +10673,7 @@ string CompilerGLSL::access_chain_internal(uint32_t base, const uint32_t *indice expr = join("(", expr, ")"); } // Arrays and OpTypeCooperativeVectorNV (aka fancy arrays) - else if (!type->array.empty() || type->op == spv::OpTypeCooperativeVectorNV) + else if (!type->array.empty() || type->op == OpTypeCooperativeVectorNV) { // If we are flattening multidimensional arrays, only create opening bracket on first // array index. @@ -11021,7 +11072,7 @@ bool CompilerGLSL::check_physical_type_cast(std::string &, const SPIRType *, uin return false; } -bool CompilerGLSL::prepare_access_chain_for_scalar_access(std::string &, const SPIRType &, spv::StorageClass, bool &) +bool CompilerGLSL::prepare_access_chain_for_scalar_access(std::string &, const SPIRType &, StorageClass, bool &) { return false; } @@ -11868,7 +11919,7 @@ string CompilerGLSL::build_composite_combiner(uint32_t return_type, const uint32 // Can only merge swizzles for vectors. auto &type = get(return_type); bool can_apply_swizzle_opt = type.basetype != SPIRType::Struct && type.array.empty() && type.columns == 1 && - type.op != spv::OpTypeCooperativeMatrixKHR; + type.op != OpTypeCooperativeMatrixKHR; bool swizzle_optimization = false; for (uint32_t i = 0; i < length; i++) @@ -12995,7 +13046,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) if (composite_type_is_complex) allow_base_expression = false; - if (composite_type.op == spv::OpTypeCooperativeMatrixKHR) + if (composite_type.op == OpTypeCooperativeMatrixKHR) allow_base_expression = false; // Packed expressions or physical ID mapped expressions cannot be split up. @@ -13967,7 +14018,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) } if ((type.basetype == SPIRType::FloatE4M3 || type.basetype == SPIRType::FloatE5M2) && - has_decoration(id, spv::DecorationSaturatedToLargestFloat8NormalConversionEXT)) + has_decoration(id, DecorationSaturatedToLargestFloat8NormalConversionEXT)) { emit_uninitialized_temporary_expression(result_type, id); statement("saturatedConvertEXT(", to_expression(id), ", ", to_unpacked_expression(ops[2]), ");"); @@ -15272,7 +15323,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) uint32_t result_type = ops[0]; uint32_t id = ops[1]; - if (type.image.dim == spv::DimSubpassData) + if (type.image.dim == DimSubpassData) { emit_unary_func_op(result_type, id, ops[2], "fragmentMaskFetchAMD"); } @@ -15291,7 +15342,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) uint32_t result_type = ops[0]; uint32_t id = ops[1]; - if (type.image.dim == spv::DimSubpassData) + if (type.image.dim == DimSubpassData) { emit_binary_func_op(result_type, id, ops[2], ops[4], "fragmentFetchAMD"); } @@ -15501,6 +15552,11 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) flush_variable_declaration(ops[0]); statement("rayQueryConfirmIntersectionEXT(", to_expression(ops[0]), ");"); break; + case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: + flush_variable_declaration(ops[1]); + emit_uninitialized_temporary_expression(ops[0], ops[1]); + statement("rayQueryGetIntersectionTriangleVertexPositionsEXT(", to_expression(ops[2]), ", bool(", to_expression(ops[3]), "), ", to_expression(ops[1]), ");"); + break; #define GLSL_RAY_QUERY_GET_OP(op) \ case OpRayQueryGet##op##KHR: \ flush_variable_declaration(ops[2]); \ @@ -15555,21 +15611,21 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) std::string tensor_operands; if (ops[4] == 0) tensor_operands = "0x0u"; - else if (ops[4] == spv::TensorOperandsNontemporalARMMask) + else if (ops[4] == TensorOperandsNontemporalARMMask) tensor_operands = "gl_TensorOperandsNonTemporalARM"; - else if (ops[4] == spv::TensorOperandsOutOfBoundsValueARMMask) + else if (ops[4] == TensorOperandsOutOfBoundsValueARMMask) tensor_operands = "gl_TensorOperandsOutOfBoundsValueARM"; - else if (ops[4] == (spv::TensorOperandsNontemporalARMMask | spv::TensorOperandsOutOfBoundsValueARMMask)) + else if (ops[4] == (TensorOperandsNontemporalARMMask | TensorOperandsOutOfBoundsValueARMMask)) tensor_operands = "gl_TensorOperandsNonTemporalARM | gl_TensorOperandsOutOfBoundsValueARM"; else SPIRV_CROSS_THROW("Invalid tensorOperands for tensorReadARM."); - if ((ops[4] & spv::TensorOperandsOutOfBoundsValueARMMask) && length != 6) + if ((ops[4] & TensorOperandsOutOfBoundsValueARMMask) && length != 6) SPIRV_CROSS_THROW("gl_TensorOperandsOutOfBoundsValueARM requires an outOfBoundsValue argument."); args.push_back(tensor_operands); // tensorOperands } if (length >= 6) { - if ((length > 6) || (ops[4] & spv::TensorOperandsOutOfBoundsValueARMMask) == 0) + if ((length > 6) || (ops[4] & TensorOperandsOutOfBoundsValueARMMask) == 0) SPIRV_CROSS_THROW("Too many arguments to tensorReadARM."); args.push_back(to_expression(ops[5])); // outOfBoundsValue } @@ -15593,7 +15649,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) std::string tensor_operands; if (ops[3] == 0) tensor_operands = "0x0u"; - else if (ops[3] == spv::TensorOperandsNontemporalARMMask) + else if (ops[3] == TensorOperandsNontemporalARMMask) tensor_operands = "gl_TensorOperandsNonTemporalARM"; else SPIRV_CROSS_THROW("Invalid tensorOperands for tensorWriteARM."); @@ -15943,15 +15999,15 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) auto value_to_replicate = to_expression(ops[2]); std::string rhs; // Matrices don't have a replicating constructor for vectors. Need to manually replicate - if (type.op == spv::OpTypeMatrix || type.op == spv::OpTypeArray) + if (type.op == OpTypeMatrix || type.op == OpTypeArray) { - if (type.op == spv::OpTypeArray && type.array.size() != 1) + if (type.op == OpTypeArray && type.array.size() != 1) { SPIRV_CROSS_THROW( "Multi-dimensional arrays currently not supported for OpCompositeConstructReplicateEXT"); } - uint32_t num_elements = type.op == spv::OpTypeMatrix ? type.columns : type.array[0]; - if (backend.use_initializer_list && type.op == spv::OpTypeArray) + uint32_t num_elements = type.op == OpTypeMatrix ? type.columns : type.array[0]; + if (backend.use_initializer_list && type.op == OpTypeArray) { rhs += "{"; } @@ -15966,7 +16022,7 @@ void CompilerGLSL::emit_instruction(const Instruction &instruction) if (i < num_elements - 1) rhs += ", "; } - if (backend.use_initializer_list && type.op == spv::OpTypeArray) + if (backend.use_initializer_list && type.op == OpTypeArray) rhs += "}"; else rhs += ")"; @@ -16845,7 +16901,7 @@ string CompilerGLSL::type_to_glsl(const SPIRType &type, uint32_t id) require_extension_internal("GL_ARB_shader_atomic_counters"); } - if (type.op == spv::OpTypeCooperativeVectorNV) + if (type.op == OpTypeCooperativeVectorNV) { require_extension_internal("GL_NV_cooperative_vector"); if (!options.vulkan_semantics) @@ -16860,7 +16916,7 @@ string CompilerGLSL::type_to_glsl(const SPIRType &type, uint32_t id) while (is_pointer(*coop_type) || is_array(*coop_type)) coop_type = &get(coop_type->parent_type); - if (coop_type->op == spv::OpTypeCooperativeMatrixKHR) + if (coop_type->op == OpTypeCooperativeMatrixKHR) { require_extension_internal("GL_KHR_cooperative_matrix"); if (!options.vulkan_semantics) @@ -16893,9 +16949,9 @@ string CompilerGLSL::type_to_glsl(const SPIRType &type, uint32_t id) if (!scope->specialization) { require_extension_internal("GL_KHR_memory_scope_semantics"); - if (scope->scalar() == spv::ScopeSubgroup) + if (scope->scalar() == ScopeSubgroup) scope_expr = "gl_ScopeSubgroup"; - else if (scope->scalar() == spv::ScopeWorkgroup) + else if (scope->scalar() == ScopeWorkgroup) scope_expr = "gl_ScopeWorkgroup"; else SPIRV_CROSS_THROW("Invalid scope for cooperative matrix."); @@ -17127,7 +17183,7 @@ void CompilerGLSL::flatten_buffer_block(VariableID id) flattened_buffer_blocks.insert(id); } -bool CompilerGLSL::builtin_translates_to_nonarray(spv::BuiltIn /*builtin*/) const +bool CompilerGLSL::builtin_translates_to_nonarray(BuiltIn /*builtin*/) const { return false; // GLSL itself does not need to translate array builtin types to non-array builtin types } @@ -17172,7 +17228,7 @@ void CompilerGLSL::add_function_overload(const SPIRFunction &func) uint32_t type_id = get_pointee_type_id(arg.type); // Workaround glslang bug. It seems to only consider the base type when resolving overloads. - if (get(type_id).op == spv::OpTypeCooperativeMatrixKHR) + if (get(type_id).op == OpTypeCooperativeMatrixKHR) type_id = get(type_id).parent_type; auto &type = get(type_id); @@ -19993,7 +20049,7 @@ bool CompilerGLSL::is_stage_output_location_masked(uint32_t location, uint32_t c return masked_output_locations.count({ location, component }) != 0; } -bool CompilerGLSL::is_stage_output_builtin_masked(spv::BuiltIn builtin) const +bool CompilerGLSL::is_stage_output_builtin_masked(BuiltIn builtin) const { return masked_output_builtins.count(builtin) != 0; } diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.hpp index 776ab8a..78bff2d 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_glsl.hpp @@ -32,6 +32,7 @@ namespace SPIRV_CROSS_NAMESPACE { +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; struct GlslConstantNameMapping; enum PlsFormat @@ -289,7 +290,7 @@ class CompilerGLSL : public Compiler // This option is only meaningful for MSL and HLSL, since GLSL matches by location directly. // Masking builtins only takes effect if the builtin in question is part of the stage output interface. void mask_stage_output_by_location(uint32_t location, uint32_t component); - void mask_stage_output_by_builtin(spv::BuiltIn builtin); + void mask_stage_output_by_builtin(BuiltIn builtin); // Allow to control how to format float literals in the output. // Set to "nullptr" to use the default "convert_to_string" function. @@ -389,7 +390,7 @@ class CompilerGLSL : public Compiler }; // TODO remove this function when all subgroup ops are supported (or make it always return true) - static bool is_supported_subgroup_op_in_opengl(spv::Op op, const uint32_t *ops); + static bool is_supported_subgroup_op_in_opengl(Op op, const uint32_t *ops); void reset(uint32_t iteration_count); void emit_function(SPIRFunction &func, const Bitset &return_flags); @@ -416,7 +417,7 @@ class CompilerGLSL : public Compiler // For relax_nan_checks. GLSLstd450 get_remapped_glsl_op(GLSLstd450 std450_op) const; - spv::Op get_remapped_spirv_op(spv::Op op) const; + Op get_remapped_spirv_op(Op op) const; virtual void emit_glsl_op(uint32_t result_type, uint32_t result_id, uint32_t op, const uint32_t *args, uint32_t count); @@ -443,7 +444,7 @@ class CompilerGLSL : public Compiler SmallVector &inherited_expressions); virtual void emit_subgroup_op(const Instruction &i); virtual std::string type_to_glsl(const SPIRType &type, uint32_t id = 0); - virtual std::string builtin_to_glsl(spv::BuiltIn builtin, spv::StorageClass storage); + virtual std::string builtin_to_glsl(BuiltIn builtin, StorageClass storage); virtual void emit_struct_member(const SPIRType &type, uint32_t member_type_id, uint32_t index, const std::string &qualifier = "", uint32_t base_offset = 0); virtual void emit_struct_padding_target(const SPIRType &type); @@ -455,7 +456,7 @@ class CompilerGLSL : public Compiler virtual std::string constant_expression_vector(const SPIRConstant &c, uint32_t vector); virtual void emit_fixup(); virtual std::string variable_decl(const SPIRType &type, const std::string &name, uint32_t id = 0); - virtual bool variable_decl_is_remapped_storage(const SPIRVariable &var, spv::StorageClass storage) const; + virtual bool variable_decl_is_remapped_storage(const SPIRVariable &var, StorageClass storage) const; virtual std::string to_func_call_arg(const SPIRFunction::Parameter &arg, uint32_t id); virtual void emit_workgroup_initialization(const SPIRVariable &var); @@ -500,7 +501,7 @@ class CompilerGLSL : public Compiler virtual std::string unpack_expression_type(std::string expr_str, const SPIRType &type, uint32_t physical_type_id, bool packed_type, bool row_major); - virtual bool builtin_translates_to_nonarray(spv::BuiltIn builtin) const; + virtual bool builtin_translates_to_nonarray(BuiltIn builtin) const; virtual bool is_user_type_structured(uint32_t id) const; @@ -671,16 +672,16 @@ class CompilerGLSL : public Compiler void emit_struct(SPIRType &type); void emit_resources(); - void emit_extension_workarounds(spv::ExecutionModel model); - void emit_subgroup_arithmetic_workaround(const std::string &func, spv::Op op, spv::GroupOperation group_op); + void emit_extension_workarounds(ExecutionModel model); + void emit_subgroup_arithmetic_workaround(const std::string &func, Op op, GroupOperation group_op); void emit_polyfills(uint32_t polyfills, bool relaxed); void emit_buffer_block_native(const SPIRVariable &var); void emit_buffer_reference_block(uint32_t type_id, bool forward_declaration); void emit_buffer_block_legacy(const SPIRVariable &var); void emit_buffer_block_flattened(const SPIRVariable &type); - void fixup_implicit_builtin_block_names(spv::ExecutionModel model); - void emit_declared_builtin_block(spv::StorageClass storage, spv::ExecutionModel model); - bool should_force_emit_builtin_block(spv::StorageClass storage); + void fixup_implicit_builtin_block_names(ExecutionModel model); + void emit_declared_builtin_block(StorageClass storage, ExecutionModel model); + bool should_force_emit_builtin_block(StorageClass storage); void emit_push_constant_block_vulkan(const SPIRVariable &var); void emit_push_constant_block_glsl(const SPIRVariable &var); void emit_interface_block(const SPIRVariable &type); @@ -773,12 +774,12 @@ class CompilerGLSL : public Compiler // Relevant for PtrAccessChain / BDA. virtual uint32_t get_physical_type_stride(const SPIRType &type) const; - spv::StorageClass get_expression_effective_storage_class(uint32_t ptr); + StorageClass get_expression_effective_storage_class(uint32_t ptr); virtual bool access_chain_needs_stage_io_builtin_translation(uint32_t base); virtual bool check_physical_type_cast(std::string &expr, const SPIRType *type, uint32_t physical_type); virtual bool prepare_access_chain_for_scalar_access(std::string &expr, const SPIRType &type, - spv::StorageClass storage, bool &is_packed); + StorageClass storage, bool &is_packed); std::string access_chain(uint32_t base, const uint32_t *indices, uint32_t count, const SPIRType &target_type, AccessChainMeta *meta = nullptr, bool ptr_chain = false); @@ -842,14 +843,14 @@ class CompilerGLSL : public Compiler std::string to_precision_qualifiers_glsl(uint32_t id); virtual const char *to_storage_qualifiers_glsl(const SPIRVariable &var); std::string flags_to_qualifiers_glsl(const SPIRType &type, uint32_t id, const Bitset &flags); - const char *format_to_glsl(spv::ImageFormat format); + const char *format_to_glsl(ImageFormat format); virtual std::string layout_for_member(const SPIRType &type, uint32_t index); virtual std::string to_interpolation_qualifiers(const Bitset &flags); std::string layout_for_variable(const SPIRVariable &variable); std::string to_combined_image_sampler(VariableID image_id, VariableID samp_id); virtual bool skip_argument(uint32_t id) const; virtual bool emit_array_copy(const char *expr, uint32_t lhs_id, uint32_t rhs_id, - spv::StorageClass lhs_storage, spv::StorageClass rhs_storage); + StorageClass lhs_storage, StorageClass rhs_storage); virtual void emit_block_hints(const SPIRBlock &block); virtual std::string to_initializer_expression(const SPIRVariable &var); virtual std::string to_zero_initialized_expression(uint32_t type_id); @@ -1024,7 +1025,7 @@ class CompilerGLSL : public Compiler bool type_is_empty(const SPIRType &type); - bool can_use_io_location(spv::StorageClass storage, bool block); + bool can_use_io_location(StorageClass storage, bool block); const Instruction *get_next_instruction_in_block(const Instruction &instr); static uint32_t mask_relevant_memory_semantics(uint32_t semantics); @@ -1039,7 +1040,7 @@ class CompilerGLSL : public Compiler // Builtins in GLSL are always specific signedness, but the SPIR-V can declare them // as either unsigned or signed. // Sometimes we will need to automatically perform casts on load and store to make this work. - virtual SPIRType::BaseType get_builtin_basetype(spv::BuiltIn builtin, SPIRType::BaseType default_type); + virtual SPIRType::BaseType get_builtin_basetype(BuiltIn builtin, SPIRType::BaseType default_type); virtual void cast_to_variable_store(uint32_t target_id, std::string &expr, const SPIRType &expr_type); virtual void cast_from_variable_load(uint32_t source_id, std::string &expr, const SPIRType &expr_type); void unroll_array_from_complex_load(uint32_t target_id, uint32_t source_id, std::string &expr); @@ -1068,7 +1069,7 @@ class CompilerGLSL : public Compiler static const char *vector_swizzle(int vecsize, int index); bool is_stage_output_location_masked(uint32_t location, uint32_t component) const; - bool is_stage_output_builtin_masked(spv::BuiltIn builtin) const; + bool is_stage_output_builtin_masked(BuiltIn builtin) const; bool is_stage_output_variable_masked(const SPIRVariable &var) const; bool is_stage_output_block_member_masked(const SPIRVariable &var, uint32_t index, bool strip_array) const; bool is_per_primitive_variable(const SPIRVariable &var) const; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.cpp index 0db81c4..7394a09 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.cpp @@ -27,7 +27,7 @@ #include #include -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; using namespace std; @@ -1139,7 +1139,7 @@ void CompilerHLSL::emit_interface_block_in_struct(const SPIRVariable &var, unord } } -std::string CompilerHLSL::builtin_to_glsl(spv::BuiltIn builtin, spv::StorageClass storage) +std::string CompilerHLSL::builtin_to_glsl(BuiltIn builtin, StorageClass storage) { switch (builtin) { @@ -3760,19 +3760,19 @@ void CompilerHLSL::emit_texture_op(const Instruction &i, bool sparse) uint32_t coord_components = 0; switch (imgtype.image.dim) { - case spv::Dim1D: + case Dim1D: coord_components = 1; break; - case spv::Dim2D: + case Dim2D: coord_components = 2; break; - case spv::Dim3D: + case Dim3D: coord_components = 3; break; - case spv::DimCube: + case DimCube: coord_components = 3; break; - case spv::DimBuffer: + case DimBuffer: coord_components = 1; break; default: @@ -3783,7 +3783,7 @@ void CompilerHLSL::emit_texture_op(const Instruction &i, bool sparse) if (dref) inherited_expressions.push_back(dref); - if (imgtype.image.arrayed) + if (imgtype.image.arrayed && op != OpImageQueryLod) coord_components++; uint32_t bias = 0; @@ -4001,7 +4001,7 @@ void CompilerHLSL::emit_texture_op(const Instruction &i, bool sparse) { if (dref) { - if (imgtype.image.dim != spv::Dim1D && imgtype.image.dim != spv::Dim2D) + if (imgtype.image.dim != Dim1D && imgtype.image.dim != Dim2D) { SPIRV_CROSS_THROW( "Depth comparison is only supported for 1D and 2D textures in HLSL shader model 2/3."); @@ -5436,7 +5436,7 @@ void CompilerHLSL::emit_access_chain(const Instruction &instruction) } } -void CompilerHLSL::emit_atomic(const uint32_t *ops, uint32_t length, spv::Op op) +void CompilerHLSL::emit_atomic(const uint32_t *ops, uint32_t length, Op op) { const char *atomic_op = nullptr; @@ -7113,8 +7113,8 @@ bool CompilerHLSL::is_hlsl_force_storage_buffer_as_uav(ID id) const return true; } - const uint32_t desc_set = get_decoration(id, spv::DecorationDescriptorSet); - const uint32_t binding = get_decoration(id, spv::DecorationBinding); + const uint32_t desc_set = get_decoration(id, DecorationDescriptorSet); + const uint32_t binding = get_decoration(id, DecorationBinding); return (force_uav_buffer_bindings.find({ desc_set, binding }) != force_uav_buffer_bindings.end()); } @@ -7134,6 +7134,7 @@ bool CompilerHLSL::is_user_type_structured(uint32_t id) const const std::string &user_type = get_decoration_string(id, DecorationUserTypeGOOGLE); return user_type.compare(0, 16, "structuredbuffer") == 0 || user_type.compare(0, 18, "rwstructuredbuffer") == 0 || + user_type.compare(0, 35, "globallycoherent rwstructuredbuffer") == 0 || user_type.compare(0, 33, "rasterizerorderedstructuredbuffer") == 0; } return false; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.hpp index 4303bb7..e4979db 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_hlsl.hpp @@ -29,6 +29,7 @@ namespace SPIRV_CROSS_NAMESPACE { +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; // Interface which remaps vertex inputs to a fixed semantic name to make linking easier. struct HLSLVertexAttributeRemap { @@ -87,7 +88,7 @@ using HLSLBindingFlags = uint32_t; // For deeper control of push constants, set_root_constant_layouts() can be used instead. struct HLSLResourceBinding { - spv::ExecutionModel stage = spv::ExecutionModelMax; + ExecutionModel stage = ExecutionModelMax; uint32_t desc_set = 0; uint32_t binding = 0; @@ -216,7 +217,7 @@ class CompilerHLSL : public CompilerGLSL // is_hlsl_resource_binding_used() will return true after calling ::compile() if // the set/binding combination was used by the HLSL code. void add_hlsl_resource_binding(const HLSLResourceBinding &resource); - bool is_hlsl_resource_binding_used(spv::ExecutionModel model, uint32_t set, uint32_t binding) const; + bool is_hlsl_resource_binding_used(ExecutionModel model, uint32_t set, uint32_t binding) const; // Controls which storage buffer bindings will be forced to be declared as UAVs. void set_hlsl_force_storage_buffer_as_uav(uint32_t desc_set, uint32_t binding); @@ -255,7 +256,7 @@ class CompilerHLSL : public CompilerGLSL void emit_specialization_constants_and_structs(); void emit_composite_constants(); void emit_fixup() override; - std::string builtin_to_glsl(spv::BuiltIn builtin, spv::StorageClass storage) override; + std::string builtin_to_glsl(BuiltIn builtin, StorageClass storage) override; std::string layout_for_member(const SPIRType &type, uint32_t index) override; std::string to_interpolation_qualifiers(const Bitset &flags) override; std::string bitcast_glsl_op(const SPIRType &result_type, const SPIRType &argument_type) override; @@ -281,7 +282,7 @@ class CompilerHLSL : public CompilerGLSL const SmallVector &composite_chain); std::string write_access_chain_value(uint32_t value, const SmallVector &composite_chain, bool enclose); void emit_store(const Instruction &instruction); - void emit_atomic(const uint32_t *ops, uint32_t length, spv::Op op); + void emit_atomic(const uint32_t *ops, uint32_t length, Op op); void emit_subgroup_op(const Instruction &i) override; void emit_block_hints(const SPIRBlock &block) override; @@ -294,7 +295,7 @@ class CompilerHLSL : public CompilerGLSL const char *to_storage_qualifiers_glsl(const SPIRVariable &var) override; void replace_illegal_names() override; - SPIRType::BaseType get_builtin_basetype(spv::BuiltIn builtin, SPIRType::BaseType default_type) override; + SPIRType::BaseType get_builtin_basetype(BuiltIn builtin, SPIRType::BaseType default_type) override; bool is_hlsl_force_storage_buffer_as_uav(ID id) const; @@ -379,7 +380,7 @@ class CompilerHLSL : public CompilerGLSL uint32_t type_to_consumed_locations(const SPIRType &type) const; - std::string to_semantic(uint32_t location, spv::ExecutionModel em, spv::StorageClass sc); + std::string to_semantic(uint32_t location, ExecutionModel em, StorageClass sc); uint32_t num_workgroups_builtin = 0; HLSLBindingFlags resource_binding_flags = 0; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_msl.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_msl.cpp index f604314..1c07b52 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_msl.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_msl.cpp @@ -28,7 +28,7 @@ #include #include -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; using namespace std; @@ -124,7 +124,7 @@ void CompilerMSL::add_msl_resource_binding(const MSLResourceBinding &binding) void CompilerMSL::add_dynamic_buffer(uint32_t desc_set, uint32_t binding, uint32_t index) { SetBindingPair pair = { desc_set, binding }; - buffers_requiring_dynamic_offset[pair] = { index, 0 }; + buffers_requiring_dynamic_offset[pair] = { index, 0, "" }; } void CompilerMSL::add_inline_uniform_block(uint32_t desc_set, uint32_t binding) @@ -164,7 +164,7 @@ bool CompilerMSL::is_msl_shader_output_used(uint32_t location) location_outputs_in_use_fallback.count(location) == 0; } -uint32_t CompilerMSL::get_automatic_builtin_input_location(spv::BuiltIn builtin) const +uint32_t CompilerMSL::get_automatic_builtin_input_location(BuiltIn builtin) const { auto itr = builtin_to_automatic_input_location.find(builtin); if (itr == builtin_to_automatic_input_location.end()) @@ -173,7 +173,7 @@ uint32_t CompilerMSL::get_automatic_builtin_input_location(spv::BuiltIn builtin) return itr->second; } -uint32_t CompilerMSL::get_automatic_builtin_output_location(spv::BuiltIn builtin) const +uint32_t CompilerMSL::get_automatic_builtin_output_location(BuiltIn builtin) const { auto itr = builtin_to_automatic_output_location.find(builtin); if (itr == builtin_to_automatic_output_location.end()) @@ -242,7 +242,7 @@ void CompilerMSL::set_fragment_output_components(uint32_t location, uint32_t com fragment_output_components[location] = components; } -bool CompilerMSL::builtin_translates_to_nonarray(spv::BuiltIn builtin) const +bool CompilerMSL::builtin_translates_to_nonarray(BuiltIn builtin) const { return (builtin == BuiltInSampleMask); } @@ -279,15 +279,15 @@ void CompilerMSL::build_implicit_builtins() bool force_frag_depth_passthrough = get_execution_model() == ExecutionModelFragment && !uses_explicit_early_fragment_test() && need_subpass_input && msl_options.enable_frag_depth_builtin && msl_options.input_attachment_is_ds_attachment; - bool need_point_size = + needs_point_size_output = msl_options.enable_point_size_builtin && msl_options.enable_point_size_default && - get_execution_model() == ExecutionModelVertex; + entry_point_is_vertex(); if (need_subpass_input || need_sample_pos || need_subgroup_mask || need_vertex_params || need_tesc_params || need_tese_params || need_multiview || need_dispatch_base || need_vertex_base_params || need_grid_params || needs_sample_id || needs_subgroup_invocation_id || needs_subgroup_size || needs_helper_invocation || has_additional_fixed_sample_mask() || need_local_invocation_index || need_workgroup_size || - force_frag_depth_passthrough || need_point_size || is_mesh_shader()) + force_frag_depth_passthrough || needs_point_size_output || is_mesh_shader()) { bool has_frag_coord = false; bool has_sample_id = false; @@ -315,7 +315,7 @@ void CompilerMSL::build_implicit_builtins() return; auto &type = this->get(var.basetype); - if (need_point_size && has_decoration(type.self, DecorationBlock)) + if (needs_point_size_output && has_decoration(type.self, DecorationBlock)) { const auto member_count = static_cast(type.member_types.size()); for (uint32_t i = 0; i < member_count; i++) @@ -894,7 +894,7 @@ void CompilerMSL::build_implicit_builtins() set(type_id, bool_type); SPIRType bool_type_ptr_in = bool_type; - bool_type_ptr_in.op = spv::OpTypePointer; + bool_type_ptr_in.op = OpTypePointer; bool_type_ptr_in.pointer = true; bool_type_ptr_in.pointer_depth++; bool_type_ptr_in.parent_type = type_id; @@ -998,7 +998,7 @@ void CompilerMSL::build_implicit_builtins() set(type_id, float_type); SPIRType float_type_ptr_in = float_type; - float_type_ptr_in.op = spv::OpTypePointer; + float_type_ptr_in.op = OpTypePointer; float_type_ptr_in.pointer = true; float_type_ptr_in.pointer_depth++; float_type_ptr_in.parent_type = type_id; @@ -1013,7 +1013,7 @@ void CompilerMSL::build_implicit_builtins() active_output_builtins.set(BuiltInFragDepth); } - if (!has_point_size && need_point_size) + if (!has_point_size && needs_point_size_output) { uint32_t offset = ir.increase_bound_by(3); uint32_t type_id = offset; @@ -1028,7 +1028,7 @@ void CompilerMSL::build_implicit_builtins() set(type_id, float_type); SPIRType float_type_ptr_in = float_type; - float_type_ptr_in.op = spv::OpTypePointer; + float_type_ptr_in.op = OpTypePointer; float_type_ptr_in.pointer = true; float_type_ptr_in.pointer_depth++; float_type_ptr_in.parent_type = type_id; @@ -1182,7 +1182,7 @@ void CompilerMSL::build_implicit_builtins() builtin_mesh_sizes_id = var_id; } - if (get_execution_model() == spv::ExecutionModelTaskEXT) + if (get_execution_model() == ExecutionModelTaskEXT) { uint32_t offset = ir.increase_bound_by(3); uint32_t type_id = offset; @@ -1194,7 +1194,7 @@ void CompilerMSL::build_implicit_builtins() set(type_id, mesh_grid_type); SPIRType mesh_grid_type_ptr = mesh_grid_type; - mesh_grid_type_ptr.op = spv::OpTypePointer; + mesh_grid_type_ptr.op = OpTypePointer; mesh_grid_type_ptr.pointer = true; mesh_grid_type_ptr.pointer_depth++; mesh_grid_type_ptr.parent_type = type_id; @@ -1211,7 +1211,7 @@ void CompilerMSL::build_implicit_builtins() // Checks if the specified builtin variable (e.g. gl_InstanceIndex) is marked as active. // If not, it marks it as active and forces a recompilation. // This might be used when the optimization of inactive builtins was too optimistic (e.g. when "spvOut" is emitted). -void CompilerMSL::ensure_builtin(spv::StorageClass storage, spv::BuiltIn builtin) +void CompilerMSL::ensure_builtin(StorageClass storage, BuiltIn builtin) { Bitset *active_builtins = nullptr; switch (storage) @@ -1494,19 +1494,22 @@ void CompilerMSL::emit_entry_point_declarations() // Emit dynamic buffers here. for (auto &dynamic_buffer : buffers_requiring_dynamic_offset) { - if (!dynamic_buffer.second.second) + if (!dynamic_buffer.second.var_id) { // Could happen if no buffer was used at requested binding point. continue; } - const auto &var = get(dynamic_buffer.second.second); + const auto &var = get(dynamic_buffer.second.var_id); uint32_t var_id = var.self; const auto &type = get_variable_data_type(var); + + add_local_variable_name(var.self); string name = to_name(var.self); + uint32_t desc_set = get_decoration(var.self, DecorationDescriptorSet); uint32_t arg_id = argument_buffer_ids[desc_set]; - uint32_t base_index = dynamic_buffer.second.first; + uint32_t base_index = dynamic_buffer.second.base_index; if (is_array(type)) { @@ -1524,7 +1527,7 @@ void CompilerMSL::emit_entry_point_declarations() { statement("(", get_argument_address_space(var), " ", type_to_glsl(type), "* ", to_restrict(var_id, false), ")((", get_argument_address_space(var), " char* ", - to_restrict(var_id, false), ")", to_name(arg_id), ".", ensure_valid_name(name, "m"), + to_restrict(var_id, false), ")", to_name(arg_id), ".", dynamic_buffer.second.mbr_name, "[", i, "]", " + ", to_name(dynamic_offsets_buffer_id), "[", base_index + i, "]),"); } @@ -1537,7 +1540,7 @@ void CompilerMSL::emit_entry_point_declarations() statement(get_argument_address_space(var), " auto& ", to_restrict(var_id, true), name, " = *(", get_argument_address_space(var), " ", type_to_glsl(type), "* ", to_restrict(var_id, false), ")((", get_argument_address_space(var), " char* ", to_restrict(var_id, false), ")", to_name(arg_id), ".", - ensure_valid_name(name, "m"), " + ", to_name(dynamic_offsets_buffer_id), "[", base_index, "]);"); + dynamic_buffer.second.mbr_name, " + ", to_name(dynamic_offsets_buffer_id), "[", base_index, "]);"); } } @@ -1547,6 +1550,8 @@ void CompilerMSL::emit_entry_point_declarations() const auto &var = *arg; const auto &type = get_variable_data_type(var); const auto &buffer_type = get_variable_element_type(var); + + // This has already been added as a resource name. const string name = to_name(var.self); if (is_var_runtime_size_array(var)) @@ -1557,10 +1562,24 @@ void CompilerMSL::emit_entry_point_declarations() } string resource_name; + if (descriptor_set_is_argument_buffer(get_decoration(var.self, DecorationDescriptorSet))) + { resource_name = ir.meta[var.self].decoration.qualified_alias; + } else - resource_name = name + "_"; + { + bool is_aliased = std::find_if(buffer_aliases_discrete.begin(), buffer_aliases_discrete.end(), + [&](uint32_t id) { return var.self == id; }) != buffer_aliases_discrete.end(); + + uint32_t desc_set = get_decoration(var.self, DecorationDescriptorSet); + uint32_t desc_binding = get_decoration(var.self, DecorationBinding); + + if (is_aliased) + resource_name = join("spvBufferAliasSet", desc_set, "Binding", desc_binding); + else + resource_name = join("spvDescriptorSet", desc_set, "Binding", desc_binding); + } switch (type.basetype) { @@ -1572,7 +1591,7 @@ void CompilerMSL::emit_entry_point_declarations() case SPIRType::SampledImage: statement("spvDescriptorArray<", type_to_glsl(buffer_type, var.self), "> ", name, " {", resource_name, "};"); // Unsupported with argument buffer for now. - statement("spvDescriptorArray ", name, "Smplr {", name, "Smplr_};"); + statement("spvDescriptorArray ", name, "Smplr {", resource_name, "Smplr};"); break; case SPIRType::Struct: statement("spvDescriptorArray<", get_argument_address_space(var), " ", type_to_glsl(buffer_type), "*> ", @@ -1604,8 +1623,14 @@ void CompilerMSL::emit_entry_point_declarations() for (auto &var_id : buffer_aliases_discrete) { const auto &var = get(var_id); + + // We already declare this alias in a different way. + if (is_var_runtime_size_array(var)) + continue; + const auto &type = get_variable_data_type(var); auto addr_space = get_argument_address_space(var); + // This resource name has already been added. auto name = to_name(var_id); uint32_t desc_set = get_decoration(var_id, DecorationDescriptorSet); @@ -1619,36 +1644,6 @@ void CompilerMSL::emit_entry_point_declarations() // Discrete descriptors are processed in entry point emission every compiler iteration. buffer_aliases_discrete.clear(); - for (auto &var_pair : buffer_aliases_argument) - { - uint32_t var_id = var_pair.first; - uint32_t alias_id = var_pair.second; - - const auto &var = get(var_id); - const auto &type = get_variable_data_type(var); - auto addr_space = get_argument_address_space(var); - - if (type.array.empty()) - { - statement(addr_space, " auto& ", to_restrict(var_id, true), to_name(var_id), " = (", addr_space, " ", - type_to_glsl(type), "&)", ir.meta[alias_id].decoration.qualified_alias, ";"); - } - else - { - const char *desc_addr_space = descriptor_address_space(var_id, var.storage, "thread"); - - // Esoteric type cast. Reference to array of pointers. - // Auto here defers to UBO or SSBO. The address space of the reference needs to refer to the - // address space of the argument buffer itself, which is usually constant, but can be const device for - // large argument buffers. - is_using_builtin_array = true; - statement(desc_addr_space, " auto& ", to_restrict(var_id, true), to_name(var_id), " = (", addr_space, " ", - type_to_glsl(type), "* ", desc_addr_space, " (&)", - type_to_array_glsl(type, var_id), ")", ir.meta[alias_id].decoration.qualified_alias, ";"); - is_using_builtin_array = false; - } - } - // Emit disabled fragment outputs. std::sort(disabled_frag_outputs.begin(), disabled_frag_outputs.end()); for (uint32_t var_id : disabled_frag_outputs) @@ -1882,8 +1877,7 @@ void CompilerMSL::preprocess_op_codes() is_rasterization_disabled = true; // FIXME: This currently does not consider BDA side effects, so we cannot deduce const device for BDA. - if (preproc.uses_buffer_write || preproc.uses_image_write) - has_descriptor_side_effects = true; + has_descriptor_side_effects_buffer = preproc.uses_buffer_write; // Tessellation control shaders are run as compute functions in Metal, and so // must capture their output to a buffer. @@ -2710,7 +2704,7 @@ uint32_t CompilerMSL::build_msl_interpolant_type(uint32_t type_id, bool is_noper return new_type_id; } -bool CompilerMSL::add_component_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, +bool CompilerMSL::add_component_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRVariable &var, const SPIRType &type, InterfaceBlockMeta &meta) @@ -3770,7 +3764,7 @@ void CompilerMSL::add_tess_level_input(const std::string &base_ref, const std::s } } -bool CompilerMSL::variable_storage_requires_stage_io(spv::StorageClass storage) const +bool CompilerMSL::variable_storage_requires_stage_io(StorageClass storage) const { if (storage == StorageClassOutput) return !capture_output_to_buffer; @@ -4879,7 +4873,7 @@ uint32_t CompilerMSL::ensure_correct_builtin_type(uint32_t type_id, BuiltIn buil uint32_t ptr_type_id = next_id++; auto &ptr_type = set(ptr_type_id, base_type); - ptr_type.op = spv::OpTypePointer; + ptr_type.op = OpTypePointer; ptr_type.pointer = true; ptr_type.pointer_depth++; ptr_type.storage = type.storage; @@ -5879,8 +5873,8 @@ void CompilerMSL::emit_custom_templates() begin_scope(); statement("return elements[pos];"); end_scope(); - if (get_execution_model() == spv::ExecutionModelMeshEXT || - get_execution_model() == spv::ExecutionModelTaskEXT) + if (get_execution_model() == ExecutionModelMeshEXT || + get_execution_model() == ExecutionModelTaskEXT) { statement(""); statement("object_data T& operator [] (size_t pos) object_data"); @@ -6987,6 +6981,40 @@ void CompilerMSL::emit_custom_functions() statement("return (vec)simd_shuffle((vec)value, lane);"); end_scope(); statement(""); + + if (msl_options.supports_msl_version(2, 2)) + { + // Despite being a template in MSL, it does not support 64-bit shuffles. + // Unsure if there's a cleaner way to statically unroll based on vec<> template, but this will do. + statement("template<>"); + statement("inline ulong spvSubgroupShuffle(ulong value, ushort lane)"); + begin_scope(); + statement("return as_type(spvSubgroupShuffle(as_type(value), lane));"); + end_scope(); + statement(""); + statement("template<>"); + statement("inline ulong2 spvSubgroupShuffle(ulong2 value, ushort lane)"); + begin_scope(); + statement("return ulong2(spvSubgroupShuffle(value.x, lane), spvSubgroupShuffle(value.y, lane));"); + end_scope(); + statement(""); + statement("inline ulong3 spvSubgroupShuffle(ulong3 value, ushort lane)"); + begin_scope(); + statement("return ulong3(spvSubgroupShuffle(value.xy, lane), spvSubgroupShuffle(value.z, lane));"); + end_scope(); + statement(""); + statement("inline ulong4 spvSubgroupShuffle(ulong4 value, ushort lane)"); + begin_scope(); + statement("return ulong4(spvSubgroupShuffle(value.xy, lane), spvSubgroupShuffle(value.zw, lane));"); + end_scope(); + statement(""); + statement("template"); + statement("inline vec spvSubgroupShuffle(vec value, ushort lane)"); + begin_scope(); + statement("return vec(spvSubgroupShuffle(vec(value), lane));"); + end_scope(); + statement(""); + } break; case SPVFuncImplSubgroupShuffleXor: @@ -8036,18 +8064,14 @@ void CompilerMSL::emit_custom_functions() case SPVFuncImplVariableSizedDescriptor: statement("template"); - statement("struct spvBufferDescriptor"); + statement("struct spvBufferDescriptor;"); + statement(""); + statement("template"); + statement("struct spvBufferDescriptor"); begin_scope(); - statement("T value;"); + statement("device T* value;"); statement("int length;"); - statement("const device T& operator -> () const device"); - begin_scope(); - statement("return value;"); - end_scope(); - statement("const device T& operator * () const device"); - begin_scope(); - statement("return value;"); - end_scope(); + statement("int padding;"); end_scope_decl(); statement(""); break; @@ -8058,13 +8082,9 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("struct spvDescriptorArray"); begin_scope(); - statement("spvDescriptorArray(const device spvDescriptor* ptr) : ptr(&ptr->value)"); - begin_scope(); - end_scope(); - statement("const device T& operator [] (size_t i) const"); - begin_scope(); - statement("return ptr[i];"); - end_scope(); + statement("spvDescriptorArray(const device spvDescriptor* ptr_) : ptr(&ptr_->value) {}"); + statement("spvDescriptorArray(const device void *ptr_) : spvDescriptorArray(static_cast*>(ptr_)) {}"); + statement("const device T& operator [] (size_t i) const { return ptr[i]; }"); statement("const device T* ptr;"); end_scope_decl(); statement(""); @@ -8082,17 +8102,10 @@ void CompilerMSL::emit_custom_functions() statement("template"); statement("struct spvDescriptorArray"); begin_scope(); - statement("spvDescriptorArray(const device spvBufferDescriptor* ptr) : ptr(ptr)"); - begin_scope(); - end_scope(); - statement("const device T* operator [] (size_t i) const"); - begin_scope(); - statement("return ptr[i].value;"); - end_scope(); - statement("const int length(int i) const"); - begin_scope(); - statement("return ptr[i].length;"); - end_scope(); + statement("spvDescriptorArray(const device spvBufferDescriptor* ptr_) : ptr(ptr_) {}"); + statement("spvDescriptorArray(const device void *ptr_) : spvDescriptorArray(static_cast*>(ptr_)) {}"); + statement("device T* operator [] (size_t i) const { return ptr[i].value; }"); + statement("int length(int i) const { return ptr[i].length; }"); statement("const device spvBufferDescriptor* ptr;"); end_scope_decl(); statement(""); @@ -8296,8 +8309,9 @@ void CompilerMSL::emit_resources() else if (execution.flags.get(ExecutionModeOutputPoints)) topology = "topology::point"; + const char *per_vertex = mesh_out_per_vertex ? "spvPerVertex" : "float4"; const char *per_primitive = mesh_out_per_primitive ? "spvPerPrimitive" : "void"; - statement("using spvMesh_t = mesh<", "spvPerVertex, ", per_primitive, ", ", execution.output_vertices, ", ", + statement("using spvMesh_t = mesh<", per_vertex, ", ", per_primitive, ", ", execution.output_vertices, ", ", execution.output_primitives, ", ", topology, ">;"); statement(""); } @@ -9230,7 +9244,7 @@ bool CompilerMSL::is_out_of_bounds_tessellation_level(uint32_t id_lhs) } bool CompilerMSL::prepare_access_chain_for_scalar_access(std::string &expr, const SPIRType &type, - spv::StorageClass storage, bool &is_packed) + StorageClass storage, bool &is_packed) { // If there is any risk of writes happening with the access chain in question, // and there is a risk of concurrent write access to other components, @@ -9585,6 +9599,10 @@ void CompilerMSL::emit_instruction(const Instruction &instruction) MSL_BOP(-); break; + case OpFmaKHR: + MSL_TFOP(fma); + break; + // Atomics case OpAtomicExchange: { @@ -10902,7 +10920,7 @@ bool CompilerMSL::emit_array_copy(const char *expr, uint32_t lhs_id, uint32_t rh return true; } -uint32_t CompilerMSL::get_physical_tess_level_array_size(spv::BuiltIn builtin) const +uint32_t CompilerMSL::get_physical_tess_level_array_size(BuiltIn builtin) const { if (is_tessellating_triangles()) return builtin == BuiltInTessLevelInner ? 1 : 3; @@ -11073,7 +11091,7 @@ void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, } exp += join(image_expr, ".", op, "("); - if (ptr_type.storage == StorageClassImage && res_type->image.arrayed) + if (ptr_type.storage == StorageClassImage && (res_type->image.arrayed || res_type->image.dim == DimCube)) { switch (res_type->image.dim) { @@ -11082,13 +11100,21 @@ void CompilerMSL::emit_atomic_func_op(uint32_t result_type, uint32_t result_id, exp += join("uint2(", coord, ".x, 0), ", coord, ".y"); else exp += join(coord, ".x, ", coord, ".y"); - break; case Dim2D: exp += join(coord, ".xy, ", coord, ".z"); break; + case DimCube: + if (!msl_options.supports_msl_version(4, 0)) + SPIRV_CROSS_THROW("Cannot do atomics on Cube textures before 4.0."); + + if (res_type->image.arrayed) + exp += join(coord, ".xy, ", coord, ".z % 6u, ", coord, ".z / 6u"); + else + exp += join(coord, ".xy, ", coord, ".z"); + break; default: - SPIRV_CROSS_THROW("Cannot do atomics on Cube textures."); + SPIRV_CROSS_THROW("Cannot do atomics on unknown dimension."); } } else if (ptr_type.storage == StorageClassImage && res_type->image.dim == Dim1D && msl_options.texture_1D_as_2D) @@ -13052,7 +13078,6 @@ string CompilerMSL::to_swizzle_expression(uint32_t id) string CompilerMSL::to_buffer_size_expression(uint32_t id) { auto expr = to_expression(id); - auto index = expr.find_first_of('['); // This is quite crude, but we need to translate the reference name (*spvDescriptorSetN.name) to // the pointer expression spvDescriptorSetN.name to make a reasonable expression here. @@ -13060,17 +13085,26 @@ string CompilerMSL::to_buffer_size_expression(uint32_t id) if (expr.size() >= 3 && expr[0] == '(' && expr[1] == '*') expr = address_of_expression(expr); + auto index = expr.find_first_of('['); + string buffer_expr, array_expr; + + if (index != string::npos) + { + buffer_expr = expr.substr(0, index); + array_expr = expr.substr(index); + } + // If a buffer is part of an argument buffer translate this to a legal identifier. for (auto &c : expr) if (c == '.') c = '_'; if (index == string::npos) + { return expr + buffer_size_name_suffix; + } else { - auto buffer_expr = expr.substr(0, index); - auto array_expr = expr.substr(index); if (auto var = maybe_get_backing_variable(id)) { if (is_var_runtime_size_array(*var)) @@ -13083,6 +13117,11 @@ string CompilerMSL::to_buffer_size_expression(uint32_t id) return buffer_expr + ".length(" + array_expr.substr(1, last_pos - 1) + ")"; } } + + for (auto &c : buffer_expr) + if (c == '.') + c = '_'; + return buffer_expr + buffer_size_name_suffix + array_expr; } } @@ -13137,17 +13176,20 @@ string CompilerMSL::convert_row_major_matrix(string exp_str, const SPIRType &exp // Called automatically at the end of the entry point function void CompilerMSL::emit_fixup() { - if (is_vertex_like_shader() && stage_out_var_id && !qual_pos_var_name.empty() && !capture_output_to_buffer) + if (stage_out_var_id && !capture_output_to_buffer) { - if (msl_options.enable_point_size_default && !writes_to_point_size) + if (needs_point_size_output && !writes_to_point_size) statement(builtin_to_glsl(BuiltInPointSize, StorageClassOutput), " = ", format_float(msl_options.default_point_size), ";"); - if (options.vertex.fixup_clipspace) - statement(qual_pos_var_name, ".z = (", qual_pos_var_name, ".z + ", qual_pos_var_name, - ".w) * 0.5; // Adjust clip-space for Metal"); + if (is_vertex_like_shader() && !qual_pos_var_name.empty()) + { + if (options.vertex.fixup_clipspace) + statement(qual_pos_var_name, ".z = (", qual_pos_var_name, ".z + ", qual_pos_var_name, + ".w) * 0.5; // Adjust clip-space for Metal"); - if (options.vertex.flip_vert_y) - statement(qual_pos_var_name, ".y = -(", qual_pos_var_name, ".y);", " // Invert Y-axis for Metal"); + if (options.vertex.flip_vert_y) + statement(qual_pos_var_name, ".y = -(", qual_pos_var_name, ".y);", " // Invert Y-axis for Metal"); + } } } @@ -13801,7 +13843,7 @@ uint32_t CompilerMSL::get_member_location(uint32_t type_id, uint32_t index, uint return k_unknown_location; } -uint32_t CompilerMSL::get_or_allocate_builtin_input_member_location(spv::BuiltIn builtin, +uint32_t CompilerMSL::get_or_allocate_builtin_input_member_location(BuiltIn builtin, uint32_t type_id, uint32_t index, uint32_t *comp) { @@ -13846,7 +13888,7 @@ uint32_t CompilerMSL::get_or_allocate_builtin_input_member_location(spv::BuiltIn return loc; } -uint32_t CompilerMSL::get_or_allocate_builtin_output_member_location(spv::BuiltIn builtin, +uint32_t CompilerMSL::get_or_allocate_builtin_output_member_location(BuiltIn builtin, uint32_t type_id, uint32_t index, uint32_t *comp) { @@ -13889,6 +13931,13 @@ uint32_t CompilerMSL::get_or_allocate_builtin_output_member_location(spv::BuiltI return loc; } +bool CompilerMSL::entry_point_is_vertex() const +{ + // MSL vertex entrypoint is used for non-tessellation vertex stage or tessellation evaluation stage. + return (get_execution_model() == ExecutionModelVertex && !msl_options.vertex_for_tessellation) || + get_execution_model() == ExecutionModelTessellationEvaluation; +} + bool CompilerMSL::entry_point_returns_stage_output() const { if (get_execution_model() == ExecutionModelVertex && msl_options.vertex_for_tessellation) @@ -13899,12 +13948,7 @@ bool CompilerMSL::entry_point_returns_stage_output() const bool CompilerMSL::entry_point_requires_const_device_buffers() const { - // For fragment, we don't really need it, but it might help avoid pessimization - // if the compiler deduces it needs to use late-Z for whatever reason. - return (get_execution_model() == ExecutionModelFragment && !has_descriptor_side_effects) || - (entry_point_returns_stage_output() && - (get_execution_model() == ExecutionModelVertex || - get_execution_model() == ExecutionModelTessellationEvaluation)); + return !has_descriptor_side_effects_buffer && !capture_output_to_buffer; } // Returns the type declaration for a function, including the @@ -13980,7 +14024,7 @@ bool CompilerMSL::is_tese_shader() const bool CompilerMSL::is_mesh_shader() const { - return get_execution_model() == spv::ExecutionModelMeshEXT; + return get_execution_model() == ExecutionModelMeshEXT; } bool CompilerMSL::uses_explicit_early_fragment_test() @@ -14040,24 +14084,19 @@ string CompilerMSL::get_type_address_space(const SPIRType &type, uint32_t id, bo break; case StorageClassStorageBuffer: + case StorageClassPhysicalStorageBuffer: { // When dealing with descriptor aliasing, it becomes very problematic to make use of // readonly qualifiers. // If rasterization is not disabled in vertex/tese, Metal does not allow side effects and refuses to compile "device", // even if there are no writes. Just force const device. - if (entry_point_requires_const_device_buffers()) + if (entry_point_requires_const_device_buffers() && type.basetype != SPIRType::AtomicCounter) addr_space = "const device"; else addr_space = "device"; break; } - case StorageClassPhysicalStorageBuffer: - // We cannot fully trust NonWritable coming from glslang due to a bug in buffer_reference handling. - // There isn't much gain in emitting const in C++ languages anyway. - addr_space = "device"; - break; - case StorageClassUniform: case StorageClassUniformConstant: case StorageClassPushConstant: @@ -14066,7 +14105,7 @@ string CompilerMSL::get_type_address_space(const SPIRType &type, uint32_t id, bo bool ssbo = has_decoration(type.self, DecorationBufferBlock); if (ssbo) { - if (entry_point_requires_const_device_buffers()) + if (entry_point_requires_const_device_buffers() && type.basetype != SPIRType::AtomicCounter) addr_space = "const device"; else addr_space = "device"; @@ -14145,6 +14184,9 @@ string CompilerMSL::get_type_address_space(const SPIRType &type, uint32_t id, bo break; } + if (!addr_space && var && is_var_runtime_size_array(*var)) + addr_space = "device"; + if (!addr_space) { // No address space for plain values. @@ -14688,17 +14730,21 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) // For fully mutable-style aliasing, we need argument buffers where we can exploit the fact // that descriptors are all 8 bytes. SPIRVariable *discrete_descriptor_alias = nullptr; - if (var.storage == StorageClassUniform || var.storage == StorageClassStorageBuffer) + + const auto resource_is_aliasing_candidate = [this](const SPIRVariable &var_) { + return is_var_runtime_size_array(var_) || var_.storage == StorageClassUniform || + var_.storage == StorageClassStorageBuffer; + }; + + if (resource_is_aliasing_candidate(var)) { for (auto &resource : resources) { - if (get_decoration(resource.var->self, DecorationDescriptorSet) == + if (resource_is_aliasing_candidate(*resource.var) && + get_decoration(resource.var->self, DecorationDescriptorSet) == get_decoration(var_id, DecorationDescriptorSet) && get_decoration(resource.var->self, DecorationBinding) == - get_decoration(var_id, DecorationBinding) && - resource.basetype == SPIRType::Struct && type.basetype == SPIRType::Struct && - (resource.var->storage == StorageClassUniform || - resource.var->storage == StorageClassStorageBuffer)) + get_decoration(var_id, DecorationBinding)) { discrete_descriptor_alias = resource.var; // Self-reference marks that we should declare the resource, @@ -14707,6 +14753,13 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) // Need to promote interlocked usage so that the primary declaration is correct. if (interlocked_resources.count(var_id)) interlocked_resources.insert(resource.var->self); + + // Aliasing with unroll just gets too messy to deal with. I sure hope this never comes up ... + if ((is_array(get_variable_data_type(*resource.var)) && !is_var_runtime_size_array(*resource.var)) || + (is_array(get_variable_data_type(var)) && !is_var_runtime_size_array(var))) + { + SPIRV_CROSS_THROW("Attempting to alias same binding with a descriptor array which is not implemented through argument buffers. This is unsupported."); + } break; } } @@ -14777,6 +14830,57 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) uint32_t var_id = var.self; + if (is_var_runtime_size_array(var)) + { + add_spv_func_and_recompile(SPVFuncImplVariableDescriptorArray); + const bool ssbo = has_decoration(type.self, DecorationBufferBlock); + if ((var.storage == StorageClassStorageBuffer || ssbo) && msl_options.runtime_array_rich_descriptor) + add_spv_func_and_recompile(SPVFuncImplVariableSizedDescriptor); + else + add_spv_func_and_recompile(SPVFuncImplVariableDescriptor); + } + + if (r.discrete_descriptor_alias) + { + if (r.var == r.discrete_descriptor_alias) + { + auto primary_name = join("spvBufferAliasSet", + get_decoration(var_id, DecorationDescriptorSet), + "Binding", + get_decoration(var_id, DecorationBinding)); + + // Declare the primary alias as void* + if (!ep_args.empty()) + ep_args += ", "; + ep_args += get_argument_address_space(var) + " void* " + primary_name; + ep_args += " [[buffer(" + convert_to_string(r.index) + ")"; + if (interlocked_resources.count(var_id)) + ep_args += ", raster_order_group(0)"; + ep_args += "]]"; + } + + buffer_aliases_discrete.push_back(r.var->self); + continue; + } + + uint32_t desc_set = get_decoration(var_id, DecorationDescriptorSet); + uint32_t desc_binding = get_decoration(var_id, DecorationBinding); + + if (is_var_runtime_size_array(var)) + { + // This must be implemented as an argument buffer. Cast to intended descriptor array type on-demand. + if (!ep_args.empty()) + ep_args += ", "; + ep_args += join("device const void* spvDescriptorSet", desc_set, "Binding", desc_binding); + if (type.basetype == SPIRType::SampledImage && r.basetype == SPIRType::Sampler) + ep_args += "Smplr"; + ep_args += " [[buffer(" + convert_to_string(r.index) + ")"; + if (interlocked_resources.count(var_id)) + ep_args += ", raster_order_group(0)"; + ep_args += "]]"; + continue; + } + switch (r.basetype) { case SPIRType::Struct: @@ -14785,73 +14889,24 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) if (m.members.size() == 0) break; - if (r.discrete_descriptor_alias) - { - if (r.var == r.discrete_descriptor_alias) - { - auto primary_name = join("spvBufferAliasSet", - get_decoration(var_id, DecorationDescriptorSet), - "Binding", - get_decoration(var_id, DecorationBinding)); - - // Declare the primary alias as void* - if (!ep_args.empty()) - ep_args += ", "; - ep_args += get_argument_address_space(var) + " void* " + primary_name; - ep_args += " [[buffer(" + convert_to_string(r.index) + ")"; - if (interlocked_resources.count(var_id)) - ep_args += ", raster_order_group(0)"; - ep_args += "]]"; - } - - buffer_aliases_discrete.push_back(r.var->self); - } - else if (!type.array.empty()) + if (!type.array.empty()) { if (type.array.size() > 1) SPIRV_CROSS_THROW("Arrays of arrays of buffers are not supported."); is_using_builtin_array = true; - if (is_var_runtime_size_array(var)) + uint32_t array_size = get_resource_array_size(type, var_id); + for (uint32_t i = 0; i < array_size; ++i) { - add_spv_func_and_recompile(SPVFuncImplVariableDescriptorArray); if (!ep_args.empty()) ep_args += ", "; - const bool ssbo = has_decoration(type.self, DecorationBufferBlock); - if ((var.storage == spv::StorageClassStorageBuffer || ssbo) && - msl_options.runtime_array_rich_descriptor) - { - add_spv_func_and_recompile(SPVFuncImplVariableSizedDescriptor); - ep_args += "const device spvBufferDescriptor<" + get_argument_address_space(var) + " " + - type_to_glsl(type) + "*>* "; - } - else - { - add_spv_func_and_recompile(SPVFuncImplVariableDescriptor); - ep_args += "const device spvDescriptor<" + get_argument_address_space(var) + " " + - type_to_glsl(type) + "*>* "; - } - ep_args += to_restrict(var_id, true) + r.name + "_"; - ep_args += " [[buffer(" + convert_to_string(r.index) + ")"; + ep_args += get_argument_address_space(var) + " " + type_to_glsl(type) + "* " + + to_restrict(var_id, true) + r.name + "_" + convert_to_string(i); + ep_args += " [[buffer(" + convert_to_string(r.index + i) + ")"; if (interlocked_resources.count(var_id)) ep_args += ", raster_order_group(0)"; ep_args += "]]"; } - else - { - uint32_t array_size = get_resource_array_size(type, var_id); - for (uint32_t i = 0; i < array_size; ++i) - { - if (!ep_args.empty()) - ep_args += ", "; - ep_args += get_argument_address_space(var) + " " + type_to_glsl(type) + "* " + - to_restrict(var_id, true) + r.name + "_" + convert_to_string(i); - ep_args += " [[buffer(" + convert_to_string(r.index + i) + ")"; - if (interlocked_resources.count(var_id)) - ep_args += ", raster_order_group(0)"; - ep_args += "]]"; - } - } is_using_builtin_array = false; } else @@ -14876,10 +14931,7 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) if (!ep_args.empty()) ep_args += ", "; ep_args += sampler_type(type, var_id, false) + " " + r.name; - if (is_var_runtime_size_array(var)) - ep_args += "_ [[buffer(" + convert_to_string(r.index) + ")]]"; - else - ep_args += " [[sampler(" + convert_to_string(r.index) + ")]]"; + ep_args += " [[sampler(" + convert_to_string(r.index) + ")]]"; break; case SPIRType::Image: { @@ -14894,10 +14946,7 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) if (r.plane > 0) ep_args += join(plane_name_suffix, r.plane); - if (is_var_runtime_size_array(var)) - ep_args += "_ [[buffer(" + convert_to_string(r.index) + ")"; - else - ep_args += " [[texture(" + convert_to_string(r.index) + ")"; + ep_args += " [[texture(" + convert_to_string(r.index) + ")"; if (interlocked_resources.count(var_id)) ep_args += ", raster_order_group(0)"; @@ -14927,23 +14976,10 @@ void CompilerMSL::entry_point_args_discrete_descriptors(string &ep_args) } case SPIRType::AccelerationStructure: { - if (is_var_runtime_size_array(var)) - { - add_spv_func_and_recompile(SPVFuncImplVariableDescriptor); - const auto &parent_type = get(type.parent_type); - if (!ep_args.empty()) - ep_args += ", "; - ep_args += "const device spvDescriptor<" + type_to_glsl(parent_type) + ">* " + - to_restrict(var_id, true) + r.name + "_"; - ep_args += " [[buffer(" + convert_to_string(r.index) + ")]]"; - } - else - { - if (!ep_args.empty()) - ep_args += ", "; - ep_args += type_to_glsl(type, var_id) + " " + r.name; - ep_args += " [[buffer(" + convert_to_string(r.index) + ")]]"; - } + if (!ep_args.empty()) + ep_args += ", "; + ep_args += type_to_glsl(type, var_id) + " " + r.name; + ep_args += " [[buffer(" + convert_to_string(r.index) + ")]]"; break; } default: @@ -15778,10 +15814,18 @@ string CompilerMSL::argument_decl(const SPIRFunction::Parameter &arg) bool constref = !arg.alias_global_variable && !passed_by_value && is_pointer(var_type) && arg.write_count == 0; // Framebuffer fetch is plain value, const looks out of place, but it is not wrong. // readonly coming from glslang is not reliable in all cases. - if (type_is_msl_framebuffer_fetch(type) || type_storage == StorageClassPhysicalStorageBuffer) + // For UBOs, readonly is implied, and for SSBOs we use global check. + if (type_is_msl_framebuffer_fetch(type) || + type_storage == StorageClassStorageBuffer || + type_storage == StorageClassUniform || + type_storage == StorageClassPhysicalStorageBuffer) + { constref = false; + } else if (type_storage == StorageClassUniformConstant) + { constref = true; + } bool type_is_image = type.basetype == SPIRType::Image || type.basetype == SPIRType::SampledImage || type.basetype == SPIRType::Sampler; @@ -16345,6 +16389,12 @@ const std::unordered_set &CompilerMSL::get_illegal_func_names() "M_2_SQRTPI", "M_SQRT2", "M_SQRT1_2", + "int8", + "uint8", + "int16", + "uint16", + "float8", + "float16", }; return illegal_func_names; @@ -16738,7 +16788,7 @@ string CompilerMSL::constant_op_expression(const SPIRConstantOp &cop) } } -bool CompilerMSL::variable_decl_is_remapped_storage(const SPIRVariable &variable, spv::StorageClass storage) const +bool CompilerMSL::variable_decl_is_remapped_storage(const SPIRVariable &variable, StorageClass storage) const { if (variable.storage == storage) return true; @@ -18386,7 +18436,7 @@ void CompilerMSL::analyze_workgroup_variables() }); } -bool CompilerMSL::SampledImageScanner::handle(spv::Op opcode, const uint32_t *args, uint32_t length) +bool CompilerMSL::SampledImageScanner::handle(Op opcode, const uint32_t *args, uint32_t length) { switch (opcode) { @@ -18398,12 +18448,12 @@ bool CompilerMSL::SampledImageScanner::handle(spv::Op opcode, const uint32_t *ar return false; uint32_t result_type = args[0]; - auto &type = compiler.get(result_type); + auto &type = get(result_type); if ((type.basetype != SPIRType::Image && type.basetype != SPIRType::SampledImage) || type.image.sampled != 1) return true; uint32_t id = args[1]; - compiler.set(id, "", result_type, true); + set(id, "", result_type, true); break; } case OpImageSampleExplicitLod: @@ -18417,9 +18467,9 @@ bool CompilerMSL::SampledImageScanner::handle(spv::Op opcode, const uint32_t *ar case OpImageFetch: case OpImageGather: case OpImageDrefGather: - compiler.has_sampled_images = - compiler.has_sampled_images || compiler.is_sampled_image_type(compiler.expression_type(args[2])); - compiler.needs_swizzle_buffer_def = compiler.needs_swizzle_buffer_def || compiler.has_sampled_images; + self.has_sampled_images = + self.has_sampled_images || self.is_sampled_image_type(self.expression_type(args[2])); + self.needs_swizzle_buffer_def = self.needs_swizzle_buffer_def || self.has_sampled_images; break; default: break; @@ -18449,7 +18499,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui SPVFuncImpl spv_func = get_spv_func_impl(opcode, args, length); if (spv_func != SPVFuncImplNone) { - compiler.spv_function_implementations.insert(spv_func); + self.spv_function_implementations.insert(spv_func); suppress_missing_prototypes = true; } @@ -18467,9 +18517,9 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui // Emulate texture2D atomic operations case OpImageTexelPointer: { - if (!compiler.msl_options.supports_msl_version(3, 1)) + if (!self.msl_options.supports_msl_version(3, 1)) { - auto *var = compiler.maybe_get_backing_variable(args[2]); + auto *var = self.maybe_get_backing_variable(args[2]); image_pointers_emulated[args[1]] = var ? var->self : ID(0); } break; @@ -18505,7 +18555,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui if (it != image_pointers_emulated.end()) { uses_image_write = true; - compiler.atomic_image_vars_emulated.insert(it->second); + self.atomic_image_vars_emulated.insert(it->second); } else check_resource_write(args[2]); @@ -18518,7 +18568,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui auto it = image_pointers_emulated.find(args[0]); if (it != image_pointers_emulated.end()) { - compiler.atomic_image_vars_emulated.insert(it->second); + self.atomic_image_vars_emulated.insert(it->second); uses_image_write = true; } else @@ -18532,7 +18582,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui auto it = image_pointers_emulated.find(args[2]); if (it != image_pointers_emulated.end()) { - compiler.atomic_image_vars_emulated.insert(it->second); + self.atomic_image_vars_emulated.insert(it->second); } break; } @@ -18557,7 +18607,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui // Add the correct invocation ID for calculating clustered rotate case. if (length > 5) { - if (static_cast(compiler.evaluate_constant_u32(args[2])) == ScopeSubgroup) + if (static_cast(self.evaluate_constant_u32(args[2])) == ScopeSubgroup) needs_subgroup_invocation_id = true; else needs_local_invocation_index = true; @@ -18581,18 +18631,18 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui case OpGroupNonUniformLogicalOr: case OpGroupNonUniformLogicalXor: if ((compiler.get_execution_model() != ExecutionModelFragment || - compiler.msl_options.supports_msl_version(2, 2)) && + self.msl_options.supports_msl_version(2, 2)) && args[3] == GroupOperationClusteredReduce) needs_subgroup_invocation_id = true; break; case OpArrayLength: { - auto *var = compiler.maybe_get_backing_variable(args[2]); + auto *var = self.maybe_get_backing_variable(args[2]); if (var != nullptr) { - if (!compiler.is_var_runtime_size_array(*var)) - compiler.buffers_requiring_array_length.insert(var->self); + if (!self.is_var_runtime_size_array(*var)) + self.buffers_requiring_array_length.insert(var->self); } break; } @@ -18606,16 +18656,16 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui uint32_t id = args[1]; uint32_t ptr = args[2]; - compiler.set(id, "", result_type, true); - compiler.register_read(id, ptr, true); - compiler.ir.ids[id].set_allow_type_rewrite(); + set(id, "", result_type, true); + self.register_read(id, ptr, true); + self.ir.ids[id].set_allow_type_rewrite(); break; } case OpExtInst: { uint32_t extension_set = args[2]; - SPIRExtension::Extension ext = compiler.get(extension_set).ext; + SPIRExtension::Extension ext = get(extension_set).ext; if (ext == SPIRExtension::GLSL) { auto op_450 = static_cast(args[3]); @@ -18625,15 +18675,15 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui case GLSLstd450InterpolateAtSample: case GLSLstd450InterpolateAtOffset: { - if (!compiler.msl_options.supports_msl_version(2, 3)) + if (!self.msl_options.supports_msl_version(2, 3)) SPIRV_CROSS_THROW("Pull-model interpolation requires MSL 2.3."); // Fragment varyings used with pull-model interpolation need special handling, // due to the way pull-model interpolation works in Metal. - auto *var = compiler.maybe_get_backing_variable(args[4]); + auto *var = self.maybe_get_backing_variable(args[4]); if (var) { - compiler.pull_model_inputs.insert(var->self); - auto &var_type = compiler.get_variable_element_type(*var); + self.pull_model_inputs.insert(var->self); + auto &var_type = self.get_variable_element_type(*var); // In addition, if this variable has a 'Sample' decoration, we need the sample ID // in order to do default interpolation. if (compiler.has_decoration(var->self, DecorationSample)) @@ -18662,14 +18712,14 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui else if (ext == SPIRExtension::NonSemanticDebugPrintf) { // Operation 1 is printf. - if (args[3] == 1 && !compiler.msl_options.supports_msl_version(3, 2)) + if (args[3] == 1 && !self.msl_options.supports_msl_version(3, 2)) SPIRV_CROSS_THROW("Debug printf requires MSL 3.2."); } break; } case OpIsHelperInvocationEXT: - if (compiler.needs_manual_helper_invocation_updates()) + if (self.needs_manual_helper_invocation_updates()) needs_helper_invocation = true; break; @@ -18677,20 +18727,27 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui break; } - // If it has one, keep track of the instruction's result type, mapped by ID - uint32_t result_type, result_id; - if (compiler.instruction_to_result_type(result_type, result_id, opcode, args, length)) - result_types[result_id] = result_type; - return true; } // If the variable is a Uniform or StorageBuffer, mark that a resource has been written to. void CompilerMSL::OpCodePreprocessor::check_resource_write(uint32_t var_id) { - auto *p_var = compiler.maybe_get_backing_variable(var_id); - StorageClass sc = p_var ? p_var->storage : StorageClassMax; - if (sc == StorageClassUniform || sc == StorageClassStorageBuffer) + auto *type = get_expression_result_type(var_id); + auto sc = StorageClassMax; + + if (type) + { + sc = type->storage; + } + else + { + auto *var = self.maybe_get_backing_variable(var_id); + if (var) + sc = var->storage; + } + + if (sc == StorageClassUniform || sc == StorageClassStorageBuffer || sc == StorageClassPhysicalStorageBuffer) uses_buffer_write = true; } @@ -18707,7 +18764,7 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o case OpFAdd: case OpFSub: - if (compiler.msl_options.invariant_float_math || compiler.has_legacy_nocontract(args[0], args[1])) + if (self.msl_options.invariant_float_math || self.has_legacy_nocontract(args[0], args[1])) return opcode == OpFAdd ? SPVFuncImplFAdd : SPVFuncImplFSub; break; @@ -18716,7 +18773,7 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o case OpMatrixTimesVector: case OpVectorTimesMatrix: case OpMatrixTimesMatrix: - if (compiler.msl_options.invariant_float_math || compiler.has_legacy_nocontract(args[0], args[1])) + if (self.msl_options.invariant_float_math || self.has_legacy_nocontract(args[0], args[1])) return SPVFuncImplFMul; break; @@ -18751,8 +18808,8 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o auto it = image_pointers_emulated.find(args[opcode == OpAtomicStore ? 0 : 2]); if (it != image_pointers_emulated.end()) { - uint32_t tid = compiler.get(it->second).basetype; - if (tid && compiler.get(tid).image.dim == Dim2D) + uint32_t tid = get(it->second).basetype; + if (tid && get(tid).image.dim == Dim2D) return SPVFuncImplImage2DAtomicCoords; } break; @@ -18764,7 +18821,7 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o { // Retrieve the image type, and if it's a Buffer, emit a texel coordinate function uint32_t tid = result_types[args[opcode == OpImageWrite ? 0 : 2]]; - if (tid && compiler.get(tid).image.dim == DimBuffer && !compiler.msl_options.texture_buffer_native) + if (tid && get(tid).image.dim == DimBuffer && !self.msl_options.texture_buffer_native) return SPVFuncImplTexelBufferCoords; break; } @@ -18772,7 +18829,7 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o case OpExtInst: { uint32_t extension_set = args[2]; - if (compiler.get(extension_set).ext == SPIRExtension::GLSL) + if (get(extension_set).ext == SPIRExtension::GLSL) { auto op_450 = static_cast(args[3]); switch (op_450) @@ -18791,28 +18848,28 @@ CompilerMSL::SPVFuncImpl CompilerMSL::OpCodePreprocessor::get_spv_func_impl(Op o return SPVFuncImplSSign; case GLSLstd450Reflect: { - auto &type = compiler.get(args[0]); + auto &type = get(args[0]); if (type.vecsize == 1) return SPVFuncImplReflectScalar; break; } case GLSLstd450Refract: { - auto &type = compiler.get(args[0]); + auto &type = get(args[0]); if (type.vecsize == 1) return SPVFuncImplRefractScalar; break; } case GLSLstd450FaceForward: { - auto &type = compiler.get(args[0]); + auto &type = get(args[0]); if (type.vecsize == 1) return SPVFuncImplFaceForwardScalar; break; } case GLSLstd450MatrixInverse: { - auto &mat_type = compiler.get(args[0]); + auto &mat_type = get(args[0]); switch (mat_type.columns) { case 2: @@ -19606,7 +19663,7 @@ void CompilerMSL::analyze_argument_buffers() auto &ptr_type = set(ptr_type_id, OpTypePointer); ptr_type = buffer_type; - ptr_type.op = spv::OpTypePointer; + ptr_type.op = OpTypePointer; ptr_type.pointer = true; ptr_type.pointer_depth++; ptr_type.parent_type = type_id; @@ -19708,6 +19765,8 @@ void CompilerMSL::analyze_argument_buffers() next_arg_buff_index += resource.plane_count * count; } + // Here we're locking down the member name early before compilation loops, so ensure that + // the resource name is not reused, even through a reset(). string mbr_name = ensure_valid_name(resource.name, "m"); if (resource.plane > 0) mbr_name += join(plane_name_suffix, resource.plane); @@ -19765,7 +19824,9 @@ void CompilerMSL::analyze_argument_buffers() { // Don't set the qualified name here; we'll define a variable holding the corrected buffer address later. buffer_type.member_types.push_back(var.basetype); - buffers_requiring_dynamic_offset[pair].second = var.self; + auto &dynamic_buffer = buffers_requiring_dynamic_offset[pair]; + dynamic_buffer.var_id = var.self; + dynamic_buffer.mbr_name = mbr_name; } else if (inline_uniform_blocks.count(pair)) { @@ -19880,7 +19941,7 @@ void CompilerMSL::add_argument_buffer_padding_buffer_type(SPIRType &struct_type, uint32_t ptr_type_id = buff_type_id + 1; auto &ptr_type = set(ptr_type_id, OpTypePointer); ptr_type = buff_type; - ptr_type.op = spv::OpTypePointer; + ptr_type.op = OpTypePointer; ptr_type.pointer = true; ptr_type.pointer_depth++; ptr_type.parent_type = buff_type_id; diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_msl.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_msl.hpp index cd767ea..75d3aa7 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_msl.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_msl.hpp @@ -33,6 +33,7 @@ namespace SPIRV_CROSS_NAMESPACE { +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; // Indicates the format of a shader interface variable. Currently limited to specifying // if the input is an 8-bit unsigned integer, 16-bit unsigned integer, or @@ -78,7 +79,7 @@ struct MSLShaderInterfaceVariable uint32_t location = 0; uint32_t component = 0; MSLShaderVariableFormat format = MSL_SHADER_VARIABLE_FORMAT_OTHER; - spv::BuiltIn builtin = spv::BuiltInMax; + BuiltIn builtin = BuiltInMax; uint32_t vecsize = 0; MSLShaderVariableRate rate = MSL_SHADER_VARIABLE_RATE_PER_VERTEX; }; @@ -104,7 +105,7 @@ struct MSLShaderInterfaceVariable // become a [[buffer(N)]], [[texture(N)]] or [[sampler(N)]] depending on the resource types used. struct MSLResourceBinding { - spv::ExecutionModel stage = spv::ExecutionModelMax; + ExecutionModel stage = ExecutionModelMax; SPIRType::BaseType basetype = SPIRType::Unknown; uint32_t desc_set = 0; uint32_t binding = 0; @@ -591,9 +592,9 @@ class CompilerMSL : public CompilerGLSL // rasterization if vertex shader requires rasterization to be disabled. bool get_is_rasterization_disabled() const { - return is_rasterization_disabled && (get_entry_point().model == spv::ExecutionModelVertex || - get_entry_point().model == spv::ExecutionModelTessellationControl || - get_entry_point().model == spv::ExecutionModelTessellationEvaluation); + return is_rasterization_disabled && (get_entry_point().model == ExecutionModelVertex || + get_entry_point().model == ExecutionModelTessellationControl || + get_entry_point().model == ExecutionModelTessellationEvaluation); } // Provide feedback to calling API to allow it to pass an auxiliary @@ -706,20 +707,20 @@ class CompilerMSL : public CompilerGLSL // This is typical for tessellation builtin inputs such as tess levels, gl_Position, etc. // This returns k_unknown_location if the location was explicitly assigned with // add_msl_shader_input or the builtin is not used, otherwise returns N in [[attribute(N)]]. - uint32_t get_automatic_builtin_input_location(spv::BuiltIn builtin) const; + uint32_t get_automatic_builtin_input_location(BuiltIn builtin) const; // If not using add_msl_shader_output, it's possible // that certain builtin attributes need to be automatically assigned locations. // This is typical for tessellation builtin outputs such as tess levels, gl_Position, etc. // This returns k_unknown_location if the location were explicitly assigned with // add_msl_shader_output or the builtin were not used, otherwise returns N in [[attribute(N)]]. - uint32_t get_automatic_builtin_output_location(spv::BuiltIn builtin) const; + uint32_t get_automatic_builtin_output_location(BuiltIn builtin) const; // NOTE: Only resources which are remapped using add_msl_resource_binding will be reported here. // Constexpr samplers are always assumed to be emitted. // No specific MSLResourceBinding remapping is required for constexpr samplers as long as they are remapped // by remap_constexpr_sampler(_by_binding). - bool is_msl_resource_binding_used(spv::ExecutionModel model, uint32_t set, uint32_t binding) const; + bool is_msl_resource_binding_used(ExecutionModel model, uint32_t set, uint32_t binding) const; // This must only be called after a successful call to CompilerMSL::compile(). // For a variable resource ID obtained through reflection API, report the automatically assigned resource index. @@ -931,14 +932,14 @@ class CompilerMSL : public CompilerGLSL std::string type_to_array_glsl(const SPIRType &type, uint32_t variable_id) override; std::string constant_op_expression(const SPIRConstantOp &cop) override; - bool variable_decl_is_remapped_storage(const SPIRVariable &variable, spv::StorageClass storage) const override; + bool variable_decl_is_remapped_storage(const SPIRVariable &variable, StorageClass storage) const override; // GCC workaround of lambdas calling protected functions (for older GCC versions) std::string variable_decl(const SPIRType &type, const std::string &name, uint32_t id = 0) override; std::string image_type_glsl(const SPIRType &type, uint32_t id, bool member) override; std::string sampler_type(const SPIRType &type, uint32_t id, bool member); - std::string builtin_to_glsl(spv::BuiltIn builtin, spv::StorageClass storage) override; + std::string builtin_to_glsl(BuiltIn builtin, StorageClass storage) override; std::string to_func_call_arg(const SPIRFunction::Parameter &arg, uint32_t id) override; std::string to_name(uint32_t id, bool allow_alias = true) const override; std::string to_function_name(const TextureFunctionNameArguments &args) override; @@ -950,7 +951,7 @@ class CompilerMSL : public CompilerGLSL bool is_packed, bool row_major) override; // Returns true for BuiltInSampleMask because gl_SampleMask[] is an array in SPIR-V, but [[sample_mask]] is a scalar in Metal. - bool builtin_translates_to_nonarray(spv::BuiltIn builtin) const override; + bool builtin_translates_to_nonarray(BuiltIn builtin) const override; std::string bitcast_glsl_op(const SPIRType &result_type, const SPIRType &argument_type) override; bool emit_complex_bitcast(uint32_t result_id, uint32_t id, uint32_t op0) override; @@ -990,8 +991,8 @@ class CompilerMSL : public CompilerGLSL void extract_global_variables_from_function(uint32_t func_id, std::set &added_arg_ids, std::unordered_set &global_var_ids, std::unordered_set &processed_func_ids); - uint32_t add_interface_block(spv::StorageClass storage, bool patch = false); - uint32_t add_interface_block_pointer(uint32_t ib_var_id, spv::StorageClass storage); + uint32_t add_interface_block(StorageClass storage, bool patch = false); + uint32_t add_interface_block_pointer(uint32_t ib_var_id, StorageClass storage); uint32_t add_meshlet_block(bool per_primitive); struct InterfaceBlockMeta @@ -1012,23 +1013,23 @@ class CompilerMSL : public CompilerGLSL std::string to_tesc_invocation_id(); void emit_local_masked_variable(const SPIRVariable &masked_var, bool strip_array); - void add_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, SPIRType &ib_type, + void add_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var, InterfaceBlockMeta &meta); - void add_composite_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, + void add_composite_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var, InterfaceBlockMeta &meta); - void add_plain_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, + void add_plain_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var, InterfaceBlockMeta &meta); - bool add_component_variable_to_interface_block(spv::StorageClass storage, const std::string &ib_var_ref, + bool add_component_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRVariable &var, const SPIRType &type, InterfaceBlockMeta &meta); - void add_plain_member_variable_to_interface_block(spv::StorageClass storage, + void add_plain_member_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var, SPIRType &var_type, uint32_t mbr_idx, InterfaceBlockMeta &meta, const std::string &mbr_name_qual, const std::string &var_chain_qual, uint32_t &location, uint32_t &var_mbr_idx); - void add_composite_member_variable_to_interface_block(spv::StorageClass storage, + void add_composite_member_variable_to_interface_block(StorageClass storage, const std::string &ib_var_ref, SPIRType &ib_type, SPIRVariable &var, SPIRType &var_type, uint32_t mbr_idx, InterfaceBlockMeta &meta, @@ -1040,11 +1041,11 @@ class CompilerMSL : public CompilerGLSL void add_tess_level_input(const std::string &base_ref, const std::string &mbr_name, SPIRVariable &var); void ensure_struct_members_valid_vecsizes(SPIRType &struct_type, uint32_t &location); - void fix_up_interface_member_indices(spv::StorageClass storage, uint32_t ib_type_id); + void fix_up_interface_member_indices(StorageClass storage, uint32_t ib_type_id); void mark_location_as_used_by_shader(uint32_t location, const SPIRType &type, - spv::StorageClass storage, bool fallback = false); - uint32_t ensure_correct_builtin_type(uint32_t type_id, spv::BuiltIn builtin); + StorageClass storage, bool fallback = false); + uint32_t ensure_correct_builtin_type(uint32_t type_id, BuiltIn builtin); uint32_t ensure_correct_input_type(uint32_t type_id, uint32_t location, uint32_t component, uint32_t num_components, bool strip_array); @@ -1059,6 +1060,7 @@ class CompilerMSL : public CompilerGLSL void fix_up_shader_inputs_outputs(); + bool entry_point_is_vertex() const; bool entry_point_returns_stage_output() const; bool entry_point_requires_const_device_buffers() const; std::string func_type_decl(SPIRType &type); @@ -1074,23 +1076,23 @@ class CompilerMSL : public CompilerGLSL std::string to_buffer_size_expression(uint32_t id); bool is_sample_rate() const; bool is_intersection_query() const; - bool is_direct_input_builtin(spv::BuiltIn builtin); - std::string builtin_qualifier(spv::BuiltIn builtin); - std::string builtin_type_decl(spv::BuiltIn builtin, uint32_t id = 0); - std::string built_in_func_arg(spv::BuiltIn builtin, bool prefix_comma); + bool is_direct_input_builtin(BuiltIn builtin); + std::string builtin_qualifier(BuiltIn builtin); + std::string builtin_type_decl(BuiltIn builtin, uint32_t id = 0); + std::string built_in_func_arg(BuiltIn builtin, bool prefix_comma); std::string member_attribute_qualifier(const SPIRType &type, uint32_t index); std::string member_location_attribute_qualifier(const SPIRType &type, uint32_t index); std::string argument_decl(const SPIRFunction::Parameter &arg); - const char *descriptor_address_space(uint32_t id, spv::StorageClass storage, const char *plain_address_space) const; + const char *descriptor_address_space(uint32_t id, StorageClass storage, const char *plain_address_space) const; std::string round_fp_tex_coords(std::string tex_coords, bool coord_is_fp); uint32_t get_metal_resource_index(SPIRVariable &var, SPIRType::BaseType basetype, uint32_t plane = 0); uint32_t get_member_location(uint32_t type_id, uint32_t index, uint32_t *comp = nullptr) const; - uint32_t get_or_allocate_builtin_input_member_location(spv::BuiltIn builtin, + uint32_t get_or_allocate_builtin_input_member_location(BuiltIn builtin, uint32_t type_id, uint32_t index, uint32_t *comp = nullptr); - uint32_t get_or_allocate_builtin_output_member_location(spv::BuiltIn builtin, + uint32_t get_or_allocate_builtin_output_member_location(BuiltIn builtin, uint32_t type_id, uint32_t index, uint32_t *comp = nullptr); - uint32_t get_physical_tess_level_array_size(spv::BuiltIn builtin) const; + uint32_t get_physical_tess_level_array_size(BuiltIn builtin) const; uint32_t get_physical_type_stride(const SPIRType &type) const override; @@ -1136,7 +1138,7 @@ class CompilerMSL : public CompilerGLSL std::string get_tess_factor_struct_name(); SPIRType &get_uint_type(); uint32_t get_uint_type_id(); - void emit_atomic_func_op(uint32_t result_type, uint32_t result_id, const char *op, spv::Op opcode, + void emit_atomic_func_op(uint32_t result_type, uint32_t result_id, const char *op, Op opcode, uint32_t mem_order_1, uint32_t mem_order_2, bool has_mem_order_2, uint32_t op0, uint32_t op1 = 0, bool op1_is_pointer = false, bool op1_is_literal = false, uint32_t op2 = 0); const char *get_memory_order(uint32_t spv_mem_sem); @@ -1144,7 +1146,7 @@ class CompilerMSL : public CompilerGLSL void add_typedef_line(const std::string &line); void emit_barrier(uint32_t id_exe_scope, uint32_t id_mem_scope, uint32_t id_mem_sem); bool emit_array_copy(const char *expr, uint32_t lhs_id, uint32_t rhs_id, - spv::StorageClass lhs_storage, spv::StorageClass rhs_storage) override; + StorageClass lhs_storage, StorageClass rhs_storage) override; void build_implicit_builtins(); uint32_t build_constant_uint_array_pointer(); void emit_entry_point_declarations() override; @@ -1194,7 +1196,7 @@ class CompilerMSL : public CompilerGLSL void analyze_workgroup_variables(); bool access_chain_needs_stage_io_builtin_translation(uint32_t base) override; - bool prepare_access_chain_for_scalar_access(std::string &expr, const SPIRType &type, spv::StorageClass storage, + bool prepare_access_chain_for_scalar_access(std::string &expr, const SPIRType &type, StorageClass storage, bool &is_packed) override; void fix_up_interpolant_access_chain(const uint32_t *ops, uint32_t length); bool check_physical_type_cast(std::string &expr, const SPIRType *type, uint32_t physical_type) override; @@ -1203,9 +1205,9 @@ class CompilerMSL : public CompilerGLSL bool emit_tessellation_io_load(uint32_t result_type, uint32_t id, uint32_t ptr); bool is_out_of_bounds_tessellation_level(uint32_t id_lhs); - void ensure_builtin(spv::StorageClass storage, spv::BuiltIn builtin); + void ensure_builtin(StorageClass storage, BuiltIn builtin); - void mark_implicit_builtin(spv::StorageClass storage, spv::BuiltIn builtin, uint32_t id); + void mark_implicit_builtin(StorageClass storage, BuiltIn builtin, uint32_t id); std::string convert_to_f32(const std::string &expr, uint32_t components); @@ -1266,7 +1268,7 @@ class CompilerMSL : public CompilerGLSL bool using_builtin_array() const; bool is_rasterization_disabled = false; - bool has_descriptor_side_effects = false; + bool has_descriptor_side_effects_buffer = false; bool capture_output_to_buffer = false; bool needs_swizzle_buffer_def = false; bool used_swizzle_buffer = false; @@ -1277,6 +1279,7 @@ class CompilerMSL : public CompilerGLSL bool needs_sample_id = false; bool needs_helper_invocation = false; bool needs_workgroup_zero_init = false; + bool needs_point_size_output = false; bool writes_to_depth = false; bool writes_to_point_size = false; std::string qual_pos_var_name; @@ -1295,7 +1298,7 @@ class CompilerMSL : public CompilerGLSL std::string patch_output_buffer_var_name = "spvPatchOut"; std::string tess_factor_buffer_var_name = "spvTessLevel"; std::string index_buffer_var_name = "spvIndices"; - spv::Op previous_instruction_opcode = spv::OpNop; + Op previous_instruction_opcode = OpNop; // Must be ordered since declaration is in a specific order. std::map constexpr_samplers_by_id; @@ -1303,7 +1306,6 @@ class CompilerMSL : public CompilerGLSL const MSLConstexprSampler *find_constexpr_sampler(uint32_t id) const; std::unordered_set buffers_requiring_array_length; - SmallVector> buffer_aliases_argument; SmallVector buffer_aliases_discrete; std::unordered_set atomic_image_vars_emulated; // Emulate texture2D atomic operations std::unordered_set pull_model_inputs; @@ -1312,7 +1314,13 @@ class CompilerMSL : public CompilerGLSL SmallVector entry_point_bindings; // Must be ordered since array is in a specific order. - std::map> buffers_requiring_dynamic_offset; + struct DynamicBuffer + { + uint32_t base_index; + uint32_t var_id; + std::string mbr_name; + }; + std::map buffers_requiring_dynamic_offset; SmallVector disabled_frag_outputs; @@ -1349,7 +1357,7 @@ class CompilerMSL : public CompilerGLSL bool type_is_msl_framebuffer_fetch(const SPIRType &type) const; bool is_supported_argument_buffer_type(const SPIRType &type) const; - bool variable_storage_requires_stage_io(spv::StorageClass storage) const; + bool variable_storage_requires_stage_io(StorageClass storage) const; bool needs_manual_helper_invocation_updates() const { @@ -1357,7 +1365,7 @@ class CompilerMSL : public CompilerGLSL } bool needs_frag_discard_checks() const { - return get_execution_model() == spv::ExecutionModelFragment && msl_options.supports_msl_version(2, 3) && + return get_execution_model() == ExecutionModelFragment && msl_options.supports_msl_version(2, 3) && msl_options.check_discarded_frag_stores && frag_shader_needs_discard_checks; } @@ -1367,17 +1375,17 @@ class CompilerMSL : public CompilerGLSL // OpcodeHandler that handles several MSL preprocessing operations. struct OpCodePreprocessor : OpcodeHandler { - OpCodePreprocessor(CompilerMSL &compiler_) - : compiler(compiler_) + explicit OpCodePreprocessor(CompilerMSL &compiler_) + : OpcodeHandler(compiler_), self(compiler_) { + enable_result_types = true; } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t length) override; - CompilerMSL::SPVFuncImpl get_spv_func_impl(spv::Op opcode, const uint32_t *args, uint32_t length); + bool handle(Op opcode, const uint32_t *args, uint32_t length) override; + CompilerMSL::SPVFuncImpl get_spv_func_impl(Op opcode, const uint32_t *args, uint32_t length); void check_resource_write(uint32_t var_id); - CompilerMSL &compiler; - std::unordered_map result_types; + CompilerMSL &self; std::unordered_map image_pointers_emulated; // Emulate texture2D atomic operations bool suppress_missing_prototypes = false; bool uses_atomics = false; @@ -1394,14 +1402,13 @@ class CompilerMSL : public CompilerGLSL // OpcodeHandler that scans for uses of sampled images struct SampledImageScanner : OpcodeHandler { - SampledImageScanner(CompilerMSL &compiler_) - : compiler(compiler_) + explicit SampledImageScanner(CompilerMSL &compiler_) + : OpcodeHandler(compiler_), self(compiler_) { } - bool handle(spv::Op opcode, const uint32_t *args, uint32_t) override; - - CompilerMSL &compiler; + CompilerMSL &self; + bool handle(Op opcode, const uint32_t *args, uint32_t) override; }; // Sorts the members of a SPIRType and associated Meta info based on a settable sorting diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_parser.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_parser.cpp index f3ea7e2..6343129 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_parser.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_parser.cpp @@ -25,7 +25,7 @@ #include using namespace std; -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; namespace SPIRV_CROSS_NAMESPACE { @@ -594,7 +594,7 @@ void Parser::parse(const Instruction &instruction) { if (length > 2) { - if (ops[2] == spv::FPEncodingBFloat16KHR) + if (ops[2] == FPEncodingBFloat16KHR) type.basetype = SPIRType::BFloat16; else SPIRV_CROSS_THROW("Unrecognized encoding for OpTypeFloat 16."); @@ -606,9 +606,9 @@ void Parser::parse(const Instruction &instruction) { if (length < 2) SPIRV_CROSS_THROW("Missing encoding for OpTypeFloat 8."); - else if (ops[2] == spv::FPEncodingFloat8E4M3EXT) + else if (ops[2] == FPEncodingFloat8E4M3EXT) type.basetype = SPIRType::FloatE4M3; - else if (ops[2] == spv::FPEncodingFloat8E5M2EXT) + else if (ops[2] == FPEncodingFloat8E5M2EXT) type.basetype = SPIRType::FloatE5M2; else SPIRV_CROSS_THROW("Invalid encoding for OpTypeFloat 8."); @@ -944,7 +944,7 @@ void Parser::parse(const Instruction &instruction) uint32_t id = ops[1]; // Instead of a temporary, create a new function-wide temporary with this ID instead. - auto &var = set(id, result_type, spv::StorageClassFunction); + auto &var = set(id, result_type, StorageClassFunction); var.phi_variable = true; current_function->add_local_variable(id); diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.cpp b/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.cpp index ab5a91f..3807613 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.cpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.cpp @@ -25,7 +25,7 @@ #include "spirv_glsl.hpp" #include -using namespace spv; +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; using namespace SPIRV_CROSS_NAMESPACE; using namespace std; @@ -449,7 +449,7 @@ void CompilerReflection::emit_type_member_qualifiers(const SPIRType &type, uint3 } } -string CompilerReflection::execution_model_to_str(spv::ExecutionModel model) +string CompilerReflection::execution_model_to_str(ExecutionModel model) { switch (model) { @@ -510,9 +510,9 @@ void CompilerReflection::emit_entry_points() json_stream->begin_json_object(); json_stream->emit_json_key_value("name", e.name); json_stream->emit_json_key_value("mode", execution_model_to_str(e.execution_model)); - if (e.execution_model == ExecutionModelGLCompute || e.execution_model == spv::ExecutionModelMeshEXT || - e.execution_model == spv::ExecutionModelMeshNV || e.execution_model == spv::ExecutionModelTaskEXT || - e.execution_model == spv::ExecutionModelTaskNV) + if (e.execution_model == ExecutionModelGLCompute || e.execution_model == ExecutionModelMeshEXT || + e.execution_model == ExecutionModelMeshNV || e.execution_model == ExecutionModelTaskEXT || + e.execution_model == ExecutionModelTaskNV) { const auto &spv_entry = get_entry_point(e.name, e.execution_model); diff --git a/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.hpp b/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.hpp index a129ba5..492a951 100644 --- a/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.hpp +++ b/libs/bgfx/3rdparty/spirv-cross/spirv_reflect.hpp @@ -34,6 +34,7 @@ class Stream; namespace SPIRV_CROSS_NAMESPACE { +using namespace SPIRV_CROSS_SPV_HEADER_NAMESPACE; class CompilerReflection : public CompilerGLSL { using Parent = CompilerGLSL; @@ -67,7 +68,7 @@ class CompilerReflection : public CompilerGLSL std::string compile() override; private: - static std::string execution_model_to_str(spv::ExecutionModel model); + static std::string execution_model_to_str(ExecutionModel model); void emit_entry_points(); void emit_types(); diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/TOSA.001000.1.h b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/TOSA.001000.1.h index 3da2969..619024c 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/TOSA.001000.1.h +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/TOSA.001000.1.h @@ -9,7 +9,7 @@ extern "C" { #endif enum { - TOSAVersion = 1000000, + TOSAVersion = 1000001, TOSAVersion_BitWidthPadding = 0x7fffffff }; enum { diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.debuginfo.grammar.json b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.debuginfo.grammar.json index d723d61..b73874d 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.debuginfo.grammar.json +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.debuginfo.grammar.json @@ -432,35 +432,35 @@ "enumerants" : [ { "enumerant" : "Unspecified", - "value" : "0" + "value" : 0 }, { "enumerant" : "Address", - "value" : "1" + "value" : 1 }, { "enumerant" : "Boolean", - "value" : "2" + "value" : 2 }, { "enumerant" : "Float", - "value" : "4" + "value" : 4 }, { "enumerant" : "Signed", - "value" : "5" + "value" : 5 }, { "enumerant" : "SignedChar", - "value" : "6" + "value" : 6 }, { "enumerant" : "Unsigned", - "value" : "7" + "value" : 7 }, { "enumerant" : "UnsignedChar", - "value" : "8" + "value" : 8 } ] }, @@ -470,15 +470,15 @@ "enumerants" : [ { "enumerant" : "Class", - "value" : "0" + "value" : 0 }, { "enumerant" : "Structure", - "value" : "1" + "value" : 1 }, { "enumerant" : "Union", - "value" : "2" + "value" : 2 } ] }, @@ -488,15 +488,15 @@ "enumerants" : [ { "enumerant" : "ConstType", - "value" : "0" + "value" : 0 }, { "enumerant" : "VolatileType", - "value" : "1" + "value" : 1 }, { "enumerant" : "RestrictType", - "value" : "2" + "value" : 2 } ] }, @@ -506,26 +506,26 @@ "enumerants" : [ { "enumerant" : "Deref", - "value" : "0" + "value" : 0 }, { "enumerant" : "Plus", - "value" : "1" + "value" : 1 }, { "enumerant" : "Minus", - "value" : "2" + "value" : 2 }, { "enumerant" : "PlusUconst", - "value" : "3", + "value" : 3, "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "BitPiece", - "value" : "4", + "value" : 4, "parameters" : [ { "kind" : "LiteralInteger" }, { "kind" : "LiteralInteger" } @@ -533,19 +533,19 @@ }, { "enumerant" : "Swap", - "value" : "5" + "value" : 5 }, { "enumerant" : "Xderef", - "value" : "6" + "value" : 6 }, { "enumerant" : "StackValue", - "value" : "7" + "value" : 7 }, { "enumerant" : "Constu", - "value" : "8", + "value" : 8, "parameters" : [ { "kind" : "LiteralInteger" } ] diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json index effbdd3..305f171 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json @@ -547,35 +547,35 @@ "enumerants" : [ { "enumerant" : "Unspecified", - "value" : "0" + "value" : 0 }, { "enumerant" : "Address", - "value" : "1" + "value" : 1 }, { "enumerant" : "Boolean", - "value" : "2" + "value" : 2 }, { "enumerant" : "Float", - "value" : "3" + "value" : 3 }, { "enumerant" : "Signed", - "value" : "4" + "value" : 4 }, { "enumerant" : "SignedChar", - "value" : "5" + "value" : 5 }, { "enumerant" : "Unsigned", - "value" : "6" + "value" : 6 }, { "enumerant" : "UnsignedChar", - "value" : "7" + "value" : 7 } ] }, @@ -585,15 +585,15 @@ "enumerants" : [ { "enumerant" : "Class", - "value" : "0" + "value" : 0 }, { "enumerant" : "Structure", - "value" : "1" + "value" : 1 }, { "enumerant" : "Union", - "value" : "2" + "value" : 2 } ] }, @@ -603,19 +603,19 @@ "enumerants" : [ { "enumerant" : "ConstType", - "value" : "0" + "value" : 0 }, { "enumerant" : "VolatileType", - "value" : "1" + "value" : 1 }, { "enumerant" : "RestrictType", - "value" : "2" + "value" : 2 }, { "enumerant" : "AtomicType", - "value" : "3" + "value" : 3 } ] }, @@ -625,26 +625,26 @@ "enumerants" : [ { "enumerant" : "Deref", - "value" : "0" + "value" : 0 }, { "enumerant" : "Plus", - "value" : "1" + "value" : 1 }, { "enumerant" : "Minus", - "value" : "2" + "value" : 2 }, { "enumerant" : "PlusUconst", - "value" : "3", + "value" : 3, "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "BitPiece", - "value" : "4", + "value" : 4, "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } @@ -652,26 +652,26 @@ }, { "enumerant" : "Swap", - "value" : "5" + "value" : 5 }, { "enumerant" : "Xderef", - "value" : "6" + "value" : 6 }, { "enumerant" : "StackValue", - "value" : "7" + "value" : 7 }, { "enumerant" : "Constu", - "value" : "8", + "value" : 8, "parameters" : [ { "kind" : "IdRef" } ] }, { "enumerant" : "Fragment", - "value" : "9", + "value" : 9, "parameters" : [ { "kind" : "IdRef" }, { "kind" : "IdRef" } @@ -685,11 +685,11 @@ "enumerants" : [ { "enumerant" : "ImportedModule", - "value" : "0" + "value" : 0 }, { "enumerant" : "ImportedDeclaration", - "value" : "1" + "value" : 1 } ] } diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json index 6d4d6e3..598d0f6 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json @@ -485,35 +485,35 @@ "enumerants" : [ { "enumerant" : "Unspecified", - "value" : "0" + "value" : 0 }, { "enumerant" : "Address", - "value" : "1" + "value" : 1 }, { "enumerant" : "Boolean", - "value" : "2" + "value" : 2 }, { "enumerant" : "Float", - "value" : "3" + "value" : 3 }, { "enumerant" : "Signed", - "value" : "4" + "value" : 4 }, { "enumerant" : "SignedChar", - "value" : "5" + "value" : 5 }, { "enumerant" : "Unsigned", - "value" : "6" + "value" : 6 }, { "enumerant" : "UnsignedChar", - "value" : "7" + "value" : 7 } ] }, @@ -523,15 +523,15 @@ "enumerants" : [ { "enumerant" : "Class", - "value" : "0" + "value" : 0 }, { "enumerant" : "Structure", - "value" : "1" + "value" : 1 }, { "enumerant" : "Union", - "value" : "2" + "value" : 2 } ] }, @@ -541,19 +541,19 @@ "enumerants" : [ { "enumerant" : "ConstType", - "value" : "0" + "value" : 0 }, { "enumerant" : "VolatileType", - "value" : "1" + "value" : 1 }, { "enumerant" : "RestrictType", - "value" : "2" + "value" : 2 }, { "enumerant" : "AtomicType", - "value" : "3" + "value" : 3 } ] }, @@ -563,26 +563,26 @@ "enumerants" : [ { "enumerant" : "Deref", - "value" : "0" + "value" : 0 }, { "enumerant" : "Plus", - "value" : "1" + "value" : 1 }, { "enumerant" : "Minus", - "value" : "2" + "value" : 2 }, { "enumerant" : "PlusUconst", - "value" : "3", + "value" : 3, "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "BitPiece", - "value" : "4", + "value" : 4, "parameters" : [ { "kind" : "LiteralInteger" }, { "kind" : "LiteralInteger" } @@ -590,26 +590,26 @@ }, { "enumerant" : "Swap", - "value" : "5" + "value" : 5 }, { "enumerant" : "Xderef", - "value" : "6" + "value" : 6 }, { "enumerant" : "StackValue", - "value" : "7" + "value" : 7 }, { "enumerant" : "Constu", - "value" : "8", + "value" : 8, "parameters" : [ { "kind" : "LiteralInteger" } ] }, { "enumerant" : "Fragment", - "value" : "9", + "value" : 9, "parameters" : [ { "kind" : "LiteralInteger" }, { "kind" : "LiteralInteger" } @@ -623,11 +623,11 @@ "enumerants" : [ { "enumerant" : "ImportedModule", - "value" : "0" + "value" : 0 }, { "enumerant" : "ImportedDeclaration", - "value" : "1" + "value" : 1 } ] } diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.tosa.001000.1.grammar.json b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.tosa.001000.1.grammar.json index cabab82..1eabf58 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.tosa.001000.1.grammar.json +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/extinst.tosa.001000.1.grammar.json @@ -3,7 +3,7 @@ "SPDX-FileCopyrightText: 2022-2025 Arm Ltd.", "SPDX-License-Identifier: MIT" ], - "version": 1000000, + "version": 1000001, "revision": 1, "instructions": [ { diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.core.grammar.json b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.core.grammar.json index 1c3ed72..f98c0c4 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.core.grammar.json +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.core.grammar.json @@ -6374,6 +6374,411 @@ "capabilities" : [ "CooperativeVectorNV" ], "version" : "None" }, + { + "opname" : "OpHitObjectRecordFromQueryEXT", + "class" : "Reserved", + "opcode" : 5304, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Ray Query" }, + { "kind" : "IdRef", "name" : "SBT Record Index" }, + { "kind" : "IdRef", "name" : "Hit Object Attributes" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordMissEXT", + "class" : "Reserved", + "opcode" : 5305, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Ray Flags" }, + { "kind" : "IdRef", "name" : "Miss Index" }, + { "kind" : "IdRef", "name" : "Ray Origin" }, + { "kind" : "IdRef", "name" : "Ray Tmin" }, + { "kind" : "IdRef", "name" : "Ray Direction" }, + { "kind" : "IdRef", "name" : "Ray Tmax" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordMissMotionEXT", + "class" : "Reserved", + "opcode" : 5306, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Ray Flags" }, + { "kind" : "IdRef", "name" : "Miss Index" }, + { "kind" : "IdRef", "name" : "Ray Origin" }, + { "kind" : "IdRef", "name" : "Ray Tmin" }, + { "kind" : "IdRef", "name" : "Ray Direction" }, + { "kind" : "IdRef", "name" : "Ray Tmax" }, + { "kind" : "IdRef", "name" : "Current Time" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetIntersectionTriangleVertexPositionsEXT", + "class" : "Reserved", + "opcode" : 5307, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetRayFlagsEXT", + "class" : "Reserved", + "opcode" : 5308, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectSetShaderBindingTableRecordIndexEXT", + "class" : "Reserved", + "opcode" : 5309, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "SBT Record Index" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectReorderExecuteShaderEXT", + "class" : "Reserved", + "opcode" : 5310, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Payload" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Hint" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Bits" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectTraceReorderExecuteEXT", + "class" : "Reserved", + "opcode" : 5311, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Acceleration Structure"}, + { "kind" : "IdRef", "name" : "Ray Flags"}, + { "kind" : "IdRef", "name" : "Cull Mask"}, + { "kind" : "IdRef", "name" : "SBT Offset"}, + { "kind" : "IdRef", "name" : "SBT Stride"}, + { "kind" : "IdRef", "name" : "Miss Index"}, + { "kind" : "IdRef", "name" : "Ray Origin"}, + { "kind" : "IdRef", "name" : "Ray Tmin"}, + { "kind" : "IdRef", "name" : "Ray Direction"}, + { "kind" : "IdRef", "name" : "Ray Tmax"}, + { "kind" : "IdRef", "name" : "Payload"}, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Hint" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Bits" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectTraceMotionReorderExecuteEXT", + "class" : "Reserved", + "opcode" : 5312, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Acceleration Structure"}, + { "kind" : "IdRef", "name" : "Ray Flags"}, + { "kind" : "IdRef", "name" : "Cull Mask"}, + { "kind" : "IdRef", "name" : "SBT Offset"}, + { "kind" : "IdRef", "name" : "SBT Stride"}, + { "kind" : "IdRef", "name" : "Miss Index"}, + { "kind" : "IdRef", "name" : "Ray Origin"}, + { "kind" : "IdRef", "name" : "Ray Tmin"}, + { "kind" : "IdRef", "name" : "Ray Direction"}, + { "kind" : "IdRef", "name" : "Ray Tmax"}, + { "kind" : "IdRef", "name" : "Current Time"}, + { "kind" : "IdRef", "name" : "Payload"}, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Hint" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Bits" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpTypeHitObjectEXT", + "class" : "Type-Declaration", + "opcode" : 5313, + "operands" : [ + { "kind" : "IdResult" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpReorderThreadWithHintEXT", + "class" : "Reserved", + "opcode" : 5314, + "operands" : [ + { "kind" : "IdRef", "name" : "Hint" }, + { "kind" : "IdRef", "name" : "Bits" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpReorderThreadWithHitObjectEXT", + "class" : "Reserved", + "opcode" : 5315, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Hint" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Bits" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectTraceRayEXT", + "class" : "Reserved", + "opcode" : 5316, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Acceleration Structure"}, + { "kind" : "IdRef", "name" : "Ray Flags"}, + { "kind" : "IdRef", "name" : "Cull Mask"}, + { "kind" : "IdRef", "name" : "SBT Offset"}, + { "kind" : "IdRef", "name" : "SBT Stride"}, + { "kind" : "IdRef", "name" : "Miss Index"}, + { "kind" : "IdRef", "name" : "Ray Origin"}, + { "kind" : "IdRef", "name" : "Ray Tmin"}, + { "kind" : "IdRef", "name" : "Ray Direction"}, + { "kind" : "IdRef", "name" : "Ray Tmax"}, + { "kind" : "IdRef", "name" : "Payload"} + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectTraceRayMotionEXT", + "class" : "Reserved", + "opcode" : 5317, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Acceleration Structure"}, + { "kind" : "IdRef", "name" : "Ray Flags"}, + { "kind" : "IdRef", "name" : "Cull Mask"}, + { "kind" : "IdRef", "name" : "SBT Offset"}, + { "kind" : "IdRef", "name" : "SBT Stride"}, + { "kind" : "IdRef", "name" : "Miss Index"}, + { "kind" : "IdRef", "name" : "Ray Origin"}, + { "kind" : "IdRef", "name" : "Ray Tmin"}, + { "kind" : "IdRef", "name" : "Ray Direction"}, + { "kind" : "IdRef", "name" : "Ray Tmax"}, + { "kind" : "IdRef", "name" : "Current Time"}, + { "kind" : "IdRef", "name" : "Payload"} + ], + "capabilities" : [ "ShaderInvocationReorderEXT", "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectRecordEmptyEXT", + "class" : "Reserved", + "opcode" : 5318, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectExecuteShaderEXT", + "class" : "Reserved", + "opcode" : 5319, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Payload" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetCurrentTimeEXT", + "class" : "Reserved", + "opcode" : 5320, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" , "RayTracingMotionBlurNV" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetAttributesEXT", + "class" : "Reserved", + "opcode" : 5321, + "operands" : [ + { "kind" : "IdRef", "name" : "Hit Object" }, + { "kind" : "IdRef", "name" : "Hit Object Attribute" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetHitKindEXT", + "class" : "Reserved", + "opcode" : 5322, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetPrimitiveIndexEXT", + "class" : "Reserved", + "opcode" : 5323, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetGeometryIndexEXT", + "class" : "Reserved", + "opcode" : 5324, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetInstanceIdEXT", + "class" : "Reserved", + "opcode" : 5325, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetInstanceCustomIndexEXT", + "class" : "Reserved", + "opcode" : 5326, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetObjectRayOriginEXT", + "class" : "Reserved", + "opcode" : 5327, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetObjectRayDirectionEXT", + "class" : "Reserved", + "opcode" : 5328, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetWorldRayDirectionEXT", + "class" : "Reserved", + "opcode" : 5329, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetWorldRayOriginEXT", + "class" : "Reserved", + "opcode" : 5330, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetObjectToWorldEXT", + "class" : "Reserved", + "opcode" : 5331, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetWorldToObjectEXT", + "class" : "Reserved", + "opcode" : 5332, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetRayTMaxEXT", + "class" : "Reserved", + "opcode" : 5333, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, { "opname" : "OpReportIntersectionKHR", "class" : "Reserved", @@ -6549,6 +6954,78 @@ "capabilities" : [ "RayTracingClusterAccelerationStructureNV" ], "version" : "None" }, + { + "opname" : "OpHitObjectGetRayTMinEXT", + "class" : "Reserved", + "opcode" : 5347, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetShaderBindingTableRecordIndexEXT", + "class" : "Reserved", + "opcode" : 5348, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectGetShaderRecordBufferHandleEXT", + "class" : "Reserved", + "opcode" : 5349, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectIsEmptyEXT", + "class" : "Reserved", + "opcode" : 5350, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectIsHitEXT", + "class" : "Reserved", + "opcode" : 5351, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, + { + "opname" : "OpHitObjectIsMissEXT", + "class" : "Reserved", + "opcode" : 5352, + "operands" : [ + { "kind" : "IdResultType"}, + { "kind" : "IdResult"}, + { "kind" : "IdRef", "name" : "Hit Object" } + ], + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, { "opname" : "OpTypeCooperativeMatrixNV", "class" : "Type-Declaration", @@ -9202,8 +9679,9 @@ "version" : "None" }, { - "opname" : "OpArbitraryFloatSinCosPiINTEL", + "opname" : "OpArbitraryFloatSinCosPiALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatSinCosPiINTEL" ], "opcode" : 5840, "operands" : [ { "kind" : "IdResultType" }, @@ -9215,12 +9693,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "RoundingAccuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatCastINTEL", + "opname" : "OpArbitraryFloatCastALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatCastINTEL" ], "opcode" : 5841, "operands" : [ { "kind" : "IdResultType" }, @@ -9232,12 +9711,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatCastFromIntINTEL", + "opname" : "OpArbitraryFloatCastFromIntALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatCastFromIntINTEL" ], "opcode" : 5842, "operands" : [ { "kind" : "IdResultType" }, @@ -9249,12 +9729,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatCastToIntINTEL", + "opname" : "OpArbitraryFloatCastToIntALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatCastToIntINTEL" ], "opcode" : 5843, "operands" : [ { "kind" : "IdResultType" }, @@ -9266,12 +9747,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatAddINTEL", + "opname" : "OpArbitraryFloatAddALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatAddINTEL" ], "opcode" : 5846, "operands" : [ { "kind" : "IdResultType" }, @@ -9285,12 +9767,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatSubINTEL", + "opname" : "OpArbitraryFloatSubALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatSubINTEL" ], "opcode" : 5847, "operands" : [ { "kind" : "IdResultType" }, @@ -9304,12 +9787,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatMulINTEL", + "opname" : "OpArbitraryFloatMulALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatMulINTEL" ], "opcode" : 5848, "operands" : [ { "kind" : "IdResultType" }, @@ -9323,12 +9807,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatDivINTEL", + "opname" : "OpArbitraryFloatDivALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatDivINTEL" ], "opcode" : 5849, "operands" : [ { "kind" : "IdResultType" }, @@ -9342,12 +9827,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatGTINTEL", + "opname" : "OpArbitraryFloatGTALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatGTINTEL" ], "opcode" : 5850, "operands" : [ { "kind" : "IdResultType" }, @@ -9357,12 +9843,13 @@ { "kind" : "IdRef", "name" : "B" }, { "kind" : "LiteralInteger", "name" : "Mb" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatGEINTEL", + "opname" : "OpArbitraryFloatGEALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatGEINTEL" ], "opcode" : 5851, "operands" : [ { "kind" : "IdResultType" }, @@ -9372,12 +9859,13 @@ { "kind" : "IdRef", "name" : "B" }, { "kind" : "LiteralInteger", "name" : "Mb" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatLTINTEL", + "opname" : "OpArbitraryFloatLTALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatLTINTEL" ], "opcode" : 5852, "operands" : [ { "kind" : "IdResultType" }, @@ -9387,12 +9875,13 @@ { "kind" : "IdRef", "name" : "B" }, { "kind" : "LiteralInteger", "name" : "Mb" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatLEINTEL", + "opname" : "OpArbitraryFloatLEALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatLEINTEL" ], "opcode" : 5853, "operands" : [ { "kind" : "IdResultType" }, @@ -9402,12 +9891,13 @@ { "kind" : "IdRef", "name" : "B" }, { "kind" : "LiteralInteger", "name" : "Mb" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatEQINTEL", + "opname" : "OpArbitraryFloatEQALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatEQINTEL" ], "opcode" : 5854, "operands" : [ { "kind" : "IdResultType" }, @@ -9417,12 +9907,13 @@ { "kind" : "IdRef", "name" : "B" }, { "kind" : "LiteralInteger", "name" : "Mb" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatRecipINTEL", + "opname" : "OpArbitraryFloatRecipALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatRecipINTEL" ], "opcode" : 5855, "operands" : [ { "kind" : "IdResultType" }, @@ -9434,12 +9925,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatRSqrtINTEL", + "opname" : "OpArbitraryFloatRSqrtALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatRSqrtINTEL" ], "opcode" : 5856, "operands" : [ { "kind" : "IdResultType" }, @@ -9451,12 +9943,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatCbrtINTEL", + "opname" : "OpArbitraryFloatCbrtALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatCbrtINTEL" ], "opcode" : 5857, "operands" : [ { "kind" : "IdResultType" }, @@ -9468,12 +9961,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatHypotINTEL", + "opname" : "OpArbitraryFloatHypotALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatHypotINTEL" ], "opcode" : 5858, "operands" : [ { "kind" : "IdResultType" }, @@ -9487,12 +9981,13 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { - "opname" : "OpArbitraryFloatSqrtINTEL", + "opname" : "OpArbitraryFloatSqrtALTERA", "class" : "@exclude", + "aliases" : [ "OpArbitraryFloatSqrtINTEL" ], "opcode" : 5859, "operands" : [ { "kind" : "IdResultType" }, @@ -9504,7 +9999,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9521,7 +10016,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9538,7 +10033,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9555,7 +10050,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9572,7 +10067,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9589,7 +10084,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9606,7 +10101,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9623,7 +10118,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9640,7 +10135,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9657,7 +10152,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9674,7 +10169,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9691,7 +10186,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9708,7 +10203,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9725,7 +10220,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9742,7 +10237,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9759,7 +10254,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9776,7 +10271,7 @@ { "kind" : "LiteralInteger", "name" : "RoundingMode" }, { "kind" : "LiteralInteger", "name" : "RoundingAccuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9793,7 +10288,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9810,7 +10305,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9827,7 +10322,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9846,7 +10341,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9865,7 +10360,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9884,7 +10379,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9903,7 +10398,7 @@ { "kind" : "LiteralInteger", "name" : "Rounding" }, { "kind" : "LiteralInteger", "name" : "Accuracy" } ], - "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFloatingPointALTERA" ], "version" : "None" }, { @@ -9955,8 +10450,9 @@ "version" : "None" }, { - "opname" : "OpFixedSqrtINTEL", + "opname" : "OpFixedSqrtALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedSqrtINTEL" ], "opcode" : 5923, "operands" : [ { "kind" : "IdResultType" }, @@ -9968,12 +10464,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedRecipINTEL", + "opname" : "OpFixedRecipALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedRecipINTEL" ], "opcode" : 5924, "operands" : [ { "kind" : "IdResultType" }, @@ -9985,12 +10482,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedRsqrtINTEL", + "opname" : "OpFixedRsqrtALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedRsqrtINTEL" ], "opcode" : 5925, "operands" : [ { "kind" : "IdResultType" }, @@ -10002,12 +10500,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedSinINTEL", + "opname" : "OpFixedSinALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedSinINTEL" ], "opcode" : 5926, "operands" : [ { "kind" : "IdResultType" }, @@ -10019,12 +10518,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedCosINTEL", + "opname" : "OpFixedCosALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedCosINTEL" ], "opcode" : 5927, "operands" : [ { "kind" : "IdResultType" }, @@ -10036,12 +10536,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedSinCosINTEL", + "opname" : "OpFixedSinCosALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedSinCosINTEL" ], "opcode" : 5928, "operands" : [ { "kind" : "IdResultType" }, @@ -10053,12 +10554,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedSinPiINTEL", + "opname" : "OpFixedSinPiALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedSinPiINTEL" ], "opcode" : 5929, "operands" : [ { "kind" : "IdResultType" }, @@ -10070,12 +10572,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedCosPiINTEL", + "opname" : "OpFixedCosPiALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedCosPiINTEL" ], "opcode" : 5930, "operands" : [ { "kind" : "IdResultType" }, @@ -10087,12 +10590,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedSinCosPiINTEL", + "opname" : "OpFixedSinCosPiALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedSinCosPiINTEL" ], "opcode" : 5931, "operands" : [ { "kind" : "IdResultType" }, @@ -10104,12 +10608,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedLogINTEL", + "opname" : "OpFixedLogALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedLogINTEL" ], "opcode" : 5932, "operands" : [ { "kind" : "IdResultType" }, @@ -10121,12 +10626,13 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpFixedExpINTEL", + "opname" : "OpFixedExpALTERA", "class" : "@exclude", + "aliases" : [ "OpFixedExpINTEL" ], "opcode" : 5933, "operands" : [ { "kind" : "IdResultType" }, @@ -10138,36 +10644,39 @@ { "kind" : "LiteralInteger", "name" : "Q" }, { "kind" : "LiteralInteger", "name" : "O" } ], - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA" ], "version" : "None" }, { - "opname" : "OpPtrCastToCrossWorkgroupINTEL", + "opname" : "OpPtrCastToCrossWorkgroupALTERA", "class" : "@exclude", + "aliases" : [ "OpPtrCastToCrossWorkgroupINTEL" ], "opcode" : 5934, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "Pointer" } ], - "capabilities" : [ "USMStorageClassesINTEL" ], + "capabilities" : [ "USMStorageClassesALTERA" ], "version" : "None" }, { - "opname" : "OpCrossWorkgroupCastToPtrINTEL", + "opname" : "OpCrossWorkgroupCastToPtrALTERA", "class" : "@exclude", + "aliases" : [ "OpCrossWorkgroupCastToPtrINTEL" ], "opcode" : 5938, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "Pointer" } ], - "capabilities" : [ "USMStorageClassesINTEL" ], + "capabilities" : [ "USMStorageClassesALTERA" ], "version" : "None" }, { - "opname" : "OpReadPipeBlockingINTEL", - "class" : "Pipe", + "opname" : "OpReadPipeBlockingALTERA", + "class" : "@exclude", + "aliases" : [ "OpReadPipeBlockingINTEL" ], "opcode" : 5946, "operands" : [ { "kind" : "IdResultType" }, @@ -10175,13 +10684,13 @@ { "kind" : "IdRef", "name" : "Packet Size" }, { "kind" : "IdRef", "name" : "Packet Alignment" } ], - "capabilities" : [ "BlockingPipesINTEL" ], - "extensions" : [ "SPV_INTEL_blocking_pipes" ], + "capabilities" : [ "BlockingPipesALTERA" ], "version" : "None" }, { - "opname" : "OpWritePipeBlockingINTEL", - "class" : "Pipe", + "opname" : "OpWritePipeBlockingALTERA", + "class" : "@exclude", + "aliases" : [ "OpWritePipeBlockingINTEL" ], "opcode" : 5947, "operands" : [ { "kind" : "IdResultType" }, @@ -10189,21 +10698,20 @@ { "kind" : "IdRef", "name" : "Packet Size" }, { "kind" : "IdRef", "name" : "Packet Alignment" } ], - "capabilities" : [ "BlockingPipesINTEL" ], - "extensions" : [ "SPV_INTEL_blocking_pipes" ], + "capabilities" : [ "BlockingPipesALTERA" ], "version" : "None" }, { - "opname" : "OpFPGARegINTEL", - "class" : "Reserved", + "opname" : "OpFPGARegALTERA", + "class" : "@exclude", + "aliases" : [ "OpFPGARegINTEL" ], "opcode" : 5949, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "Input" } ], - "capabilities" : [ "FPGARegINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_reg" ], + "capabilities" : [ "FPGARegALTERA" ], "version" : "None" }, { @@ -10659,8 +11167,9 @@ "version" : "None" }, { - "opname" : "OpTaskSequenceCreateINTEL", - "class" : "Reserved", + "opname" : "OpTaskSequenceCreateALTERA", + "class" : "@exclude", + "aliases" : [ "OpTaskSequenceCreateINTEL" ], "opcode" : 6163, "operands" : [ { "kind" : "IdResultType" }, @@ -10671,50 +11180,54 @@ { "kind" : "LiteralInteger", "name" : "GetCapacity" }, { "kind" : "LiteralInteger", "name" : "AsyncCapacity" } ], - "capabilities" : [ "TaskSequenceINTEL" ], + "capabilities" : [ "TaskSequenceALTERA" ], "version" : "None" }, { - "opname" : "OpTaskSequenceAsyncINTEL", - "class" : "Reserved", + "opname" : "OpTaskSequenceAsyncALTERA", + "class" : "@exclude", + "aliases" : [ "OpTaskSequenceAsyncINTEL" ], "opcode" : 6164, "operands" : [ { "kind" : "IdRef", "name" : "Sequence" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "Arguments" } ], - "capabilities" : [ "TaskSequenceINTEL" ], + "capabilities" : [ "TaskSequenceALTERA" ], "version" : "None" }, { - "opname" : "OpTaskSequenceGetINTEL", - "class" : "Reserved", + "opname" : "OpTaskSequenceGetALTERA", + "class" : "@exclude", + "aliases" : [ "OpTaskSequenceGetINTEL" ], "opcode" : 6165, "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, { "kind" : "IdRef", "name" : "Sequence" } ], - "capabilities" : [ "TaskSequenceINTEL" ], + "capabilities" : [ "TaskSequenceALTERA" ], "version" : "None" }, { - "opname" : "OpTaskSequenceReleaseINTEL", - "class" : "Reserved", + "opname" : "OpTaskSequenceReleaseALTERA", + "class" : "@exclude", + "aliases" : [ "OpTaskSequenceReleaseINTEL" ], "opcode" : 6166, "operands" : [ { "kind" : "IdRef", "name" : "Sequence" } ], - "capabilities" : [ "TaskSequenceINTEL" ], + "capabilities" : [ "TaskSequenceALTERA" ], "version" : "None" }, { - "opname" : "OpTypeTaskSequenceINTEL", - "class" : "Type-Declaration", + "opname" : "OpTypeTaskSequenceALTERA", + "class" : "@exclude", + "aliases" : [ "OpTypeTaskSequenceINTEL" ], "opcode" : 6199, "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "TaskSequenceINTEL" ], + "capabilities" : [ "TaskSequenceALTERA" ], "version": "None" }, { @@ -11445,90 +11958,100 @@ "version" : "1.4" }, { - "enumerant" : "InitiationIntervalINTEL", + "enumerant" : "InitiationIntervalALTERA", + "aliases" : [ "InitiationIntervalINTEL" ], "value" : "0x10000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "MaxConcurrencyINTEL", + "enumerant" : "MaxConcurrencyALTERA", + "aliases" : [ "MaxConcurrencyINTEL" ], "value" : "0x20000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "DependencyArrayINTEL", + "enumerant" : "DependencyArrayALTERA", + "aliases" : [ "DependencyArrayINTEL" ], "value" : "0x40000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "PipelineEnableINTEL", + "enumerant" : "PipelineEnableALTERA", + "aliases" : [ "PipelineEnableINTEL" ], "value" : "0x80000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "LoopCoalesceINTEL", + "enumerant" : "LoopCoalesceALTERA", + "aliases" : [ "LoopCoalesceINTEL" ], "value" : "0x100000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "MaxInterleavingINTEL", + "enumerant" : "MaxInterleavingALTERA", + "aliases" : [ "MaxInterleavingINTEL" ], "value" : "0x200000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "SpeculatedIterationsINTEL", + "enumerant" : "SpeculatedIterationsALTERA", + "aliases" : [ "SpeculatedIterationsINTEL" ], "value" : "0x400000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "NoFusionINTEL", + "enumerant" : "NoFusionALTERA", + "aliases" : [ "NoFusionINTEL" ], "value" : "0x800000", - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "LoopCountINTEL", + "enumerant" : "LoopCountALTERA", + "aliases" : [ "LoopCountINTEL" ], "value" : "0x1000000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" }, { - "enumerant" : "MaxReinvocationDelayINTEL", + "enumerant" : "MaxReinvocationDelayALTERA", + "aliases" : [ "MaxReinvocationDelayINTEL" ], "value" : "0x2000000", "parameters" : [ { "kind" : "LiteralInteger" } ], - "capabilities" : [ "FPGALoopControlsINTEL" ], + "capabilities" : [ "FPGALoopControlsALTERA" ], "version" : "None" } ] @@ -12738,6 +13261,12 @@ "extensions" : [ "SPV_EXT_fragment_shader_interlock" ], "version" : "None" }, + { + "enumerant" : "Shader64BitIndexingEXT", + "value" : 5427, + "capabilities" : [ "Shader64BitIndexingEXT" ], + "version" : "None" + }, { "enumerant" : "SharedLocalMemorySizeINTEL", "value" : 5618, @@ -13072,6 +13601,12 @@ "capabilities" : [ "MeshShadingEXT" ], "version" : "1.4" }, + { + "enumerant" : "HitObjectAttributeEXT", + "value" : 5411, + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, { "enumerant" : "CodeSectionINTEL", "value" : 5605, @@ -13080,21 +13615,17 @@ "version" : "None" }, { - "enumerant" : "DeviceOnlyINTEL", + "enumerant" : "DeviceOnlyALTERA", + "aliases" : [ "DeviceOnlyINTEL" ], "value" : 5936, - "extensions" : [ - "SPV_INTEL_usm_storage_classes" - ], - "capabilities" : [ "USMStorageClassesINTEL" ], + "capabilities" : [ "USMStorageClassesALTERA" ], "version" : "None" }, { - "enumerant" : "HostOnlyINTEL", + "enumerant" : "HostOnlyALTERA", + "aliases" : [ "HostOnlyINTEL" ], "value" : 5937, - "extensions" : [ - "SPV_INTEL_usm_storage_classes" - ], - "capabilities" : [ "USMStorageClassesINTEL" ], + "capabilities" : [ "USMStorageClassesALTERA" ], "version" : "None" } ] @@ -13748,49 +14279,49 @@ { "enumerant" : "TRN", "value" : 0, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "TRN_ZERO", "value" : 1, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "RND", "value" : 2, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "RND_ZERO", "value" : 3, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "RND_INF", "value" : 4, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "RND_MIN_INF", "value" : 5, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "RND_CONV", "value" : 6, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "RND_CONV_ODD", "value" : 7, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" } ] @@ -13820,25 +14351,25 @@ { "enumerant" : "WRAP", "value" : 0, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "SAT", "value" : 1, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "SAT_ZERO", "value" : 2, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" }, { "enumerant" : "SAT_SYM", "value" : 3, - "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL"], + "capabilities" : [ "ArbitraryPrecisionFixedPointALTERA"], "version" : "None" } ] @@ -13975,9 +14506,10 @@ "version": "1.0" }, { - "enumerant" : "RuntimeAlignedINTEL", + "enumerant" : "RuntimeAlignedALTERA", + "aliases" : [ "RuntimeAlignedINTEL" ], "value" : 5940, - "capabilities" : [ "RuntimeAlignedAttributeINTEL" ], + "capabilities" : [ "RuntimeAlignedAttributeALTERA" ], "version": "1.0" } ] @@ -14534,6 +15066,12 @@ "capabilities" : [ "ShaderInvocationReorderNV" ], "version" : "None" }, + { + "enumerant" : "HitObjectShaderRecordBufferEXT", + "value" : 5389, + "capabilities" : [ "ShaderInvocationReorderEXT" ], + "version" : "None" + }, { "enumerant" : "BindlessSamplerNV", "value" : 5398, @@ -14675,188 +15213,198 @@ "version" : "None" }, { - "enumerant" : "RegisterINTEL", + "enumerant" : "RegisterALTERA", + "aliases" : [ "RegisterINTEL" ], "value" : 5825, - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "MemoryINTEL", + "enumerant" : "MemoryALTERA", + "aliases" : [ "MemoryINTEL" ], "value" : 5826, "parameters" : [ { "kind" : "LiteralString", "name" : "Memory Type" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "NumbanksINTEL", + "enumerant" : "NumbanksALTERA", + "aliases" : [ "NumbanksINTEL" ], "value" : 5827, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Banks" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "BankwidthINTEL", + "enumerant" : "BankwidthALTERA", + "aliases" : [ "BankwidthINTEL" ], "value" : 5828, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Bank Width" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "MaxPrivateCopiesINTEL", + "enumerant" : "MaxPrivateCopiesALTERA", + "aliases" : [ "MaxPrivateCopiesINTEL" ], "value" : 5829, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Maximum Copies" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "SinglepumpINTEL", + "enumerant" : "SinglepumpALTERA", + "aliases" : [ "SinglepumpINTEL" ], "value" : 5830, - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "DoublepumpINTEL", + "enumerant" : "DoublepumpALTERA", + "aliases" : [ "DoublepumpINTEL" ], "value" : 5831, - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "MaxReplicatesINTEL", + "enumerant" : "MaxReplicatesALTERA", + "aliases" : [ "MaxReplicatesINTEL" ], "value" : 5832, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Maximum Replicates" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "SimpleDualPortINTEL", + "enumerant" : "SimpleDualPortALTERA", + "aliases" : [ "SimpleDualPortINTEL" ], "value" : 5833, - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "MergeINTEL", + "enumerant" : "MergeALTERA", + "aliases" : [ "MergeINTEL" ], "value" : 5834, "parameters" : [ { "kind" : "LiteralString", "name" : "Merge Key" }, { "kind" : "LiteralString", "name" : "Merge Type" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "BankBitsINTEL", + "enumerant" : "BankBitsALTERA", + "aliases" : [ "BankBitsINTEL" ], "value" : 5835, "parameters" : [ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "Bank Bits" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "ForcePow2DepthINTEL", + "enumerant" : "ForcePow2DepthALTERA", + "aliases" : [ "ForcePow2DepthINTEL" ], "value" : 5836, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Force Key" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "StridesizeINTEL", + "enumerant" : "StridesizeALTERA", + "aliases" : [ "StridesizeINTEL" ], "value" : 5883, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Stride Size" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "WordsizeINTEL", + "enumerant" : "WordsizeALTERA", + "aliases" : [ "WordsizeINTEL" ], "value" : 5884, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Word Size" } ], - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "TrueDualPortINTEL", + "enumerant" : "TrueDualPortALTERA", + "aliases" : [ "TrueDualPortINTEL" ], "value" : 5885, - "capabilities" : [ "FPGAMemoryAttributesINTEL" ], + "capabilities" : [ "FPGAMemoryAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "BurstCoalesceINTEL", + "enumerant" : "BurstCoalesceALTERA", + "aliases" : [ "BurstCoalesceINTEL" ], "value" : 5899, - "capabilities" : [ "FPGAMemoryAccessesINTEL" ], + "capabilities" : [ "FPGAMemoryAccessesALTERA" ], "version" : "None" }, { - "enumerant" : "CacheSizeINTEL", + "enumerant" : "CacheSizeALTERA", + "aliases" : [ "CacheSizeINTEL" ], "value" : 5900, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Cache Size in bytes" } ], - "capabilities" : [ "FPGAMemoryAccessesINTEL" ], + "capabilities" : [ "FPGAMemoryAccessesALTERA" ], "version" : "None" }, { - "enumerant" : "DontStaticallyCoalesceINTEL", + "enumerant" : "DontStaticallyCoalesceALTERA", + "aliases" : [ "DontStaticallyCoalesceINTEL" ], "value" : 5901, - "capabilities" : [ "FPGAMemoryAccessesINTEL" ], + "capabilities" : [ "FPGAMemoryAccessesALTERA" ], "version" : "None" }, { - "enumerant" : "PrefetchINTEL", + "enumerant" : "PrefetchALTERA", + "aliases" : [ "PrefetchINTEL" ], "value" : 5902, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Prefetcher Size in bytes" } ], - "capabilities" : [ "FPGAMemoryAccessesINTEL" ], + "capabilities" : [ "FPGAMemoryAccessesALTERA" ], "version" : "None" }, { - "enumerant" : "StallEnableINTEL", + "enumerant" : "StallEnableALTERA", + "aliases" : [ "StallEnableINTEL" ], "value" : 5905, - "capabilities" : [ "FPGAClusterAttributesINTEL" ], + "capabilities" : [ "FPGAClusterAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "FuseLoopsInFunctionINTEL", + "enumerant" : "FuseLoopsInFunctionALTERA", + "aliases" : [ "FuseLoopsInFunctionINTEL" ], "value" : 5907, - "capabilities" : [ "LoopFuseINTEL" ], + "capabilities" : [ "LoopFuseALTERA" ], "version" : "None" }, { - "enumerant" : "MathOpDSPModeINTEL", + "enumerant" : "MathOpDSPModeALTERA", + "aliases" : [ "MathOpDSPModeINTEL" ], "value" : 5909, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Mode" }, { "kind" : "LiteralInteger", "name" : "Propagate" } ], - "capabilities" : [ "FPGADSPControlINTEL" ], + "capabilities" : [ "FPGADSPControlALTERA" ], "version" : "None" }, { @@ -14878,48 +15426,53 @@ "version" : "None" }, { - "enumerant" : "InitiationIntervalINTEL", + "enumerant" : "InitiationIntervalALTERA", + "aliases" : [ "InitiationIntervalINTEL" ], "value" : 5917, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Cycles" } ], - "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], + "capabilities" : [ "FPGAInvocationPipeliningAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "MaxConcurrencyINTEL", + "enumerant" : "MaxConcurrencyALTERA", + "aliases" : [ "MaxConcurrencyINTEL" ], "value" : 5918, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Invocations" } ], - "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], + "capabilities" : [ "FPGAInvocationPipeliningAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "PipelineEnableINTEL", + "enumerant" : "PipelineEnableALTERA", + "aliases" : [ "PipelineEnableINTEL" ], "value" : 5919, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Enable" } ], - "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ], + "capabilities" : [ "FPGAInvocationPipeliningAttributesALTERA" ], "version" : "None" }, { - "enumerant" : "BufferLocationINTEL", + "enumerant" : "BufferLocationALTERA", + "aliases" : [ "BufferLocationINTEL" ], "value" : 5921, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Buffer Location ID" } ], - "capabilities" : [ "FPGABufferLocationINTEL" ], + "capabilities" : [ "FPGABufferLocationALTERA" ], "version" : "None" }, { - "enumerant" : "IOPipeStorageINTEL", + "enumerant" : "IOPipeStorageALTERA", + "aliases" : [ "IOPipeStorageINTEL" ], "value" : 5944, "parameters" : [ { "kind" : "LiteralInteger", "name" : "IO Pipe ID" } ], - "capabilities" : [ "IOPipesINTEL" ], + "capabilities" : [ "IOPipesALTERA" ], "version" : "None" }, { @@ -14951,9 +15504,10 @@ "version" : "None" }, { - "enumerant" : "StallFreeINTEL", + "enumerant" : "StallFreeALTERA", + "aliases" : [ "StallFreeINTEL" ], "value" : 6151, - "capabilities" : [ "FPGAClusterAttributesV2INTEL" ], + "capabilities" : [ "FPGAClusterAttributesV2ALTERA" ], "version" : "None" }, { @@ -14966,95 +15520,106 @@ "version" : "None" }, { - "enumerant" : "LatencyControlLabelINTEL", + "enumerant" : "LatencyControlLabelALTERA", + "aliases" : [ "LatencyControlLabelINTEL" ], "value" : 6172, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Latency Label" } ], - "capabilities" : [ "FPGALatencyControlINTEL" ], + "capabilities" : [ "FPGALatencyControlALTERA" ], "version" : "None" }, { - "enumerant" : "LatencyControlConstraintINTEL", + "enumerant" : "LatencyControlConstraintALTERA", + "aliases" : [ "LatencyControlConstraintINTEL" ], "value" : 6173, "parameters" : [ { "kind" : "LiteralInteger", "name" : "Relative To" }, { "kind" : "LiteralInteger", "name" : "Control Type" }, { "kind" : "LiteralInteger", "name" : "Relative Cycle" } ], - "capabilities" : [ "FPGALatencyControlINTEL" ], + "capabilities" : [ "FPGALatencyControlALTERA" ], "version" : "None" }, { - "enumerant" : "ConduitKernelArgumentINTEL", + "enumerant" : "ConduitKernelArgumentALTERA", + "aliases" : [ "ConduitKernelArgumentINTEL" ], "value" : 6175, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "version" : "None" }, { - "enumerant" : "RegisterMapKernelArgumentINTEL", + "enumerant" : "RegisterMapKernelArgumentALTERA", + "aliases" : [ "RegisterMapKernelArgumentINTEL" ], "value" : 6176, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "version" : "None" }, { - "enumerant" : "MMHostInterfaceAddressWidthINTEL", + "enumerant" : "MMHostInterfaceAddressWidthALTERA", + "aliases" : [ "MMHostInterfaceAddressWidthINTEL" ], "value" : 6177, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "AddressWidth" } ], "version" : "None" }, { - "enumerant" : "MMHostInterfaceDataWidthINTEL", + "enumerant" : "MMHostInterfaceDataWidthALTERA", + "aliases" : [ "MMHostInterfaceDataWidthINTEL" ], "value" : 6178, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "DataWidth" } ], "version" : "None" }, { - "enumerant" : "MMHostInterfaceLatencyINTEL", + "enumerant" : "MMHostInterfaceLatencyALTERA", + "aliases" : [ "MMHostInterfaceLatencyINTEL" ], "value" : 6179, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "Latency" } ], "version" : "None" }, { - "enumerant" : "MMHostInterfaceReadWriteModeINTEL", + "enumerant" : "MMHostInterfaceReadWriteModeALTERA", + "aliases" : [ "MMHostInterfaceReadWriteModeINTEL" ], "value" : 6180, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "parameters" : [ { "kind" : "AccessQualifier", "name" : "ReadWriteMode" } ], "version" : "None" }, { - "enumerant" : "MMHostInterfaceMaxBurstINTEL", + "enumerant" : "MMHostInterfaceMaxBurstALTERA", + "aliases" : [ "MMHostInterfaceMaxBurstINTEL" ], "value" : 6181, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "MaxBurstCount" } ], "version" : "None" }, { - "enumerant" : "MMHostInterfaceWaitRequestINTEL", + "enumerant" : "MMHostInterfaceWaitRequestALTERA", + "aliases" : [ "MMHostInterfaceWaitRequestINTEL" ], "value" : 6182, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "Waitrequest" } ], "version" : "None" }, { - "enumerant" : "StableKernelArgumentINTEL", + "enumerant" : "StableKernelArgumentALTERA", + "aliases" : [ "StableKernelArgumentINTEL" ], "value" : 6183, - "capabilities" : [ "FPGAArgumentInterfacesINTEL" ], + "capabilities" : [ "FPGAArgumentInterfacesALTERA" ], "version" : "None" }, { @@ -15068,21 +15633,23 @@ "version" : "None" }, { - "enumerant" : "InitModeINTEL", + "enumerant" : "InitModeALTERA", + "aliases" : [ "InitModeINTEL" ], "value" : 6190, "parameters": [ { "kind" : "InitializationModeQualifier", "name" : "Trigger" } ], - "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "capabilities" : [ "GlobalVariableFPGADecorationsALTERA" ], "version" : "None" }, { - "enumerant" : "ImplementInRegisterMapINTEL", + "enumerant" : "ImplementInRegisterMapALTERA", + "aliases" : [ "ImplementInRegisterMapINTEL" ], "value" : 6191, "parameters": [ { "kind" : "LiteralInteger", "name" : "Value" } ], - "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "capabilities" : [ "GlobalVariableFPGADecorationsALTERA" ], "version" : "None" }, { @@ -17202,6 +17769,13 @@ "extensions" : [ "SPV_NV_shader_invocation_reorder" ], "version" : "None" }, + { + "enumerant" : "ShaderInvocationReorderEXT", + "value" : 5388, + "capabilities" : [ "RayTracingKHR" ], + "extensions" : [ "SPV_EXT_shader_invocation_reorder" ], + "version" : "None" + }, { "enumerant" : "BindlessTextureNV", "value" : 5390, @@ -17252,6 +17826,12 @@ "extensions" : [ "SPV_NV_linear_swept_spheres" ], "version" : "None" }, + { + "enumerant" : "Shader64BitIndexingEXT", + "value" : 5426, + "extensions" : [ "SPV_EXT_shader_64bit_indexing" ], + "version" : "None" + }, { "enumerant" : "CooperativeMatrixReductionsNV", "value" : 5430, @@ -17429,9 +18009,10 @@ "version" : "None" }, { - "enumerant" : "FPGAMemoryAttributesINTEL", + "enumerant" : "FPGAMemoryAttributesALTERA", + "aliases" : [ "FPGAMemoryAttributesINTEL" ], "value" : 5824, - "extensions" : [ "SPV_INTEL_fpga_memory_attributes" ], + "extensions" : [ "SPV_ALTERA_fpga_memory_attributes", "SPV_INTEL_fpga_memory_attributes" ], "version" : "None" }, { @@ -17442,15 +18023,17 @@ "version" : "None" }, { - "enumerant" : "ArbitraryPrecisionIntegersINTEL", + "enumerant" : "ArbitraryPrecisionIntegersALTERA", + "aliases" : [ "ArbitraryPrecisionIntegersINTEL" ], "value" : 5844, - "extensions" : [ "SPV_INTEL_arbitrary_precision_integers" ], + "extensions" : [ "SPV_ALTERA_arbitrary_precision_integers", "SPV_INTEL_arbitrary_precision_integers" ], "version" : "None" }, { - "enumerant" : "ArbitraryPrecisionFloatingPointINTEL", + "enumerant" : "ArbitraryPrecisionFloatingPointALTERA", + "aliases" : [ "ArbitraryPrecisionFloatingPointINTEL" ], "value" : 5845, - "extensions" : [ "SPV_INTEL_arbitrary_precision_floating_point" ], + "extensions" : [ "SPV_ALTERA_arbitrary_precision_floating_point", "SPV_INTEL_arbitrary_precision_floating_point" ], "version" : "None" }, { @@ -17460,9 +18043,10 @@ "version" : "None" }, { - "enumerant" : "FPGALoopControlsINTEL", + "enumerant" : "FPGALoopControlsALTERA", + "aliases" : [ "FPGALoopControlsINTEL" ], "value" : 5888, - "extensions" : [ "SPV_INTEL_fpga_loop_controls" ], + "extensions" : [ "SPV_ALTERA_fpga_loop_controls", "SPV_INTEL_fpga_loop_controls" ], "version" : "None" }, { @@ -17478,27 +18062,31 @@ "version" : "None" }, { - "enumerant" : "FPGAMemoryAccessesINTEL", + "enumerant" : "FPGAMemoryAccessesALTERA", + "aliases" : [ "FPGAMemoryAccessesINTEL" ], "value" : 5898, - "extensions" : [ "SPV_INTEL_fpga_memory_accesses" ], + "extensions" : [ "SPV_ALTERA_fpga_memory_accesses", "SPV_INTEL_fpga_memory_accesses" ], "version" : "None" }, { - "enumerant" : "FPGAClusterAttributesINTEL", + "enumerant" : "FPGAClusterAttributesALTERA", + "aliases" : [ "FPGAClusterAttributesINTEL" ], "value" : 5904, - "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ], + "extensions" : [ "SPV_ALTERA_fpga_cluster_attributes", "SPV_INTEL_fpga_cluster_attributes" ], "version" : "None" }, { - "enumerant" : "LoopFuseINTEL", + "enumerant" : "LoopFuseALTERA", + "aliases" : [ "LoopFuseINTEL" ], "value" : 5906, - "extensions" : [ "SPV_INTEL_loop_fuse" ], + "extensions" : [ "SPV_ALTERA_loop_fuse", "SPV_INTEL_loop_fuse" ], "version" : "None" }, { - "enumerant" : "FPGADSPControlINTEL", + "enumerant" : "FPGADSPControlALTERA", + "aliases" : [ "FPGADSPControlINTEL" ], "value" : 5908, - "extensions" : [ "SPV_INTEL_fpga_dsp_control" ], + "extensions" : [ "SPV_ALTERA_fpga_dsp_control", "SPV_INTEL_fpga_dsp_control" ], "version" : "None" }, { @@ -17508,51 +18096,59 @@ "version" : "None" }, { - "enumerant" : "FPGAInvocationPipeliningAttributesINTEL", + "enumerant" : "FPGAInvocationPipeliningAttributesALTERA", + "aliases" : [ "FPGAInvocationPipeliningAttributesINTEL" ], "value" : 5916, - "extensions" : [ "SPV_INTEL_fpga_invocation_pipelining_attributes" ], + "extensions" : [ "SPV_ALTERA_fpga_invocation_pipelining_attributes", "SPV_INTEL_fpga_invocation_pipelining_attributes" ], "version" : "None" }, { - "enumerant" : "FPGABufferLocationINTEL", + "enumerant" : "FPGABufferLocationALTERA", + "aliases" : [ "FPGABufferLocationINTEL" ], "value" : 5920, - "extensions" : [ "SPV_INTEL_fpga_buffer_location" ], + "extensions" : [ "SPV_ALTERA_fpga_buffer_location", "SPV_INTEL_fpga_buffer_location" ], "version" : "None" }, { - "enumerant" : "ArbitraryPrecisionFixedPointINTEL", + "enumerant" : "ArbitraryPrecisionFixedPointALTERA", + "aliases" : [ "ArbitraryPrecisionFixedPointINTEL" ], "value" : 5922, - "extensions" : [ "SPV_INTEL_arbitrary_precision_fixed_point" ], + "extensions" : [ "SPV_ALTERA_arbitrary_precision_fixed_point", "SPV_INTEL_arbitrary_precision_fixed_point" ], "version" : "None" }, { - "enumerant" : "USMStorageClassesINTEL", + "enumerant" : "USMStorageClassesALTERA", + "aliases" : [ "USMStorageClassesINTEL" ], "value" : 5935, - "extensions" : [ "SPV_INTEL_usm_storage_classes" ], + "extensions" : [ "SPV_ALTERA_usm_storage_classes", "SPV_INTEL_usm_storage_classes" ], "version" : "None" }, { - "enumerant" : "RuntimeAlignedAttributeINTEL", + "enumerant" : "RuntimeAlignedAttributeALTERA", + "aliases" : [ "RuntimeAlignedAttributeINTEL" ], "value" : 5939, - "extensions" : [ "SPV_INTEL_runtime_aligned" ], + "extensions" : [ "SPV_ALTERA_runtime_aligned", "SPV_INTEL_runtime_aligned" ], "version" : "None" }, { - "enumerant" : "IOPipesINTEL", + "enumerant" : "IOPipesALTERA", + "aliases" : [ "IOPipesINTEL" ], "value" : 5943, - "extensions" : [ "SPV_INTEL_io_pipes" ], + "extensions" : [ "SPV_ALTERA_io_pipes", "SPV_INTEL_io_pipes" ], "version" : "None" }, { - "enumerant" : "BlockingPipesINTEL", + "enumerant" : "BlockingPipesALTERA", + "aliases" : [ "BlockingPipesINTEL" ], "value" : 5945, - "extensions" : [ "SPV_INTEL_blocking_pipes" ], + "extensions" : [ "SPV_ALTERA_blocking_pipes", "SPV_INTEL_blocking_pipes" ], "version" : "None" }, { - "enumerant" : "FPGARegINTEL", + "enumerant" : "FPGARegALTERA", + "aliases" : [ "FPGARegINTEL" ], "value" : 5948, - "extensions" : [ "SPV_INTEL_fpga_reg" ], + "extensions" : [ "SPV_ALTERA_fpga_reg", "SPV_INTEL_fpga_reg" ], "version" : "None" }, { @@ -17683,10 +18279,11 @@ "version" : "None" }, { - "enumerant" : "FPGAClusterAttributesV2INTEL", + "enumerant" : "FPGAClusterAttributesV2ALTERA", + "aliases" : [ "FPGAClusterAttributesV2INTEL" ], "value" : 6150, - "capabilities" : [ "FPGAClusterAttributesINTEL" ], - "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ], + "capabilities" : [ "FPGAClusterAttributesALTERA" ], + "extensions" : [ "SPV_ALTERA_fpga_cluster_attributes", "SPV_INTEL_fpga_cluster_attributes" ], "version" : "None" }, { @@ -17697,9 +18294,10 @@ "version" : "None" }, { - "enumerant" : "TaskSequenceINTEL", + "enumerant" : "TaskSequenceALTERA", + "aliases" : [ "TaskSequenceINTEL" ], "value" : 6162, - "extensions" : [ "SPV_INTEL_task_sequence" ], + "extensions" : [ "SPV_ALTERA_task_sequence", "SPV_INTEL_task_sequence" ], "version" : "None" }, { @@ -17709,15 +18307,17 @@ "version" : "None" }, { - "enumerant" : "FPGALatencyControlINTEL", + "enumerant" : "FPGALatencyControlALTERA", + "aliases" : [ "FPGALatencyControlINTEL" ], "value" : 6171, - "extensions" : [ "SPV_INTEL_fpga_latency_control" ], + "extensions" : [ "SPV_ALTERA_fpga_latency_control", "SPV_INTEL_fpga_latency_control" ], "version" : "None" }, { - "enumerant" : "FPGAArgumentInterfacesINTEL", + "enumerant" : "FPGAArgumentInterfacesALTERA", + "aliases" : [ "FPGAArgumentInterfacesINTEL" ], "value" : 6174, - "extensions" : [ "SPV_INTEL_fpga_argument_interfaces" ], + "extensions" : [ "SPV_ALTERA_fpga_argument_interfaces", "SPV_INTEL_fpga_argument_interfaces" ], "version" : "None" }, { @@ -17727,9 +18327,10 @@ "version" : "None" }, { - "enumerant" : "GlobalVariableFPGADecorationsINTEL", + "enumerant" : "GlobalVariableFPGADecorationsALTERA", + "aliases" : [ "GlobalVariableFPGADecorationsINTEL" ], "value" : 6189, - "extensions": [ "SPV_INTEL_global_variable_fpga_decorations" ], + "extensions" : [ "SPV_ALTERA_global_variable_fpga_decorations", "SPV_INTEL_global_variable_fpga_decorations" ], "version" : "None" }, { @@ -17957,11 +18558,13 @@ { "enumerant" : "RowBlockedInterleavedARM", "value" : 4202, + "capabilities" : [ "CooperativeMatrixLayoutsARM" ], "version" : "None" }, { "enumerant" : "ColumnBlockedInterleavedARM", "value" : 4203, + "capabilities" : [ "CooperativeMatrixLayoutsARM" ], "version" : "None" } ] @@ -18073,15 +18676,17 @@ "kind" : "InitializationModeQualifier", "enumerants" : [ { - "enumerant" : "InitOnDeviceReprogramINTEL", + "enumerant" : "InitOnDeviceReprogramALTERA", + "aliases" : [ "InitOnDeviceReprogramINTEL" ], "value" : 0, - "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "capabilities" : [ "GlobalVariableFPGADecorationsALTERA" ], "version" : "None" }, { - "enumerant" : "InitOnDeviceResetINTEL", + "enumerant" : "InitOnDeviceResetALTERA", + "aliases" : [ "InitOnDeviceResetINTEL" ], "value" : 1, - "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ], + "capabilities" : [ "GlobalVariableFPGADecorationsALTERA" ], "version" : "None" } ] diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.h b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.h index 26bc6d9..e8b5ad1 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.h +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.h @@ -195,6 +195,7 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeSampleInterlockUnorderedEXT = 5369, SpvExecutionModeShadingRateInterlockOrderedEXT = 5370, SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371, + SpvExecutionModeShader64BitIndexingEXT = 5427, SpvExecutionModeSharedLocalMemorySizeINTEL = 5618, SpvExecutionModeRoundingModeRTPINTEL = 5620, SpvExecutionModeRoundingModeRTNINTEL = 5621, @@ -249,8 +250,11 @@ typedef enum SpvStorageClass_ { SpvStorageClassPhysicalStorageBufferEXT = 5349, SpvStorageClassHitObjectAttributeNV = 5385, SpvStorageClassTaskPayloadWorkgroupEXT = 5402, + SpvStorageClassHitObjectAttributeEXT = 5411, SpvStorageClassCodeSectionINTEL = 5605, + SpvStorageClassDeviceOnlyALTERA = 5936, SpvStorageClassDeviceOnlyINTEL = 5936, + SpvStorageClassHostOnlyALTERA = 5937, SpvStorageClassHostOnlyINTEL = 5937, SpvStorageClassMax = 0x7fffffff, } SpvStorageClass; @@ -489,6 +493,7 @@ typedef enum SpvFunctionParameterAttribute_ { SpvFunctionParameterAttributeNoCapture = 5, SpvFunctionParameterAttributeNoWrite = 6, SpvFunctionParameterAttributeNoReadWrite = 7, + SpvFunctionParameterAttributeRuntimeAlignedALTERA = 5940, SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940, SpvFunctionParameterAttributeMax = 0x7fffffff, } SpvFunctionParameterAttribute; @@ -573,6 +578,7 @@ typedef enum SpvDecoration_ { SpvDecorationAliasedPointer = 5356, SpvDecorationAliasedPointerEXT = 5356, SpvDecorationHitObjectShaderRecordBufferNV = 5386, + SpvDecorationHitObjectShaderRecordBufferEXT = 5389, SpvDecorationBindlessSamplerNV = 5398, SpvDecorationBindlessImageNV = 5399, SpvDecorationBoundSamplerNV = 5400, @@ -593,54 +599,95 @@ typedef enum SpvDecoration_ { SpvDecorationUserTypeGOOGLE = 5636, SpvDecorationFunctionRoundingModeINTEL = 5822, SpvDecorationFunctionDenormModeINTEL = 5823, + SpvDecorationRegisterALTERA = 5825, SpvDecorationRegisterINTEL = 5825, + SpvDecorationMemoryALTERA = 5826, SpvDecorationMemoryINTEL = 5826, + SpvDecorationNumbanksALTERA = 5827, SpvDecorationNumbanksINTEL = 5827, + SpvDecorationBankwidthALTERA = 5828, SpvDecorationBankwidthINTEL = 5828, + SpvDecorationMaxPrivateCopiesALTERA = 5829, SpvDecorationMaxPrivateCopiesINTEL = 5829, + SpvDecorationSinglepumpALTERA = 5830, SpvDecorationSinglepumpINTEL = 5830, + SpvDecorationDoublepumpALTERA = 5831, SpvDecorationDoublepumpINTEL = 5831, + SpvDecorationMaxReplicatesALTERA = 5832, SpvDecorationMaxReplicatesINTEL = 5832, + SpvDecorationSimpleDualPortALTERA = 5833, SpvDecorationSimpleDualPortINTEL = 5833, + SpvDecorationMergeALTERA = 5834, SpvDecorationMergeINTEL = 5834, + SpvDecorationBankBitsALTERA = 5835, SpvDecorationBankBitsINTEL = 5835, + SpvDecorationForcePow2DepthALTERA = 5836, SpvDecorationForcePow2DepthINTEL = 5836, + SpvDecorationStridesizeALTERA = 5883, SpvDecorationStridesizeINTEL = 5883, + SpvDecorationWordsizeALTERA = 5884, SpvDecorationWordsizeINTEL = 5884, + SpvDecorationTrueDualPortALTERA = 5885, SpvDecorationTrueDualPortINTEL = 5885, + SpvDecorationBurstCoalesceALTERA = 5899, SpvDecorationBurstCoalesceINTEL = 5899, + SpvDecorationCacheSizeALTERA = 5900, SpvDecorationCacheSizeINTEL = 5900, + SpvDecorationDontStaticallyCoalesceALTERA = 5901, SpvDecorationDontStaticallyCoalesceINTEL = 5901, + SpvDecorationPrefetchALTERA = 5902, SpvDecorationPrefetchINTEL = 5902, + SpvDecorationStallEnableALTERA = 5905, SpvDecorationStallEnableINTEL = 5905, + SpvDecorationFuseLoopsInFunctionALTERA = 5907, SpvDecorationFuseLoopsInFunctionINTEL = 5907, + SpvDecorationMathOpDSPModeALTERA = 5909, SpvDecorationMathOpDSPModeINTEL = 5909, SpvDecorationAliasScopeINTEL = 5914, SpvDecorationNoAliasINTEL = 5915, + SpvDecorationInitiationIntervalALTERA = 5917, SpvDecorationInitiationIntervalINTEL = 5917, + SpvDecorationMaxConcurrencyALTERA = 5918, SpvDecorationMaxConcurrencyINTEL = 5918, + SpvDecorationPipelineEnableALTERA = 5919, SpvDecorationPipelineEnableINTEL = 5919, + SpvDecorationBufferLocationALTERA = 5921, SpvDecorationBufferLocationINTEL = 5921, + SpvDecorationIOPipeStorageALTERA = 5944, SpvDecorationIOPipeStorageINTEL = 5944, SpvDecorationFunctionFloatingPointModeINTEL = 6080, SpvDecorationSingleElementVectorINTEL = 6085, SpvDecorationVectorComputeCallableFunctionINTEL = 6087, SpvDecorationMediaBlockIOINTEL = 6140, + SpvDecorationStallFreeALTERA = 6151, SpvDecorationStallFreeINTEL = 6151, SpvDecorationFPMaxErrorDecorationINTEL = 6170, + SpvDecorationLatencyControlLabelALTERA = 6172, SpvDecorationLatencyControlLabelINTEL = 6172, + SpvDecorationLatencyControlConstraintALTERA = 6173, SpvDecorationLatencyControlConstraintINTEL = 6173, + SpvDecorationConduitKernelArgumentALTERA = 6175, SpvDecorationConduitKernelArgumentINTEL = 6175, + SpvDecorationRegisterMapKernelArgumentALTERA = 6176, SpvDecorationRegisterMapKernelArgumentINTEL = 6176, + SpvDecorationMMHostInterfaceAddressWidthALTERA = 6177, SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177, + SpvDecorationMMHostInterfaceDataWidthALTERA = 6178, SpvDecorationMMHostInterfaceDataWidthINTEL = 6178, + SpvDecorationMMHostInterfaceLatencyALTERA = 6179, SpvDecorationMMHostInterfaceLatencyINTEL = 6179, + SpvDecorationMMHostInterfaceReadWriteModeALTERA = 6180, SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180, + SpvDecorationMMHostInterfaceMaxBurstALTERA = 6181, SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181, + SpvDecorationMMHostInterfaceWaitRequestALTERA = 6182, SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182, + SpvDecorationStableKernelArgumentALTERA = 6183, SpvDecorationStableKernelArgumentINTEL = 6183, SpvDecorationHostAccessINTEL = 6188, + SpvDecorationInitModeALTERA = 6190, SpvDecorationInitModeINTEL = 6190, + SpvDecorationImplementInRegisterMapALTERA = 6191, SpvDecorationImplementInRegisterMapINTEL = 6191, SpvDecorationConditionalINTEL = 6247, SpvDecorationCacheControlLoadINTEL = 6442, @@ -822,15 +869,25 @@ typedef enum SpvLoopControlShift_ { SpvLoopControlIterationMultipleShift = 6, SpvLoopControlPeelCountShift = 7, SpvLoopControlPartialCountShift = 8, + SpvLoopControlInitiationIntervalALTERAShift = 16, SpvLoopControlInitiationIntervalINTELShift = 16, + SpvLoopControlMaxConcurrencyALTERAShift = 17, SpvLoopControlMaxConcurrencyINTELShift = 17, + SpvLoopControlDependencyArrayALTERAShift = 18, SpvLoopControlDependencyArrayINTELShift = 18, + SpvLoopControlPipelineEnableALTERAShift = 19, SpvLoopControlPipelineEnableINTELShift = 19, + SpvLoopControlLoopCoalesceALTERAShift = 20, SpvLoopControlLoopCoalesceINTELShift = 20, + SpvLoopControlMaxInterleavingALTERAShift = 21, SpvLoopControlMaxInterleavingINTELShift = 21, + SpvLoopControlSpeculatedIterationsALTERAShift = 22, SpvLoopControlSpeculatedIterationsINTELShift = 22, + SpvLoopControlNoFusionALTERAShift = 23, SpvLoopControlNoFusionINTELShift = 23, + SpvLoopControlLoopCountALTERAShift = 24, SpvLoopControlLoopCountINTELShift = 24, + SpvLoopControlMaxReinvocationDelayALTERAShift = 25, SpvLoopControlMaxReinvocationDelayINTELShift = 25, SpvLoopControlMax = 0x7fffffff, } SpvLoopControlShift; @@ -846,15 +903,25 @@ typedef enum SpvLoopControlMask_ { SpvLoopControlIterationMultipleMask = 0x00000040, SpvLoopControlPeelCountMask = 0x00000080, SpvLoopControlPartialCountMask = 0x00000100, + SpvLoopControlInitiationIntervalALTERAMask = 0x00010000, SpvLoopControlInitiationIntervalINTELMask = 0x00010000, + SpvLoopControlMaxConcurrencyALTERAMask = 0x00020000, SpvLoopControlMaxConcurrencyINTELMask = 0x00020000, + SpvLoopControlDependencyArrayALTERAMask = 0x00040000, SpvLoopControlDependencyArrayINTELMask = 0x00040000, + SpvLoopControlPipelineEnableALTERAMask = 0x00080000, SpvLoopControlPipelineEnableINTELMask = 0x00080000, + SpvLoopControlLoopCoalesceALTERAMask = 0x00100000, SpvLoopControlLoopCoalesceINTELMask = 0x00100000, + SpvLoopControlMaxInterleavingALTERAMask = 0x00200000, SpvLoopControlMaxInterleavingINTELMask = 0x00200000, + SpvLoopControlSpeculatedIterationsALTERAMask = 0x00400000, SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000, + SpvLoopControlNoFusionALTERAMask = 0x00800000, SpvLoopControlNoFusionINTELMask = 0x00800000, + SpvLoopControlLoopCountALTERAMask = 0x01000000, SpvLoopControlLoopCountINTELMask = 0x01000000, + SpvLoopControlMaxReinvocationDelayALTERAMask = 0x02000000, SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000, } SpvLoopControlMask; @@ -1188,6 +1255,7 @@ typedef enum SpvCapability_ { SpvCapabilityDisplacementMicromapNV = 5380, SpvCapabilityRayTracingOpacityMicromapEXT = 5381, SpvCapabilityShaderInvocationReorderNV = 5383, + SpvCapabilityShaderInvocationReorderEXT = 5388, SpvCapabilityBindlessTextureNV = 5390, SpvCapabilityRayQueryPositionFetchKHR = 5391, SpvCapabilityCooperativeVectorNV = 5394, @@ -1196,6 +1264,7 @@ typedef enum SpvCapability_ { SpvCapabilityRawAccessChainsNV = 5414, SpvCapabilityRayTracingSpheresGeometryNV = 5418, SpvCapabilityRayTracingLinearSweptSpheresGeometryNV = 5419, + SpvCapabilityShader64BitIndexingEXT = 5426, SpvCapabilityCooperativeMatrixReductionsNV = 5430, SpvCapabilityCooperativeMatrixConversionsNV = 5431, SpvCapabilityCooperativeMatrixPerElementOperationsNV = 5432, @@ -1225,26 +1294,42 @@ typedef enum SpvCapability_ { SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, SpvCapabilityVariableLengthArrayINTEL = 5817, SpvCapabilityFunctionFloatControlINTEL = 5821, + SpvCapabilityFPGAMemoryAttributesALTERA = 5824, SpvCapabilityFPGAMemoryAttributesINTEL = 5824, SpvCapabilityFPFastMathModeINTEL = 5837, + SpvCapabilityArbitraryPrecisionIntegersALTERA = 5844, SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844, + SpvCapabilityArbitraryPrecisionFloatingPointALTERA = 5845, SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845, SpvCapabilityUnstructuredLoopControlsINTEL = 5886, + SpvCapabilityFPGALoopControlsALTERA = 5888, SpvCapabilityFPGALoopControlsINTEL = 5888, SpvCapabilityKernelAttributesINTEL = 5892, SpvCapabilityFPGAKernelAttributesINTEL = 5897, + SpvCapabilityFPGAMemoryAccessesALTERA = 5898, SpvCapabilityFPGAMemoryAccessesINTEL = 5898, + SpvCapabilityFPGAClusterAttributesALTERA = 5904, SpvCapabilityFPGAClusterAttributesINTEL = 5904, + SpvCapabilityLoopFuseALTERA = 5906, SpvCapabilityLoopFuseINTEL = 5906, + SpvCapabilityFPGADSPControlALTERA = 5908, SpvCapabilityFPGADSPControlINTEL = 5908, SpvCapabilityMemoryAccessAliasingINTEL = 5910, + SpvCapabilityFPGAInvocationPipeliningAttributesALTERA = 5916, SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916, + SpvCapabilityFPGABufferLocationALTERA = 5920, SpvCapabilityFPGABufferLocationINTEL = 5920, + SpvCapabilityArbitraryPrecisionFixedPointALTERA = 5922, SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922, + SpvCapabilityUSMStorageClassesALTERA = 5935, SpvCapabilityUSMStorageClassesINTEL = 5935, + SpvCapabilityRuntimeAlignedAttributeALTERA = 5939, SpvCapabilityRuntimeAlignedAttributeINTEL = 5939, + SpvCapabilityIOPipesALTERA = 5943, SpvCapabilityIOPipesINTEL = 5943, + SpvCapabilityBlockingPipesALTERA = 5945, SpvCapabilityBlockingPipesINTEL = 5945, + SpvCapabilityFPGARegALTERA = 5948, SpvCapabilityFPGARegINTEL = 5948, SpvCapabilityDotProductInputAll = 6016, SpvCapabilityDotProductInputAllKHR = 6016, @@ -1271,13 +1356,18 @@ typedef enum SpvCapability_ { SpvCapabilityBFloat16ConversionINTEL = 6115, SpvCapabilitySplitBarrierINTEL = 6141, SpvCapabilityArithmeticFenceEXT = 6144, + SpvCapabilityFPGAClusterAttributesV2ALTERA = 6150, SpvCapabilityFPGAClusterAttributesV2INTEL = 6150, SpvCapabilityFPGAKernelAttributesv2INTEL = 6161, + SpvCapabilityTaskSequenceALTERA = 6162, SpvCapabilityTaskSequenceINTEL = 6162, SpvCapabilityFPMaxErrorINTEL = 6169, + SpvCapabilityFPGALatencyControlALTERA = 6171, SpvCapabilityFPGALatencyControlINTEL = 6171, + SpvCapabilityFPGAArgumentInterfacesALTERA = 6174, SpvCapabilityFPGAArgumentInterfacesINTEL = 6174, SpvCapabilityGlobalVariableHostAccessINTEL = 6187, + SpvCapabilityGlobalVariableFPGADecorationsALTERA = 6189, SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189, SpvCapabilitySubgroupBufferPrefetchINTEL = 6220, SpvCapabilitySubgroup2DBlockIOINTEL = 6228, @@ -1489,7 +1579,9 @@ typedef enum SpvTensorOperandsMask_ { } SpvTensorOperandsMask; typedef enum SpvInitializationModeQualifier_ { + SpvInitializationModeQualifierInitOnDeviceReprogramALTERA = 0, SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0, + SpvInitializationModeQualifierInitOnDeviceResetALTERA = 1, SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1, SpvInitializationModeQualifierMax = 0x7fffffff, } SpvInitializationModeQualifier; @@ -2097,6 +2189,36 @@ typedef enum SpvOp_ { SpvOpFetchMicroTriangleVertexBarycentricNV = 5301, SpvOpCooperativeVectorLoadNV = 5302, SpvOpCooperativeVectorStoreNV = 5303, + SpvOpHitObjectRecordFromQueryEXT = 5304, + SpvOpHitObjectRecordMissEXT = 5305, + SpvOpHitObjectRecordMissMotionEXT = 5306, + SpvOpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307, + SpvOpHitObjectGetRayFlagsEXT = 5308, + SpvOpHitObjectSetShaderBindingTableRecordIndexEXT = 5309, + SpvOpHitObjectReorderExecuteShaderEXT = 5310, + SpvOpHitObjectTraceReorderExecuteEXT = 5311, + SpvOpHitObjectTraceMotionReorderExecuteEXT = 5312, + SpvOpTypeHitObjectEXT = 5313, + SpvOpReorderThreadWithHintEXT = 5314, + SpvOpReorderThreadWithHitObjectEXT = 5315, + SpvOpHitObjectTraceRayEXT = 5316, + SpvOpHitObjectTraceRayMotionEXT = 5317, + SpvOpHitObjectRecordEmptyEXT = 5318, + SpvOpHitObjectExecuteShaderEXT = 5319, + SpvOpHitObjectGetCurrentTimeEXT = 5320, + SpvOpHitObjectGetAttributesEXT = 5321, + SpvOpHitObjectGetHitKindEXT = 5322, + SpvOpHitObjectGetPrimitiveIndexEXT = 5323, + SpvOpHitObjectGetGeometryIndexEXT = 5324, + SpvOpHitObjectGetInstanceIdEXT = 5325, + SpvOpHitObjectGetInstanceCustomIndexEXT = 5326, + SpvOpHitObjectGetObjectRayOriginEXT = 5327, + SpvOpHitObjectGetObjectRayDirectionEXT = 5328, + SpvOpHitObjectGetWorldRayDirectionEXT = 5329, + SpvOpHitObjectGetWorldRayOriginEXT = 5330, + SpvOpHitObjectGetObjectToWorldEXT = 5331, + SpvOpHitObjectGetWorldToObjectEXT = 5332, + SpvOpHitObjectGetRayTMaxEXT = 5333, SpvOpReportIntersectionKHR = 5334, SpvOpReportIntersectionNV = 5334, SpvOpIgnoreIntersectionNV = 5335, @@ -2111,6 +2233,12 @@ typedef enum SpvOp_ { SpvOpRayQueryGetClusterIdNV = 5345, SpvOpRayQueryGetIntersectionClusterIdNV = 5345, SpvOpHitObjectGetClusterIdNV = 5346, + SpvOpHitObjectGetRayTMinEXT = 5347, + SpvOpHitObjectGetShaderBindingTableRecordIndexEXT = 5348, + SpvOpHitObjectGetShaderRecordBufferHandleEXT = 5349, + SpvOpHitObjectIsEmptyEXT = 5350, + SpvOpHitObjectIsHitEXT = 5351, + SpvOpHitObjectIsMissEXT = 5352, SpvOpTypeCooperativeMatrixNV = 5358, SpvOpCooperativeMatrixLoadNV = 5359, SpvOpCooperativeMatrixStoreNV = 5360, @@ -2317,23 +2445,41 @@ typedef enum SpvOp_ { SpvOpVariableLengthArrayINTEL = 5818, SpvOpSaveMemoryINTEL = 5819, SpvOpRestoreMemoryINTEL = 5820, + SpvOpArbitraryFloatSinCosPiALTERA = 5840, SpvOpArbitraryFloatSinCosPiINTEL = 5840, + SpvOpArbitraryFloatCastALTERA = 5841, SpvOpArbitraryFloatCastINTEL = 5841, + SpvOpArbitraryFloatCastFromIntALTERA = 5842, SpvOpArbitraryFloatCastFromIntINTEL = 5842, + SpvOpArbitraryFloatCastToIntALTERA = 5843, SpvOpArbitraryFloatCastToIntINTEL = 5843, + SpvOpArbitraryFloatAddALTERA = 5846, SpvOpArbitraryFloatAddINTEL = 5846, + SpvOpArbitraryFloatSubALTERA = 5847, SpvOpArbitraryFloatSubINTEL = 5847, + SpvOpArbitraryFloatMulALTERA = 5848, SpvOpArbitraryFloatMulINTEL = 5848, + SpvOpArbitraryFloatDivALTERA = 5849, SpvOpArbitraryFloatDivINTEL = 5849, + SpvOpArbitraryFloatGTALTERA = 5850, SpvOpArbitraryFloatGTINTEL = 5850, + SpvOpArbitraryFloatGEALTERA = 5851, SpvOpArbitraryFloatGEINTEL = 5851, + SpvOpArbitraryFloatLTALTERA = 5852, SpvOpArbitraryFloatLTINTEL = 5852, + SpvOpArbitraryFloatLEALTERA = 5853, SpvOpArbitraryFloatLEINTEL = 5853, + SpvOpArbitraryFloatEQALTERA = 5854, SpvOpArbitraryFloatEQINTEL = 5854, + SpvOpArbitraryFloatRecipALTERA = 5855, SpvOpArbitraryFloatRecipINTEL = 5855, + SpvOpArbitraryFloatRSqrtALTERA = 5856, SpvOpArbitraryFloatRSqrtINTEL = 5856, + SpvOpArbitraryFloatCbrtALTERA = 5857, SpvOpArbitraryFloatCbrtINTEL = 5857, + SpvOpArbitraryFloatHypotALTERA = 5858, SpvOpArbitraryFloatHypotINTEL = 5858, + SpvOpArbitraryFloatSqrtALTERA = 5859, SpvOpArbitraryFloatSqrtINTEL = 5859, SpvOpArbitraryFloatLogINTEL = 5860, SpvOpArbitraryFloatLog2INTEL = 5861, @@ -2362,21 +2508,37 @@ typedef enum SpvOp_ { SpvOpAliasDomainDeclINTEL = 5911, SpvOpAliasScopeDeclINTEL = 5912, SpvOpAliasScopeListDeclINTEL = 5913, + SpvOpFixedSqrtALTERA = 5923, SpvOpFixedSqrtINTEL = 5923, + SpvOpFixedRecipALTERA = 5924, SpvOpFixedRecipINTEL = 5924, + SpvOpFixedRsqrtALTERA = 5925, SpvOpFixedRsqrtINTEL = 5925, + SpvOpFixedSinALTERA = 5926, SpvOpFixedSinINTEL = 5926, + SpvOpFixedCosALTERA = 5927, SpvOpFixedCosINTEL = 5927, + SpvOpFixedSinCosALTERA = 5928, SpvOpFixedSinCosINTEL = 5928, + SpvOpFixedSinPiALTERA = 5929, SpvOpFixedSinPiINTEL = 5929, + SpvOpFixedCosPiALTERA = 5930, SpvOpFixedCosPiINTEL = 5930, + SpvOpFixedSinCosPiALTERA = 5931, SpvOpFixedSinCosPiINTEL = 5931, + SpvOpFixedLogALTERA = 5932, SpvOpFixedLogINTEL = 5932, + SpvOpFixedExpALTERA = 5933, SpvOpFixedExpINTEL = 5933, + SpvOpPtrCastToCrossWorkgroupALTERA = 5934, SpvOpPtrCastToCrossWorkgroupINTEL = 5934, + SpvOpCrossWorkgroupCastToPtrALTERA = 5938, SpvOpCrossWorkgroupCastToPtrINTEL = 5938, + SpvOpReadPipeBlockingALTERA = 5946, SpvOpReadPipeBlockingINTEL = 5946, + SpvOpWritePipeBlockingALTERA = 5947, SpvOpWritePipeBlockingINTEL = 5947, + SpvOpFPGARegALTERA = 5949, SpvOpFPGARegINTEL = 5949, SpvOpRayQueryGetRayTMinKHR = 6016, SpvOpRayQueryGetRayFlagsKHR = 6017, @@ -2406,10 +2568,15 @@ typedef enum SpvOp_ { SpvOpControlBarrierArriveINTEL = 6142, SpvOpControlBarrierWaitINTEL = 6143, SpvOpArithmeticFenceEXT = 6145, + SpvOpTaskSequenceCreateALTERA = 6163, SpvOpTaskSequenceCreateINTEL = 6163, + SpvOpTaskSequenceAsyncALTERA = 6164, SpvOpTaskSequenceAsyncINTEL = 6164, + SpvOpTaskSequenceGetALTERA = 6165, SpvOpTaskSequenceGetINTEL = 6165, + SpvOpTaskSequenceReleaseALTERA = 6166, SpvOpTaskSequenceReleaseINTEL = 6166, + SpvOpTypeTaskSequenceALTERA = 6199, SpvOpTypeTaskSequenceINTEL = 6199, SpvOpSubgroupBlockPrefetchINTEL = 6221, SpvOpSubgroup2DBlockLoadINTEL = 6231, @@ -2936,6 +3103,36 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeVectorLoadNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeVectorStoreNV: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordFromQueryEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordMissEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordMissMotionEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetIntersectionTriangleVertexPositionsEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetRayFlagsEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectSetShaderBindingTableRecordIndexEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectReorderExecuteShaderEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectTraceReorderExecuteEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectTraceMotionReorderExecuteEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpTypeHitObjectEXT: *hasResult = true; *hasResultType = false; break; + case SpvOpReorderThreadWithHintEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpReorderThreadWithHitObjectEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectTraceRayEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectTraceRayMotionEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectRecordEmptyEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectExecuteShaderEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetCurrentTimeEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetAttributesEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpHitObjectGetHitKindEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetPrimitiveIndexEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetGeometryIndexEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetInstanceIdEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetInstanceCustomIndexEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetObjectRayOriginEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetObjectRayDirectionEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetWorldRayDirectionEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetWorldRayOriginEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetObjectToWorldEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetWorldToObjectEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetRayTMaxEXT: *hasResult = true; *hasResultType = true; break; case SpvOpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break; case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; @@ -2947,6 +3144,12 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case SpvOpRayQueryGetIntersectionClusterIdNV: *hasResult = true; *hasResultType = true; break; case SpvOpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetRayTMinEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetShaderBindingTableRecordIndexEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectGetShaderRecordBufferHandleEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectIsEmptyEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectIsHitEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpHitObjectIsMissEXT: *hasResult = true; *hasResultType = true; break; case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; @@ -3150,24 +3353,24 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSinCosPiALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCastALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCastFromIntALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCastToIntALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatAddALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSubALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatMulALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatDivALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatGTALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatGEALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLTALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatLEALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatEQALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatRecipALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatRSqrtALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatCbrtALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatHypotALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpArbitraryFloatSqrtALTERA: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; @@ -3195,22 +3398,22 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; case SpvOpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSqrtALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedRecipALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedRsqrtALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedCosALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinCosALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinPiALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedCosPiALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedSinCosPiALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedLogALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFixedExpALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpFPGARegALTERA: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; @@ -3239,11 +3442,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break; - case SpvOpTaskSequenceCreateINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpTaskSequenceAsyncINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpTaskSequenceGetINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpTaskSequenceReleaseINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpTypeTaskSequenceINTEL: *hasResult = true; *hasResultType = false; break; + case SpvOpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break; + case SpvOpTaskSequenceGetALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpTaskSequenceReleaseALTERA: *hasResult = false; *hasResultType = false; break; + case SpvOpTypeTaskSequenceALTERA: *hasResult = true; *hasResultType = false; break; case SpvOpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroup2DBlockLoadINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSubgroup2DBlockLoadTransformINTEL: *hasResult = false; *hasResultType = false; break; @@ -3419,6 +3622,7 @@ inline const char* SpvExecutionModeToString(SpvExecutionMode value) { case SpvExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; case SpvExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; + case SpvExecutionModeShader64BitIndexingEXT: return "Shader64BitIndexingEXT"; case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL"; case SpvExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL"; case SpvExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL"; @@ -3468,9 +3672,10 @@ inline const char* SpvStorageClassToString(SpvStorageClass value) { case SpvStorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer"; case SpvStorageClassHitObjectAttributeNV: return "HitObjectAttributeNV"; case SpvStorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; + case SpvStorageClassHitObjectAttributeEXT: return "HitObjectAttributeEXT"; case SpvStorageClassCodeSectionINTEL: return "CodeSectionINTEL"; - case SpvStorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL"; - case SpvStorageClassHostOnlyINTEL: return "HostOnlyINTEL"; + case SpvStorageClassDeviceOnlyALTERA: return "DeviceOnlyALTERA"; + case SpvStorageClassHostOnlyALTERA: return "HostOnlyALTERA"; default: return "Unknown"; } } @@ -3652,7 +3857,7 @@ inline const char* SpvFunctionParameterAttributeToString(SpvFunctionParameterAtt case SpvFunctionParameterAttributeNoCapture: return "NoCapture"; case SpvFunctionParameterAttributeNoWrite: return "NoWrite"; case SpvFunctionParameterAttributeNoReadWrite: return "NoReadWrite"; - case SpvFunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL"; + case SpvFunctionParameterAttributeRuntimeAlignedALTERA: return "RuntimeAlignedALTERA"; default: return "Unknown"; } } @@ -3733,6 +3938,7 @@ inline const char* SpvDecorationToString(SpvDecoration value) { case SpvDecorationRestrictPointer: return "RestrictPointer"; case SpvDecorationAliasedPointer: return "AliasedPointer"; case SpvDecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV"; + case SpvDecorationHitObjectShaderRecordBufferEXT: return "HitObjectShaderRecordBufferEXT"; case SpvDecorationBindlessSamplerNV: return "BindlessSamplerNV"; case SpvDecorationBindlessImageNV: return "BindlessImageNV"; case SpvDecorationBoundSamplerNV: return "BoundSamplerNV"; @@ -3751,55 +3957,55 @@ inline const char* SpvDecorationToString(SpvDecoration value) { case SpvDecorationUserTypeGOOGLE: return "UserTypeGOOGLE"; case SpvDecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL"; case SpvDecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL"; - case SpvDecorationRegisterINTEL: return "RegisterINTEL"; - case SpvDecorationMemoryINTEL: return "MemoryINTEL"; - case SpvDecorationNumbanksINTEL: return "NumbanksINTEL"; - case SpvDecorationBankwidthINTEL: return "BankwidthINTEL"; - case SpvDecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL"; - case SpvDecorationSinglepumpINTEL: return "SinglepumpINTEL"; - case SpvDecorationDoublepumpINTEL: return "DoublepumpINTEL"; - case SpvDecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL"; - case SpvDecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL"; - case SpvDecorationMergeINTEL: return "MergeINTEL"; - case SpvDecorationBankBitsINTEL: return "BankBitsINTEL"; - case SpvDecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL"; - case SpvDecorationStridesizeINTEL: return "StridesizeINTEL"; - case SpvDecorationWordsizeINTEL: return "WordsizeINTEL"; - case SpvDecorationTrueDualPortINTEL: return "TrueDualPortINTEL"; - case SpvDecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL"; - case SpvDecorationCacheSizeINTEL: return "CacheSizeINTEL"; - case SpvDecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL"; - case SpvDecorationPrefetchINTEL: return "PrefetchINTEL"; - case SpvDecorationStallEnableINTEL: return "StallEnableINTEL"; - case SpvDecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL"; - case SpvDecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL"; + case SpvDecorationRegisterALTERA: return "RegisterALTERA"; + case SpvDecorationMemoryALTERA: return "MemoryALTERA"; + case SpvDecorationNumbanksALTERA: return "NumbanksALTERA"; + case SpvDecorationBankwidthALTERA: return "BankwidthALTERA"; + case SpvDecorationMaxPrivateCopiesALTERA: return "MaxPrivateCopiesALTERA"; + case SpvDecorationSinglepumpALTERA: return "SinglepumpALTERA"; + case SpvDecorationDoublepumpALTERA: return "DoublepumpALTERA"; + case SpvDecorationMaxReplicatesALTERA: return "MaxReplicatesALTERA"; + case SpvDecorationSimpleDualPortALTERA: return "SimpleDualPortALTERA"; + case SpvDecorationMergeALTERA: return "MergeALTERA"; + case SpvDecorationBankBitsALTERA: return "BankBitsALTERA"; + case SpvDecorationForcePow2DepthALTERA: return "ForcePow2DepthALTERA"; + case SpvDecorationStridesizeALTERA: return "StridesizeALTERA"; + case SpvDecorationWordsizeALTERA: return "WordsizeALTERA"; + case SpvDecorationTrueDualPortALTERA: return "TrueDualPortALTERA"; + case SpvDecorationBurstCoalesceALTERA: return "BurstCoalesceALTERA"; + case SpvDecorationCacheSizeALTERA: return "CacheSizeALTERA"; + case SpvDecorationDontStaticallyCoalesceALTERA: return "DontStaticallyCoalesceALTERA"; + case SpvDecorationPrefetchALTERA: return "PrefetchALTERA"; + case SpvDecorationStallEnableALTERA: return "StallEnableALTERA"; + case SpvDecorationFuseLoopsInFunctionALTERA: return "FuseLoopsInFunctionALTERA"; + case SpvDecorationMathOpDSPModeALTERA: return "MathOpDSPModeALTERA"; case SpvDecorationAliasScopeINTEL: return "AliasScopeINTEL"; case SpvDecorationNoAliasINTEL: return "NoAliasINTEL"; - case SpvDecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL"; - case SpvDecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL"; - case SpvDecorationPipelineEnableINTEL: return "PipelineEnableINTEL"; - case SpvDecorationBufferLocationINTEL: return "BufferLocationINTEL"; - case SpvDecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL"; + case SpvDecorationInitiationIntervalALTERA: return "InitiationIntervalALTERA"; + case SpvDecorationMaxConcurrencyALTERA: return "MaxConcurrencyALTERA"; + case SpvDecorationPipelineEnableALTERA: return "PipelineEnableALTERA"; + case SpvDecorationBufferLocationALTERA: return "BufferLocationALTERA"; + case SpvDecorationIOPipeStorageALTERA: return "IOPipeStorageALTERA"; case SpvDecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL"; case SpvDecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL"; case SpvDecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL"; case SpvDecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL"; - case SpvDecorationStallFreeINTEL: return "StallFreeINTEL"; + case SpvDecorationStallFreeALTERA: return "StallFreeALTERA"; case SpvDecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL"; - case SpvDecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL"; - case SpvDecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL"; - case SpvDecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL"; - case SpvDecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL"; - case SpvDecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL"; - case SpvDecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL"; - case SpvDecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL"; - case SpvDecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL"; - case SpvDecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL"; - case SpvDecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL"; - case SpvDecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL"; + case SpvDecorationLatencyControlLabelALTERA: return "LatencyControlLabelALTERA"; + case SpvDecorationLatencyControlConstraintALTERA: return "LatencyControlConstraintALTERA"; + case SpvDecorationConduitKernelArgumentALTERA: return "ConduitKernelArgumentALTERA"; + case SpvDecorationRegisterMapKernelArgumentALTERA: return "RegisterMapKernelArgumentALTERA"; + case SpvDecorationMMHostInterfaceAddressWidthALTERA: return "MMHostInterfaceAddressWidthALTERA"; + case SpvDecorationMMHostInterfaceDataWidthALTERA: return "MMHostInterfaceDataWidthALTERA"; + case SpvDecorationMMHostInterfaceLatencyALTERA: return "MMHostInterfaceLatencyALTERA"; + case SpvDecorationMMHostInterfaceReadWriteModeALTERA: return "MMHostInterfaceReadWriteModeALTERA"; + case SpvDecorationMMHostInterfaceMaxBurstALTERA: return "MMHostInterfaceMaxBurstALTERA"; + case SpvDecorationMMHostInterfaceWaitRequestALTERA: return "MMHostInterfaceWaitRequestALTERA"; + case SpvDecorationStableKernelArgumentALTERA: return "StableKernelArgumentALTERA"; case SpvDecorationHostAccessINTEL: return "HostAccessINTEL"; - case SpvDecorationInitModeINTEL: return "InitModeINTEL"; - case SpvDecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; + case SpvDecorationInitModeALTERA: return "InitModeALTERA"; + case SpvDecorationImplementInRegisterMapALTERA: return "ImplementInRegisterMapALTERA"; case SpvDecorationConditionalINTEL: return "ConditionalINTEL"; case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL"; case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL"; @@ -4150,6 +4356,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityDisplacementMicromapNV: return "DisplacementMicromapNV"; case SpvCapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT"; case SpvCapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; + case SpvCapabilityShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT"; case SpvCapabilityBindlessTextureNV: return "BindlessTextureNV"; case SpvCapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR"; case SpvCapabilityCooperativeVectorNV: return "CooperativeVectorNV"; @@ -4158,6 +4365,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityRawAccessChainsNV: return "RawAccessChainsNV"; case SpvCapabilityRayTracingSpheresGeometryNV: return "RayTracingSpheresGeometryNV"; case SpvCapabilityRayTracingLinearSweptSpheresGeometryNV: return "RayTracingLinearSweptSpheresGeometryNV"; + case SpvCapabilityShader64BitIndexingEXT: return "Shader64BitIndexingEXT"; case SpvCapabilityCooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV"; case SpvCapabilityCooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV"; case SpvCapabilityCooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV"; @@ -4187,27 +4395,27 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL"; case SpvCapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL"; case SpvCapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL"; - case SpvCapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL"; + case SpvCapabilityFPGAMemoryAttributesALTERA: return "FPGAMemoryAttributesALTERA"; case SpvCapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL"; - case SpvCapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL"; - case SpvCapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL"; + case SpvCapabilityArbitraryPrecisionIntegersALTERA: return "ArbitraryPrecisionIntegersALTERA"; + case SpvCapabilityArbitraryPrecisionFloatingPointALTERA: return "ArbitraryPrecisionFloatingPointALTERA"; case SpvCapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL"; - case SpvCapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL"; + case SpvCapabilityFPGALoopControlsALTERA: return "FPGALoopControlsALTERA"; case SpvCapabilityKernelAttributesINTEL: return "KernelAttributesINTEL"; case SpvCapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL"; - case SpvCapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL"; - case SpvCapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL"; - case SpvCapabilityLoopFuseINTEL: return "LoopFuseINTEL"; - case SpvCapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL"; + case SpvCapabilityFPGAMemoryAccessesALTERA: return "FPGAMemoryAccessesALTERA"; + case SpvCapabilityFPGAClusterAttributesALTERA: return "FPGAClusterAttributesALTERA"; + case SpvCapabilityLoopFuseALTERA: return "LoopFuseALTERA"; + case SpvCapabilityFPGADSPControlALTERA: return "FPGADSPControlALTERA"; case SpvCapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL"; - case SpvCapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL"; - case SpvCapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL"; - case SpvCapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL"; - case SpvCapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL"; - case SpvCapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL"; - case SpvCapabilityIOPipesINTEL: return "IOPipesINTEL"; - case SpvCapabilityBlockingPipesINTEL: return "BlockingPipesINTEL"; - case SpvCapabilityFPGARegINTEL: return "FPGARegINTEL"; + case SpvCapabilityFPGAInvocationPipeliningAttributesALTERA: return "FPGAInvocationPipeliningAttributesALTERA"; + case SpvCapabilityFPGABufferLocationALTERA: return "FPGABufferLocationALTERA"; + case SpvCapabilityArbitraryPrecisionFixedPointALTERA: return "ArbitraryPrecisionFixedPointALTERA"; + case SpvCapabilityUSMStorageClassesALTERA: return "USMStorageClassesALTERA"; + case SpvCapabilityRuntimeAlignedAttributeALTERA: return "RuntimeAlignedAttributeALTERA"; + case SpvCapabilityIOPipesALTERA: return "IOPipesALTERA"; + case SpvCapabilityBlockingPipesALTERA: return "BlockingPipesALTERA"; + case SpvCapabilityFPGARegALTERA: return "FPGARegALTERA"; case SpvCapabilityDotProductInputAll: return "DotProductInputAll"; case SpvCapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit"; case SpvCapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked"; @@ -4228,14 +4436,14 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL"; case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL"; case SpvCapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT"; - case SpvCapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL"; + case SpvCapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA"; case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL"; - case SpvCapabilityTaskSequenceINTEL: return "TaskSequenceINTEL"; + case SpvCapabilityTaskSequenceALTERA: return "TaskSequenceALTERA"; case SpvCapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL"; - case SpvCapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL"; - case SpvCapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL"; + case SpvCapabilityFPGALatencyControlALTERA: return "FPGALatencyControlALTERA"; + case SpvCapabilityFPGAArgumentInterfacesALTERA: return "FPGAArgumentInterfacesALTERA"; case SpvCapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL"; - case SpvCapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL"; + case SpvCapabilityGlobalVariableFPGADecorationsALTERA: return "GlobalVariableFPGADecorationsALTERA"; case SpvCapabilitySubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL"; case SpvCapabilitySubgroup2DBlockIOINTEL: return "Subgroup2DBlockIOINTEL"; case SpvCapabilitySubgroup2DBlockTransformINTEL: return "Subgroup2DBlockTransformINTEL"; @@ -4359,8 +4567,8 @@ inline const char* SpvTensorClampModeToString(SpvTensorClampMode value) { inline const char* SpvInitializationModeQualifierToString(SpvInitializationModeQualifier value) { switch (value) { - case SpvInitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL"; - case SpvInitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL"; + case SpvInitializationModeQualifierInitOnDeviceReprogramALTERA: return "InitOnDeviceReprogramALTERA"; + case SpvInitializationModeQualifierInitOnDeviceResetALTERA: return "InitOnDeviceResetALTERA"; default: return "Unknown"; } } @@ -4929,6 +5137,36 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV"; case SpvOpCooperativeVectorLoadNV: return "OpCooperativeVectorLoadNV"; case SpvOpCooperativeVectorStoreNV: return "OpCooperativeVectorStoreNV"; + case SpvOpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT"; + case SpvOpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT"; + case SpvOpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT"; + case SpvOpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT"; + case SpvOpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT"; + case SpvOpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT"; + case SpvOpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteShaderEXT"; + case SpvOpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT"; + case SpvOpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT"; + case SpvOpTypeHitObjectEXT: return "OpTypeHitObjectEXT"; + case SpvOpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT"; + case SpvOpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT"; + case SpvOpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT"; + case SpvOpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT"; + case SpvOpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT"; + case SpvOpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT"; + case SpvOpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT"; + case SpvOpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT"; + case SpvOpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT"; + case SpvOpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT"; + case SpvOpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT"; + case SpvOpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT"; + case SpvOpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT"; + case SpvOpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT"; + case SpvOpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT"; + case SpvOpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT"; + case SpvOpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT"; + case SpvOpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT"; + case SpvOpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT"; + case SpvOpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT"; case SpvOpReportIntersectionKHR: return "OpReportIntersectionKHR"; case SpvOpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case SpvOpTerminateRayNV: return "OpTerminateRayNV"; @@ -4940,6 +5178,12 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpExecuteCallableNV: return "OpExecuteCallableNV"; case SpvOpRayQueryGetClusterIdNV: return "OpRayQueryGetClusterIdNV"; case SpvOpHitObjectGetClusterIdNV: return "OpHitObjectGetClusterIdNV"; + case SpvOpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT"; + case SpvOpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT"; + case SpvOpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT"; + case SpvOpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT"; + case SpvOpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT"; + case SpvOpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT"; case SpvOpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; case SpvOpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; case SpvOpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; @@ -5143,24 +5387,24 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL"; case SpvOpSaveMemoryINTEL: return "OpSaveMemoryINTEL"; case SpvOpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL"; - case SpvOpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL"; - case SpvOpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL"; - case SpvOpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL"; - case SpvOpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL"; - case SpvOpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL"; - case SpvOpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL"; - case SpvOpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL"; - case SpvOpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL"; - case SpvOpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL"; - case SpvOpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL"; - case SpvOpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL"; - case SpvOpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL"; - case SpvOpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL"; - case SpvOpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL"; - case SpvOpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL"; - case SpvOpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL"; - case SpvOpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL"; - case SpvOpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL"; + case SpvOpArbitraryFloatSinCosPiALTERA: return "OpArbitraryFloatSinCosPiALTERA"; + case SpvOpArbitraryFloatCastALTERA: return "OpArbitraryFloatCastALTERA"; + case SpvOpArbitraryFloatCastFromIntALTERA: return "OpArbitraryFloatCastFromIntALTERA"; + case SpvOpArbitraryFloatCastToIntALTERA: return "OpArbitraryFloatCastToIntALTERA"; + case SpvOpArbitraryFloatAddALTERA: return "OpArbitraryFloatAddALTERA"; + case SpvOpArbitraryFloatSubALTERA: return "OpArbitraryFloatSubALTERA"; + case SpvOpArbitraryFloatMulALTERA: return "OpArbitraryFloatMulALTERA"; + case SpvOpArbitraryFloatDivALTERA: return "OpArbitraryFloatDivALTERA"; + case SpvOpArbitraryFloatGTALTERA: return "OpArbitraryFloatGTALTERA"; + case SpvOpArbitraryFloatGEALTERA: return "OpArbitraryFloatGEALTERA"; + case SpvOpArbitraryFloatLTALTERA: return "OpArbitraryFloatLTALTERA"; + case SpvOpArbitraryFloatLEALTERA: return "OpArbitraryFloatLEALTERA"; + case SpvOpArbitraryFloatEQALTERA: return "OpArbitraryFloatEQALTERA"; + case SpvOpArbitraryFloatRecipALTERA: return "OpArbitraryFloatRecipALTERA"; + case SpvOpArbitraryFloatRSqrtALTERA: return "OpArbitraryFloatRSqrtALTERA"; + case SpvOpArbitraryFloatCbrtALTERA: return "OpArbitraryFloatCbrtALTERA"; + case SpvOpArbitraryFloatHypotALTERA: return "OpArbitraryFloatHypotALTERA"; + case SpvOpArbitraryFloatSqrtALTERA: return "OpArbitraryFloatSqrtALTERA"; case SpvOpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL"; case SpvOpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL"; case SpvOpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL"; @@ -5188,22 +5432,22 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL"; case SpvOpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL"; case SpvOpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL"; - case SpvOpFixedSqrtINTEL: return "OpFixedSqrtINTEL"; - case SpvOpFixedRecipINTEL: return "OpFixedRecipINTEL"; - case SpvOpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL"; - case SpvOpFixedSinINTEL: return "OpFixedSinINTEL"; - case SpvOpFixedCosINTEL: return "OpFixedCosINTEL"; - case SpvOpFixedSinCosINTEL: return "OpFixedSinCosINTEL"; - case SpvOpFixedSinPiINTEL: return "OpFixedSinPiINTEL"; - case SpvOpFixedCosPiINTEL: return "OpFixedCosPiINTEL"; - case SpvOpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL"; - case SpvOpFixedLogINTEL: return "OpFixedLogINTEL"; - case SpvOpFixedExpINTEL: return "OpFixedExpINTEL"; - case SpvOpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL"; - case SpvOpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL"; - case SpvOpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL"; - case SpvOpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL"; - case SpvOpFPGARegINTEL: return "OpFPGARegINTEL"; + case SpvOpFixedSqrtALTERA: return "OpFixedSqrtALTERA"; + case SpvOpFixedRecipALTERA: return "OpFixedRecipALTERA"; + case SpvOpFixedRsqrtALTERA: return "OpFixedRsqrtALTERA"; + case SpvOpFixedSinALTERA: return "OpFixedSinALTERA"; + case SpvOpFixedCosALTERA: return "OpFixedCosALTERA"; + case SpvOpFixedSinCosALTERA: return "OpFixedSinCosALTERA"; + case SpvOpFixedSinPiALTERA: return "OpFixedSinPiALTERA"; + case SpvOpFixedCosPiALTERA: return "OpFixedCosPiALTERA"; + case SpvOpFixedSinCosPiALTERA: return "OpFixedSinCosPiALTERA"; + case SpvOpFixedLogALTERA: return "OpFixedLogALTERA"; + case SpvOpFixedExpALTERA: return "OpFixedExpALTERA"; + case SpvOpPtrCastToCrossWorkgroupALTERA: return "OpPtrCastToCrossWorkgroupALTERA"; + case SpvOpCrossWorkgroupCastToPtrALTERA: return "OpCrossWorkgroupCastToPtrALTERA"; + case SpvOpReadPipeBlockingALTERA: return "OpReadPipeBlockingALTERA"; + case SpvOpWritePipeBlockingALTERA: return "OpWritePipeBlockingALTERA"; + case SpvOpFPGARegALTERA: return "OpFPGARegALTERA"; case SpvOpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR"; case SpvOpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR"; case SpvOpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR"; @@ -5232,11 +5476,11 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL"; case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL"; case SpvOpArithmeticFenceEXT: return "OpArithmeticFenceEXT"; - case SpvOpTaskSequenceCreateINTEL: return "OpTaskSequenceCreateINTEL"; - case SpvOpTaskSequenceAsyncINTEL: return "OpTaskSequenceAsyncINTEL"; - case SpvOpTaskSequenceGetINTEL: return "OpTaskSequenceGetINTEL"; - case SpvOpTaskSequenceReleaseINTEL: return "OpTaskSequenceReleaseINTEL"; - case SpvOpTypeTaskSequenceINTEL: return "OpTypeTaskSequenceINTEL"; + case SpvOpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA"; + case SpvOpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA"; + case SpvOpTaskSequenceGetALTERA: return "OpTaskSequenceGetALTERA"; + case SpvOpTaskSequenceReleaseALTERA: return "OpTaskSequenceReleaseALTERA"; + case SpvOpTypeTaskSequenceALTERA: return "OpTypeTaskSequenceALTERA"; case SpvOpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL"; case SpvOpSubgroup2DBlockLoadINTEL: return "OpSubgroup2DBlockLoadINTEL"; case SpvOpSubgroup2DBlockLoadTransformINTEL: return "OpSubgroup2DBlockLoadTransformINTEL"; diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.hpp11 b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.hpp11 index 0a342aa..084be71 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.hpp11 +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.hpp11 @@ -191,6 +191,7 @@ enum class ExecutionMode : unsigned { SampleInterlockUnorderedEXT = 5369, ShadingRateInterlockOrderedEXT = 5370, ShadingRateInterlockUnorderedEXT = 5371, + Shader64BitIndexingEXT = 5427, SharedLocalMemorySizeINTEL = 5618, RoundingModeRTPINTEL = 5620, RoundingModeRTNINTEL = 5621, @@ -245,8 +246,11 @@ enum class StorageClass : unsigned { PhysicalStorageBufferEXT = 5349, HitObjectAttributeNV = 5385, TaskPayloadWorkgroupEXT = 5402, + HitObjectAttributeEXT = 5411, CodeSectionINTEL = 5605, + DeviceOnlyALTERA = 5936, DeviceOnlyINTEL = 5936, + HostOnlyALTERA = 5937, HostOnlyINTEL = 5937, Max = 0x7fffffff, }; @@ -485,6 +489,7 @@ enum class FunctionParameterAttribute : unsigned { NoCapture = 5, NoWrite = 6, NoReadWrite = 7, + RuntimeAlignedALTERA = 5940, RuntimeAlignedINTEL = 5940, Max = 0x7fffffff, }; @@ -569,6 +574,7 @@ enum class Decoration : unsigned { AliasedPointer = 5356, AliasedPointerEXT = 5356, HitObjectShaderRecordBufferNV = 5386, + HitObjectShaderRecordBufferEXT = 5389, BindlessSamplerNV = 5398, BindlessImageNV = 5399, BoundSamplerNV = 5400, @@ -589,54 +595,95 @@ enum class Decoration : unsigned { UserTypeGOOGLE = 5636, FunctionRoundingModeINTEL = 5822, FunctionDenormModeINTEL = 5823, + RegisterALTERA = 5825, RegisterINTEL = 5825, + MemoryALTERA = 5826, MemoryINTEL = 5826, + NumbanksALTERA = 5827, NumbanksINTEL = 5827, + BankwidthALTERA = 5828, BankwidthINTEL = 5828, + MaxPrivateCopiesALTERA = 5829, MaxPrivateCopiesINTEL = 5829, + SinglepumpALTERA = 5830, SinglepumpINTEL = 5830, + DoublepumpALTERA = 5831, DoublepumpINTEL = 5831, + MaxReplicatesALTERA = 5832, MaxReplicatesINTEL = 5832, + SimpleDualPortALTERA = 5833, SimpleDualPortINTEL = 5833, + MergeALTERA = 5834, MergeINTEL = 5834, + BankBitsALTERA = 5835, BankBitsINTEL = 5835, + ForcePow2DepthALTERA = 5836, ForcePow2DepthINTEL = 5836, + StridesizeALTERA = 5883, StridesizeINTEL = 5883, + WordsizeALTERA = 5884, WordsizeINTEL = 5884, + TrueDualPortALTERA = 5885, TrueDualPortINTEL = 5885, + BurstCoalesceALTERA = 5899, BurstCoalesceINTEL = 5899, + CacheSizeALTERA = 5900, CacheSizeINTEL = 5900, + DontStaticallyCoalesceALTERA = 5901, DontStaticallyCoalesceINTEL = 5901, + PrefetchALTERA = 5902, PrefetchINTEL = 5902, + StallEnableALTERA = 5905, StallEnableINTEL = 5905, + FuseLoopsInFunctionALTERA = 5907, FuseLoopsInFunctionINTEL = 5907, + MathOpDSPModeALTERA = 5909, MathOpDSPModeINTEL = 5909, AliasScopeINTEL = 5914, NoAliasINTEL = 5915, + InitiationIntervalALTERA = 5917, InitiationIntervalINTEL = 5917, + MaxConcurrencyALTERA = 5918, MaxConcurrencyINTEL = 5918, + PipelineEnableALTERA = 5919, PipelineEnableINTEL = 5919, + BufferLocationALTERA = 5921, BufferLocationINTEL = 5921, + IOPipeStorageALTERA = 5944, IOPipeStorageINTEL = 5944, FunctionFloatingPointModeINTEL = 6080, SingleElementVectorINTEL = 6085, VectorComputeCallableFunctionINTEL = 6087, MediaBlockIOINTEL = 6140, + StallFreeALTERA = 6151, StallFreeINTEL = 6151, FPMaxErrorDecorationINTEL = 6170, + LatencyControlLabelALTERA = 6172, LatencyControlLabelINTEL = 6172, + LatencyControlConstraintALTERA = 6173, LatencyControlConstraintINTEL = 6173, + ConduitKernelArgumentALTERA = 6175, ConduitKernelArgumentINTEL = 6175, + RegisterMapKernelArgumentALTERA = 6176, RegisterMapKernelArgumentINTEL = 6176, + MMHostInterfaceAddressWidthALTERA = 6177, MMHostInterfaceAddressWidthINTEL = 6177, + MMHostInterfaceDataWidthALTERA = 6178, MMHostInterfaceDataWidthINTEL = 6178, + MMHostInterfaceLatencyALTERA = 6179, MMHostInterfaceLatencyINTEL = 6179, + MMHostInterfaceReadWriteModeALTERA = 6180, MMHostInterfaceReadWriteModeINTEL = 6180, + MMHostInterfaceMaxBurstALTERA = 6181, MMHostInterfaceMaxBurstINTEL = 6181, + MMHostInterfaceWaitRequestALTERA = 6182, MMHostInterfaceWaitRequestINTEL = 6182, + StableKernelArgumentALTERA = 6183, StableKernelArgumentINTEL = 6183, HostAccessINTEL = 6188, + InitModeALTERA = 6190, InitModeINTEL = 6190, + ImplementInRegisterMapALTERA = 6191, ImplementInRegisterMapINTEL = 6191, ConditionalINTEL = 6247, CacheControlLoadINTEL = 6442, @@ -818,15 +865,25 @@ enum class LoopControlShift : unsigned { IterationMultiple = 6, PeelCount = 7, PartialCount = 8, + InitiationIntervalALTERA = 16, InitiationIntervalINTEL = 16, + MaxConcurrencyALTERA = 17, MaxConcurrencyINTEL = 17, + DependencyArrayALTERA = 18, DependencyArrayINTEL = 18, + PipelineEnableALTERA = 19, PipelineEnableINTEL = 19, + LoopCoalesceALTERA = 20, LoopCoalesceINTEL = 20, + MaxInterleavingALTERA = 21, MaxInterleavingINTEL = 21, + SpeculatedIterationsALTERA = 22, SpeculatedIterationsINTEL = 22, + NoFusionALTERA = 23, NoFusionINTEL = 23, + LoopCountALTERA = 24, LoopCountINTEL = 24, + MaxReinvocationDelayALTERA = 25, MaxReinvocationDelayINTEL = 25, Max = 0x7fffffff, }; @@ -842,15 +899,25 @@ enum class LoopControlMask : unsigned { IterationMultiple = 0x00000040, PeelCount = 0x00000080, PartialCount = 0x00000100, + InitiationIntervalALTERA = 0x00010000, InitiationIntervalINTEL = 0x00010000, + MaxConcurrencyALTERA = 0x00020000, MaxConcurrencyINTEL = 0x00020000, + DependencyArrayALTERA = 0x00040000, DependencyArrayINTEL = 0x00040000, + PipelineEnableALTERA = 0x00080000, PipelineEnableINTEL = 0x00080000, + LoopCoalesceALTERA = 0x00100000, LoopCoalesceINTEL = 0x00100000, + MaxInterleavingALTERA = 0x00200000, MaxInterleavingINTEL = 0x00200000, + SpeculatedIterationsALTERA = 0x00400000, SpeculatedIterationsINTEL = 0x00400000, + NoFusionALTERA = 0x00800000, NoFusionINTEL = 0x00800000, + LoopCountALTERA = 0x01000000, LoopCountINTEL = 0x01000000, + MaxReinvocationDelayALTERA = 0x02000000, MaxReinvocationDelayINTEL = 0x02000000, }; @@ -1184,6 +1251,7 @@ enum class Capability : unsigned { DisplacementMicromapNV = 5380, RayTracingOpacityMicromapEXT = 5381, ShaderInvocationReorderNV = 5383, + ShaderInvocationReorderEXT = 5388, BindlessTextureNV = 5390, RayQueryPositionFetchKHR = 5391, CooperativeVectorNV = 5394, @@ -1192,6 +1260,7 @@ enum class Capability : unsigned { RawAccessChainsNV = 5414, RayTracingSpheresGeometryNV = 5418, RayTracingLinearSweptSpheresGeometryNV = 5419, + Shader64BitIndexingEXT = 5426, CooperativeMatrixReductionsNV = 5430, CooperativeMatrixConversionsNV = 5431, CooperativeMatrixPerElementOperationsNV = 5432, @@ -1221,26 +1290,42 @@ enum class Capability : unsigned { SubgroupAvcMotionEstimationChromaINTEL = 5698, VariableLengthArrayINTEL = 5817, FunctionFloatControlINTEL = 5821, + FPGAMemoryAttributesALTERA = 5824, FPGAMemoryAttributesINTEL = 5824, FPFastMathModeINTEL = 5837, + ArbitraryPrecisionIntegersALTERA = 5844, ArbitraryPrecisionIntegersINTEL = 5844, + ArbitraryPrecisionFloatingPointALTERA = 5845, ArbitraryPrecisionFloatingPointINTEL = 5845, UnstructuredLoopControlsINTEL = 5886, + FPGALoopControlsALTERA = 5888, FPGALoopControlsINTEL = 5888, KernelAttributesINTEL = 5892, FPGAKernelAttributesINTEL = 5897, + FPGAMemoryAccessesALTERA = 5898, FPGAMemoryAccessesINTEL = 5898, + FPGAClusterAttributesALTERA = 5904, FPGAClusterAttributesINTEL = 5904, + LoopFuseALTERA = 5906, LoopFuseINTEL = 5906, + FPGADSPControlALTERA = 5908, FPGADSPControlINTEL = 5908, MemoryAccessAliasingINTEL = 5910, + FPGAInvocationPipeliningAttributesALTERA = 5916, FPGAInvocationPipeliningAttributesINTEL = 5916, + FPGABufferLocationALTERA = 5920, FPGABufferLocationINTEL = 5920, + ArbitraryPrecisionFixedPointALTERA = 5922, ArbitraryPrecisionFixedPointINTEL = 5922, + USMStorageClassesALTERA = 5935, USMStorageClassesINTEL = 5935, + RuntimeAlignedAttributeALTERA = 5939, RuntimeAlignedAttributeINTEL = 5939, + IOPipesALTERA = 5943, IOPipesINTEL = 5943, + BlockingPipesALTERA = 5945, BlockingPipesINTEL = 5945, + FPGARegALTERA = 5948, FPGARegINTEL = 5948, DotProductInputAll = 6016, DotProductInputAllKHR = 6016, @@ -1267,13 +1352,18 @@ enum class Capability : unsigned { BFloat16ConversionINTEL = 6115, SplitBarrierINTEL = 6141, ArithmeticFenceEXT = 6144, + FPGAClusterAttributesV2ALTERA = 6150, FPGAClusterAttributesV2INTEL = 6150, FPGAKernelAttributesv2INTEL = 6161, + TaskSequenceALTERA = 6162, TaskSequenceINTEL = 6162, FPMaxErrorINTEL = 6169, + FPGALatencyControlALTERA = 6171, FPGALatencyControlINTEL = 6171, + FPGAArgumentInterfacesALTERA = 6174, FPGAArgumentInterfacesINTEL = 6174, GlobalVariableHostAccessINTEL = 6187, + GlobalVariableFPGADecorationsALTERA = 6189, GlobalVariableFPGADecorationsINTEL = 6189, SubgroupBufferPrefetchINTEL = 6220, Subgroup2DBlockIOINTEL = 6228, @@ -1485,7 +1575,9 @@ enum class TensorOperandsMask : unsigned { }; enum class InitializationModeQualifier : unsigned { + InitOnDeviceReprogramALTERA = 0, InitOnDeviceReprogramINTEL = 0, + InitOnDeviceResetALTERA = 1, InitOnDeviceResetINTEL = 1, Max = 0x7fffffff, }; @@ -2093,6 +2185,36 @@ enum class Op : unsigned { OpFetchMicroTriangleVertexBarycentricNV = 5301, OpCooperativeVectorLoadNV = 5302, OpCooperativeVectorStoreNV = 5303, + OpHitObjectRecordFromQueryEXT = 5304, + OpHitObjectRecordMissEXT = 5305, + OpHitObjectRecordMissMotionEXT = 5306, + OpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307, + OpHitObjectGetRayFlagsEXT = 5308, + OpHitObjectSetShaderBindingTableRecordIndexEXT = 5309, + OpHitObjectReorderExecuteShaderEXT = 5310, + OpHitObjectTraceReorderExecuteEXT = 5311, + OpHitObjectTraceMotionReorderExecuteEXT = 5312, + OpTypeHitObjectEXT = 5313, + OpReorderThreadWithHintEXT = 5314, + OpReorderThreadWithHitObjectEXT = 5315, + OpHitObjectTraceRayEXT = 5316, + OpHitObjectTraceRayMotionEXT = 5317, + OpHitObjectRecordEmptyEXT = 5318, + OpHitObjectExecuteShaderEXT = 5319, + OpHitObjectGetCurrentTimeEXT = 5320, + OpHitObjectGetAttributesEXT = 5321, + OpHitObjectGetHitKindEXT = 5322, + OpHitObjectGetPrimitiveIndexEXT = 5323, + OpHitObjectGetGeometryIndexEXT = 5324, + OpHitObjectGetInstanceIdEXT = 5325, + OpHitObjectGetInstanceCustomIndexEXT = 5326, + OpHitObjectGetObjectRayOriginEXT = 5327, + OpHitObjectGetObjectRayDirectionEXT = 5328, + OpHitObjectGetWorldRayDirectionEXT = 5329, + OpHitObjectGetWorldRayOriginEXT = 5330, + OpHitObjectGetObjectToWorldEXT = 5331, + OpHitObjectGetWorldToObjectEXT = 5332, + OpHitObjectGetRayTMaxEXT = 5333, OpReportIntersectionKHR = 5334, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, @@ -2107,6 +2229,12 @@ enum class Op : unsigned { OpRayQueryGetClusterIdNV = 5345, OpRayQueryGetIntersectionClusterIdNV = 5345, OpHitObjectGetClusterIdNV = 5346, + OpHitObjectGetRayTMinEXT = 5347, + OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348, + OpHitObjectGetShaderRecordBufferHandleEXT = 5349, + OpHitObjectIsEmptyEXT = 5350, + OpHitObjectIsHitEXT = 5351, + OpHitObjectIsMissEXT = 5352, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, @@ -2313,23 +2441,41 @@ enum class Op : unsigned { OpVariableLengthArrayINTEL = 5818, OpSaveMemoryINTEL = 5819, OpRestoreMemoryINTEL = 5820, + OpArbitraryFloatSinCosPiALTERA = 5840, OpArbitraryFloatSinCosPiINTEL = 5840, + OpArbitraryFloatCastALTERA = 5841, OpArbitraryFloatCastINTEL = 5841, + OpArbitraryFloatCastFromIntALTERA = 5842, OpArbitraryFloatCastFromIntINTEL = 5842, + OpArbitraryFloatCastToIntALTERA = 5843, OpArbitraryFloatCastToIntINTEL = 5843, + OpArbitraryFloatAddALTERA = 5846, OpArbitraryFloatAddINTEL = 5846, + OpArbitraryFloatSubALTERA = 5847, OpArbitraryFloatSubINTEL = 5847, + OpArbitraryFloatMulALTERA = 5848, OpArbitraryFloatMulINTEL = 5848, + OpArbitraryFloatDivALTERA = 5849, OpArbitraryFloatDivINTEL = 5849, + OpArbitraryFloatGTALTERA = 5850, OpArbitraryFloatGTINTEL = 5850, + OpArbitraryFloatGEALTERA = 5851, OpArbitraryFloatGEINTEL = 5851, + OpArbitraryFloatLTALTERA = 5852, OpArbitraryFloatLTINTEL = 5852, + OpArbitraryFloatLEALTERA = 5853, OpArbitraryFloatLEINTEL = 5853, + OpArbitraryFloatEQALTERA = 5854, OpArbitraryFloatEQINTEL = 5854, + OpArbitraryFloatRecipALTERA = 5855, OpArbitraryFloatRecipINTEL = 5855, + OpArbitraryFloatRSqrtALTERA = 5856, OpArbitraryFloatRSqrtINTEL = 5856, + OpArbitraryFloatCbrtALTERA = 5857, OpArbitraryFloatCbrtINTEL = 5857, + OpArbitraryFloatHypotALTERA = 5858, OpArbitraryFloatHypotINTEL = 5858, + OpArbitraryFloatSqrtALTERA = 5859, OpArbitraryFloatSqrtINTEL = 5859, OpArbitraryFloatLogINTEL = 5860, OpArbitraryFloatLog2INTEL = 5861, @@ -2358,21 +2504,37 @@ enum class Op : unsigned { OpAliasDomainDeclINTEL = 5911, OpAliasScopeDeclINTEL = 5912, OpAliasScopeListDeclINTEL = 5913, + OpFixedSqrtALTERA = 5923, OpFixedSqrtINTEL = 5923, + OpFixedRecipALTERA = 5924, OpFixedRecipINTEL = 5924, + OpFixedRsqrtALTERA = 5925, OpFixedRsqrtINTEL = 5925, + OpFixedSinALTERA = 5926, OpFixedSinINTEL = 5926, + OpFixedCosALTERA = 5927, OpFixedCosINTEL = 5927, + OpFixedSinCosALTERA = 5928, OpFixedSinCosINTEL = 5928, + OpFixedSinPiALTERA = 5929, OpFixedSinPiINTEL = 5929, + OpFixedCosPiALTERA = 5930, OpFixedCosPiINTEL = 5930, + OpFixedSinCosPiALTERA = 5931, OpFixedSinCosPiINTEL = 5931, + OpFixedLogALTERA = 5932, OpFixedLogINTEL = 5932, + OpFixedExpALTERA = 5933, OpFixedExpINTEL = 5933, + OpPtrCastToCrossWorkgroupALTERA = 5934, OpPtrCastToCrossWorkgroupINTEL = 5934, + OpCrossWorkgroupCastToPtrALTERA = 5938, OpCrossWorkgroupCastToPtrINTEL = 5938, + OpReadPipeBlockingALTERA = 5946, OpReadPipeBlockingINTEL = 5946, + OpWritePipeBlockingALTERA = 5947, OpWritePipeBlockingINTEL = 5947, + OpFPGARegALTERA = 5949, OpFPGARegINTEL = 5949, OpRayQueryGetRayTMinKHR = 6016, OpRayQueryGetRayFlagsKHR = 6017, @@ -2402,10 +2564,15 @@ enum class Op : unsigned { OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, OpArithmeticFenceEXT = 6145, + OpTaskSequenceCreateALTERA = 6163, OpTaskSequenceCreateINTEL = 6163, + OpTaskSequenceAsyncALTERA = 6164, OpTaskSequenceAsyncINTEL = 6164, + OpTaskSequenceGetALTERA = 6165, OpTaskSequenceGetINTEL = 6165, + OpTaskSequenceReleaseALTERA = 6166, OpTaskSequenceReleaseINTEL = 6166, + OpTypeTaskSequenceALTERA = 6199, OpTypeTaskSequenceINTEL = 6199, OpSubgroupBlockPrefetchINTEL = 6221, OpSubgroup2DBlockLoadINTEL = 6231, @@ -2932,6 +3099,36 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeVectorLoadNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeVectorStoreNV: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordFromQueryEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordMissEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordMissMotionEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayFlagsEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectReorderExecuteShaderEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceReorderExecuteEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceMotionReorderExecuteEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpTypeHitObjectEXT: *hasResult = true; *hasResultType = false; break; + case Op::OpReorderThreadWithHintEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpReorderThreadWithHitObjectEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceRayEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectTraceRayMotionEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectRecordEmptyEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectExecuteShaderEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetCurrentTimeEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetAttributesEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpHitObjectGetHitKindEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetPrimitiveIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetGeometryIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetInstanceIdEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetInstanceCustomIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectRayOriginEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectRayDirectionEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldRayDirectionEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldRayOriginEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetObjectToWorldEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetWorldToObjectEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayTMaxEXT: *hasResult = true; *hasResultType = true; break; case Op::OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break; case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; @@ -2943,6 +3140,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; case Op::OpRayQueryGetIntersectionClusterIdNV: *hasResult = true; *hasResultType = true; break; case Op::OpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetRayTMinEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectGetShaderRecordBufferHandleEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsEmptyEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsHitEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpHitObjectIsMissEXT: *hasResult = true; *hasResultType = true; break; case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; @@ -3146,24 +3349,24 @@ 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::OpArbitraryFloatSinCosPiALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatCastALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatCastFromIntALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatCastToIntALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatAddALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatSubALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatMulALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatDivALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatGTALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatGEALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatLTALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatLEALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatEQALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatRecipALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatRSqrtALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatCbrtALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatHypotALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpArbitraryFloatSqrtALTERA: *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; @@ -3191,22 +3394,22 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; case Op::OpAliasScopeListDeclINTEL: *hasResult = true; *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; - case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedSqrtALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedRecipALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedRsqrtALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedSinALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedCosALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedSinCosALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedSinPiALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedCosPiALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedSinCosPiALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedLogALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFixedExpALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpFPGARegALTERA: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; @@ -3235,11 +3438,11 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break; - case Op::OpTaskSequenceCreateINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpTaskSequenceAsyncINTEL: *hasResult = false; *hasResultType = false; break; - case Op::OpTaskSequenceGetINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpTaskSequenceReleaseINTEL: *hasResult = false; *hasResultType = false; break; - case Op::OpTypeTaskSequenceINTEL: *hasResult = true; *hasResultType = false; break; + case Op::OpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break; + case Op::OpTaskSequenceGetALTERA: *hasResult = true; *hasResultType = true; break; + case Op::OpTaskSequenceReleaseALTERA: *hasResult = false; *hasResultType = false; break; + case Op::OpTypeTaskSequenceALTERA: *hasResult = true; *hasResultType = false; break; case Op::OpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSubgroup2DBlockLoadINTEL: *hasResult = false; *hasResultType = false; break; case Op::OpSubgroup2DBlockLoadTransformINTEL: *hasResult = false; *hasResultType = false; break; @@ -3415,6 +3618,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) { case ExecutionMode::SampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT"; case ExecutionMode::ShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT"; case ExecutionMode::ShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT"; + case ExecutionMode::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT"; case ExecutionMode::SharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL"; case ExecutionMode::RoundingModeRTPINTEL: return "RoundingModeRTPINTEL"; case ExecutionMode::RoundingModeRTNINTEL: return "RoundingModeRTNINTEL"; @@ -3464,9 +3668,10 @@ inline const char* StorageClassToString(StorageClass value) { case StorageClass::PhysicalStorageBuffer: return "PhysicalStorageBuffer"; case StorageClass::HitObjectAttributeNV: return "HitObjectAttributeNV"; case StorageClass::TaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT"; + case StorageClass::HitObjectAttributeEXT: return "HitObjectAttributeEXT"; case StorageClass::CodeSectionINTEL: return "CodeSectionINTEL"; - case StorageClass::DeviceOnlyINTEL: return "DeviceOnlyINTEL"; - case StorageClass::HostOnlyINTEL: return "HostOnlyINTEL"; + case StorageClass::DeviceOnlyALTERA: return "DeviceOnlyALTERA"; + case StorageClass::HostOnlyALTERA: return "HostOnlyALTERA"; default: return "Unknown"; } } @@ -3648,7 +3853,7 @@ inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute case FunctionParameterAttribute::NoCapture: return "NoCapture"; case FunctionParameterAttribute::NoWrite: return "NoWrite"; case FunctionParameterAttribute::NoReadWrite: return "NoReadWrite"; - case FunctionParameterAttribute::RuntimeAlignedINTEL: return "RuntimeAlignedINTEL"; + case FunctionParameterAttribute::RuntimeAlignedALTERA: return "RuntimeAlignedALTERA"; default: return "Unknown"; } } @@ -3729,6 +3934,7 @@ inline const char* DecorationToString(Decoration value) { case Decoration::RestrictPointer: return "RestrictPointer"; case Decoration::AliasedPointer: return "AliasedPointer"; case Decoration::HitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV"; + case Decoration::HitObjectShaderRecordBufferEXT: return "HitObjectShaderRecordBufferEXT"; case Decoration::BindlessSamplerNV: return "BindlessSamplerNV"; case Decoration::BindlessImageNV: return "BindlessImageNV"; case Decoration::BoundSamplerNV: return "BoundSamplerNV"; @@ -3747,55 +3953,55 @@ inline const char* DecorationToString(Decoration value) { case Decoration::UserTypeGOOGLE: return "UserTypeGOOGLE"; case Decoration::FunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL"; case Decoration::FunctionDenormModeINTEL: return "FunctionDenormModeINTEL"; - case Decoration::RegisterINTEL: return "RegisterINTEL"; - case Decoration::MemoryINTEL: return "MemoryINTEL"; - case Decoration::NumbanksINTEL: return "NumbanksINTEL"; - case Decoration::BankwidthINTEL: return "BankwidthINTEL"; - case Decoration::MaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL"; - case Decoration::SinglepumpINTEL: return "SinglepumpINTEL"; - case Decoration::DoublepumpINTEL: return "DoublepumpINTEL"; - case Decoration::MaxReplicatesINTEL: return "MaxReplicatesINTEL"; - case Decoration::SimpleDualPortINTEL: return "SimpleDualPortINTEL"; - case Decoration::MergeINTEL: return "MergeINTEL"; - case Decoration::BankBitsINTEL: return "BankBitsINTEL"; - case Decoration::ForcePow2DepthINTEL: return "ForcePow2DepthINTEL"; - case Decoration::StridesizeINTEL: return "StridesizeINTEL"; - case Decoration::WordsizeINTEL: return "WordsizeINTEL"; - case Decoration::TrueDualPortINTEL: return "TrueDualPortINTEL"; - case Decoration::BurstCoalesceINTEL: return "BurstCoalesceINTEL"; - case Decoration::CacheSizeINTEL: return "CacheSizeINTEL"; - case Decoration::DontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL"; - case Decoration::PrefetchINTEL: return "PrefetchINTEL"; - case Decoration::StallEnableINTEL: return "StallEnableINTEL"; - case Decoration::FuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL"; - case Decoration::MathOpDSPModeINTEL: return "MathOpDSPModeINTEL"; + case Decoration::RegisterALTERA: return "RegisterALTERA"; + case Decoration::MemoryALTERA: return "MemoryALTERA"; + case Decoration::NumbanksALTERA: return "NumbanksALTERA"; + case Decoration::BankwidthALTERA: return "BankwidthALTERA"; + case Decoration::MaxPrivateCopiesALTERA: return "MaxPrivateCopiesALTERA"; + case Decoration::SinglepumpALTERA: return "SinglepumpALTERA"; + case Decoration::DoublepumpALTERA: return "DoublepumpALTERA"; + case Decoration::MaxReplicatesALTERA: return "MaxReplicatesALTERA"; + case Decoration::SimpleDualPortALTERA: return "SimpleDualPortALTERA"; + case Decoration::MergeALTERA: return "MergeALTERA"; + case Decoration::BankBitsALTERA: return "BankBitsALTERA"; + case Decoration::ForcePow2DepthALTERA: return "ForcePow2DepthALTERA"; + case Decoration::StridesizeALTERA: return "StridesizeALTERA"; + case Decoration::WordsizeALTERA: return "WordsizeALTERA"; + case Decoration::TrueDualPortALTERA: return "TrueDualPortALTERA"; + case Decoration::BurstCoalesceALTERA: return "BurstCoalesceALTERA"; + case Decoration::CacheSizeALTERA: return "CacheSizeALTERA"; + case Decoration::DontStaticallyCoalesceALTERA: return "DontStaticallyCoalesceALTERA"; + case Decoration::PrefetchALTERA: return "PrefetchALTERA"; + case Decoration::StallEnableALTERA: return "StallEnableALTERA"; + case Decoration::FuseLoopsInFunctionALTERA: return "FuseLoopsInFunctionALTERA"; + case Decoration::MathOpDSPModeALTERA: return "MathOpDSPModeALTERA"; case Decoration::AliasScopeINTEL: return "AliasScopeINTEL"; case Decoration::NoAliasINTEL: return "NoAliasINTEL"; - case Decoration::InitiationIntervalINTEL: return "InitiationIntervalINTEL"; - case Decoration::MaxConcurrencyINTEL: return "MaxConcurrencyINTEL"; - case Decoration::PipelineEnableINTEL: return "PipelineEnableINTEL"; - case Decoration::BufferLocationINTEL: return "BufferLocationINTEL"; - case Decoration::IOPipeStorageINTEL: return "IOPipeStorageINTEL"; + case Decoration::InitiationIntervalALTERA: return "InitiationIntervalALTERA"; + case Decoration::MaxConcurrencyALTERA: return "MaxConcurrencyALTERA"; + case Decoration::PipelineEnableALTERA: return "PipelineEnableALTERA"; + case Decoration::BufferLocationALTERA: return "BufferLocationALTERA"; + case Decoration::IOPipeStorageALTERA: return "IOPipeStorageALTERA"; case Decoration::FunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL"; case Decoration::SingleElementVectorINTEL: return "SingleElementVectorINTEL"; case Decoration::VectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL"; case Decoration::MediaBlockIOINTEL: return "MediaBlockIOINTEL"; - case Decoration::StallFreeINTEL: return "StallFreeINTEL"; + case Decoration::StallFreeALTERA: return "StallFreeALTERA"; case Decoration::FPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL"; - case Decoration::LatencyControlLabelINTEL: return "LatencyControlLabelINTEL"; - case Decoration::LatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL"; - case Decoration::ConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL"; - case Decoration::RegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL"; - case Decoration::MMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL"; - case Decoration::MMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL"; - case Decoration::MMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL"; - case Decoration::MMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL"; - case Decoration::MMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL"; - case Decoration::MMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL"; - case Decoration::StableKernelArgumentINTEL: return "StableKernelArgumentINTEL"; + case Decoration::LatencyControlLabelALTERA: return "LatencyControlLabelALTERA"; + case Decoration::LatencyControlConstraintALTERA: return "LatencyControlConstraintALTERA"; + case Decoration::ConduitKernelArgumentALTERA: return "ConduitKernelArgumentALTERA"; + case Decoration::RegisterMapKernelArgumentALTERA: return "RegisterMapKernelArgumentALTERA"; + case Decoration::MMHostInterfaceAddressWidthALTERA: return "MMHostInterfaceAddressWidthALTERA"; + case Decoration::MMHostInterfaceDataWidthALTERA: return "MMHostInterfaceDataWidthALTERA"; + case Decoration::MMHostInterfaceLatencyALTERA: return "MMHostInterfaceLatencyALTERA"; + case Decoration::MMHostInterfaceReadWriteModeALTERA: return "MMHostInterfaceReadWriteModeALTERA"; + case Decoration::MMHostInterfaceMaxBurstALTERA: return "MMHostInterfaceMaxBurstALTERA"; + case Decoration::MMHostInterfaceWaitRequestALTERA: return "MMHostInterfaceWaitRequestALTERA"; + case Decoration::StableKernelArgumentALTERA: return "StableKernelArgumentALTERA"; case Decoration::HostAccessINTEL: return "HostAccessINTEL"; - case Decoration::InitModeINTEL: return "InitModeINTEL"; - case Decoration::ImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL"; + case Decoration::InitModeALTERA: return "InitModeALTERA"; + case Decoration::ImplementInRegisterMapALTERA: return "ImplementInRegisterMapALTERA"; case Decoration::ConditionalINTEL: return "ConditionalINTEL"; case Decoration::CacheControlLoadINTEL: return "CacheControlLoadINTEL"; case Decoration::CacheControlStoreINTEL: return "CacheControlStoreINTEL"; @@ -4146,6 +4352,7 @@ inline const char* CapabilityToString(Capability value) { case Capability::DisplacementMicromapNV: return "DisplacementMicromapNV"; case Capability::RayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT"; case Capability::ShaderInvocationReorderNV: return "ShaderInvocationReorderNV"; + case Capability::ShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT"; case Capability::BindlessTextureNV: return "BindlessTextureNV"; case Capability::RayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR"; case Capability::CooperativeVectorNV: return "CooperativeVectorNV"; @@ -4154,6 +4361,7 @@ inline const char* CapabilityToString(Capability value) { case Capability::RawAccessChainsNV: return "RawAccessChainsNV"; case Capability::RayTracingSpheresGeometryNV: return "RayTracingSpheresGeometryNV"; case Capability::RayTracingLinearSweptSpheresGeometryNV: return "RayTracingLinearSweptSpheresGeometryNV"; + case Capability::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT"; case Capability::CooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV"; case Capability::CooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV"; case Capability::CooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV"; @@ -4183,27 +4391,27 @@ inline const char* CapabilityToString(Capability value) { case Capability::SubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL"; case Capability::VariableLengthArrayINTEL: return "VariableLengthArrayINTEL"; case Capability::FunctionFloatControlINTEL: return "FunctionFloatControlINTEL"; - case Capability::FPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL"; + case Capability::FPGAMemoryAttributesALTERA: return "FPGAMemoryAttributesALTERA"; case Capability::FPFastMathModeINTEL: return "FPFastMathModeINTEL"; - case Capability::ArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL"; - case Capability::ArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL"; + case Capability::ArbitraryPrecisionIntegersALTERA: return "ArbitraryPrecisionIntegersALTERA"; + case Capability::ArbitraryPrecisionFloatingPointALTERA: return "ArbitraryPrecisionFloatingPointALTERA"; case Capability::UnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL"; - case Capability::FPGALoopControlsINTEL: return "FPGALoopControlsINTEL"; + case Capability::FPGALoopControlsALTERA: return "FPGALoopControlsALTERA"; case Capability::KernelAttributesINTEL: return "KernelAttributesINTEL"; case Capability::FPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL"; - case Capability::FPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL"; - case Capability::FPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL"; - case Capability::LoopFuseINTEL: return "LoopFuseINTEL"; - case Capability::FPGADSPControlINTEL: return "FPGADSPControlINTEL"; + case Capability::FPGAMemoryAccessesALTERA: return "FPGAMemoryAccessesALTERA"; + case Capability::FPGAClusterAttributesALTERA: return "FPGAClusterAttributesALTERA"; + case Capability::LoopFuseALTERA: return "LoopFuseALTERA"; + case Capability::FPGADSPControlALTERA: return "FPGADSPControlALTERA"; case Capability::MemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL"; - case Capability::FPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL"; - case Capability::FPGABufferLocationINTEL: return "FPGABufferLocationINTEL"; - case Capability::ArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL"; - case Capability::USMStorageClassesINTEL: return "USMStorageClassesINTEL"; - case Capability::RuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL"; - case Capability::IOPipesINTEL: return "IOPipesINTEL"; - case Capability::BlockingPipesINTEL: return "BlockingPipesINTEL"; - case Capability::FPGARegINTEL: return "FPGARegINTEL"; + case Capability::FPGAInvocationPipeliningAttributesALTERA: return "FPGAInvocationPipeliningAttributesALTERA"; + case Capability::FPGABufferLocationALTERA: return "FPGABufferLocationALTERA"; + case Capability::ArbitraryPrecisionFixedPointALTERA: return "ArbitraryPrecisionFixedPointALTERA"; + case Capability::USMStorageClassesALTERA: return "USMStorageClassesALTERA"; + case Capability::RuntimeAlignedAttributeALTERA: return "RuntimeAlignedAttributeALTERA"; + case Capability::IOPipesALTERA: return "IOPipesALTERA"; + case Capability::BlockingPipesALTERA: return "BlockingPipesALTERA"; + case Capability::FPGARegALTERA: return "FPGARegALTERA"; case Capability::DotProductInputAll: return "DotProductInputAll"; case Capability::DotProductInput4x8Bit: return "DotProductInput4x8Bit"; case Capability::DotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked"; @@ -4224,14 +4432,14 @@ inline const char* CapabilityToString(Capability value) { case Capability::BFloat16ConversionINTEL: return "BFloat16ConversionINTEL"; case Capability::SplitBarrierINTEL: return "SplitBarrierINTEL"; case Capability::ArithmeticFenceEXT: return "ArithmeticFenceEXT"; - case Capability::FPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL"; + case Capability::FPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA"; case Capability::FPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL"; - case Capability::TaskSequenceINTEL: return "TaskSequenceINTEL"; + case Capability::TaskSequenceALTERA: return "TaskSequenceALTERA"; case Capability::FPMaxErrorINTEL: return "FPMaxErrorINTEL"; - case Capability::FPGALatencyControlINTEL: return "FPGALatencyControlINTEL"; - case Capability::FPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL"; + case Capability::FPGALatencyControlALTERA: return "FPGALatencyControlALTERA"; + case Capability::FPGAArgumentInterfacesALTERA: return "FPGAArgumentInterfacesALTERA"; case Capability::GlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL"; - case Capability::GlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL"; + case Capability::GlobalVariableFPGADecorationsALTERA: return "GlobalVariableFPGADecorationsALTERA"; case Capability::SubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL"; case Capability::Subgroup2DBlockIOINTEL: return "Subgroup2DBlockIOINTEL"; case Capability::Subgroup2DBlockTransformINTEL: return "Subgroup2DBlockTransformINTEL"; @@ -4355,8 +4563,8 @@ inline const char* TensorClampModeToString(TensorClampMode value) { inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) { switch (value) { - case InitializationModeQualifier::InitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL"; - case InitializationModeQualifier::InitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL"; + case InitializationModeQualifier::InitOnDeviceReprogramALTERA: return "InitOnDeviceReprogramALTERA"; + case InitializationModeQualifier::InitOnDeviceResetALTERA: return "InitOnDeviceResetALTERA"; default: return "Unknown"; } } @@ -4925,6 +5133,36 @@ inline const char* OpToString(Op value) { case Op::OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV"; case Op::OpCooperativeVectorLoadNV: return "OpCooperativeVectorLoadNV"; case Op::OpCooperativeVectorStoreNV: return "OpCooperativeVectorStoreNV"; + case Op::OpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT"; + case Op::OpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT"; + case Op::OpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT"; + case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT"; + case Op::OpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT"; + case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT"; + case Op::OpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteShaderEXT"; + case Op::OpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT"; + case Op::OpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT"; + case Op::OpTypeHitObjectEXT: return "OpTypeHitObjectEXT"; + case Op::OpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT"; + case Op::OpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT"; + case Op::OpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT"; + case Op::OpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT"; + case Op::OpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT"; + case Op::OpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT"; + case Op::OpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT"; + case Op::OpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT"; + case Op::OpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT"; + case Op::OpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT"; + case Op::OpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT"; + case Op::OpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT"; + case Op::OpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT"; + case Op::OpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT"; + case Op::OpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT"; + case Op::OpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT"; + case Op::OpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT"; + case Op::OpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT"; + case Op::OpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT"; + case Op::OpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT"; case Op::OpReportIntersectionKHR: return "OpReportIntersectionKHR"; case Op::OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case Op::OpTerminateRayNV: return "OpTerminateRayNV"; @@ -4936,6 +5174,12 @@ inline const char* OpToString(Op value) { case Op::OpExecuteCallableNV: return "OpExecuteCallableNV"; case Op::OpRayQueryGetClusterIdNV: return "OpRayQueryGetClusterIdNV"; case Op::OpHitObjectGetClusterIdNV: return "OpHitObjectGetClusterIdNV"; + case Op::OpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT"; + case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT"; + case Op::OpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT"; + case Op::OpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT"; + case Op::OpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT"; + case Op::OpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT"; case Op::OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV"; case Op::OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV"; case Op::OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV"; @@ -5139,24 +5383,24 @@ inline const char* OpToString(Op value) { case Op::OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL"; case Op::OpSaveMemoryINTEL: return "OpSaveMemoryINTEL"; case Op::OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL"; - case Op::OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL"; - case Op::OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL"; - case Op::OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL"; - case Op::OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL"; - case Op::OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL"; - case Op::OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL"; - case Op::OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL"; - case Op::OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL"; - case Op::OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL"; - case Op::OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL"; - case Op::OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL"; - case Op::OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL"; - case Op::OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL"; - case Op::OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL"; - case Op::OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL"; - case Op::OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL"; - case Op::OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL"; - case Op::OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL"; + case Op::OpArbitraryFloatSinCosPiALTERA: return "OpArbitraryFloatSinCosPiALTERA"; + case Op::OpArbitraryFloatCastALTERA: return "OpArbitraryFloatCastALTERA"; + case Op::OpArbitraryFloatCastFromIntALTERA: return "OpArbitraryFloatCastFromIntALTERA"; + case Op::OpArbitraryFloatCastToIntALTERA: return "OpArbitraryFloatCastToIntALTERA"; + case Op::OpArbitraryFloatAddALTERA: return "OpArbitraryFloatAddALTERA"; + case Op::OpArbitraryFloatSubALTERA: return "OpArbitraryFloatSubALTERA"; + case Op::OpArbitraryFloatMulALTERA: return "OpArbitraryFloatMulALTERA"; + case Op::OpArbitraryFloatDivALTERA: return "OpArbitraryFloatDivALTERA"; + case Op::OpArbitraryFloatGTALTERA: return "OpArbitraryFloatGTALTERA"; + case Op::OpArbitraryFloatGEALTERA: return "OpArbitraryFloatGEALTERA"; + case Op::OpArbitraryFloatLTALTERA: return "OpArbitraryFloatLTALTERA"; + case Op::OpArbitraryFloatLEALTERA: return "OpArbitraryFloatLEALTERA"; + case Op::OpArbitraryFloatEQALTERA: return "OpArbitraryFloatEQALTERA"; + case Op::OpArbitraryFloatRecipALTERA: return "OpArbitraryFloatRecipALTERA"; + case Op::OpArbitraryFloatRSqrtALTERA: return "OpArbitraryFloatRSqrtALTERA"; + case Op::OpArbitraryFloatCbrtALTERA: return "OpArbitraryFloatCbrtALTERA"; + case Op::OpArbitraryFloatHypotALTERA: return "OpArbitraryFloatHypotALTERA"; + case Op::OpArbitraryFloatSqrtALTERA: return "OpArbitraryFloatSqrtALTERA"; case Op::OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL"; case Op::OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL"; case Op::OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL"; @@ -5184,22 +5428,22 @@ inline const char* OpToString(Op value) { case Op::OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL"; case Op::OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL"; case Op::OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL"; - case Op::OpFixedSqrtINTEL: return "OpFixedSqrtINTEL"; - case Op::OpFixedRecipINTEL: return "OpFixedRecipINTEL"; - case Op::OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL"; - case Op::OpFixedSinINTEL: return "OpFixedSinINTEL"; - case Op::OpFixedCosINTEL: return "OpFixedCosINTEL"; - case Op::OpFixedSinCosINTEL: return "OpFixedSinCosINTEL"; - case Op::OpFixedSinPiINTEL: return "OpFixedSinPiINTEL"; - case Op::OpFixedCosPiINTEL: return "OpFixedCosPiINTEL"; - case Op::OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL"; - case Op::OpFixedLogINTEL: return "OpFixedLogINTEL"; - case Op::OpFixedExpINTEL: return "OpFixedExpINTEL"; - case Op::OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL"; - case Op::OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL"; - case Op::OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL"; - case Op::OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL"; - case Op::OpFPGARegINTEL: return "OpFPGARegINTEL"; + case Op::OpFixedSqrtALTERA: return "OpFixedSqrtALTERA"; + case Op::OpFixedRecipALTERA: return "OpFixedRecipALTERA"; + case Op::OpFixedRsqrtALTERA: return "OpFixedRsqrtALTERA"; + case Op::OpFixedSinALTERA: return "OpFixedSinALTERA"; + case Op::OpFixedCosALTERA: return "OpFixedCosALTERA"; + case Op::OpFixedSinCosALTERA: return "OpFixedSinCosALTERA"; + case Op::OpFixedSinPiALTERA: return "OpFixedSinPiALTERA"; + case Op::OpFixedCosPiALTERA: return "OpFixedCosPiALTERA"; + case Op::OpFixedSinCosPiALTERA: return "OpFixedSinCosPiALTERA"; + case Op::OpFixedLogALTERA: return "OpFixedLogALTERA"; + case Op::OpFixedExpALTERA: return "OpFixedExpALTERA"; + case Op::OpPtrCastToCrossWorkgroupALTERA: return "OpPtrCastToCrossWorkgroupALTERA"; + case Op::OpCrossWorkgroupCastToPtrALTERA: return "OpCrossWorkgroupCastToPtrALTERA"; + case Op::OpReadPipeBlockingALTERA: return "OpReadPipeBlockingALTERA"; + case Op::OpWritePipeBlockingALTERA: return "OpWritePipeBlockingALTERA"; + case Op::OpFPGARegALTERA: return "OpFPGARegALTERA"; case Op::OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR"; case Op::OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR"; case Op::OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR"; @@ -5228,11 +5472,11 @@ inline const char* OpToString(Op value) { case Op::OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL"; case Op::OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL"; case Op::OpArithmeticFenceEXT: return "OpArithmeticFenceEXT"; - case Op::OpTaskSequenceCreateINTEL: return "OpTaskSequenceCreateINTEL"; - case Op::OpTaskSequenceAsyncINTEL: return "OpTaskSequenceAsyncINTEL"; - case Op::OpTaskSequenceGetINTEL: return "OpTaskSequenceGetINTEL"; - case Op::OpTaskSequenceReleaseINTEL: return "OpTaskSequenceReleaseINTEL"; - case Op::OpTypeTaskSequenceINTEL: return "OpTypeTaskSequenceINTEL"; + case Op::OpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA"; + case Op::OpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA"; + case Op::OpTaskSequenceGetALTERA: return "OpTaskSequenceGetALTERA"; + case Op::OpTaskSequenceReleaseALTERA: return "OpTaskSequenceReleaseALTERA"; + case Op::OpTypeTaskSequenceALTERA: return "OpTypeTaskSequenceALTERA"; case Op::OpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL"; case Op::OpSubgroup2DBlockLoadINTEL: return "OpSubgroup2DBlockLoadINTEL"; case Op::OpSubgroup2DBlockLoadTransformINTEL: return "OpSubgroup2DBlockLoadTransformINTEL"; diff --git a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.json b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.json index 4d53a16..5ffa856 100644 --- a/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.json +++ b/libs/bgfx/3rdparty/spirv-headers/include/spirv/unified1/spirv.json @@ -210,6 +210,7 @@ "SampleInterlockUnorderedEXT": 5369, "ShadingRateInterlockOrderedEXT": 5370, "ShadingRateInterlockUnorderedEXT": 5371, + "Shader64BitIndexingEXT": 5427, "SharedLocalMemorySizeINTEL": 5618, "RoundingModeRTPINTEL": 5620, "RoundingModeRTNINTEL": 5621, @@ -267,8 +268,11 @@ "PhysicalStorageBufferEXT": 5349, "HitObjectAttributeNV": 5385, "TaskPayloadWorkgroupEXT": 5402, + "HitObjectAttributeEXT": 5411, "CodeSectionINTEL": 5605, + "DeviceOnlyALTERA": 5936, "DeviceOnlyINTEL": 5936, + "HostOnlyALTERA": 5937, "HostOnlyINTEL": 5937 } }, @@ -505,6 +509,7 @@ "NoCapture": 5, "NoWrite": 6, "NoReadWrite": 7, + "RuntimeAlignedALTERA": 5940, "RuntimeAlignedINTEL": 5940 } }, @@ -592,6 +597,7 @@ "AliasedPointer": 5356, "AliasedPointerEXT": 5356, "HitObjectShaderRecordBufferNV": 5386, + "HitObjectShaderRecordBufferEXT": 5389, "BindlessSamplerNV": 5398, "BindlessImageNV": 5399, "BoundSamplerNV": 5400, @@ -612,54 +618,95 @@ "UserTypeGOOGLE": 5636, "FunctionRoundingModeINTEL": 5822, "FunctionDenormModeINTEL": 5823, + "RegisterALTERA": 5825, "RegisterINTEL": 5825, + "MemoryALTERA": 5826, "MemoryINTEL": 5826, + "NumbanksALTERA": 5827, "NumbanksINTEL": 5827, + "BankwidthALTERA": 5828, "BankwidthINTEL": 5828, + "MaxPrivateCopiesALTERA": 5829, "MaxPrivateCopiesINTEL": 5829, + "SinglepumpALTERA": 5830, "SinglepumpINTEL": 5830, + "DoublepumpALTERA": 5831, "DoublepumpINTEL": 5831, + "MaxReplicatesALTERA": 5832, "MaxReplicatesINTEL": 5832, + "SimpleDualPortALTERA": 5833, "SimpleDualPortINTEL": 5833, + "MergeALTERA": 5834, "MergeINTEL": 5834, + "BankBitsALTERA": 5835, "BankBitsINTEL": 5835, + "ForcePow2DepthALTERA": 5836, "ForcePow2DepthINTEL": 5836, + "StridesizeALTERA": 5883, "StridesizeINTEL": 5883, + "WordsizeALTERA": 5884, "WordsizeINTEL": 5884, + "TrueDualPortALTERA": 5885, "TrueDualPortINTEL": 5885, + "BurstCoalesceALTERA": 5899, "BurstCoalesceINTEL": 5899, + "CacheSizeALTERA": 5900, "CacheSizeINTEL": 5900, + "DontStaticallyCoalesceALTERA": 5901, "DontStaticallyCoalesceINTEL": 5901, + "PrefetchALTERA": 5902, "PrefetchINTEL": 5902, + "StallEnableALTERA": 5905, "StallEnableINTEL": 5905, + "FuseLoopsInFunctionALTERA": 5907, "FuseLoopsInFunctionINTEL": 5907, + "MathOpDSPModeALTERA": 5909, "MathOpDSPModeINTEL": 5909, "AliasScopeINTEL": 5914, "NoAliasINTEL": 5915, + "InitiationIntervalALTERA": 5917, "InitiationIntervalINTEL": 5917, + "MaxConcurrencyALTERA": 5918, "MaxConcurrencyINTEL": 5918, + "PipelineEnableALTERA": 5919, "PipelineEnableINTEL": 5919, + "BufferLocationALTERA": 5921, "BufferLocationINTEL": 5921, + "IOPipeStorageALTERA": 5944, "IOPipeStorageINTEL": 5944, "FunctionFloatingPointModeINTEL": 6080, "SingleElementVectorINTEL": 6085, "VectorComputeCallableFunctionINTEL": 6087, "MediaBlockIOINTEL": 6140, + "StallFreeALTERA": 6151, "StallFreeINTEL": 6151, "FPMaxErrorDecorationINTEL": 6170, + "LatencyControlLabelALTERA": 6172, "LatencyControlLabelINTEL": 6172, + "LatencyControlConstraintALTERA": 6173, "LatencyControlConstraintINTEL": 6173, + "ConduitKernelArgumentALTERA": 6175, "ConduitKernelArgumentINTEL": 6175, + "RegisterMapKernelArgumentALTERA": 6176, "RegisterMapKernelArgumentINTEL": 6176, + "MMHostInterfaceAddressWidthALTERA": 6177, "MMHostInterfaceAddressWidthINTEL": 6177, + "MMHostInterfaceDataWidthALTERA": 6178, "MMHostInterfaceDataWidthINTEL": 6178, + "MMHostInterfaceLatencyALTERA": 6179, "MMHostInterfaceLatencyINTEL": 6179, + "MMHostInterfaceReadWriteModeALTERA": 6180, "MMHostInterfaceReadWriteModeINTEL": 6180, + "MMHostInterfaceMaxBurstALTERA": 6181, "MMHostInterfaceMaxBurstINTEL": 6181, + "MMHostInterfaceWaitRequestALTERA": 6182, "MMHostInterfaceWaitRequestINTEL": 6182, + "StableKernelArgumentALTERA": 6183, "StableKernelArgumentINTEL": 6183, "HostAccessINTEL": 6188, + "InitModeALTERA": 6190, "InitModeINTEL": 6190, + "ImplementInRegisterMapALTERA": 6191, "ImplementInRegisterMapINTEL": 6191, "ConditionalINTEL": 6247, "CacheControlLoadINTEL": 6442, @@ -844,15 +891,25 @@ "IterationMultiple": 6, "PeelCount": 7, "PartialCount": 8, + "InitiationIntervalALTERA": 16, "InitiationIntervalINTEL": 16, + "MaxConcurrencyALTERA": 17, "MaxConcurrencyINTEL": 17, + "DependencyArrayALTERA": 18, "DependencyArrayINTEL": 18, + "PipelineEnableALTERA": 19, "PipelineEnableINTEL": 19, + "LoopCoalesceALTERA": 20, "LoopCoalesceINTEL": 20, + "MaxInterleavingALTERA": 21, "MaxInterleavingINTEL": 21, + "SpeculatedIterationsALTERA": 22, "SpeculatedIterationsINTEL": 22, + "NoFusionALTERA": 23, "NoFusionINTEL": 23, + "LoopCountALTERA": 24, "LoopCountINTEL": 24, + "MaxReinvocationDelayALTERA": 25, "MaxReinvocationDelayINTEL": 25 } }, @@ -1160,6 +1217,7 @@ "DisplacementMicromapNV": 5380, "RayTracingOpacityMicromapEXT": 5381, "ShaderInvocationReorderNV": 5383, + "ShaderInvocationReorderEXT": 5388, "BindlessTextureNV": 5390, "RayQueryPositionFetchKHR": 5391, "CooperativeVectorNV": 5394, @@ -1168,6 +1226,7 @@ "RawAccessChainsNV": 5414, "RayTracingSpheresGeometryNV": 5418, "RayTracingLinearSweptSpheresGeometryNV": 5419, + "Shader64BitIndexingEXT": 5426, "CooperativeMatrixReductionsNV": 5430, "CooperativeMatrixConversionsNV": 5431, "CooperativeMatrixPerElementOperationsNV": 5432, @@ -1197,26 +1256,42 @@ "SubgroupAvcMotionEstimationChromaINTEL": 5698, "VariableLengthArrayINTEL": 5817, "FunctionFloatControlINTEL": 5821, + "FPGAMemoryAttributesALTERA": 5824, "FPGAMemoryAttributesINTEL": 5824, "FPFastMathModeINTEL": 5837, + "ArbitraryPrecisionIntegersALTERA": 5844, "ArbitraryPrecisionIntegersINTEL": 5844, + "ArbitraryPrecisionFloatingPointALTERA": 5845, "ArbitraryPrecisionFloatingPointINTEL": 5845, "UnstructuredLoopControlsINTEL": 5886, + "FPGALoopControlsALTERA": 5888, "FPGALoopControlsINTEL": 5888, "KernelAttributesINTEL": 5892, "FPGAKernelAttributesINTEL": 5897, + "FPGAMemoryAccessesALTERA": 5898, "FPGAMemoryAccessesINTEL": 5898, + "FPGAClusterAttributesALTERA": 5904, "FPGAClusterAttributesINTEL": 5904, + "LoopFuseALTERA": 5906, "LoopFuseINTEL": 5906, + "FPGADSPControlALTERA": 5908, "FPGADSPControlINTEL": 5908, "MemoryAccessAliasingINTEL": 5910, + "FPGAInvocationPipeliningAttributesALTERA": 5916, "FPGAInvocationPipeliningAttributesINTEL": 5916, + "FPGABufferLocationALTERA": 5920, "FPGABufferLocationINTEL": 5920, + "ArbitraryPrecisionFixedPointALTERA": 5922, "ArbitraryPrecisionFixedPointINTEL": 5922, + "USMStorageClassesALTERA": 5935, "USMStorageClassesINTEL": 5935, + "RuntimeAlignedAttributeALTERA": 5939, "RuntimeAlignedAttributeINTEL": 5939, + "IOPipesALTERA": 5943, "IOPipesINTEL": 5943, + "BlockingPipesALTERA": 5945, "BlockingPipesINTEL": 5945, + "FPGARegALTERA": 5948, "FPGARegINTEL": 5948, "DotProductInputAll": 6016, "DotProductInputAllKHR": 6016, @@ -1243,13 +1318,18 @@ "BFloat16ConversionINTEL": 6115, "SplitBarrierINTEL": 6141, "ArithmeticFenceEXT": 6144, + "FPGAClusterAttributesV2ALTERA": 6150, "FPGAClusterAttributesV2INTEL": 6150, "FPGAKernelAttributesv2INTEL": 6161, + "TaskSequenceALTERA": 6162, "TaskSequenceINTEL": 6162, "FPMaxErrorINTEL": 6169, + "FPGALatencyControlALTERA": 6171, "FPGALatencyControlINTEL": 6171, + "FPGAArgumentInterfacesALTERA": 6174, "FPGAArgumentInterfacesINTEL": 6174, "GlobalVariableHostAccessINTEL": 6187, + "GlobalVariableFPGADecorationsALTERA": 6189, "GlobalVariableFPGADecorationsINTEL": 6189, "SubgroupBufferPrefetchINTEL": 6220, "Subgroup2DBlockIOINTEL": 6228, @@ -1460,7 +1540,9 @@ "Type": "Value", "Values": { + "InitOnDeviceReprogramALTERA": 0, "InitOnDeviceReprogramINTEL": 0, + "InitOnDeviceResetALTERA": 1, "InitOnDeviceResetINTEL": 1 } }, @@ -2074,6 +2156,36 @@ "OpFetchMicroTriangleVertexBarycentricNV": 5301, "OpCooperativeVectorLoadNV": 5302, "OpCooperativeVectorStoreNV": 5303, + "OpHitObjectRecordFromQueryEXT": 5304, + "OpHitObjectRecordMissEXT": 5305, + "OpHitObjectRecordMissMotionEXT": 5306, + "OpHitObjectGetIntersectionTriangleVertexPositionsEXT": 5307, + "OpHitObjectGetRayFlagsEXT": 5308, + "OpHitObjectSetShaderBindingTableRecordIndexEXT": 5309, + "OpHitObjectReorderExecuteShaderEXT": 5310, + "OpHitObjectTraceReorderExecuteEXT": 5311, + "OpHitObjectTraceMotionReorderExecuteEXT": 5312, + "OpTypeHitObjectEXT": 5313, + "OpReorderThreadWithHintEXT": 5314, + "OpReorderThreadWithHitObjectEXT": 5315, + "OpHitObjectTraceRayEXT": 5316, + "OpHitObjectTraceRayMotionEXT": 5317, + "OpHitObjectRecordEmptyEXT": 5318, + "OpHitObjectExecuteShaderEXT": 5319, + "OpHitObjectGetCurrentTimeEXT": 5320, + "OpHitObjectGetAttributesEXT": 5321, + "OpHitObjectGetHitKindEXT": 5322, + "OpHitObjectGetPrimitiveIndexEXT": 5323, + "OpHitObjectGetGeometryIndexEXT": 5324, + "OpHitObjectGetInstanceIdEXT": 5325, + "OpHitObjectGetInstanceCustomIndexEXT": 5326, + "OpHitObjectGetObjectRayOriginEXT": 5327, + "OpHitObjectGetObjectRayDirectionEXT": 5328, + "OpHitObjectGetWorldRayDirectionEXT": 5329, + "OpHitObjectGetWorldRayOriginEXT": 5330, + "OpHitObjectGetObjectToWorldEXT": 5331, + "OpHitObjectGetWorldToObjectEXT": 5332, + "OpHitObjectGetRayTMaxEXT": 5333, "OpReportIntersectionKHR": 5334, "OpReportIntersectionNV": 5334, "OpIgnoreIntersectionNV": 5335, @@ -2088,6 +2200,12 @@ "OpRayQueryGetClusterIdNV": 5345, "OpRayQueryGetIntersectionClusterIdNV": 5345, "OpHitObjectGetClusterIdNV": 5346, + "OpHitObjectGetRayTMinEXT": 5347, + "OpHitObjectGetShaderBindingTableRecordIndexEXT": 5348, + "OpHitObjectGetShaderRecordBufferHandleEXT": 5349, + "OpHitObjectIsEmptyEXT": 5350, + "OpHitObjectIsHitEXT": 5351, + "OpHitObjectIsMissEXT": 5352, "OpTypeCooperativeMatrixNV": 5358, "OpCooperativeMatrixLoadNV": 5359, "OpCooperativeMatrixStoreNV": 5360, @@ -2294,23 +2412,41 @@ "OpVariableLengthArrayINTEL": 5818, "OpSaveMemoryINTEL": 5819, "OpRestoreMemoryINTEL": 5820, + "OpArbitraryFloatSinCosPiALTERA": 5840, "OpArbitraryFloatSinCosPiINTEL": 5840, + "OpArbitraryFloatCastALTERA": 5841, "OpArbitraryFloatCastINTEL": 5841, + "OpArbitraryFloatCastFromIntALTERA": 5842, "OpArbitraryFloatCastFromIntINTEL": 5842, + "OpArbitraryFloatCastToIntALTERA": 5843, "OpArbitraryFloatCastToIntINTEL": 5843, + "OpArbitraryFloatAddALTERA": 5846, "OpArbitraryFloatAddINTEL": 5846, + "OpArbitraryFloatSubALTERA": 5847, "OpArbitraryFloatSubINTEL": 5847, + "OpArbitraryFloatMulALTERA": 5848, "OpArbitraryFloatMulINTEL": 5848, + "OpArbitraryFloatDivALTERA": 5849, "OpArbitraryFloatDivINTEL": 5849, + "OpArbitraryFloatGTALTERA": 5850, "OpArbitraryFloatGTINTEL": 5850, + "OpArbitraryFloatGEALTERA": 5851, "OpArbitraryFloatGEINTEL": 5851, + "OpArbitraryFloatLTALTERA": 5852, "OpArbitraryFloatLTINTEL": 5852, + "OpArbitraryFloatLEALTERA": 5853, "OpArbitraryFloatLEINTEL": 5853, + "OpArbitraryFloatEQALTERA": 5854, "OpArbitraryFloatEQINTEL": 5854, + "OpArbitraryFloatRecipALTERA": 5855, "OpArbitraryFloatRecipINTEL": 5855, + "OpArbitraryFloatRSqrtALTERA": 5856, "OpArbitraryFloatRSqrtINTEL": 5856, + "OpArbitraryFloatCbrtALTERA": 5857, "OpArbitraryFloatCbrtINTEL": 5857, + "OpArbitraryFloatHypotALTERA": 5858, "OpArbitraryFloatHypotINTEL": 5858, + "OpArbitraryFloatSqrtALTERA": 5859, "OpArbitraryFloatSqrtINTEL": 5859, "OpArbitraryFloatLogINTEL": 5860, "OpArbitraryFloatLog2INTEL": 5861, @@ -2339,21 +2475,37 @@ "OpAliasDomainDeclINTEL": 5911, "OpAliasScopeDeclINTEL": 5912, "OpAliasScopeListDeclINTEL": 5913, + "OpFixedSqrtALTERA": 5923, "OpFixedSqrtINTEL": 5923, + "OpFixedRecipALTERA": 5924, "OpFixedRecipINTEL": 5924, + "OpFixedRsqrtALTERA": 5925, "OpFixedRsqrtINTEL": 5925, + "OpFixedSinALTERA": 5926, "OpFixedSinINTEL": 5926, + "OpFixedCosALTERA": 5927, "OpFixedCosINTEL": 5927, + "OpFixedSinCosALTERA": 5928, "OpFixedSinCosINTEL": 5928, + "OpFixedSinPiALTERA": 5929, "OpFixedSinPiINTEL": 5929, + "OpFixedCosPiALTERA": 5930, "OpFixedCosPiINTEL": 5930, + "OpFixedSinCosPiALTERA": 5931, "OpFixedSinCosPiINTEL": 5931, + "OpFixedLogALTERA": 5932, "OpFixedLogINTEL": 5932, + "OpFixedExpALTERA": 5933, "OpFixedExpINTEL": 5933, + "OpPtrCastToCrossWorkgroupALTERA": 5934, "OpPtrCastToCrossWorkgroupINTEL": 5934, + "OpCrossWorkgroupCastToPtrALTERA": 5938, "OpCrossWorkgroupCastToPtrINTEL": 5938, + "OpReadPipeBlockingALTERA": 5946, "OpReadPipeBlockingINTEL": 5946, + "OpWritePipeBlockingALTERA": 5947, "OpWritePipeBlockingINTEL": 5947, + "OpFPGARegALTERA": 5949, "OpFPGARegINTEL": 5949, "OpRayQueryGetRayTMinKHR": 6016, "OpRayQueryGetRayFlagsKHR": 6017, @@ -2383,10 +2535,15 @@ "OpControlBarrierArriveINTEL": 6142, "OpControlBarrierWaitINTEL": 6143, "OpArithmeticFenceEXT": 6145, + "OpTaskSequenceCreateALTERA": 6163, "OpTaskSequenceCreateINTEL": 6163, + "OpTaskSequenceAsyncALTERA": 6164, "OpTaskSequenceAsyncINTEL": 6164, + "OpTaskSequenceGetALTERA": 6165, "OpTaskSequenceGetINTEL": 6165, + "OpTaskSequenceReleaseALTERA": 6166, "OpTaskSequenceReleaseINTEL": 6166, + "OpTypeTaskSequenceALTERA": 6199, "OpTypeTaskSequenceINTEL": 6199, "OpSubgroupBlockPrefetchINTEL": 6221, "OpSubgroup2DBlockLoadINTEL": 6231, diff --git a/libs/bgfx/3rdparty/spirv-tools/include/generated/build-version.inc b/libs/bgfx/3rdparty/spirv-tools/include/generated/build-version.inc index 4dbb088..81c26ac 100644 --- a/libs/bgfx/3rdparty/spirv-tools/include/generated/build-version.inc +++ b/libs/bgfx/3rdparty/spirv-tools/include/generated/build-version.inc @@ -1 +1 @@ -"v2025.4", "SPIRV-Tools v2025.4 v2025.4-28-g8b4ee452" +"v2025.5", "SPIRV-Tools v2025.5 v2025.4-64-gd2a11ec9" diff --git a/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_body.inc b/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_body.inc index d19d225..c944cd4 100644 --- a/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_body.inc +++ b/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_body.inc @@ -1,167 +1,189 @@ // Returns the name of an extension, as an index into kStrings IndexRange ExtensionToIndexRange(Extension extension) { switch(extension) { - case Extension::kSPV_AMDX_shader_enqueue: return IR(0, 24); - case Extension::kSPV_AMD_gcn_shader: return IR(24, 19); - case Extension::kSPV_AMD_gpu_shader_half_float: return IR(43, 30); - case Extension::kSPV_AMD_gpu_shader_half_float_fetch: return IR(73, 36); - case Extension::kSPV_AMD_gpu_shader_int16: return IR(109, 25); - case Extension::kSPV_AMD_shader_ballot: return IR(134, 22); - case Extension::kSPV_AMD_shader_early_and_late_fragment_tests: return IR(156, 45); - case Extension::kSPV_AMD_shader_explicit_vertex_parameter: return IR(201, 41); - case Extension::kSPV_AMD_shader_fragment_mask: return IR(242, 29); - case Extension::kSPV_AMD_shader_image_load_store_lod: return IR(271, 36); - case Extension::kSPV_AMD_shader_trinary_minmax: return IR(307, 30); - case Extension::kSPV_AMD_texture_gather_bias_lod: return IR(337, 32); - case Extension::kSPV_ARM_cooperative_matrix_layouts: return IR(369, 35); - case Extension::kSPV_ARM_core_builtins: return IR(404, 22); - case Extension::kSPV_ARM_graph: return IR(426, 14); - case Extension::kSPV_ARM_tensors: return IR(440, 16); - case Extension::kSPV_EXT_arithmetic_fence: return IR(456, 25); - case Extension::kSPV_EXT_demote_to_helper_invocation: return IR(481, 36); - case Extension::kSPV_EXT_descriptor_indexing: return IR(517, 28); - case Extension::kSPV_EXT_float8: return IR(545, 15); - case Extension::kSPV_EXT_fragment_fully_covered: return IR(560, 31); - case Extension::kSPV_EXT_fragment_invocation_density: return IR(591, 36); - case Extension::kSPV_EXT_fragment_shader_interlock: return IR(627, 34); - case Extension::kSPV_EXT_mesh_shader: return IR(661, 20); - case Extension::kSPV_EXT_opacity_micromap: return IR(681, 25); - case Extension::kSPV_EXT_optnone: return IR(706, 16); - case Extension::kSPV_EXT_physical_storage_buffer: return IR(722, 32); - case Extension::kSPV_EXT_relaxed_printf_string_address_space: return IR(754, 44); - case Extension::kSPV_EXT_replicated_composites: return IR(798, 30); - case Extension::kSPV_EXT_shader_atomic_float16_add: return IR(828, 34); - case Extension::kSPV_EXT_shader_atomic_float_add: return IR(862, 32); - case Extension::kSPV_EXT_shader_atomic_float_min_max: return IR(894, 36); - case Extension::kSPV_EXT_shader_image_int64: return IR(930, 27); - case Extension::kSPV_EXT_shader_stencil_export: return IR(957, 30); - case Extension::kSPV_EXT_shader_tile_image: return IR(987, 26); - case Extension::kSPV_EXT_shader_viewport_index_layer: return IR(1013, 36); - case Extension::kSPV_GOOGLE_decorate_string: return IR(1049, 27); - case Extension::kSPV_GOOGLE_hlsl_functionality1: return IR(1076, 31); - case Extension::kSPV_GOOGLE_user_type: return IR(1107, 21); - case Extension::kSPV_INTEL_2d_block_io: return IR(1128, 22); - case Extension::kSPV_INTEL_arbitrary_precision_fixed_point: return IR(1150, 42); - case Extension::kSPV_INTEL_arbitrary_precision_floating_point: return IR(1192, 45); - case Extension::kSPV_INTEL_arbitrary_precision_integers: return IR(1237, 39); - case Extension::kSPV_INTEL_bfloat16_conversion: return IR(1276, 30); - case Extension::kSPV_INTEL_bindless_images: return IR(1306, 26); - case Extension::kSPV_INTEL_blocking_pipes: return IR(1332, 25); - case Extension::kSPV_INTEL_cache_controls: return IR(1357, 25); - case Extension::kSPV_INTEL_debug_module: return IR(1382, 23); - case Extension::kSPV_INTEL_device_side_avc_motion_estimation: return IR(1405, 44); - case Extension::kSPV_INTEL_float_controls2: return IR(1449, 26); - case Extension::kSPV_INTEL_fp_fast_math_mode: return IR(1475, 28); - case Extension::kSPV_INTEL_fp_max_error: return IR(1503, 23); - case Extension::kSPV_INTEL_fpga_argument_interfaces: return IR(1526, 35); - case Extension::kSPV_INTEL_fpga_buffer_location: return IR(1561, 31); - case Extension::kSPV_INTEL_fpga_cluster_attributes: return IR(1592, 34); - case Extension::kSPV_INTEL_fpga_dsp_control: return IR(1626, 27); - case Extension::kSPV_INTEL_fpga_invocation_pipelining_attributes: return IR(1653, 48); - case Extension::kSPV_INTEL_fpga_latency_control: return IR(1701, 31); - case Extension::kSPV_INTEL_fpga_loop_controls: return IR(1732, 29); - case Extension::kSPV_INTEL_fpga_memory_accesses: return IR(1761, 31); - case Extension::kSPV_INTEL_fpga_memory_attributes: return IR(1792, 33); - case Extension::kSPV_INTEL_fpga_reg: return IR(1825, 19); - case Extension::kSPV_INTEL_function_pointers: return IR(1844, 28); - case Extension::kSPV_INTEL_function_variants: return IR(1872, 28); - case Extension::kSPV_INTEL_global_variable_fpga_decorations: return IR(1900, 43); - case Extension::kSPV_INTEL_global_variable_host_access: return IR(1943, 38); - case Extension::kSPV_INTEL_inline_assembly: return IR(1981, 26); - case Extension::kSPV_INTEL_int4: return IR(2007, 15); - case Extension::kSPV_INTEL_io_pipes: return IR(2022, 19); - case Extension::kSPV_INTEL_kernel_attributes: return IR(2041, 28); - case Extension::kSPV_INTEL_long_composites: return IR(2069, 26); - case Extension::kSPV_INTEL_loop_fuse: return IR(2095, 20); - case Extension::kSPV_INTEL_masked_gather_scatter: return IR(2115, 32); - case Extension::kSPV_INTEL_maximum_registers: return IR(2147, 28); - case Extension::kSPV_INTEL_media_block_io: return IR(2175, 25); - case Extension::kSPV_INTEL_memory_access_aliasing: return IR(2200, 33); - case Extension::kSPV_INTEL_optnone: return IR(2233, 18); - case Extension::kSPV_INTEL_runtime_aligned: return IR(2251, 26); - case Extension::kSPV_INTEL_shader_integer_functions2: return IR(2277, 36); - case Extension::kSPV_INTEL_split_barrier: return IR(2313, 24); - case Extension::kSPV_INTEL_subgroup_buffer_prefetch: return IR(2337, 35); - case Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate: return IR(2372, 46); - case Extension::kSPV_INTEL_subgroups: return IR(2418, 20); - case Extension::kSPV_INTEL_task_sequence: return IR(2438, 24); - case Extension::kSPV_INTEL_tensor_float32_conversion: return IR(2462, 36); - case Extension::kSPV_INTEL_ternary_bitwise_function: return IR(2498, 35); - case Extension::kSPV_INTEL_unstructured_loop_controls: return IR(2533, 37); - case Extension::kSPV_INTEL_usm_storage_classes: return IR(2570, 30); - case Extension::kSPV_INTEL_variable_length_array: return IR(2600, 32); - case Extension::kSPV_INTEL_vector_compute: return IR(2632, 25); - case Extension::kSPV_KHR_16bit_storage: return IR(2657, 22); - case Extension::kSPV_KHR_8bit_storage: return IR(2679, 21); - case Extension::kSPV_KHR_bfloat16: return IR(2700, 17); - case Extension::kSPV_KHR_bit_instructions: return IR(2717, 25); - case Extension::kSPV_KHR_compute_shader_derivatives: return IR(2742, 35); - case Extension::kSPV_KHR_cooperative_matrix: return IR(2777, 27); - case Extension::kSPV_KHR_device_group: return IR(2804, 21); - case Extension::kSPV_KHR_expect_assume: return IR(2825, 22); - case Extension::kSPV_KHR_float_controls: return IR(2847, 23); - case Extension::kSPV_KHR_float_controls2: return IR(2870, 24); - case Extension::kSPV_KHR_fma: return IR(2894, 12); - case Extension::kSPV_KHR_fragment_shader_barycentric: return IR(2906, 36); - case Extension::kSPV_KHR_fragment_shading_rate: return IR(2942, 30); - case Extension::kSPV_KHR_integer_dot_product: return IR(2972, 28); - case Extension::kSPV_KHR_linkonce_odr: return IR(3000, 21); - case Extension::kSPV_KHR_maximal_reconvergence: return IR(3021, 30); - case Extension::kSPV_KHR_multiview: return IR(3051, 18); - case Extension::kSPV_KHR_no_integer_wrap_decoration: return IR(3069, 35); - case Extension::kSPV_KHR_non_semantic_info: return IR(3104, 26); - case Extension::kSPV_KHR_physical_storage_buffer: return IR(3130, 32); - case Extension::kSPV_KHR_post_depth_coverage: return IR(3162, 28); - case Extension::kSPV_KHR_quad_control: return IR(3190, 21); - case Extension::kSPV_KHR_ray_cull_mask: return IR(3211, 22); - case Extension::kSPV_KHR_ray_query: return IR(3233, 18); - case Extension::kSPV_KHR_ray_tracing: return IR(3251, 20); - case Extension::kSPV_KHR_ray_tracing_position_fetch: return IR(3271, 35); - case Extension::kSPV_KHR_relaxed_extended_instruction: return IR(3306, 37); - case Extension::kSPV_KHR_shader_atomic_counter_ops: return IR(3343, 34); - case Extension::kSPV_KHR_shader_ballot: return IR(3377, 22); - case Extension::kSPV_KHR_shader_clock: return IR(3399, 21); - case Extension::kSPV_KHR_shader_draw_parameters: return IR(3420, 31); - case Extension::kSPV_KHR_storage_buffer_storage_class: return IR(3451, 37); - case Extension::kSPV_KHR_subgroup_rotate: return IR(3488, 24); - case Extension::kSPV_KHR_subgroup_uniform_control_flow: return IR(3512, 38); - case Extension::kSPV_KHR_subgroup_vote: return IR(3550, 22); - case Extension::kSPV_KHR_terminate_invocation: return IR(3572, 29); - case Extension::kSPV_KHR_uniform_group_instructions: return IR(3601, 35); - case Extension::kSPV_KHR_untyped_pointers: return IR(3636, 25); - case Extension::kSPV_KHR_variable_pointers: return IR(3661, 26); - case Extension::kSPV_KHR_vulkan_memory_model: return IR(3687, 28); - case Extension::kSPV_KHR_workgroup_memory_explicit_layout: return IR(3715, 41); - case Extension::kSPV_NVX_multiview_per_view_attributes: return IR(3756, 38); - case Extension::kSPV_NV_bindless_texture: return IR(3794, 24); - case Extension::kSPV_NV_cluster_acceleration_structure: return IR(3818, 38); - case Extension::kSPV_NV_compute_shader_derivatives: return IR(3856, 34); - case Extension::kSPV_NV_cooperative_matrix: return IR(3890, 26); - case Extension::kSPV_NV_cooperative_matrix2: return IR(3916, 27); - case Extension::kSPV_NV_cooperative_vector: return IR(3943, 26); - case Extension::kSPV_NV_displacement_micromap: return IR(3969, 29); - case Extension::kSPV_NV_fragment_shader_barycentric: return IR(3998, 35); - case Extension::kSPV_NV_geometry_shader_passthrough: return IR(4033, 35); - case Extension::kSPV_NV_linear_swept_spheres: return IR(4068, 28); - case Extension::kSPV_NV_mesh_shader: return IR(4096, 19); - case Extension::kSPV_NV_raw_access_chains: return IR(4115, 25); - case Extension::kSPV_NV_ray_tracing: return IR(4140, 19); - case Extension::kSPV_NV_ray_tracing_motion_blur: return IR(4159, 31); - case Extension::kSPV_NV_sample_mask_override_coverage: return IR(4190, 37); - case Extension::kSPV_NV_shader_atomic_fp16_vector: return IR(4227, 33); - case Extension::kSPV_NV_shader_image_footprint: return IR(4260, 30); - case Extension::kSPV_NV_shader_invocation_reorder: return IR(4290, 33); - case Extension::kSPV_NV_shader_sm_builtins: return IR(4323, 26); - case Extension::kSPV_NV_shader_subgroup_partitioned: return IR(4349, 35); - case Extension::kSPV_NV_shading_rate: return IR(4384, 20); - case Extension::kSPV_NV_stereo_view_rendering: return IR(4404, 29); - case Extension::kSPV_NV_tensor_addressing: return IR(4433, 25); - case Extension::kSPV_NV_viewport_array2: return IR(4458, 23); - case Extension::kSPV_QCOM_cooperative_matrix_conversion: return IR(4481, 39); - case Extension::kSPV_QCOM_image_processing: return IR(4520, 26); - case Extension::kSPV_QCOM_image_processing2: return IR(4546, 27); - case Extension::kSPV_QCOM_tile_shading: return IR(4573, 22); - case Extension::kSPV_VALIDATOR_ignore_type_decl_unique: return IR(4595, 38); + case Extension::kSPV_ALTERA_arbitrary_precision_fixed_point: return IR(0, 43); + case Extension::kSPV_ALTERA_arbitrary_precision_floating_point: return IR(43, 46); + case Extension::kSPV_ALTERA_arbitrary_precision_integers: return IR(89, 40); + case Extension::kSPV_ALTERA_blocking_pipes: return IR(129, 26); + case Extension::kSPV_ALTERA_fpga_argument_interfaces: return IR(155, 36); + case Extension::kSPV_ALTERA_fpga_buffer_location: return IR(191, 32); + case Extension::kSPV_ALTERA_fpga_cluster_attributes: return IR(223, 35); + case Extension::kSPV_ALTERA_fpga_dsp_control: return IR(258, 28); + case Extension::kSPV_ALTERA_fpga_invocation_pipelining_attributes: return IR(286, 49); + case Extension::kSPV_ALTERA_fpga_latency_control: return IR(335, 32); + case Extension::kSPV_ALTERA_fpga_loop_controls: return IR(367, 30); + case Extension::kSPV_ALTERA_fpga_memory_accesses: return IR(397, 32); + case Extension::kSPV_ALTERA_fpga_memory_attributes: return IR(429, 34); + case Extension::kSPV_ALTERA_fpga_reg: return IR(463, 20); + case Extension::kSPV_ALTERA_global_variable_fpga_decorations: return IR(483, 44); + case Extension::kSPV_ALTERA_io_pipes: return IR(527, 20); + case Extension::kSPV_ALTERA_loop_fuse: return IR(547, 21); + case Extension::kSPV_ALTERA_runtime_aligned: return IR(568, 27); + case Extension::kSPV_ALTERA_task_sequence: return IR(595, 25); + case Extension::kSPV_ALTERA_usm_storage_classes: return IR(620, 31); + case Extension::kSPV_AMDX_shader_enqueue: return IR(651, 24); + case Extension::kSPV_AMD_gcn_shader: return IR(675, 19); + case Extension::kSPV_AMD_gpu_shader_half_float: return IR(694, 30); + case Extension::kSPV_AMD_gpu_shader_half_float_fetch: return IR(724, 36); + case Extension::kSPV_AMD_gpu_shader_int16: return IR(760, 25); + case Extension::kSPV_AMD_shader_ballot: return IR(785, 22); + case Extension::kSPV_AMD_shader_early_and_late_fragment_tests: return IR(807, 45); + case Extension::kSPV_AMD_shader_explicit_vertex_parameter: return IR(852, 41); + case Extension::kSPV_AMD_shader_fragment_mask: return IR(893, 29); + case Extension::kSPV_AMD_shader_image_load_store_lod: return IR(922, 36); + case Extension::kSPV_AMD_shader_trinary_minmax: return IR(958, 30); + case Extension::kSPV_AMD_texture_gather_bias_lod: return IR(988, 32); + case Extension::kSPV_ARM_cooperative_matrix_layouts: return IR(1020, 35); + case Extension::kSPV_ARM_core_builtins: return IR(1055, 22); + case Extension::kSPV_ARM_graph: return IR(1077, 14); + case Extension::kSPV_ARM_tensors: return IR(1091, 16); + case Extension::kSPV_EXT_arithmetic_fence: return IR(1107, 25); + case Extension::kSPV_EXT_demote_to_helper_invocation: return IR(1132, 36); + case Extension::kSPV_EXT_descriptor_indexing: return IR(1168, 28); + case Extension::kSPV_EXT_float8: return IR(1196, 15); + case Extension::kSPV_EXT_fragment_fully_covered: return IR(1211, 31); + case Extension::kSPV_EXT_fragment_invocation_density: return IR(1242, 36); + case Extension::kSPV_EXT_fragment_shader_interlock: return IR(1278, 34); + case Extension::kSPV_EXT_mesh_shader: return IR(1312, 20); + case Extension::kSPV_EXT_opacity_micromap: return IR(1332, 25); + case Extension::kSPV_EXT_optnone: return IR(1357, 16); + case Extension::kSPV_EXT_physical_storage_buffer: return IR(1373, 32); + case Extension::kSPV_EXT_relaxed_printf_string_address_space: return IR(1405, 44); + case Extension::kSPV_EXT_replicated_composites: return IR(1449, 30); + case Extension::kSPV_EXT_shader_64bit_indexing: return IR(1479, 30); + case Extension::kSPV_EXT_shader_atomic_float16_add: return IR(1509, 34); + case Extension::kSPV_EXT_shader_atomic_float_add: return IR(1543, 32); + case Extension::kSPV_EXT_shader_atomic_float_min_max: return IR(1575, 36); + case Extension::kSPV_EXT_shader_image_int64: return IR(1611, 27); + case Extension::kSPV_EXT_shader_invocation_reorder: return IR(1638, 34); + case Extension::kSPV_EXT_shader_stencil_export: return IR(1672, 30); + case Extension::kSPV_EXT_shader_tile_image: return IR(1702, 26); + case Extension::kSPV_EXT_shader_viewport_index_layer: return IR(1728, 36); + case Extension::kSPV_GOOGLE_decorate_string: return IR(1764, 27); + case Extension::kSPV_GOOGLE_hlsl_functionality1: return IR(1791, 31); + case Extension::kSPV_GOOGLE_user_type: return IR(1822, 21); + case Extension::kSPV_INTEL_2d_block_io: return IR(1843, 22); + case Extension::kSPV_INTEL_arbitrary_precision_fixed_point: return IR(1865, 42); + case Extension::kSPV_INTEL_arbitrary_precision_floating_point: return IR(1907, 45); + case Extension::kSPV_INTEL_arbitrary_precision_integers: return IR(1952, 39); + case Extension::kSPV_INTEL_bfloat16_conversion: return IR(1991, 30); + case Extension::kSPV_INTEL_bindless_images: return IR(2021, 26); + case Extension::kSPV_INTEL_blocking_pipes: return IR(2047, 25); + case Extension::kSPV_INTEL_cache_controls: return IR(2072, 25); + case Extension::kSPV_INTEL_debug_module: return IR(2097, 23); + case Extension::kSPV_INTEL_device_side_avc_motion_estimation: return IR(2120, 44); + case Extension::kSPV_INTEL_float_controls2: return IR(2164, 26); + case Extension::kSPV_INTEL_fp_fast_math_mode: return IR(2190, 28); + case Extension::kSPV_INTEL_fp_max_error: return IR(2218, 23); + case Extension::kSPV_INTEL_fpga_argument_interfaces: return IR(2241, 35); + case Extension::kSPV_INTEL_fpga_buffer_location: return IR(2276, 31); + case Extension::kSPV_INTEL_fpga_cluster_attributes: return IR(2307, 34); + case Extension::kSPV_INTEL_fpga_dsp_control: return IR(2341, 27); + case Extension::kSPV_INTEL_fpga_invocation_pipelining_attributes: return IR(2368, 48); + case Extension::kSPV_INTEL_fpga_latency_control: return IR(2416, 31); + case Extension::kSPV_INTEL_fpga_loop_controls: return IR(2447, 29); + case Extension::kSPV_INTEL_fpga_memory_accesses: return IR(2476, 31); + case Extension::kSPV_INTEL_fpga_memory_attributes: return IR(2507, 33); + case Extension::kSPV_INTEL_fpga_reg: return IR(2540, 19); + case Extension::kSPV_INTEL_function_pointers: return IR(2559, 28); + case Extension::kSPV_INTEL_function_variants: return IR(2587, 28); + case Extension::kSPV_INTEL_global_variable_fpga_decorations: return IR(2615, 43); + case Extension::kSPV_INTEL_global_variable_host_access: return IR(2658, 38); + case Extension::kSPV_INTEL_inline_assembly: return IR(2696, 26); + case Extension::kSPV_INTEL_int4: return IR(2722, 15); + case Extension::kSPV_INTEL_io_pipes: return IR(2737, 19); + case Extension::kSPV_INTEL_kernel_attributes: return IR(2756, 28); + case Extension::kSPV_INTEL_long_composites: return IR(2784, 26); + case Extension::kSPV_INTEL_loop_fuse: return IR(2810, 20); + case Extension::kSPV_INTEL_masked_gather_scatter: return IR(2830, 32); + case Extension::kSPV_INTEL_maximum_registers: return IR(2862, 28); + case Extension::kSPV_INTEL_media_block_io: return IR(2890, 25); + case Extension::kSPV_INTEL_memory_access_aliasing: return IR(2915, 33); + case Extension::kSPV_INTEL_optnone: return IR(2948, 18); + case Extension::kSPV_INTEL_runtime_aligned: return IR(2966, 26); + case Extension::kSPV_INTEL_shader_integer_functions2: return IR(2992, 36); + case Extension::kSPV_INTEL_split_barrier: return IR(3028, 24); + case Extension::kSPV_INTEL_subgroup_buffer_prefetch: return IR(3052, 35); + case Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate: return IR(3087, 46); + case Extension::kSPV_INTEL_subgroups: return IR(3133, 20); + case Extension::kSPV_INTEL_task_sequence: return IR(3153, 24); + case Extension::kSPV_INTEL_tensor_float32_conversion: return IR(3177, 36); + case Extension::kSPV_INTEL_ternary_bitwise_function: return IR(3213, 35); + case Extension::kSPV_INTEL_unstructured_loop_controls: return IR(3248, 37); + case Extension::kSPV_INTEL_usm_storage_classes: return IR(3285, 30); + case Extension::kSPV_INTEL_variable_length_array: return IR(3315, 32); + case Extension::kSPV_INTEL_vector_compute: return IR(3347, 25); + case Extension::kSPV_KHR_16bit_storage: return IR(3372, 22); + case Extension::kSPV_KHR_8bit_storage: return IR(3394, 21); + case Extension::kSPV_KHR_bfloat16: return IR(3415, 17); + case Extension::kSPV_KHR_bit_instructions: return IR(3432, 25); + case Extension::kSPV_KHR_compute_shader_derivatives: return IR(3457, 35); + case Extension::kSPV_KHR_cooperative_matrix: return IR(3492, 27); + case Extension::kSPV_KHR_device_group: return IR(3519, 21); + case Extension::kSPV_KHR_expect_assume: return IR(3540, 22); + case Extension::kSPV_KHR_float_controls: return IR(3562, 23); + case Extension::kSPV_KHR_float_controls2: return IR(3585, 24); + case Extension::kSPV_KHR_fma: return IR(3609, 12); + case Extension::kSPV_KHR_fragment_shader_barycentric: return IR(3621, 36); + case Extension::kSPV_KHR_fragment_shading_rate: return IR(3657, 30); + case Extension::kSPV_KHR_integer_dot_product: return IR(3687, 28); + case Extension::kSPV_KHR_linkonce_odr: return IR(3715, 21); + case Extension::kSPV_KHR_maximal_reconvergence: return IR(3736, 30); + case Extension::kSPV_KHR_multiview: return IR(3766, 18); + case Extension::kSPV_KHR_no_integer_wrap_decoration: return IR(3784, 35); + case Extension::kSPV_KHR_non_semantic_info: return IR(3819, 26); + case Extension::kSPV_KHR_physical_storage_buffer: return IR(3845, 32); + case Extension::kSPV_KHR_post_depth_coverage: return IR(3877, 28); + case Extension::kSPV_KHR_quad_control: return IR(3905, 21); + case Extension::kSPV_KHR_ray_cull_mask: return IR(3926, 22); + case Extension::kSPV_KHR_ray_query: return IR(3948, 18); + case Extension::kSPV_KHR_ray_tracing: return IR(3966, 20); + case Extension::kSPV_KHR_ray_tracing_position_fetch: return IR(3986, 35); + case Extension::kSPV_KHR_relaxed_extended_instruction: return IR(4021, 37); + case Extension::kSPV_KHR_shader_atomic_counter_ops: return IR(4058, 34); + case Extension::kSPV_KHR_shader_ballot: return IR(4092, 22); + case Extension::kSPV_KHR_shader_clock: return IR(4114, 21); + case Extension::kSPV_KHR_shader_draw_parameters: return IR(4135, 31); + case Extension::kSPV_KHR_storage_buffer_storage_class: return IR(4166, 37); + case Extension::kSPV_KHR_subgroup_rotate: return IR(4203, 24); + case Extension::kSPV_KHR_subgroup_uniform_control_flow: return IR(4227, 38); + case Extension::kSPV_KHR_subgroup_vote: return IR(4265, 22); + case Extension::kSPV_KHR_terminate_invocation: return IR(4287, 29); + case Extension::kSPV_KHR_uniform_group_instructions: return IR(4316, 35); + case Extension::kSPV_KHR_untyped_pointers: return IR(4351, 25); + case Extension::kSPV_KHR_variable_pointers: return IR(4376, 26); + case Extension::kSPV_KHR_vulkan_memory_model: return IR(4402, 28); + case Extension::kSPV_KHR_workgroup_memory_explicit_layout: return IR(4430, 41); + case Extension::kSPV_NVX_multiview_per_view_attributes: return IR(4471, 38); + case Extension::kSPV_NV_bindless_texture: return IR(4509, 24); + case Extension::kSPV_NV_cluster_acceleration_structure: return IR(4533, 38); + case Extension::kSPV_NV_compute_shader_derivatives: return IR(4571, 34); + case Extension::kSPV_NV_cooperative_matrix: return IR(4605, 26); + case Extension::kSPV_NV_cooperative_matrix2: return IR(4631, 27); + case Extension::kSPV_NV_cooperative_vector: return IR(4658, 26); + case Extension::kSPV_NV_displacement_micromap: return IR(4684, 29); + case Extension::kSPV_NV_fragment_shader_barycentric: return IR(4713, 35); + case Extension::kSPV_NV_geometry_shader_passthrough: return IR(4748, 35); + case Extension::kSPV_NV_linear_swept_spheres: return IR(4783, 28); + case Extension::kSPV_NV_mesh_shader: return IR(4811, 19); + case Extension::kSPV_NV_raw_access_chains: return IR(4830, 25); + case Extension::kSPV_NV_ray_tracing: return IR(4855, 19); + case Extension::kSPV_NV_ray_tracing_motion_blur: return IR(4874, 31); + case Extension::kSPV_NV_sample_mask_override_coverage: return IR(4905, 37); + case Extension::kSPV_NV_shader_atomic_fp16_vector: return IR(4942, 33); + case Extension::kSPV_NV_shader_image_footprint: return IR(4975, 30); + case Extension::kSPV_NV_shader_invocation_reorder: return IR(5005, 33); + case Extension::kSPV_NV_shader_sm_builtins: return IR(5038, 26); + case Extension::kSPV_NV_shader_subgroup_partitioned: return IR(5064, 35); + case Extension::kSPV_NV_shading_rate: return IR(5099, 20); + case Extension::kSPV_NV_stereo_view_rendering: return IR(5119, 29); + case Extension::kSPV_NV_tensor_addressing: return IR(5148, 25); + case Extension::kSPV_NV_viewport_array2: return IR(5173, 23); + case Extension::kSPV_QCOM_cooperative_matrix_conversion: return IR(5196, 39); + case Extension::kSPV_QCOM_image_processing: return IR(5235, 26); + case Extension::kSPV_QCOM_image_processing2: return IR(5261, 27); + case Extension::kSPV_QCOM_tile_shading: return IR(5288, 22); + case Extension::kSPV_VALIDATOR_ignore_type_decl_unique: return IR(5310, 38); default: break; } return {}; @@ -171,168 +193,190 @@ IndexRange ExtensionToIndexRange(Extension extension) { // The fields in order are: // name, indexing into kStrings // enum value -static const std::array kExtensionNames{{ - {IR(0, 24), static_cast(kSPV_AMDX_shader_enqueue)}, - {IR(24, 19), static_cast(kSPV_AMD_gcn_shader)}, - {IR(43, 30), static_cast(kSPV_AMD_gpu_shader_half_float)}, - {IR(73, 36), static_cast(kSPV_AMD_gpu_shader_half_float_fetch)}, - {IR(109, 25), static_cast(kSPV_AMD_gpu_shader_int16)}, - {IR(134, 22), static_cast(kSPV_AMD_shader_ballot)}, - {IR(156, 45), static_cast(kSPV_AMD_shader_early_and_late_fragment_tests)}, - {IR(201, 41), static_cast(kSPV_AMD_shader_explicit_vertex_parameter)}, - {IR(242, 29), static_cast(kSPV_AMD_shader_fragment_mask)}, - {IR(271, 36), static_cast(kSPV_AMD_shader_image_load_store_lod)}, - {IR(307, 30), static_cast(kSPV_AMD_shader_trinary_minmax)}, - {IR(337, 32), static_cast(kSPV_AMD_texture_gather_bias_lod)}, - {IR(369, 35), static_cast(kSPV_ARM_cooperative_matrix_layouts)}, - {IR(404, 22), static_cast(kSPV_ARM_core_builtins)}, - {IR(426, 14), static_cast(kSPV_ARM_graph)}, - {IR(440, 16), static_cast(kSPV_ARM_tensors)}, - {IR(456, 25), static_cast(kSPV_EXT_arithmetic_fence)}, - {IR(481, 36), static_cast(kSPV_EXT_demote_to_helper_invocation)}, - {IR(517, 28), static_cast(kSPV_EXT_descriptor_indexing)}, - {IR(545, 15), static_cast(kSPV_EXT_float8)}, - {IR(560, 31), static_cast(kSPV_EXT_fragment_fully_covered)}, - {IR(591, 36), static_cast(kSPV_EXT_fragment_invocation_density)}, - {IR(627, 34), static_cast(kSPV_EXT_fragment_shader_interlock)}, - {IR(661, 20), static_cast(kSPV_EXT_mesh_shader)}, - {IR(681, 25), static_cast(kSPV_EXT_opacity_micromap)}, - {IR(706, 16), static_cast(kSPV_EXT_optnone)}, - {IR(722, 32), static_cast(kSPV_EXT_physical_storage_buffer)}, - {IR(754, 44), static_cast(kSPV_EXT_relaxed_printf_string_address_space)}, - {IR(798, 30), static_cast(kSPV_EXT_replicated_composites)}, - {IR(828, 34), static_cast(kSPV_EXT_shader_atomic_float16_add)}, - {IR(862, 32), static_cast(kSPV_EXT_shader_atomic_float_add)}, - {IR(894, 36), static_cast(kSPV_EXT_shader_atomic_float_min_max)}, - {IR(930, 27), static_cast(kSPV_EXT_shader_image_int64)}, - {IR(957, 30), static_cast(kSPV_EXT_shader_stencil_export)}, - {IR(987, 26), static_cast(kSPV_EXT_shader_tile_image)}, - {IR(1013, 36), static_cast(kSPV_EXT_shader_viewport_index_layer)}, - {IR(1049, 27), static_cast(kSPV_GOOGLE_decorate_string)}, - {IR(1076, 31), static_cast(kSPV_GOOGLE_hlsl_functionality1)}, - {IR(1107, 21), static_cast(kSPV_GOOGLE_user_type)}, - {IR(1128, 22), static_cast(kSPV_INTEL_2d_block_io)}, - {IR(1150, 42), static_cast(kSPV_INTEL_arbitrary_precision_fixed_point)}, - {IR(1192, 45), static_cast(kSPV_INTEL_arbitrary_precision_floating_point)}, - {IR(1237, 39), static_cast(kSPV_INTEL_arbitrary_precision_integers)}, - {IR(1276, 30), static_cast(kSPV_INTEL_bfloat16_conversion)}, - {IR(1306, 26), static_cast(kSPV_INTEL_bindless_images)}, - {IR(1332, 25), static_cast(kSPV_INTEL_blocking_pipes)}, - {IR(1357, 25), static_cast(kSPV_INTEL_cache_controls)}, - {IR(1382, 23), static_cast(kSPV_INTEL_debug_module)}, - {IR(1405, 44), static_cast(kSPV_INTEL_device_side_avc_motion_estimation)}, - {IR(1449, 26), static_cast(kSPV_INTEL_float_controls2)}, - {IR(1475, 28), static_cast(kSPV_INTEL_fp_fast_math_mode)}, - {IR(1503, 23), static_cast(kSPV_INTEL_fp_max_error)}, - {IR(1526, 35), static_cast(kSPV_INTEL_fpga_argument_interfaces)}, - {IR(1561, 31), static_cast(kSPV_INTEL_fpga_buffer_location)}, - {IR(1592, 34), static_cast(kSPV_INTEL_fpga_cluster_attributes)}, - {IR(1626, 27), static_cast(kSPV_INTEL_fpga_dsp_control)}, - {IR(1653, 48), static_cast(kSPV_INTEL_fpga_invocation_pipelining_attributes)}, - {IR(1701, 31), static_cast(kSPV_INTEL_fpga_latency_control)}, - {IR(1732, 29), static_cast(kSPV_INTEL_fpga_loop_controls)}, - {IR(1761, 31), static_cast(kSPV_INTEL_fpga_memory_accesses)}, - {IR(1792, 33), static_cast(kSPV_INTEL_fpga_memory_attributes)}, - {IR(1825, 19), static_cast(kSPV_INTEL_fpga_reg)}, - {IR(1844, 28), static_cast(kSPV_INTEL_function_pointers)}, - {IR(1872, 28), static_cast(kSPV_INTEL_function_variants)}, - {IR(1900, 43), static_cast(kSPV_INTEL_global_variable_fpga_decorations)}, - {IR(1943, 38), static_cast(kSPV_INTEL_global_variable_host_access)}, - {IR(1981, 26), static_cast(kSPV_INTEL_inline_assembly)}, - {IR(2007, 15), static_cast(kSPV_INTEL_int4)}, - {IR(2022, 19), static_cast(kSPV_INTEL_io_pipes)}, - {IR(2041, 28), static_cast(kSPV_INTEL_kernel_attributes)}, - {IR(2069, 26), static_cast(kSPV_INTEL_long_composites)}, - {IR(2095, 20), static_cast(kSPV_INTEL_loop_fuse)}, - {IR(2115, 32), static_cast(kSPV_INTEL_masked_gather_scatter)}, - {IR(2147, 28), static_cast(kSPV_INTEL_maximum_registers)}, - {IR(2175, 25), static_cast(kSPV_INTEL_media_block_io)}, - {IR(2200, 33), static_cast(kSPV_INTEL_memory_access_aliasing)}, - {IR(2233, 18), static_cast(kSPV_INTEL_optnone)}, - {IR(2251, 26), static_cast(kSPV_INTEL_runtime_aligned)}, - {IR(2277, 36), static_cast(kSPV_INTEL_shader_integer_functions2)}, - {IR(2313, 24), static_cast(kSPV_INTEL_split_barrier)}, - {IR(2337, 35), static_cast(kSPV_INTEL_subgroup_buffer_prefetch)}, - {IR(2372, 46), static_cast(kSPV_INTEL_subgroup_matrix_multiply_accumulate)}, - {IR(2418, 20), static_cast(kSPV_INTEL_subgroups)}, - {IR(2438, 24), static_cast(kSPV_INTEL_task_sequence)}, - {IR(2462, 36), static_cast(kSPV_INTEL_tensor_float32_conversion)}, - {IR(2498, 35), static_cast(kSPV_INTEL_ternary_bitwise_function)}, - {IR(2533, 37), static_cast(kSPV_INTEL_unstructured_loop_controls)}, - {IR(2570, 30), static_cast(kSPV_INTEL_usm_storage_classes)}, - {IR(2600, 32), static_cast(kSPV_INTEL_variable_length_array)}, - {IR(2632, 25), static_cast(kSPV_INTEL_vector_compute)}, - {IR(2657, 22), static_cast(kSPV_KHR_16bit_storage)}, - {IR(2679, 21), static_cast(kSPV_KHR_8bit_storage)}, - {IR(2700, 17), static_cast(kSPV_KHR_bfloat16)}, - {IR(2717, 25), static_cast(kSPV_KHR_bit_instructions)}, - {IR(2742, 35), static_cast(kSPV_KHR_compute_shader_derivatives)}, - {IR(2777, 27), static_cast(kSPV_KHR_cooperative_matrix)}, - {IR(2804, 21), static_cast(kSPV_KHR_device_group)}, - {IR(2825, 22), static_cast(kSPV_KHR_expect_assume)}, - {IR(2847, 23), static_cast(kSPV_KHR_float_controls)}, - {IR(2870, 24), static_cast(kSPV_KHR_float_controls2)}, - {IR(2894, 12), static_cast(kSPV_KHR_fma)}, - {IR(2906, 36), static_cast(kSPV_KHR_fragment_shader_barycentric)}, - {IR(2942, 30), static_cast(kSPV_KHR_fragment_shading_rate)}, - {IR(2972, 28), static_cast(kSPV_KHR_integer_dot_product)}, - {IR(3000, 21), static_cast(kSPV_KHR_linkonce_odr)}, - {IR(3021, 30), static_cast(kSPV_KHR_maximal_reconvergence)}, - {IR(3051, 18), static_cast(kSPV_KHR_multiview)}, - {IR(3069, 35), static_cast(kSPV_KHR_no_integer_wrap_decoration)}, - {IR(3104, 26), static_cast(kSPV_KHR_non_semantic_info)}, - {IR(3130, 32), static_cast(kSPV_KHR_physical_storage_buffer)}, - {IR(3162, 28), static_cast(kSPV_KHR_post_depth_coverage)}, - {IR(3190, 21), static_cast(kSPV_KHR_quad_control)}, - {IR(3211, 22), static_cast(kSPV_KHR_ray_cull_mask)}, - {IR(3233, 18), static_cast(kSPV_KHR_ray_query)}, - {IR(3251, 20), static_cast(kSPV_KHR_ray_tracing)}, - {IR(3271, 35), static_cast(kSPV_KHR_ray_tracing_position_fetch)}, - {IR(3306, 37), static_cast(kSPV_KHR_relaxed_extended_instruction)}, - {IR(3343, 34), static_cast(kSPV_KHR_shader_atomic_counter_ops)}, - {IR(3377, 22), static_cast(kSPV_KHR_shader_ballot)}, - {IR(3399, 21), static_cast(kSPV_KHR_shader_clock)}, - {IR(3420, 31), static_cast(kSPV_KHR_shader_draw_parameters)}, - {IR(3451, 37), static_cast(kSPV_KHR_storage_buffer_storage_class)}, - {IR(3488, 24), static_cast(kSPV_KHR_subgroup_rotate)}, - {IR(3512, 38), static_cast(kSPV_KHR_subgroup_uniform_control_flow)}, - {IR(3550, 22), static_cast(kSPV_KHR_subgroup_vote)}, - {IR(3572, 29), static_cast(kSPV_KHR_terminate_invocation)}, - {IR(3601, 35), static_cast(kSPV_KHR_uniform_group_instructions)}, - {IR(3636, 25), static_cast(kSPV_KHR_untyped_pointers)}, - {IR(3661, 26), static_cast(kSPV_KHR_variable_pointers)}, - {IR(3687, 28), static_cast(kSPV_KHR_vulkan_memory_model)}, - {IR(3715, 41), static_cast(kSPV_KHR_workgroup_memory_explicit_layout)}, - {IR(3756, 38), static_cast(kSPV_NVX_multiview_per_view_attributes)}, - {IR(3794, 24), static_cast(kSPV_NV_bindless_texture)}, - {IR(3818, 38), static_cast(kSPV_NV_cluster_acceleration_structure)}, - {IR(3856, 34), static_cast(kSPV_NV_compute_shader_derivatives)}, - {IR(3890, 26), static_cast(kSPV_NV_cooperative_matrix)}, - {IR(3916, 27), static_cast(kSPV_NV_cooperative_matrix2)}, - {IR(3943, 26), static_cast(kSPV_NV_cooperative_vector)}, - {IR(3969, 29), static_cast(kSPV_NV_displacement_micromap)}, - {IR(3998, 35), static_cast(kSPV_NV_fragment_shader_barycentric)}, - {IR(4033, 35), static_cast(kSPV_NV_geometry_shader_passthrough)}, - {IR(4068, 28), static_cast(kSPV_NV_linear_swept_spheres)}, - {IR(4096, 19), static_cast(kSPV_NV_mesh_shader)}, - {IR(4115, 25), static_cast(kSPV_NV_raw_access_chains)}, - {IR(4140, 19), static_cast(kSPV_NV_ray_tracing)}, - {IR(4159, 31), static_cast(kSPV_NV_ray_tracing_motion_blur)}, - {IR(4190, 37), static_cast(kSPV_NV_sample_mask_override_coverage)}, - {IR(4227, 33), static_cast(kSPV_NV_shader_atomic_fp16_vector)}, - {IR(4260, 30), static_cast(kSPV_NV_shader_image_footprint)}, - {IR(4290, 33), static_cast(kSPV_NV_shader_invocation_reorder)}, - {IR(4323, 26), static_cast(kSPV_NV_shader_sm_builtins)}, - {IR(4349, 35), static_cast(kSPV_NV_shader_subgroup_partitioned)}, - {IR(4384, 20), static_cast(kSPV_NV_shading_rate)}, - {IR(4404, 29), static_cast(kSPV_NV_stereo_view_rendering)}, - {IR(4433, 25), static_cast(kSPV_NV_tensor_addressing)}, - {IR(4458, 23), static_cast(kSPV_NV_viewport_array2)}, - {IR(4481, 39), static_cast(kSPV_QCOM_cooperative_matrix_conversion)}, - {IR(4520, 26), static_cast(kSPV_QCOM_image_processing)}, - {IR(4546, 27), static_cast(kSPV_QCOM_image_processing2)}, - {IR(4573, 22), static_cast(kSPV_QCOM_tile_shading)}, - {IR(4595, 38), static_cast(kSPV_VALIDATOR_ignore_type_decl_unique)}, +static const std::array kExtensionNames{{ + {IR(0, 43), static_cast(kSPV_ALTERA_arbitrary_precision_fixed_point)}, + {IR(43, 46), static_cast(kSPV_ALTERA_arbitrary_precision_floating_point)}, + {IR(89, 40), static_cast(kSPV_ALTERA_arbitrary_precision_integers)}, + {IR(129, 26), static_cast(kSPV_ALTERA_blocking_pipes)}, + {IR(155, 36), static_cast(kSPV_ALTERA_fpga_argument_interfaces)}, + {IR(191, 32), static_cast(kSPV_ALTERA_fpga_buffer_location)}, + {IR(223, 35), static_cast(kSPV_ALTERA_fpga_cluster_attributes)}, + {IR(258, 28), static_cast(kSPV_ALTERA_fpga_dsp_control)}, + {IR(286, 49), static_cast(kSPV_ALTERA_fpga_invocation_pipelining_attributes)}, + {IR(335, 32), static_cast(kSPV_ALTERA_fpga_latency_control)}, + {IR(367, 30), static_cast(kSPV_ALTERA_fpga_loop_controls)}, + {IR(397, 32), static_cast(kSPV_ALTERA_fpga_memory_accesses)}, + {IR(429, 34), static_cast(kSPV_ALTERA_fpga_memory_attributes)}, + {IR(463, 20), static_cast(kSPV_ALTERA_fpga_reg)}, + {IR(483, 44), static_cast(kSPV_ALTERA_global_variable_fpga_decorations)}, + {IR(527, 20), static_cast(kSPV_ALTERA_io_pipes)}, + {IR(547, 21), static_cast(kSPV_ALTERA_loop_fuse)}, + {IR(568, 27), static_cast(kSPV_ALTERA_runtime_aligned)}, + {IR(595, 25), static_cast(kSPV_ALTERA_task_sequence)}, + {IR(620, 31), static_cast(kSPV_ALTERA_usm_storage_classes)}, + {IR(651, 24), static_cast(kSPV_AMDX_shader_enqueue)}, + {IR(675, 19), static_cast(kSPV_AMD_gcn_shader)}, + {IR(694, 30), static_cast(kSPV_AMD_gpu_shader_half_float)}, + {IR(724, 36), static_cast(kSPV_AMD_gpu_shader_half_float_fetch)}, + {IR(760, 25), static_cast(kSPV_AMD_gpu_shader_int16)}, + {IR(785, 22), static_cast(kSPV_AMD_shader_ballot)}, + {IR(807, 45), static_cast(kSPV_AMD_shader_early_and_late_fragment_tests)}, + {IR(852, 41), static_cast(kSPV_AMD_shader_explicit_vertex_parameter)}, + {IR(893, 29), static_cast(kSPV_AMD_shader_fragment_mask)}, + {IR(922, 36), static_cast(kSPV_AMD_shader_image_load_store_lod)}, + {IR(958, 30), static_cast(kSPV_AMD_shader_trinary_minmax)}, + {IR(988, 32), static_cast(kSPV_AMD_texture_gather_bias_lod)}, + {IR(1020, 35), static_cast(kSPV_ARM_cooperative_matrix_layouts)}, + {IR(1055, 22), static_cast(kSPV_ARM_core_builtins)}, + {IR(1077, 14), static_cast(kSPV_ARM_graph)}, + {IR(1091, 16), static_cast(kSPV_ARM_tensors)}, + {IR(1107, 25), static_cast(kSPV_EXT_arithmetic_fence)}, + {IR(1132, 36), static_cast(kSPV_EXT_demote_to_helper_invocation)}, + {IR(1168, 28), static_cast(kSPV_EXT_descriptor_indexing)}, + {IR(1196, 15), static_cast(kSPV_EXT_float8)}, + {IR(1211, 31), static_cast(kSPV_EXT_fragment_fully_covered)}, + {IR(1242, 36), static_cast(kSPV_EXT_fragment_invocation_density)}, + {IR(1278, 34), static_cast(kSPV_EXT_fragment_shader_interlock)}, + {IR(1312, 20), static_cast(kSPV_EXT_mesh_shader)}, + {IR(1332, 25), static_cast(kSPV_EXT_opacity_micromap)}, + {IR(1357, 16), static_cast(kSPV_EXT_optnone)}, + {IR(1373, 32), static_cast(kSPV_EXT_physical_storage_buffer)}, + {IR(1405, 44), static_cast(kSPV_EXT_relaxed_printf_string_address_space)}, + {IR(1449, 30), static_cast(kSPV_EXT_replicated_composites)}, + {IR(1479, 30), static_cast(kSPV_EXT_shader_64bit_indexing)}, + {IR(1509, 34), static_cast(kSPV_EXT_shader_atomic_float16_add)}, + {IR(1543, 32), static_cast(kSPV_EXT_shader_atomic_float_add)}, + {IR(1575, 36), static_cast(kSPV_EXT_shader_atomic_float_min_max)}, + {IR(1611, 27), static_cast(kSPV_EXT_shader_image_int64)}, + {IR(1638, 34), static_cast(kSPV_EXT_shader_invocation_reorder)}, + {IR(1672, 30), static_cast(kSPV_EXT_shader_stencil_export)}, + {IR(1702, 26), static_cast(kSPV_EXT_shader_tile_image)}, + {IR(1728, 36), static_cast(kSPV_EXT_shader_viewport_index_layer)}, + {IR(1764, 27), static_cast(kSPV_GOOGLE_decorate_string)}, + {IR(1791, 31), static_cast(kSPV_GOOGLE_hlsl_functionality1)}, + {IR(1822, 21), static_cast(kSPV_GOOGLE_user_type)}, + {IR(1843, 22), static_cast(kSPV_INTEL_2d_block_io)}, + {IR(1865, 42), static_cast(kSPV_INTEL_arbitrary_precision_fixed_point)}, + {IR(1907, 45), static_cast(kSPV_INTEL_arbitrary_precision_floating_point)}, + {IR(1952, 39), static_cast(kSPV_INTEL_arbitrary_precision_integers)}, + {IR(1991, 30), static_cast(kSPV_INTEL_bfloat16_conversion)}, + {IR(2021, 26), static_cast(kSPV_INTEL_bindless_images)}, + {IR(2047, 25), static_cast(kSPV_INTEL_blocking_pipes)}, + {IR(2072, 25), static_cast(kSPV_INTEL_cache_controls)}, + {IR(2097, 23), static_cast(kSPV_INTEL_debug_module)}, + {IR(2120, 44), static_cast(kSPV_INTEL_device_side_avc_motion_estimation)}, + {IR(2164, 26), static_cast(kSPV_INTEL_float_controls2)}, + {IR(2190, 28), static_cast(kSPV_INTEL_fp_fast_math_mode)}, + {IR(2218, 23), static_cast(kSPV_INTEL_fp_max_error)}, + {IR(2241, 35), static_cast(kSPV_INTEL_fpga_argument_interfaces)}, + {IR(2276, 31), static_cast(kSPV_INTEL_fpga_buffer_location)}, + {IR(2307, 34), static_cast(kSPV_INTEL_fpga_cluster_attributes)}, + {IR(2341, 27), static_cast(kSPV_INTEL_fpga_dsp_control)}, + {IR(2368, 48), static_cast(kSPV_INTEL_fpga_invocation_pipelining_attributes)}, + {IR(2416, 31), static_cast(kSPV_INTEL_fpga_latency_control)}, + {IR(2447, 29), static_cast(kSPV_INTEL_fpga_loop_controls)}, + {IR(2476, 31), static_cast(kSPV_INTEL_fpga_memory_accesses)}, + {IR(2507, 33), static_cast(kSPV_INTEL_fpga_memory_attributes)}, + {IR(2540, 19), static_cast(kSPV_INTEL_fpga_reg)}, + {IR(2559, 28), static_cast(kSPV_INTEL_function_pointers)}, + {IR(2587, 28), static_cast(kSPV_INTEL_function_variants)}, + {IR(2615, 43), static_cast(kSPV_INTEL_global_variable_fpga_decorations)}, + {IR(2658, 38), static_cast(kSPV_INTEL_global_variable_host_access)}, + {IR(2696, 26), static_cast(kSPV_INTEL_inline_assembly)}, + {IR(2722, 15), static_cast(kSPV_INTEL_int4)}, + {IR(2737, 19), static_cast(kSPV_INTEL_io_pipes)}, + {IR(2756, 28), static_cast(kSPV_INTEL_kernel_attributes)}, + {IR(2784, 26), static_cast(kSPV_INTEL_long_composites)}, + {IR(2810, 20), static_cast(kSPV_INTEL_loop_fuse)}, + {IR(2830, 32), static_cast(kSPV_INTEL_masked_gather_scatter)}, + {IR(2862, 28), static_cast(kSPV_INTEL_maximum_registers)}, + {IR(2890, 25), static_cast(kSPV_INTEL_media_block_io)}, + {IR(2915, 33), static_cast(kSPV_INTEL_memory_access_aliasing)}, + {IR(2948, 18), static_cast(kSPV_INTEL_optnone)}, + {IR(2966, 26), static_cast(kSPV_INTEL_runtime_aligned)}, + {IR(2992, 36), static_cast(kSPV_INTEL_shader_integer_functions2)}, + {IR(3028, 24), static_cast(kSPV_INTEL_split_barrier)}, + {IR(3052, 35), static_cast(kSPV_INTEL_subgroup_buffer_prefetch)}, + {IR(3087, 46), static_cast(kSPV_INTEL_subgroup_matrix_multiply_accumulate)}, + {IR(3133, 20), static_cast(kSPV_INTEL_subgroups)}, + {IR(3153, 24), static_cast(kSPV_INTEL_task_sequence)}, + {IR(3177, 36), static_cast(kSPV_INTEL_tensor_float32_conversion)}, + {IR(3213, 35), static_cast(kSPV_INTEL_ternary_bitwise_function)}, + {IR(3248, 37), static_cast(kSPV_INTEL_unstructured_loop_controls)}, + {IR(3285, 30), static_cast(kSPV_INTEL_usm_storage_classes)}, + {IR(3315, 32), static_cast(kSPV_INTEL_variable_length_array)}, + {IR(3347, 25), static_cast(kSPV_INTEL_vector_compute)}, + {IR(3372, 22), static_cast(kSPV_KHR_16bit_storage)}, + {IR(3394, 21), static_cast(kSPV_KHR_8bit_storage)}, + {IR(3415, 17), static_cast(kSPV_KHR_bfloat16)}, + {IR(3432, 25), static_cast(kSPV_KHR_bit_instructions)}, + {IR(3457, 35), static_cast(kSPV_KHR_compute_shader_derivatives)}, + {IR(3492, 27), static_cast(kSPV_KHR_cooperative_matrix)}, + {IR(3519, 21), static_cast(kSPV_KHR_device_group)}, + {IR(3540, 22), static_cast(kSPV_KHR_expect_assume)}, + {IR(3562, 23), static_cast(kSPV_KHR_float_controls)}, + {IR(3585, 24), static_cast(kSPV_KHR_float_controls2)}, + {IR(3609, 12), static_cast(kSPV_KHR_fma)}, + {IR(3621, 36), static_cast(kSPV_KHR_fragment_shader_barycentric)}, + {IR(3657, 30), static_cast(kSPV_KHR_fragment_shading_rate)}, + {IR(3687, 28), static_cast(kSPV_KHR_integer_dot_product)}, + {IR(3715, 21), static_cast(kSPV_KHR_linkonce_odr)}, + {IR(3736, 30), static_cast(kSPV_KHR_maximal_reconvergence)}, + {IR(3766, 18), static_cast(kSPV_KHR_multiview)}, + {IR(3784, 35), static_cast(kSPV_KHR_no_integer_wrap_decoration)}, + {IR(3819, 26), static_cast(kSPV_KHR_non_semantic_info)}, + {IR(3845, 32), static_cast(kSPV_KHR_physical_storage_buffer)}, + {IR(3877, 28), static_cast(kSPV_KHR_post_depth_coverage)}, + {IR(3905, 21), static_cast(kSPV_KHR_quad_control)}, + {IR(3926, 22), static_cast(kSPV_KHR_ray_cull_mask)}, + {IR(3948, 18), static_cast(kSPV_KHR_ray_query)}, + {IR(3966, 20), static_cast(kSPV_KHR_ray_tracing)}, + {IR(3986, 35), static_cast(kSPV_KHR_ray_tracing_position_fetch)}, + {IR(4021, 37), static_cast(kSPV_KHR_relaxed_extended_instruction)}, + {IR(4058, 34), static_cast(kSPV_KHR_shader_atomic_counter_ops)}, + {IR(4092, 22), static_cast(kSPV_KHR_shader_ballot)}, + {IR(4114, 21), static_cast(kSPV_KHR_shader_clock)}, + {IR(4135, 31), static_cast(kSPV_KHR_shader_draw_parameters)}, + {IR(4166, 37), static_cast(kSPV_KHR_storage_buffer_storage_class)}, + {IR(4203, 24), static_cast(kSPV_KHR_subgroup_rotate)}, + {IR(4227, 38), static_cast(kSPV_KHR_subgroup_uniform_control_flow)}, + {IR(4265, 22), static_cast(kSPV_KHR_subgroup_vote)}, + {IR(4287, 29), static_cast(kSPV_KHR_terminate_invocation)}, + {IR(4316, 35), static_cast(kSPV_KHR_uniform_group_instructions)}, + {IR(4351, 25), static_cast(kSPV_KHR_untyped_pointers)}, + {IR(4376, 26), static_cast(kSPV_KHR_variable_pointers)}, + {IR(4402, 28), static_cast(kSPV_KHR_vulkan_memory_model)}, + {IR(4430, 41), static_cast(kSPV_KHR_workgroup_memory_explicit_layout)}, + {IR(4471, 38), static_cast(kSPV_NVX_multiview_per_view_attributes)}, + {IR(4509, 24), static_cast(kSPV_NV_bindless_texture)}, + {IR(4533, 38), static_cast(kSPV_NV_cluster_acceleration_structure)}, + {IR(4571, 34), static_cast(kSPV_NV_compute_shader_derivatives)}, + {IR(4605, 26), static_cast(kSPV_NV_cooperative_matrix)}, + {IR(4631, 27), static_cast(kSPV_NV_cooperative_matrix2)}, + {IR(4658, 26), static_cast(kSPV_NV_cooperative_vector)}, + {IR(4684, 29), static_cast(kSPV_NV_displacement_micromap)}, + {IR(4713, 35), static_cast(kSPV_NV_fragment_shader_barycentric)}, + {IR(4748, 35), static_cast(kSPV_NV_geometry_shader_passthrough)}, + {IR(4783, 28), static_cast(kSPV_NV_linear_swept_spheres)}, + {IR(4811, 19), static_cast(kSPV_NV_mesh_shader)}, + {IR(4830, 25), static_cast(kSPV_NV_raw_access_chains)}, + {IR(4855, 19), static_cast(kSPV_NV_ray_tracing)}, + {IR(4874, 31), static_cast(kSPV_NV_ray_tracing_motion_blur)}, + {IR(4905, 37), static_cast(kSPV_NV_sample_mask_override_coverage)}, + {IR(4942, 33), static_cast(kSPV_NV_shader_atomic_fp16_vector)}, + {IR(4975, 30), static_cast(kSPV_NV_shader_image_footprint)}, + {IR(5005, 33), static_cast(kSPV_NV_shader_invocation_reorder)}, + {IR(5038, 26), static_cast(kSPV_NV_shader_sm_builtins)}, + {IR(5064, 35), static_cast(kSPV_NV_shader_subgroup_partitioned)}, + {IR(5099, 20), static_cast(kSPV_NV_shading_rate)}, + {IR(5119, 29), static_cast(kSPV_NV_stereo_view_rendering)}, + {IR(5148, 25), static_cast(kSPV_NV_tensor_addressing)}, + {IR(5173, 23), static_cast(kSPV_NV_viewport_array2)}, + {IR(5196, 39), static_cast(kSPV_QCOM_cooperative_matrix_conversion)}, + {IR(5235, 26), static_cast(kSPV_QCOM_image_processing)}, + {IR(5261, 27), static_cast(kSPV_QCOM_image_processing2)}, + {IR(5288, 22), static_cast(kSPV_QCOM_tile_shading)}, + {IR(5310, 38), static_cast(kSPV_VALIDATOR_ignore_type_decl_unique)}, }}; // Operand descriptions, ordered by (operand kind, operand enum value). @@ -345,1196 +389,1201 @@ static const std::array kExtensionNames{{ // extensions, as an IndexRange into kExtensionSpans // version, first version of SPIR-V that has it // lastVersion, last version of SPIR-V that has it -static const std::array kOperandsByValue{{ - {0,IR(0, 0),IR(4633, 9)/* ReadOnly */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {1,IR(0, 0),IR(4649, 10)/* WriteOnly */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {2,IR(0, 0),IR(4659, 10)/* ReadWrite */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {0,IR(0, 0),IR(4669, 8)/* Logical */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL - {1,IR(0, 0),IR(4677, 11)/* Physical32 */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL - {2,IR(0, 0),IR(4698, 11)/* Physical64 */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL - {5348,IR(0, 0),IR(4709, 24)/* PhysicalStorageBuffer64 */,IR(0, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL - {0,IR(0, 0),IR(4791, 9)/* Position */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {1,IR(0, 0),IR(4807, 10)/* PointSize */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {3,IR(0, 0),IR(4817, 13)/* ClipDistance */,IR(0, 0),IR(4, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4,IR(0, 0),IR(4830, 13)/* CullDistance */,IR(0, 0),IR(5, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5,IR(0, 0),IR(4843, 9)/* VertexId */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {6,IR(0, 0),IR(4852, 11)/* InstanceId */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {7,IR(0, 0),IR(4863, 12)/* PrimitiveId */,IR(0, 0),IR(6, 6),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {8,IR(0, 0),IR(4953, 13)/* InvocationId */,IR(0, 0),IR(12, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {9,IR(0, 0),IR(4966, 6)/* Layer */,IR(0, 0),IR(14, 5),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {10,IR(0, 0),IR(5012, 14)/* ViewportIndex */,IR(0, 0),IR(19, 5),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {11,IR(0, 0),IR(5060, 15)/* TessLevelOuter */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {12,IR(0, 0),IR(5075, 15)/* TessLevelInner */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {13,IR(0, 0),IR(5090, 10)/* TessCoord */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {14,IR(0, 0),IR(5100, 14)/* PatchVertices */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {15,IR(0, 0),IR(5114, 10)/* FragCoord */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {16,IR(0, 0),IR(5124, 11)/* PointCoord */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {17,IR(0, 0),IR(5135, 12)/* FrontFacing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {18,IR(0, 0),IR(5147, 9)/* SampleId */,IR(0, 0),IR(25, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {19,IR(0, 0),IR(5174, 15)/* SamplePosition */,IR(0, 0),IR(25, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {20,IR(0, 0),IR(5189, 11)/* SampleMask */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {22,IR(0, 0),IR(5200, 10)/* FragDepth */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {23,IR(0, 0),IR(5210, 17)/* HelperInvocation */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {24,IR(0, 0),IR(5227, 14)/* NumWorkgroups */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {25,IR(0, 0),IR(5241, 14)/* WorkgroupSize */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {26,IR(0, 0),IR(5255, 12)/* WorkgroupId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {27,IR(0, 0),IR(5267, 18)/* LocalInvocationId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {28,IR(0, 0),IR(5285, 19)/* GlobalInvocationId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {29,IR(0, 0),IR(5304, 21)/* LocalInvocationIndex */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {30,IR(0, 0),IR(5325, 8)/* WorkDim */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {31,IR(0, 0),IR(5333, 11)/* GlobalSize */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {32,IR(0, 0),IR(5344, 22)/* EnqueuedWorkgroupSize */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {33,IR(0, 0),IR(5366, 13)/* GlobalOffset */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {34,IR(0, 0),IR(5379, 15)/* GlobalLinearId */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {36,IR(0, 0),IR(5394, 13)/* SubgroupSize */,IR(0, 0),IR(26, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {37,IR(0, 0),IR(5441, 16)/* SubgroupMaxSize */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {38,IR(0, 0),IR(5457, 13)/* NumSubgroups */,IR(0, 0),IR(29, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {39,IR(0, 0),IR(5470, 21)/* NumEnqueuedSubgroups */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {40,IR(0, 0),IR(5491, 11)/* SubgroupId */,IR(0, 0),IR(29, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {41,IR(0, 0),IR(5502, 26)/* SubgroupLocalInvocationId */,IR(0, 0),IR(26, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {42,IR(0, 0),IR(5528, 12)/* VertexIndex */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {43,IR(0, 0),IR(5540, 14)/* InstanceIndex */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4160,IR(0, 0),IR(5554, 10)/* CoreIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4161,IR(0, 0),IR(5580, 13)/* CoreCountARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4162,IR(0, 0),IR(5593, 13)/* CoreMaxIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4163,IR(0, 0),IR(5606, 10)/* WarpIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4164,IR(0, 0),IR(5616, 13)/* WarpMaxIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4416,IR(0, 0),IR(5629, 15)/* SubgroupEqMask */,IR(1, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4417,IR(0, 0),IR(5684, 15)/* SubgroupGeMask */,IR(2, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4418,IR(0, 0),IR(5717, 15)/* SubgroupGtMask */,IR(3, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4419,IR(0, 0),IR(5750, 15)/* SubgroupLeMask */,IR(4, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4420,IR(0, 0),IR(5783, 15)/* SubgroupLtMask */,IR(5, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4424,IR(0, 0),IR(5816, 11)/* BaseVertex */,IR(0, 0),IR(34, 1),IR(3, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4425,IR(0, 0),IR(5842, 13)/* BaseInstance */,IR(0, 0),IR(34, 1),IR(3, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4426,IR(0, 0),IR(5855, 10)/* DrawIndex */,IR(0, 0),IR(35, 3),IR(4, 3),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4432,IR(0, 0),IR(5865, 24)/* PrimitiveShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4438,IR(0, 0),IR(5912, 12)/* DeviceIndex */,IR(0, 0),IR(39, 1),IR(8, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4440,IR(0, 0),IR(5936, 10)/* ViewIndex */,IR(0, 0),IR(40, 1),IR(9, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4444,IR(0, 0),IR(5956, 15)/* ShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4492,IR(0, 0),IR(5971, 15)/* TileOffsetQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4493,IR(0, 0),IR(6002, 18)/* TileDimensionQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4494,IR(0, 0),IR(6020, 18)/* TileApronSizeQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4992,IR(0, 0),IR(6038, 20)/* BaryCoordNoPerspAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4993,IR(0, 0),IR(6058, 28)/* BaryCoordNoPerspCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4994,IR(0, 0),IR(6086, 26)/* BaryCoordNoPerspSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4995,IR(0, 0),IR(6112, 19)/* BaryCoordSmoothAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4996,IR(0, 0),IR(6131, 27)/* BaryCoordSmoothCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4997,IR(0, 0),IR(6158, 25)/* BaryCoordSmoothSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4998,IR(0, 0),IR(6183, 22)/* BaryCoordPullModelAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5014,IR(0, 0),IR(6205, 18)/* FragStencilRefEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5021,IR(0, 0),IR(6240, 29)/* RemainingRecursionLevelsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5073,IR(0, 0),IR(6287, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5253,IR(0, 0),IR(6303, 15)/* ViewportMaskNV */,IR(0, 0),IR(44, 2),IR(12, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5257,IR(0, 0),IR(6339, 20)/* SecondaryPositionNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5258,IR(0, 0),IR(6378, 24)/* SecondaryViewportMaskNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5261,IR(0, 0),IR(6402, 18)/* PositionPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5262,IR(0, 0),IR(6440, 22)/* ViewportMaskPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5264,IR(0, 0),IR(6462, 16)/* FullyCoveredEXT */,IR(0, 0),IR(49, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5274,IR(0, 0),IR(6502, 12)/* TaskCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5275,IR(0, 0),IR(6514, 17)/* PrimitiveCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5276,IR(0, 0),IR(6531, 19)/* PrimitiveIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5277,IR(0, 0),IR(6550, 22)/* ClipDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5278,IR(0, 0),IR(6572, 22)/* CullDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5279,IR(0, 0),IR(6594, 15)/* LayerPerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5280,IR(0, 0),IR(6609, 16)/* MeshViewCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5281,IR(0, 0),IR(6625, 18)/* MeshViewIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5286,IR(0, 0),IR(6643, 13)/* BaryCoordKHR */,IR(6, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5287,IR(0, 0),IR(6691, 20)/* BaryCoordNoPerspKHR */,IR(7, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5292,IR(0, 0),IR(6730, 12)/* FragSizeEXT */,IR(8, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5293,IR(0, 0),IR(6776, 23)/* FragInvocationCountEXT */,IR(9, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5294,IR(0, 0),IR(6821, 25)/* PrimitivePointIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5295,IR(0, 0),IR(6846, 24)/* PrimitiveLineIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5296,IR(0, 0),IR(6870, 28)/* PrimitiveTriangleIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5299,IR(0, 0),IR(6898, 17)/* CullPrimitiveEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5319,IR(0, 0),IR(6915, 12)/* LaunchIdKHR */,IR(10, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5320,IR(0, 0),IR(6938, 14)/* LaunchSizeKHR */,IR(11, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5321,IR(0, 0),IR(6965, 18)/* WorldRayOriginKHR */,IR(12, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5322,IR(0, 0),IR(7000, 21)/* WorldRayDirectionKHR */,IR(13, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5323,IR(0, 0),IR(7041, 19)/* ObjectRayOriginKHR */,IR(14, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5324,IR(0, 0),IR(7078, 22)/* ObjectRayDirectionKHR */,IR(15, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5325,IR(0, 0),IR(7121, 11)/* RayTminKHR */,IR(16, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5326,IR(0, 0),IR(7142, 11)/* RayTmaxKHR */,IR(17, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5327,IR(0, 0),IR(7163, 23)/* InstanceCustomIndexKHR */,IR(18, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5330,IR(0, 0),IR(7208, 17)/* ObjectToWorldKHR */,IR(19, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5331,IR(0, 0),IR(7241, 17)/* WorldToObjectKHR */,IR(20, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5332,IR(0, 0),IR(7274, 7)/* HitTNV */,IR(0, 0),IR(56, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5333,IR(0, 0),IR(7281, 11)/* HitKindKHR */,IR(21, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5334,IR(0, 0),IR(7302, 17)/* CurrentRayTimeNV */,IR(0, 0),IR(57, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5335,IR(0, 0),IR(7342, 30)/* HitTriangleVertexPositionsKHR */,IR(0, 0),IR(58, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5337,IR(0, 0),IR(7399, 34)/* HitMicroTriangleVertexPositionsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5344,IR(0, 0),IR(7466, 37)/* HitMicroTriangleVertexBarycentricsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5351,IR(0, 0),IR(7503, 20)/* IncomingRayFlagsKHR */,IR(22, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5352,IR(0, 0),IR(7542, 20)/* RayGeometryIndexKHR */,IR(0, 0),IR(60, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5359,IR(0, 0),IR(7562, 14)/* HitIsSphereNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5360,IR(0, 0),IR(7604, 11)/* HitIsLSSNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5361,IR(0, 0),IR(7654, 20)/* HitSpherePositionNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5374,IR(0, 0),IR(7674, 13)/* WarpsPerSMNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5375,IR(0, 0),IR(7706, 10)/* SMCountNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5376,IR(0, 0),IR(7716, 9)/* WarpIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5377,IR(0, 0),IR(7725, 7)/* SMIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5396,IR(0, 0),IR(7732, 18)/* HitLSSPositionsNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5405,IR(0, 0),IR(7750, 34)/* HitKindFrontFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5406,IR(0, 0),IR(7784, 33)/* HitKindBackFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5420,IR(0, 0),IR(7817, 18)/* HitSphereRadiusNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5421,IR(0, 0),IR(7835, 14)/* HitLSSRadiiNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5436,IR(0, 0),IR(7849, 12)/* ClusterIDNV */,IR(0, 0),IR(64, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {6021,IR(0, 0),IR(7902, 12)/* CullMaskKHR */,IR(0, 0),IR(65, 1),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {0,IR(0, 0),IR(7929, 7)/* Matrix */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {1,IR(0, 0),IR(4800, 7)/* Shader */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {2,IR(0, 0),IR(4875, 9)/* Geometry */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {3,IR(0, 0),IR(4884, 13)/* Tessellation */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4,IR(0, 0),IR(4688, 10)/* Addresses */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5,IR(0, 0),IR(7936, 8)/* Linkage */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6,IR(0, 0),IR(4642, 7)/* Kernel */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {7,IR(0, 0),IR(7944, 9)/* Vector16 */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {8,IR(0, 0),IR(7953, 14)/* Float16Buffer */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {9,IR(0, 0),IR(7967, 8)/* Float16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {10,IR(0, 0),IR(7975, 8)/* Float64 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {11,IR(0, 0),IR(7983, 6)/* Int64 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {12,IR(0, 0),IR(7989, 13)/* Int64Atomics */,IR(0, 0),IR(67, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {13,IR(0, 0),IR(8002, 11)/* ImageBasic */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {14,IR(0, 0),IR(8013, 15)/* ImageReadWrite */,IR(0, 0),IR(68, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {15,IR(0, 0),IR(8028, 12)/* ImageMipmap */,IR(0, 0),IR(68, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {17,IR(0, 0),IR(8040, 6)/* Pipes */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {18,IR(0, 0),IR(8046, 7)/* Groups */,IR(0, 0),IR(1, 0),IR(33, 1),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {19,IR(0, 0),IR(8053, 14)/* DeviceEnqueue */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {20,IR(0, 0),IR(8067, 15)/* LiteralSampler */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {21,IR(0, 0),IR(8082, 14)/* AtomicStorage */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {22,IR(0, 0),IR(8096, 6)/* Int16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {23,IR(0, 0),IR(8102, 22)/* TessellationPointSize */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {24,IR(0, 0),IR(8124, 18)/* GeometryPointSize */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {25,IR(0, 0),IR(8142, 20)/* ImageGatherExtended */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {27,IR(0, 0),IR(8162, 24)/* StorageImageMultisample */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {28,IR(0, 0),IR(8186, 34)/* UniformBufferArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {29,IR(0, 0),IR(8220, 33)/* SampledImageArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {30,IR(0, 0),IR(8253, 34)/* StorageBufferArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {31,IR(0, 0),IR(8287, 33)/* StorageImageArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {32,IR(0, 0),IR(4817, 13)/* ClipDistance */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {33,IR(0, 0),IR(4830, 13)/* CullDistance */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {34,IR(0, 0),IR(8320, 15)/* ImageCubeArray */,IR(0, 0),IR(70, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {35,IR(0, 0),IR(5156, 18)/* SampleRateShading */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {36,IR(0, 0),IR(8352, 10)/* ImageRect */,IR(0, 0),IR(71, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {37,IR(0, 0),IR(8362, 12)/* SampledRect */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {38,IR(0, 0),IR(8374, 15)/* GenericPointer */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {39,IR(0, 0),IR(8389, 5)/* Int8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {40,IR(0, 0),IR(8394, 16)/* InputAttachment */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {41,IR(0, 0),IR(8410, 16)/* SparseResidency */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {42,IR(0, 0),IR(8426, 7)/* MinLod */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {43,IR(0, 0),IR(8433, 10)/* Sampled1D */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {44,IR(0, 0),IR(8443, 8)/* Image1D */,IR(0, 0),IR(72, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {45,IR(0, 0),IR(8335, 17)/* SampledCubeArray */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {46,IR(0, 0),IR(8451, 14)/* SampledBuffer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {47,IR(0, 0),IR(8465, 12)/* ImageBuffer */,IR(0, 0),IR(73, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {48,IR(0, 0),IR(8477, 13)/* ImageMSArray */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {49,IR(0, 0),IR(8490, 28)/* StorageImageExtendedFormats */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {50,IR(0, 0),IR(8518, 11)/* ImageQuery */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {51,IR(0, 0),IR(8529, 18)/* DerivativeControl */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {52,IR(0, 0),IR(8547, 22)/* InterpolationFunction */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {53,IR(0, 0),IR(8569, 18)/* TransformFeedback */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {54,IR(0, 0),IR(8587, 16)/* GeometryStreams */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {55,IR(0, 0),IR(8603, 30)/* StorageImageReadWithoutFormat */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {56,IR(0, 0),IR(8633, 31)/* StorageImageWriteWithoutFormat */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {57,IR(0, 0),IR(5026, 14)/* MultiViewport */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {58,IR(0, 0),IR(8664, 17)/* SubgroupDispatch */,IR(0, 0),IR(74, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {59,IR(0, 0),IR(8681, 13)/* NamedBarrier */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {60,IR(0, 0),IR(8694, 12)/* PipeStorage */,IR(0, 0),IR(75, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {61,IR(0, 0),IR(5407, 16)/* GroupNonUniform */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {62,IR(0, 0),IR(8706, 20)/* GroupNonUniformVote */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {63,IR(0, 0),IR(8726, 26)/* GroupNonUniformArithmetic */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {64,IR(0, 0),IR(5662, 22)/* GroupNonUniformBallot */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {65,IR(0, 0),IR(8752, 23)/* GroupNonUniformShuffle */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {66,IR(0, 0),IR(8775, 31)/* GroupNonUniformShuffleRelative */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {67,IR(0, 0),IR(8806, 25)/* GroupNonUniformClustered */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {68,IR(0, 0),IR(8831, 20)/* GroupNonUniformQuad */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {69,IR(0, 0),IR(4972, 12)/* ShaderLayer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {70,IR(0, 0),IR(5040, 20)/* ShaderViewportIndex */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {71,IR(0, 0),IR(8851, 18)/* UniformDecoration */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4165,IR(0, 0),IR(5564, 16)/* CoreBuiltinsARM */,IR(0, 0),IR(1, 0),IR(34, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4166,IR(0, 0),IR(8869, 28)/* TileImageColorReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4167,IR(0, 0),IR(8897, 28)/* TileImageDepthReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4168,IR(0, 0),IR(8925, 30)/* TileImageStencilReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4174,IR(0, 0),IR(8955, 11)/* TensorsARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4175,IR(0, 0),IR(8966, 37)/* StorageTensorArrayDynamicIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4176,IR(0, 0),IR(9003, 40)/* StorageTensorArrayNonUniformIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4191,IR(0, 0),IR(9043, 9)/* GraphARM */,IR(0, 0),IR(1, 0),IR(37, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4201,IR(0, 0),IR(9052, 28)/* CooperativeMatrixLayoutsARM */,IR(0, 0),IR(1, 0),IR(38, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4212,IR(0, 0),IR(9080, 10)/* Float8EXT */,IR(0, 0),IR(1, 0),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4213,IR(0, 0),IR(9090, 27)/* Float8CooperativeMatrixEXT */,IR(0, 0),IR(77, 2),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4422,IR(0, 0),IR(5889, 23)/* FragmentShadingRateKHR */,IR(0, 0),IR(3, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4423,IR(0, 0),IR(5423, 18)/* SubgroupBallotKHR */,IR(0, 0),IR(1, 0),IR(2, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4427,IR(0, 0),IR(5827, 15)/* DrawParameters */,IR(0, 0),IR(3, 1),IR(3, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4428,IR(0, 0),IR(9138, 33)/* WorkgroupMemoryExplicitLayoutKHR */,IR(0, 0),IR(3, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4429,IR(0, 0),IR(9171, 43)/* WorkgroupMemoryExplicitLayout8BitAccessKHR */,IR(0, 0),IR(79, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4430,IR(0, 0),IR(9214, 44)/* WorkgroupMemoryExplicitLayout16BitAccessKHR */,IR(0, 0),IR(79, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4431,IR(0, 0),IR(9258, 16)/* SubgroupVoteKHR */,IR(0, 0),IR(1, 0),IR(41, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4433,IR(0, 0),IR(9274, 25)/* StorageBuffer16BitAccess */,IR(23, 1),IR(1, 0),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4434,IR(0, 0),IR(9327, 35)/* UniformAndStorageBuffer16BitAccess */,IR(24, 1),IR(80, 1),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4435,IR(0, 0),IR(9379, 22)/* StoragePushConstant16 */,IR(0, 0),IR(1, 0),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4436,IR(0, 0),IR(9401, 21)/* StorageInputOutput16 */,IR(0, 0),IR(1, 0),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4437,IR(0, 0),IR(5924, 12)/* DeviceGroup */,IR(0, 0),IR(1, 0),IR(8, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4439,IR(0, 0),IR(5946, 10)/* MultiView */,IR(0, 0),IR(3, 1),IR(9, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4441,IR(0, 0),IR(9422, 30)/* VariablePointersStorageBuffer */,IR(0, 0),IR(3, 1),IR(43, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4442,IR(0, 0),IR(9452, 17)/* VariablePointers */,IR(0, 0),IR(81, 1),IR(43, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4445,IR(0, 0),IR(9469, 17)/* AtomicStorageOps */,IR(0, 0),IR(82, 1),IR(44, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4447,IR(0, 0),IR(9486, 28)/* SampleMaskPostDepthCoverage */,IR(0, 0),IR(1, 0),IR(45, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4448,IR(0, 0),IR(9514, 24)/* StorageBuffer8BitAccess */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4449,IR(0, 0),IR(9538, 34)/* UniformAndStorageBuffer8BitAccess */,IR(0, 0),IR(83, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4450,IR(0, 0),IR(9572, 21)/* StoragePushConstant8 */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4464,IR(0, 0),IR(9593, 15)/* DenormPreserve */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4465,IR(0, 0),IR(9608, 18)/* DenormFlushToZero */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4466,IR(0, 0),IR(9626, 25)/* SignedZeroInfNanPreserve */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4467,IR(0, 0),IR(9651, 16)/* RoundingModeRTE */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4468,IR(0, 0),IR(9667, 16)/* RoundingModeRTZ */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4471,IR(0, 0),IR(9683, 23)/* RayQueryProvisionalKHR */,IR(0, 0),IR(3, 1),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4472,IR(0, 0),IR(9706, 12)/* RayQueryKHR */,IR(0, 0),IR(3, 1),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4473,IR(0, 0),IR(9718, 19)/* UntypedPointersKHR */,IR(0, 0),IR(1, 0),IR(49, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4478,IR(0, 0),IR(9737, 32)/* RayTraversalPrimitiveCullingKHR */,IR(0, 0),IR(84, 2),IR(50, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4479,IR(0, 0),IR(4910, 14)/* RayTracingKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4484,IR(0, 0),IR(9769, 26)/* TextureSampleWeightedQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4485,IR(0, 0),IR(9795, 21)/* TextureBoxFilterQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4486,IR(0, 0),IR(9816, 22)/* TextureBlockMatchQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4495,IR(0, 0),IR(5986, 16)/* TileShadingQCOM */,IR(0, 0),IR(3, 1),IR(53, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4496,IR(0, 0),IR(9838, 32)/* CooperativeMatrixConversionQCOM */,IR(0, 0),IR(86, 1),IR(54, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4498,IR(0, 0),IR(9870, 23)/* TextureBlockMatch2QCOM */,IR(0, 0),IR(1, 0),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5008,IR(0, 0),IR(9893, 16)/* Float16ImageAMD */,IR(0, 0),IR(3, 1),IR(56, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5009,IR(0, 0),IR(9909, 22)/* ImageGatherBiasLodAMD */,IR(0, 0),IR(3, 1),IR(57, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5010,IR(0, 0),IR(9931, 16)/* FragmentMaskAMD */,IR(0, 0),IR(3, 1),IR(58, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5013,IR(0, 0),IR(6223, 17)/* StencilExportEXT */,IR(0, 0),IR(3, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5015,IR(0, 0),IR(9947, 21)/* ImageReadWriteLodAMD */,IR(0, 0),IR(3, 1),IR(59, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5016,IR(0, 0),IR(9968, 14)/* Int64ImageEXT */,IR(0, 0),IR(3, 1),IR(60, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5055,IR(0, 0),IR(9982, 15)/* ShaderClockKHR */,IR(0, 0),IR(1, 0),IR(61, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5067,IR(0, 0),IR(6269, 18)/* ShaderEnqueueAMDX */,IR(0, 0),IR(3, 1),IR(62, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5087,IR(0, 0),IR(9997, 15)/* QuadControlKHR */,IR(0, 0),IR(1, 0),IR(63, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5112,IR(0, 0),IR(10012, 14)/* Int4TypeINTEL */,IR(0, 0),IR(1, 0),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5114,IR(0, 0),IR(10026, 27)/* Int4CooperativeMatrixINTEL */,IR(0, 0),IR(87, 2),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5116,IR(0, 0),IR(10053, 16)/* BFloat16TypeKHR */,IR(0, 0),IR(1, 0),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5117,IR(0, 0),IR(10069, 22)/* BFloat16DotProductKHR */,IR(0, 0),IR(89, 1),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5118,IR(0, 0),IR(10091, 29)/* BFloat16CooperativeMatrixKHR */,IR(0, 0),IR(90, 2),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5249,IR(0, 0),IR(10120, 29)/* SampleMaskOverrideCoverageNV */,IR(0, 0),IR(25, 1),IR(66, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5251,IR(0, 0),IR(10149, 28)/* GeometryShaderPassthroughNV */,IR(0, 0),IR(69, 1),IR(67, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5254,IR(0, 0),IR(4984, 28)/* ShaderViewportIndexLayerEXT */,IR(25, 1),IR(92, 1),IR(68, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5255,IR(0, 0),IR(6318, 21)/* ShaderViewportMaskNV */,IR(0, 0),IR(93, 1),IR(70, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5259,IR(0, 0),IR(6359, 19)/* ShaderStereoViewNV */,IR(0, 0),IR(94, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5260,IR(0, 0),IR(6420, 20)/* PerViewAttributesNV */,IR(0, 0),IR(40, 1),IR(71, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5265,IR(0, 0),IR(6478, 24)/* FragmentFullyCoveredEXT */,IR(0, 0),IR(3, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5266,IR(0, 0),IR(4924, 14)/* MeshShadingNV */,IR(0, 0),IR(3, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5282,IR(0, 0),IR(10204, 17)/* ImageFootprintNV */,IR(0, 0),IR(1, 0),IR(72, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5283,IR(0, 0),IR(4938, 15)/* MeshShadingEXT */,IR(0, 0),IR(3, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5284,IR(0, 0),IR(6668, 23)/* FragmentBarycentricKHR */,IR(26, 1),IR(1, 0),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5288,IR(0, 0),IR(10243, 31)/* ComputeDerivativeGroupQuadsKHR */,IR(27, 1),IR(3, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5291,IR(0, 0),IR(6757, 19)/* FragmentDensityEXT */,IR(28, 1),IR(3, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5297,IR(0, 0),IR(10318, 29)/* GroupNonUniformPartitionedNV */,IR(0, 0),IR(1, 0),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5301,IR(0, 0),IR(10347, 17)/* ShaderNonUniform */,IR(29, 1),IR(3, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5302,IR(0, 0),IR(10384, 23)/* RuntimeDescriptorArray */,IR(30, 1),IR(3, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5303,IR(0, 0),IR(10433, 36)/* InputAttachmentArrayDynamicIndexing */,IR(31, 1),IR(95, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5304,IR(0, 0),IR(10508, 39)/* UniformTexelBufferArrayDynamicIndexing */,IR(32, 1),IR(73, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5305,IR(0, 0),IR(10589, 39)/* StorageTexelBufferArrayDynamicIndexing */,IR(33, 1),IR(96, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5306,IR(0, 0),IR(10670, 37)/* UniformBufferArrayNonUniformIndexing */,IR(34, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5307,IR(0, 0),IR(10747, 36)/* SampledImageArrayNonUniformIndexing */,IR(35, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5308,IR(0, 0),IR(10822, 37)/* StorageBufferArrayNonUniformIndexing */,IR(36, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5309,IR(0, 0),IR(10899, 36)/* StorageImageArrayNonUniformIndexing */,IR(37, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5310,IR(0, 0),IR(10974, 39)/* InputAttachmentArrayNonUniformIndexing */,IR(38, 1),IR(98, 2),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5311,IR(0, 0),IR(11055, 42)/* UniformTexelBufferArrayNonUniformIndexing */,IR(39, 1),IR(100, 2),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5312,IR(0, 0),IR(11142, 42)/* StorageTexelBufferArrayNonUniformIndexing */,IR(40, 1),IR(102, 2),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5336,IR(0, 0),IR(7372, 27)/* RayTracingPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5340,IR(0, 0),IR(4897, 13)/* RayTracingNV */,IR(0, 0),IR(3, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5341,IR(0, 0),IR(7319, 23)/* RayTracingMotionBlurNV */,IR(0, 0),IR(3, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5345,IR(0, 0),IR(11229, 18)/* VulkanMemoryModel */,IR(41, 1),IR(1, 0),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5346,IR(0, 0),IR(11268, 29)/* VulkanMemoryModelDeviceScope */,IR(42, 1),IR(1, 0),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5347,IR(0, 0),IR(4760, 31)/* PhysicalStorageBufferAddresses */,IR(43, 1),IR(3, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5350,IR(0, 0),IR(11363, 32)/* ComputeDerivativeGroupLinearKHR */,IR(44, 1),IR(3, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5353,IR(0, 0),IR(11426, 25)/* RayTracingProvisionalKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5357,IR(0, 0),IR(11451, 20)/* CooperativeMatrixNV */,IR(0, 0),IR(3, 1),IR(79, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5363,IR(0, 0),IR(11471, 33)/* FragmentShaderSampleInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5372,IR(0, 0),IR(11504, 38)/* FragmentShaderShadingRateInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5373,IR(0, 0),IR(7687, 19)/* ShaderSMBuiltinsNV */,IR(0, 0),IR(3, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5378,IR(0, 0),IR(11542, 32)/* FragmentShaderPixelInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5379,IR(0, 0),IR(11574, 25)/* DemoteToHelperInvocation */,IR(45, 1),IR(3, 1),IR(81, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5380,IR(0, 0),IR(11627, 23)/* DisplacementMicromapNV */,IR(0, 0),IR(3, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5381,IR(0, 0),IR(11650, 29)/* RayTracingOpacityMicromapEXT */,IR(0, 0),IR(3, 1),IR(83, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5383,IR(0, 0),IR(11679, 26)/* ShaderInvocationReorderNV */,IR(0, 0),IR(60, 1),IR(84, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5390,IR(0, 0),IR(11705, 18)/* BindlessTextureNV */,IR(0, 0),IR(1, 0),IR(85, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5391,IR(0, 0),IR(11723, 25)/* RayQueryPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5394,IR(0, 0),IR(11748, 20)/* CooperativeVectorNV */,IR(0, 0),IR(1, 0),IR(86, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5404,IR(0, 0),IR(11768, 22)/* AtomicFloat16VectorNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5409,IR(0, 0),IR(7433, 33)/* RayTracingDisplacementMicromapNV */,IR(0, 0),IR(60, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5414,IR(0, 0),IR(11790, 18)/* RawAccessChainsNV */,IR(0, 0),IR(1, 0),IR(88, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5418,IR(0, 0),IR(7576, 28)/* RayTracingSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5419,IR(0, 0),IR(7615, 39)/* RayTracingLinearSweptSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5430,IR(0, 0),IR(11808, 30)/* CooperativeMatrixReductionsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5431,IR(0, 0),IR(11838, 31)/* CooperativeMatrixConversionsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5432,IR(0, 0),IR(11869, 40)/* CooperativeMatrixPerElementOperationsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5433,IR(0, 0),IR(11909, 36)/* CooperativeMatrixTensorAddressingNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5434,IR(0, 0),IR(11945, 30)/* CooperativeMatrixBlockLoadsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5435,IR(0, 0),IR(11975, 28)/* CooperativeVectorTrainingNV */,IR(0, 0),IR(1, 0),IR(86, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5437,IR(0, 0),IR(7861, 41)/* RayTracingClusterAccelerationStructureNV */,IR(0, 0),IR(60, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5439,IR(0, 0),IR(12003, 19)/* TensorAddressingNV */,IR(0, 0),IR(1, 0),IR(90, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5568,IR(0, 0),IR(12022, 21)/* SubgroupShuffleINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5569,IR(0, 0),IR(12043, 27)/* SubgroupBufferBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5570,IR(0, 0),IR(12070, 26)/* SubgroupImageBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5579,IR(0, 0),IR(12096, 31)/* SubgroupImageMediaBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(92, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5582,IR(0, 0),IR(12127, 21)/* RoundToInfinityINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5583,IR(0, 0),IR(12148, 23)/* FloatingPointModeINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5584,IR(0, 0),IR(12171, 23)/* IntegerFunctions2INTEL */,IR(0, 0),IR(1, 0),IR(94, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5603,IR(0, 0),IR(12194, 22)/* FunctionPointersINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5604,IR(0, 0),IR(12216, 24)/* IndirectReferencesINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5606,IR(0, 0),IR(12240, 9)/* AsmINTEL */,IR(0, 0),IR(1, 0),IR(96, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5612,IR(0, 0),IR(12249, 23)/* AtomicFloat32MinMaxEXT */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5613,IR(0, 0),IR(12272, 23)/* AtomicFloat64MinMaxEXT */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5616,IR(0, 0),IR(12295, 23)/* AtomicFloat16MinMaxEXT */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5617,IR(0, 0),IR(12318, 19)/* VectorComputeINTEL */,IR(0, 0),IR(104, 1),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5619,IR(0, 0),IR(12337, 15)/* VectorAnyINTEL */,IR(0, 0),IR(1, 0),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5629,IR(0, 0),IR(12352, 16)/* ExpectAssumeKHR */,IR(0, 0),IR(1, 0),IR(99, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5696,IR(0, 0),IR(12368, 33)/* SubgroupAvcMotionEstimationINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5697,IR(0, 0),IR(12401, 38)/* SubgroupAvcMotionEstimationIntraINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5698,IR(0, 0),IR(12439, 39)/* SubgroupAvcMotionEstimationChromaINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5817,IR(0, 0),IR(12478, 25)/* VariableLengthArrayINTEL */,IR(0, 0),IR(1, 0),IR(101, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5821,IR(0, 0),IR(12503, 26)/* FunctionFloatControlINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5824,IR(0, 0),IR(12529, 26)/* FPGAMemoryAttributesINTEL */,IR(0, 0),IR(1, 0),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5837,IR(0, 0),IR(12555, 20)/* FPFastMathModeINTEL */,IR(0, 0),IR(0, 1),IR(103, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5844,IR(0, 0),IR(12575, 32)/* ArbitraryPrecisionIntegersINTEL */,IR(0, 0),IR(1, 0),IR(104, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5845,IR(0, 0),IR(12607, 37)/* ArbitraryPrecisionFloatingPointINTEL */,IR(0, 0),IR(1, 0),IR(105, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5886,IR(0, 0),IR(12644, 30)/* UnstructuredLoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5888,IR(0, 0),IR(12674, 22)/* FPGALoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(107, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5892,IR(0, 0),IR(12696, 22)/* KernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5897,IR(0, 0),IR(12718, 26)/* FPGAKernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5898,IR(0, 0),IR(12744, 24)/* FPGAMemoryAccessesINTEL */,IR(0, 0),IR(1, 0),IR(109, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5904,IR(0, 0),IR(12768, 27)/* FPGAClusterAttributesINTEL */,IR(0, 0),IR(1, 0),IR(110, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5906,IR(0, 0),IR(12795, 14)/* LoopFuseINTEL */,IR(0, 0),IR(1, 0),IR(111, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5908,IR(0, 0),IR(12809, 20)/* FPGADSPControlINTEL */,IR(0, 0),IR(1, 0),IR(112, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5910,IR(0, 0),IR(12829, 26)/* MemoryAccessAliasingINTEL */,IR(0, 0),IR(1, 0),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5916,IR(0, 0),IR(12855, 40)/* FPGAInvocationPipeliningAttributesINTEL */,IR(0, 0),IR(1, 0),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5920,IR(0, 0),IR(12895, 24)/* FPGABufferLocationINTEL */,IR(0, 0),IR(1, 0),IR(115, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5922,IR(0, 0),IR(12919, 34)/* ArbitraryPrecisionFixedPointINTEL */,IR(0, 0),IR(1, 0),IR(116, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5935,IR(0, 0),IR(12953, 23)/* USMStorageClassesINTEL */,IR(0, 0),IR(1, 0),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5939,IR(0, 0),IR(12976, 29)/* RuntimeAlignedAttributeINTEL */,IR(0, 0),IR(1, 0),IR(118, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5943,IR(0, 0),IR(13005, 13)/* IOPipesINTEL */,IR(0, 0),IR(1, 0),IR(119, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5945,IR(0, 0),IR(13018, 19)/* BlockingPipesINTEL */,IR(0, 0),IR(1, 0),IR(120, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5948,IR(0, 0),IR(13037, 13)/* FPGARegINTEL */,IR(0, 0),IR(1, 0),IR(121, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6016,IR(0, 0),IR(13050, 19)/* DotProductInputAll */,IR(46, 1),IR(1, 0),IR(122, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6017,IR(0, 0),IR(13091, 22)/* DotProductInput4x8Bit */,IR(47, 1),IR(105, 1),IR(122, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6018,IR(0, 0),IR(13138, 28)/* DotProductInput4x8BitPacked */,IR(48, 1),IR(1, 0),IR(122, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6019,IR(0, 0),IR(13197, 11)/* DotProduct */,IR(49, 1),IR(1, 0),IR(122, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6020,IR(0, 0),IR(7914, 15)/* RayCullMaskKHR */,IR(0, 0),IR(1, 0),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6022,IR(0, 0),IR(9117, 21)/* CooperativeMatrixKHR */,IR(0, 0),IR(1, 0),IR(123, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6024,IR(0, 0),IR(13222, 24)/* ReplicatedCompositesEXT */,IR(0, 0),IR(1, 0),IR(124, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6025,IR(0, 0),IR(13246, 16)/* BitInstructions */,IR(0, 0),IR(1, 0),IR(125, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6026,IR(0, 0),IR(13262, 25)/* GroupNonUniformRotateKHR */,IR(0, 0),IR(76, 1),IR(126, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6029,IR(0, 0),IR(13287, 15)/* FloatControls2 */,IR(0, 0),IR(1, 0),IR(127, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6030,IR(0, 0),IR(13302, 7)/* FMAKHR */,IR(0, 0),IR(1, 0),IR(128, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6033,IR(0, 0),IR(13309, 20)/* AtomicFloat32AddEXT */,IR(0, 0),IR(1, 0),IR(129, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6034,IR(0, 0),IR(13329, 20)/* AtomicFloat64AddEXT */,IR(0, 0),IR(1, 0),IR(129, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6089,IR(0, 0),IR(13349, 20)/* LongCompositesINTEL */,IR(0, 0),IR(1, 0),IR(130, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6094,IR(0, 0),IR(13369, 11)/* OptNoneEXT */,IR(50, 1),IR(1, 0),IR(131, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6095,IR(0, 0),IR(13393, 20)/* AtomicFloat16AddEXT */,IR(0, 0),IR(1, 0),IR(133, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6114,IR(0, 0),IR(13413, 21)/* DebugInfoModuleINTEL */,IR(0, 0),IR(1, 0),IR(134, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6115,IR(0, 0),IR(13434, 24)/* BFloat16ConversionINTEL */,IR(0, 0),IR(1, 0),IR(135, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6141,IR(0, 0),IR(13458, 18)/* SplitBarrierINTEL */,IR(0, 0),IR(1, 0),IR(136, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6144,IR(0, 0),IR(13476, 19)/* ArithmeticFenceEXT */,IR(0, 0),IR(1, 0),IR(137, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6150,IR(0, 0),IR(13495, 29)/* FPGAClusterAttributesV2INTEL */,IR(0, 0),IR(106, 1),IR(110, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6161,IR(0, 0),IR(13524, 28)/* FPGAKernelAttributesv2INTEL */,IR(0, 0),IR(107, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6162,IR(0, 0),IR(13552, 18)/* TaskSequenceINTEL */,IR(0, 0),IR(1, 0),IR(138, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6169,IR(0, 0),IR(13570, 16)/* FPMaxErrorINTEL */,IR(0, 0),IR(1, 0),IR(139, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6171,IR(0, 0),IR(13586, 24)/* FPGALatencyControlINTEL */,IR(0, 0),IR(1, 0),IR(140, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6174,IR(0, 0),IR(13610, 28)/* FPGAArgumentInterfacesINTEL */,IR(0, 0),IR(1, 0),IR(141, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6187,IR(0, 0),IR(13638, 30)/* GlobalVariableHostAccessINTEL */,IR(0, 0),IR(1, 0),IR(142, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6189,IR(0, 0),IR(13668, 35)/* GlobalVariableFPGADecorationsINTEL */,IR(0, 0),IR(1, 0),IR(143, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6220,IR(0, 0),IR(13703, 28)/* SubgroupBufferPrefetchINTEL */,IR(0, 0),IR(1, 0),IR(144, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6228,IR(0, 0),IR(13731, 23)/* Subgroup2DBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(145, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6229,IR(0, 0),IR(13754, 30)/* Subgroup2DBlockTransformINTEL */,IR(0, 0),IR(108, 1),IR(145, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6230,IR(0, 0),IR(13784, 30)/* Subgroup2DBlockTransposeINTEL */,IR(0, 0),IR(108, 1),IR(145, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6236,IR(0, 0),IR(13814, 38)/* SubgroupMatrixMultiplyAccumulateINTEL */,IR(0, 0),IR(1, 0),IR(146, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6241,IR(0, 0),IR(13852, 28)/* TernaryBitwiseFunctionINTEL */,IR(0, 0),IR(1, 0),IR(147, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6243,IR(0, 0),IR(13880, 32)/* UntypedVariableLengthArrayINTEL */,IR(0, 0),IR(109, 2),IR(101, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6245,IR(0, 0),IR(13912, 21)/* SpecConditionalINTEL */,IR(0, 0),IR(1, 0),IR(148, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6246,IR(0, 0),IR(13933, 22)/* FunctionVariantsINTEL */,IR(0, 0),IR(111, 1),IR(148, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6400,IR(0, 0),IR(13955, 26)/* GroupUniformArithmeticKHR */,IR(0, 0),IR(1, 0),IR(149, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6425,IR(0, 0),IR(13981, 27)/* TensorFloat32RoundingINTEL */,IR(0, 0),IR(1, 0),IR(150, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6427,IR(0, 0),IR(14008, 25)/* MaskedGatherScatterINTEL */,IR(0, 0),IR(1, 0),IR(151, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6441,IR(0, 0),IR(14033, 19)/* CacheControlsINTEL */,IR(0, 0),IR(1, 0),IR(152, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6460,IR(0, 0),IR(14052, 20)/* RegisterLimitsINTEL */,IR(0, 0),IR(1, 0),IR(153, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6528,IR(0, 0),IR(14072, 20)/* BindlessImagesINTEL */,IR(0, 0),IR(1, 0),IR(154, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {0,IR(0, 0),IR(14092, 12)/* Unspecified */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {1,IR(0, 0),IR(14104, 8)/* Address */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {2,IR(0, 0),IR(14112, 8)/* Boolean */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {3,IR(0, 0),IR(14120, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {4,IR(0, 0),IR(14126, 7)/* Signed */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {5,IR(0, 0),IR(14133, 11)/* SignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {6,IR(0, 0),IR(14144, 9)/* Unsigned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {7,IR(0, 0),IR(14153, 13)/* UnsignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {0,IR(0, 0),IR(14166, 6)/* Class */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {1,IR(0, 0),IR(14172, 10)/* Structure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {2,IR(0, 0),IR(14182, 6)/* Union */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {0,IR(0, 0),IR(14188, 15)/* ImportedModule */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY - {1,IR(0, 0),IR(14203, 20)/* ImportedDeclaration */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {1,IR(0, 0),IR(14228, 16)/* FlagIsProtected */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {2,IR(0, 0),IR(14244, 14)/* FlagIsPrivate */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {3,IR(0, 0),IR(14258, 13)/* FlagIsPublic */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {4,IR(0, 0),IR(14271, 12)/* FlagIsLocal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {8,IR(0, 0),IR(14283, 17)/* FlagIsDefinition */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {16,IR(0, 0),IR(14300, 12)/* FlagFwdDecl */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {32,IR(0, 0),IR(14312, 15)/* FlagArtificial */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {64,IR(0, 0),IR(14327, 13)/* FlagExplicit */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {128,IR(0, 0),IR(14340, 15)/* FlagPrototyped */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {256,IR(0, 0),IR(14355, 18)/* FlagObjectPointer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {512,IR(0, 0),IR(14373, 17)/* FlagStaticMember */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {1024,IR(0, 0),IR(14390, 21)/* FlagIndirectVariable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {2048,IR(0, 0),IR(14411, 20)/* FlagLValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {4096,IR(0, 0),IR(14431, 20)/* FlagRValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {8192,IR(0, 0),IR(14451, 16)/* FlagIsOptimized */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {16384,IR(0, 0),IR(14467, 16)/* FlagIsEnumClass */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {32768,IR(0, 0),IR(14483, 20)/* FlagTypePassByValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {65536,IR(0, 0),IR(14503, 24)/* FlagTypePassByReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {0,IR(0, 0),IR(14527, 6)/* Deref */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {1,IR(0, 0),IR(14533, 5)/* Plus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {2,IR(0, 0),IR(14538, 6)/* Minus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {3,IR(0, 1),IR(14577, 11)/* PlusUconst */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {4,IR(1, 2),IR(14588, 9)/* BitPiece */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {5,IR(0, 0),IR(14597, 5)/* Swap */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {6,IR(0, 0),IR(14602, 7)/* Xderef */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {7,IR(0, 0),IR(14609, 11)/* StackValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {8,IR(0, 1),IR(14620, 7)/* Constu */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {9,IR(1, 2),IR(14627, 9)/* Fragment */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {0,IR(0, 0),IR(14636, 10)/* ConstType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {1,IR(0, 0),IR(14646, 13)/* VolatileType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {2,IR(0, 0),IR(14659, 13)/* RestrictType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {3,IR(0, 0),IR(14672, 11)/* AtomicType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {0,IR(0, 0),IR(14683, 10)/* Float16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1,IR(0, 0),IR(14693, 10)/* Float32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {2,IR(0, 0),IR(14703, 10)/* Float64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {3,IR(0, 0),IR(14713, 13)/* SignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {4,IR(0, 0),IR(14726, 14)/* SignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {5,IR(0, 0),IR(14740, 14)/* SignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {6,IR(0, 0),IR(14754, 14)/* SignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {7,IR(0, 0),IR(14768, 15)/* UnsignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {8,IR(0, 0),IR(14783, 16)/* UnsignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {9,IR(0, 0),IR(14799, 16)/* UnsignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {10,IR(0, 0),IR(14815, 16)/* UnsignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491000,IR(0, 0),IR(14831, 19)/* SignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491001,IR(0, 0),IR(14850, 21)/* UnsignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491002,IR(0, 0),IR(14871, 12)/* FloatE4M3NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491003,IR(0, 0),IR(14883, 12)/* FloatE5M2NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {0,IR(0, 0),IR(14895, 12)/* RowMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {1,IR(0, 0),IR(14907, 15)/* ColumnMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {4202,IR(0, 0),IR(14922, 25)/* RowBlockedInterleavedARM */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {4203,IR(0, 0),IR(14947, 28)/* ColumnBlockedInterleavedARM */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {0,IR(0, 0),IR(14975, 8)/* NoneKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {1,IR(0, 0),IR(14983, 27)/* MatrixASignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {2,IR(0, 0),IR(15010, 27)/* MatrixBSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {4,IR(0, 0),IR(15037, 27)/* MatrixCSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {8,IR(0, 0),IR(15064, 32)/* MatrixResultSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {16,IR(0, 0),IR(15096, 26)/* SaturatingAccumulationKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {1,IR(0, 0),IR(15122, 4)/* Row */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {2,IR(0, 0),IR(15126, 7)/* Column */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {4,IR(0, 0),IR(15133, 4)/* 2x2 */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {0,IR(0, 0),IR(15137, 11)/* MatrixAKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {1,IR(0, 0),IR(15148, 11)/* MatrixBKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {2,IR(0, 0),IR(15159, 21)/* MatrixAccumulatorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {0,IR(0, 0),IR(15180, 11)/* RowMajorNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {1,IR(0, 0),IR(15191, 14)/* ColumnMajorNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {2,IR(0, 0),IR(15205, 21)/* InferencingOptimalNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {3,IR(0, 0),IR(15226, 18)/* TrainingOptimalNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {0,IR(0, 0),IR(14092, 12)/* Unspecified */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {1,IR(0, 0),IR(14104, 8)/* Address */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {2,IR(0, 0),IR(14112, 8)/* Boolean */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {4,IR(0, 0),IR(14120, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {5,IR(0, 0),IR(14126, 7)/* Signed */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {6,IR(0, 0),IR(14133, 11)/* SignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {7,IR(0, 0),IR(14144, 9)/* Unsigned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {8,IR(0, 0),IR(14153, 13)/* UnsignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {0,IR(0, 0),IR(14166, 6)/* Class */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {1,IR(0, 0),IR(14172, 10)/* Structure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {2,IR(0, 0),IR(14182, 6)/* Union */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {1,IR(0, 0),IR(14228, 16)/* FlagIsProtected */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {2,IR(0, 0),IR(14244, 14)/* FlagIsPrivate */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {3,IR(0, 0),IR(14258, 13)/* FlagIsPublic */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {4,IR(0, 0),IR(14271, 12)/* FlagIsLocal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {8,IR(0, 0),IR(14283, 17)/* FlagIsDefinition */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {16,IR(0, 0),IR(14300, 12)/* FlagFwdDecl */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {32,IR(0, 0),IR(14312, 15)/* FlagArtificial */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {64,IR(0, 0),IR(14327, 13)/* FlagExplicit */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {128,IR(0, 0),IR(14340, 15)/* FlagPrototyped */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {256,IR(0, 0),IR(14355, 18)/* FlagObjectPointer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {512,IR(0, 0),IR(14373, 17)/* FlagStaticMember */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {1024,IR(0, 0),IR(14390, 21)/* FlagIndirectVariable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {2048,IR(0, 0),IR(14411, 20)/* FlagLValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {4096,IR(0, 0),IR(14431, 20)/* FlagRValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {8192,IR(0, 0),IR(14451, 16)/* FlagIsOptimized */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {0,IR(0, 0),IR(14527, 6)/* Deref */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {1,IR(0, 0),IR(14533, 5)/* Plus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {2,IR(0, 0),IR(14538, 6)/* Minus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {3,IR(0, 1),IR(14577, 11)/* PlusUconst */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {4,IR(1, 2),IR(14588, 9)/* BitPiece */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {5,IR(0, 0),IR(14597, 5)/* Swap */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {6,IR(0, 0),IR(14602, 7)/* Xderef */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {7,IR(0, 0),IR(14609, 11)/* StackValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {8,IR(0, 1),IR(14620, 7)/* Constu */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION - {0,IR(0, 0),IR(14636, 10)/* ConstType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {1,IR(0, 0),IR(14646, 13)/* VolatileType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {2,IR(0, 0),IR(14659, 13)/* RestrictType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {0,IR(0, 0),IR(15244, 17)/* RelaxedPrecision */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {1,IR(0, 1),IR(15261, 7)/* SpecId */,IR(0, 0),IR(112, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {2,IR(0, 0),IR(15268, 6)/* Block */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {3,IR(0, 0),IR(15274, 12)/* BufferBlock */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),SPV_SPIRV_VERSION_WORD(1,3)}, // SPV_OPERAND_TYPE_DECORATION - {4,IR(0, 0),IR(15286, 9)/* RowMajor */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5,IR(0, 0),IR(15295, 9)/* ColMajor */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6,IR(0, 1),IR(15304, 12)/* ArrayStride */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {7,IR(0, 1),IR(15316, 13)/* MatrixStride */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {8,IR(0, 0),IR(15329, 11)/* GLSLShared */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {9,IR(0, 0),IR(15340, 11)/* GLSLPacked */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {10,IR(0, 0),IR(15351, 8)/* CPacked */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {11,IR(3, 1),IR(15385, 8)/* BuiltIn */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {13,IR(0, 0),IR(15393, 14)/* NoPerspective */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {14,IR(0, 0),IR(15407, 5)/* Flat */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {15,IR(0, 0),IR(15412, 6)/* Patch */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {16,IR(0, 0),IR(15418, 9)/* Centroid */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {17,IR(0, 0),IR(15427, 7)/* Sample */,IR(0, 0),IR(25, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {18,IR(0, 0),IR(15434, 10)/* Invariant */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {19,IR(0, 0),IR(15444, 9)/* Restrict */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {20,IR(0, 0),IR(15453, 8)/* Aliased */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {21,IR(0, 0),IR(15461, 9)/* Volatile */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {22,IR(0, 0),IR(15470, 9)/* Constant */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {23,IR(0, 0),IR(15479, 9)/* Coherent */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {24,IR(0, 0),IR(15488, 12)/* NonWritable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {25,IR(0, 0),IR(15500, 12)/* NonReadable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {26,IR(0, 0),IR(15512, 8)/* Uniform */,IR(0, 0),IR(114, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {27,IR(4, 1),IR(15546, 10)/* UniformId */,IR(0, 0),IR(114, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {28,IR(0, 0),IR(15556, 20)/* SaturatedConversion */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {29,IR(0, 1),IR(15576, 7)/* Stream */,IR(0, 0),IR(116, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {30,IR(0, 1),IR(15583, 9)/* Location */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {31,IR(0, 1),IR(15592, 10)/* Component */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {32,IR(0, 1),IR(15602, 6)/* Index */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {33,IR(0, 1),IR(15608, 8)/* Binding */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {34,IR(0, 1),IR(15616, 14)/* DescriptorSet */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {35,IR(0, 1),IR(15630, 7)/* Offset */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {36,IR(0, 1),IR(15637, 10)/* XfbBuffer */,IR(0, 0),IR(117, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {37,IR(0, 1),IR(15647, 10)/* XfbStride */,IR(0, 0),IR(117, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {38,IR(5, 1),IR(15703, 14)/* FuncParamAttr */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {39,IR(6, 1),IR(15751, 15)/* FPRoundingMode */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {40,IR(7, 1),IR(15801, 15)/* FPFastMathMode */,IR(0, 0),IR(118, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {41,IR(8, 2),IR(15878, 18)/* LinkageAttributes */,IR(0, 0),IR(120, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {42,IR(0, 0),IR(15896, 14)/* NoContraction */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {43,IR(0, 1),IR(15910, 21)/* InputAttachmentIndex */,IR(0, 0),IR(95, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {44,IR(0, 1),IR(15931, 10)/* Alignment */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {45,IR(0, 1),IR(15941, 14)/* MaxByteOffset */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {46,IR(10, 1),IR(15975, 12)/* AlignmentId */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {47,IR(10, 1),IR(15987, 16)/* MaxByteOffsetId */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4216,IR(0, 0),IR(16003, 44)/* SaturatedToLargestFloat8NormalConversionEXT */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4469,IR(0, 0),IR(16047, 13)/* NoSignedWrap */,IR(0, 0),IR(1, 0),IR(155, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4470,IR(0, 0),IR(16060, 15)/* NoUnsignedWrap */,IR(0, 0),IR(1, 0),IR(155, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4487,IR(0, 0),IR(16075, 18)/* WeightTextureQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4488,IR(0, 0),IR(16093, 22)/* BlockMatchTextureQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4499,IR(0, 0),IR(16115, 22)/* BlockMatchSamplerQCOM */,IR(0, 0),IR(1, 0),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4999,IR(0, 0),IR(16137, 18)/* ExplicitInterpAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5019,IR(10, 1),IR(16155, 32)/* NodeSharesPayloadLimitsWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5020,IR(10, 1),IR(16187, 20)/* NodeMaxPayloadsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5078,IR(0, 0),IR(16207, 23)/* TrackFinishWritingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5091,IR(10, 1),IR(16230, 20)/* PayloadNodeNameAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5098,IR(10, 1),IR(16250, 25)/* PayloadNodeBaseIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5099,IR(0, 0),IR(16275, 27)/* PayloadNodeSparseArrayAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5100,IR(10, 1),IR(16302, 25)/* PayloadNodeArraySizeAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5105,IR(0, 0),IR(16327, 28)/* PayloadDispatchIndirectAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5248,IR(0, 0),IR(16355, 19)/* OverrideCoverageNV */,IR(0, 0),IR(122, 1),IR(66, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5250,IR(0, 0),IR(16374, 14)/* PassthroughNV */,IR(0, 0),IR(123, 1),IR(67, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5252,IR(0, 0),IR(16388, 19)/* ViewportRelativeNV */,IR(0, 0),IR(94, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5256,IR(0, 1),IR(16407, 28)/* SecondaryViewportRelativeNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5271,IR(0, 0),IR(16435, 16)/* PerPrimitiveEXT */,IR(51, 1),IR(124, 2),IR(156, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5272,IR(0, 0),IR(16466, 10)/* PerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5273,IR(0, 0),IR(16476, 10)/* PerTaskNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5285,IR(0, 0),IR(16486, 13)/* PerVertexKHR */,IR(52, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5300,IR(0, 0),IR(16511, 11)/* NonUniform */,IR(53, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5355,IR(0, 0),IR(16536, 16)/* RestrictPointer */,IR(54, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5356,IR(0, 0),IR(16571, 15)/* AliasedPointer */,IR(55, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5386,IR(0, 0),IR(16604, 30)/* HitObjectShaderRecordBufferNV */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5398,IR(0, 0),IR(16634, 18)/* BindlessSamplerNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5399,IR(0, 0),IR(16652, 16)/* BindlessImageNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5400,IR(0, 0),IR(16668, 15)/* BoundSamplerNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5401,IR(0, 0),IR(16683, 13)/* BoundImageNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5599,IR(0, 1),IR(16696, 14)/* SIMTCallINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5602,IR(0, 0),IR(16710, 26)/* ReferencedIndirectlyINTEL */,IR(0, 0),IR(129, 1),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5607,IR(11, 1),IR(16736, 13)/* ClobberINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5608,IR(0, 0),IR(16749, 17)/* SideEffectsINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5624,IR(0, 0),IR(16766, 27)/* VectorComputeVariableINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5625,IR(0, 1),IR(16793, 21)/* FuncParamIOKindINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5626,IR(0, 0),IR(16814, 27)/* VectorComputeFunctionINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5627,IR(0, 0),IR(16841, 15)/* StackCallINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5628,IR(0, 1),IR(16856, 26)/* GlobalVariableOffsetINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5634,IR(10, 1),IR(16882, 14)/* CounterBuffer */,IR(56, 1),IR(1, 0),IR(158, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5635,IR(11, 1),IR(16920, 13)/* UserSemantic */,IR(57, 1),IR(1, 0),IR(158, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5636,IR(11, 1),IR(16952, 15)/* UserTypeGOOGLE */,IR(0, 0),IR(1, 0),IR(159, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5822,IR(12, 2),IR(16967, 26)/* FunctionRoundingModeINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5823,IR(14, 2),IR(17024, 24)/* FunctionDenormModeINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5825,IR(0, 0),IR(17048, 14)/* RegisterINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5826,IR(11, 1),IR(17062, 12)/* MemoryINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5827,IR(0, 1),IR(17074, 14)/* NumbanksINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5828,IR(0, 1),IR(17088, 15)/* BankwidthINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5829,IR(0, 1),IR(17103, 22)/* MaxPrivateCopiesINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5830,IR(0, 0),IR(17125, 16)/* SinglepumpINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5831,IR(0, 0),IR(17141, 16)/* DoublepumpINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5832,IR(0, 1),IR(17157, 19)/* MaxReplicatesINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5833,IR(0, 0),IR(17176, 20)/* SimpleDualPortINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5834,IR(16, 2),IR(17196, 11)/* MergeINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5835,IR(18, 1),IR(17249, 14)/* BankBitsINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5836,IR(0, 1),IR(17263, 20)/* ForcePow2DepthINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5883,IR(0, 1),IR(17283, 16)/* StridesizeINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5884,IR(0, 1),IR(17299, 14)/* WordsizeINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5885,IR(0, 0),IR(17313, 18)/* TrueDualPortINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5899,IR(0, 0),IR(17331, 19)/* BurstCoalesceINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5900,IR(0, 1),IR(17350, 15)/* CacheSizeINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5901,IR(0, 0),IR(17365, 28)/* DontStaticallyCoalesceINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5902,IR(0, 1),IR(17393, 14)/* PrefetchINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5905,IR(0, 0),IR(17407, 17)/* StallEnableINTEL */,IR(0, 0),IR(106, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5907,IR(0, 0),IR(17424, 25)/* FuseLoopsInFunctionINTEL */,IR(0, 0),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5909,IR(1, 2),IR(17449, 19)/* MathOpDSPModeINTEL */,IR(0, 0),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5914,IR(10, 1),IR(17468, 16)/* AliasScopeINTEL */,IR(0, 0),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5915,IR(10, 1),IR(17484, 13)/* NoAliasINTEL */,IR(0, 0),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5917,IR(0, 1),IR(17497, 24)/* InitiationIntervalINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5918,IR(0, 1),IR(17521, 20)/* MaxConcurrencyINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5919,IR(0, 1),IR(17541, 20)/* PipelineEnableINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5921,IR(0, 1),IR(17561, 20)/* BufferLocationINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5944,IR(0, 1),IR(17581, 19)/* IOPipeStorageINTEL */,IR(0, 0),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6080,IR(19, 2),IR(17634, 31)/* FunctionFloatingPointModeINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6085,IR(0, 0),IR(17665, 25)/* SingleElementVectorINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6087,IR(0, 0),IR(17690, 35)/* VectorComputeCallableFunctionINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6140,IR(0, 0),IR(17725, 18)/* MediaBlockIOINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6151,IR(0, 0),IR(17743, 15)/* StallFreeINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6170,IR(21, 1),IR(17789, 26)/* FPMaxErrorDecorationINTEL */,IR(0, 0),IR(141, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6172,IR(0, 1),IR(17815, 25)/* LatencyControlLabelINTEL */,IR(0, 0),IR(142, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6173,IR(22, 3),IR(17840, 30)/* LatencyControlConstraintINTEL */,IR(0, 0),IR(142, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6175,IR(0, 0),IR(17870, 27)/* ConduitKernelArgumentINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6176,IR(0, 0),IR(17897, 31)/* RegisterMapKernelArgumentINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6177,IR(0, 1),IR(17928, 33)/* MMHostInterfaceAddressWidthINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6178,IR(0, 1),IR(17961, 30)/* MMHostInterfaceDataWidthINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6179,IR(0, 1),IR(17991, 28)/* MMHostInterfaceLatencyINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6180,IR(25, 1),IR(18053, 34)/* MMHostInterfaceReadWriteModeINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6181,IR(0, 1),IR(18087, 29)/* MMHostInterfaceMaxBurstINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6182,IR(0, 1),IR(18116, 32)/* MMHostInterfaceWaitRequestINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6183,IR(0, 0),IR(18148, 26)/* StableKernelArgumentINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6188,IR(26, 2),IR(18213, 16)/* HostAccessINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6190,IR(28, 1),IR(18276, 14)/* InitModeINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6191,IR(0, 1),IR(18290, 28)/* ImplementInRegisterMapINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6247,IR(10, 1),IR(18318, 17)/* ConditionalINTEL */,IR(0, 0),IR(111, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6442,IR(29, 2),IR(18371, 22)/* CacheControlLoadINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6443,IR(31, 2),IR(18430, 23)/* CacheControlStoreINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {0,IR(0, 0),IR(18453, 3)/* 1D */,IR(0, 0),IR(72, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {1,IR(0, 0),IR(18456, 3)/* 2D */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {2,IR(0, 0),IR(18459, 3)/* 3D */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {3,IR(0, 0),IR(18462, 5)/* Cube */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {4,IR(0, 0),IR(18467, 5)/* Rect */,IR(0, 0),IR(71, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {5,IR(0, 0),IR(18472, 7)/* Buffer */,IR(0, 0),IR(73, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {6,IR(0, 0),IR(18479, 12)/* SubpassData */,IR(0, 0),IR(95, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {4173,IR(0, 0),IR(18491, 17)/* TileImageDataEXT */,IR(0, 0),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {0,IR(0, 1),IR(18508, 12)/* Invocations */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {1,IR(0, 0),IR(18520, 13)/* SpacingEqual */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {2,IR(0, 0),IR(18533, 22)/* SpacingFractionalEven */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {3,IR(0, 0),IR(18555, 21)/* SpacingFractionalOdd */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4,IR(0, 0),IR(18576, 14)/* VertexOrderCw */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5,IR(0, 0),IR(18590, 15)/* VertexOrderCcw */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6,IR(0, 0),IR(18605, 19)/* PixelCenterInteger */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {7,IR(0, 0),IR(18624, 16)/* OriginUpperLeft */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {8,IR(0, 0),IR(18640, 16)/* OriginLowerLeft */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {9,IR(0, 0),IR(18656, 19)/* EarlyFragmentTests */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {10,IR(0, 0),IR(18675, 10)/* PointMode */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {11,IR(0, 0),IR(18685, 4)/* Xfb */,IR(0, 0),IR(117, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {12,IR(0, 0),IR(18689, 15)/* DepthReplacing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {14,IR(0, 0),IR(18704, 13)/* DepthGreater */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {15,IR(0, 0),IR(18717, 10)/* DepthLess */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {16,IR(0, 0),IR(18727, 15)/* DepthUnchanged */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {17,IR(22, 3),IR(18742, 10)/* LocalSize */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {18,IR(22, 3),IR(18752, 14)/* LocalSizeHint */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {19,IR(0, 0),IR(18766, 12)/* InputPoints */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {20,IR(0, 0),IR(18778, 11)/* InputLines */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {21,IR(0, 0),IR(18789, 20)/* InputLinesAdjacency */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {22,IR(0, 0),IR(18809, 10)/* Triangles */,IR(0, 0),IR(12, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {23,IR(0, 0),IR(18819, 24)/* InputTrianglesAdjacency */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {24,IR(0, 0),IR(18843, 6)/* Quads */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {25,IR(0, 0),IR(18849, 9)/* Isolines */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {26,IR(0, 1),IR(18858, 15)/* OutputVertices */,IR(0, 0),IR(148, 4),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {27,IR(0, 0),IR(18873, 13)/* OutputPoints */,IR(0, 0),IR(152, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {28,IR(0, 0),IR(18886, 16)/* OutputLineStrip */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {29,IR(0, 0),IR(18902, 20)/* OutputTriangleStrip */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {30,IR(0, 1),IR(18922, 12)/* VecTypeHint */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {31,IR(0, 0),IR(18934, 15)/* ContractionOff */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {33,IR(0, 0),IR(18949, 12)/* Initializer */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {34,IR(0, 0),IR(18961, 10)/* Finalizer */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {35,IR(0, 1),IR(5394, 13)/* SubgroupSize */,IR(0, 0),IR(155, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {36,IR(0, 1),IR(18971, 22)/* SubgroupsPerWorkgroup */,IR(0, 0),IR(155, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {37,IR(10, 1),IR(18993, 24)/* SubgroupsPerWorkgroupId */,IR(0, 0),IR(155, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {38,IR(33, 3),IR(19017, 12)/* LocalSizeId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {39,IR(33, 3),IR(19029, 16)/* LocalSizeHintId */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4169,IR(0, 0),IR(19045, 34)/* NonCoherentColorAttachmentReadEXT */,IR(0, 0),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4170,IR(0, 0),IR(19079, 34)/* NonCoherentDepthAttachmentReadEXT */,IR(0, 0),IR(156, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4171,IR(0, 0),IR(19113, 36)/* NonCoherentStencilAttachmentReadEXT */,IR(0, 0),IR(157, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4421,IR(0, 0),IR(19149, 30)/* SubgroupUniformControlFlowKHR */,IR(0, 0),IR(3, 1),IR(160, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4446,IR(0, 0),IR(19179, 18)/* PostDepthCoverage */,IR(0, 0),IR(158, 1),IR(45, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4459,IR(0, 1),IR(9593, 15)/* DenormPreserve */,IR(0, 0),IR(159, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4460,IR(0, 1),IR(9608, 18)/* DenormFlushToZero */,IR(0, 0),IR(160, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4461,IR(0, 1),IR(9626, 25)/* SignedZeroInfNanPreserve */,IR(0, 0),IR(161, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4462,IR(0, 1),IR(9651, 16)/* RoundingModeRTE */,IR(0, 0),IR(162, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4463,IR(0, 1),IR(9667, 16)/* RoundingModeRTZ */,IR(0, 0),IR(163, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4489,IR(0, 0),IR(19197, 34)/* NonCoherentTileAttachmentReadQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4490,IR(22, 3),IR(19231, 20)/* TileShadingRateQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5017,IR(0, 0),IR(19251, 29)/* EarlyAndLateFragmentTestsAMD */,IR(0, 0),IR(3, 1),IR(161, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5027,IR(0, 0),IR(19280, 23)/* StencilRefReplacingEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5069,IR(0, 0),IR(19303, 15)/* CoalescingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5070,IR(10, 1),IR(19318, 15)/* IsApiEntryAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5071,IR(10, 1),IR(19333, 21)/* MaxNodeRecursionAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5072,IR(33, 3),IR(19354, 24)/* StaticNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5073,IR(10, 1),IR(6287, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5077,IR(33, 3),IR(19378, 21)/* MaxNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5079,IR(0, 0),IR(19399, 28)/* StencilRefUnchangedFrontAMD */,IR(0, 0),IR(42, 1),IR(162, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5080,IR(0, 0),IR(19427, 26)/* StencilRefGreaterFrontAMD */,IR(0, 0),IR(42, 1),IR(162, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5081,IR(0, 0),IR(19453, 23)/* StencilRefLessFrontAMD */,IR(0, 0),IR(42, 1),IR(162, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5082,IR(0, 0),IR(19476, 27)/* StencilRefUnchangedBackAMD */,IR(0, 0),IR(42, 1),IR(162, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5083,IR(0, 0),IR(19503, 25)/* StencilRefGreaterBackAMD */,IR(0, 0),IR(42, 1),IR(162, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5084,IR(0, 0),IR(19528, 22)/* StencilRefLessBackAMD */,IR(0, 0),IR(42, 1),IR(162, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5088,IR(0, 0),IR(19550, 19)/* QuadDerivativesKHR */,IR(0, 0),IR(164, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5089,IR(0, 0),IR(19569, 20)/* RequireFullQuadsKHR */,IR(0, 0),IR(164, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5102,IR(36, 2),IR(19589, 20)/* SharesInputWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5269,IR(0, 0),IR(19609, 15)/* OutputLinesEXT */,IR(58, 1),IR(124, 2),IR(156, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5270,IR(0, 1),IR(19638, 20)/* OutputPrimitivesEXT */,IR(59, 1),IR(124, 2),IR(156, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5289,IR(0, 0),IR(19677, 24)/* DerivativeGroupQuadsKHR */,IR(60, 1),IR(165, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5290,IR(0, 0),IR(19724, 25)/* DerivativeGroupLinearKHR */,IR(61, 1),IR(166, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5298,IR(0, 0),IR(19773, 19)/* OutputTrianglesEXT */,IR(62, 1),IR(124, 2),IR(156, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5366,IR(0, 0),IR(19810, 25)/* PixelInterlockOrderedEXT */,IR(0, 0),IR(167, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5367,IR(0, 0),IR(19835, 27)/* PixelInterlockUnorderedEXT */,IR(0, 0),IR(167, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5368,IR(0, 0),IR(19862, 26)/* SampleInterlockOrderedEXT */,IR(0, 0),IR(168, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5369,IR(0, 0),IR(19888, 28)/* SampleInterlockUnorderedEXT */,IR(0, 0),IR(168, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5370,IR(0, 0),IR(19916, 31)/* ShadingRateInterlockOrderedEXT */,IR(0, 0),IR(169, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5371,IR(0, 0),IR(19947, 33)/* ShadingRateInterlockUnorderedEXT */,IR(0, 0),IR(169, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5618,IR(0, 1),IR(19980, 27)/* SharedLocalMemorySizeINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5620,IR(0, 1),IR(20007, 21)/* RoundingModeRTPINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5621,IR(0, 1),IR(20028, 21)/* RoundingModeRTNINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5622,IR(0, 1),IR(20049, 26)/* FloatingPointModeALTINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5623,IR(0, 1),IR(20075, 27)/* FloatingPointModeIEEEINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5893,IR(22, 3),IR(20102, 22)/* MaxWorkgroupSizeINTEL */,IR(0, 0),IR(171, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5894,IR(0, 1),IR(20124, 16)/* MaxWorkDimINTEL */,IR(0, 0),IR(171, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5895,IR(0, 0),IR(20140, 20)/* NoGlobalOffsetINTEL */,IR(0, 0),IR(171, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5896,IR(0, 1),IR(20160, 22)/* NumSIMDWorkitemsINTEL */,IR(0, 0),IR(107, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5903,IR(0, 1),IR(20182, 28)/* SchedulerTargetFmaxMhzINTEL */,IR(0, 0),IR(107, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6023,IR(0, 0),IR(20210, 24)/* MaximallyReconvergesKHR */,IR(0, 0),IR(3, 1),IR(164, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6028,IR(36, 2),IR(20234, 18)/* FPFastMathDefault */,IR(0, 0),IR(172, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6154,IR(0, 1),IR(20252, 24)/* StreamingInterfaceINTEL */,IR(0, 0),IR(107, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6160,IR(0, 1),IR(20276, 26)/* RegisterMapInterfaceINTEL */,IR(0, 0),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6417,IR(0, 1),IR(20302, 23)/* NamedBarrierCountINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6461,IR(0, 1),IR(20325, 22)/* MaximumRegistersINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6462,IR(10, 1),IR(20347, 24)/* MaximumRegistersIdINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6463,IR(38, 1),IR(20422, 27)/* NamedMaximumRegistersINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {0,IR(0, 0),IR(20449, 7)/* Vertex */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {1,IR(0, 0),IR(20456, 20)/* TessellationControl */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {2,IR(0, 0),IR(20476, 23)/* TessellationEvaluation */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {3,IR(0, 0),IR(4875, 9)/* Geometry */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {4,IR(0, 0),IR(14627, 9)/* Fragment */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5,IR(0, 0),IR(20499, 10)/* GLCompute */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {6,IR(0, 0),IR(4642, 7)/* Kernel */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5267,IR(0, 0),IR(20509, 7)/* TaskNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5268,IR(0, 0),IR(20516, 7)/* MeshNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5313,IR(0, 0),IR(20523, 17)/* RayGenerationKHR */,IR(63, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5314,IR(0, 0),IR(20556, 16)/* IntersectionKHR */,IR(64, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5315,IR(0, 0),IR(20587, 10)/* AnyHitKHR */,IR(65, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5316,IR(0, 0),IR(20606, 14)/* ClosestHitKHR */,IR(66, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5317,IR(0, 0),IR(20633, 8)/* MissKHR */,IR(67, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5318,IR(0, 0),IR(20648, 12)/* CallableKHR */,IR(68, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5364,IR(0, 0),IR(20671, 8)/* TaskEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5365,IR(0, 0),IR(20679, 8)/* MeshEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {0,IR(0, 0),IR(20687, 9)/* Preserve */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE - {1,IR(0, 0),IR(20696, 12)/* FlushToZero */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE - {0,IR(0, 0),IR(20708, 12)/* BFloat16KHR */,IR(0, 0),IR(89, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING - {4214,IR(0, 0),IR(20720, 14)/* Float8E4M3EXT */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING - {4215,IR(0, 0),IR(20734, 14)/* Float8E5M2EXT */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING - {0,IR(0, 0),IR(20748, 5)/* IEEE */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE - {1,IR(0, 0),IR(20753, 4)/* ALT */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {1,IR(0, 0),IR(20757, 7)/* NotNaN */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {2,IR(0, 0),IR(20764, 7)/* NotInf */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {4,IR(0, 0),IR(20771, 4)/* NSZ */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {8,IR(0, 0),IR(20775, 11)/* AllowRecip */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {16,IR(0, 0),IR(20786, 5)/* Fast */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {65536,IR(0, 0),IR(20791, 14)/* AllowContract */,IR(69, 1),IR(175, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {131072,IR(0, 0),IR(20828, 13)/* AllowReassoc */,IR(70, 1),IR(175, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {262144,IR(0, 0),IR(20859, 15)/* AllowTransform */,IR(0, 0),IR(172, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {0,IR(0, 0),IR(20874, 4)/* RTE */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {1,IR(0, 0),IR(20878, 4)/* RTZ */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {2,IR(0, 0),IR(20882, 4)/* RTP */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {3,IR(0, 0),IR(20886, 4)/* RTN */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {1,IR(0, 0),IR(20890, 16)/* Vertical2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {2,IR(0, 0),IR(20906, 16)/* Vertical4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {4,IR(0, 0),IR(20922, 18)/* Horizontal2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {8,IR(0, 0),IR(20940, 18)/* Horizontal4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {1,IR(0, 0),IR(20958, 7)/* Inline */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {2,IR(0, 0),IR(20965, 11)/* DontInline */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {4,IR(0, 0),IR(20976, 5)/* Pure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {8,IR(0, 0),IR(20981, 6)/* Const */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {65536,IR(0, 0),IR(13369, 11)/* OptNoneEXT */,IR(50, 1),IR(177, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {0,IR(0, 0),IR(20987, 5)/* Zext */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {1,IR(0, 0),IR(20992, 5)/* Sext */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {2,IR(0, 0),IR(20997, 6)/* ByVal */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {3,IR(0, 0),IR(21003, 5)/* Sret */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {4,IR(0, 0),IR(21008, 8)/* NoAlias */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {5,IR(0, 0),IR(21016, 10)/* NoCapture */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {6,IR(0, 0),IR(21026, 8)/* NoWrite */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {7,IR(0, 0),IR(21034, 12)/* NoReadWrite */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {5940,IR(0, 0),IR(21046, 20)/* RuntimeAlignedINTEL */,IR(0, 0),IR(178, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {0,IR(0, 0),IR(21066, 7)/* Reduce */,IR(0, 0),IR(179, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {1,IR(0, 0),IR(21073, 14)/* InclusiveScan */,IR(0, 0),IR(179, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {2,IR(0, 0),IR(21087, 14)/* ExclusiveScan */,IR(0, 0),IR(179, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {3,IR(0, 0),IR(21101, 16)/* ClusteredReduce */,IR(0, 0),IR(182, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {6,IR(0, 0),IR(21117, 20)/* PartitionedReduceNV */,IR(0, 0),IR(183, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {7,IR(0, 0),IR(21137, 27)/* PartitionedInclusiveScanNV */,IR(0, 0),IR(183, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {8,IR(0, 0),IR(21164, 27)/* PartitionedExclusiveScanNV */,IR(0, 0),IR(183, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {0,IR(0, 0),IR(21191, 10)/* NoneINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {1,IR(0, 0),IR(21201, 10)/* ReadINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {2,IR(0, 0),IR(21211, 11)/* WriteINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {3,IR(0, 0),IR(21222, 15)/* ReadWriteINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {1,IR(10, 1),IR(21237, 5)/* Bias */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {2,IR(10, 1),IR(21242, 4)/* Lod */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {4,IR(36, 2),IR(21246, 5)/* Grad */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {8,IR(10, 1),IR(21251, 12)/* ConstOffset */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {16,IR(10, 1),IR(15630, 7)/* Offset */,IR(0, 0),IR(184, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {32,IR(10, 1),IR(21263, 13)/* ConstOffsets */,IR(0, 0),IR(184, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {64,IR(10, 1),IR(15427, 7)/* Sample */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {128,IR(10, 1),IR(8426, 7)/* MinLod */,IR(0, 0),IR(185, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {256,IR(4, 1),IR(21276, 19)/* MakeTexelAvailable */,IR(71, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {512,IR(4, 1),IR(21317, 17)/* MakeTexelVisible */,IR(72, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {1024,IR(0, 0),IR(21354, 16)/* NonPrivateTexel */,IR(73, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {2048,IR(0, 0),IR(21389, 14)/* VolatileTexel */,IR(74, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {4096,IR(0, 0),IR(21420, 11)/* SignExtend */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {8192,IR(0, 0),IR(21431, 11)/* ZeroExtend */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {16384,IR(0, 0),IR(21442, 12)/* Nontemporal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {65536,IR(10, 1),IR(21454, 8)/* Offsets */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {0,IR(0, 0),IR(21462, 10)/* SnormInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {1,IR(0, 0),IR(21472, 11)/* SnormInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {2,IR(0, 0),IR(21483, 10)/* UnormInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {3,IR(0, 0),IR(21493, 11)/* UnormInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {4,IR(0, 0),IR(21504, 14)/* UnormShort565 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {5,IR(0, 0),IR(21518, 14)/* UnormShort555 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {6,IR(0, 0),IR(21532, 15)/* UnormInt101010 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {7,IR(0, 0),IR(21547, 11)/* SignedInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {8,IR(0, 0),IR(21558, 12)/* SignedInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {9,IR(0, 0),IR(21570, 12)/* SignedInt32 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {10,IR(0, 0),IR(21582, 13)/* UnsignedInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {11,IR(0, 0),IR(21595, 14)/* UnsignedInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {12,IR(0, 0),IR(21609, 14)/* UnsignedInt32 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {13,IR(0, 0),IR(21623, 10)/* HalfFloat */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {14,IR(0, 0),IR(14120, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {15,IR(0, 0),IR(21633, 11)/* UnormInt24 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {16,IR(0, 0),IR(21644, 17)/* UnormInt101010_2 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {17,IR(0, 0),IR(21661, 16)/* UnormInt10X6EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {19,IR(0, 0),IR(21677, 20)/* UnsignedIntRaw10EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {20,IR(0, 0),IR(21697, 20)/* UnsignedIntRaw12EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {21,IR(0, 0),IR(21717, 20)/* UnormInt2_101010EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {22,IR(0, 0),IR(21737, 19)/* UnsignedInt10X6EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {23,IR(0, 0),IR(21756, 19)/* UnsignedInt12X4EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {24,IR(0, 0),IR(21775, 19)/* UnsignedInt14X2EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {25,IR(0, 0),IR(21794, 16)/* UnormInt12X4EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {26,IR(0, 0),IR(21810, 16)/* UnormInt14X2EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {0,IR(0, 0),IR(21826, 2)/* R */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {1,IR(0, 0),IR(21828, 2)/* A */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {2,IR(0, 0),IR(21830, 3)/* RG */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {3,IR(0, 0),IR(21833, 3)/* RA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {4,IR(0, 0),IR(21836, 4)/* RGB */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {5,IR(0, 0),IR(21840, 5)/* RGBA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {6,IR(0, 0),IR(21845, 5)/* BGRA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {7,IR(0, 0),IR(21850, 5)/* ARGB */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {8,IR(0, 0),IR(21855, 10)/* Intensity */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {9,IR(0, 0),IR(21865, 10)/* Luminance */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {10,IR(0, 0),IR(21875, 3)/* Rx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {11,IR(0, 0),IR(21878, 4)/* RGx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {12,IR(0, 0),IR(21882, 5)/* RGBx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {13,IR(0, 0),IR(21887, 6)/* Depth */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {14,IR(0, 0),IR(21893, 13)/* DepthStencil */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {15,IR(0, 0),IR(21906, 5)/* sRGB */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {16,IR(0, 0),IR(21911, 6)/* sRGBx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {17,IR(0, 0),IR(21917, 6)/* sRGBA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {18,IR(0, 0),IR(21923, 6)/* sBGRA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {19,IR(0, 0),IR(21929, 5)/* ABGR */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {0,IR(0, 0),IR(21934, 27)/* InitOnDeviceReprogramINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {1,IR(0, 0),IR(21961, 23)/* InitOnDeviceResetINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {0,IR(0, 0),IR(21984, 7)/* NoWait */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {1,IR(0, 0),IR(21991, 11)/* WaitKernel */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {2,IR(0, 0),IR(22002, 14)/* WaitWorkGroup */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO - {1,IR(0, 0),IR(22016, 12)/* CmdExecTime */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS - {1,IR(0, 0),IR(22028, 13)/* MayUsePrintf */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS - {0,IR(0, 0),IR(22041, 7)/* Export */,IR(0, 0),IR(120, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE - {1,IR(0, 0),IR(22048, 7)/* Import */,IR(0, 0),IR(120, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE - {2,IR(0, 0),IR(22055, 12)/* LinkOnceODR */,IR(0, 0),IR(120, 1),IR(165, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE - {0,IR(0, 0),IR(22067, 14)/* UncachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {1,IR(0, 0),IR(22081, 12)/* CachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {2,IR(0, 0),IR(22093, 15)/* StreamingINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {3,IR(0, 0),IR(22108, 25)/* InvalidateAfterReadINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {4,IR(0, 0),IR(22133, 17)/* ConstCachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {1,IR(0, 0),IR(22150, 7)/* Unroll */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {2,IR(0, 0),IR(22157, 11)/* DontUnroll */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {4,IR(0, 0),IR(22168, 19)/* DependencyInfinite */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {8,IR(0, 1),IR(22187, 17)/* DependencyLength */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {16,IR(0, 1),IR(22204, 14)/* MinIterations */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {32,IR(0, 1),IR(22218, 14)/* MaxIterations */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {64,IR(0, 1),IR(22232, 18)/* IterationMultiple */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {128,IR(0, 1),IR(22250, 10)/* PeelCount */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {256,IR(0, 1),IR(22260, 13)/* PartialCount */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {65536,IR(0, 1),IR(17497, 24)/* InitiationIntervalINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {131072,IR(0, 1),IR(17521, 20)/* MaxConcurrencyINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {262144,IR(0, 1),IR(22273, 21)/* DependencyArrayINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {524288,IR(0, 1),IR(17541, 20)/* PipelineEnableINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {1048576,IR(0, 1),IR(22294, 18)/* LoopCoalesceINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {2097152,IR(0, 1),IR(22312, 21)/* MaxInterleavingINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {4194304,IR(0, 1),IR(22333, 26)/* SpeculatedIterationsINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {8388608,IR(0, 0),IR(22359, 14)/* NoFusionINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {16777216,IR(0, 1),IR(22373, 15)/* LoopCountINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {33554432,IR(0, 1),IR(22388, 26)/* MaxReinvocationDelayINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {1,IR(0, 0),IR(22414, 29)/* MatrixASignedComponentsINTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {2,IR(0, 0),IR(22443, 29)/* MatrixBSignedComponentsINTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {4,IR(0, 0),IR(22472, 21)/* MatrixCBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {8,IR(0, 0),IR(22493, 26)/* MatrixResultBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {16,IR(0, 0),IR(22519, 23)/* MatrixAPackedInt8INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {32,IR(0, 0),IR(22542, 23)/* MatrixBPackedInt8INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {64,IR(0, 0),IR(22565, 23)/* MatrixAPackedInt4INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {128,IR(0, 0),IR(22588, 23)/* MatrixBPackedInt4INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {256,IR(0, 0),IR(22611, 17)/* MatrixATF32INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {512,IR(0, 0),IR(22628, 17)/* MatrixBTF32INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {1024,IR(0, 0),IR(22645, 26)/* MatrixAPackedFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {2048,IR(0, 0),IR(22671, 26)/* MatrixBPackedFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {4096,IR(0, 0),IR(22697, 27)/* MatrixAPackedBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {8192,IR(0, 0),IR(22724, 27)/* MatrixBPackedBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {1,IR(0, 0),IR(15461, 9)/* Volatile */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {2,IR(0, 1),IR(22751, 8)/* Aligned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {4,IR(0, 0),IR(21442, 12)/* Nontemporal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {8,IR(4, 1),IR(22759, 21)/* MakePointerAvailable */,IR(75, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {16,IR(4, 1),IR(22804, 19)/* MakePointerVisible */,IR(76, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {32,IR(0, 0),IR(22845, 18)/* NonPrivatePointer */,IR(77, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {65536,IR(10, 1),IR(22884, 20)/* AliasScopeINTELMask */,IR(0, 0),IR(136, 1),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {131072,IR(10, 1),IR(22904, 17)/* NoAliasINTELMask */,IR(0, 0),IR(136, 1),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {0,IR(0, 0),IR(22921, 7)/* Simple */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL - {1,IR(0, 0),IR(22928, 8)/* GLSL450 */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL - {2,IR(0, 0),IR(22936, 7)/* OpenCL */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL - {3,IR(0, 0),IR(22943, 7)/* Vulkan */,IR(78, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL - {0,IR(0, 0),IR(22960, 8)/* Relaxed */,IR(79, 1),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {2,IR(0, 0),IR(22968, 8)/* Acquire */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {4,IR(0, 0),IR(22976, 8)/* Release */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {8,IR(0, 0),IR(22984, 15)/* AcquireRelease */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {16,IR(0, 0),IR(22999, 23)/* SequentiallyConsistent */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {64,IR(0, 0),IR(23022, 14)/* UniformMemory */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {128,IR(0, 0),IR(23036, 15)/* SubgroupMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {256,IR(0, 0),IR(23051, 16)/* WorkgroupMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {512,IR(0, 0),IR(23067, 21)/* CrossWorkgroupMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {1024,IR(0, 0),IR(23088, 20)/* AtomicCounterMemory */,IR(0, 0),IR(82, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {2048,IR(0, 0),IR(23108, 12)/* ImageMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {4096,IR(0, 0),IR(23120, 13)/* OutputMemory */,IR(80, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {8192,IR(0, 0),IR(23149, 14)/* MakeAvailable */,IR(81, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {16384,IR(0, 0),IR(23180, 12)/* MakeVisible */,IR(82, 1),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {32768,IR(0, 0),IR(15461, 9)/* Volatile */,IR(0, 0),IR(186, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {0,IR(0, 0),IR(23207, 10)/* AutoINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS - {0,IR(0, 0),IR(23217, 5)/* WRAP */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {1,IR(0, 0),IR(23222, 4)/* SAT */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {2,IR(0, 0),IR(23226, 9)/* SAT_ZERO */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {3,IR(0, 0),IR(23235, 8)/* SAT_SYM */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {0,IR(0, 0),IR(23243, 25)/* PackedVectorFormat4x8Bit */,IR(83, 1),IR(1, 0),IR(122, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT - {0,IR(0, 0),IR(23296, 4)/* TRN */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {1,IR(0, 0),IR(23300, 9)/* TRN_ZERO */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {2,IR(0, 0),IR(23309, 4)/* RND */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {3,IR(0, 0),IR(23313, 9)/* RND_ZERO */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {4,IR(0, 0),IR(23322, 8)/* RND_INF */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {5,IR(0, 0),IR(23330, 12)/* RND_MIN_INF */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {6,IR(0, 0),IR(23342, 9)/* RND_CONV */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {7,IR(0, 0),IR(23351, 13)/* RND_CONV_ODD */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {1,IR(0, 0),IR(23364, 25)/* RobustnessPerComponentNV */,IR(0, 0),IR(189, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {2,IR(0, 0),IR(23389, 23)/* RobustnessPerElementNV */,IR(0, 0),IR(189, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {0,IR(0, 0),IR(14975, 8)/* NoneKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {1,IR(0, 0),IR(23412, 10)/* OpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {2,IR(0, 0),IR(23422, 12)/* NoOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {4,IR(0, 0),IR(23434, 23)/* TerminateOnFirstHitKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {8,IR(0, 0),IR(23457, 24)/* SkipClosestHitShaderKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {16,IR(0, 0),IR(23481, 27)/* CullBackFacingTrianglesKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {32,IR(0, 0),IR(23508, 28)/* CullFrontFacingTrianglesKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {64,IR(0, 0),IR(23536, 14)/* CullOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {128,IR(0, 0),IR(23550, 16)/* CullNoOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {256,IR(0, 0),IR(23566, 17)/* SkipTrianglesKHR */,IR(84, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {512,IR(0, 0),IR(23607, 13)/* SkipAABBsKHR */,IR(0, 0),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {1024,IR(0, 0),IR(23620, 30)/* ForceOpacityMicromap2StateEXT */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {0,IR(0, 0),IR(23650, 41)/* RayQueryCandidateIntersectionTriangleKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {1,IR(0, 0),IR(23691, 37)/* RayQueryCandidateIntersectionAABBKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {0,IR(0, 0),IR(23728, 37)/* RayQueryCommittedIntersectionNoneKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {1,IR(0, 0),IR(23765, 41)/* RayQueryCommittedIntersectionTriangleKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {2,IR(0, 0),IR(23806, 42)/* RayQueryCommittedIntersectionGeneratedKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {0,IR(0, 0),IR(23848, 33)/* RayQueryCandidateIntersectionKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {1,IR(0, 0),IR(23881, 33)/* RayQueryCommittedIntersectionKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {1,IR(0, 0),IR(23914, 12)/* ClampToEdge */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {2,IR(0, 0),IR(23926, 6)/* Clamp */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {3,IR(0, 0),IR(23932, 7)/* Repeat */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {4,IR(0, 0),IR(23939, 15)/* RepeatMirrored */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {0,IR(0, 0),IR(23954, 8)/* Nearest */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE - {1,IR(0, 0),IR(23962, 7)/* Linear */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE - {0,IR(0, 0),IR(23969, 8)/* Unknown */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {1,IR(0, 0),IR(23977, 8)/* Rgba32f */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {2,IR(0, 0),IR(23985, 8)/* Rgba16f */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {3,IR(0, 0),IR(23993, 5)/* R32f */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {4,IR(0, 0),IR(23998, 6)/* Rgba8 */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {5,IR(0, 0),IR(24004, 11)/* Rgba8Snorm */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {6,IR(0, 0),IR(24015, 6)/* Rg32f */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {7,IR(0, 0),IR(24021, 6)/* Rg16f */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {8,IR(0, 0),IR(24027, 13)/* R11fG11fB10f */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {9,IR(0, 0),IR(24040, 5)/* R16f */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {10,IR(0, 0),IR(24045, 7)/* Rgba16 */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {11,IR(0, 0),IR(24052, 8)/* Rgb10A2 */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {12,IR(0, 0),IR(24060, 5)/* Rg16 */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {13,IR(0, 0),IR(24065, 4)/* Rg8 */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {14,IR(0, 0),IR(24069, 4)/* R16 */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {15,IR(0, 0),IR(24073, 3)/* R8 */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {16,IR(0, 0),IR(24076, 12)/* Rgba16Snorm */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {17,IR(0, 0),IR(24088, 10)/* Rg16Snorm */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {18,IR(0, 0),IR(24098, 9)/* Rg8Snorm */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {19,IR(0, 0),IR(24107, 9)/* R16Snorm */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {20,IR(0, 0),IR(24116, 8)/* R8Snorm */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {21,IR(0, 0),IR(24124, 8)/* Rgba32i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {22,IR(0, 0),IR(24132, 8)/* Rgba16i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {23,IR(0, 0),IR(24140, 7)/* Rgba8i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {24,IR(0, 0),IR(24147, 5)/* R32i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {25,IR(0, 0),IR(24152, 6)/* Rg32i */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {26,IR(0, 0),IR(24158, 6)/* Rg16i */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {27,IR(0, 0),IR(24164, 5)/* Rg8i */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {28,IR(0, 0),IR(24169, 5)/* R16i */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {29,IR(0, 0),IR(24174, 4)/* R8i */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {30,IR(0, 0),IR(24178, 9)/* Rgba32ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {31,IR(0, 0),IR(24187, 9)/* Rgba16ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {32,IR(0, 0),IR(24196, 8)/* Rgba8ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {33,IR(0, 0),IR(24204, 6)/* R32ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {34,IR(0, 0),IR(24210, 10)/* Rgb10a2ui */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {35,IR(0, 0),IR(24220, 7)/* Rg32ui */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {36,IR(0, 0),IR(24227, 7)/* Rg16ui */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {37,IR(0, 0),IR(24234, 6)/* Rg8ui */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {38,IR(0, 0),IR(24240, 6)/* R16ui */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {39,IR(0, 0),IR(24246, 5)/* R8ui */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {40,IR(0, 0),IR(24251, 6)/* R64ui */,IR(0, 0),IR(194, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {41,IR(0, 0),IR(24257, 5)/* R64i */,IR(0, 0),IR(194, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {0,IR(0, 0),IR(24262, 12)/* CrossDevice */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {1,IR(0, 0),IR(24274, 7)/* Device */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {2,IR(0, 0),IR(24281, 10)/* Workgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {3,IR(0, 0),IR(24291, 9)/* Subgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {4,IR(0, 0),IR(24300, 11)/* Invocation */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {5,IR(0, 0),IR(24311, 12)/* QueueFamily */,IR(85, 1),IR(186, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {6,IR(0, 0),IR(24338, 14)/* ShaderCallKHR */,IR(0, 0),IR(60, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SELECTION_CONTROL - {1,IR(0, 0),IR(24352, 8)/* Flatten */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SELECTION_CONTROL - {2,IR(0, 0),IR(24360, 12)/* DontFlatten */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SELECTION_CONTROL - {1,IR(0, 0),IR(24372, 29)/* IdentifierPossibleDuplicates */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS - {0,IR(0, 0),IR(14092, 12)/* Unspecified */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {1,IR(0, 0),IR(14104, 8)/* Address */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {2,IR(0, 0),IR(14112, 8)/* Boolean */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {3,IR(0, 0),IR(14120, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {4,IR(0, 0),IR(14126, 7)/* Signed */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {5,IR(0, 0),IR(14133, 11)/* SignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {6,IR(0, 0),IR(14144, 9)/* Unsigned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {7,IR(0, 0),IR(14153, 13)/* UnsignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {0,IR(0, 0),IR(14166, 6)/* Class */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {1,IR(0, 0),IR(14172, 10)/* Structure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {2,IR(0, 0),IR(14182, 6)/* Union */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {0,IR(0, 0),IR(14188, 15)/* ImportedModule */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY - {1,IR(0, 0),IR(14203, 20)/* ImportedDeclaration */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {1,IR(0, 0),IR(14228, 16)/* FlagIsProtected */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {2,IR(0, 0),IR(14244, 14)/* FlagIsPrivate */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {3,IR(0, 0),IR(14258, 13)/* FlagIsPublic */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {4,IR(0, 0),IR(14271, 12)/* FlagIsLocal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {8,IR(0, 0),IR(14283, 17)/* FlagIsDefinition */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {16,IR(0, 0),IR(14300, 12)/* FlagFwdDecl */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {32,IR(0, 0),IR(14312, 15)/* FlagArtificial */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {64,IR(0, 0),IR(14327, 13)/* FlagExplicit */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {128,IR(0, 0),IR(14340, 15)/* FlagPrototyped */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {256,IR(0, 0),IR(14355, 18)/* FlagObjectPointer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {512,IR(0, 0),IR(14373, 17)/* FlagStaticMember */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {1024,IR(0, 0),IR(14390, 21)/* FlagIndirectVariable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {2048,IR(0, 0),IR(14411, 20)/* FlagLValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {4096,IR(0, 0),IR(14431, 20)/* FlagRValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {8192,IR(0, 0),IR(14451, 16)/* FlagIsOptimized */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {16384,IR(0, 0),IR(14467, 16)/* FlagIsEnumClass */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {32768,IR(0, 0),IR(14483, 20)/* FlagTypePassByValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {65536,IR(0, 0),IR(14503, 24)/* FlagTypePassByReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {131072,IR(0, 0),IR(24401, 26)/* FlagUnknownPhysicalLayout */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {0,IR(0, 0),IR(14527, 6)/* Deref */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {1,IR(0, 0),IR(14533, 5)/* Plus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {2,IR(0, 0),IR(14538, 6)/* Minus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {3,IR(10, 1),IR(14577, 11)/* PlusUconst */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {4,IR(36, 2),IR(14588, 9)/* BitPiece */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {5,IR(0, 0),IR(14597, 5)/* Swap */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {6,IR(0, 0),IR(14602, 7)/* Xderef */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {7,IR(0, 0),IR(14609, 11)/* StackValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {8,IR(10, 1),IR(14620, 7)/* Constu */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {9,IR(36, 2),IR(14627, 9)/* Fragment */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {0,IR(0, 0),IR(14636, 10)/* ConstType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {1,IR(0, 0),IR(14646, 13)/* VolatileType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {2,IR(0, 0),IR(14659, 13)/* RestrictType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {3,IR(0, 0),IR(14672, 11)/* AtomicType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {0,IR(0, 0),IR(23969, 8)/* Unknown */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {1,IR(0, 0),IR(24427, 5)/* ESSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {2,IR(0, 0),IR(24432, 5)/* GLSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {3,IR(0, 0),IR(24437, 9)/* OpenCL_C */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {4,IR(0, 0),IR(24446, 11)/* OpenCL_CPP */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {5,IR(0, 0),IR(24457, 5)/* HLSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {6,IR(0, 0),IR(24462, 15)/* CPP_for_OpenCL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {7,IR(0, 0),IR(24477, 5)/* SYCL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {8,IR(0, 0),IR(24482, 7)/* HERO_C */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {9,IR(0, 0),IR(24489, 5)/* NZSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {10,IR(0, 0),IR(24494, 5)/* WGSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {11,IR(0, 0),IR(24499, 6)/* Slang */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {12,IR(0, 0),IR(24505, 4)/* Zig */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {13,IR(0, 0),IR(24509, 5)/* Rust */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {0,IR(0, 0),IR(24514, 16)/* UniformConstant */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {1,IR(0, 0),IR(24530, 6)/* Input */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {2,IR(0, 0),IR(15512, 8)/* Uniform */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {3,IR(0, 0),IR(24536, 7)/* Output */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {4,IR(0, 0),IR(24281, 10)/* Workgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5,IR(0, 0),IR(24543, 15)/* CrossWorkgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {6,IR(0, 0),IR(24558, 8)/* Private */,IR(0, 0),IR(195, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {7,IR(0, 0),IR(24566, 9)/* Function */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {8,IR(0, 0),IR(24575, 8)/* Generic */,IR(0, 0),IR(197, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {9,IR(0, 0),IR(24583, 13)/* PushConstant */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {10,IR(0, 0),IR(24596, 14)/* AtomicCounter */,IR(0, 0),IR(82, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {11,IR(0, 0),IR(24610, 6)/* Image */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {12,IR(0, 0),IR(24616, 14)/* StorageBuffer */,IR(0, 0),IR(3, 1),IR(166, 2),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {4172,IR(0, 0),IR(24630, 13)/* TileImageEXT */,IR(0, 0),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {4491,IR(0, 0),IR(24643, 19)/* TileAttachmentQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5068,IR(0, 0),IR(24662, 16)/* NodePayloadAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5328,IR(0, 0),IR(24678, 16)/* CallableDataKHR */,IR(86, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5329,IR(0, 0),IR(24709, 24)/* IncomingCallableDataKHR */,IR(87, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5338,IR(0, 0),IR(24756, 14)/* RayPayloadKHR */,IR(88, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5339,IR(0, 0),IR(24783, 16)/* HitAttributeKHR */,IR(89, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5342,IR(0, 0),IR(24814, 22)/* IncomingRayPayloadKHR */,IR(90, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5343,IR(0, 0),IR(24857, 22)/* ShaderRecordBufferKHR */,IR(91, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5349,IR(0, 0),IR(24900, 22)/* PhysicalStorageBuffer */,IR(92, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5385,IR(0, 0),IR(24947, 21)/* HitObjectAttributeNV */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5402,IR(0, 0),IR(24968, 24)/* TaskPayloadWorkgroupEXT */,IR(0, 0),IR(53, 1),IR(23, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5605,IR(0, 0),IR(24992, 17)/* CodeSectionINTEL */,IR(0, 0),IR(198, 1),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5936,IR(0, 0),IR(25009, 16)/* DeviceOnlyINTEL */,IR(0, 0),IR(199, 1),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5937,IR(0, 0),IR(25025, 14)/* HostOnlyINTEL */,IR(0, 0),IR(199, 1),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {0,IR(0, 0),IR(22067, 14)/* UncachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {1,IR(0, 0),IR(25039, 18)/* WriteThroughINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {2,IR(0, 0),IR(25057, 15)/* WriteBackINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {3,IR(0, 0),IR(22093, 15)/* StreamingINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {0,IR(0, 0),IR(14223, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {1,IR(10, 1),IR(25072, 11)/* TensorView */,IR(0, 0),IR(200, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {2,IR(10, 1),IR(25083, 11)/* DecodeFunc */,IR(0, 0),IR(201, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {0,IR(0, 0),IR(25094, 10)/* Undefined */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {1,IR(0, 0),IR(15470, 9)/* Constant */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {2,IR(0, 0),IR(23914, 12)/* ClampToEdge */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {3,IR(0, 0),IR(23932, 7)/* Repeat */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {4,IR(0, 0),IR(23939, 15)/* RepeatMirrored */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {0,IR(0, 0),IR(25104, 8)/* NoneARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {1,IR(0, 0),IR(25112, 15)/* NontemporalARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {2,IR(10, 1),IR(25127, 20)/* OutOfBoundsValueARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {4,IR(10, 1),IR(25147, 24)/* MakeElementAvailableARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {8,IR(10, 1),IR(25171, 22)/* MakeElementVisibleARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {16,IR(0, 0),IR(25193, 21)/* NonPrivateElementARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS +static const std::array kOperandsByValue{{ + {0,IR(0, 0),IR(5348, 9)/* ReadOnly */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {1,IR(0, 0),IR(5364, 10)/* WriteOnly */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {2,IR(0, 0),IR(5374, 10)/* ReadWrite */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {0,IR(0, 0),IR(5384, 8)/* Logical */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL + {1,IR(0, 0),IR(5392, 11)/* Physical32 */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL + {2,IR(0, 0),IR(5413, 11)/* Physical64 */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL + {5348,IR(0, 0),IR(5424, 24)/* PhysicalStorageBuffer64 */,IR(0, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_ADDRESSING_MODEL + {0,IR(0, 0),IR(5506, 9)/* Position */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {1,IR(0, 0),IR(5522, 10)/* PointSize */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {3,IR(0, 0),IR(5532, 13)/* ClipDistance */,IR(0, 0),IR(4, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4,IR(0, 0),IR(5545, 13)/* CullDistance */,IR(0, 0),IR(5, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5,IR(0, 0),IR(5558, 9)/* VertexId */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {6,IR(0, 0),IR(5567, 11)/* InstanceId */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {7,IR(0, 0),IR(5578, 12)/* PrimitiveId */,IR(0, 0),IR(6, 6),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {8,IR(0, 0),IR(5668, 13)/* InvocationId */,IR(0, 0),IR(12, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {9,IR(0, 0),IR(5681, 6)/* Layer */,IR(0, 0),IR(14, 5),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {10,IR(0, 0),IR(5727, 14)/* ViewportIndex */,IR(0, 0),IR(19, 5),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {11,IR(0, 0),IR(5775, 15)/* TessLevelOuter */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {12,IR(0, 0),IR(5790, 15)/* TessLevelInner */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {13,IR(0, 0),IR(5805, 10)/* TessCoord */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {14,IR(0, 0),IR(5815, 14)/* PatchVertices */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {15,IR(0, 0),IR(5829, 10)/* FragCoord */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {16,IR(0, 0),IR(5839, 11)/* PointCoord */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {17,IR(0, 0),IR(5850, 12)/* FrontFacing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {18,IR(0, 0),IR(5862, 9)/* SampleId */,IR(0, 0),IR(25, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {19,IR(0, 0),IR(5889, 15)/* SamplePosition */,IR(0, 0),IR(25, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {20,IR(0, 0),IR(5904, 11)/* SampleMask */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {22,IR(0, 0),IR(5915, 10)/* FragDepth */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {23,IR(0, 0),IR(5925, 17)/* HelperInvocation */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {24,IR(0, 0),IR(5942, 14)/* NumWorkgroups */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {25,IR(0, 0),IR(5956, 14)/* WorkgroupSize */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {26,IR(0, 0),IR(5970, 12)/* WorkgroupId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {27,IR(0, 0),IR(5982, 18)/* LocalInvocationId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {28,IR(0, 0),IR(6000, 19)/* GlobalInvocationId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {29,IR(0, 0),IR(6019, 21)/* LocalInvocationIndex */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {30,IR(0, 0),IR(6040, 8)/* WorkDim */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {31,IR(0, 0),IR(6048, 11)/* GlobalSize */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {32,IR(0, 0),IR(6059, 22)/* EnqueuedWorkgroupSize */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {33,IR(0, 0),IR(6081, 13)/* GlobalOffset */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {34,IR(0, 0),IR(6094, 15)/* GlobalLinearId */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {36,IR(0, 0),IR(6109, 13)/* SubgroupSize */,IR(0, 0),IR(26, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {37,IR(0, 0),IR(6156, 16)/* SubgroupMaxSize */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {38,IR(0, 0),IR(6172, 13)/* NumSubgroups */,IR(0, 0),IR(29, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {39,IR(0, 0),IR(6185, 21)/* NumEnqueuedSubgroups */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {40,IR(0, 0),IR(6206, 11)/* SubgroupId */,IR(0, 0),IR(29, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {41,IR(0, 0),IR(6217, 26)/* SubgroupLocalInvocationId */,IR(0, 0),IR(26, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {42,IR(0, 0),IR(6243, 12)/* VertexIndex */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {43,IR(0, 0),IR(6255, 14)/* InstanceIndex */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4160,IR(0, 0),IR(6269, 10)/* CoreIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4161,IR(0, 0),IR(6295, 13)/* CoreCountARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4162,IR(0, 0),IR(6308, 13)/* CoreMaxIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4163,IR(0, 0),IR(6321, 10)/* WarpIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4164,IR(0, 0),IR(6331, 13)/* WarpMaxIDARM */,IR(0, 0),IR(31, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4416,IR(0, 0),IR(6344, 15)/* SubgroupEqMask */,IR(1, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4417,IR(0, 0),IR(6399, 15)/* SubgroupGeMask */,IR(2, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4418,IR(0, 0),IR(6432, 15)/* SubgroupGtMask */,IR(3, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4419,IR(0, 0),IR(6465, 15)/* SubgroupLeMask */,IR(4, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4420,IR(0, 0),IR(6498, 15)/* SubgroupLtMask */,IR(5, 1),IR(32, 2),IR(2, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4424,IR(0, 0),IR(6531, 11)/* BaseVertex */,IR(0, 0),IR(34, 1),IR(3, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4425,IR(0, 0),IR(6557, 13)/* BaseInstance */,IR(0, 0),IR(34, 1),IR(3, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4426,IR(0, 0),IR(6570, 10)/* DrawIndex */,IR(0, 0),IR(35, 3),IR(4, 3),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4432,IR(0, 0),IR(6580, 24)/* PrimitiveShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4438,IR(0, 0),IR(6627, 12)/* DeviceIndex */,IR(0, 0),IR(39, 1),IR(8, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4440,IR(0, 0),IR(6651, 10)/* ViewIndex */,IR(0, 0),IR(40, 1),IR(9, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4444,IR(0, 0),IR(6671, 15)/* ShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4492,IR(0, 0),IR(6686, 15)/* TileOffsetQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4493,IR(0, 0),IR(6717, 18)/* TileDimensionQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4494,IR(0, 0),IR(6735, 18)/* TileApronSizeQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4992,IR(0, 0),IR(6753, 20)/* BaryCoordNoPerspAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4993,IR(0, 0),IR(6773, 28)/* BaryCoordNoPerspCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4994,IR(0, 0),IR(6801, 26)/* BaryCoordNoPerspSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4995,IR(0, 0),IR(6827, 19)/* BaryCoordSmoothAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4996,IR(0, 0),IR(6846, 27)/* BaryCoordSmoothCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4997,IR(0, 0),IR(6873, 25)/* BaryCoordSmoothSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4998,IR(0, 0),IR(6898, 22)/* BaryCoordPullModelAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5014,IR(0, 0),IR(6920, 18)/* FragStencilRefEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5021,IR(0, 0),IR(6955, 29)/* RemainingRecursionLevelsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5073,IR(0, 0),IR(7002, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5253,IR(0, 0),IR(7018, 15)/* ViewportMaskNV */,IR(0, 0),IR(44, 2),IR(12, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5257,IR(0, 0),IR(7054, 20)/* SecondaryPositionNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5258,IR(0, 0),IR(7093, 24)/* SecondaryViewportMaskNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5261,IR(0, 0),IR(7117, 18)/* PositionPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5262,IR(0, 0),IR(7155, 22)/* ViewportMaskPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5264,IR(0, 0),IR(7177, 16)/* FullyCoveredEXT */,IR(0, 0),IR(49, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5274,IR(0, 0),IR(7217, 12)/* TaskCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5275,IR(0, 0),IR(7229, 17)/* PrimitiveCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5276,IR(0, 0),IR(7246, 19)/* PrimitiveIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5277,IR(0, 0),IR(7265, 22)/* ClipDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5278,IR(0, 0),IR(7287, 22)/* CullDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5279,IR(0, 0),IR(7309, 15)/* LayerPerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5280,IR(0, 0),IR(7324, 16)/* MeshViewCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5281,IR(0, 0),IR(7340, 18)/* MeshViewIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5286,IR(0, 0),IR(7358, 13)/* BaryCoordKHR */,IR(6, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5287,IR(0, 0),IR(7406, 20)/* BaryCoordNoPerspKHR */,IR(7, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5292,IR(0, 0),IR(7445, 12)/* FragSizeEXT */,IR(8, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5293,IR(0, 0),IR(7491, 23)/* FragInvocationCountEXT */,IR(9, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5294,IR(0, 0),IR(7536, 25)/* PrimitivePointIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5295,IR(0, 0),IR(7561, 24)/* PrimitiveLineIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5296,IR(0, 0),IR(7585, 28)/* PrimitiveTriangleIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5299,IR(0, 0),IR(7613, 17)/* CullPrimitiveEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5319,IR(0, 0),IR(7630, 12)/* LaunchIdKHR */,IR(10, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5320,IR(0, 0),IR(7653, 14)/* LaunchSizeKHR */,IR(11, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5321,IR(0, 0),IR(7680, 18)/* WorldRayOriginKHR */,IR(12, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5322,IR(0, 0),IR(7715, 21)/* WorldRayDirectionKHR */,IR(13, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5323,IR(0, 0),IR(7756, 19)/* ObjectRayOriginKHR */,IR(14, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5324,IR(0, 0),IR(7793, 22)/* ObjectRayDirectionKHR */,IR(15, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5325,IR(0, 0),IR(7836, 11)/* RayTminKHR */,IR(16, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5326,IR(0, 0),IR(7857, 11)/* RayTmaxKHR */,IR(17, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5327,IR(0, 0),IR(7878, 23)/* InstanceCustomIndexKHR */,IR(18, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5330,IR(0, 0),IR(7923, 17)/* ObjectToWorldKHR */,IR(19, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5331,IR(0, 0),IR(7956, 17)/* WorldToObjectKHR */,IR(20, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5332,IR(0, 0),IR(7989, 7)/* HitTNV */,IR(0, 0),IR(56, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5333,IR(0, 0),IR(7996, 11)/* HitKindKHR */,IR(21, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5334,IR(0, 0),IR(8017, 17)/* CurrentRayTimeNV */,IR(0, 0),IR(57, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5335,IR(0, 0),IR(8057, 30)/* HitTriangleVertexPositionsKHR */,IR(0, 0),IR(58, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5337,IR(0, 0),IR(8114, 34)/* HitMicroTriangleVertexPositionsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5344,IR(0, 0),IR(8181, 37)/* HitMicroTriangleVertexBarycentricsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5351,IR(0, 0),IR(8218, 20)/* IncomingRayFlagsKHR */,IR(22, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5352,IR(0, 0),IR(8257, 20)/* RayGeometryIndexKHR */,IR(0, 0),IR(60, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5359,IR(0, 0),IR(8277, 14)/* HitIsSphereNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5360,IR(0, 0),IR(8319, 11)/* HitIsLSSNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5361,IR(0, 0),IR(8369, 20)/* HitSpherePositionNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5374,IR(0, 0),IR(8389, 13)/* WarpsPerSMNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5375,IR(0, 0),IR(8421, 10)/* SMCountNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5376,IR(0, 0),IR(8431, 9)/* WarpIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5377,IR(0, 0),IR(8440, 7)/* SMIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5396,IR(0, 0),IR(8447, 18)/* HitLSSPositionsNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5405,IR(0, 0),IR(8465, 34)/* HitKindFrontFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5406,IR(0, 0),IR(8499, 33)/* HitKindBackFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5420,IR(0, 0),IR(8532, 18)/* HitSphereRadiusNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5421,IR(0, 0),IR(8550, 14)/* HitLSSRadiiNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5436,IR(0, 0),IR(8564, 12)/* ClusterIDNV */,IR(0, 0),IR(64, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {6021,IR(0, 0),IR(8617, 12)/* CullMaskKHR */,IR(0, 0),IR(65, 1),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {0,IR(0, 0),IR(8644, 7)/* Matrix */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {1,IR(0, 0),IR(5515, 7)/* Shader */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {2,IR(0, 0),IR(5590, 9)/* Geometry */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {3,IR(0, 0),IR(5599, 13)/* Tessellation */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4,IR(0, 0),IR(5403, 10)/* Addresses */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5,IR(0, 0),IR(8651, 8)/* Linkage */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6,IR(0, 0),IR(5357, 7)/* Kernel */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {7,IR(0, 0),IR(8659, 9)/* Vector16 */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {8,IR(0, 0),IR(8668, 14)/* Float16Buffer */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {9,IR(0, 0),IR(8682, 8)/* Float16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {10,IR(0, 0),IR(8690, 8)/* Float64 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {11,IR(0, 0),IR(8698, 6)/* Int64 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {12,IR(0, 0),IR(8704, 13)/* Int64Atomics */,IR(0, 0),IR(67, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {13,IR(0, 0),IR(8717, 11)/* ImageBasic */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {14,IR(0, 0),IR(8728, 15)/* ImageReadWrite */,IR(0, 0),IR(68, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {15,IR(0, 0),IR(8743, 12)/* ImageMipmap */,IR(0, 0),IR(68, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {17,IR(0, 0),IR(8755, 6)/* Pipes */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {18,IR(0, 0),IR(8761, 7)/* Groups */,IR(0, 0),IR(1, 0),IR(33, 1),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {19,IR(0, 0),IR(8768, 14)/* DeviceEnqueue */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {20,IR(0, 0),IR(8782, 15)/* LiteralSampler */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {21,IR(0, 0),IR(8797, 14)/* AtomicStorage */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {22,IR(0, 0),IR(8811, 6)/* Int16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {23,IR(0, 0),IR(8817, 22)/* TessellationPointSize */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {24,IR(0, 0),IR(8839, 18)/* GeometryPointSize */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {25,IR(0, 0),IR(8857, 20)/* ImageGatherExtended */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {27,IR(0, 0),IR(8877, 24)/* StorageImageMultisample */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {28,IR(0, 0),IR(8901, 34)/* UniformBufferArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {29,IR(0, 0),IR(8935, 33)/* SampledImageArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {30,IR(0, 0),IR(8968, 34)/* StorageBufferArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {31,IR(0, 0),IR(9002, 33)/* StorageImageArrayDynamicIndexing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {32,IR(0, 0),IR(5532, 13)/* ClipDistance */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {33,IR(0, 0),IR(5545, 13)/* CullDistance */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {34,IR(0, 0),IR(9035, 15)/* ImageCubeArray */,IR(0, 0),IR(70, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {35,IR(0, 0),IR(5871, 18)/* SampleRateShading */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {36,IR(0, 0),IR(9067, 10)/* ImageRect */,IR(0, 0),IR(71, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {37,IR(0, 0),IR(9077, 12)/* SampledRect */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {38,IR(0, 0),IR(9089, 15)/* GenericPointer */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {39,IR(0, 0),IR(9104, 5)/* Int8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {40,IR(0, 0),IR(9109, 16)/* InputAttachment */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {41,IR(0, 0),IR(9125, 16)/* SparseResidency */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {42,IR(0, 0),IR(9141, 7)/* MinLod */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {43,IR(0, 0),IR(9148, 10)/* Sampled1D */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {44,IR(0, 0),IR(9158, 8)/* Image1D */,IR(0, 0),IR(72, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {45,IR(0, 0),IR(9050, 17)/* SampledCubeArray */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {46,IR(0, 0),IR(9166, 14)/* SampledBuffer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {47,IR(0, 0),IR(9180, 12)/* ImageBuffer */,IR(0, 0),IR(73, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {48,IR(0, 0),IR(9192, 13)/* ImageMSArray */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {49,IR(0, 0),IR(9205, 28)/* StorageImageExtendedFormats */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {50,IR(0, 0),IR(9233, 11)/* ImageQuery */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {51,IR(0, 0),IR(9244, 18)/* DerivativeControl */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {52,IR(0, 0),IR(9262, 22)/* InterpolationFunction */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {53,IR(0, 0),IR(9284, 18)/* TransformFeedback */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {54,IR(0, 0),IR(9302, 16)/* GeometryStreams */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {55,IR(0, 0),IR(9318, 30)/* StorageImageReadWithoutFormat */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {56,IR(0, 0),IR(9348, 31)/* StorageImageWriteWithoutFormat */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {57,IR(0, 0),IR(5741, 14)/* MultiViewport */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {58,IR(0, 0),IR(9379, 17)/* SubgroupDispatch */,IR(0, 0),IR(74, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {59,IR(0, 0),IR(9396, 13)/* NamedBarrier */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {60,IR(0, 0),IR(9409, 12)/* PipeStorage */,IR(0, 0),IR(75, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {61,IR(0, 0),IR(6122, 16)/* GroupNonUniform */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {62,IR(0, 0),IR(9421, 20)/* GroupNonUniformVote */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {63,IR(0, 0),IR(9441, 26)/* GroupNonUniformArithmetic */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {64,IR(0, 0),IR(6377, 22)/* GroupNonUniformBallot */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {65,IR(0, 0),IR(9467, 23)/* GroupNonUniformShuffle */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {66,IR(0, 0),IR(9490, 31)/* GroupNonUniformShuffleRelative */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {67,IR(0, 0),IR(9521, 25)/* GroupNonUniformClustered */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {68,IR(0, 0),IR(9546, 20)/* GroupNonUniformQuad */,IR(0, 0),IR(76, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {69,IR(0, 0),IR(5687, 12)/* ShaderLayer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {70,IR(0, 0),IR(5755, 20)/* ShaderViewportIndex */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {71,IR(0, 0),IR(9566, 18)/* UniformDecoration */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4165,IR(0, 0),IR(6279, 16)/* CoreBuiltinsARM */,IR(0, 0),IR(1, 0),IR(34, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4166,IR(0, 0),IR(9584, 28)/* TileImageColorReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4167,IR(0, 0),IR(9612, 28)/* TileImageDepthReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4168,IR(0, 0),IR(9640, 30)/* TileImageStencilReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4174,IR(0, 0),IR(9670, 11)/* TensorsARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4175,IR(0, 0),IR(9681, 37)/* StorageTensorArrayDynamicIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4176,IR(0, 0),IR(9718, 40)/* StorageTensorArrayNonUniformIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4191,IR(0, 0),IR(9758, 9)/* GraphARM */,IR(0, 0),IR(1, 0),IR(37, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4201,IR(0, 0),IR(9767, 28)/* CooperativeMatrixLayoutsARM */,IR(0, 0),IR(1, 0),IR(38, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4212,IR(0, 0),IR(9795, 10)/* Float8EXT */,IR(0, 0),IR(1, 0),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4213,IR(0, 0),IR(9805, 27)/* Float8CooperativeMatrixEXT */,IR(0, 0),IR(77, 2),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4422,IR(0, 0),IR(6604, 23)/* FragmentShadingRateKHR */,IR(0, 0),IR(3, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4423,IR(0, 0),IR(6138, 18)/* SubgroupBallotKHR */,IR(0, 0),IR(1, 0),IR(2, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4427,IR(0, 0),IR(6542, 15)/* DrawParameters */,IR(0, 0),IR(3, 1),IR(3, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4428,IR(0, 0),IR(9853, 33)/* WorkgroupMemoryExplicitLayoutKHR */,IR(0, 0),IR(3, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4429,IR(0, 0),IR(9886, 43)/* WorkgroupMemoryExplicitLayout8BitAccessKHR */,IR(0, 0),IR(79, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4430,IR(0, 0),IR(9929, 44)/* WorkgroupMemoryExplicitLayout16BitAccessKHR */,IR(0, 0),IR(79, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4431,IR(0, 0),IR(9973, 16)/* SubgroupVoteKHR */,IR(0, 0),IR(1, 0),IR(41, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4433,IR(0, 0),IR(9989, 25)/* StorageBuffer16BitAccess */,IR(23, 1),IR(1, 0),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4434,IR(0, 0),IR(10042, 35)/* UniformAndStorageBuffer16BitAccess */,IR(24, 1),IR(80, 1),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4435,IR(0, 0),IR(10094, 22)/* StoragePushConstant16 */,IR(0, 0),IR(1, 0),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4436,IR(0, 0),IR(10116, 21)/* StorageInputOutput16 */,IR(0, 0),IR(1, 0),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4437,IR(0, 0),IR(6639, 12)/* DeviceGroup */,IR(0, 0),IR(1, 0),IR(8, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4439,IR(0, 0),IR(6661, 10)/* MultiView */,IR(0, 0),IR(3, 1),IR(9, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4441,IR(0, 0),IR(10137, 30)/* VariablePointersStorageBuffer */,IR(0, 0),IR(3, 1),IR(43, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4442,IR(0, 0),IR(10167, 17)/* VariablePointers */,IR(0, 0),IR(81, 1),IR(43, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4445,IR(0, 0),IR(10184, 17)/* AtomicStorageOps */,IR(0, 0),IR(82, 1),IR(44, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4447,IR(0, 0),IR(10201, 28)/* SampleMaskPostDepthCoverage */,IR(0, 0),IR(1, 0),IR(45, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4448,IR(0, 0),IR(10229, 24)/* StorageBuffer8BitAccess */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4449,IR(0, 0),IR(10253, 34)/* UniformAndStorageBuffer8BitAccess */,IR(0, 0),IR(83, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4450,IR(0, 0),IR(10287, 21)/* StoragePushConstant8 */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4464,IR(0, 0),IR(10308, 15)/* DenormPreserve */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4465,IR(0, 0),IR(10323, 18)/* DenormFlushToZero */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4466,IR(0, 0),IR(10341, 25)/* SignedZeroInfNanPreserve */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4467,IR(0, 0),IR(10366, 16)/* RoundingModeRTE */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4468,IR(0, 0),IR(10382, 16)/* RoundingModeRTZ */,IR(0, 0),IR(1, 0),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4471,IR(0, 0),IR(10398, 23)/* RayQueryProvisionalKHR */,IR(0, 0),IR(3, 1),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4472,IR(0, 0),IR(10421, 12)/* RayQueryKHR */,IR(0, 0),IR(3, 1),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4473,IR(0, 0),IR(10433, 19)/* UntypedPointersKHR */,IR(0, 0),IR(1, 0),IR(49, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4478,IR(0, 0),IR(10452, 32)/* RayTraversalPrimitiveCullingKHR */,IR(0, 0),IR(84, 2),IR(50, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4479,IR(0, 0),IR(5625, 14)/* RayTracingKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4484,IR(0, 0),IR(10484, 26)/* TextureSampleWeightedQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4485,IR(0, 0),IR(10510, 21)/* TextureBoxFilterQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4486,IR(0, 0),IR(10531, 22)/* TextureBlockMatchQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4495,IR(0, 0),IR(6701, 16)/* TileShadingQCOM */,IR(0, 0),IR(3, 1),IR(53, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4496,IR(0, 0),IR(10553, 32)/* CooperativeMatrixConversionQCOM */,IR(0, 0),IR(86, 1),IR(54, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4498,IR(0, 0),IR(10585, 23)/* TextureBlockMatch2QCOM */,IR(0, 0),IR(1, 0),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5008,IR(0, 0),IR(10608, 16)/* Float16ImageAMD */,IR(0, 0),IR(3, 1),IR(56, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5009,IR(0, 0),IR(10624, 22)/* ImageGatherBiasLodAMD */,IR(0, 0),IR(3, 1),IR(57, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5010,IR(0, 0),IR(10646, 16)/* FragmentMaskAMD */,IR(0, 0),IR(3, 1),IR(58, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5013,IR(0, 0),IR(6938, 17)/* StencilExportEXT */,IR(0, 0),IR(3, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5015,IR(0, 0),IR(10662, 21)/* ImageReadWriteLodAMD */,IR(0, 0),IR(3, 1),IR(59, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5016,IR(0, 0),IR(10683, 14)/* Int64ImageEXT */,IR(0, 0),IR(3, 1),IR(60, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5055,IR(0, 0),IR(10697, 15)/* ShaderClockKHR */,IR(0, 0),IR(1, 0),IR(61, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5067,IR(0, 0),IR(6984, 18)/* ShaderEnqueueAMDX */,IR(0, 0),IR(3, 1),IR(62, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5087,IR(0, 0),IR(10712, 15)/* QuadControlKHR */,IR(0, 0),IR(1, 0),IR(63, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5112,IR(0, 0),IR(10727, 14)/* Int4TypeINTEL */,IR(0, 0),IR(1, 0),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5114,IR(0, 0),IR(10741, 27)/* Int4CooperativeMatrixINTEL */,IR(0, 0),IR(87, 2),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5116,IR(0, 0),IR(10768, 16)/* BFloat16TypeKHR */,IR(0, 0),IR(1, 0),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5117,IR(0, 0),IR(10784, 22)/* BFloat16DotProductKHR */,IR(0, 0),IR(89, 1),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5118,IR(0, 0),IR(10806, 29)/* BFloat16CooperativeMatrixKHR */,IR(0, 0),IR(90, 2),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5249,IR(0, 0),IR(10835, 29)/* SampleMaskOverrideCoverageNV */,IR(0, 0),IR(25, 1),IR(66, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5251,IR(0, 0),IR(10864, 28)/* GeometryShaderPassthroughNV */,IR(0, 0),IR(69, 1),IR(67, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5254,IR(0, 0),IR(5699, 28)/* ShaderViewportIndexLayerEXT */,IR(25, 1),IR(92, 1),IR(68, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5255,IR(0, 0),IR(7033, 21)/* ShaderViewportMaskNV */,IR(0, 0),IR(93, 1),IR(70, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5259,IR(0, 0),IR(7074, 19)/* ShaderStereoViewNV */,IR(0, 0),IR(94, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5260,IR(0, 0),IR(7135, 20)/* PerViewAttributesNV */,IR(0, 0),IR(40, 1),IR(71, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5265,IR(0, 0),IR(7193, 24)/* FragmentFullyCoveredEXT */,IR(0, 0),IR(3, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5266,IR(0, 0),IR(5639, 14)/* MeshShadingNV */,IR(0, 0),IR(3, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5282,IR(0, 0),IR(10919, 17)/* ImageFootprintNV */,IR(0, 0),IR(1, 0),IR(72, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5283,IR(0, 0),IR(5653, 15)/* MeshShadingEXT */,IR(0, 0),IR(3, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5284,IR(0, 0),IR(7383, 23)/* FragmentBarycentricKHR */,IR(26, 1),IR(1, 0),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5288,IR(0, 0),IR(10958, 31)/* ComputeDerivativeGroupQuadsKHR */,IR(27, 1),IR(3, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5291,IR(0, 0),IR(7472, 19)/* FragmentDensityEXT */,IR(28, 1),IR(3, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5297,IR(0, 0),IR(11033, 29)/* GroupNonUniformPartitionedNV */,IR(0, 0),IR(1, 0),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5301,IR(0, 0),IR(11062, 17)/* ShaderNonUniform */,IR(29, 1),IR(3, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5302,IR(0, 0),IR(11099, 23)/* RuntimeDescriptorArray */,IR(30, 1),IR(3, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5303,IR(0, 0),IR(11148, 36)/* InputAttachmentArrayDynamicIndexing */,IR(31, 1),IR(95, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5304,IR(0, 0),IR(11223, 39)/* UniformTexelBufferArrayDynamicIndexing */,IR(32, 1),IR(73, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5305,IR(0, 0),IR(11304, 39)/* StorageTexelBufferArrayDynamicIndexing */,IR(33, 1),IR(96, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5306,IR(0, 0),IR(11385, 37)/* UniformBufferArrayNonUniformIndexing */,IR(34, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5307,IR(0, 0),IR(11462, 36)/* SampledImageArrayNonUniformIndexing */,IR(35, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5308,IR(0, 0),IR(11537, 37)/* StorageBufferArrayNonUniformIndexing */,IR(36, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5309,IR(0, 0),IR(11614, 36)/* StorageImageArrayNonUniformIndexing */,IR(37, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5310,IR(0, 0),IR(11689, 39)/* InputAttachmentArrayNonUniformIndexing */,IR(38, 1),IR(98, 2),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5311,IR(0, 0),IR(11770, 42)/* UniformTexelBufferArrayNonUniformIndexing */,IR(39, 1),IR(100, 2),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5312,IR(0, 0),IR(11857, 42)/* StorageTexelBufferArrayNonUniformIndexing */,IR(40, 1),IR(102, 2),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5336,IR(0, 0),IR(8087, 27)/* RayTracingPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5340,IR(0, 0),IR(5612, 13)/* RayTracingNV */,IR(0, 0),IR(3, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5341,IR(0, 0),IR(8034, 23)/* RayTracingMotionBlurNV */,IR(0, 0),IR(3, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5345,IR(0, 0),IR(11944, 18)/* VulkanMemoryModel */,IR(41, 1),IR(1, 0),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5346,IR(0, 0),IR(11983, 29)/* VulkanMemoryModelDeviceScope */,IR(42, 1),IR(1, 0),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5347,IR(0, 0),IR(5475, 31)/* PhysicalStorageBufferAddresses */,IR(43, 1),IR(3, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5350,IR(0, 0),IR(12078, 32)/* ComputeDerivativeGroupLinearKHR */,IR(44, 1),IR(3, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5353,IR(0, 0),IR(12141, 25)/* RayTracingProvisionalKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5357,IR(0, 0),IR(12166, 20)/* CooperativeMatrixNV */,IR(0, 0),IR(3, 1),IR(79, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5363,IR(0, 0),IR(12186, 33)/* FragmentShaderSampleInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5372,IR(0, 0),IR(12219, 38)/* FragmentShaderShadingRateInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5373,IR(0, 0),IR(8402, 19)/* ShaderSMBuiltinsNV */,IR(0, 0),IR(3, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5378,IR(0, 0),IR(12257, 32)/* FragmentShaderPixelInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5379,IR(0, 0),IR(12289, 25)/* DemoteToHelperInvocation */,IR(45, 1),IR(3, 1),IR(81, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5380,IR(0, 0),IR(12342, 23)/* DisplacementMicromapNV */,IR(0, 0),IR(3, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5381,IR(0, 0),IR(12365, 29)/* RayTracingOpacityMicromapEXT */,IR(0, 0),IR(3, 1),IR(83, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5383,IR(0, 0),IR(12394, 26)/* ShaderInvocationReorderNV */,IR(0, 0),IR(60, 1),IR(84, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5388,IR(0, 0),IR(12420, 27)/* ShaderInvocationReorderEXT */,IR(0, 0),IR(60, 1),IR(85, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5390,IR(0, 0),IR(12447, 18)/* BindlessTextureNV */,IR(0, 0),IR(1, 0),IR(86, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5391,IR(0, 0),IR(12465, 25)/* RayQueryPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5394,IR(0, 0),IR(12490, 20)/* CooperativeVectorNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5404,IR(0, 0),IR(12510, 22)/* AtomicFloat16VectorNV */,IR(0, 0),IR(1, 0),IR(88, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5409,IR(0, 0),IR(8148, 33)/* RayTracingDisplacementMicromapNV */,IR(0, 0),IR(60, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5414,IR(0, 0),IR(12532, 18)/* RawAccessChainsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5418,IR(0, 0),IR(8291, 28)/* RayTracingSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5419,IR(0, 0),IR(8330, 39)/* RayTracingLinearSweptSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5426,IR(0, 0),IR(12550, 23)/* Shader64BitIndexingEXT */,IR(0, 0),IR(1, 0),IR(90, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5430,IR(0, 0),IR(12573, 30)/* CooperativeMatrixReductionsNV */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5431,IR(0, 0),IR(12603, 31)/* CooperativeMatrixConversionsNV */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5432,IR(0, 0),IR(12634, 40)/* CooperativeMatrixPerElementOperationsNV */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5433,IR(0, 0),IR(12674, 36)/* CooperativeMatrixTensorAddressingNV */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5434,IR(0, 0),IR(12710, 30)/* CooperativeMatrixBlockLoadsNV */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5435,IR(0, 0),IR(12740, 28)/* CooperativeVectorTrainingNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5437,IR(0, 0),IR(8576, 41)/* RayTracingClusterAccelerationStructureNV */,IR(0, 0),IR(60, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5439,IR(0, 0),IR(12768, 19)/* TensorAddressingNV */,IR(0, 0),IR(1, 0),IR(92, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5568,IR(0, 0),IR(12787, 21)/* SubgroupShuffleINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5569,IR(0, 0),IR(12808, 27)/* SubgroupBufferBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5570,IR(0, 0),IR(12835, 26)/* SubgroupImageBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5579,IR(0, 0),IR(12861, 31)/* SubgroupImageMediaBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(94, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5582,IR(0, 0),IR(12892, 21)/* RoundToInfinityINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5583,IR(0, 0),IR(12913, 23)/* FloatingPointModeINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5584,IR(0, 0),IR(12936, 23)/* IntegerFunctions2INTEL */,IR(0, 0),IR(1, 0),IR(96, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5603,IR(0, 0),IR(12959, 22)/* FunctionPointersINTEL */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5604,IR(0, 0),IR(12981, 24)/* IndirectReferencesINTEL */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5606,IR(0, 0),IR(13005, 9)/* AsmINTEL */,IR(0, 0),IR(1, 0),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5612,IR(0, 0),IR(13014, 23)/* AtomicFloat32MinMaxEXT */,IR(0, 0),IR(1, 0),IR(99, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5613,IR(0, 0),IR(13037, 23)/* AtomicFloat64MinMaxEXT */,IR(0, 0),IR(1, 0),IR(99, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5616,IR(0, 0),IR(13060, 23)/* AtomicFloat16MinMaxEXT */,IR(0, 0),IR(1, 0),IR(99, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5617,IR(0, 0),IR(13083, 19)/* VectorComputeINTEL */,IR(0, 0),IR(104, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5619,IR(0, 0),IR(13102, 15)/* VectorAnyINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5629,IR(0, 0),IR(13117, 16)/* ExpectAssumeKHR */,IR(0, 0),IR(1, 0),IR(101, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5696,IR(0, 0),IR(13133, 33)/* SubgroupAvcMotionEstimationINTEL */,IR(0, 0),IR(1, 0),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5697,IR(0, 0),IR(13166, 38)/* SubgroupAvcMotionEstimationIntraINTEL */,IR(0, 0),IR(1, 0),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5698,IR(0, 0),IR(13204, 39)/* SubgroupAvcMotionEstimationChromaINTEL */,IR(0, 0),IR(1, 0),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5817,IR(0, 0),IR(13243, 25)/* VariableLengthArrayINTEL */,IR(0, 0),IR(1, 0),IR(103, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5821,IR(0, 0),IR(13268, 26)/* FunctionFloatControlINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5824,IR(0, 0),IR(13294, 27)/* FPGAMemoryAttributesALTERA */,IR(46, 1),IR(1, 0),IR(104, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5837,IR(0, 0),IR(13347, 20)/* FPFastMathModeINTEL */,IR(0, 0),IR(0, 1),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5844,IR(0, 0),IR(13367, 33)/* ArbitraryPrecisionIntegersALTERA */,IR(47, 1),IR(1, 0),IR(107, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5845,IR(0, 0),IR(13432, 38)/* ArbitraryPrecisionFloatingPointALTERA */,IR(48, 1),IR(1, 0),IR(109, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5886,IR(0, 0),IR(13507, 30)/* UnstructuredLoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(111, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5888,IR(0, 0),IR(13537, 23)/* FPGALoopControlsALTERA */,IR(49, 1),IR(1, 0),IR(112, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5892,IR(0, 0),IR(13582, 22)/* KernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5897,IR(0, 0),IR(13604, 26)/* FPGAKernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5898,IR(0, 0),IR(13630, 25)/* FPGAMemoryAccessesALTERA */,IR(50, 1),IR(1, 0),IR(115, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5904,IR(0, 0),IR(13679, 28)/* FPGAClusterAttributesALTERA */,IR(51, 1),IR(1, 0),IR(117, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5906,IR(0, 0),IR(13734, 15)/* LoopFuseALTERA */,IR(52, 1),IR(1, 0),IR(119, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5908,IR(0, 0),IR(13763, 21)/* FPGADSPControlALTERA */,IR(53, 1),IR(1, 0),IR(121, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5910,IR(0, 0),IR(13804, 26)/* MemoryAccessAliasingINTEL */,IR(0, 0),IR(1, 0),IR(123, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5916,IR(0, 0),IR(13830, 41)/* FPGAInvocationPipeliningAttributesALTERA */,IR(54, 1),IR(1, 0),IR(124, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5920,IR(0, 0),IR(13911, 25)/* FPGABufferLocationALTERA */,IR(55, 1),IR(1, 0),IR(126, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5922,IR(0, 0),IR(13960, 35)/* ArbitraryPrecisionFixedPointALTERA */,IR(56, 1),IR(1, 0),IR(128, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5935,IR(0, 0),IR(14029, 24)/* USMStorageClassesALTERA */,IR(57, 1),IR(1, 0),IR(130, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5939,IR(0, 0),IR(14076, 30)/* RuntimeAlignedAttributeALTERA */,IR(58, 1),IR(1, 0),IR(132, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5943,IR(0, 0),IR(14135, 14)/* IOPipesALTERA */,IR(59, 1),IR(1, 0),IR(134, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5945,IR(0, 0),IR(14162, 20)/* BlockingPipesALTERA */,IR(60, 1),IR(1, 0),IR(136, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5948,IR(0, 0),IR(14201, 14)/* FPGARegALTERA */,IR(61, 1),IR(1, 0),IR(138, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6016,IR(0, 0),IR(14228, 19)/* DotProductInputAll */,IR(62, 1),IR(1, 0),IR(140, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6017,IR(0, 0),IR(14269, 22)/* DotProductInput4x8Bit */,IR(63, 1),IR(105, 1),IR(140, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6018,IR(0, 0),IR(14316, 28)/* DotProductInput4x8BitPacked */,IR(64, 1),IR(1, 0),IR(140, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6019,IR(0, 0),IR(14375, 11)/* DotProduct */,IR(65, 1),IR(1, 0),IR(140, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6020,IR(0, 0),IR(8629, 15)/* RayCullMaskKHR */,IR(0, 0),IR(1, 0),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6022,IR(0, 0),IR(9832, 21)/* CooperativeMatrixKHR */,IR(0, 0),IR(1, 0),IR(141, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6024,IR(0, 0),IR(14400, 24)/* ReplicatedCompositesEXT */,IR(0, 0),IR(1, 0),IR(142, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6025,IR(0, 0),IR(14424, 16)/* BitInstructions */,IR(0, 0),IR(1, 0),IR(143, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6026,IR(0, 0),IR(14440, 25)/* GroupNonUniformRotateKHR */,IR(0, 0),IR(76, 1),IR(144, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6029,IR(0, 0),IR(14465, 15)/* FloatControls2 */,IR(0, 0),IR(1, 0),IR(145, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6030,IR(0, 0),IR(14480, 7)/* FMAKHR */,IR(0, 0),IR(1, 0),IR(146, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6033,IR(0, 0),IR(14487, 20)/* AtomicFloat32AddEXT */,IR(0, 0),IR(1, 0),IR(147, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6034,IR(0, 0),IR(14507, 20)/* AtomicFloat64AddEXT */,IR(0, 0),IR(1, 0),IR(147, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6089,IR(0, 0),IR(14527, 20)/* LongCompositesINTEL */,IR(0, 0),IR(1, 0),IR(148, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6094,IR(0, 0),IR(14547, 11)/* OptNoneEXT */,IR(66, 1),IR(1, 0),IR(149, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6095,IR(0, 0),IR(14571, 20)/* AtomicFloat16AddEXT */,IR(0, 0),IR(1, 0),IR(151, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6114,IR(0, 0),IR(14591, 21)/* DebugInfoModuleINTEL */,IR(0, 0),IR(1, 0),IR(152, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6115,IR(0, 0),IR(14612, 24)/* BFloat16ConversionINTEL */,IR(0, 0),IR(1, 0),IR(153, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6141,IR(0, 0),IR(14636, 18)/* SplitBarrierINTEL */,IR(0, 0),IR(1, 0),IR(154, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6144,IR(0, 0),IR(14654, 19)/* ArithmeticFenceEXT */,IR(0, 0),IR(1, 0),IR(155, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6150,IR(0, 0),IR(14673, 30)/* FPGAClusterAttributesV2ALTERA */,IR(67, 1),IR(106, 1),IR(117, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6161,IR(0, 0),IR(14732, 28)/* FPGAKernelAttributesv2INTEL */,IR(0, 0),IR(107, 1),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6162,IR(0, 0),IR(14760, 19)/* TaskSequenceALTERA */,IR(68, 1),IR(1, 0),IR(156, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6169,IR(0, 0),IR(14797, 16)/* FPMaxErrorINTEL */,IR(0, 0),IR(1, 0),IR(158, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6171,IR(0, 0),IR(14813, 25)/* FPGALatencyControlALTERA */,IR(69, 1),IR(1, 0),IR(159, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6174,IR(0, 0),IR(14862, 29)/* FPGAArgumentInterfacesALTERA */,IR(70, 1),IR(1, 0),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6187,IR(0, 0),IR(14919, 30)/* GlobalVariableHostAccessINTEL */,IR(0, 0),IR(1, 0),IR(163, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6189,IR(0, 0),IR(14949, 36)/* GlobalVariableFPGADecorationsALTERA */,IR(71, 1),IR(1, 0),IR(164, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6220,IR(0, 0),IR(15020, 28)/* SubgroupBufferPrefetchINTEL */,IR(0, 0),IR(1, 0),IR(166, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6228,IR(0, 0),IR(15048, 23)/* Subgroup2DBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(167, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6229,IR(0, 0),IR(15071, 30)/* Subgroup2DBlockTransformINTEL */,IR(0, 0),IR(108, 1),IR(167, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6230,IR(0, 0),IR(15101, 30)/* Subgroup2DBlockTransposeINTEL */,IR(0, 0),IR(108, 1),IR(167, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6236,IR(0, 0),IR(15131, 38)/* SubgroupMatrixMultiplyAccumulateINTEL */,IR(0, 0),IR(1, 0),IR(168, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6241,IR(0, 0),IR(15169, 28)/* TernaryBitwiseFunctionINTEL */,IR(0, 0),IR(1, 0),IR(169, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6243,IR(0, 0),IR(15197, 32)/* UntypedVariableLengthArrayINTEL */,IR(0, 0),IR(109, 2),IR(103, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6245,IR(0, 0),IR(15229, 21)/* SpecConditionalINTEL */,IR(0, 0),IR(1, 0),IR(170, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6246,IR(0, 0),IR(15250, 22)/* FunctionVariantsINTEL */,IR(0, 0),IR(111, 1),IR(170, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6400,IR(0, 0),IR(15272, 26)/* GroupUniformArithmeticKHR */,IR(0, 0),IR(1, 0),IR(171, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6425,IR(0, 0),IR(15298, 27)/* TensorFloat32RoundingINTEL */,IR(0, 0),IR(1, 0),IR(172, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6427,IR(0, 0),IR(15325, 25)/* MaskedGatherScatterINTEL */,IR(0, 0),IR(1, 0),IR(173, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6441,IR(0, 0),IR(15350, 19)/* CacheControlsINTEL */,IR(0, 0),IR(1, 0),IR(174, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6460,IR(0, 0),IR(15369, 20)/* RegisterLimitsINTEL */,IR(0, 0),IR(1, 0),IR(175, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6528,IR(0, 0),IR(15389, 20)/* BindlessImagesINTEL */,IR(0, 0),IR(1, 0),IR(176, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {0,IR(0, 0),IR(15409, 12)/* Unspecified */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {1,IR(0, 0),IR(15421, 8)/* Address */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {2,IR(0, 0),IR(15429, 8)/* Boolean */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {3,IR(0, 0),IR(15437, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {4,IR(0, 0),IR(15443, 7)/* Signed */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {5,IR(0, 0),IR(15450, 11)/* SignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {6,IR(0, 0),IR(15461, 9)/* Unsigned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {7,IR(0, 0),IR(15470, 13)/* UnsignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {0,IR(0, 0),IR(15483, 6)/* Class */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {1,IR(0, 0),IR(15489, 10)/* Structure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {2,IR(0, 0),IR(15499, 6)/* Union */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {0,IR(0, 0),IR(15505, 15)/* ImportedModule */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY + {1,IR(0, 0),IR(15520, 20)/* ImportedDeclaration */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {1,IR(0, 0),IR(15545, 16)/* FlagIsProtected */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {2,IR(0, 0),IR(15561, 14)/* FlagIsPrivate */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {3,IR(0, 0),IR(15575, 13)/* FlagIsPublic */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {4,IR(0, 0),IR(15588, 12)/* FlagIsLocal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {8,IR(0, 0),IR(15600, 17)/* FlagIsDefinition */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {16,IR(0, 0),IR(15617, 12)/* FlagFwdDecl */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {32,IR(0, 0),IR(15629, 15)/* FlagArtificial */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {64,IR(0, 0),IR(15644, 13)/* FlagExplicit */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {128,IR(0, 0),IR(15657, 15)/* FlagPrototyped */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {256,IR(0, 0),IR(15672, 18)/* FlagObjectPointer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {512,IR(0, 0),IR(15690, 17)/* FlagStaticMember */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {1024,IR(0, 0),IR(15707, 21)/* FlagIndirectVariable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {2048,IR(0, 0),IR(15728, 20)/* FlagLValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {4096,IR(0, 0),IR(15748, 20)/* FlagRValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {8192,IR(0, 0),IR(15768, 16)/* FlagIsOptimized */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {16384,IR(0, 0),IR(15784, 16)/* FlagIsEnumClass */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {32768,IR(0, 0),IR(15800, 20)/* FlagTypePassByValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {65536,IR(0, 0),IR(15820, 24)/* FlagTypePassByReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {0,IR(0, 0),IR(15844, 6)/* Deref */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {1,IR(0, 0),IR(15850, 5)/* Plus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {2,IR(0, 0),IR(15855, 6)/* Minus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {3,IR(0, 1),IR(15894, 11)/* PlusUconst */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {4,IR(1, 2),IR(15905, 9)/* BitPiece */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {5,IR(0, 0),IR(15914, 5)/* Swap */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {6,IR(0, 0),IR(15919, 7)/* Xderef */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {7,IR(0, 0),IR(15926, 11)/* StackValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {8,IR(0, 1),IR(15937, 7)/* Constu */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {9,IR(1, 2),IR(15944, 9)/* Fragment */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {0,IR(0, 0),IR(15953, 10)/* ConstType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {1,IR(0, 0),IR(15963, 13)/* VolatileType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {2,IR(0, 0),IR(15976, 13)/* RestrictType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {3,IR(0, 0),IR(15989, 11)/* AtomicType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {0,IR(0, 0),IR(16000, 10)/* Float16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1,IR(0, 0),IR(16010, 10)/* Float32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {2,IR(0, 0),IR(16020, 10)/* Float64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {3,IR(0, 0),IR(16030, 13)/* SignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {4,IR(0, 0),IR(16043, 14)/* SignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {5,IR(0, 0),IR(16057, 14)/* SignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {6,IR(0, 0),IR(16071, 14)/* SignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {7,IR(0, 0),IR(16085, 15)/* UnsignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {8,IR(0, 0),IR(16100, 16)/* UnsignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {9,IR(0, 0),IR(16116, 16)/* UnsignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {10,IR(0, 0),IR(16132, 16)/* UnsignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491000,IR(0, 0),IR(16148, 19)/* SignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491001,IR(0, 0),IR(16167, 21)/* UnsignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491002,IR(0, 0),IR(16188, 12)/* FloatE4M3NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491003,IR(0, 0),IR(16200, 12)/* FloatE5M2NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {0,IR(0, 0),IR(16212, 12)/* RowMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {1,IR(0, 0),IR(16224, 15)/* ColumnMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {4202,IR(0, 0),IR(16239, 25)/* RowBlockedInterleavedARM */,IR(0, 0),IR(112, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {4203,IR(0, 0),IR(16264, 28)/* ColumnBlockedInterleavedARM */,IR(0, 0),IR(112, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {0,IR(0, 0),IR(16292, 8)/* NoneKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {1,IR(0, 0),IR(16300, 27)/* MatrixASignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {2,IR(0, 0),IR(16327, 27)/* MatrixBSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {4,IR(0, 0),IR(16354, 27)/* MatrixCSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {8,IR(0, 0),IR(16381, 32)/* MatrixResultSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {16,IR(0, 0),IR(16413, 26)/* SaturatingAccumulationKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {1,IR(0, 0),IR(16439, 4)/* Row */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {2,IR(0, 0),IR(16443, 7)/* Column */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {4,IR(0, 0),IR(16450, 4)/* 2x2 */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {0,IR(0, 0),IR(16454, 11)/* MatrixAKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {1,IR(0, 0),IR(16465, 11)/* MatrixBKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {2,IR(0, 0),IR(16476, 21)/* MatrixAccumulatorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {0,IR(0, 0),IR(16497, 11)/* RowMajorNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {1,IR(0, 0),IR(16508, 14)/* ColumnMajorNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {2,IR(0, 0),IR(16522, 21)/* InferencingOptimalNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {3,IR(0, 0),IR(16543, 18)/* TrainingOptimalNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {0,IR(0, 0),IR(15409, 12)/* Unspecified */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {1,IR(0, 0),IR(15421, 8)/* Address */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {2,IR(0, 0),IR(15429, 8)/* Boolean */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {4,IR(0, 0),IR(15437, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {5,IR(0, 0),IR(15443, 7)/* Signed */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {6,IR(0, 0),IR(15450, 11)/* SignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {7,IR(0, 0),IR(15461, 9)/* Unsigned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {8,IR(0, 0),IR(15470, 13)/* UnsignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {0,IR(0, 0),IR(15483, 6)/* Class */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {1,IR(0, 0),IR(15489, 10)/* Structure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {2,IR(0, 0),IR(15499, 6)/* Union */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {1,IR(0, 0),IR(15545, 16)/* FlagIsProtected */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {2,IR(0, 0),IR(15561, 14)/* FlagIsPrivate */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {3,IR(0, 0),IR(15575, 13)/* FlagIsPublic */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {4,IR(0, 0),IR(15588, 12)/* FlagIsLocal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {8,IR(0, 0),IR(15600, 17)/* FlagIsDefinition */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {16,IR(0, 0),IR(15617, 12)/* FlagFwdDecl */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {32,IR(0, 0),IR(15629, 15)/* FlagArtificial */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {64,IR(0, 0),IR(15644, 13)/* FlagExplicit */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {128,IR(0, 0),IR(15657, 15)/* FlagPrototyped */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {256,IR(0, 0),IR(15672, 18)/* FlagObjectPointer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {512,IR(0, 0),IR(15690, 17)/* FlagStaticMember */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {1024,IR(0, 0),IR(15707, 21)/* FlagIndirectVariable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {2048,IR(0, 0),IR(15728, 20)/* FlagLValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {4096,IR(0, 0),IR(15748, 20)/* FlagRValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {8192,IR(0, 0),IR(15768, 16)/* FlagIsOptimized */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {0,IR(0, 0),IR(15844, 6)/* Deref */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {1,IR(0, 0),IR(15850, 5)/* Plus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {2,IR(0, 0),IR(15855, 6)/* Minus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {3,IR(0, 1),IR(15894, 11)/* PlusUconst */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {4,IR(1, 2),IR(15905, 9)/* BitPiece */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {5,IR(0, 0),IR(15914, 5)/* Swap */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {6,IR(0, 0),IR(15919, 7)/* Xderef */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {7,IR(0, 0),IR(15926, 11)/* StackValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {8,IR(0, 1),IR(15937, 7)/* Constu */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_OPERATION + {0,IR(0, 0),IR(15953, 10)/* ConstType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {1,IR(0, 0),IR(15963, 13)/* VolatileType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {2,IR(0, 0),IR(15976, 13)/* RestrictType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {0,IR(0, 0),IR(16561, 17)/* RelaxedPrecision */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {1,IR(0, 1),IR(16578, 7)/* SpecId */,IR(0, 0),IR(113, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {2,IR(0, 0),IR(16585, 6)/* Block */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {3,IR(0, 0),IR(16591, 12)/* BufferBlock */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),SPV_SPIRV_VERSION_WORD(1,3)}, // SPV_OPERAND_TYPE_DECORATION + {4,IR(0, 0),IR(16603, 9)/* RowMajor */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5,IR(0, 0),IR(16612, 9)/* ColMajor */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6,IR(0, 1),IR(16621, 12)/* ArrayStride */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {7,IR(0, 1),IR(16633, 13)/* MatrixStride */,IR(0, 0),IR(66, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {8,IR(0, 0),IR(16646, 11)/* GLSLShared */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {9,IR(0, 0),IR(16657, 11)/* GLSLPacked */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {10,IR(0, 0),IR(16668, 8)/* CPacked */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {11,IR(3, 1),IR(16702, 8)/* BuiltIn */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {13,IR(0, 0),IR(16710, 14)/* NoPerspective */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {14,IR(0, 0),IR(16724, 5)/* Flat */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {15,IR(0, 0),IR(16729, 6)/* Patch */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {16,IR(0, 0),IR(16735, 9)/* Centroid */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {17,IR(0, 0),IR(16744, 7)/* Sample */,IR(0, 0),IR(25, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {18,IR(0, 0),IR(16751, 10)/* Invariant */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {19,IR(0, 0),IR(16761, 9)/* Restrict */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {20,IR(0, 0),IR(16770, 8)/* Aliased */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {21,IR(0, 0),IR(16778, 9)/* Volatile */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {22,IR(0, 0),IR(16787, 9)/* Constant */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {23,IR(0, 0),IR(16796, 9)/* Coherent */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {24,IR(0, 0),IR(16805, 12)/* NonWritable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {25,IR(0, 0),IR(16817, 12)/* NonReadable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {26,IR(0, 0),IR(16829, 8)/* Uniform */,IR(0, 0),IR(115, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {27,IR(4, 1),IR(16863, 10)/* UniformId */,IR(0, 0),IR(115, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {28,IR(0, 0),IR(16873, 20)/* SaturatedConversion */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {29,IR(0, 1),IR(16893, 7)/* Stream */,IR(0, 0),IR(117, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {30,IR(0, 1),IR(16900, 9)/* Location */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {31,IR(0, 1),IR(16909, 10)/* Component */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {32,IR(0, 1),IR(16919, 6)/* Index */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {33,IR(0, 1),IR(16925, 8)/* Binding */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {34,IR(0, 1),IR(16933, 14)/* DescriptorSet */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {35,IR(0, 1),IR(16947, 7)/* Offset */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {36,IR(0, 1),IR(16954, 10)/* XfbBuffer */,IR(0, 0),IR(118, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {37,IR(0, 1),IR(16964, 10)/* XfbStride */,IR(0, 0),IR(118, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {38,IR(5, 1),IR(17020, 14)/* FuncParamAttr */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {39,IR(6, 1),IR(17068, 15)/* FPRoundingMode */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {40,IR(7, 1),IR(17118, 15)/* FPFastMathMode */,IR(0, 0),IR(119, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {41,IR(8, 2),IR(17195, 18)/* LinkageAttributes */,IR(0, 0),IR(121, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {42,IR(0, 0),IR(17213, 14)/* NoContraction */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {43,IR(0, 1),IR(17227, 21)/* InputAttachmentIndex */,IR(0, 0),IR(95, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {44,IR(0, 1),IR(17248, 10)/* Alignment */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {45,IR(0, 1),IR(17258, 14)/* MaxByteOffset */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {46,IR(10, 1),IR(17292, 12)/* AlignmentId */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {47,IR(10, 1),IR(17304, 16)/* MaxByteOffsetId */,IR(0, 0),IR(1, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4216,IR(0, 0),IR(17320, 44)/* SaturatedToLargestFloat8NormalConversionEXT */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4469,IR(0, 0),IR(17364, 13)/* NoSignedWrap */,IR(0, 0),IR(1, 0),IR(177, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4470,IR(0, 0),IR(17377, 15)/* NoUnsignedWrap */,IR(0, 0),IR(1, 0),IR(177, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4487,IR(0, 0),IR(17392, 18)/* WeightTextureQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4488,IR(0, 0),IR(17410, 22)/* BlockMatchTextureQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4499,IR(0, 0),IR(17432, 22)/* BlockMatchSamplerQCOM */,IR(0, 0),IR(1, 0),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4999,IR(0, 0),IR(17454, 18)/* ExplicitInterpAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5019,IR(10, 1),IR(17472, 32)/* NodeSharesPayloadLimitsWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5020,IR(10, 1),IR(17504, 20)/* NodeMaxPayloadsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5078,IR(0, 0),IR(17524, 23)/* TrackFinishWritingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5091,IR(10, 1),IR(17547, 20)/* PayloadNodeNameAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5098,IR(10, 1),IR(17567, 25)/* PayloadNodeBaseIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5099,IR(0, 0),IR(17592, 27)/* PayloadNodeSparseArrayAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5100,IR(10, 1),IR(17619, 25)/* PayloadNodeArraySizeAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5105,IR(0, 0),IR(17644, 28)/* PayloadDispatchIndirectAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5248,IR(0, 0),IR(17672, 19)/* OverrideCoverageNV */,IR(0, 0),IR(123, 1),IR(66, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5250,IR(0, 0),IR(17691, 14)/* PassthroughNV */,IR(0, 0),IR(124, 1),IR(67, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5252,IR(0, 0),IR(17705, 19)/* ViewportRelativeNV */,IR(0, 0),IR(94, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5256,IR(0, 1),IR(17724, 28)/* SecondaryViewportRelativeNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5271,IR(0, 0),IR(17752, 16)/* PerPrimitiveEXT */,IR(72, 1),IR(125, 2),IR(178, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5272,IR(0, 0),IR(17783, 10)/* PerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5273,IR(0, 0),IR(17793, 10)/* PerTaskNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5285,IR(0, 0),IR(17803, 13)/* PerVertexKHR */,IR(73, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5300,IR(0, 0),IR(17828, 11)/* NonUniform */,IR(74, 1),IR(97, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5355,IR(0, 0),IR(17853, 16)/* RestrictPointer */,IR(75, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5356,IR(0, 0),IR(17888, 15)/* AliasedPointer */,IR(76, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5386,IR(0, 0),IR(17921, 30)/* HitObjectShaderRecordBufferNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5389,IR(0, 0),IR(17951, 31)/* HitObjectShaderRecordBufferEXT */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5398,IR(0, 0),IR(17982, 18)/* BindlessSamplerNV */,IR(0, 0),IR(129, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5399,IR(0, 0),IR(18000, 16)/* BindlessImageNV */,IR(0, 0),IR(129, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5400,IR(0, 0),IR(18016, 15)/* BoundSamplerNV */,IR(0, 0),IR(129, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5401,IR(0, 0),IR(18031, 13)/* BoundImageNV */,IR(0, 0),IR(129, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5599,IR(0, 1),IR(18044, 14)/* SIMTCallINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5602,IR(0, 0),IR(18058, 26)/* ReferencedIndirectlyINTEL */,IR(0, 0),IR(131, 1),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5607,IR(11, 1),IR(18084, 13)/* ClobberINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5608,IR(0, 0),IR(18097, 17)/* SideEffectsINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5624,IR(0, 0),IR(18114, 27)/* VectorComputeVariableINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5625,IR(0, 1),IR(18141, 21)/* FuncParamIOKindINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5626,IR(0, 0),IR(18162, 27)/* VectorComputeFunctionINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5627,IR(0, 0),IR(18189, 15)/* StackCallINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5628,IR(0, 1),IR(18204, 26)/* GlobalVariableOffsetINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5634,IR(10, 1),IR(18230, 14)/* CounterBuffer */,IR(77, 1),IR(1, 0),IR(180, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5635,IR(11, 1),IR(18268, 13)/* UserSemantic */,IR(78, 1),IR(1, 0),IR(180, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5636,IR(11, 1),IR(18300, 15)/* UserTypeGOOGLE */,IR(0, 0),IR(1, 0),IR(181, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5822,IR(12, 2),IR(18315, 26)/* FunctionRoundingModeINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5823,IR(14, 2),IR(18372, 24)/* FunctionDenormModeINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5825,IR(0, 0),IR(18396, 15)/* RegisterALTERA */,IR(79, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5826,IR(11, 1),IR(18425, 13)/* MemoryALTERA */,IR(80, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5827,IR(0, 1),IR(18450, 15)/* NumbanksALTERA */,IR(81, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5828,IR(0, 1),IR(18479, 16)/* BankwidthALTERA */,IR(82, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5829,IR(0, 1),IR(18510, 23)/* MaxPrivateCopiesALTERA */,IR(83, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5830,IR(0, 0),IR(18555, 17)/* SinglepumpALTERA */,IR(84, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5831,IR(0, 0),IR(18588, 17)/* DoublepumpALTERA */,IR(85, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5832,IR(0, 1),IR(18621, 20)/* MaxReplicatesALTERA */,IR(86, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5833,IR(0, 0),IR(18660, 21)/* SimpleDualPortALTERA */,IR(87, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5834,IR(16, 2),IR(18701, 12)/* MergeALTERA */,IR(88, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5835,IR(18, 1),IR(18766, 15)/* BankBitsALTERA */,IR(89, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5836,IR(0, 1),IR(18795, 21)/* ForcePow2DepthALTERA */,IR(90, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5883,IR(0, 1),IR(18836, 17)/* StridesizeALTERA */,IR(91, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5884,IR(0, 1),IR(18869, 15)/* WordsizeALTERA */,IR(92, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5885,IR(0, 0),IR(18898, 19)/* TrueDualPortALTERA */,IR(93, 1),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5899,IR(0, 0),IR(18935, 20)/* BurstCoalesceALTERA */,IR(94, 1),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5900,IR(0, 1),IR(18974, 16)/* CacheSizeALTERA */,IR(95, 1),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5901,IR(0, 0),IR(19005, 29)/* DontStaticallyCoalesceALTERA */,IR(96, 1),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5902,IR(0, 1),IR(19062, 15)/* PrefetchALTERA */,IR(97, 1),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5905,IR(0, 0),IR(19091, 18)/* StallEnableALTERA */,IR(98, 1),IR(106, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5907,IR(0, 0),IR(19126, 26)/* FuseLoopsInFunctionALTERA */,IR(99, 1),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5909,IR(1, 2),IR(19177, 20)/* MathOpDSPModeALTERA */,IR(100, 1),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5914,IR(10, 1),IR(19216, 16)/* AliasScopeINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5915,IR(10, 1),IR(19232, 13)/* NoAliasINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5917,IR(0, 1),IR(19245, 25)/* InitiationIntervalALTERA */,IR(101, 1),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5918,IR(0, 1),IR(19294, 21)/* MaxConcurrencyALTERA */,IR(102, 1),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5919,IR(0, 1),IR(19335, 21)/* PipelineEnableALTERA */,IR(103, 1),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5921,IR(0, 1),IR(19376, 21)/* BufferLocationALTERA */,IR(104, 1),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5944,IR(0, 1),IR(19417, 20)/* IOPipeStorageALTERA */,IR(105, 1),IR(141, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6080,IR(19, 2),IR(19490, 31)/* FunctionFloatingPointModeINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6085,IR(0, 0),IR(19521, 25)/* SingleElementVectorINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6087,IR(0, 0),IR(19546, 35)/* VectorComputeCallableFunctionINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6140,IR(0, 0),IR(19581, 18)/* MediaBlockIOINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6151,IR(0, 0),IR(19599, 16)/* StallFreeALTERA */,IR(106, 1),IR(142, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6170,IR(21, 1),IR(19661, 26)/* FPMaxErrorDecorationINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6172,IR(0, 1),IR(19687, 26)/* LatencyControlLabelALTERA */,IR(107, 1),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6173,IR(22, 3),IR(19738, 31)/* LatencyControlConstraintALTERA */,IR(108, 1),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6175,IR(0, 0),IR(19799, 28)/* ConduitKernelArgumentALTERA */,IR(109, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6176,IR(0, 0),IR(19854, 32)/* RegisterMapKernelArgumentALTERA */,IR(110, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6177,IR(0, 1),IR(19917, 34)/* MMHostInterfaceAddressWidthALTERA */,IR(111, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6178,IR(0, 1),IR(19984, 31)/* MMHostInterfaceDataWidthALTERA */,IR(112, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6179,IR(0, 1),IR(20045, 29)/* MMHostInterfaceLatencyALTERA */,IR(113, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6180,IR(25, 1),IR(20136, 35)/* MMHostInterfaceReadWriteModeALTERA */,IR(114, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6181,IR(0, 1),IR(20205, 30)/* MMHostInterfaceMaxBurstALTERA */,IR(115, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6182,IR(0, 1),IR(20264, 33)/* MMHostInterfaceWaitRequestALTERA */,IR(116, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6183,IR(0, 0),IR(20329, 27)/* StableKernelArgumentALTERA */,IR(117, 1),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6188,IR(26, 2),IR(20421, 16)/* HostAccessINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6190,IR(28, 1),IR(20484, 15)/* InitModeALTERA */,IR(118, 1),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6191,IR(0, 1),IR(20513, 29)/* ImplementInRegisterMapALTERA */,IR(119, 1),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6247,IR(10, 1),IR(20570, 17)/* ConditionalINTEL */,IR(0, 0),IR(111, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6442,IR(29, 2),IR(20623, 22)/* CacheControlLoadINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6443,IR(31, 2),IR(20682, 23)/* CacheControlStoreINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {0,IR(0, 0),IR(20705, 3)/* 1D */,IR(0, 0),IR(72, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {1,IR(0, 0),IR(20708, 3)/* 2D */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {2,IR(0, 0),IR(20711, 3)/* 3D */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {3,IR(0, 0),IR(20714, 5)/* Cube */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {4,IR(0, 0),IR(20719, 5)/* Rect */,IR(0, 0),IR(71, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {5,IR(0, 0),IR(20724, 7)/* Buffer */,IR(0, 0),IR(73, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {6,IR(0, 0),IR(20731, 12)/* SubpassData */,IR(0, 0),IR(95, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {4173,IR(0, 0),IR(20743, 17)/* TileImageDataEXT */,IR(0, 0),IR(149, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {0,IR(0, 1),IR(20760, 12)/* Invocations */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {1,IR(0, 0),IR(20772, 13)/* SpacingEqual */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {2,IR(0, 0),IR(20785, 22)/* SpacingFractionalEven */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {3,IR(0, 0),IR(20807, 21)/* SpacingFractionalOdd */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4,IR(0, 0),IR(20828, 14)/* VertexOrderCw */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5,IR(0, 0),IR(20842, 15)/* VertexOrderCcw */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6,IR(0, 0),IR(20857, 19)/* PixelCenterInteger */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {7,IR(0, 0),IR(20876, 16)/* OriginUpperLeft */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {8,IR(0, 0),IR(20892, 16)/* OriginLowerLeft */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {9,IR(0, 0),IR(20908, 19)/* EarlyFragmentTests */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {10,IR(0, 0),IR(20927, 10)/* PointMode */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {11,IR(0, 0),IR(20937, 4)/* Xfb */,IR(0, 0),IR(118, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {12,IR(0, 0),IR(20941, 15)/* DepthReplacing */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {14,IR(0, 0),IR(20956, 13)/* DepthGreater */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {15,IR(0, 0),IR(20969, 10)/* DepthLess */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {16,IR(0, 0),IR(20979, 15)/* DepthUnchanged */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {17,IR(22, 3),IR(20994, 10)/* LocalSize */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {18,IR(22, 3),IR(21004, 14)/* LocalSizeHint */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {19,IR(0, 0),IR(21018, 12)/* InputPoints */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {20,IR(0, 0),IR(21030, 11)/* InputLines */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {21,IR(0, 0),IR(21041, 20)/* InputLinesAdjacency */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {22,IR(0, 0),IR(21061, 10)/* Triangles */,IR(0, 0),IR(12, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {23,IR(0, 0),IR(21071, 24)/* InputTrianglesAdjacency */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {24,IR(0, 0),IR(21095, 6)/* Quads */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {25,IR(0, 0),IR(21101, 9)/* Isolines */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {26,IR(0, 1),IR(21110, 15)/* OutputVertices */,IR(0, 0),IR(150, 4),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {27,IR(0, 0),IR(21125, 13)/* OutputPoints */,IR(0, 0),IR(154, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {28,IR(0, 0),IR(21138, 16)/* OutputLineStrip */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {29,IR(0, 0),IR(21154, 20)/* OutputTriangleStrip */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {30,IR(0, 1),IR(21174, 12)/* VecTypeHint */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {31,IR(0, 0),IR(21186, 15)/* ContractionOff */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {33,IR(0, 0),IR(21201, 12)/* Initializer */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {34,IR(0, 0),IR(21213, 10)/* Finalizer */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {35,IR(0, 1),IR(6109, 13)/* SubgroupSize */,IR(0, 0),IR(157, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {36,IR(0, 1),IR(21223, 22)/* SubgroupsPerWorkgroup */,IR(0, 0),IR(157, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {37,IR(10, 1),IR(21245, 24)/* SubgroupsPerWorkgroupId */,IR(0, 0),IR(157, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {38,IR(33, 3),IR(21269, 12)/* LocalSizeId */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {39,IR(33, 3),IR(21281, 16)/* LocalSizeHintId */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4169,IR(0, 0),IR(21297, 34)/* NonCoherentColorAttachmentReadEXT */,IR(0, 0),IR(149, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4170,IR(0, 0),IR(21331, 34)/* NonCoherentDepthAttachmentReadEXT */,IR(0, 0),IR(158, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4171,IR(0, 0),IR(21365, 36)/* NonCoherentStencilAttachmentReadEXT */,IR(0, 0),IR(159, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4421,IR(0, 0),IR(21401, 30)/* SubgroupUniformControlFlowKHR */,IR(0, 0),IR(3, 1),IR(182, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4446,IR(0, 0),IR(21431, 18)/* PostDepthCoverage */,IR(0, 0),IR(160, 1),IR(45, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4459,IR(0, 1),IR(10308, 15)/* DenormPreserve */,IR(0, 0),IR(161, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4460,IR(0, 1),IR(10323, 18)/* DenormFlushToZero */,IR(0, 0),IR(162, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4461,IR(0, 1),IR(10341, 25)/* SignedZeroInfNanPreserve */,IR(0, 0),IR(163, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4462,IR(0, 1),IR(10366, 16)/* RoundingModeRTE */,IR(0, 0),IR(164, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4463,IR(0, 1),IR(10382, 16)/* RoundingModeRTZ */,IR(0, 0),IR(165, 1),IR(47, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4489,IR(0, 0),IR(21449, 34)/* NonCoherentTileAttachmentReadQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4490,IR(22, 3),IR(21483, 20)/* TileShadingRateQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5017,IR(0, 0),IR(21503, 29)/* EarlyAndLateFragmentTestsAMD */,IR(0, 0),IR(3, 1),IR(183, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5027,IR(0, 0),IR(21532, 23)/* StencilRefReplacingEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5069,IR(0, 0),IR(21555, 15)/* CoalescingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5070,IR(10, 1),IR(21570, 15)/* IsApiEntryAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5071,IR(10, 1),IR(21585, 21)/* MaxNodeRecursionAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5072,IR(33, 3),IR(21606, 24)/* StaticNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5073,IR(10, 1),IR(7002, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5077,IR(33, 3),IR(21630, 21)/* MaxNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5079,IR(0, 0),IR(21651, 28)/* StencilRefUnchangedFrontAMD */,IR(0, 0),IR(42, 1),IR(184, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5080,IR(0, 0),IR(21679, 26)/* StencilRefGreaterFrontAMD */,IR(0, 0),IR(42, 1),IR(184, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5081,IR(0, 0),IR(21705, 23)/* StencilRefLessFrontAMD */,IR(0, 0),IR(42, 1),IR(184, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5082,IR(0, 0),IR(21728, 27)/* StencilRefUnchangedBackAMD */,IR(0, 0),IR(42, 1),IR(184, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5083,IR(0, 0),IR(21755, 25)/* StencilRefGreaterBackAMD */,IR(0, 0),IR(42, 1),IR(184, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5084,IR(0, 0),IR(21780, 22)/* StencilRefLessBackAMD */,IR(0, 0),IR(42, 1),IR(184, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5088,IR(0, 0),IR(21802, 19)/* QuadDerivativesKHR */,IR(0, 0),IR(166, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5089,IR(0, 0),IR(21821, 20)/* RequireFullQuadsKHR */,IR(0, 0),IR(166, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5102,IR(36, 2),IR(21841, 20)/* SharesInputWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5269,IR(0, 0),IR(21861, 15)/* OutputLinesEXT */,IR(120, 1),IR(125, 2),IR(178, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5270,IR(0, 1),IR(21890, 20)/* OutputPrimitivesEXT */,IR(121, 1),IR(125, 2),IR(178, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5289,IR(0, 0),IR(21929, 24)/* DerivativeGroupQuadsKHR */,IR(122, 1),IR(167, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5290,IR(0, 0),IR(21976, 25)/* DerivativeGroupLinearKHR */,IR(123, 1),IR(168, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5298,IR(0, 0),IR(22025, 19)/* OutputTrianglesEXT */,IR(124, 1),IR(125, 2),IR(178, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5366,IR(0, 0),IR(22062, 25)/* PixelInterlockOrderedEXT */,IR(0, 0),IR(169, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5367,IR(0, 0),IR(22087, 27)/* PixelInterlockUnorderedEXT */,IR(0, 0),IR(169, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5368,IR(0, 0),IR(22114, 26)/* SampleInterlockOrderedEXT */,IR(0, 0),IR(170, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5369,IR(0, 0),IR(22140, 28)/* SampleInterlockUnorderedEXT */,IR(0, 0),IR(170, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5370,IR(0, 0),IR(22168, 31)/* ShadingRateInterlockOrderedEXT */,IR(0, 0),IR(171, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5371,IR(0, 0),IR(22199, 33)/* ShadingRateInterlockUnorderedEXT */,IR(0, 0),IR(171, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5427,IR(0, 0),IR(12550, 23)/* Shader64BitIndexingEXT */,IR(0, 0),IR(172, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5618,IR(0, 1),IR(22232, 27)/* SharedLocalMemorySizeINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5620,IR(0, 1),IR(22259, 21)/* RoundingModeRTPINTEL */,IR(0, 0),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5621,IR(0, 1),IR(22280, 21)/* RoundingModeRTNINTEL */,IR(0, 0),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5622,IR(0, 1),IR(22301, 26)/* FloatingPointModeALTINTEL */,IR(0, 0),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5623,IR(0, 1),IR(22327, 27)/* FloatingPointModeIEEEINTEL */,IR(0, 0),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5893,IR(22, 3),IR(22354, 22)/* MaxWorkgroupSizeINTEL */,IR(0, 0),IR(174, 1),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5894,IR(0, 1),IR(22376, 16)/* MaxWorkDimINTEL */,IR(0, 0),IR(174, 1),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5895,IR(0, 0),IR(22392, 20)/* NoGlobalOffsetINTEL */,IR(0, 0),IR(174, 1),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5896,IR(0, 1),IR(22412, 22)/* NumSIMDWorkitemsINTEL */,IR(0, 0),IR(107, 1),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5903,IR(0, 1),IR(22434, 28)/* SchedulerTargetFmaxMhzINTEL */,IR(0, 0),IR(107, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6023,IR(0, 0),IR(22462, 24)/* MaximallyReconvergesKHR */,IR(0, 0),IR(3, 1),IR(186, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6028,IR(36, 2),IR(22486, 18)/* FPFastMathDefault */,IR(0, 0),IR(175, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6154,IR(0, 1),IR(22504, 24)/* StreamingInterfaceINTEL */,IR(0, 0),IR(107, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6160,IR(0, 1),IR(22528, 26)/* RegisterMapInterfaceINTEL */,IR(0, 0),IR(176, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6417,IR(0, 1),IR(22554, 23)/* NamedBarrierCountINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6461,IR(0, 1),IR(22577, 22)/* MaximumRegistersINTEL */,IR(0, 0),IR(177, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6462,IR(10, 1),IR(22599, 24)/* MaximumRegistersIdINTEL */,IR(0, 0),IR(177, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6463,IR(38, 1),IR(22674, 27)/* NamedMaximumRegistersINTEL */,IR(0, 0),IR(177, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {0,IR(0, 0),IR(22701, 7)/* Vertex */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {1,IR(0, 0),IR(22708, 20)/* TessellationControl */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {2,IR(0, 0),IR(22728, 23)/* TessellationEvaluation */,IR(0, 0),IR(24, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {3,IR(0, 0),IR(5590, 9)/* Geometry */,IR(0, 0),IR(69, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {4,IR(0, 0),IR(15944, 9)/* Fragment */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5,IR(0, 0),IR(22751, 10)/* GLCompute */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {6,IR(0, 0),IR(5357, 7)/* Kernel */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5267,IR(0, 0),IR(22761, 7)/* TaskNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5268,IR(0, 0),IR(22768, 7)/* MeshNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5313,IR(0, 0),IR(22775, 17)/* RayGenerationKHR */,IR(125, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5314,IR(0, 0),IR(22808, 16)/* IntersectionKHR */,IR(126, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5315,IR(0, 0),IR(22839, 10)/* AnyHitKHR */,IR(127, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5316,IR(0, 0),IR(22858, 14)/* ClosestHitKHR */,IR(128, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5317,IR(0, 0),IR(22885, 8)/* MissKHR */,IR(129, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5318,IR(0, 0),IR(22900, 12)/* CallableKHR */,IR(130, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5364,IR(0, 0),IR(22923, 8)/* TaskEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5365,IR(0, 0),IR(22931, 8)/* MeshEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {0,IR(0, 0),IR(22939, 9)/* Preserve */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE + {1,IR(0, 0),IR(22948, 12)/* FlushToZero */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE + {0,IR(0, 0),IR(22960, 12)/* BFloat16KHR */,IR(0, 0),IR(89, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING + {4214,IR(0, 0),IR(22972, 14)/* Float8E4M3EXT */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING + {4215,IR(0, 0),IR(22986, 14)/* Float8E5M2EXT */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING + {0,IR(0, 0),IR(23000, 5)/* IEEE */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE + {1,IR(0, 0),IR(23005, 4)/* ALT */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {1,IR(0, 0),IR(23009, 7)/* NotNaN */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {2,IR(0, 0),IR(23016, 7)/* NotInf */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {4,IR(0, 0),IR(23023, 4)/* NSZ */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {8,IR(0, 0),IR(23027, 11)/* AllowRecip */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {16,IR(0, 0),IR(23038, 5)/* Fast */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {65536,IR(0, 0),IR(23043, 14)/* AllowContract */,IR(131, 1),IR(178, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {131072,IR(0, 0),IR(23080, 13)/* AllowReassoc */,IR(132, 1),IR(178, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {262144,IR(0, 0),IR(23111, 15)/* AllowTransform */,IR(0, 0),IR(175, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {0,IR(0, 0),IR(23126, 4)/* RTE */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {1,IR(0, 0),IR(23130, 4)/* RTZ */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {2,IR(0, 0),IR(23134, 4)/* RTP */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {3,IR(0, 0),IR(23138, 4)/* RTN */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {1,IR(0, 0),IR(23142, 16)/* Vertical2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {2,IR(0, 0),IR(23158, 16)/* Vertical4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {4,IR(0, 0),IR(23174, 18)/* Horizontal2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {8,IR(0, 0),IR(23192, 18)/* Horizontal4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {1,IR(0, 0),IR(23210, 7)/* Inline */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {2,IR(0, 0),IR(23217, 11)/* DontInline */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {4,IR(0, 0),IR(23228, 5)/* Pure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {8,IR(0, 0),IR(23233, 6)/* Const */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {65536,IR(0, 0),IR(14547, 11)/* OptNoneEXT */,IR(66, 1),IR(180, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {0,IR(0, 0),IR(23239, 5)/* Zext */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {1,IR(0, 0),IR(23244, 5)/* Sext */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {2,IR(0, 0),IR(23249, 6)/* ByVal */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {3,IR(0, 0),IR(23255, 5)/* Sret */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {4,IR(0, 0),IR(23260, 8)/* NoAlias */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {5,IR(0, 0),IR(23268, 10)/* NoCapture */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {6,IR(0, 0),IR(23278, 8)/* NoWrite */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {7,IR(0, 0),IR(23286, 12)/* NoReadWrite */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {5940,IR(0, 0),IR(23298, 21)/* RuntimeAlignedALTERA */,IR(133, 1),IR(181, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {0,IR(0, 0),IR(23339, 7)/* Reduce */,IR(0, 0),IR(182, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {1,IR(0, 0),IR(23346, 14)/* InclusiveScan */,IR(0, 0),IR(182, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {2,IR(0, 0),IR(23360, 14)/* ExclusiveScan */,IR(0, 0),IR(182, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {3,IR(0, 0),IR(23374, 16)/* ClusteredReduce */,IR(0, 0),IR(185, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {6,IR(0, 0),IR(23390, 20)/* PartitionedReduceNV */,IR(0, 0),IR(186, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {7,IR(0, 0),IR(23410, 27)/* PartitionedInclusiveScanNV */,IR(0, 0),IR(186, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {8,IR(0, 0),IR(23437, 27)/* PartitionedExclusiveScanNV */,IR(0, 0),IR(186, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {0,IR(0, 0),IR(23464, 10)/* NoneINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {1,IR(0, 0),IR(23474, 10)/* ReadINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {2,IR(0, 0),IR(23484, 11)/* WriteINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {3,IR(0, 0),IR(23495, 15)/* ReadWriteINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {1,IR(10, 1),IR(23510, 5)/* Bias */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {2,IR(10, 1),IR(23515, 4)/* Lod */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {4,IR(36, 2),IR(23519, 5)/* Grad */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {8,IR(10, 1),IR(23524, 12)/* ConstOffset */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {16,IR(10, 1),IR(16947, 7)/* Offset */,IR(0, 0),IR(187, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {32,IR(10, 1),IR(23536, 13)/* ConstOffsets */,IR(0, 0),IR(187, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {64,IR(10, 1),IR(16744, 7)/* Sample */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {128,IR(10, 1),IR(9141, 7)/* MinLod */,IR(0, 0),IR(188, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {256,IR(4, 1),IR(23549, 19)/* MakeTexelAvailable */,IR(134, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {512,IR(4, 1),IR(23590, 17)/* MakeTexelVisible */,IR(135, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {1024,IR(0, 0),IR(23627, 16)/* NonPrivateTexel */,IR(136, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {2048,IR(0, 0),IR(23662, 14)/* VolatileTexel */,IR(137, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {4096,IR(0, 0),IR(23693, 11)/* SignExtend */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {8192,IR(0, 0),IR(23704, 11)/* ZeroExtend */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {16384,IR(0, 0),IR(23715, 12)/* Nontemporal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {65536,IR(10, 1),IR(23727, 8)/* Offsets */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE + {0,IR(0, 0),IR(23735, 10)/* SnormInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {1,IR(0, 0),IR(23745, 11)/* SnormInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {2,IR(0, 0),IR(23756, 10)/* UnormInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {3,IR(0, 0),IR(23766, 11)/* UnormInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {4,IR(0, 0),IR(23777, 14)/* UnormShort565 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {5,IR(0, 0),IR(23791, 14)/* UnormShort555 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {6,IR(0, 0),IR(23805, 15)/* UnormInt101010 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {7,IR(0, 0),IR(23820, 11)/* SignedInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {8,IR(0, 0),IR(23831, 12)/* SignedInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {9,IR(0, 0),IR(23843, 12)/* SignedInt32 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {10,IR(0, 0),IR(23855, 13)/* UnsignedInt8 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {11,IR(0, 0),IR(23868, 14)/* UnsignedInt16 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {12,IR(0, 0),IR(23882, 14)/* UnsignedInt32 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {13,IR(0, 0),IR(23896, 10)/* HalfFloat */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {14,IR(0, 0),IR(15437, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {15,IR(0, 0),IR(23906, 11)/* UnormInt24 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {16,IR(0, 0),IR(23917, 17)/* UnormInt101010_2 */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {17,IR(0, 0),IR(23934, 16)/* UnormInt10X6EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {19,IR(0, 0),IR(23950, 20)/* UnsignedIntRaw10EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {20,IR(0, 0),IR(23970, 20)/* UnsignedIntRaw12EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {21,IR(0, 0),IR(23990, 20)/* UnormInt2_101010EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {22,IR(0, 0),IR(24010, 19)/* UnsignedInt10X6EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {23,IR(0, 0),IR(24029, 19)/* UnsignedInt12X4EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {24,IR(0, 0),IR(24048, 19)/* UnsignedInt14X2EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {25,IR(0, 0),IR(24067, 16)/* UnormInt12X4EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {26,IR(0, 0),IR(24083, 16)/* UnormInt14X2EXT */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {0,IR(0, 0),IR(24099, 2)/* R */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {1,IR(0, 0),IR(24101, 2)/* A */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {2,IR(0, 0),IR(24103, 3)/* RG */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {3,IR(0, 0),IR(24106, 3)/* RA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {4,IR(0, 0),IR(24109, 4)/* RGB */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {5,IR(0, 0),IR(24113, 5)/* RGBA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {6,IR(0, 0),IR(24118, 5)/* BGRA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {7,IR(0, 0),IR(24123, 5)/* ARGB */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {8,IR(0, 0),IR(24128, 10)/* Intensity */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {9,IR(0, 0),IR(24138, 10)/* Luminance */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {10,IR(0, 0),IR(24148, 3)/* Rx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {11,IR(0, 0),IR(24151, 4)/* RGx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {12,IR(0, 0),IR(24155, 5)/* RGBx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {13,IR(0, 0),IR(24160, 6)/* Depth */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {14,IR(0, 0),IR(24166, 13)/* DepthStencil */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {15,IR(0, 0),IR(24179, 5)/* sRGB */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {16,IR(0, 0),IR(24184, 6)/* sRGBx */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {17,IR(0, 0),IR(24190, 6)/* sRGBA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {18,IR(0, 0),IR(24196, 6)/* sBGRA */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {19,IR(0, 0),IR(24202, 5)/* ABGR */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {0,IR(0, 0),IR(24207, 28)/* InitOnDeviceReprogramALTERA */,IR(138, 1),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {1,IR(0, 0),IR(24262, 24)/* InitOnDeviceResetALTERA */,IR(139, 1),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {0,IR(0, 0),IR(24309, 7)/* NoWait */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {1,IR(0, 0),IR(24316, 11)/* WaitKernel */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {2,IR(0, 0),IR(24327, 14)/* WaitWorkGroup */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO + {1,IR(0, 0),IR(24341, 12)/* CmdExecTime */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS + {1,IR(0, 0),IR(24353, 13)/* MayUsePrintf */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS + {0,IR(0, 0),IR(24366, 7)/* Export */,IR(0, 0),IR(121, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE + {1,IR(0, 0),IR(24373, 7)/* Import */,IR(0, 0),IR(121, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE + {2,IR(0, 0),IR(24380, 12)/* LinkOnceODR */,IR(0, 0),IR(121, 1),IR(187, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE + {0,IR(0, 0),IR(24392, 14)/* UncachedINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {1,IR(0, 0),IR(24406, 12)/* CachedINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {2,IR(0, 0),IR(24418, 15)/* StreamingINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {3,IR(0, 0),IR(24433, 25)/* InvalidateAfterReadINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {4,IR(0, 0),IR(24458, 17)/* ConstCachedINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {1,IR(0, 0),IR(24475, 7)/* Unroll */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {2,IR(0, 0),IR(24482, 11)/* DontUnroll */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {4,IR(0, 0),IR(24493, 19)/* DependencyInfinite */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {8,IR(0, 1),IR(24512, 17)/* DependencyLength */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {16,IR(0, 1),IR(24529, 14)/* MinIterations */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {32,IR(0, 1),IR(24543, 14)/* MaxIterations */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {64,IR(0, 1),IR(24557, 18)/* IterationMultiple */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {128,IR(0, 1),IR(24575, 10)/* PeelCount */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {256,IR(0, 1),IR(24585, 13)/* PartialCount */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {65536,IR(0, 1),IR(19245, 25)/* InitiationIntervalALTERA */,IR(101, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {131072,IR(0, 1),IR(19294, 21)/* MaxConcurrencyALTERA */,IR(102, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {262144,IR(0, 1),IR(24598, 22)/* DependencyArrayALTERA */,IR(140, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {524288,IR(0, 1),IR(19335, 21)/* PipelineEnableALTERA */,IR(103, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {1048576,IR(0, 1),IR(24641, 19)/* LoopCoalesceALTERA */,IR(141, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {2097152,IR(0, 1),IR(24678, 22)/* MaxInterleavingALTERA */,IR(142, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {4194304,IR(0, 1),IR(24721, 27)/* SpeculatedIterationsALTERA */,IR(143, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {8388608,IR(0, 0),IR(24774, 15)/* NoFusionALTERA */,IR(144, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {16777216,IR(0, 1),IR(24803, 16)/* LoopCountALTERA */,IR(145, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {33554432,IR(0, 1),IR(24834, 27)/* MaxReinvocationDelayALTERA */,IR(146, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {1,IR(0, 0),IR(24887, 29)/* MatrixASignedComponentsINTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {2,IR(0, 0),IR(24916, 29)/* MatrixBSignedComponentsINTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {4,IR(0, 0),IR(24945, 21)/* MatrixCBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {8,IR(0, 0),IR(24966, 26)/* MatrixResultBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {16,IR(0, 0),IR(24992, 23)/* MatrixAPackedInt8INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {32,IR(0, 0),IR(25015, 23)/* MatrixBPackedInt8INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {64,IR(0, 0),IR(25038, 23)/* MatrixAPackedInt4INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {128,IR(0, 0),IR(25061, 23)/* MatrixBPackedInt4INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {256,IR(0, 0),IR(25084, 17)/* MatrixATF32INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {512,IR(0, 0),IR(25101, 17)/* MatrixBTF32INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {1024,IR(0, 0),IR(25118, 26)/* MatrixAPackedFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {2048,IR(0, 0),IR(25144, 26)/* MatrixBPackedFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {4096,IR(0, 0),IR(25170, 27)/* MatrixAPackedBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {8192,IR(0, 0),IR(25197, 27)/* MatrixBPackedBFloat16INTEL */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {1,IR(0, 0),IR(16778, 9)/* Volatile */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {2,IR(0, 1),IR(25224, 8)/* Aligned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {4,IR(0, 0),IR(23715, 12)/* Nontemporal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {8,IR(4, 1),IR(25232, 21)/* MakePointerAvailable */,IR(147, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {16,IR(4, 1),IR(25277, 19)/* MakePointerVisible */,IR(148, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {32,IR(0, 0),IR(25318, 18)/* NonPrivatePointer */,IR(149, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {65536,IR(10, 1),IR(25357, 20)/* AliasScopeINTELMask */,IR(0, 0),IR(138, 1),IR(123, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {131072,IR(10, 1),IR(25377, 17)/* NoAliasINTELMask */,IR(0, 0),IR(138, 1),IR(123, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {0,IR(0, 0),IR(25394, 7)/* Simple */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL + {1,IR(0, 0),IR(25401, 8)/* GLSL450 */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL + {2,IR(0, 0),IR(25409, 7)/* OpenCL */,IR(0, 0),IR(0, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL + {3,IR(0, 0),IR(25416, 7)/* Vulkan */,IR(150, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL + {0,IR(0, 0),IR(25433, 8)/* Relaxed */,IR(151, 1),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {2,IR(0, 0),IR(25441, 8)/* Acquire */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {4,IR(0, 0),IR(25449, 8)/* Release */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {8,IR(0, 0),IR(25457, 15)/* AcquireRelease */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {16,IR(0, 0),IR(25472, 23)/* SequentiallyConsistent */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {64,IR(0, 0),IR(25495, 14)/* UniformMemory */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {128,IR(0, 0),IR(25509, 15)/* SubgroupMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {256,IR(0, 0),IR(25524, 16)/* WorkgroupMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {512,IR(0, 0),IR(25540, 21)/* CrossWorkgroupMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {1024,IR(0, 0),IR(25561, 20)/* AtomicCounterMemory */,IR(0, 0),IR(82, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {2048,IR(0, 0),IR(25581, 12)/* ImageMemory */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {4096,IR(0, 0),IR(25593, 13)/* OutputMemory */,IR(152, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {8192,IR(0, 0),IR(25622, 14)/* MakeAvailable */,IR(153, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {16384,IR(0, 0),IR(25653, 12)/* MakeVisible */,IR(154, 1),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {32768,IR(0, 0),IR(16778, 9)/* Volatile */,IR(0, 0),IR(189, 1),IR(78, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {0,IR(0, 0),IR(25680, 10)/* AutoINTEL */,IR(0, 0),IR(177, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS + {0,IR(0, 0),IR(25690, 5)/* WRAP */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {1,IR(0, 0),IR(25695, 4)/* SAT */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {2,IR(0, 0),IR(25699, 9)/* SAT_ZERO */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {3,IR(0, 0),IR(25708, 8)/* SAT_SYM */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {0,IR(0, 0),IR(25716, 25)/* PackedVectorFormat4x8Bit */,IR(155, 1),IR(1, 0),IR(140, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT + {0,IR(0, 0),IR(25769, 4)/* TRN */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {1,IR(0, 0),IR(25773, 9)/* TRN_ZERO */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {2,IR(0, 0),IR(25782, 4)/* RND */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {3,IR(0, 0),IR(25786, 9)/* RND_ZERO */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {4,IR(0, 0),IR(25795, 8)/* RND_INF */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {5,IR(0, 0),IR(25803, 12)/* RND_MIN_INF */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {6,IR(0, 0),IR(25815, 9)/* RND_CONV */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {7,IR(0, 0),IR(25824, 13)/* RND_CONV_ODD */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {1,IR(0, 0),IR(25837, 25)/* RobustnessPerComponentNV */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {2,IR(0, 0),IR(25862, 23)/* RobustnessPerElementNV */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {0,IR(0, 0),IR(16292, 8)/* NoneKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {1,IR(0, 0),IR(25885, 10)/* OpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {2,IR(0, 0),IR(25895, 12)/* NoOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {4,IR(0, 0),IR(25907, 23)/* TerminateOnFirstHitKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {8,IR(0, 0),IR(25930, 24)/* SkipClosestHitShaderKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {16,IR(0, 0),IR(25954, 27)/* CullBackFacingTrianglesKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {32,IR(0, 0),IR(25981, 28)/* CullFrontFacingTrianglesKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {64,IR(0, 0),IR(26009, 14)/* CullOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {128,IR(0, 0),IR(26023, 16)/* CullNoOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {256,IR(0, 0),IR(26039, 17)/* SkipTrianglesKHR */,IR(156, 1),IR(193, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {512,IR(0, 0),IR(26080, 13)/* SkipAABBsKHR */,IR(0, 0),IR(193, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {1024,IR(0, 0),IR(26093, 30)/* ForceOpacityMicromap2StateEXT */,IR(0, 0),IR(194, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {0,IR(0, 0),IR(26123, 41)/* RayQueryCandidateIntersectionTriangleKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE + {1,IR(0, 0),IR(26164, 37)/* RayQueryCandidateIntersectionAABBKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE + {0,IR(0, 0),IR(26201, 37)/* RayQueryCommittedIntersectionNoneKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {1,IR(0, 0),IR(26238, 41)/* RayQueryCommittedIntersectionTriangleKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {2,IR(0, 0),IR(26279, 42)/* RayQueryCommittedIntersectionGeneratedKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {0,IR(0, 0),IR(26321, 33)/* RayQueryCandidateIntersectionKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {1,IR(0, 0),IR(26354, 33)/* RayQueryCommittedIntersectionKHR */,IR(0, 0),IR(195, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {1,IR(0, 0),IR(26387, 12)/* ClampToEdge */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {2,IR(0, 0),IR(26399, 6)/* Clamp */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {3,IR(0, 0),IR(26405, 7)/* Repeat */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {4,IR(0, 0),IR(26412, 15)/* RepeatMirrored */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {0,IR(0, 0),IR(26427, 8)/* Nearest */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE + {1,IR(0, 0),IR(26435, 7)/* Linear */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE + {0,IR(0, 0),IR(26442, 8)/* Unknown */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {1,IR(0, 0),IR(26450, 8)/* Rgba32f */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {2,IR(0, 0),IR(26458, 8)/* Rgba16f */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {3,IR(0, 0),IR(26466, 5)/* R32f */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {4,IR(0, 0),IR(26471, 6)/* Rgba8 */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {5,IR(0, 0),IR(26477, 11)/* Rgba8Snorm */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {6,IR(0, 0),IR(26488, 6)/* Rg32f */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {7,IR(0, 0),IR(26494, 6)/* Rg16f */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {8,IR(0, 0),IR(26500, 13)/* R11fG11fB10f */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {9,IR(0, 0),IR(26513, 5)/* R16f */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {10,IR(0, 0),IR(26518, 7)/* Rgba16 */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {11,IR(0, 0),IR(26525, 8)/* Rgb10A2 */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {12,IR(0, 0),IR(26533, 5)/* Rg16 */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {13,IR(0, 0),IR(26538, 4)/* Rg8 */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {14,IR(0, 0),IR(26542, 4)/* R16 */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {15,IR(0, 0),IR(26546, 3)/* R8 */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {16,IR(0, 0),IR(26549, 12)/* Rgba16Snorm */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {17,IR(0, 0),IR(26561, 10)/* Rg16Snorm */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {18,IR(0, 0),IR(26571, 9)/* Rg8Snorm */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {19,IR(0, 0),IR(26580, 9)/* R16Snorm */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {20,IR(0, 0),IR(26589, 8)/* R8Snorm */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {21,IR(0, 0),IR(26597, 8)/* Rgba32i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {22,IR(0, 0),IR(26605, 8)/* Rgba16i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {23,IR(0, 0),IR(26613, 7)/* Rgba8i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {24,IR(0, 0),IR(26620, 5)/* R32i */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {25,IR(0, 0),IR(26625, 6)/* Rg32i */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {26,IR(0, 0),IR(26631, 6)/* Rg16i */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {27,IR(0, 0),IR(26637, 5)/* Rg8i */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {28,IR(0, 0),IR(26642, 5)/* R16i */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {29,IR(0, 0),IR(26647, 4)/* R8i */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {30,IR(0, 0),IR(26651, 9)/* Rgba32ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {31,IR(0, 0),IR(26660, 9)/* Rgba16ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {32,IR(0, 0),IR(26669, 8)/* Rgba8ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {33,IR(0, 0),IR(26677, 6)/* R32ui */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {34,IR(0, 0),IR(26683, 10)/* Rgb10a2ui */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {35,IR(0, 0),IR(26693, 7)/* Rg32ui */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {36,IR(0, 0),IR(26700, 7)/* Rg16ui */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {37,IR(0, 0),IR(26707, 6)/* Rg8ui */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {38,IR(0, 0),IR(26713, 6)/* R16ui */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {39,IR(0, 0),IR(26719, 5)/* R8ui */,IR(0, 0),IR(196, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {40,IR(0, 0),IR(26724, 6)/* R64ui */,IR(0, 0),IR(197, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {41,IR(0, 0),IR(26730, 5)/* R64i */,IR(0, 0),IR(197, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {0,IR(0, 0),IR(26735, 12)/* CrossDevice */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {1,IR(0, 0),IR(26747, 7)/* Device */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {2,IR(0, 0),IR(26754, 10)/* Workgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {3,IR(0, 0),IR(26764, 9)/* Subgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {4,IR(0, 0),IR(26773, 11)/* Invocation */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {5,IR(0, 0),IR(26784, 12)/* QueueFamily */,IR(157, 1),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {6,IR(0, 0),IR(26811, 14)/* ShaderCallKHR */,IR(0, 0),IR(60, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SELECTION_CONTROL + {1,IR(0, 0),IR(26825, 8)/* Flatten */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SELECTION_CONTROL + {2,IR(0, 0),IR(26833, 12)/* DontFlatten */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SELECTION_CONTROL + {1,IR(0, 0),IR(26845, 29)/* IdentifierPossibleDuplicates */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS + {0,IR(0, 0),IR(15409, 12)/* Unspecified */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {1,IR(0, 0),IR(15421, 8)/* Address */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {2,IR(0, 0),IR(15429, 8)/* Boolean */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {3,IR(0, 0),IR(15437, 6)/* Float */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {4,IR(0, 0),IR(15443, 7)/* Signed */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {5,IR(0, 0),IR(15450, 11)/* SignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {6,IR(0, 0),IR(15461, 9)/* Unsigned */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {7,IR(0, 0),IR(15470, 13)/* UnsignedChar */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {0,IR(0, 0),IR(15483, 6)/* Class */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {1,IR(0, 0),IR(15489, 10)/* Structure */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {2,IR(0, 0),IR(15499, 6)/* Union */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {0,IR(0, 0),IR(15505, 15)/* ImportedModule */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY + {1,IR(0, 0),IR(15520, 20)/* ImportedDeclaration */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {1,IR(0, 0),IR(15545, 16)/* FlagIsProtected */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {2,IR(0, 0),IR(15561, 14)/* FlagIsPrivate */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {3,IR(0, 0),IR(15575, 13)/* FlagIsPublic */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {4,IR(0, 0),IR(15588, 12)/* FlagIsLocal */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {8,IR(0, 0),IR(15600, 17)/* FlagIsDefinition */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {16,IR(0, 0),IR(15617, 12)/* FlagFwdDecl */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {32,IR(0, 0),IR(15629, 15)/* FlagArtificial */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {64,IR(0, 0),IR(15644, 13)/* FlagExplicit */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {128,IR(0, 0),IR(15657, 15)/* FlagPrototyped */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {256,IR(0, 0),IR(15672, 18)/* FlagObjectPointer */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {512,IR(0, 0),IR(15690, 17)/* FlagStaticMember */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {1024,IR(0, 0),IR(15707, 21)/* FlagIndirectVariable */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {2048,IR(0, 0),IR(15728, 20)/* FlagLValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {4096,IR(0, 0),IR(15748, 20)/* FlagRValueReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {8192,IR(0, 0),IR(15768, 16)/* FlagIsOptimized */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {16384,IR(0, 0),IR(15784, 16)/* FlagIsEnumClass */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {32768,IR(0, 0),IR(15800, 20)/* FlagTypePassByValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {65536,IR(0, 0),IR(15820, 24)/* FlagTypePassByReference */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {131072,IR(0, 0),IR(26874, 26)/* FlagUnknownPhysicalLayout */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {0,IR(0, 0),IR(15844, 6)/* Deref */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {1,IR(0, 0),IR(15850, 5)/* Plus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {2,IR(0, 0),IR(15855, 6)/* Minus */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {3,IR(10, 1),IR(15894, 11)/* PlusUconst */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {4,IR(36, 2),IR(15905, 9)/* BitPiece */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {5,IR(0, 0),IR(15914, 5)/* Swap */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {6,IR(0, 0),IR(15919, 7)/* Xderef */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {7,IR(0, 0),IR(15926, 11)/* StackValue */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {8,IR(10, 1),IR(15937, 7)/* Constu */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {9,IR(36, 2),IR(15944, 9)/* Fragment */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {0,IR(0, 0),IR(15953, 10)/* ConstType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {1,IR(0, 0),IR(15963, 13)/* VolatileType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {2,IR(0, 0),IR(15976, 13)/* RestrictType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {3,IR(0, 0),IR(15989, 11)/* AtomicType */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1, 0),0xffffffffu}, // SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {0,IR(0, 0),IR(26442, 8)/* Unknown */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {1,IR(0, 0),IR(26900, 5)/* ESSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {2,IR(0, 0),IR(26905, 5)/* GLSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {3,IR(0, 0),IR(26910, 9)/* OpenCL_C */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {4,IR(0, 0),IR(26919, 11)/* OpenCL_CPP */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {5,IR(0, 0),IR(26930, 5)/* HLSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {6,IR(0, 0),IR(26935, 15)/* CPP_for_OpenCL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {7,IR(0, 0),IR(26950, 5)/* SYCL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {8,IR(0, 0),IR(26955, 7)/* HERO_C */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {9,IR(0, 0),IR(26962, 5)/* NZSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {10,IR(0, 0),IR(26967, 5)/* WGSL */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {11,IR(0, 0),IR(26972, 6)/* Slang */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {12,IR(0, 0),IR(26978, 4)/* Zig */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {13,IR(0, 0),IR(26982, 5)/* Rust */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {0,IR(0, 0),IR(26987, 16)/* UniformConstant */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {1,IR(0, 0),IR(27003, 6)/* Input */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {2,IR(0, 0),IR(16829, 8)/* Uniform */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {3,IR(0, 0),IR(27009, 7)/* Output */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {4,IR(0, 0),IR(26754, 10)/* Workgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5,IR(0, 0),IR(27016, 15)/* CrossWorkgroup */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {6,IR(0, 0),IR(27031, 8)/* Private */,IR(0, 0),IR(198, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {7,IR(0, 0),IR(27039, 9)/* Function */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {8,IR(0, 0),IR(27048, 8)/* Generic */,IR(0, 0),IR(200, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {9,IR(0, 0),IR(27056, 13)/* PushConstant */,IR(0, 0),IR(3, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {10,IR(0, 0),IR(27069, 14)/* AtomicCounter */,IR(0, 0),IR(82, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {11,IR(0, 0),IR(27083, 6)/* Image */,IR(0, 0),IR(1, 0),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {12,IR(0, 0),IR(27089, 14)/* StorageBuffer */,IR(0, 0),IR(3, 1),IR(188, 2),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {4172,IR(0, 0),IR(27103, 13)/* TileImageEXT */,IR(0, 0),IR(149, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {4491,IR(0, 0),IR(27116, 19)/* TileAttachmentQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5068,IR(0, 0),IR(27135, 16)/* NodePayloadAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5328,IR(0, 0),IR(27151, 16)/* CallableDataKHR */,IR(158, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5329,IR(0, 0),IR(27182, 24)/* IncomingCallableDataKHR */,IR(159, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5338,IR(0, 0),IR(27229, 14)/* RayPayloadKHR */,IR(160, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5339,IR(0, 0),IR(27256, 16)/* HitAttributeKHR */,IR(161, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5342,IR(0, 0),IR(27287, 22)/* IncomingRayPayloadKHR */,IR(162, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5343,IR(0, 0),IR(27330, 22)/* ShaderRecordBufferKHR */,IR(163, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5349,IR(0, 0),IR(27373, 22)/* PhysicalStorageBuffer */,IR(164, 1),IR(2, 1),IR(0, 2),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5385,IR(0, 0),IR(27420, 21)/* HitObjectAttributeNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5402,IR(0, 0),IR(27441, 24)/* TaskPayloadWorkgroupEXT */,IR(0, 0),IR(53, 1),IR(23, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5411,IR(0, 0),IR(27465, 22)/* HitObjectAttributeEXT */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5605,IR(0, 0),IR(27487, 17)/* CodeSectionINTEL */,IR(0, 0),IR(201, 1),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5936,IR(0, 0),IR(27504, 17)/* DeviceOnlyALTERA */,IR(165, 1),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5937,IR(0, 0),IR(27537, 15)/* HostOnlyALTERA */,IR(166, 1),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {0,IR(0, 0),IR(24392, 14)/* UncachedINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {1,IR(0, 0),IR(27566, 18)/* WriteThroughINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {2,IR(0, 0),IR(27584, 15)/* WriteBackINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {3,IR(0, 0),IR(24418, 15)/* StreamingINTEL */,IR(0, 0),IR(148, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {0,IR(0, 0),IR(15540, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {1,IR(10, 1),IR(27599, 11)/* TensorView */,IR(0, 0),IR(203, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {2,IR(10, 1),IR(27610, 11)/* DecodeFunc */,IR(0, 0),IR(204, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {0,IR(0, 0),IR(27621, 10)/* Undefined */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {1,IR(0, 0),IR(16787, 9)/* Constant */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {2,IR(0, 0),IR(26387, 12)/* ClampToEdge */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {3,IR(0, 0),IR(26405, 7)/* Repeat */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {4,IR(0, 0),IR(26412, 15)/* RepeatMirrored */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {0,IR(0, 0),IR(27631, 8)/* NoneARM */,IR(0, 0),IR(205, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {1,IR(0, 0),IR(27639, 15)/* NontemporalARM */,IR(0, 0),IR(205, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {2,IR(10, 1),IR(27654, 20)/* OutOfBoundsValueARM */,IR(0, 0),IR(205, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {4,IR(10, 1),IR(27674, 24)/* MakeElementAvailableARM */,IR(0, 0),IR(205, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {8,IR(10, 1),IR(27698, 22)/* MakeElementVisibleARM */,IR(0, 0),IR(205, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {16,IR(0, 0),IR(27720, 21)/* NonPrivateElementARM */,IR(0, 0),IR(205, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS }}; // Maps an operand kind to possible operands for that kind. @@ -1547,89 +1596,89 @@ IndexRange OperandByValueRangeForKind(spv_operand_type_t type) { case SPV_OPERAND_TYPE_ACCESS_QUALIFIER: return IR(0, 3); case SPV_OPERAND_TYPE_ADDRESSING_MODEL: return IR(3, 4); case SPV_OPERAND_TYPE_BUILT_IN: return IR(7, 126); - case SPV_OPERAND_TYPE_CAPABILITY: return IR(133, 275); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(408, 8); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(416, 3); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(419, 2); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(421, 19); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(440, 10); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(450, 4); - case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(454, 15); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(469, 4); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(473, 6); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(479, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(482, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(485, 4); - case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(489, 8); - case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(497, 3); - case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(500, 16); - case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(516, 9); - case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(525, 3); - case SPV_OPERAND_TYPE_DECORATION: return IR(528, 144); - case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(672, 8); - case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(680, 96); - case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(776, 17); - case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(793, 2); - case SPV_OPERAND_TYPE_FPENCODING: return IR(795, 3); - case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(798, 2); - case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(800, 9); - case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(809, 4); - case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(813, 4); - case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(817, 6); - case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(823, 9); - case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(832, 7); - case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(839, 4); - case SPV_OPERAND_TYPE_IMAGE: return IR(843, 17); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(860, 26); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(886, 20); - case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(906, 2); - case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(908, 3); - case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(911, 2); - case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(913, 2); - case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(915, 3); - case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(918, 5); - case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(923, 20); - case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(943, 15); - case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(958, 9); - case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(967, 4); - case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(971, 15); - case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(986, 1); - case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(987, 4); - case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(991, 1); - case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(992, 8); - case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(1000, 3); - case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1003, 12); - case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1015, 2); - case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1017, 3); - case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1020, 2); - case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1022, 5); - case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1027, 2); - case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1029, 42); - case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1071, 7); - case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1078, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1081, 1); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1082, 8); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1090, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1093, 2); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1095, 20); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1115, 10); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1125, 4); - case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1129, 14); - case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1143, 28); - case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1171, 4); - case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1175, 3); - case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1178, 5); - case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1183, 6); - case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(843, 17); + case SPV_OPERAND_TYPE_CAPABILITY: return IR(133, 277); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(410, 8); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(418, 3); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(421, 2); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(423, 19); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(442, 10); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(452, 4); + case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(456, 15); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(471, 4); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(475, 6); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(481, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(484, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(487, 4); + case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(491, 8); + case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(499, 3); + case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(502, 16); + case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(518, 9); + case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(527, 3); + case SPV_OPERAND_TYPE_DECORATION: return IR(530, 145); + case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(675, 8); + case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(683, 97); + case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(780, 17); + case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(797, 2); + case SPV_OPERAND_TYPE_FPENCODING: return IR(799, 3); + case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(802, 2); + case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(804, 9); + case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(813, 4); + case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(817, 4); + case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(821, 6); + case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(827, 9); + case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(836, 7); + case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(843, 4); + case SPV_OPERAND_TYPE_IMAGE: return IR(847, 17); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(864, 26); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(890, 20); + case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(910, 2); + case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(912, 3); + case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(915, 2); + case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(917, 2); + case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(919, 3); + case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(922, 5); + case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(927, 20); + case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(947, 15); + case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(962, 9); + case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(971, 4); + case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(975, 15); + case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(990, 1); + case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(991, 4); + case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(995, 1); + case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(996, 8); + case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(1004, 3); + case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1007, 12); + case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1019, 2); + case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1021, 3); + case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1024, 2); + case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1026, 5); + case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1031, 2); + case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1033, 42); + case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1075, 7); + case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1082, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1085, 1); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1086, 8); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1094, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1097, 2); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1099, 20); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1119, 10); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1129, 4); + case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1133, 14); + case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1147, 29); + case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1176, 4); + case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1180, 3); + case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1183, 5); + case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1188, 6); + case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(847, 17); case SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER: return IR(0, 3); - case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(958, 9); - case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(991, 1); - case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(473, 6); - case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(943, 15); - case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(1000, 3); - case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(795, 3); - case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1183, 6); - case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return IR(133, 275); + case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(962, 9); + case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(995, 1); + case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(475, 6); + case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(947, 15); + case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(1004, 3); + case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(799, 3); + case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1188, 6); + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return IR(133, 277); default: break; } return IR(0,0); @@ -1639,1290 +1688,1372 @@ IndexRange OperandByValueRangeForKind(spv_operand_type_t type) { // The fields in order are: // name, either the primary name or an alias, indexing into kStrings // index into the kOperandsByValue array -static const std::array kOperandNames{{ - {IR(4633, 9), 0}, // 0 ReadOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {IR(4659, 10), 2}, // 1 ReadWrite in SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {IR(4649, 10), 1}, // 2 WriteOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {IR(4669, 8), 3}, // 3 Logical in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4677, 11), 4}, // 4 Physical32 in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4698, 11), 5}, // 5 Physical64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4709, 24), 6}, // 6 PhysicalStorageBuffer64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4733, 27), 6}, // 7 PhysicalStorageBuffer64EXT in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(6643, 13), 92}, // 8 BaryCoordKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6656, 12), 92}, // 9 BaryCoordNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6038, 20), 68}, // 10 BaryCoordNoPerspAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6058, 28), 69}, // 11 BaryCoordNoPerspCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6691, 20), 93}, // 12 BaryCoordNoPerspKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6711, 19), 93}, // 13 BaryCoordNoPerspNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6086, 26), 70}, // 14 BaryCoordNoPerspSampleAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6183, 22), 74}, // 15 BaryCoordPullModelAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6112, 19), 71}, // 16 BaryCoordSmoothAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6131, 27), 72}, // 17 BaryCoordSmoothCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6158, 25), 73}, // 18 BaryCoordSmoothSampleAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(5842, 13), 59}, // 19 BaseInstance in SPV_OPERAND_TYPE_BUILT_IN - {IR(5816, 11), 58}, // 20 BaseVertex in SPV_OPERAND_TYPE_BUILT_IN - {IR(4817, 13), 9}, // 21 ClipDistance in SPV_OPERAND_TYPE_BUILT_IN - {IR(6550, 22), 87}, // 22 ClipDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7849, 12), 131}, // 23 ClusterIDNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5580, 13), 49}, // 24 CoreCountARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5554, 10), 48}, // 25 CoreIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5593, 13), 50}, // 26 CoreMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(4830, 13), 10}, // 27 CullDistance in SPV_OPERAND_TYPE_BUILT_IN - {IR(6572, 22), 88}, // 28 CullDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7902, 12), 132}, // 29 CullMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6898, 17), 99}, // 30 CullPrimitiveEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(7302, 17), 113}, // 31 CurrentRayTimeNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5912, 12), 62}, // 32 DeviceIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5855, 10), 60}, // 33 DrawIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5344, 22), 37}, // 34 EnqueuedWorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(5114, 10), 21}, // 35 FragCoord in SPV_OPERAND_TYPE_BUILT_IN - {IR(5200, 10), 27}, // 36 FragDepth in SPV_OPERAND_TYPE_BUILT_IN - {IR(6776, 23), 95}, // 37 FragInvocationCountEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6730, 12), 94}, // 38 FragSizeEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6205, 18), 75}, // 39 FragStencilRefEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6742, 15), 94}, // 40 FragmentSizeNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5135, 12), 23}, // 41 FrontFacing in SPV_OPERAND_TYPE_BUILT_IN - {IR(6462, 16), 83}, // 42 FullyCoveredEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(5285, 19), 33}, // 43 GlobalInvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5379, 15), 39}, // 44 GlobalLinearId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5366, 13), 38}, // 45 GlobalOffset in SPV_OPERAND_TYPE_BUILT_IN - {IR(5333, 11), 36}, // 46 GlobalSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(5210, 17), 28}, // 47 HelperInvocation in SPV_OPERAND_TYPE_BUILT_IN - {IR(7604, 11), 120}, // 48 HitIsLSSNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7562, 14), 119}, // 49 HitIsSphereNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7784, 33), 128}, // 50 HitKindBackFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7750, 34), 127}, // 51 HitKindFrontFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7281, 11), 112}, // 52 HitKindKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7292, 10), 112}, // 53 HitKindNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7732, 18), 126}, // 54 HitLSSPositionsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7835, 14), 130}, // 55 HitLSSRadiiNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7466, 37), 116}, // 56 HitMicroTriangleVertexBarycentricsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7399, 34), 115}, // 57 HitMicroTriangleVertexPositionsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7654, 20), 121}, // 58 HitSpherePositionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7817, 18), 129}, // 59 HitSphereRadiusNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7274, 7), 111}, // 60 HitTNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7342, 30), 114}, // 61 HitTriangleVertexPositionsKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7503, 20), 117}, // 62 IncomingRayFlagsKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7523, 19), 117}, // 63 IncomingRayFlagsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7163, 23), 108}, // 64 InstanceCustomIndexKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7186, 22), 108}, // 65 InstanceCustomIndexNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4852, 11), 12}, // 66 InstanceId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5540, 14), 47}, // 67 InstanceIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(4953, 13), 14}, // 68 InvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(6799, 22), 95}, // 69 InvocationsPerPixelNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6915, 12), 100}, // 70 LaunchIdKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6927, 11), 100}, // 71 LaunchIdNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6938, 14), 101}, // 72 LaunchSizeKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6952, 13), 101}, // 73 LaunchSizeNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4966, 6), 15}, // 74 Layer in SPV_OPERAND_TYPE_BUILT_IN - {IR(6594, 15), 89}, // 75 LayerPerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5267, 18), 32}, // 76 LocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5304, 21), 34}, // 77 LocalInvocationIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(6609, 16), 90}, // 78 MeshViewCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6625, 18), 91}, // 79 MeshViewIndicesNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5470, 21), 43}, // 80 NumEnqueuedSubgroups in SPV_OPERAND_TYPE_BUILT_IN - {IR(5457, 13), 42}, // 81 NumSubgroups in SPV_OPERAND_TYPE_BUILT_IN - {IR(5227, 14), 29}, // 82 NumWorkgroups in SPV_OPERAND_TYPE_BUILT_IN - {IR(7078, 22), 105}, // 83 ObjectRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7100, 21), 105}, // 84 ObjectRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7041, 19), 104}, // 85 ObjectRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7060, 18), 104}, // 86 ObjectRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7208, 17), 109}, // 87 ObjectToWorldKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7225, 16), 109}, // 88 ObjectToWorldNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5100, 14), 20}, // 89 PatchVertices in SPV_OPERAND_TYPE_BUILT_IN - {IR(5124, 11), 22}, // 90 PointCoord in SPV_OPERAND_TYPE_BUILT_IN - {IR(4807, 10), 8}, // 91 PointSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(4791, 9), 7}, // 92 Position in SPV_OPERAND_TYPE_BUILT_IN - {IR(6402, 18), 81}, // 93 PositionPerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6514, 17), 85}, // 94 PrimitiveCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4863, 12), 13}, // 95 PrimitiveId in SPV_OPERAND_TYPE_BUILT_IN - {IR(6531, 19), 86}, // 96 PrimitiveIndicesNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6846, 24), 97}, // 97 PrimitiveLineIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6821, 25), 96}, // 98 PrimitivePointIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(5865, 24), 61}, // 99 PrimitiveShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6870, 28), 98}, // 100 PrimitiveTriangleIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(7542, 20), 118}, // 101 RayGeometryIndexKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7142, 11), 107}, // 102 RayTmaxKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7153, 10), 107}, // 103 RayTmaxNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7121, 11), 106}, // 104 RayTminKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7132, 10), 106}, // 105 RayTminNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6240, 29), 76}, // 106 RemainingRecursionLevelsAMDX in SPV_OPERAND_TYPE_BUILT_IN - {IR(7706, 10), 123}, // 107 SMCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7725, 7), 125}, // 108 SMIDNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5147, 9), 24}, // 109 SampleId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5189, 11), 26}, // 110 SampleMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5174, 15), 25}, // 111 SamplePosition in SPV_OPERAND_TYPE_BUILT_IN - {IR(6339, 20), 79}, // 112 SecondaryPositionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6378, 24), 80}, // 113 SecondaryViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6287, 16), 77}, // 114 ShaderIndexAMDX in SPV_OPERAND_TYPE_BUILT_IN - {IR(5956, 15), 64}, // 115 ShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5629, 15), 53}, // 116 SubgroupEqMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5644, 18), 53}, // 117 SubgroupEqMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5684, 15), 54}, // 118 SubgroupGeMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5699, 18), 54}, // 119 SubgroupGeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5717, 15), 55}, // 120 SubgroupGtMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5732, 18), 55}, // 121 SubgroupGtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5491, 11), 44}, // 122 SubgroupId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5750, 15), 56}, // 123 SubgroupLeMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5765, 18), 56}, // 124 SubgroupLeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5502, 26), 45}, // 125 SubgroupLocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5783, 15), 57}, // 126 SubgroupLtMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5798, 18), 57}, // 127 SubgroupLtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5441, 16), 41}, // 128 SubgroupMaxSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(5394, 13), 40}, // 129 SubgroupSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(6502, 12), 84}, // 130 TaskCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5090, 10), 19}, // 131 TessCoord in SPV_OPERAND_TYPE_BUILT_IN - {IR(5075, 15), 18}, // 132 TessLevelInner in SPV_OPERAND_TYPE_BUILT_IN - {IR(5060, 15), 17}, // 133 TessLevelOuter in SPV_OPERAND_TYPE_BUILT_IN - {IR(6020, 18), 67}, // 134 TileApronSizeQCOM in SPV_OPERAND_TYPE_BUILT_IN - {IR(6002, 18), 66}, // 135 TileDimensionQCOM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5971, 15), 65}, // 136 TileOffsetQCOM in SPV_OPERAND_TYPE_BUILT_IN - {IR(4843, 9), 11}, // 137 VertexId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5528, 12), 46}, // 138 VertexIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5936, 10), 63}, // 139 ViewIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5012, 14), 16}, // 140 ViewportIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(6303, 15), 78}, // 141 ViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6440, 22), 82}, // 142 ViewportMaskPerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5606, 10), 51}, // 143 WarpIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(7716, 9), 124}, // 144 WarpIDNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5616, 13), 52}, // 145 WarpMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(7674, 13), 122}, // 146 WarpsPerSMNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5325, 8), 35}, // 147 WorkDim in SPV_OPERAND_TYPE_BUILT_IN - {IR(5255, 12), 31}, // 148 WorkgroupId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5241, 14), 30}, // 149 WorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(7000, 21), 103}, // 150 WorldRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7021, 20), 103}, // 151 WorldRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6965, 18), 102}, // 152 WorldRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6983, 17), 102}, // 153 WorldRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7241, 17), 110}, // 154 WorldToObjectKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7258, 16), 110}, // 155 WorldToObjectNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4688, 10), 137}, // 156 Addresses in SPV_OPERAND_TYPE_CAPABILITY - {IR(12919, 34), 359}, // 157 ArbitraryPrecisionFixedPointINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12607, 37), 347}, // 158 ArbitraryPrecisionFloatingPointINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12575, 32), 346}, // 159 ArbitraryPrecisionIntegersINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13476, 19), 384}, // 160 ArithmeticFenceEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12240, 9), 332}, // 161 AsmINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13393, 20), 380}, // 162 AtomicFloat16AddEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12295, 23), 335}, // 163 AtomicFloat16MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11768, 22), 310}, // 164 AtomicFloat16VectorNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13309, 20), 376}, // 165 AtomicFloat32AddEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12249, 23), 333}, // 166 AtomicFloat32MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(13329, 20), 377}, // 167 AtomicFloat64AddEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12272, 23), 334}, // 168 AtomicFloat64MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8082, 14), 153}, // 169 AtomicStorage in SPV_OPERAND_TYPE_CAPABILITY - {IR(9469, 17), 229}, // 170 AtomicStorageOps in SPV_OPERAND_TYPE_CAPABILITY - {IR(13434, 24), 382}, // 171 BFloat16ConversionINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(10091, 29), 263}, // 172 BFloat16CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(10069, 22), 262}, // 173 BFloat16DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(10053, 16), 261}, // 174 BFloat16TypeKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(14072, 20), 407}, // 175 BindlessImagesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11705, 18), 307}, // 176 BindlessTextureNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13246, 16), 372}, // 177 BitInstructions in SPV_OPERAND_TYPE_CAPABILITY - {IR(13018, 19), 363}, // 178 BlockingPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(14033, 19), 405}, // 179 CacheControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(4817, 13), 163}, // 180 ClipDistance in SPV_OPERAND_TYPE_CAPABILITY - {IR(11363, 32), 296}, // 181 ComputeDerivativeGroupLinearKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11395, 31), 296}, // 182 ComputeDerivativeGroupLinearNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(10243, 31), 275}, // 183 ComputeDerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(10274, 30), 275}, // 184 ComputeDerivativeGroupQuadsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11945, 30), 319}, // 185 CooperativeMatrixBlockLoadsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9838, 32), 248}, // 186 CooperativeMatrixConversionQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(11838, 31), 316}, // 187 CooperativeMatrixConversionsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9117, 21), 370}, // 188 CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9052, 28), 211}, // 189 CooperativeMatrixLayoutsARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(11451, 20), 298}, // 190 CooperativeMatrixNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11869, 40), 317}, // 191 CooperativeMatrixPerElementOperationsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11808, 30), 315}, // 192 CooperativeMatrixReductionsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11909, 36), 318}, // 193 CooperativeMatrixTensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11748, 20), 309}, // 194 CooperativeVectorNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11975, 28), 320}, // 195 CooperativeVectorTrainingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(5564, 16), 203}, // 196 CoreBuiltinsARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(4830, 13), 164}, // 197 CullDistance in SPV_OPERAND_TYPE_CAPABILITY - {IR(13413, 21), 381}, // 198 DebugInfoModuleINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11574, 25), 303}, // 199 DemoteToHelperInvocation in SPV_OPERAND_TYPE_CAPABILITY - {IR(11599, 28), 303}, // 200 DemoteToHelperInvocationEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9608, 18), 235}, // 201 DenormFlushToZero in SPV_OPERAND_TYPE_CAPABILITY - {IR(9593, 15), 234}, // 202 DenormPreserve in SPV_OPERAND_TYPE_CAPABILITY - {IR(8529, 18), 182}, // 203 DerivativeControl in SPV_OPERAND_TYPE_CAPABILITY - {IR(8053, 14), 151}, // 204 DeviceEnqueue in SPV_OPERAND_TYPE_CAPABILITY - {IR(5924, 12), 225}, // 205 DeviceGroup in SPV_OPERAND_TYPE_CAPABILITY - {IR(11627, 23), 304}, // 206 DisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13197, 11), 368}, // 207 DotProduct in SPV_OPERAND_TYPE_CAPABILITY - {IR(13091, 22), 366}, // 208 DotProductInput4x8Bit in SPV_OPERAND_TYPE_CAPABILITY - {IR(13113, 25), 366}, // 209 DotProductInput4x8BitKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13138, 28), 367}, // 210 DotProductInput4x8BitPacked in SPV_OPERAND_TYPE_CAPABILITY - {IR(13166, 31), 367}, // 211 DotProductInput4x8BitPackedKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13050, 19), 365}, // 212 DotProductInputAll in SPV_OPERAND_TYPE_CAPABILITY - {IR(13069, 22), 365}, // 213 DotProductInputAllKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13208, 14), 368}, // 214 DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(5827, 15), 216}, // 215 DrawParameters in SPV_OPERAND_TYPE_CAPABILITY - {IR(12352, 16), 338}, // 216 ExpectAssumeKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13302, 7), 375}, // 217 FMAKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12555, 20), 345}, // 218 FPFastMathModeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13610, 28), 390}, // 219 FPGAArgumentInterfacesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12895, 24), 358}, // 220 FPGABufferLocationINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12768, 27), 353}, // 221 FPGAClusterAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13495, 29), 385}, // 222 FPGAClusterAttributesV2INTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12809, 20), 355}, // 223 FPGADSPControlINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12855, 40), 357}, // 224 FPGAInvocationPipeliningAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12718, 26), 351}, // 225 FPGAKernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13524, 28), 386}, // 226 FPGAKernelAttributesv2INTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13586, 24), 389}, // 227 FPGALatencyControlINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12674, 22), 349}, // 228 FPGALoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12744, 24), 352}, // 229 FPGAMemoryAccessesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12529, 26), 344}, // 230 FPGAMemoryAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13037, 13), 364}, // 231 FPGARegINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13570, 16), 388}, // 232 FPMaxErrorINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7967, 8), 142}, // 233 Float16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(7953, 14), 141}, // 234 Float16Buffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(9893, 16), 250}, // 235 Float16ImageAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(7975, 8), 143}, // 236 Float64 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9090, 27), 213}, // 237 Float8CooperativeMatrixEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9080, 10), 212}, // 238 Float8EXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(13287, 15), 374}, // 239 FloatControls2 in SPV_OPERAND_TYPE_CAPABILITY - {IR(12148, 23), 328}, // 240 FloatingPointModeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(6668, 23), 274}, // 241 FragmentBarycentricKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(10221, 22), 274}, // 242 FragmentBarycentricNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(6757, 19), 276}, // 243 FragmentDensityEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(6478, 24), 270}, // 244 FragmentFullyCoveredEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9931, 16), 252}, // 245 FragmentMaskAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(11542, 32), 302}, // 246 FragmentShaderPixelInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11471, 33), 299}, // 247 FragmentShaderSampleInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11504, 38), 300}, // 248 FragmentShaderShadingRateInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(5889, 23), 214}, // 249 FragmentShadingRateKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12503, 26), 343}, // 250 FunctionFloatControlINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12194, 22), 330}, // 251 FunctionPointersINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13933, 22), 401}, // 252 FunctionVariantsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8374, 15), 169}, // 253 GenericPointer in SPV_OPERAND_TYPE_CAPABILITY - {IR(4875, 9), 135}, // 254 Geometry in SPV_OPERAND_TYPE_CAPABILITY - {IR(8124, 18), 156}, // 255 GeometryPointSize in SPV_OPERAND_TYPE_CAPABILITY - {IR(10149, 28), 265}, // 256 GeometryShaderPassthroughNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(8587, 16), 185}, // 257 GeometryStreams in SPV_OPERAND_TYPE_CAPABILITY - {IR(13668, 35), 392}, // 258 GlobalVariableFPGADecorationsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13638, 30), 391}, // 259 GlobalVariableHostAccessINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9043, 9), 210}, // 260 GraphARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(5407, 16), 192}, // 261 GroupNonUniform in SPV_OPERAND_TYPE_CAPABILITY - {IR(8726, 26), 194}, // 262 GroupNonUniformArithmetic in SPV_OPERAND_TYPE_CAPABILITY - {IR(5662, 22), 195}, // 263 GroupNonUniformBallot in SPV_OPERAND_TYPE_CAPABILITY - {IR(8806, 25), 198}, // 264 GroupNonUniformClustered in SPV_OPERAND_TYPE_CAPABILITY - {IR(10318, 29), 277}, // 265 GroupNonUniformPartitionedNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(8831, 20), 199}, // 266 GroupNonUniformQuad in SPV_OPERAND_TYPE_CAPABILITY - {IR(13262, 25), 373}, // 267 GroupNonUniformRotateKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(8752, 23), 196}, // 268 GroupNonUniformShuffle in SPV_OPERAND_TYPE_CAPABILITY - {IR(8775, 31), 197}, // 269 GroupNonUniformShuffleRelative in SPV_OPERAND_TYPE_CAPABILITY - {IR(8706, 20), 193}, // 270 GroupNonUniformVote in SPV_OPERAND_TYPE_CAPABILITY - {IR(13955, 26), 402}, // 271 GroupUniformArithmeticKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(8046, 7), 150}, // 272 Groups in SPV_OPERAND_TYPE_CAPABILITY - {IR(13005, 13), 362}, // 273 IOPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8443, 8), 175}, // 274 Image1D in SPV_OPERAND_TYPE_CAPABILITY - {IR(8002, 11), 146}, // 275 ImageBasic in SPV_OPERAND_TYPE_CAPABILITY - {IR(8465, 12), 178}, // 276 ImageBuffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(8320, 15), 165}, // 277 ImageCubeArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(10204, 17), 272}, // 278 ImageFootprintNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9909, 22), 251}, // 279 ImageGatherBiasLodAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(8142, 20), 157}, // 280 ImageGatherExtended in SPV_OPERAND_TYPE_CAPABILITY - {IR(8477, 13), 179}, // 281 ImageMSArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(8028, 12), 148}, // 282 ImageMipmap in SPV_OPERAND_TYPE_CAPABILITY - {IR(8518, 11), 181}, // 283 ImageQuery in SPV_OPERAND_TYPE_CAPABILITY - {IR(8013, 15), 147}, // 284 ImageReadWrite in SPV_OPERAND_TYPE_CAPABILITY - {IR(9947, 21), 254}, // 285 ImageReadWriteLodAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(8352, 10), 167}, // 286 ImageRect in SPV_OPERAND_TYPE_CAPABILITY - {IR(12216, 24), 331}, // 287 IndirectReferencesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8394, 16), 171}, // 288 InputAttachment in SPV_OPERAND_TYPE_CAPABILITY - {IR(10433, 36), 280}, // 289 InputAttachmentArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10469, 39), 280}, // 290 InputAttachmentArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(10974, 39), 287}, // 291 InputAttachmentArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(11013, 42), 287}, // 292 InputAttachmentArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8096, 6), 154}, // 293 Int16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(10026, 27), 260}, // 294 Int4CooperativeMatrixINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(10012, 14), 259}, // 295 Int4TypeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7983, 6), 144}, // 296 Int64 in SPV_OPERAND_TYPE_CAPABILITY - {IR(7989, 13), 145}, // 297 Int64Atomics in SPV_OPERAND_TYPE_CAPABILITY - {IR(9968, 14), 255}, // 298 Int64ImageEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8389, 5), 170}, // 299 Int8 in SPV_OPERAND_TYPE_CAPABILITY - {IR(12171, 23), 329}, // 300 IntegerFunctions2INTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8547, 22), 183}, // 301 InterpolationFunction in SPV_OPERAND_TYPE_CAPABILITY - {IR(4642, 7), 139}, // 302 Kernel in SPV_OPERAND_TYPE_CAPABILITY - {IR(12696, 22), 350}, // 303 KernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7936, 8), 138}, // 304 Linkage in SPV_OPERAND_TYPE_CAPABILITY - {IR(8067, 15), 152}, // 305 LiteralSampler in SPV_OPERAND_TYPE_CAPABILITY - {IR(13349, 20), 378}, // 306 LongCompositesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12795, 14), 354}, // 307 LoopFuseINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(14008, 25), 404}, // 308 MaskedGatherScatterINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7929, 7), 133}, // 309 Matrix in SPV_OPERAND_TYPE_CAPABILITY - {IR(12829, 26), 356}, // 310 MemoryAccessAliasingINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(4938, 15), 273}, // 311 MeshShadingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(4924, 14), 271}, // 312 MeshShadingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(8426, 7), 173}, // 313 MinLod in SPV_OPERAND_TYPE_CAPABILITY - {IR(5946, 10), 226}, // 314 MultiView in SPV_OPERAND_TYPE_CAPABILITY - {IR(5026, 14), 188}, // 315 MultiViewport in SPV_OPERAND_TYPE_CAPABILITY - {IR(8681, 13), 190}, // 316 NamedBarrier in SPV_OPERAND_TYPE_CAPABILITY - {IR(13369, 11), 379}, // 317 OptNoneEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(13380, 13), 379}, // 318 OptNoneINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(6420, 20), 269}, // 319 PerViewAttributesNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4760, 31), 295}, // 320 PhysicalStorageBufferAddresses in SPV_OPERAND_TYPE_CAPABILITY - {IR(11329, 34), 295}, // 321 PhysicalStorageBufferAddressesEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8694, 12), 191}, // 322 PipeStorage in SPV_OPERAND_TYPE_CAPABILITY - {IR(8040, 6), 149}, // 323 Pipes in SPV_OPERAND_TYPE_CAPABILITY - {IR(9997, 15), 258}, // 324 QuadControlKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11790, 18), 312}, // 325 RawAccessChainsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(7914, 15), 369}, // 326 RayCullMaskKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9706, 12), 240}, // 327 RayQueryKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11723, 25), 308}, // 328 RayQueryPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9683, 23), 239}, // 329 RayQueryProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7861, 41), 321}, // 330 RayTracingClusterAccelerationStructureNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(7433, 33), 311}, // 331 RayTracingDisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4910, 14), 243}, // 332 RayTracingKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7615, 39), 314}, // 333 RayTracingLinearSweptSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(7319, 23), 292}, // 334 RayTracingMotionBlurNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4897, 13), 291}, // 335 RayTracingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11650, 29), 305}, // 336 RayTracingOpacityMicromapEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(7372, 27), 290}, // 337 RayTracingPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11426, 25), 297}, // 338 RayTracingProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7576, 28), 313}, // 339 RayTracingSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9737, 32), 242}, // 340 RayTraversalPrimitiveCullingKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(14052, 20), 406}, // 341 RegisterLimitsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13222, 24), 371}, // 342 ReplicatedCompositesEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12127, 21), 327}, // 343 RoundToInfinityINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9651, 16), 237}, // 344 RoundingModeRTE in SPV_OPERAND_TYPE_CAPABILITY - {IR(9667, 16), 238}, // 345 RoundingModeRTZ in SPV_OPERAND_TYPE_CAPABILITY - {IR(12976, 29), 361}, // 346 RuntimeAlignedAttributeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(10384, 23), 279}, // 347 RuntimeDescriptorArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(10407, 26), 279}, // 348 RuntimeDescriptorArrayEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(10120, 29), 264}, // 349 SampleMaskOverrideCoverageNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9486, 28), 230}, // 350 SampleMaskPostDepthCoverage in SPV_OPERAND_TYPE_CAPABILITY - {IR(5156, 18), 166}, // 351 SampleRateShading in SPV_OPERAND_TYPE_CAPABILITY - {IR(8433, 10), 174}, // 352 Sampled1D in SPV_OPERAND_TYPE_CAPABILITY - {IR(8451, 14), 177}, // 353 SampledBuffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(8335, 17), 176}, // 354 SampledCubeArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(8220, 33), 160}, // 355 SampledImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10747, 36), 284}, // 356 SampledImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10783, 39), 284}, // 357 SampledImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8362, 12), 168}, // 358 SampledRect in SPV_OPERAND_TYPE_CAPABILITY - {IR(4800, 7), 134}, // 359 Shader in SPV_OPERAND_TYPE_CAPABILITY - {IR(9982, 15), 256}, // 360 ShaderClockKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(6269, 18), 257}, // 361 ShaderEnqueueAMDX in SPV_OPERAND_TYPE_CAPABILITY - {IR(11679, 26), 306}, // 362 ShaderInvocationReorderNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4972, 12), 200}, // 363 ShaderLayer in SPV_OPERAND_TYPE_CAPABILITY - {IR(10347, 17), 278}, // 364 ShaderNonUniform in SPV_OPERAND_TYPE_CAPABILITY - {IR(10364, 20), 278}, // 365 ShaderNonUniformEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(7687, 19), 301}, // 366 ShaderSMBuiltinsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(6359, 19), 268}, // 367 ShaderStereoViewNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(5040, 20), 201}, // 368 ShaderViewportIndex in SPV_OPERAND_TYPE_CAPABILITY - {IR(4984, 28), 266}, // 369 ShaderViewportIndexLayerEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(10177, 27), 266}, // 370 ShaderViewportIndexLayerNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(6318, 21), 267}, // 371 ShaderViewportMaskNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(10304, 14), 276}, // 372 ShadingRateNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9626, 25), 236}, // 373 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_CAPABILITY - {IR(8410, 16), 172}, // 374 SparseResidency in SPV_OPERAND_TYPE_CAPABILITY - {IR(13912, 21), 400}, // 375 SpecConditionalINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13458, 18), 383}, // 376 SplitBarrierINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(6223, 17), 253}, // 377 StencilExportEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9274, 25), 221}, // 378 StorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(9514, 24), 231}, // 379 StorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(8253, 34), 161}, // 380 StorageBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10822, 37), 285}, // 381 StorageBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10859, 40), 285}, // 382 StorageBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8287, 33), 162}, // 383 StorageImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10899, 36), 286}, // 384 StorageImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10935, 39), 286}, // 385 StorageImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8490, 28), 180}, // 386 StorageImageExtendedFormats in SPV_OPERAND_TYPE_CAPABILITY - {IR(8162, 24), 158}, // 387 StorageImageMultisample in SPV_OPERAND_TYPE_CAPABILITY - {IR(8603, 30), 186}, // 388 StorageImageReadWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY - {IR(8633, 31), 187}, // 389 StorageImageWriteWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY - {IR(9401, 21), 224}, // 390 StorageInputOutput16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9379, 22), 223}, // 391 StoragePushConstant16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9572, 21), 233}, // 392 StoragePushConstant8 in SPV_OPERAND_TYPE_CAPABILITY - {IR(8966, 37), 208}, // 393 StorageTensorArrayDynamicIndexingARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9003, 40), 209}, // 394 StorageTensorArrayNonUniformIndexingARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(10589, 39), 282}, // 395 StorageTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10628, 42), 282}, // 396 StorageTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11142, 42), 289}, // 397 StorageTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(11184, 45), 289}, // 398 StorageTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9362, 17), 222}, // 399 StorageUniform16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9299, 28), 221}, // 400 StorageUniformBufferBlock16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(13731, 23), 394}, // 401 Subgroup2DBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13754, 30), 395}, // 402 Subgroup2DBlockTransformINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13784, 30), 396}, // 403 Subgroup2DBlockTransposeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12439, 39), 341}, // 404 SubgroupAvcMotionEstimationChromaINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12368, 33), 339}, // 405 SubgroupAvcMotionEstimationINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12401, 38), 340}, // 406 SubgroupAvcMotionEstimationIntraINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(5423, 18), 215}, // 407 SubgroupBallotKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12043, 27), 324}, // 408 SubgroupBufferBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13703, 28), 393}, // 409 SubgroupBufferPrefetchINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8664, 17), 189}, // 410 SubgroupDispatch in SPV_OPERAND_TYPE_CAPABILITY - {IR(12070, 26), 325}, // 411 SubgroupImageBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12096, 31), 326}, // 412 SubgroupImageMediaBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13814, 38), 397}, // 413 SubgroupMatrixMultiplyAccumulateINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12022, 21), 323}, // 414 SubgroupShuffleINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9258, 16), 220}, // 415 SubgroupVoteKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13552, 18), 387}, // 416 TaskSequenceINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12003, 19), 322}, // 417 TensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13981, 27), 403}, // 418 TensorFloat32RoundingINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8955, 11), 207}, // 419 TensorsARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(13852, 28), 398}, // 420 TernaryBitwiseFunctionINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(4884, 13), 136}, // 421 Tessellation in SPV_OPERAND_TYPE_CAPABILITY - {IR(8102, 22), 155}, // 422 TessellationPointSize in SPV_OPERAND_TYPE_CAPABILITY - {IR(9870, 23), 249}, // 423 TextureBlockMatch2QCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9816, 22), 246}, // 424 TextureBlockMatchQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9795, 21), 245}, // 425 TextureBoxFilterQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9769, 26), 244}, // 426 TextureSampleWeightedQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(8869, 28), 204}, // 427 TileImageColorReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8897, 28), 205}, // 428 TileImageDepthReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8925, 30), 206}, // 429 TileImageStencilReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(5986, 16), 247}, // 430 TileShadingQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(8569, 18), 184}, // 431 TransformFeedback in SPV_OPERAND_TYPE_CAPABILITY - {IR(12953, 23), 360}, // 432 USMStorageClassesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9327, 35), 222}, // 433 UniformAndStorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(9538, 34), 232}, // 434 UniformAndStorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(8186, 34), 159}, // 435 UniformBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10670, 37), 283}, // 436 UniformBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10707, 40), 283}, // 437 UniformBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8851, 18), 202}, // 438 UniformDecoration in SPV_OPERAND_TYPE_CAPABILITY - {IR(10508, 39), 281}, // 439 UniformTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10547, 42), 281}, // 440 UniformTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11055, 42), 288}, // 441 UniformTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(11097, 45), 288}, // 442 UniformTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12644, 30), 348}, // 443 UnstructuredLoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9718, 19), 241}, // 444 UntypedPointersKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13880, 32), 399}, // 445 UntypedVariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12478, 25), 342}, // 446 VariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9452, 17), 228}, // 447 VariablePointers in SPV_OPERAND_TYPE_CAPABILITY - {IR(9422, 30), 227}, // 448 VariablePointersStorageBuffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(7944, 9), 140}, // 449 Vector16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(12337, 15), 337}, // 450 VectorAnyINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12318, 19), 336}, // 451 VectorComputeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11229, 18), 293}, // 452 VulkanMemoryModel in SPV_OPERAND_TYPE_CAPABILITY - {IR(11268, 29), 294}, // 453 VulkanMemoryModelDeviceScope in SPV_OPERAND_TYPE_CAPABILITY - {IR(11297, 32), 294}, // 454 VulkanMemoryModelDeviceScopeKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11247, 21), 293}, // 455 VulkanMemoryModelKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9214, 44), 219}, // 456 WorkgroupMemoryExplicitLayout16BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9171, 43), 218}, // 457 WorkgroupMemoryExplicitLayout8BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9138, 33), 217}, // 458 WorkgroupMemoryExplicitLayoutKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(14104, 8), 409}, // 459 Address in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14112, 8), 410}, // 460 Boolean in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14120, 6), 411}, // 461 Float in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14126, 7), 412}, // 462 Signed in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14133, 11), 413}, // 463 SignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14144, 9), 414}, // 464 Unsigned in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14153, 13), 415}, // 465 UnsignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14092, 12), 408}, // 466 Unspecified in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14166, 6), 416}, // 467 Class in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(14172, 10), 417}, // 468 Structure in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(14182, 6), 418}, // 469 Union in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(14203, 20), 420}, // 470 ImportedDeclaration in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(14188, 15), 419}, // 471 ImportedModule in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(14312, 15), 428}, // 472 FlagArtificial in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14327, 13), 429}, // 473 FlagExplicit in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14300, 12), 427}, // 474 FlagFwdDecl in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14390, 21), 433}, // 475 FlagIndirectVariable in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14283, 17), 426}, // 476 FlagIsDefinition in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14467, 16), 437}, // 477 FlagIsEnumClass in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14271, 12), 425}, // 478 FlagIsLocal in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14451, 16), 436}, // 479 FlagIsOptimized in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14244, 14), 423}, // 480 FlagIsPrivate in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14228, 16), 422}, // 481 FlagIsProtected in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14258, 13), 424}, // 482 FlagIsPublic in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14411, 20), 434}, // 483 FlagLValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14355, 18), 431}, // 484 FlagObjectPointer in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14340, 15), 430}, // 485 FlagPrototyped in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14431, 20), 435}, // 486 FlagRValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14373, 17), 432}, // 487 FlagStaticMember in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14503, 24), 439}, // 488 FlagTypePassByReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14483, 20), 438}, // 489 FlagTypePassByValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14223, 5), 421}, // 490 None in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14588, 9), 444}, // 491 BitPiece in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14620, 7), 448}, // 492 Constu in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14527, 6), 440}, // 493 Deref in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14627, 9), 449}, // 494 Fragment in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14538, 6), 442}, // 495 Minus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14533, 5), 441}, // 496 Plus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14577, 11), 443}, // 497 PlusUconst in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14609, 11), 447}, // 498 StackValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14597, 5), 445}, // 499 Swap in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14602, 7), 446}, // 500 Xderef in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14672, 11), 453}, // 501 AtomicType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14636, 10), 450}, // 502 ConstType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14659, 13), 452}, // 503 RestrictType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14646, 13), 451}, // 504 VolatileType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14683, 10), 454}, // 505 Float16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14693, 10), 455}, // 506 Float32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14703, 10), 456}, // 507 Float64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14871, 12), 467}, // 508 FloatE4M3NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14883, 12), 468}, // 509 FloatE5M2NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14726, 14), 458}, // 510 SignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14740, 14), 459}, // 511 SignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14754, 14), 460}, // 512 SignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14713, 13), 457}, // 513 SignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14831, 19), 465}, // 514 SignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14783, 16), 462}, // 515 UnsignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14799, 16), 463}, // 516 UnsignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14815, 16), 464}, // 517 UnsignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14768, 15), 461}, // 518 UnsignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14850, 21), 466}, // 519 UnsignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14947, 28), 472}, // 520 ColumnBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14907, 15), 470}, // 521 ColumnMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14922, 25), 471}, // 522 RowBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14895, 12), 469}, // 523 RowMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14983, 27), 474}, // 524 MatrixASignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(15010, 27), 475}, // 525 MatrixBSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(15037, 27), 476}, // 526 MatrixCSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(15064, 32), 477}, // 527 MatrixResultSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14975, 8), 473}, // 528 NoneKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(15096, 26), 478}, // 529 SaturatingAccumulationKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(15133, 4), 481}, // 530 2x2 in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {IR(15126, 7), 480}, // 531 Column in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {IR(15122, 4), 479}, // 532 Row in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {IR(15137, 11), 482}, // 533 MatrixAKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {IR(15159, 21), 484}, // 534 MatrixAccumulatorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {IR(15148, 11), 483}, // 535 MatrixBKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {IR(15191, 14), 486}, // 536 ColumnMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(15205, 21), 487}, // 537 InferencingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(15180, 11), 485}, // 538 RowMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(15226, 18), 488}, // 539 TrainingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(14104, 8), 490}, // 540 Address in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14112, 8), 491}, // 541 Boolean in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14120, 6), 492}, // 542 Float in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14126, 7), 493}, // 543 Signed in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14133, 11), 494}, // 544 SignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14144, 9), 495}, // 545 Unsigned in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14153, 13), 496}, // 546 UnsignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14092, 12), 489}, // 547 Unspecified in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14166, 6), 497}, // 548 Class in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {IR(14172, 10), 498}, // 549 Structure in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {IR(14182, 6), 499}, // 550 Union in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {IR(14312, 15), 507}, // 551 FlagArtificial in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14327, 13), 508}, // 552 FlagExplicit in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14300, 12), 506}, // 553 FlagFwdDecl in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14390, 21), 512}, // 554 FlagIndirectVariable in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14283, 17), 505}, // 555 FlagIsDefinition in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14271, 12), 504}, // 556 FlagIsLocal in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14451, 16), 515}, // 557 FlagIsOptimized in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14244, 14), 502}, // 558 FlagIsPrivate in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14228, 16), 501}, // 559 FlagIsProtected in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14258, 13), 503}, // 560 FlagIsPublic in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14411, 20), 513}, // 561 FlagLValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14355, 18), 510}, // 562 FlagObjectPointer in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14340, 15), 509}, // 563 FlagPrototyped in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14431, 20), 514}, // 564 FlagRValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14373, 17), 511}, // 565 FlagStaticMember in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14223, 5), 500}, // 566 None in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14588, 9), 520}, // 567 BitPiece in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14620, 7), 524}, // 568 Constu in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14527, 6), 516}, // 569 Deref in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14538, 6), 518}, // 570 Minus in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14533, 5), 517}, // 571 Plus in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14577, 11), 519}, // 572 PlusUconst in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14609, 11), 523}, // 573 StackValue in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14597, 5), 521}, // 574 Swap in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14602, 7), 522}, // 575 Xderef in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14636, 10), 525}, // 576 ConstType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {IR(14659, 13), 527}, // 577 RestrictType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {IR(14646, 13), 526}, // 578 VolatileType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {IR(17468, 16), 642}, // 579 AliasScopeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15453, 8), 547}, // 580 Aliased in SPV_OPERAND_TYPE_DECORATION - {IR(16571, 15), 600}, // 581 AliasedPointer in SPV_OPERAND_TYPE_DECORATION - {IR(16586, 18), 600}, // 582 AliasedPointerEXT in SPV_OPERAND_TYPE_DECORATION - {IR(15931, 10), 571}, // 583 Alignment in SPV_OPERAND_TYPE_DECORATION - {IR(15975, 12), 573}, // 584 AlignmentId in SPV_OPERAND_TYPE_DECORATION - {IR(15304, 12), 534}, // 585 ArrayStride in SPV_OPERAND_TYPE_DECORATION - {IR(17249, 14), 630}, // 586 BankBitsINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17088, 15), 623}, // 587 BankwidthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15608, 8), 560}, // 588 Binding in SPV_OPERAND_TYPE_DECORATION - {IR(16652, 16), 603}, // 589 BindlessImageNV in SPV_OPERAND_TYPE_DECORATION - {IR(16634, 18), 602}, // 590 BindlessSamplerNV in SPV_OPERAND_TYPE_DECORATION - {IR(15268, 6), 530}, // 591 Block in SPV_OPERAND_TYPE_DECORATION - {IR(16115, 22), 580}, // 592 BlockMatchSamplerQCOM in SPV_OPERAND_TYPE_DECORATION - {IR(16093, 22), 579}, // 593 BlockMatchTextureQCOM in SPV_OPERAND_TYPE_DECORATION - {IR(16683, 13), 605}, // 594 BoundImageNV in SPV_OPERAND_TYPE_DECORATION - {IR(16668, 15), 604}, // 595 BoundSamplerNV in SPV_OPERAND_TYPE_DECORATION - {IR(15274, 12), 531}, // 596 BufferBlock in SPV_OPERAND_TYPE_DECORATION - {IR(17561, 20), 647}, // 597 BufferLocationINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15385, 8), 539}, // 598 BuiltIn in SPV_OPERAND_TYPE_DECORATION - {IR(17331, 19), 635}, // 599 BurstCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15351, 8), 538}, // 600 CPacked in SPV_OPERAND_TYPE_DECORATION - {IR(18371, 22), 670}, // 601 CacheControlLoadINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18430, 23), 671}, // 602 CacheControlStoreINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17350, 15), 636}, // 603 CacheSizeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15418, 9), 543}, // 604 Centroid in SPV_OPERAND_TYPE_DECORATION - {IR(16736, 13), 608}, // 605 ClobberINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15479, 9), 550}, // 606 Coherent in SPV_OPERAND_TYPE_DECORATION - {IR(15295, 9), 533}, // 607 ColMajor in SPV_OPERAND_TYPE_DECORATION - {IR(15592, 10), 558}, // 608 Component in SPV_OPERAND_TYPE_DECORATION - {IR(18318, 17), 669}, // 609 ConditionalINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17870, 27), 657}, // 610 ConduitKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15470, 9), 549}, // 611 Constant in SPV_OPERAND_TYPE_DECORATION - {IR(16882, 14), 615}, // 612 CounterBuffer in SPV_OPERAND_TYPE_DECORATION - {IR(15616, 14), 561}, // 613 DescriptorSet in SPV_OPERAND_TYPE_DECORATION - {IR(17365, 28), 637}, // 614 DontStaticallyCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17141, 16), 626}, // 615 DoublepumpINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16137, 18), 581}, // 616 ExplicitInterpAMD in SPV_OPERAND_TYPE_DECORATION - {IR(15801, 15), 567}, // 617 FPFastMathMode in SPV_OPERAND_TYPE_DECORATION - {IR(17789, 26), 654}, // 618 FPMaxErrorDecorationINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15751, 15), 566}, // 619 FPRoundingMode in SPV_OPERAND_TYPE_DECORATION - {IR(15407, 5), 541}, // 620 Flat in SPV_OPERAND_TYPE_DECORATION - {IR(17263, 20), 631}, // 621 ForcePow2DepthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15703, 14), 565}, // 622 FuncParamAttr in SPV_OPERAND_TYPE_DECORATION - {IR(16793, 21), 611}, // 623 FuncParamIOKindINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17024, 24), 619}, // 624 FunctionDenormModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17634, 31), 649}, // 625 FunctionFloatingPointModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16967, 26), 618}, // 626 FunctionRoundingModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17424, 25), 640}, // 627 FuseLoopsInFunctionINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15340, 11), 537}, // 628 GLSLPacked in SPV_OPERAND_TYPE_DECORATION - {IR(15329, 11), 536}, // 629 GLSLShared in SPV_OPERAND_TYPE_DECORATION - {IR(16856, 26), 614}, // 630 GlobalVariableOffsetINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16604, 30), 601}, // 631 HitObjectShaderRecordBufferNV in SPV_OPERAND_TYPE_DECORATION - {IR(16896, 24), 615}, // 632 HlslCounterBufferGOOGLE in SPV_OPERAND_TYPE_DECORATION - {IR(16933, 19), 616}, // 633 HlslSemanticGOOGLE in SPV_OPERAND_TYPE_DECORATION - {IR(18213, 16), 666}, // 634 HostAccessINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17581, 19), 648}, // 635 IOPipeStorageINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18290, 28), 668}, // 636 ImplementInRegisterMapINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15602, 6), 559}, // 637 Index in SPV_OPERAND_TYPE_DECORATION - {IR(18276, 14), 667}, // 638 InitModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17497, 24), 644}, // 639 InitiationIntervalINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15910, 21), 570}, // 640 InputAttachmentIndex in SPV_OPERAND_TYPE_DECORATION - {IR(15434, 10), 545}, // 641 Invariant in SPV_OPERAND_TYPE_DECORATION - {IR(17840, 30), 656}, // 642 LatencyControlConstraintINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17815, 25), 655}, // 643 LatencyControlLabelINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15878, 18), 568}, // 644 LinkageAttributes in SPV_OPERAND_TYPE_DECORATION - {IR(15583, 9), 557}, // 645 Location in SPV_OPERAND_TYPE_DECORATION - {IR(17928, 33), 659}, // 646 MMHostInterfaceAddressWidthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17961, 30), 660}, // 647 MMHostInterfaceDataWidthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17991, 28), 661}, // 648 MMHostInterfaceLatencyINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18087, 29), 663}, // 649 MMHostInterfaceMaxBurstINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18053, 34), 662}, // 650 MMHostInterfaceReadWriteModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18116, 32), 664}, // 651 MMHostInterfaceWaitRequestINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17449, 19), 641}, // 652 MathOpDSPModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15316, 13), 535}, // 653 MatrixStride in SPV_OPERAND_TYPE_DECORATION - {IR(15941, 14), 572}, // 654 MaxByteOffset in SPV_OPERAND_TYPE_DECORATION - {IR(15987, 16), 574}, // 655 MaxByteOffsetId in SPV_OPERAND_TYPE_DECORATION - {IR(17521, 20), 645}, // 656 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17103, 22), 624}, // 657 MaxPrivateCopiesINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17157, 19), 627}, // 658 MaxReplicatesINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17725, 18), 652}, // 659 MediaBlockIOINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17062, 12), 621}, // 660 MemoryINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17196, 11), 629}, // 661 MergeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17484, 13), 643}, // 662 NoAliasINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15896, 14), 569}, // 663 NoContraction in SPV_OPERAND_TYPE_DECORATION - {IR(15393, 14), 540}, // 664 NoPerspective in SPV_OPERAND_TYPE_DECORATION - {IR(16047, 13), 576}, // 665 NoSignedWrap in SPV_OPERAND_TYPE_DECORATION - {IR(16060, 15), 577}, // 666 NoUnsignedWrap in SPV_OPERAND_TYPE_DECORATION - {IR(16187, 20), 583}, // 667 NodeMaxPayloadsAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16155, 32), 582}, // 668 NodeSharesPayloadLimitsWithAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(15500, 12), 552}, // 669 NonReadable in SPV_OPERAND_TYPE_DECORATION - {IR(16511, 11), 598}, // 670 NonUniform in SPV_OPERAND_TYPE_DECORATION - {IR(16522, 14), 598}, // 671 NonUniformEXT in SPV_OPERAND_TYPE_DECORATION - {IR(15488, 12), 551}, // 672 NonWritable in SPV_OPERAND_TYPE_DECORATION - {IR(17074, 14), 622}, // 673 NumbanksINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15630, 7), 562}, // 674 Offset in SPV_OPERAND_TYPE_DECORATION - {IR(16355, 19), 590}, // 675 OverrideCoverageNV in SPV_OPERAND_TYPE_DECORATION - {IR(16374, 14), 591}, // 676 PassthroughNV in SPV_OPERAND_TYPE_DECORATION - {IR(15412, 6), 542}, // 677 Patch in SPV_OPERAND_TYPE_DECORATION - {IR(16327, 28), 589}, // 678 PayloadDispatchIndirectAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16302, 25), 588}, // 679 PayloadNodeArraySizeAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16250, 25), 586}, // 680 PayloadNodeBaseIndexAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16230, 20), 585}, // 681 PayloadNodeNameAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16275, 27), 587}, // 682 PayloadNodeSparseArrayAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16435, 16), 594}, // 683 PerPrimitiveEXT in SPV_OPERAND_TYPE_DECORATION - {IR(16451, 15), 594}, // 684 PerPrimitiveNV in SPV_OPERAND_TYPE_DECORATION - {IR(16476, 10), 596}, // 685 PerTaskNV in SPV_OPERAND_TYPE_DECORATION - {IR(16486, 13), 597}, // 686 PerVertexKHR in SPV_OPERAND_TYPE_DECORATION - {IR(16499, 12), 597}, // 687 PerVertexNV in SPV_OPERAND_TYPE_DECORATION - {IR(16466, 10), 595}, // 688 PerViewNV in SPV_OPERAND_TYPE_DECORATION - {IR(17541, 20), 646}, // 689 PipelineEnableINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17393, 14), 638}, // 690 PrefetchINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16710, 26), 607}, // 691 ReferencedIndirectlyINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17048, 14), 620}, // 692 RegisterINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17897, 31), 658}, // 693 RegisterMapKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15244, 17), 528}, // 694 RelaxedPrecision in SPV_OPERAND_TYPE_DECORATION - {IR(15444, 9), 546}, // 695 Restrict in SPV_OPERAND_TYPE_DECORATION - {IR(16536, 16), 599}, // 696 RestrictPointer in SPV_OPERAND_TYPE_DECORATION - {IR(16552, 19), 599}, // 697 RestrictPointerEXT in SPV_OPERAND_TYPE_DECORATION - {IR(15286, 9), 532}, // 698 RowMajor in SPV_OPERAND_TYPE_DECORATION - {IR(16696, 14), 606}, // 699 SIMTCallINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15427, 7), 544}, // 700 Sample in SPV_OPERAND_TYPE_DECORATION - {IR(15556, 20), 555}, // 701 SaturatedConversion in SPV_OPERAND_TYPE_DECORATION - {IR(16003, 44), 575}, // 702 SaturatedToLargestFloat8NormalConversionEXT in SPV_OPERAND_TYPE_DECORATION - {IR(16407, 28), 593}, // 703 SecondaryViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION - {IR(16749, 17), 609}, // 704 SideEffectsINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17176, 20), 628}, // 705 SimpleDualPortINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17665, 25), 650}, // 706 SingleElementVectorINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17125, 16), 625}, // 707 SinglepumpINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15261, 7), 529}, // 708 SpecId in SPV_OPERAND_TYPE_DECORATION - {IR(18148, 26), 665}, // 709 StableKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16841, 15), 613}, // 710 StackCallINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17407, 17), 639}, // 711 StallEnableINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17743, 15), 653}, // 712 StallFreeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15576, 7), 556}, // 713 Stream in SPV_OPERAND_TYPE_DECORATION - {IR(17283, 16), 632}, // 714 StridesizeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16207, 23), 584}, // 715 TrackFinishWritingAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(17313, 18), 634}, // 716 TrueDualPortINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15512, 8), 553}, // 717 Uniform in SPV_OPERAND_TYPE_DECORATION - {IR(15546, 10), 554}, // 718 UniformId in SPV_OPERAND_TYPE_DECORATION - {IR(16920, 13), 616}, // 719 UserSemantic in SPV_OPERAND_TYPE_DECORATION - {IR(16952, 15), 617}, // 720 UserTypeGOOGLE in SPV_OPERAND_TYPE_DECORATION - {IR(17690, 35), 651}, // 721 VectorComputeCallableFunctionINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16814, 27), 612}, // 722 VectorComputeFunctionINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16766, 27), 610}, // 723 VectorComputeVariableINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16388, 19), 592}, // 724 ViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION - {IR(15461, 9), 548}, // 725 Volatile in SPV_OPERAND_TYPE_DECORATION - {IR(16075, 18), 578}, // 726 WeightTextureQCOM in SPV_OPERAND_TYPE_DECORATION - {IR(17299, 14), 633}, // 727 WordsizeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15637, 10), 563}, // 728 XfbBuffer in SPV_OPERAND_TYPE_DECORATION - {IR(15647, 10), 564}, // 729 XfbStride in SPV_OPERAND_TYPE_DECORATION - {IR(18453, 3), 672}, // 730 1D in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18456, 3), 673}, // 731 2D in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18459, 3), 674}, // 732 3D in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18472, 7), 677}, // 733 Buffer in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18462, 5), 675}, // 734 Cube in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18467, 5), 676}, // 735 Rect in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18479, 12), 678}, // 736 SubpassData in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18491, 17), 679}, // 737 TileImageDataEXT in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(19303, 15), 732}, // 738 CoalescingAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18934, 15), 710}, // 739 ContractionOff in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9608, 18), 724}, // 740 DenormFlushToZero in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9593, 15), 723}, // 741 DenormPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18704, 13), 693}, // 742 DepthGreater in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18717, 10), 694}, // 743 DepthLess in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18689, 15), 692}, // 744 DepthReplacing in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18727, 15), 695}, // 745 DepthUnchanged in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19724, 25), 750}, // 746 DerivativeGroupLinearKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19749, 24), 750}, // 747 DerivativeGroupLinearNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19677, 24), 749}, // 748 DerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19701, 23), 749}, // 749 DerivativeGroupQuadsNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19251, 29), 730}, // 750 EarlyAndLateFragmentTestsAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18656, 19), 689}, // 751 EarlyFragmentTests in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20234, 18), 769}, // 752 FPFastMathDefault in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18961, 10), 712}, // 753 Finalizer in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20049, 26), 761}, // 754 FloatingPointModeALTINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20075, 27), 762}, // 755 FloatingPointModeIEEEINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18949, 12), 711}, // 756 Initializer in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18778, 11), 699}, // 757 InputLines in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18789, 20), 700}, // 758 InputLinesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18766, 12), 698}, // 759 InputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18819, 24), 702}, // 760 InputTrianglesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18508, 12), 680}, // 761 Invocations in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19318, 15), 733}, // 762 IsApiEntryAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18849, 9), 704}, // 763 Isolines in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18742, 10), 696}, // 764 LocalSize in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18752, 14), 697}, // 765 LocalSizeHint in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19029, 16), 717}, // 766 LocalSizeHintId in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19017, 12), 716}, // 767 LocalSizeId in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19333, 21), 734}, // 768 MaxNodeRecursionAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19378, 21), 737}, // 769 MaxNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20124, 16), 764}, // 770 MaxWorkDimINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20102, 22), 763}, // 771 MaxWorkgroupSizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20210, 24), 768}, // 772 MaximallyReconvergesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20325, 22), 773}, // 773 MaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20347, 24), 774}, // 774 MaximumRegistersIdINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20302, 23), 772}, // 775 NamedBarrierCountINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20422, 27), 775}, // 776 NamedMaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20140, 20), 765}, // 777 NoGlobalOffsetINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19045, 34), 718}, // 778 NonCoherentColorAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19079, 34), 719}, // 779 NonCoherentDepthAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19113, 36), 720}, // 780 NonCoherentStencilAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19197, 34), 728}, // 781 NonCoherentTileAttachmentReadQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20160, 22), 766}, // 782 NumSIMDWorkitemsINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18640, 16), 688}, // 783 OriginLowerLeft in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18624, 16), 687}, // 784 OriginUpperLeft in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18886, 16), 707}, // 785 OutputLineStrip in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19609, 15), 747}, // 786 OutputLinesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19624, 14), 747}, // 787 OutputLinesNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18873, 13), 706}, // 788 OutputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19638, 20), 748}, // 789 OutputPrimitivesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19658, 19), 748}, // 790 OutputPrimitivesNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18902, 20), 708}, // 791 OutputTriangleStrip in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19773, 19), 751}, // 792 OutputTrianglesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19792, 18), 751}, // 793 OutputTrianglesNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18858, 15), 705}, // 794 OutputVertices in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18605, 19), 686}, // 795 PixelCenterInteger in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19810, 25), 752}, // 796 PixelInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19835, 27), 753}, // 797 PixelInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18675, 10), 690}, // 798 PointMode in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19179, 18), 722}, // 799 PostDepthCoverage in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19550, 19), 744}, // 800 QuadDerivativesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18843, 6), 703}, // 801 Quads in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20276, 26), 771}, // 802 RegisterMapInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19569, 20), 745}, // 803 RequireFullQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9651, 16), 726}, // 804 RoundingModeRTE in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20028, 21), 760}, // 805 RoundingModeRTNINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20007, 21), 759}, // 806 RoundingModeRTPINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9667, 16), 727}, // 807 RoundingModeRTZ in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19862, 26), 754}, // 808 SampleInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19888, 28), 755}, // 809 SampleInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20182, 28), 767}, // 810 SchedulerTargetFmaxMhzINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(6287, 16), 736}, // 811 ShaderIndexAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19916, 31), 756}, // 812 ShadingRateInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19947, 33), 757}, // 813 ShadingRateInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19980, 27), 758}, // 814 SharedLocalMemorySizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19589, 20), 746}, // 815 SharesInputWithAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9626, 25), 725}, // 816 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18520, 13), 681}, // 817 SpacingEqual in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18533, 22), 682}, // 818 SpacingFractionalEven in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18555, 21), 683}, // 819 SpacingFractionalOdd in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19354, 24), 735}, // 820 StaticNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19503, 25), 742}, // 821 StencilRefGreaterBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19427, 26), 739}, // 822 StencilRefGreaterFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19528, 22), 743}, // 823 StencilRefLessBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19453, 23), 740}, // 824 StencilRefLessFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19280, 23), 731}, // 825 StencilRefReplacingEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19476, 27), 741}, // 826 StencilRefUnchangedBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19399, 28), 738}, // 827 StencilRefUnchangedFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20252, 24), 770}, // 828 StreamingInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(5394, 13), 713}, // 829 SubgroupSize in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19149, 30), 721}, // 830 SubgroupUniformControlFlowKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18971, 22), 714}, // 831 SubgroupsPerWorkgroup in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18993, 24), 715}, // 832 SubgroupsPerWorkgroupId in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19231, 20), 729}, // 833 TileShadingRateQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18809, 10), 701}, // 834 Triangles in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18922, 12), 709}, // 835 VecTypeHint in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18590, 15), 685}, // 836 VertexOrderCcw in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18576, 14), 684}, // 837 VertexOrderCw in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18685, 4), 691}, // 838 Xfb in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20587, 10), 787}, // 839 AnyHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20597, 9), 787}, // 840 AnyHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20648, 12), 790}, // 841 CallableKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20660, 11), 790}, // 842 CallableNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20606, 14), 788}, // 843 ClosestHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20620, 13), 788}, // 844 ClosestHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(14627, 9), 780}, // 845 Fragment in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20499, 10), 781}, // 846 GLCompute in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(4875, 9), 779}, // 847 Geometry in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20556, 16), 786}, // 848 IntersectionKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20572, 15), 786}, // 849 IntersectionNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(4642, 7), 782}, // 850 Kernel in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20679, 8), 792}, // 851 MeshEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20516, 7), 784}, // 852 MeshNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20633, 8), 789}, // 853 MissKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20641, 7), 789}, // 854 MissNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20523, 17), 785}, // 855 RayGenerationKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20540, 16), 785}, // 856 RayGenerationNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20671, 8), 791}, // 857 TaskEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20509, 7), 783}, // 858 TaskNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20456, 20), 777}, // 859 TessellationControl in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20476, 23), 778}, // 860 TessellationEvaluation in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20449, 7), 776}, // 861 Vertex in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20696, 12), 794}, // 862 FlushToZero in SPV_OPERAND_TYPE_FPDENORM_MODE - {IR(20687, 9), 793}, // 863 Preserve in SPV_OPERAND_TYPE_FPDENORM_MODE - {IR(20708, 12), 795}, // 864 BFloat16KHR in SPV_OPERAND_TYPE_FPENCODING - {IR(20720, 14), 796}, // 865 Float8E4M3EXT in SPV_OPERAND_TYPE_FPENCODING - {IR(20734, 14), 797}, // 866 Float8E5M2EXT in SPV_OPERAND_TYPE_FPENCODING - {IR(20753, 4), 799}, // 867 ALT in SPV_OPERAND_TYPE_FPOPERATION_MODE - {IR(20748, 5), 798}, // 868 IEEE in SPV_OPERAND_TYPE_FPOPERATION_MODE - {IR(20791, 14), 806}, // 869 AllowContract in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20805, 23), 806}, // 870 AllowContractFastINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20828, 13), 807}, // 871 AllowReassoc in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20841, 18), 807}, // 872 AllowReassocINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20775, 11), 804}, // 873 AllowRecip in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20859, 15), 808}, // 874 AllowTransform in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20786, 5), 805}, // 875 Fast in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20771, 4), 803}, // 876 NSZ in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(14223, 5), 800}, // 877 None in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20764, 7), 802}, // 878 NotInf in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20757, 7), 801}, // 879 NotNaN in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20874, 4), 809}, // 880 RTE in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20886, 4), 812}, // 881 RTN in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20882, 4), 811}, // 882 RTP in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20878, 4), 810}, // 883 RTZ in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20922, 18), 815}, // 884 Horizontal2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20940, 18), 816}, // 885 Horizontal4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20890, 16), 813}, // 886 Vertical2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20906, 16), 814}, // 887 Vertical4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20981, 6), 821}, // 888 Const in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20965, 11), 819}, // 889 DontInline in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20958, 7), 818}, // 890 Inline in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(14223, 5), 817}, // 891 None in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(13369, 11), 822}, // 892 OptNoneEXT in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(13380, 13), 822}, // 893 OptNoneINTEL in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20976, 5), 820}, // 894 Pure in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20997, 6), 825}, // 895 ByVal in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21008, 8), 827}, // 896 NoAlias in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21016, 10), 828}, // 897 NoCapture in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21034, 12), 830}, // 898 NoReadWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21026, 8), 829}, // 899 NoWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21046, 20), 831}, // 900 RuntimeAlignedINTEL in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20992, 5), 824}, // 901 Sext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21003, 5), 826}, // 902 Sret in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20987, 5), 823}, // 903 Zext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(21101, 16), 835}, // 904 ClusteredReduce in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21087, 14), 834}, // 905 ExclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21073, 14), 833}, // 906 InclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21164, 27), 838}, // 907 PartitionedExclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21137, 27), 837}, // 908 PartitionedInclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21117, 20), 836}, // 909 PartitionedReduceNV in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21066, 7), 832}, // 910 Reduce in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(21191, 10), 839}, // 911 NoneINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(21201, 10), 840}, // 912 ReadINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(21222, 15), 842}, // 913 ReadWriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(21211, 11), 841}, // 914 WriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(21237, 5), 844}, // 915 Bias in SPV_OPERAND_TYPE_IMAGE - {IR(21251, 12), 847}, // 916 ConstOffset in SPV_OPERAND_TYPE_IMAGE - {IR(21263, 13), 849}, // 917 ConstOffsets in SPV_OPERAND_TYPE_IMAGE - {IR(21246, 5), 846}, // 918 Grad in SPV_OPERAND_TYPE_IMAGE - {IR(21242, 4), 845}, // 919 Lod in SPV_OPERAND_TYPE_IMAGE - {IR(21276, 19), 852}, // 920 MakeTexelAvailable in SPV_OPERAND_TYPE_IMAGE - {IR(21295, 22), 852}, // 921 MakeTexelAvailableKHR in SPV_OPERAND_TYPE_IMAGE - {IR(21317, 17), 853}, // 922 MakeTexelVisible in SPV_OPERAND_TYPE_IMAGE - {IR(21334, 20), 853}, // 923 MakeTexelVisibleKHR in SPV_OPERAND_TYPE_IMAGE - {IR(8426, 7), 851}, // 924 MinLod in SPV_OPERAND_TYPE_IMAGE - {IR(21354, 16), 854}, // 925 NonPrivateTexel in SPV_OPERAND_TYPE_IMAGE - {IR(21370, 19), 854}, // 926 NonPrivateTexelKHR in SPV_OPERAND_TYPE_IMAGE - {IR(14223, 5), 843}, // 927 None in SPV_OPERAND_TYPE_IMAGE - {IR(21442, 12), 858}, // 928 Nontemporal in SPV_OPERAND_TYPE_IMAGE - {IR(15630, 7), 848}, // 929 Offset in SPV_OPERAND_TYPE_IMAGE - {IR(21454, 8), 859}, // 930 Offsets in SPV_OPERAND_TYPE_IMAGE - {IR(15427, 7), 850}, // 931 Sample in SPV_OPERAND_TYPE_IMAGE - {IR(21420, 11), 856}, // 932 SignExtend in SPV_OPERAND_TYPE_IMAGE - {IR(21389, 14), 855}, // 933 VolatileTexel in SPV_OPERAND_TYPE_IMAGE - {IR(21403, 17), 855}, // 934 VolatileTexelKHR in SPV_OPERAND_TYPE_IMAGE - {IR(21431, 11), 857}, // 935 ZeroExtend in SPV_OPERAND_TYPE_IMAGE - {IR(14120, 6), 874}, // 936 Float in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21623, 10), 873}, // 937 HalfFloat in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21558, 12), 868}, // 938 SignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21570, 12), 869}, // 939 SignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21547, 11), 867}, // 940 SignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21472, 11), 861}, // 941 SnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21462, 10), 860}, // 942 SnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21532, 15), 866}, // 943 UnormInt101010 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21644, 17), 876}, // 944 UnormInt101010_2 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21661, 16), 877}, // 945 UnormInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21794, 16), 884}, // 946 UnormInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21810, 16), 885}, // 947 UnormInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21493, 11), 863}, // 948 UnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21633, 11), 875}, // 949 UnormInt24 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21717, 20), 880}, // 950 UnormInt2_101010EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21483, 10), 862}, // 951 UnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21518, 14), 865}, // 952 UnormShort555 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21504, 14), 864}, // 953 UnormShort565 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21737, 19), 881}, // 954 UnsignedInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21756, 19), 882}, // 955 UnsignedInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21775, 19), 883}, // 956 UnsignedInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21595, 14), 871}, // 957 UnsignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21609, 14), 872}, // 958 UnsignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21582, 13), 870}, // 959 UnsignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21677, 20), 878}, // 960 UnsignedIntRaw10EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21697, 20), 879}, // 961 UnsignedIntRaw12EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21828, 2), 887}, // 962 A in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21929, 5), 905}, // 963 ABGR in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21850, 5), 893}, // 964 ARGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21845, 5), 892}, // 965 BGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21887, 6), 899}, // 966 Depth in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21893, 13), 900}, // 967 DepthStencil in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21855, 10), 894}, // 968 Intensity in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21865, 10), 895}, // 969 Luminance in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21826, 2), 886}, // 970 R in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21833, 3), 889}, // 971 RA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21830, 3), 888}, // 972 RG in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21836, 4), 890}, // 973 RGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21840, 5), 891}, // 974 RGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21882, 5), 898}, // 975 RGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21878, 4), 897}, // 976 RGx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21875, 3), 896}, // 977 Rx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21923, 6), 904}, // 978 sBGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21906, 5), 901}, // 979 sRGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21917, 6), 903}, // 980 sRGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21911, 6), 902}, // 981 sRGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21934, 27), 906}, // 982 InitOnDeviceReprogramINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {IR(21961, 23), 907}, // 983 InitOnDeviceResetINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {IR(21984, 7), 908}, // 984 NoWait in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {IR(21991, 11), 909}, // 985 WaitKernel in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {IR(22002, 14), 910}, // 986 WaitWorkGroup in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {IR(22016, 12), 912}, // 987 CmdExecTime in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO - {IR(14223, 5), 911}, // 988 None in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO - {IR(22028, 13), 914}, // 989 MayUsePrintf in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS - {IR(14223, 5), 913}, // 990 None in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS - {IR(22041, 7), 915}, // 991 Export in SPV_OPERAND_TYPE_LINKAGE_TYPE - {IR(22048, 7), 916}, // 992 Import in SPV_OPERAND_TYPE_LINKAGE_TYPE - {IR(22055, 12), 917}, // 993 LinkOnceODR in SPV_OPERAND_TYPE_LINKAGE_TYPE - {IR(22081, 12), 919}, // 994 CachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(22133, 17), 922}, // 995 ConstCachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(22108, 25), 921}, // 996 InvalidateAfterReadINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(22093, 15), 920}, // 997 StreamingINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(22067, 14), 918}, // 998 UncachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(22273, 21), 935}, // 999 DependencyArrayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22168, 19), 926}, // 1000 DependencyInfinite in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22187, 17), 927}, // 1001 DependencyLength in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22157, 11), 925}, // 1002 DontUnroll in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(17497, 24), 933}, // 1003 InitiationIntervalINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22232, 18), 930}, // 1004 IterationMultiple in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22294, 18), 937}, // 1005 LoopCoalesceINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22373, 15), 941}, // 1006 LoopCountINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(17521, 20), 934}, // 1007 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22312, 21), 938}, // 1008 MaxInterleavingINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22218, 14), 929}, // 1009 MaxIterations in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22388, 26), 942}, // 1010 MaxReinvocationDelayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22204, 14), 928}, // 1011 MinIterations in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22359, 14), 940}, // 1012 NoFusionINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(14223, 5), 923}, // 1013 None in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22260, 13), 932}, // 1014 PartialCount in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22250, 10), 931}, // 1015 PeelCount in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(17541, 20), 936}, // 1016 PipelineEnableINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22333, 26), 939}, // 1017 SpeculatedIterationsINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22150, 7), 924}, // 1018 Unroll in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22697, 27), 956}, // 1019 MatrixAPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22645, 26), 954}, // 1020 MatrixAPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22565, 23), 950}, // 1021 MatrixAPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22519, 23), 948}, // 1022 MatrixAPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22414, 29), 944}, // 1023 MatrixASignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22611, 17), 952}, // 1024 MatrixATF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22724, 27), 957}, // 1025 MatrixBPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22671, 26), 955}, // 1026 MatrixBPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22588, 23), 951}, // 1027 MatrixBPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22542, 23), 949}, // 1028 MatrixBPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22443, 29), 945}, // 1029 MatrixBSignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22628, 17), 953}, // 1030 MatrixBTF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22472, 21), 946}, // 1031 MatrixCBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22493, 26), 947}, // 1032 MatrixResultBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(14223, 5), 943}, // 1033 None in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22884, 20), 965}, // 1034 AliasScopeINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22751, 8), 960}, // 1035 Aligned in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22759, 21), 962}, // 1036 MakePointerAvailable in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22780, 24), 962}, // 1037 MakePointerAvailableKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22804, 19), 963}, // 1038 MakePointerVisible in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22823, 22), 963}, // 1039 MakePointerVisibleKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22904, 17), 966}, // 1040 NoAliasINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22845, 18), 964}, // 1041 NonPrivatePointer in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22863, 21), 964}, // 1042 NonPrivatePointerKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(14223, 5), 958}, // 1043 None in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(21442, 12), 961}, // 1044 Nontemporal in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(15461, 9), 959}, // 1045 Volatile in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22928, 8), 968}, // 1046 GLSL450 in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22936, 7), 969}, // 1047 OpenCL in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22921, 7), 967}, // 1048 Simple in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22943, 7), 970}, // 1049 Vulkan in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22950, 10), 970}, // 1050 VulkanKHR in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22968, 8), 972}, // 1051 Acquire in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22984, 15), 974}, // 1052 AcquireRelease in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23088, 20), 980}, // 1053 AtomicCounterMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23067, 21), 979}, // 1054 CrossWorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23108, 12), 981}, // 1055 ImageMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23149, 14), 983}, // 1056 MakeAvailable in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23163, 17), 983}, // 1057 MakeAvailableKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23180, 12), 984}, // 1058 MakeVisible in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23192, 15), 984}, // 1059 MakeVisibleKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(14223, 5), 971}, // 1060 None in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23120, 13), 982}, // 1061 OutputMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23133, 16), 982}, // 1062 OutputMemoryKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22960, 8), 971}, // 1063 Relaxed in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22976, 8), 973}, // 1064 Release in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22999, 23), 975}, // 1065 SequentiallyConsistent in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23036, 15), 977}, // 1066 SubgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23022, 14), 976}, // 1067 UniformMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(15461, 9), 985}, // 1068 Volatile in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23051, 16), 978}, // 1069 WorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(23207, 10), 986}, // 1070 AutoINTEL in SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS - {IR(23222, 4), 988}, // 1071 SAT in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(23235, 8), 990}, // 1072 SAT_SYM in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(23226, 9), 989}, // 1073 SAT_ZERO in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(23217, 5), 987}, // 1074 WRAP in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(23243, 25), 991}, // 1075 PackedVectorFormat4x8Bit in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT - {IR(23268, 28), 991}, // 1076 PackedVectorFormat4x8BitKHR in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT - {IR(23309, 4), 994}, // 1077 RND in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23342, 9), 998}, // 1078 RND_CONV in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23351, 13), 999}, // 1079 RND_CONV_ODD in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23322, 8), 996}, // 1080 RND_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23330, 12), 997}, // 1081 RND_MIN_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23313, 9), 995}, // 1082 RND_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23296, 4), 992}, // 1083 TRN in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23300, 9), 993}, // 1084 TRN_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(14223, 5), 1000}, // 1085 None in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {IR(23364, 25), 1001}, // 1086 RobustnessPerComponentNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {IR(23389, 23), 1002}, // 1087 RobustnessPerElementNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {IR(23481, 27), 1008}, // 1088 CullBackFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23508, 28), 1009}, // 1089 CullFrontFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23550, 16), 1011}, // 1090 CullNoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23536, 14), 1010}, // 1091 CullOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23620, 30), 1014}, // 1092 ForceOpacityMicromap2StateEXT in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23422, 12), 1005}, // 1093 NoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(14975, 8), 1003}, // 1094 NoneKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23412, 10), 1004}, // 1095 OpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23607, 13), 1013}, // 1096 SkipAABBsKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23583, 24), 1012}, // 1097 SkipBuiltinPrimitivesNV in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23457, 24), 1007}, // 1098 SkipClosestHitShaderKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23566, 17), 1012}, // 1099 SkipTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23434, 23), 1006}, // 1100 TerminateOnFirstHitKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23691, 37), 1016}, // 1101 RayQueryCandidateIntersectionAABBKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {IR(23650, 41), 1015}, // 1102 RayQueryCandidateIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {IR(23806, 42), 1019}, // 1103 RayQueryCommittedIntersectionGeneratedKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {IR(23728, 37), 1017}, // 1104 RayQueryCommittedIntersectionNoneKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {IR(23765, 41), 1018}, // 1105 RayQueryCommittedIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {IR(23848, 33), 1020}, // 1106 RayQueryCandidateIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {IR(23881, 33), 1021}, // 1107 RayQueryCommittedIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {IR(23926, 6), 1024}, // 1108 Clamp in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23914, 12), 1023}, // 1109 ClampToEdge in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(14223, 5), 1022}, // 1110 None in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23932, 7), 1025}, // 1111 Repeat in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23939, 15), 1026}, // 1112 RepeatMirrored in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23962, 7), 1028}, // 1113 Linear in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE - {IR(23954, 8), 1027}, // 1114 Nearest in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE - {IR(24027, 13), 1037}, // 1115 R11fG11fB10f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24069, 4), 1043}, // 1116 R16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24107, 9), 1048}, // 1117 R16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24040, 5), 1038}, // 1118 R16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24169, 5), 1057}, // 1119 R16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24240, 6), 1067}, // 1120 R16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23993, 5), 1032}, // 1121 R32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24147, 5), 1053}, // 1122 R32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24204, 6), 1062}, // 1123 R32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24257, 5), 1070}, // 1124 R64i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24251, 6), 1069}, // 1125 R64ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24073, 3), 1044}, // 1126 R8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24116, 8), 1049}, // 1127 R8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24174, 4), 1058}, // 1128 R8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24246, 5), 1068}, // 1129 R8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24060, 5), 1041}, // 1130 Rg16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24088, 10), 1046}, // 1131 Rg16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24021, 6), 1036}, // 1132 Rg16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24158, 6), 1055}, // 1133 Rg16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24227, 7), 1065}, // 1134 Rg16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24015, 6), 1035}, // 1135 Rg32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24152, 6), 1054}, // 1136 Rg32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24220, 7), 1064}, // 1137 Rg32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24065, 4), 1042}, // 1138 Rg8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24098, 9), 1047}, // 1139 Rg8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24164, 5), 1056}, // 1140 Rg8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24234, 6), 1066}, // 1141 Rg8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24052, 8), 1040}, // 1142 Rgb10A2 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24210, 10), 1063}, // 1143 Rgb10a2ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24045, 7), 1039}, // 1144 Rgba16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24076, 12), 1045}, // 1145 Rgba16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23985, 8), 1031}, // 1146 Rgba16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24132, 8), 1051}, // 1147 Rgba16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24187, 9), 1060}, // 1148 Rgba16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23977, 8), 1030}, // 1149 Rgba32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24124, 8), 1050}, // 1150 Rgba32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24178, 9), 1059}, // 1151 Rgba32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23998, 6), 1033}, // 1152 Rgba8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24004, 11), 1034}, // 1153 Rgba8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24140, 7), 1052}, // 1154 Rgba8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24196, 8), 1061}, // 1155 Rgba8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23969, 8), 1029}, // 1156 Unknown in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24262, 12), 1071}, // 1157 CrossDevice in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24274, 7), 1072}, // 1158 Device in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24300, 11), 1075}, // 1159 Invocation in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24311, 12), 1076}, // 1160 QueueFamily in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24323, 15), 1076}, // 1161 QueueFamilyKHR in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24338, 14), 1077}, // 1162 ShaderCallKHR in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24291, 9), 1074}, // 1163 Subgroup in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24281, 10), 1073}, // 1164 Workgroup in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24360, 12), 1080}, // 1165 DontFlatten in SPV_OPERAND_TYPE_SELECTION_CONTROL - {IR(24352, 8), 1079}, // 1166 Flatten in SPV_OPERAND_TYPE_SELECTION_CONTROL - {IR(14223, 5), 1078}, // 1167 None in SPV_OPERAND_TYPE_SELECTION_CONTROL - {IR(24372, 29), 1081}, // 1168 IdentifierPossibleDuplicates in SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS - {IR(14104, 8), 1083}, // 1169 Address in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14112, 8), 1084}, // 1170 Boolean in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14120, 6), 1085}, // 1171 Float in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14126, 7), 1086}, // 1172 Signed in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14133, 11), 1087}, // 1173 SignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14144, 9), 1088}, // 1174 Unsigned in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14153, 13), 1089}, // 1175 UnsignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14092, 12), 1082}, // 1176 Unspecified in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(14166, 6), 1090}, // 1177 Class in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(14172, 10), 1091}, // 1178 Structure in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(14182, 6), 1092}, // 1179 Union in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(14203, 20), 1094}, // 1180 ImportedDeclaration in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(14188, 15), 1093}, // 1181 ImportedModule in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(14312, 15), 1102}, // 1182 FlagArtificial in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14327, 13), 1103}, // 1183 FlagExplicit in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14300, 12), 1101}, // 1184 FlagFwdDecl in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14390, 21), 1107}, // 1185 FlagIndirectVariable in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14283, 17), 1100}, // 1186 FlagIsDefinition in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14467, 16), 1111}, // 1187 FlagIsEnumClass in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14271, 12), 1099}, // 1188 FlagIsLocal in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14451, 16), 1110}, // 1189 FlagIsOptimized in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14244, 14), 1097}, // 1190 FlagIsPrivate in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14228, 16), 1096}, // 1191 FlagIsProtected in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14258, 13), 1098}, // 1192 FlagIsPublic in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14411, 20), 1108}, // 1193 FlagLValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14355, 18), 1105}, // 1194 FlagObjectPointer in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14340, 15), 1104}, // 1195 FlagPrototyped in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14431, 20), 1109}, // 1196 FlagRValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14373, 17), 1106}, // 1197 FlagStaticMember in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14503, 24), 1113}, // 1198 FlagTypePassByReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14483, 20), 1112}, // 1199 FlagTypePassByValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(24401, 26), 1114}, // 1200 FlagUnknownPhysicalLayout in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14223, 5), 1095}, // 1201 None in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14588, 9), 1119}, // 1202 BitPiece in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14620, 7), 1123}, // 1203 Constu in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14527, 6), 1115}, // 1204 Deref in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14627, 9), 1124}, // 1205 Fragment in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14538, 6), 1117}, // 1206 Minus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14533, 5), 1116}, // 1207 Plus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14577, 11), 1118}, // 1208 PlusUconst in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14609, 11), 1122}, // 1209 StackValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14597, 5), 1120}, // 1210 Swap in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14602, 7), 1121}, // 1211 Xderef in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14672, 11), 1128}, // 1212 AtomicType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14636, 10), 1125}, // 1213 ConstType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14659, 13), 1127}, // 1214 RestrictType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14646, 13), 1126}, // 1215 VolatileType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(24462, 15), 1135}, // 1216 CPP_for_OpenCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24427, 5), 1130}, // 1217 ESSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24432, 5), 1131}, // 1218 GLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24482, 7), 1137}, // 1219 HERO_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24457, 5), 1134}, // 1220 HLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24489, 5), 1138}, // 1221 NZSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24437, 9), 1132}, // 1222 OpenCL_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24446, 11), 1133}, // 1223 OpenCL_CPP in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24509, 5), 1142}, // 1224 Rust in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24477, 5), 1136}, // 1225 SYCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24499, 6), 1140}, // 1226 Slang in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(23969, 8), 1129}, // 1227 Unknown in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24494, 5), 1139}, // 1228 WGSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24505, 4), 1141}, // 1229 Zig in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24596, 14), 1153}, // 1230 AtomicCounter in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24678, 16), 1159}, // 1231 CallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24694, 15), 1159}, // 1232 CallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24992, 17), 1168}, // 1233 CodeSectionINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24543, 15), 1148}, // 1234 CrossWorkgroup in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(25009, 16), 1169}, // 1235 DeviceOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24566, 9), 1150}, // 1236 Function in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24575, 8), 1151}, // 1237 Generic in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24783, 16), 1162}, // 1238 HitAttributeKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24799, 15), 1162}, // 1239 HitAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24947, 21), 1166}, // 1240 HitObjectAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(25025, 14), 1170}, // 1241 HostOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24610, 6), 1154}, // 1242 Image in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24709, 24), 1160}, // 1243 IncomingCallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24733, 23), 1160}, // 1244 IncomingCallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24814, 22), 1163}, // 1245 IncomingRayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24836, 21), 1163}, // 1246 IncomingRayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24530, 6), 1144}, // 1247 Input in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24662, 16), 1158}, // 1248 NodePayloadAMDX in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24536, 7), 1146}, // 1249 Output in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24900, 22), 1165}, // 1250 PhysicalStorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24922, 25), 1165}, // 1251 PhysicalStorageBufferEXT in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24558, 8), 1149}, // 1252 Private in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24583, 13), 1152}, // 1253 PushConstant in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24756, 14), 1161}, // 1254 RayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24770, 13), 1161}, // 1255 RayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24857, 22), 1164}, // 1256 ShaderRecordBufferKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24879, 21), 1164}, // 1257 ShaderRecordBufferNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24616, 14), 1155}, // 1258 StorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24968, 24), 1167}, // 1259 TaskPayloadWorkgroupEXT in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24643, 19), 1157}, // 1260 TileAttachmentQCOM in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24630, 13), 1156}, // 1261 TileImageEXT in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(15512, 8), 1145}, // 1262 Uniform in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24514, 16), 1143}, // 1263 UniformConstant in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24281, 10), 1147}, // 1264 Workgroup in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(22093, 15), 1174}, // 1265 StreamingINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(22067, 14), 1171}, // 1266 UncachedINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(25057, 15), 1173}, // 1267 WriteBackINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(25039, 18), 1172}, // 1268 WriteThroughINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(25083, 11), 1177}, // 1269 DecodeFunc in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {IR(14223, 5), 1175}, // 1270 None in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {IR(25072, 11), 1176}, // 1271 TensorView in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {IR(23914, 12), 1180}, // 1272 ClampToEdge in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(15470, 9), 1179}, // 1273 Constant in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(23932, 7), 1181}, // 1274 Repeat in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(23939, 15), 1182}, // 1275 RepeatMirrored in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(25094, 10), 1178}, // 1276 Undefined in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(25147, 24), 1186}, // 1277 MakeElementAvailableARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(25171, 22), 1187}, // 1278 MakeElementVisibleARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(25193, 21), 1188}, // 1279 NonPrivateElementARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(25104, 8), 1183}, // 1280 NoneARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(25112, 15), 1184}, // 1281 NontemporalARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(25127, 20), 1185}, // 1282 OutOfBoundsValueARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS +static const std::array kOperandNames{{ + {IR(5348, 9), 0}, // 0 ReadOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {IR(5374, 10), 2}, // 1 ReadWrite in SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {IR(5364, 10), 1}, // 2 WriteOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {IR(5384, 8), 3}, // 3 Logical in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(5392, 11), 4}, // 4 Physical32 in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(5413, 11), 5}, // 5 Physical64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(5424, 24), 6}, // 6 PhysicalStorageBuffer64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(5448, 27), 6}, // 7 PhysicalStorageBuffer64EXT in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(7358, 13), 92}, // 8 BaryCoordKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7371, 12), 92}, // 9 BaryCoordNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6753, 20), 68}, // 10 BaryCoordNoPerspAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6773, 28), 69}, // 11 BaryCoordNoPerspCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(7406, 20), 93}, // 12 BaryCoordNoPerspKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7426, 19), 93}, // 13 BaryCoordNoPerspNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6801, 26), 70}, // 14 BaryCoordNoPerspSampleAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6898, 22), 74}, // 15 BaryCoordPullModelAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6827, 19), 71}, // 16 BaryCoordSmoothAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6846, 27), 72}, // 17 BaryCoordSmoothCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6873, 25), 73}, // 18 BaryCoordSmoothSampleAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6557, 13), 59}, // 19 BaseInstance in SPV_OPERAND_TYPE_BUILT_IN + {IR(6531, 11), 58}, // 20 BaseVertex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5532, 13), 9}, // 21 ClipDistance in SPV_OPERAND_TYPE_BUILT_IN + {IR(7265, 22), 87}, // 22 ClipDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8564, 12), 131}, // 23 ClusterIDNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6295, 13), 49}, // 24 CoreCountARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(6269, 10), 48}, // 25 CoreIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(6308, 13), 50}, // 26 CoreMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(5545, 13), 10}, // 27 CullDistance in SPV_OPERAND_TYPE_BUILT_IN + {IR(7287, 22), 88}, // 28 CullDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8617, 12), 132}, // 29 CullMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7613, 17), 99}, // 30 CullPrimitiveEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(8017, 17), 113}, // 31 CurrentRayTimeNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6627, 12), 62}, // 32 DeviceIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(6570, 10), 60}, // 33 DrawIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(6059, 22), 37}, // 34 EnqueuedWorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(5829, 10), 21}, // 35 FragCoord in SPV_OPERAND_TYPE_BUILT_IN + {IR(5915, 10), 27}, // 36 FragDepth in SPV_OPERAND_TYPE_BUILT_IN + {IR(7491, 23), 95}, // 37 FragInvocationCountEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(7445, 12), 94}, // 38 FragSizeEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6920, 18), 75}, // 39 FragStencilRefEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(7457, 15), 94}, // 40 FragmentSizeNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5850, 12), 23}, // 41 FrontFacing in SPV_OPERAND_TYPE_BUILT_IN + {IR(7177, 16), 83}, // 42 FullyCoveredEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6000, 19), 33}, // 43 GlobalInvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6094, 15), 39}, // 44 GlobalLinearId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6081, 13), 38}, // 45 GlobalOffset in SPV_OPERAND_TYPE_BUILT_IN + {IR(6048, 11), 36}, // 46 GlobalSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(5925, 17), 28}, // 47 HelperInvocation in SPV_OPERAND_TYPE_BUILT_IN + {IR(8319, 11), 120}, // 48 HitIsLSSNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8277, 14), 119}, // 49 HitIsSphereNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8499, 33), 128}, // 50 HitKindBackFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8465, 34), 127}, // 51 HitKindFrontFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7996, 11), 112}, // 52 HitKindKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(8007, 10), 112}, // 53 HitKindNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8447, 18), 126}, // 54 HitLSSPositionsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8550, 14), 130}, // 55 HitLSSRadiiNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8181, 37), 116}, // 56 HitMicroTriangleVertexBarycentricsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8114, 34), 115}, // 57 HitMicroTriangleVertexPositionsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8369, 20), 121}, // 58 HitSpherePositionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8532, 18), 129}, // 59 HitSphereRadiusNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7989, 7), 111}, // 60 HitTNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8057, 30), 114}, // 61 HitTriangleVertexPositionsKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(8218, 20), 117}, // 62 IncomingRayFlagsKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(8238, 19), 117}, // 63 IncomingRayFlagsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7878, 23), 108}, // 64 InstanceCustomIndexKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7901, 22), 108}, // 65 InstanceCustomIndexNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5567, 11), 12}, // 66 InstanceId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6255, 14), 47}, // 67 InstanceIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5668, 13), 14}, // 68 InvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(7514, 22), 95}, // 69 InvocationsPerPixelNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7630, 12), 100}, // 70 LaunchIdKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7642, 11), 100}, // 71 LaunchIdNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7653, 14), 101}, // 72 LaunchSizeKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7667, 13), 101}, // 73 LaunchSizeNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5681, 6), 15}, // 74 Layer in SPV_OPERAND_TYPE_BUILT_IN + {IR(7309, 15), 89}, // 75 LayerPerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5982, 18), 32}, // 76 LocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6019, 21), 34}, // 77 LocalInvocationIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(7324, 16), 90}, // 78 MeshViewCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7340, 18), 91}, // 79 MeshViewIndicesNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6185, 21), 43}, // 80 NumEnqueuedSubgroups in SPV_OPERAND_TYPE_BUILT_IN + {IR(6172, 13), 42}, // 81 NumSubgroups in SPV_OPERAND_TYPE_BUILT_IN + {IR(5942, 14), 29}, // 82 NumWorkgroups in SPV_OPERAND_TYPE_BUILT_IN + {IR(7793, 22), 105}, // 83 ObjectRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7815, 21), 105}, // 84 ObjectRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7756, 19), 104}, // 85 ObjectRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7775, 18), 104}, // 86 ObjectRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7923, 17), 109}, // 87 ObjectToWorldKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7940, 16), 109}, // 88 ObjectToWorldNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5815, 14), 20}, // 89 PatchVertices in SPV_OPERAND_TYPE_BUILT_IN + {IR(5839, 11), 22}, // 90 PointCoord in SPV_OPERAND_TYPE_BUILT_IN + {IR(5522, 10), 8}, // 91 PointSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(5506, 9), 7}, // 92 Position in SPV_OPERAND_TYPE_BUILT_IN + {IR(7117, 18), 81}, // 93 PositionPerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7229, 17), 85}, // 94 PrimitiveCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5578, 12), 13}, // 95 PrimitiveId in SPV_OPERAND_TYPE_BUILT_IN + {IR(7246, 19), 86}, // 96 PrimitiveIndicesNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7561, 24), 97}, // 97 PrimitiveLineIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(7536, 25), 96}, // 98 PrimitivePointIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6580, 24), 61}, // 99 PrimitiveShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7585, 28), 98}, // 100 PrimitiveTriangleIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(8257, 20), 118}, // 101 RayGeometryIndexKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7857, 11), 107}, // 102 RayTmaxKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7868, 10), 107}, // 103 RayTmaxNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7836, 11), 106}, // 104 RayTminKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7847, 10), 106}, // 105 RayTminNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6955, 29), 76}, // 106 RemainingRecursionLevelsAMDX in SPV_OPERAND_TYPE_BUILT_IN + {IR(8421, 10), 123}, // 107 SMCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(8440, 7), 125}, // 108 SMIDNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5862, 9), 24}, // 109 SampleId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5904, 11), 26}, // 110 SampleMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5889, 15), 25}, // 111 SamplePosition in SPV_OPERAND_TYPE_BUILT_IN + {IR(7054, 20), 79}, // 112 SecondaryPositionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7093, 24), 80}, // 113 SecondaryViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7002, 16), 77}, // 114 ShaderIndexAMDX in SPV_OPERAND_TYPE_BUILT_IN + {IR(6671, 15), 64}, // 115 ShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6344, 15), 53}, // 116 SubgroupEqMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(6359, 18), 53}, // 117 SubgroupEqMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6399, 15), 54}, // 118 SubgroupGeMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(6414, 18), 54}, // 119 SubgroupGeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6432, 15), 55}, // 120 SubgroupGtMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(6447, 18), 55}, // 121 SubgroupGtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6206, 11), 44}, // 122 SubgroupId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6465, 15), 56}, // 123 SubgroupLeMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(6480, 18), 56}, // 124 SubgroupLeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6217, 26), 45}, // 125 SubgroupLocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6498, 15), 57}, // 126 SubgroupLtMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(6513, 18), 57}, // 127 SubgroupLtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6156, 16), 41}, // 128 SubgroupMaxSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(6109, 13), 40}, // 129 SubgroupSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(7217, 12), 84}, // 130 TaskCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5805, 10), 19}, // 131 TessCoord in SPV_OPERAND_TYPE_BUILT_IN + {IR(5790, 15), 18}, // 132 TessLevelInner in SPV_OPERAND_TYPE_BUILT_IN + {IR(5775, 15), 17}, // 133 TessLevelOuter in SPV_OPERAND_TYPE_BUILT_IN + {IR(6735, 18), 67}, // 134 TileApronSizeQCOM in SPV_OPERAND_TYPE_BUILT_IN + {IR(6717, 18), 66}, // 135 TileDimensionQCOM in SPV_OPERAND_TYPE_BUILT_IN + {IR(6686, 15), 65}, // 136 TileOffsetQCOM in SPV_OPERAND_TYPE_BUILT_IN + {IR(5558, 9), 11}, // 137 VertexId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6243, 12), 46}, // 138 VertexIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(6651, 10), 63}, // 139 ViewIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5727, 14), 16}, // 140 ViewportIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(7018, 15), 78}, // 141 ViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7155, 22), 82}, // 142 ViewportMaskPerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6321, 10), 51}, // 143 WarpIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(8431, 9), 124}, // 144 WarpIDNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6331, 13), 52}, // 145 WarpMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(8389, 13), 122}, // 146 WarpsPerSMNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6040, 8), 35}, // 147 WorkDim in SPV_OPERAND_TYPE_BUILT_IN + {IR(5970, 12), 31}, // 148 WorkgroupId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5956, 14), 30}, // 149 WorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(7715, 21), 103}, // 150 WorldRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7736, 20), 103}, // 151 WorldRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7680, 18), 102}, // 152 WorldRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7698, 17), 102}, // 153 WorldRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7956, 17), 110}, // 154 WorldToObjectKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7973, 16), 110}, // 155 WorldToObjectNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5403, 10), 137}, // 156 Addresses in SPV_OPERAND_TYPE_CAPABILITY + {IR(13960, 35), 361}, // 157 ArbitraryPrecisionFixedPointALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13995, 34), 361}, // 158 ArbitraryPrecisionFixedPointINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13432, 38), 349}, // 159 ArbitraryPrecisionFloatingPointALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13470, 37), 349}, // 160 ArbitraryPrecisionFloatingPointINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13367, 33), 348}, // 161 ArbitraryPrecisionIntegersALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13400, 32), 348}, // 162 ArbitraryPrecisionIntegersINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14654, 19), 386}, // 163 ArithmeticFenceEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13005, 9), 334}, // 164 AsmINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14571, 20), 382}, // 165 AtomicFloat16AddEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13060, 23), 337}, // 166 AtomicFloat16MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12510, 22), 311}, // 167 AtomicFloat16VectorNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(14487, 20), 378}, // 168 AtomicFloat32AddEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13014, 23), 335}, // 169 AtomicFloat32MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(14507, 20), 379}, // 170 AtomicFloat64AddEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13037, 23), 336}, // 171 AtomicFloat64MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8797, 14), 153}, // 172 AtomicStorage in SPV_OPERAND_TYPE_CAPABILITY + {IR(10184, 17), 229}, // 173 AtomicStorageOps in SPV_OPERAND_TYPE_CAPABILITY + {IR(14612, 24), 384}, // 174 BFloat16ConversionINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10806, 29), 263}, // 175 BFloat16CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10784, 22), 262}, // 176 BFloat16DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10768, 16), 261}, // 177 BFloat16TypeKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(15389, 20), 409}, // 178 BindlessImagesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12447, 18), 308}, // 179 BindlessTextureNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(14424, 16), 374}, // 180 BitInstructions in SPV_OPERAND_TYPE_CAPABILITY + {IR(14162, 20), 365}, // 181 BlockingPipesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14182, 19), 365}, // 182 BlockingPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15350, 19), 407}, // 183 CacheControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(5532, 13), 163}, // 184 ClipDistance in SPV_OPERAND_TYPE_CAPABILITY + {IR(12078, 32), 296}, // 185 ComputeDerivativeGroupLinearKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12110, 31), 296}, // 186 ComputeDerivativeGroupLinearNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10958, 31), 275}, // 187 ComputeDerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10989, 30), 275}, // 188 ComputeDerivativeGroupQuadsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12710, 30), 321}, // 189 CooperativeMatrixBlockLoadsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10553, 32), 248}, // 190 CooperativeMatrixConversionQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(12603, 31), 318}, // 191 CooperativeMatrixConversionsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9832, 21), 372}, // 192 CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9767, 28), 211}, // 193 CooperativeMatrixLayoutsARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(12166, 20), 298}, // 194 CooperativeMatrixNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12634, 40), 319}, // 195 CooperativeMatrixPerElementOperationsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12573, 30), 317}, // 196 CooperativeMatrixReductionsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12674, 36), 320}, // 197 CooperativeMatrixTensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12490, 20), 310}, // 198 CooperativeVectorNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12740, 28), 322}, // 199 CooperativeVectorTrainingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(6279, 16), 203}, // 200 CoreBuiltinsARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(5545, 13), 164}, // 201 CullDistance in SPV_OPERAND_TYPE_CAPABILITY + {IR(14591, 21), 383}, // 202 DebugInfoModuleINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12289, 25), 303}, // 203 DemoteToHelperInvocation in SPV_OPERAND_TYPE_CAPABILITY + {IR(12314, 28), 303}, // 204 DemoteToHelperInvocationEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10323, 18), 235}, // 205 DenormFlushToZero in SPV_OPERAND_TYPE_CAPABILITY + {IR(10308, 15), 234}, // 206 DenormPreserve in SPV_OPERAND_TYPE_CAPABILITY + {IR(9244, 18), 182}, // 207 DerivativeControl in SPV_OPERAND_TYPE_CAPABILITY + {IR(8768, 14), 151}, // 208 DeviceEnqueue in SPV_OPERAND_TYPE_CAPABILITY + {IR(6639, 12), 225}, // 209 DeviceGroup in SPV_OPERAND_TYPE_CAPABILITY + {IR(12342, 23), 304}, // 210 DisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(14375, 11), 370}, // 211 DotProduct in SPV_OPERAND_TYPE_CAPABILITY + {IR(14269, 22), 368}, // 212 DotProductInput4x8Bit in SPV_OPERAND_TYPE_CAPABILITY + {IR(14291, 25), 368}, // 213 DotProductInput4x8BitKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14316, 28), 369}, // 214 DotProductInput4x8BitPacked in SPV_OPERAND_TYPE_CAPABILITY + {IR(14344, 31), 369}, // 215 DotProductInput4x8BitPackedKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14228, 19), 367}, // 216 DotProductInputAll in SPV_OPERAND_TYPE_CAPABILITY + {IR(14247, 22), 367}, // 217 DotProductInputAllKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14386, 14), 370}, // 218 DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(6542, 15), 216}, // 219 DrawParameters in SPV_OPERAND_TYPE_CAPABILITY + {IR(13117, 16), 340}, // 220 ExpectAssumeKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14480, 7), 377}, // 221 FMAKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13347, 20), 347}, // 222 FPFastMathModeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14862, 29), 392}, // 223 FPGAArgumentInterfacesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14891, 28), 392}, // 224 FPGAArgumentInterfacesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13911, 25), 360}, // 225 FPGABufferLocationALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13936, 24), 360}, // 226 FPGABufferLocationINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13679, 28), 355}, // 227 FPGAClusterAttributesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13707, 27), 355}, // 228 FPGAClusterAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14673, 30), 387}, // 229 FPGAClusterAttributesV2ALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14703, 29), 387}, // 230 FPGAClusterAttributesV2INTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13763, 21), 357}, // 231 FPGADSPControlALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13784, 20), 357}, // 232 FPGADSPControlINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13830, 41), 359}, // 233 FPGAInvocationPipeliningAttributesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13871, 40), 359}, // 234 FPGAInvocationPipeliningAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13604, 26), 353}, // 235 FPGAKernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14732, 28), 388}, // 236 FPGAKernelAttributesv2INTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14813, 25), 391}, // 237 FPGALatencyControlALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14838, 24), 391}, // 238 FPGALatencyControlINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13537, 23), 351}, // 239 FPGALoopControlsALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13560, 22), 351}, // 240 FPGALoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13630, 25), 354}, // 241 FPGAMemoryAccessesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13655, 24), 354}, // 242 FPGAMemoryAccessesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13294, 27), 346}, // 243 FPGAMemoryAttributesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13321, 26), 346}, // 244 FPGAMemoryAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14201, 14), 366}, // 245 FPGARegALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14215, 13), 366}, // 246 FPGARegINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14797, 16), 390}, // 247 FPMaxErrorINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8682, 8), 142}, // 248 Float16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(8668, 14), 141}, // 249 Float16Buffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(10608, 16), 250}, // 250 Float16ImageAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(8690, 8), 143}, // 251 Float64 in SPV_OPERAND_TYPE_CAPABILITY + {IR(9805, 27), 213}, // 252 Float8CooperativeMatrixEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9795, 10), 212}, // 253 Float8EXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(14465, 15), 376}, // 254 FloatControls2 in SPV_OPERAND_TYPE_CAPABILITY + {IR(12913, 23), 330}, // 255 FloatingPointModeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(7383, 23), 274}, // 256 FragmentBarycentricKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10936, 22), 274}, // 257 FragmentBarycentricNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(7472, 19), 276}, // 258 FragmentDensityEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(7193, 24), 270}, // 259 FragmentFullyCoveredEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10646, 16), 252}, // 260 FragmentMaskAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(12257, 32), 302}, // 261 FragmentShaderPixelInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12186, 33), 299}, // 262 FragmentShaderSampleInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12219, 38), 300}, // 263 FragmentShaderShadingRateInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(6604, 23), 214}, // 264 FragmentShadingRateKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13268, 26), 345}, // 265 FunctionFloatControlINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12959, 22), 332}, // 266 FunctionPointersINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15250, 22), 403}, // 267 FunctionVariantsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9089, 15), 169}, // 268 GenericPointer in SPV_OPERAND_TYPE_CAPABILITY + {IR(5590, 9), 135}, // 269 Geometry in SPV_OPERAND_TYPE_CAPABILITY + {IR(8839, 18), 156}, // 270 GeometryPointSize in SPV_OPERAND_TYPE_CAPABILITY + {IR(10864, 28), 265}, // 271 GeometryShaderPassthroughNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9302, 16), 185}, // 272 GeometryStreams in SPV_OPERAND_TYPE_CAPABILITY + {IR(14949, 36), 394}, // 273 GlobalVariableFPGADecorationsALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14985, 35), 394}, // 274 GlobalVariableFPGADecorationsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14919, 30), 393}, // 275 GlobalVariableHostAccessINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9758, 9), 210}, // 276 GraphARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(6122, 16), 192}, // 277 GroupNonUniform in SPV_OPERAND_TYPE_CAPABILITY + {IR(9441, 26), 194}, // 278 GroupNonUniformArithmetic in SPV_OPERAND_TYPE_CAPABILITY + {IR(6377, 22), 195}, // 279 GroupNonUniformBallot in SPV_OPERAND_TYPE_CAPABILITY + {IR(9521, 25), 198}, // 280 GroupNonUniformClustered in SPV_OPERAND_TYPE_CAPABILITY + {IR(11033, 29), 277}, // 281 GroupNonUniformPartitionedNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9546, 20), 199}, // 282 GroupNonUniformQuad in SPV_OPERAND_TYPE_CAPABILITY + {IR(14440, 25), 375}, // 283 GroupNonUniformRotateKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9467, 23), 196}, // 284 GroupNonUniformShuffle in SPV_OPERAND_TYPE_CAPABILITY + {IR(9490, 31), 197}, // 285 GroupNonUniformShuffleRelative in SPV_OPERAND_TYPE_CAPABILITY + {IR(9421, 20), 193}, // 286 GroupNonUniformVote in SPV_OPERAND_TYPE_CAPABILITY + {IR(15272, 26), 404}, // 287 GroupUniformArithmeticKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(8761, 7), 150}, // 288 Groups in SPV_OPERAND_TYPE_CAPABILITY + {IR(14135, 14), 364}, // 289 IOPipesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14149, 13), 364}, // 290 IOPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9158, 8), 175}, // 291 Image1D in SPV_OPERAND_TYPE_CAPABILITY + {IR(8717, 11), 146}, // 292 ImageBasic in SPV_OPERAND_TYPE_CAPABILITY + {IR(9180, 12), 178}, // 293 ImageBuffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(9035, 15), 165}, // 294 ImageCubeArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(10919, 17), 272}, // 295 ImageFootprintNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10624, 22), 251}, // 296 ImageGatherBiasLodAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(8857, 20), 157}, // 297 ImageGatherExtended in SPV_OPERAND_TYPE_CAPABILITY + {IR(9192, 13), 179}, // 298 ImageMSArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(8743, 12), 148}, // 299 ImageMipmap in SPV_OPERAND_TYPE_CAPABILITY + {IR(9233, 11), 181}, // 300 ImageQuery in SPV_OPERAND_TYPE_CAPABILITY + {IR(8728, 15), 147}, // 301 ImageReadWrite in SPV_OPERAND_TYPE_CAPABILITY + {IR(10662, 21), 254}, // 302 ImageReadWriteLodAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(9067, 10), 167}, // 303 ImageRect in SPV_OPERAND_TYPE_CAPABILITY + {IR(12981, 24), 333}, // 304 IndirectReferencesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9109, 16), 171}, // 305 InputAttachment in SPV_OPERAND_TYPE_CAPABILITY + {IR(11148, 36), 280}, // 306 InputAttachmentArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11184, 39), 280}, // 307 InputAttachmentArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11689, 39), 287}, // 308 InputAttachmentArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11728, 42), 287}, // 309 InputAttachmentArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8811, 6), 154}, // 310 Int16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(10741, 27), 260}, // 311 Int4CooperativeMatrixINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10727, 14), 259}, // 312 Int4TypeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8698, 6), 144}, // 313 Int64 in SPV_OPERAND_TYPE_CAPABILITY + {IR(8704, 13), 145}, // 314 Int64Atomics in SPV_OPERAND_TYPE_CAPABILITY + {IR(10683, 14), 255}, // 315 Int64ImageEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9104, 5), 170}, // 316 Int8 in SPV_OPERAND_TYPE_CAPABILITY + {IR(12936, 23), 331}, // 317 IntegerFunctions2INTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9262, 22), 183}, // 318 InterpolationFunction in SPV_OPERAND_TYPE_CAPABILITY + {IR(5357, 7), 139}, // 319 Kernel in SPV_OPERAND_TYPE_CAPABILITY + {IR(13582, 22), 352}, // 320 KernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8651, 8), 138}, // 321 Linkage in SPV_OPERAND_TYPE_CAPABILITY + {IR(8782, 15), 152}, // 322 LiteralSampler in SPV_OPERAND_TYPE_CAPABILITY + {IR(14527, 20), 380}, // 323 LongCompositesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13734, 15), 356}, // 324 LoopFuseALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(13749, 14), 356}, // 325 LoopFuseINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15325, 25), 406}, // 326 MaskedGatherScatterINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8644, 7), 133}, // 327 Matrix in SPV_OPERAND_TYPE_CAPABILITY + {IR(13804, 26), 358}, // 328 MemoryAccessAliasingINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(5653, 15), 273}, // 329 MeshShadingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(5639, 14), 271}, // 330 MeshShadingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9141, 7), 173}, // 331 MinLod in SPV_OPERAND_TYPE_CAPABILITY + {IR(6661, 10), 226}, // 332 MultiView in SPV_OPERAND_TYPE_CAPABILITY + {IR(5741, 14), 188}, // 333 MultiViewport in SPV_OPERAND_TYPE_CAPABILITY + {IR(9396, 13), 190}, // 334 NamedBarrier in SPV_OPERAND_TYPE_CAPABILITY + {IR(14547, 11), 381}, // 335 OptNoneEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(14558, 13), 381}, // 336 OptNoneINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(7135, 20), 269}, // 337 PerViewAttributesNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5475, 31), 295}, // 338 PhysicalStorageBufferAddresses in SPV_OPERAND_TYPE_CAPABILITY + {IR(12044, 34), 295}, // 339 PhysicalStorageBufferAddressesEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9409, 12), 191}, // 340 PipeStorage in SPV_OPERAND_TYPE_CAPABILITY + {IR(8755, 6), 149}, // 341 Pipes in SPV_OPERAND_TYPE_CAPABILITY + {IR(10712, 15), 258}, // 342 QuadControlKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12532, 18), 313}, // 343 RawAccessChainsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(8629, 15), 371}, // 344 RayCullMaskKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10421, 12), 240}, // 345 RayQueryKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12465, 25), 309}, // 346 RayQueryPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10398, 23), 239}, // 347 RayQueryProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(8576, 41), 323}, // 348 RayTracingClusterAccelerationStructureNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(8148, 33), 312}, // 349 RayTracingDisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5625, 14), 243}, // 350 RayTracingKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(8330, 39), 315}, // 351 RayTracingLinearSweptSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(8034, 23), 292}, // 352 RayTracingMotionBlurNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5612, 13), 291}, // 353 RayTracingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(12365, 29), 305}, // 354 RayTracingOpacityMicromapEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8087, 27), 290}, // 355 RayTracingPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12141, 25), 297}, // 356 RayTracingProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(8291, 28), 314}, // 357 RayTracingSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10452, 32), 242}, // 358 RayTraversalPrimitiveCullingKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(15369, 20), 408}, // 359 RegisterLimitsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14400, 24), 373}, // 360 ReplicatedCompositesEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12892, 21), 329}, // 361 RoundToInfinityINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10366, 16), 237}, // 362 RoundingModeRTE in SPV_OPERAND_TYPE_CAPABILITY + {IR(10382, 16), 238}, // 363 RoundingModeRTZ in SPV_OPERAND_TYPE_CAPABILITY + {IR(14076, 30), 363}, // 364 RuntimeAlignedAttributeALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14106, 29), 363}, // 365 RuntimeAlignedAttributeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(11099, 23), 279}, // 366 RuntimeDescriptorArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(11122, 26), 279}, // 367 RuntimeDescriptorArrayEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10835, 29), 264}, // 368 SampleMaskOverrideCoverageNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10201, 28), 230}, // 369 SampleMaskPostDepthCoverage in SPV_OPERAND_TYPE_CAPABILITY + {IR(5871, 18), 166}, // 370 SampleRateShading in SPV_OPERAND_TYPE_CAPABILITY + {IR(9148, 10), 174}, // 371 Sampled1D in SPV_OPERAND_TYPE_CAPABILITY + {IR(9166, 14), 177}, // 372 SampledBuffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(9050, 17), 176}, // 373 SampledCubeArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(8935, 33), 160}, // 374 SampledImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11462, 36), 284}, // 375 SampledImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11498, 39), 284}, // 376 SampledImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9077, 12), 168}, // 377 SampledRect in SPV_OPERAND_TYPE_CAPABILITY + {IR(5515, 7), 134}, // 378 Shader in SPV_OPERAND_TYPE_CAPABILITY + {IR(12550, 23), 316}, // 379 Shader64BitIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10697, 15), 256}, // 380 ShaderClockKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(6984, 18), 257}, // 381 ShaderEnqueueAMDX in SPV_OPERAND_TYPE_CAPABILITY + {IR(12420, 27), 307}, // 382 ShaderInvocationReorderEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12394, 26), 306}, // 383 ShaderInvocationReorderNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5687, 12), 200}, // 384 ShaderLayer in SPV_OPERAND_TYPE_CAPABILITY + {IR(11062, 17), 278}, // 385 ShaderNonUniform in SPV_OPERAND_TYPE_CAPABILITY + {IR(11079, 20), 278}, // 386 ShaderNonUniformEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8402, 19), 301}, // 387 ShaderSMBuiltinsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(7074, 19), 268}, // 388 ShaderStereoViewNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5755, 20), 201}, // 389 ShaderViewportIndex in SPV_OPERAND_TYPE_CAPABILITY + {IR(5699, 28), 266}, // 390 ShaderViewportIndexLayerEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10892, 27), 266}, // 391 ShaderViewportIndexLayerNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(7033, 21), 267}, // 392 ShaderViewportMaskNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11019, 14), 276}, // 393 ShadingRateNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10341, 25), 236}, // 394 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_CAPABILITY + {IR(9125, 16), 172}, // 395 SparseResidency in SPV_OPERAND_TYPE_CAPABILITY + {IR(15229, 21), 402}, // 396 SpecConditionalINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14636, 18), 385}, // 397 SplitBarrierINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(6938, 17), 253}, // 398 StencilExportEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9989, 25), 221}, // 399 StorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(10229, 24), 231}, // 400 StorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(8968, 34), 161}, // 401 StorageBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11537, 37), 285}, // 402 StorageBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11574, 40), 285}, // 403 StorageBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9002, 33), 162}, // 404 StorageImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11614, 36), 286}, // 405 StorageImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11650, 39), 286}, // 406 StorageImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9205, 28), 180}, // 407 StorageImageExtendedFormats in SPV_OPERAND_TYPE_CAPABILITY + {IR(8877, 24), 158}, // 408 StorageImageMultisample in SPV_OPERAND_TYPE_CAPABILITY + {IR(9318, 30), 186}, // 409 StorageImageReadWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY + {IR(9348, 31), 187}, // 410 StorageImageWriteWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY + {IR(10116, 21), 224}, // 411 StorageInputOutput16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(10094, 22), 223}, // 412 StoragePushConstant16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(10287, 21), 233}, // 413 StoragePushConstant8 in SPV_OPERAND_TYPE_CAPABILITY + {IR(9681, 37), 208}, // 414 StorageTensorArrayDynamicIndexingARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(9718, 40), 209}, // 415 StorageTensorArrayNonUniformIndexingARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(11304, 39), 282}, // 416 StorageTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11343, 42), 282}, // 417 StorageTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11857, 42), 289}, // 418 StorageTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11899, 45), 289}, // 419 StorageTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10077, 17), 222}, // 420 StorageUniform16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(10014, 28), 221}, // 421 StorageUniformBufferBlock16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(15048, 23), 396}, // 422 Subgroup2DBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15071, 30), 397}, // 423 Subgroup2DBlockTransformINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15101, 30), 398}, // 424 Subgroup2DBlockTransposeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13204, 39), 343}, // 425 SubgroupAvcMotionEstimationChromaINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13133, 33), 341}, // 426 SubgroupAvcMotionEstimationINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13166, 38), 342}, // 427 SubgroupAvcMotionEstimationIntraINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(6138, 18), 215}, // 428 SubgroupBallotKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12808, 27), 326}, // 429 SubgroupBufferBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15020, 28), 395}, // 430 SubgroupBufferPrefetchINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9379, 17), 189}, // 431 SubgroupDispatch in SPV_OPERAND_TYPE_CAPABILITY + {IR(12835, 26), 327}, // 432 SubgroupImageBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12861, 31), 328}, // 433 SubgroupImageMediaBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(15131, 38), 399}, // 434 SubgroupMatrixMultiplyAccumulateINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12787, 21), 325}, // 435 SubgroupShuffleINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9973, 16), 220}, // 436 SubgroupVoteKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14760, 19), 389}, // 437 TaskSequenceALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14779, 18), 389}, // 438 TaskSequenceINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12768, 19), 324}, // 439 TensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(15298, 27), 405}, // 440 TensorFloat32RoundingINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9670, 11), 207}, // 441 TensorsARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(15169, 28), 400}, // 442 TernaryBitwiseFunctionINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(5599, 13), 136}, // 443 Tessellation in SPV_OPERAND_TYPE_CAPABILITY + {IR(8817, 22), 155}, // 444 TessellationPointSize in SPV_OPERAND_TYPE_CAPABILITY + {IR(10585, 23), 249}, // 445 TextureBlockMatch2QCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(10531, 22), 246}, // 446 TextureBlockMatchQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(10510, 21), 245}, // 447 TextureBoxFilterQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(10484, 26), 244}, // 448 TextureSampleWeightedQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(9584, 28), 204}, // 449 TileImageColorReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9612, 28), 205}, // 450 TileImageDepthReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9640, 30), 206}, // 451 TileImageStencilReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(6701, 16), 247}, // 452 TileShadingQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(9284, 18), 184}, // 453 TransformFeedback in SPV_OPERAND_TYPE_CAPABILITY + {IR(14029, 24), 362}, // 454 USMStorageClassesALTERA in SPV_OPERAND_TYPE_CAPABILITY + {IR(14053, 23), 362}, // 455 USMStorageClassesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10042, 35), 222}, // 456 UniformAndStorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(10253, 34), 232}, // 457 UniformAndStorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(8901, 34), 159}, // 458 UniformBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11385, 37), 283}, // 459 UniformBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11422, 40), 283}, // 460 UniformBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9566, 18), 202}, // 461 UniformDecoration in SPV_OPERAND_TYPE_CAPABILITY + {IR(11223, 39), 281}, // 462 UniformTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11262, 42), 281}, // 463 UniformTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11770, 42), 288}, // 464 UniformTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11812, 45), 288}, // 465 UniformTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13507, 30), 350}, // 466 UnstructuredLoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10433, 19), 241}, // 467 UntypedPointersKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(15197, 32), 401}, // 468 UntypedVariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13243, 25), 344}, // 469 VariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10167, 17), 228}, // 470 VariablePointers in SPV_OPERAND_TYPE_CAPABILITY + {IR(10137, 30), 227}, // 471 VariablePointersStorageBuffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(8659, 9), 140}, // 472 Vector16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(13102, 15), 339}, // 473 VectorAnyINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13083, 19), 338}, // 474 VectorComputeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(11944, 18), 293}, // 475 VulkanMemoryModel in SPV_OPERAND_TYPE_CAPABILITY + {IR(11983, 29), 294}, // 476 VulkanMemoryModelDeviceScope in SPV_OPERAND_TYPE_CAPABILITY + {IR(12012, 32), 294}, // 477 VulkanMemoryModelDeviceScopeKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(11962, 21), 293}, // 478 VulkanMemoryModelKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9929, 44), 219}, // 479 WorkgroupMemoryExplicitLayout16BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9886, 43), 218}, // 480 WorkgroupMemoryExplicitLayout8BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9853, 33), 217}, // 481 WorkgroupMemoryExplicitLayoutKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(15421, 8), 411}, // 482 Address in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15429, 8), 412}, // 483 Boolean in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15437, 6), 413}, // 484 Float in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15443, 7), 414}, // 485 Signed in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15450, 11), 415}, // 486 SignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15461, 9), 416}, // 487 Unsigned in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15470, 13), 417}, // 488 UnsignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15409, 12), 410}, // 489 Unspecified in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15483, 6), 418}, // 490 Class in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(15489, 10), 419}, // 491 Structure in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(15499, 6), 420}, // 492 Union in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(15520, 20), 422}, // 493 ImportedDeclaration in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(15505, 15), 421}, // 494 ImportedModule in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(15629, 15), 430}, // 495 FlagArtificial in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15644, 13), 431}, // 496 FlagExplicit in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15617, 12), 429}, // 497 FlagFwdDecl in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15707, 21), 435}, // 498 FlagIndirectVariable in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15600, 17), 428}, // 499 FlagIsDefinition in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15784, 16), 439}, // 500 FlagIsEnumClass in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15588, 12), 427}, // 501 FlagIsLocal in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15768, 16), 438}, // 502 FlagIsOptimized in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15561, 14), 425}, // 503 FlagIsPrivate in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15545, 16), 424}, // 504 FlagIsProtected in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15575, 13), 426}, // 505 FlagIsPublic in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15728, 20), 436}, // 506 FlagLValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15672, 18), 433}, // 507 FlagObjectPointer in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15657, 15), 432}, // 508 FlagPrototyped in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15748, 20), 437}, // 509 FlagRValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15690, 17), 434}, // 510 FlagStaticMember in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15820, 24), 441}, // 511 FlagTypePassByReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15800, 20), 440}, // 512 FlagTypePassByValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15540, 5), 423}, // 513 None in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(15905, 9), 446}, // 514 BitPiece in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15937, 7), 450}, // 515 Constu in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15844, 6), 442}, // 516 Deref in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15944, 9), 451}, // 517 Fragment in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15855, 6), 444}, // 518 Minus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15850, 5), 443}, // 519 Plus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15894, 11), 445}, // 520 PlusUconst in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15926, 11), 449}, // 521 StackValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15914, 5), 447}, // 522 Swap in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15919, 7), 448}, // 523 Xderef in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(15989, 11), 455}, // 524 AtomicType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(15953, 10), 452}, // 525 ConstType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(15976, 13), 454}, // 526 RestrictType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(15963, 13), 453}, // 527 VolatileType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(16000, 10), 456}, // 528 Float16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16010, 10), 457}, // 529 Float32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16020, 10), 458}, // 530 Float64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16188, 12), 469}, // 531 FloatE4M3NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16200, 12), 470}, // 532 FloatE5M2NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16043, 14), 460}, // 533 SignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16057, 14), 461}, // 534 SignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16071, 14), 462}, // 535 SignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16030, 13), 459}, // 536 SignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16148, 19), 467}, // 537 SignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16100, 16), 464}, // 538 UnsignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16116, 16), 465}, // 539 UnsignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16132, 16), 466}, // 540 UnsignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16085, 15), 463}, // 541 UnsignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16167, 21), 468}, // 542 UnsignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(16264, 28), 474}, // 543 ColumnBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(16224, 15), 472}, // 544 ColumnMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(16239, 25), 473}, // 545 RowBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(16212, 12), 471}, // 546 RowMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(16300, 27), 476}, // 547 MatrixASignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(16327, 27), 477}, // 548 MatrixBSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(16354, 27), 478}, // 549 MatrixCSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(16381, 32), 479}, // 550 MatrixResultSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(16292, 8), 475}, // 551 NoneKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(16413, 26), 480}, // 552 SaturatingAccumulationKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(16450, 4), 483}, // 553 2x2 in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {IR(16443, 7), 482}, // 554 Column in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {IR(16439, 4), 481}, // 555 Row in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {IR(16454, 11), 484}, // 556 MatrixAKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {IR(16476, 21), 486}, // 557 MatrixAccumulatorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {IR(16465, 11), 485}, // 558 MatrixBKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {IR(16508, 14), 488}, // 559 ColumnMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(16522, 21), 489}, // 560 InferencingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(16497, 11), 487}, // 561 RowMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(16543, 18), 490}, // 562 TrainingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(15421, 8), 492}, // 563 Address in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15429, 8), 493}, // 564 Boolean in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15437, 6), 494}, // 565 Float in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15443, 7), 495}, // 566 Signed in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15450, 11), 496}, // 567 SignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15461, 9), 497}, // 568 Unsigned in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15470, 13), 498}, // 569 UnsignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15409, 12), 491}, // 570 Unspecified in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15483, 6), 499}, // 571 Class in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {IR(15489, 10), 500}, // 572 Structure in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {IR(15499, 6), 501}, // 573 Union in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {IR(15629, 15), 509}, // 574 FlagArtificial in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15644, 13), 510}, // 575 FlagExplicit in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15617, 12), 508}, // 576 FlagFwdDecl in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15707, 21), 514}, // 577 FlagIndirectVariable in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15600, 17), 507}, // 578 FlagIsDefinition in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15588, 12), 506}, // 579 FlagIsLocal in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15768, 16), 517}, // 580 FlagIsOptimized in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15561, 14), 504}, // 581 FlagIsPrivate in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15545, 16), 503}, // 582 FlagIsProtected in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15575, 13), 505}, // 583 FlagIsPublic in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15728, 20), 515}, // 584 FlagLValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15672, 18), 512}, // 585 FlagObjectPointer in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15657, 15), 511}, // 586 FlagPrototyped in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15748, 20), 516}, // 587 FlagRValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15690, 17), 513}, // 588 FlagStaticMember in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15540, 5), 502}, // 589 None in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(15905, 9), 522}, // 590 BitPiece in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15937, 7), 526}, // 591 Constu in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15844, 6), 518}, // 592 Deref in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15855, 6), 520}, // 593 Minus in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15850, 5), 519}, // 594 Plus in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15894, 11), 521}, // 595 PlusUconst in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15926, 11), 525}, // 596 StackValue in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15914, 5), 523}, // 597 Swap in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15919, 7), 524}, // 598 Xderef in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(15953, 10), 527}, // 599 ConstType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {IR(15976, 13), 529}, // 600 RestrictType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {IR(15963, 13), 528}, // 601 VolatileType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {IR(19216, 16), 645}, // 602 AliasScopeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16770, 8), 549}, // 603 Aliased in SPV_OPERAND_TYPE_DECORATION + {IR(17888, 15), 602}, // 604 AliasedPointer in SPV_OPERAND_TYPE_DECORATION + {IR(17903, 18), 602}, // 605 AliasedPointerEXT in SPV_OPERAND_TYPE_DECORATION + {IR(17248, 10), 573}, // 606 Alignment in SPV_OPERAND_TYPE_DECORATION + {IR(17292, 12), 575}, // 607 AlignmentId in SPV_OPERAND_TYPE_DECORATION + {IR(16621, 12), 536}, // 608 ArrayStride in SPV_OPERAND_TYPE_DECORATION + {IR(18766, 15), 633}, // 609 BankBitsALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18781, 14), 633}, // 610 BankBitsINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18479, 16), 626}, // 611 BankwidthALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18495, 15), 626}, // 612 BankwidthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16925, 8), 562}, // 613 Binding in SPV_OPERAND_TYPE_DECORATION + {IR(18000, 16), 606}, // 614 BindlessImageNV in SPV_OPERAND_TYPE_DECORATION + {IR(17982, 18), 605}, // 615 BindlessSamplerNV in SPV_OPERAND_TYPE_DECORATION + {IR(16585, 6), 532}, // 616 Block in SPV_OPERAND_TYPE_DECORATION + {IR(17432, 22), 582}, // 617 BlockMatchSamplerQCOM in SPV_OPERAND_TYPE_DECORATION + {IR(17410, 22), 581}, // 618 BlockMatchTextureQCOM in SPV_OPERAND_TYPE_DECORATION + {IR(18031, 13), 608}, // 619 BoundImageNV in SPV_OPERAND_TYPE_DECORATION + {IR(18016, 15), 607}, // 620 BoundSamplerNV in SPV_OPERAND_TYPE_DECORATION + {IR(16591, 12), 533}, // 621 BufferBlock in SPV_OPERAND_TYPE_DECORATION + {IR(19376, 21), 650}, // 622 BufferLocationALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19397, 20), 650}, // 623 BufferLocationINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16702, 8), 541}, // 624 BuiltIn in SPV_OPERAND_TYPE_DECORATION + {IR(18935, 20), 638}, // 625 BurstCoalesceALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18955, 19), 638}, // 626 BurstCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16668, 8), 540}, // 627 CPacked in SPV_OPERAND_TYPE_DECORATION + {IR(20623, 22), 673}, // 628 CacheControlLoadINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(20682, 23), 674}, // 629 CacheControlStoreINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18974, 16), 639}, // 630 CacheSizeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18990, 15), 639}, // 631 CacheSizeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16735, 9), 545}, // 632 Centroid in SPV_OPERAND_TYPE_DECORATION + {IR(18084, 13), 611}, // 633 ClobberINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16796, 9), 552}, // 634 Coherent in SPV_OPERAND_TYPE_DECORATION + {IR(16612, 9), 535}, // 635 ColMajor in SPV_OPERAND_TYPE_DECORATION + {IR(16909, 10), 560}, // 636 Component in SPV_OPERAND_TYPE_DECORATION + {IR(20570, 17), 672}, // 637 ConditionalINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19799, 28), 660}, // 638 ConduitKernelArgumentALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19827, 27), 660}, // 639 ConduitKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16787, 9), 551}, // 640 Constant in SPV_OPERAND_TYPE_DECORATION + {IR(18230, 14), 618}, // 641 CounterBuffer in SPV_OPERAND_TYPE_DECORATION + {IR(16933, 14), 563}, // 642 DescriptorSet in SPV_OPERAND_TYPE_DECORATION + {IR(19005, 29), 640}, // 643 DontStaticallyCoalesceALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19034, 28), 640}, // 644 DontStaticallyCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18588, 17), 629}, // 645 DoublepumpALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18605, 16), 629}, // 646 DoublepumpINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17454, 18), 583}, // 647 ExplicitInterpAMD in SPV_OPERAND_TYPE_DECORATION + {IR(17118, 15), 569}, // 648 FPFastMathMode in SPV_OPERAND_TYPE_DECORATION + {IR(19661, 26), 657}, // 649 FPMaxErrorDecorationINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17068, 15), 568}, // 650 FPRoundingMode in SPV_OPERAND_TYPE_DECORATION + {IR(16724, 5), 543}, // 651 Flat in SPV_OPERAND_TYPE_DECORATION + {IR(18795, 21), 634}, // 652 ForcePow2DepthALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18816, 20), 634}, // 653 ForcePow2DepthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17020, 14), 567}, // 654 FuncParamAttr in SPV_OPERAND_TYPE_DECORATION + {IR(18141, 21), 614}, // 655 FuncParamIOKindINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18372, 24), 622}, // 656 FunctionDenormModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19490, 31), 652}, // 657 FunctionFloatingPointModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18315, 26), 621}, // 658 FunctionRoundingModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19126, 26), 643}, // 659 FuseLoopsInFunctionALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19152, 25), 643}, // 660 FuseLoopsInFunctionINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16657, 11), 539}, // 661 GLSLPacked in SPV_OPERAND_TYPE_DECORATION + {IR(16646, 11), 538}, // 662 GLSLShared in SPV_OPERAND_TYPE_DECORATION + {IR(18204, 26), 617}, // 663 GlobalVariableOffsetINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17951, 31), 604}, // 664 HitObjectShaderRecordBufferEXT in SPV_OPERAND_TYPE_DECORATION + {IR(17921, 30), 603}, // 665 HitObjectShaderRecordBufferNV in SPV_OPERAND_TYPE_DECORATION + {IR(18244, 24), 618}, // 666 HlslCounterBufferGOOGLE in SPV_OPERAND_TYPE_DECORATION + {IR(18281, 19), 619}, // 667 HlslSemanticGOOGLE in SPV_OPERAND_TYPE_DECORATION + {IR(20421, 16), 669}, // 668 HostAccessINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19417, 20), 651}, // 669 IOPipeStorageALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19437, 19), 651}, // 670 IOPipeStorageINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(20513, 29), 671}, // 671 ImplementInRegisterMapALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20542, 28), 671}, // 672 ImplementInRegisterMapINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16919, 6), 561}, // 673 Index in SPV_OPERAND_TYPE_DECORATION + {IR(20484, 15), 670}, // 674 InitModeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20499, 14), 670}, // 675 InitModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19245, 25), 647}, // 676 InitiationIntervalALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19270, 24), 647}, // 677 InitiationIntervalINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17227, 21), 572}, // 678 InputAttachmentIndex in SPV_OPERAND_TYPE_DECORATION + {IR(16751, 10), 547}, // 679 Invariant in SPV_OPERAND_TYPE_DECORATION + {IR(19738, 31), 659}, // 680 LatencyControlConstraintALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19769, 30), 659}, // 681 LatencyControlConstraintINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19687, 26), 658}, // 682 LatencyControlLabelALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19713, 25), 658}, // 683 LatencyControlLabelINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17195, 18), 570}, // 684 LinkageAttributes in SPV_OPERAND_TYPE_DECORATION + {IR(16900, 9), 559}, // 685 Location in SPV_OPERAND_TYPE_DECORATION + {IR(19917, 34), 662}, // 686 MMHostInterfaceAddressWidthALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19951, 33), 662}, // 687 MMHostInterfaceAddressWidthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19984, 31), 663}, // 688 MMHostInterfaceDataWidthALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20015, 30), 663}, // 689 MMHostInterfaceDataWidthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(20045, 29), 664}, // 690 MMHostInterfaceLatencyALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20074, 28), 664}, // 691 MMHostInterfaceLatencyINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(20205, 30), 666}, // 692 MMHostInterfaceMaxBurstALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20235, 29), 666}, // 693 MMHostInterfaceMaxBurstINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(20136, 35), 665}, // 694 MMHostInterfaceReadWriteModeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20171, 34), 665}, // 695 MMHostInterfaceReadWriteModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(20264, 33), 667}, // 696 MMHostInterfaceWaitRequestALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20297, 32), 667}, // 697 MMHostInterfaceWaitRequestINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19177, 20), 644}, // 698 MathOpDSPModeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19197, 19), 644}, // 699 MathOpDSPModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16633, 13), 537}, // 700 MatrixStride in SPV_OPERAND_TYPE_DECORATION + {IR(17258, 14), 574}, // 701 MaxByteOffset in SPV_OPERAND_TYPE_DECORATION + {IR(17304, 16), 576}, // 702 MaxByteOffsetId in SPV_OPERAND_TYPE_DECORATION + {IR(19294, 21), 648}, // 703 MaxConcurrencyALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19315, 20), 648}, // 704 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18510, 23), 627}, // 705 MaxPrivateCopiesALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18533, 22), 627}, // 706 MaxPrivateCopiesINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18621, 20), 630}, // 707 MaxReplicatesALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18641, 19), 630}, // 708 MaxReplicatesINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19581, 18), 655}, // 709 MediaBlockIOINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18425, 13), 624}, // 710 MemoryALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18438, 12), 624}, // 711 MemoryINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18701, 12), 632}, // 712 MergeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18713, 11), 632}, // 713 MergeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19232, 13), 646}, // 714 NoAliasINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17213, 14), 571}, // 715 NoContraction in SPV_OPERAND_TYPE_DECORATION + {IR(16710, 14), 542}, // 716 NoPerspective in SPV_OPERAND_TYPE_DECORATION + {IR(17364, 13), 578}, // 717 NoSignedWrap in SPV_OPERAND_TYPE_DECORATION + {IR(17377, 15), 579}, // 718 NoUnsignedWrap in SPV_OPERAND_TYPE_DECORATION + {IR(17504, 20), 585}, // 719 NodeMaxPayloadsAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17472, 32), 584}, // 720 NodeSharesPayloadLimitsWithAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16817, 12), 554}, // 721 NonReadable in SPV_OPERAND_TYPE_DECORATION + {IR(17828, 11), 600}, // 722 NonUniform in SPV_OPERAND_TYPE_DECORATION + {IR(17839, 14), 600}, // 723 NonUniformEXT in SPV_OPERAND_TYPE_DECORATION + {IR(16805, 12), 553}, // 724 NonWritable in SPV_OPERAND_TYPE_DECORATION + {IR(18450, 15), 625}, // 725 NumbanksALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18465, 14), 625}, // 726 NumbanksINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16947, 7), 564}, // 727 Offset in SPV_OPERAND_TYPE_DECORATION + {IR(17672, 19), 592}, // 728 OverrideCoverageNV in SPV_OPERAND_TYPE_DECORATION + {IR(17691, 14), 593}, // 729 PassthroughNV in SPV_OPERAND_TYPE_DECORATION + {IR(16729, 6), 544}, // 730 Patch in SPV_OPERAND_TYPE_DECORATION + {IR(17644, 28), 591}, // 731 PayloadDispatchIndirectAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17619, 25), 590}, // 732 PayloadNodeArraySizeAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17567, 25), 588}, // 733 PayloadNodeBaseIndexAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17547, 20), 587}, // 734 PayloadNodeNameAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17592, 27), 589}, // 735 PayloadNodeSparseArrayAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17752, 16), 596}, // 736 PerPrimitiveEXT in SPV_OPERAND_TYPE_DECORATION + {IR(17768, 15), 596}, // 737 PerPrimitiveNV in SPV_OPERAND_TYPE_DECORATION + {IR(17793, 10), 598}, // 738 PerTaskNV in SPV_OPERAND_TYPE_DECORATION + {IR(17803, 13), 599}, // 739 PerVertexKHR in SPV_OPERAND_TYPE_DECORATION + {IR(17816, 12), 599}, // 740 PerVertexNV in SPV_OPERAND_TYPE_DECORATION + {IR(17783, 10), 597}, // 741 PerViewNV in SPV_OPERAND_TYPE_DECORATION + {IR(19335, 21), 649}, // 742 PipelineEnableALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19356, 20), 649}, // 743 PipelineEnableINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19062, 15), 641}, // 744 PrefetchALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19077, 14), 641}, // 745 PrefetchINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18058, 26), 610}, // 746 ReferencedIndirectlyINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18396, 15), 623}, // 747 RegisterALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18411, 14), 623}, // 748 RegisterINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19854, 32), 661}, // 749 RegisterMapKernelArgumentALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19886, 31), 661}, // 750 RegisterMapKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16561, 17), 530}, // 751 RelaxedPrecision in SPV_OPERAND_TYPE_DECORATION + {IR(16761, 9), 548}, // 752 Restrict in SPV_OPERAND_TYPE_DECORATION + {IR(17853, 16), 601}, // 753 RestrictPointer in SPV_OPERAND_TYPE_DECORATION + {IR(17869, 19), 601}, // 754 RestrictPointerEXT in SPV_OPERAND_TYPE_DECORATION + {IR(16603, 9), 534}, // 755 RowMajor in SPV_OPERAND_TYPE_DECORATION + {IR(18044, 14), 609}, // 756 SIMTCallINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16744, 7), 546}, // 757 Sample in SPV_OPERAND_TYPE_DECORATION + {IR(16873, 20), 557}, // 758 SaturatedConversion in SPV_OPERAND_TYPE_DECORATION + {IR(17320, 44), 577}, // 759 SaturatedToLargestFloat8NormalConversionEXT in SPV_OPERAND_TYPE_DECORATION + {IR(17724, 28), 595}, // 760 SecondaryViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION + {IR(18097, 17), 612}, // 761 SideEffectsINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18660, 21), 631}, // 762 SimpleDualPortALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18681, 20), 631}, // 763 SimpleDualPortINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19521, 25), 653}, // 764 SingleElementVectorINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18555, 17), 628}, // 765 SinglepumpALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18572, 16), 628}, // 766 SinglepumpINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16578, 7), 531}, // 767 SpecId in SPV_OPERAND_TYPE_DECORATION + {IR(20329, 27), 668}, // 768 StableKernelArgumentALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(20356, 26), 668}, // 769 StableKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18189, 15), 616}, // 770 StackCallINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19091, 18), 642}, // 771 StallEnableALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19109, 17), 642}, // 772 StallEnableINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(19599, 16), 656}, // 773 StallFreeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(19615, 15), 656}, // 774 StallFreeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16893, 7), 558}, // 775 Stream in SPV_OPERAND_TYPE_DECORATION + {IR(18836, 17), 635}, // 776 StridesizeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18853, 16), 635}, // 777 StridesizeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17524, 23), 586}, // 778 TrackFinishWritingAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(18898, 19), 637}, // 779 TrueDualPortALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18917, 18), 637}, // 780 TrueDualPortINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16829, 8), 555}, // 781 Uniform in SPV_OPERAND_TYPE_DECORATION + {IR(16863, 10), 556}, // 782 UniformId in SPV_OPERAND_TYPE_DECORATION + {IR(18268, 13), 619}, // 783 UserSemantic in SPV_OPERAND_TYPE_DECORATION + {IR(18300, 15), 620}, // 784 UserTypeGOOGLE in SPV_OPERAND_TYPE_DECORATION + {IR(19546, 35), 654}, // 785 VectorComputeCallableFunctionINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18162, 27), 615}, // 786 VectorComputeFunctionINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18114, 27), 613}, // 787 VectorComputeVariableINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17705, 19), 594}, // 788 ViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION + {IR(16778, 9), 550}, // 789 Volatile in SPV_OPERAND_TYPE_DECORATION + {IR(17392, 18), 580}, // 790 WeightTextureQCOM in SPV_OPERAND_TYPE_DECORATION + {IR(18869, 15), 636}, // 791 WordsizeALTERA in SPV_OPERAND_TYPE_DECORATION + {IR(18884, 14), 636}, // 792 WordsizeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16954, 10), 565}, // 793 XfbBuffer in SPV_OPERAND_TYPE_DECORATION + {IR(16964, 10), 566}, // 794 XfbStride in SPV_OPERAND_TYPE_DECORATION + {IR(20705, 3), 675}, // 795 1D in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20708, 3), 676}, // 796 2D in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20711, 3), 677}, // 797 3D in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20724, 7), 680}, // 798 Buffer in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20714, 5), 678}, // 799 Cube in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20719, 5), 679}, // 800 Rect in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20731, 12), 681}, // 801 SubpassData in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(20743, 17), 682}, // 802 TileImageDataEXT in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(21555, 15), 735}, // 803 CoalescingAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21186, 15), 713}, // 804 ContractionOff in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(10323, 18), 727}, // 805 DenormFlushToZero in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(10308, 15), 726}, // 806 DenormPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20956, 13), 696}, // 807 DepthGreater in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20969, 10), 697}, // 808 DepthLess in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20941, 15), 695}, // 809 DepthReplacing in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20979, 15), 698}, // 810 DepthUnchanged in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21976, 25), 753}, // 811 DerivativeGroupLinearKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22001, 24), 753}, // 812 DerivativeGroupLinearNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21929, 24), 752}, // 813 DerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21953, 23), 752}, // 814 DerivativeGroupQuadsNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21503, 29), 733}, // 815 EarlyAndLateFragmentTestsAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20908, 19), 692}, // 816 EarlyFragmentTests in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22486, 18), 773}, // 817 FPFastMathDefault in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21213, 10), 715}, // 818 Finalizer in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22301, 26), 765}, // 819 FloatingPointModeALTINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22327, 27), 766}, // 820 FloatingPointModeIEEEINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21201, 12), 714}, // 821 Initializer in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21030, 11), 702}, // 822 InputLines in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21041, 20), 703}, // 823 InputLinesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21018, 12), 701}, // 824 InputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21071, 24), 705}, // 825 InputTrianglesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20760, 12), 683}, // 826 Invocations in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21570, 15), 736}, // 827 IsApiEntryAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21101, 9), 707}, // 828 Isolines in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20994, 10), 699}, // 829 LocalSize in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21004, 14), 700}, // 830 LocalSizeHint in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21281, 16), 720}, // 831 LocalSizeHintId in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21269, 12), 719}, // 832 LocalSizeId in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21585, 21), 737}, // 833 MaxNodeRecursionAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21630, 21), 740}, // 834 MaxNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22376, 16), 768}, // 835 MaxWorkDimINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22354, 22), 767}, // 836 MaxWorkgroupSizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22462, 24), 772}, // 837 MaximallyReconvergesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22577, 22), 777}, // 838 MaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22599, 24), 778}, // 839 MaximumRegistersIdINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22554, 23), 776}, // 840 NamedBarrierCountINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22674, 27), 779}, // 841 NamedMaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22392, 20), 769}, // 842 NoGlobalOffsetINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21297, 34), 721}, // 843 NonCoherentColorAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21331, 34), 722}, // 844 NonCoherentDepthAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21365, 36), 723}, // 845 NonCoherentStencilAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21449, 34), 731}, // 846 NonCoherentTileAttachmentReadQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22412, 22), 770}, // 847 NumSIMDWorkitemsINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20892, 16), 691}, // 848 OriginLowerLeft in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20876, 16), 690}, // 849 OriginUpperLeft in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21138, 16), 710}, // 850 OutputLineStrip in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21861, 15), 750}, // 851 OutputLinesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21876, 14), 750}, // 852 OutputLinesNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21125, 13), 709}, // 853 OutputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21890, 20), 751}, // 854 OutputPrimitivesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21910, 19), 751}, // 855 OutputPrimitivesNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21154, 20), 711}, // 856 OutputTriangleStrip in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22025, 19), 754}, // 857 OutputTrianglesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22044, 18), 754}, // 858 OutputTrianglesNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21110, 15), 708}, // 859 OutputVertices in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20857, 19), 689}, // 860 PixelCenterInteger in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22062, 25), 755}, // 861 PixelInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22087, 27), 756}, // 862 PixelInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20927, 10), 693}, // 863 PointMode in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21431, 18), 725}, // 864 PostDepthCoverage in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21802, 19), 747}, // 865 QuadDerivativesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21095, 6), 706}, // 866 Quads in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22528, 26), 775}, // 867 RegisterMapInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21821, 20), 748}, // 868 RequireFullQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(10366, 16), 729}, // 869 RoundingModeRTE in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22280, 21), 764}, // 870 RoundingModeRTNINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22259, 21), 763}, // 871 RoundingModeRTPINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(10382, 16), 730}, // 872 RoundingModeRTZ in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22114, 26), 757}, // 873 SampleInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22140, 28), 758}, // 874 SampleInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22434, 28), 771}, // 875 SchedulerTargetFmaxMhzINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(12550, 23), 761}, // 876 Shader64BitIndexingEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(7002, 16), 739}, // 877 ShaderIndexAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22168, 31), 759}, // 878 ShadingRateInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22199, 33), 760}, // 879 ShadingRateInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22232, 27), 762}, // 880 SharedLocalMemorySizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21841, 20), 749}, // 881 SharesInputWithAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(10341, 25), 728}, // 882 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20772, 13), 684}, // 883 SpacingEqual in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20785, 22), 685}, // 884 SpacingFractionalEven in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20807, 21), 686}, // 885 SpacingFractionalOdd in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21606, 24), 738}, // 886 StaticNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21755, 25), 745}, // 887 StencilRefGreaterBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21679, 26), 742}, // 888 StencilRefGreaterFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21780, 22), 746}, // 889 StencilRefLessBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21705, 23), 743}, // 890 StencilRefLessFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21532, 23), 734}, // 891 StencilRefReplacingEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21728, 27), 744}, // 892 StencilRefUnchangedBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21651, 28), 741}, // 893 StencilRefUnchangedFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22504, 24), 774}, // 894 StreamingInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(6109, 13), 716}, // 895 SubgroupSize in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21401, 30), 724}, // 896 SubgroupUniformControlFlowKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21223, 22), 717}, // 897 SubgroupsPerWorkgroup in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21245, 24), 718}, // 898 SubgroupsPerWorkgroupId in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21483, 20), 732}, // 899 TileShadingRateQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21061, 10), 704}, // 900 Triangles in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(21174, 12), 712}, // 901 VecTypeHint in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20842, 15), 688}, // 902 VertexOrderCcw in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20828, 14), 687}, // 903 VertexOrderCw in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20937, 4), 694}, // 904 Xfb in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(22839, 10), 791}, // 905 AnyHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22849, 9), 791}, // 906 AnyHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22900, 12), 794}, // 907 CallableKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22912, 11), 794}, // 908 CallableNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22858, 14), 792}, // 909 ClosestHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22872, 13), 792}, // 910 ClosestHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(15944, 9), 784}, // 911 Fragment in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22751, 10), 785}, // 912 GLCompute in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(5590, 9), 783}, // 913 Geometry in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22808, 16), 790}, // 914 IntersectionKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22824, 15), 790}, // 915 IntersectionNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(5357, 7), 786}, // 916 Kernel in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22931, 8), 796}, // 917 MeshEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22768, 7), 788}, // 918 MeshNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22885, 8), 793}, // 919 MissKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22893, 7), 793}, // 920 MissNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22775, 17), 789}, // 921 RayGenerationKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22792, 16), 789}, // 922 RayGenerationNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22923, 8), 795}, // 923 TaskEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22761, 7), 787}, // 924 TaskNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22708, 20), 781}, // 925 TessellationControl in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22728, 23), 782}, // 926 TessellationEvaluation in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22701, 7), 780}, // 927 Vertex in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(22948, 12), 798}, // 928 FlushToZero in SPV_OPERAND_TYPE_FPDENORM_MODE + {IR(22939, 9), 797}, // 929 Preserve in SPV_OPERAND_TYPE_FPDENORM_MODE + {IR(22960, 12), 799}, // 930 BFloat16KHR in SPV_OPERAND_TYPE_FPENCODING + {IR(22972, 14), 800}, // 931 Float8E4M3EXT in SPV_OPERAND_TYPE_FPENCODING + {IR(22986, 14), 801}, // 932 Float8E5M2EXT in SPV_OPERAND_TYPE_FPENCODING + {IR(23005, 4), 803}, // 933 ALT in SPV_OPERAND_TYPE_FPOPERATION_MODE + {IR(23000, 5), 802}, // 934 IEEE in SPV_OPERAND_TYPE_FPOPERATION_MODE + {IR(23043, 14), 810}, // 935 AllowContract in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23057, 23), 810}, // 936 AllowContractFastINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23080, 13), 811}, // 937 AllowReassoc in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23093, 18), 811}, // 938 AllowReassocINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23027, 11), 808}, // 939 AllowRecip in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23111, 15), 812}, // 940 AllowTransform in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23038, 5), 809}, // 941 Fast in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23023, 4), 807}, // 942 NSZ in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(15540, 5), 804}, // 943 None in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23016, 7), 806}, // 944 NotInf in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23009, 7), 805}, // 945 NotNaN in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(23126, 4), 813}, // 946 RTE in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(23138, 4), 816}, // 947 RTN in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(23134, 4), 815}, // 948 RTP in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(23130, 4), 814}, // 949 RTZ in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(23174, 18), 819}, // 950 Horizontal2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(23192, 18), 820}, // 951 Horizontal4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(23142, 16), 817}, // 952 Vertical2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(23158, 16), 818}, // 953 Vertical4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(23233, 6), 825}, // 954 Const in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(23217, 11), 823}, // 955 DontInline in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(23210, 7), 822}, // 956 Inline in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(15540, 5), 821}, // 957 None in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(14547, 11), 826}, // 958 OptNoneEXT in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(14558, 13), 826}, // 959 OptNoneINTEL in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(23228, 5), 824}, // 960 Pure in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(23249, 6), 829}, // 961 ByVal in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23260, 8), 831}, // 962 NoAlias in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23268, 10), 832}, // 963 NoCapture in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23286, 12), 834}, // 964 NoReadWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23278, 8), 833}, // 965 NoWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23298, 21), 835}, // 966 RuntimeAlignedALTERA in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23319, 20), 835}, // 967 RuntimeAlignedINTEL in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23244, 5), 828}, // 968 Sext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23255, 5), 830}, // 969 Sret in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23239, 5), 827}, // 970 Zext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(23374, 16), 839}, // 971 ClusteredReduce in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23360, 14), 838}, // 972 ExclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23346, 14), 837}, // 973 InclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23437, 27), 842}, // 974 PartitionedExclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23410, 27), 841}, // 975 PartitionedInclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23390, 20), 840}, // 976 PartitionedReduceNV in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23339, 7), 836}, // 977 Reduce in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(23464, 10), 843}, // 978 NoneINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(23474, 10), 844}, // 979 ReadINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(23495, 15), 846}, // 980 ReadWriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(23484, 11), 845}, // 981 WriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(23510, 5), 848}, // 982 Bias in SPV_OPERAND_TYPE_IMAGE + {IR(23524, 12), 851}, // 983 ConstOffset in SPV_OPERAND_TYPE_IMAGE + {IR(23536, 13), 853}, // 984 ConstOffsets in SPV_OPERAND_TYPE_IMAGE + {IR(23519, 5), 850}, // 985 Grad in SPV_OPERAND_TYPE_IMAGE + {IR(23515, 4), 849}, // 986 Lod in SPV_OPERAND_TYPE_IMAGE + {IR(23549, 19), 856}, // 987 MakeTexelAvailable in SPV_OPERAND_TYPE_IMAGE + {IR(23568, 22), 856}, // 988 MakeTexelAvailableKHR in SPV_OPERAND_TYPE_IMAGE + {IR(23590, 17), 857}, // 989 MakeTexelVisible in SPV_OPERAND_TYPE_IMAGE + {IR(23607, 20), 857}, // 990 MakeTexelVisibleKHR in SPV_OPERAND_TYPE_IMAGE + {IR(9141, 7), 855}, // 991 MinLod in SPV_OPERAND_TYPE_IMAGE + {IR(23627, 16), 858}, // 992 NonPrivateTexel in SPV_OPERAND_TYPE_IMAGE + {IR(23643, 19), 858}, // 993 NonPrivateTexelKHR in SPV_OPERAND_TYPE_IMAGE + {IR(15540, 5), 847}, // 994 None in SPV_OPERAND_TYPE_IMAGE + {IR(23715, 12), 862}, // 995 Nontemporal in SPV_OPERAND_TYPE_IMAGE + {IR(16947, 7), 852}, // 996 Offset in SPV_OPERAND_TYPE_IMAGE + {IR(23727, 8), 863}, // 997 Offsets in SPV_OPERAND_TYPE_IMAGE + {IR(16744, 7), 854}, // 998 Sample in SPV_OPERAND_TYPE_IMAGE + {IR(23693, 11), 860}, // 999 SignExtend in SPV_OPERAND_TYPE_IMAGE + {IR(23662, 14), 859}, // 1000 VolatileTexel in SPV_OPERAND_TYPE_IMAGE + {IR(23676, 17), 859}, // 1001 VolatileTexelKHR in SPV_OPERAND_TYPE_IMAGE + {IR(23704, 11), 861}, // 1002 ZeroExtend in SPV_OPERAND_TYPE_IMAGE + {IR(15437, 6), 878}, // 1003 Float in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23896, 10), 877}, // 1004 HalfFloat in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23831, 12), 872}, // 1005 SignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23843, 12), 873}, // 1006 SignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23820, 11), 871}, // 1007 SignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23745, 11), 865}, // 1008 SnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23735, 10), 864}, // 1009 SnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23805, 15), 870}, // 1010 UnormInt101010 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23917, 17), 880}, // 1011 UnormInt101010_2 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23934, 16), 881}, // 1012 UnormInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(24067, 16), 888}, // 1013 UnormInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(24083, 16), 889}, // 1014 UnormInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23766, 11), 867}, // 1015 UnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23906, 11), 879}, // 1016 UnormInt24 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23990, 20), 884}, // 1017 UnormInt2_101010EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23756, 10), 866}, // 1018 UnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23791, 14), 869}, // 1019 UnormShort555 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23777, 14), 868}, // 1020 UnormShort565 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(24010, 19), 885}, // 1021 UnsignedInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(24029, 19), 886}, // 1022 UnsignedInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(24048, 19), 887}, // 1023 UnsignedInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23868, 14), 875}, // 1024 UnsignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23882, 14), 876}, // 1025 UnsignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23855, 13), 874}, // 1026 UnsignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23950, 20), 882}, // 1027 UnsignedIntRaw10EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(23970, 20), 883}, // 1028 UnsignedIntRaw12EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(24101, 2), 891}, // 1029 A in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24202, 5), 909}, // 1030 ABGR in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24123, 5), 897}, // 1031 ARGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24118, 5), 896}, // 1032 BGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24160, 6), 903}, // 1033 Depth in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24166, 13), 904}, // 1034 DepthStencil in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24128, 10), 898}, // 1035 Intensity in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24138, 10), 899}, // 1036 Luminance in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24099, 2), 890}, // 1037 R in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24106, 3), 893}, // 1038 RA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24103, 3), 892}, // 1039 RG in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24109, 4), 894}, // 1040 RGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24113, 5), 895}, // 1041 RGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24155, 5), 902}, // 1042 RGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24151, 4), 901}, // 1043 RGx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24148, 3), 900}, // 1044 Rx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24196, 6), 908}, // 1045 sBGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24179, 5), 905}, // 1046 sRGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24190, 6), 907}, // 1047 sRGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24184, 6), 906}, // 1048 sRGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(24207, 28), 910}, // 1049 InitOnDeviceReprogramALTERA in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {IR(24235, 27), 910}, // 1050 InitOnDeviceReprogramINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {IR(24262, 24), 911}, // 1051 InitOnDeviceResetALTERA in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {IR(24286, 23), 911}, // 1052 InitOnDeviceResetINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {IR(24309, 7), 912}, // 1053 NoWait in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {IR(24316, 11), 913}, // 1054 WaitKernel in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {IR(24327, 14), 914}, // 1055 WaitWorkGroup in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {IR(24341, 12), 916}, // 1056 CmdExecTime in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO + {IR(15540, 5), 915}, // 1057 None in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO + {IR(24353, 13), 918}, // 1058 MayUsePrintf in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS + {IR(15540, 5), 917}, // 1059 None in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS + {IR(24366, 7), 919}, // 1060 Export in SPV_OPERAND_TYPE_LINKAGE_TYPE + {IR(24373, 7), 920}, // 1061 Import in SPV_OPERAND_TYPE_LINKAGE_TYPE + {IR(24380, 12), 921}, // 1062 LinkOnceODR in SPV_OPERAND_TYPE_LINKAGE_TYPE + {IR(24406, 12), 923}, // 1063 CachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(24458, 17), 926}, // 1064 ConstCachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(24433, 25), 925}, // 1065 InvalidateAfterReadINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(24418, 15), 924}, // 1066 StreamingINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(24392, 14), 922}, // 1067 UncachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(24598, 22), 939}, // 1068 DependencyArrayALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24620, 21), 939}, // 1069 DependencyArrayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24493, 19), 930}, // 1070 DependencyInfinite in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24512, 17), 931}, // 1071 DependencyLength in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24482, 11), 929}, // 1072 DontUnroll in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(19245, 25), 937}, // 1073 InitiationIntervalALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(19270, 24), 937}, // 1074 InitiationIntervalINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24557, 18), 934}, // 1075 IterationMultiple in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24641, 19), 941}, // 1076 LoopCoalesceALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24660, 18), 941}, // 1077 LoopCoalesceINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24803, 16), 945}, // 1078 LoopCountALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24819, 15), 945}, // 1079 LoopCountINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(19294, 21), 938}, // 1080 MaxConcurrencyALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(19315, 20), 938}, // 1081 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24678, 22), 942}, // 1082 MaxInterleavingALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24700, 21), 942}, // 1083 MaxInterleavingINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24543, 14), 933}, // 1084 MaxIterations in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24834, 27), 946}, // 1085 MaxReinvocationDelayALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24861, 26), 946}, // 1086 MaxReinvocationDelayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24529, 14), 932}, // 1087 MinIterations in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24774, 15), 944}, // 1088 NoFusionALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24789, 14), 944}, // 1089 NoFusionINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(15540, 5), 927}, // 1090 None in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24585, 13), 936}, // 1091 PartialCount in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24575, 10), 935}, // 1092 PeelCount in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(19335, 21), 940}, // 1093 PipelineEnableALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(19356, 20), 940}, // 1094 PipelineEnableINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24721, 27), 943}, // 1095 SpeculatedIterationsALTERA in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24748, 26), 943}, // 1096 SpeculatedIterationsINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(24475, 7), 928}, // 1097 Unroll in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(25170, 27), 960}, // 1098 MatrixAPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25118, 26), 958}, // 1099 MatrixAPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25038, 23), 954}, // 1100 MatrixAPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(24992, 23), 952}, // 1101 MatrixAPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(24887, 29), 948}, // 1102 MatrixASignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25084, 17), 956}, // 1103 MatrixATF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25197, 27), 961}, // 1104 MatrixBPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25144, 26), 959}, // 1105 MatrixBPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25061, 23), 955}, // 1106 MatrixBPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25015, 23), 953}, // 1107 MatrixBPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(24916, 29), 949}, // 1108 MatrixBSignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25101, 17), 957}, // 1109 MatrixBTF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(24945, 21), 950}, // 1110 MatrixCBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(24966, 26), 951}, // 1111 MatrixResultBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(15540, 5), 947}, // 1112 None in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(25357, 20), 969}, // 1113 AliasScopeINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25224, 8), 964}, // 1114 Aligned in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25232, 21), 966}, // 1115 MakePointerAvailable in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25253, 24), 966}, // 1116 MakePointerAvailableKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25277, 19), 967}, // 1117 MakePointerVisible in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25296, 22), 967}, // 1118 MakePointerVisibleKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25377, 17), 970}, // 1119 NoAliasINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25318, 18), 968}, // 1120 NonPrivatePointer in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25336, 21), 968}, // 1121 NonPrivatePointerKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(15540, 5), 962}, // 1122 None in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(23715, 12), 965}, // 1123 Nontemporal in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(16778, 9), 963}, // 1124 Volatile in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(25401, 8), 972}, // 1125 GLSL450 in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(25409, 7), 973}, // 1126 OpenCL in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(25394, 7), 971}, // 1127 Simple in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(25416, 7), 974}, // 1128 Vulkan in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(25423, 10), 974}, // 1129 VulkanKHR in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(25441, 8), 976}, // 1130 Acquire in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25457, 15), 978}, // 1131 AcquireRelease in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25561, 20), 984}, // 1132 AtomicCounterMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25540, 21), 983}, // 1133 CrossWorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25581, 12), 985}, // 1134 ImageMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25622, 14), 987}, // 1135 MakeAvailable in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25636, 17), 987}, // 1136 MakeAvailableKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25653, 12), 988}, // 1137 MakeVisible in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25665, 15), 988}, // 1138 MakeVisibleKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(15540, 5), 975}, // 1139 None in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25593, 13), 986}, // 1140 OutputMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25606, 16), 986}, // 1141 OutputMemoryKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25433, 8), 975}, // 1142 Relaxed in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25449, 8), 977}, // 1143 Release in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25472, 23), 979}, // 1144 SequentiallyConsistent in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25509, 15), 981}, // 1145 SubgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25495, 14), 980}, // 1146 UniformMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(16778, 9), 989}, // 1147 Volatile in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25524, 16), 982}, // 1148 WorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(25680, 10), 990}, // 1149 AutoINTEL in SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS + {IR(25695, 4), 992}, // 1150 SAT in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(25708, 8), 994}, // 1151 SAT_SYM in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(25699, 9), 993}, // 1152 SAT_ZERO in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(25690, 5), 991}, // 1153 WRAP in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(25716, 25), 995}, // 1154 PackedVectorFormat4x8Bit in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT + {IR(25741, 28), 995}, // 1155 PackedVectorFormat4x8BitKHR in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT + {IR(25782, 4), 998}, // 1156 RND in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25815, 9), 1002}, // 1157 RND_CONV in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25824, 13), 1003}, // 1158 RND_CONV_ODD in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25795, 8), 1000}, // 1159 RND_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25803, 12), 1001}, // 1160 RND_MIN_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25786, 9), 999}, // 1161 RND_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25769, 4), 996}, // 1162 TRN in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(25773, 9), 997}, // 1163 TRN_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(15540, 5), 1004}, // 1164 None in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {IR(25837, 25), 1005}, // 1165 RobustnessPerComponentNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {IR(25862, 23), 1006}, // 1166 RobustnessPerElementNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {IR(25954, 27), 1012}, // 1167 CullBackFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(25981, 28), 1013}, // 1168 CullFrontFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26023, 16), 1015}, // 1169 CullNoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26009, 14), 1014}, // 1170 CullOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26093, 30), 1018}, // 1171 ForceOpacityMicromap2StateEXT in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(25895, 12), 1009}, // 1172 NoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(16292, 8), 1007}, // 1173 NoneKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(25885, 10), 1008}, // 1174 OpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26080, 13), 1017}, // 1175 SkipAABBsKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26056, 24), 1016}, // 1176 SkipBuiltinPrimitivesNV in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(25930, 24), 1011}, // 1177 SkipClosestHitShaderKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26039, 17), 1016}, // 1178 SkipTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(25907, 23), 1010}, // 1179 TerminateOnFirstHitKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(26164, 37), 1020}, // 1180 RayQueryCandidateIntersectionAABBKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE + {IR(26123, 41), 1019}, // 1181 RayQueryCandidateIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE + {IR(26279, 42), 1023}, // 1182 RayQueryCommittedIntersectionGeneratedKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {IR(26201, 37), 1021}, // 1183 RayQueryCommittedIntersectionNoneKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {IR(26238, 41), 1022}, // 1184 RayQueryCommittedIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {IR(26321, 33), 1024}, // 1185 RayQueryCandidateIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {IR(26354, 33), 1025}, // 1186 RayQueryCommittedIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {IR(26399, 6), 1028}, // 1187 Clamp in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(26387, 12), 1027}, // 1188 ClampToEdge in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(15540, 5), 1026}, // 1189 None in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(26405, 7), 1029}, // 1190 Repeat in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(26412, 15), 1030}, // 1191 RepeatMirrored in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(26435, 7), 1032}, // 1192 Linear in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE + {IR(26427, 8), 1031}, // 1193 Nearest in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE + {IR(26500, 13), 1041}, // 1194 R11fG11fB10f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26542, 4), 1047}, // 1195 R16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26580, 9), 1052}, // 1196 R16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26513, 5), 1042}, // 1197 R16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26642, 5), 1061}, // 1198 R16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26713, 6), 1071}, // 1199 R16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26466, 5), 1036}, // 1200 R32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26620, 5), 1057}, // 1201 R32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26677, 6), 1066}, // 1202 R32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26730, 5), 1074}, // 1203 R64i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26724, 6), 1073}, // 1204 R64ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26546, 3), 1048}, // 1205 R8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26589, 8), 1053}, // 1206 R8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26647, 4), 1062}, // 1207 R8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26719, 5), 1072}, // 1208 R8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26533, 5), 1045}, // 1209 Rg16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26561, 10), 1050}, // 1210 Rg16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26494, 6), 1040}, // 1211 Rg16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26631, 6), 1059}, // 1212 Rg16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26700, 7), 1069}, // 1213 Rg16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26488, 6), 1039}, // 1214 Rg32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26625, 6), 1058}, // 1215 Rg32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26693, 7), 1068}, // 1216 Rg32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26538, 4), 1046}, // 1217 Rg8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26571, 9), 1051}, // 1218 Rg8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26637, 5), 1060}, // 1219 Rg8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26707, 6), 1070}, // 1220 Rg8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26525, 8), 1044}, // 1221 Rgb10A2 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26683, 10), 1067}, // 1222 Rgb10a2ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26518, 7), 1043}, // 1223 Rgba16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26549, 12), 1049}, // 1224 Rgba16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26458, 8), 1035}, // 1225 Rgba16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26605, 8), 1055}, // 1226 Rgba16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26660, 9), 1064}, // 1227 Rgba16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26450, 8), 1034}, // 1228 Rgba32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26597, 8), 1054}, // 1229 Rgba32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26651, 9), 1063}, // 1230 Rgba32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26471, 6), 1037}, // 1231 Rgba8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26477, 11), 1038}, // 1232 Rgba8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26613, 7), 1056}, // 1233 Rgba8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26669, 8), 1065}, // 1234 Rgba8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26442, 8), 1033}, // 1235 Unknown in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(26735, 12), 1075}, // 1236 CrossDevice in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26747, 7), 1076}, // 1237 Device in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26773, 11), 1079}, // 1238 Invocation in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26784, 12), 1080}, // 1239 QueueFamily in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26796, 15), 1080}, // 1240 QueueFamilyKHR in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26811, 14), 1081}, // 1241 ShaderCallKHR in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26764, 9), 1078}, // 1242 Subgroup in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26754, 10), 1077}, // 1243 Workgroup in SPV_OPERAND_TYPE_SCOPE_ID + {IR(26833, 12), 1084}, // 1244 DontFlatten in SPV_OPERAND_TYPE_SELECTION_CONTROL + {IR(26825, 8), 1083}, // 1245 Flatten in SPV_OPERAND_TYPE_SELECTION_CONTROL + {IR(15540, 5), 1082}, // 1246 None in SPV_OPERAND_TYPE_SELECTION_CONTROL + {IR(26845, 29), 1085}, // 1247 IdentifierPossibleDuplicates in SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS + {IR(15421, 8), 1087}, // 1248 Address in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15429, 8), 1088}, // 1249 Boolean in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15437, 6), 1089}, // 1250 Float in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15443, 7), 1090}, // 1251 Signed in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15450, 11), 1091}, // 1252 SignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15461, 9), 1092}, // 1253 Unsigned in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15470, 13), 1093}, // 1254 UnsignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15409, 12), 1086}, // 1255 Unspecified in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(15483, 6), 1094}, // 1256 Class in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(15489, 10), 1095}, // 1257 Structure in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(15499, 6), 1096}, // 1258 Union in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(15520, 20), 1098}, // 1259 ImportedDeclaration in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(15505, 15), 1097}, // 1260 ImportedModule in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(15629, 15), 1106}, // 1261 FlagArtificial in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15644, 13), 1107}, // 1262 FlagExplicit in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15617, 12), 1105}, // 1263 FlagFwdDecl in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15707, 21), 1111}, // 1264 FlagIndirectVariable in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15600, 17), 1104}, // 1265 FlagIsDefinition in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15784, 16), 1115}, // 1266 FlagIsEnumClass in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15588, 12), 1103}, // 1267 FlagIsLocal in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15768, 16), 1114}, // 1268 FlagIsOptimized in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15561, 14), 1101}, // 1269 FlagIsPrivate in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15545, 16), 1100}, // 1270 FlagIsProtected in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15575, 13), 1102}, // 1271 FlagIsPublic in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15728, 20), 1112}, // 1272 FlagLValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15672, 18), 1109}, // 1273 FlagObjectPointer in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15657, 15), 1108}, // 1274 FlagPrototyped in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15748, 20), 1113}, // 1275 FlagRValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15690, 17), 1110}, // 1276 FlagStaticMember in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15820, 24), 1117}, // 1277 FlagTypePassByReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15800, 20), 1116}, // 1278 FlagTypePassByValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(26874, 26), 1118}, // 1279 FlagUnknownPhysicalLayout in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15540, 5), 1099}, // 1280 None in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(15905, 9), 1123}, // 1281 BitPiece in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15937, 7), 1127}, // 1282 Constu in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15844, 6), 1119}, // 1283 Deref in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15944, 9), 1128}, // 1284 Fragment in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15855, 6), 1121}, // 1285 Minus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15850, 5), 1120}, // 1286 Plus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15894, 11), 1122}, // 1287 PlusUconst in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15926, 11), 1126}, // 1288 StackValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15914, 5), 1124}, // 1289 Swap in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15919, 7), 1125}, // 1290 Xderef in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(15989, 11), 1132}, // 1291 AtomicType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(15953, 10), 1129}, // 1292 ConstType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(15976, 13), 1131}, // 1293 RestrictType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(15963, 13), 1130}, // 1294 VolatileType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(26935, 15), 1139}, // 1295 CPP_for_OpenCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26900, 5), 1134}, // 1296 ESSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26905, 5), 1135}, // 1297 GLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26955, 7), 1141}, // 1298 HERO_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26930, 5), 1138}, // 1299 HLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26962, 5), 1142}, // 1300 NZSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26910, 9), 1136}, // 1301 OpenCL_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26919, 11), 1137}, // 1302 OpenCL_CPP in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26982, 5), 1146}, // 1303 Rust in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26950, 5), 1140}, // 1304 SYCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26972, 6), 1144}, // 1305 Slang in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26442, 8), 1133}, // 1306 Unknown in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26967, 5), 1143}, // 1307 WGSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(26978, 4), 1145}, // 1308 Zig in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(27069, 14), 1157}, // 1309 AtomicCounter in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27151, 16), 1163}, // 1310 CallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27167, 15), 1163}, // 1311 CallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27487, 17), 1173}, // 1312 CodeSectionINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27016, 15), 1152}, // 1313 CrossWorkgroup in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27504, 17), 1174}, // 1314 DeviceOnlyALTERA in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27521, 16), 1174}, // 1315 DeviceOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27039, 9), 1154}, // 1316 Function in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27048, 8), 1155}, // 1317 Generic in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27256, 16), 1166}, // 1318 HitAttributeKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27272, 15), 1166}, // 1319 HitAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27465, 22), 1172}, // 1320 HitObjectAttributeEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27420, 21), 1170}, // 1321 HitObjectAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27537, 15), 1175}, // 1322 HostOnlyALTERA in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27552, 14), 1175}, // 1323 HostOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27083, 6), 1158}, // 1324 Image in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27182, 24), 1164}, // 1325 IncomingCallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27206, 23), 1164}, // 1326 IncomingCallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27287, 22), 1167}, // 1327 IncomingRayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27309, 21), 1167}, // 1328 IncomingRayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27003, 6), 1148}, // 1329 Input in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27135, 16), 1162}, // 1330 NodePayloadAMDX in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27009, 7), 1150}, // 1331 Output in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27373, 22), 1169}, // 1332 PhysicalStorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27395, 25), 1169}, // 1333 PhysicalStorageBufferEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27031, 8), 1153}, // 1334 Private in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27056, 13), 1156}, // 1335 PushConstant in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27229, 14), 1165}, // 1336 RayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27243, 13), 1165}, // 1337 RayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27330, 22), 1168}, // 1338 ShaderRecordBufferKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27352, 21), 1168}, // 1339 ShaderRecordBufferNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27089, 14), 1159}, // 1340 StorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27441, 24), 1171}, // 1341 TaskPayloadWorkgroupEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27116, 19), 1161}, // 1342 TileAttachmentQCOM in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(27103, 13), 1160}, // 1343 TileImageEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(16829, 8), 1149}, // 1344 Uniform in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(26987, 16), 1147}, // 1345 UniformConstant in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(26754, 10), 1151}, // 1346 Workgroup in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24418, 15), 1179}, // 1347 StreamingINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(24392, 14), 1176}, // 1348 UncachedINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(27584, 15), 1178}, // 1349 WriteBackINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(27566, 18), 1177}, // 1350 WriteThroughINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(27610, 11), 1182}, // 1351 DecodeFunc in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {IR(15540, 5), 1180}, // 1352 None in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {IR(27599, 11), 1181}, // 1353 TensorView in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {IR(26387, 12), 1185}, // 1354 ClampToEdge in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(16787, 9), 1184}, // 1355 Constant in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(26405, 7), 1186}, // 1356 Repeat in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(26412, 15), 1187}, // 1357 RepeatMirrored in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(27621, 10), 1183}, // 1358 Undefined in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(27674, 24), 1191}, // 1359 MakeElementAvailableARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(27698, 22), 1192}, // 1360 MakeElementVisibleARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(27720, 21), 1193}, // 1361 NonPrivateElementARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(27631, 8), 1188}, // 1362 NoneARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(27639, 15), 1189}, // 1363 NontemporalARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(27654, 20), 1190}, // 1364 OutOfBoundsValueARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS }}; IndexRange OperandNameRangeForKind(spv_operand_type_t type) { @@ -2930,89 +3061,89 @@ IndexRange OperandNameRangeForKind(spv_operand_type_t type) { case SPV_OPERAND_TYPE_ACCESS_QUALIFIER: return IR(0, 3); case SPV_OPERAND_TYPE_ADDRESSING_MODEL: return IR(3, 5); case SPV_OPERAND_TYPE_BUILT_IN: return IR(8, 148); - case SPV_OPERAND_TYPE_CAPABILITY: return IR(156, 303); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(459, 8); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(467, 3); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(470, 2); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(472, 19); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(491, 10); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(501, 4); - case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(505, 15); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(520, 4); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(524, 6); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(530, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(533, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(536, 4); - case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(540, 8); - case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(548, 3); - case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(551, 16); - case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(567, 9); - case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(576, 3); - case SPV_OPERAND_TYPE_DECORATION: return IR(579, 151); - case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(730, 8); - case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(738, 101); - case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(839, 23); - case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(862, 2); - case SPV_OPERAND_TYPE_FPENCODING: return IR(864, 3); - case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(867, 2); - case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(869, 11); - case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(880, 4); - case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(884, 4); - case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(888, 7); - case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(895, 9); - case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(904, 7); - case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(911, 4); - case SPV_OPERAND_TYPE_IMAGE: return IR(915, 21); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(936, 26); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(962, 20); - case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(982, 2); - case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(984, 3); - case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(987, 2); - case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(989, 2); - case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(991, 3); - case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(994, 5); - case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(999, 20); - case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1019, 15); - case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(1034, 12); - case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(1046, 5); - case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(1051, 19); - case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(1070, 1); - case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(1071, 4); - case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(1075, 2); - case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(1077, 8); - case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(1085, 3); - case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1088, 13); - case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1101, 2); - case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1103, 3); - case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1106, 2); - case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1108, 5); - case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1113, 2); - case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1115, 42); - case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1157, 8); - case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1165, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1168, 1); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1169, 8); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1177, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1180, 2); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1182, 20); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1202, 10); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1212, 4); - case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1216, 14); - case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1230, 35); - case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1265, 4); - case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1269, 3); - case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1272, 5); - case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1277, 6); - case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(915, 21); + case SPV_OPERAND_TYPE_CAPABILITY: return IR(156, 326); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(482, 8); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(490, 3); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(493, 2); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(495, 19); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(514, 10); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(524, 4); + case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(528, 15); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(543, 4); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(547, 6); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(553, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(556, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(559, 4); + case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(563, 8); + case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(571, 3); + case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(574, 16); + case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(590, 9); + case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(599, 3); + case SPV_OPERAND_TYPE_DECORATION: return IR(602, 193); + case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(795, 8); + case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(803, 102); + case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(905, 23); + case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(928, 2); + case SPV_OPERAND_TYPE_FPENCODING: return IR(930, 3); + case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(933, 2); + case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(935, 11); + case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(946, 4); + case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(950, 4); + case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(954, 7); + case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(961, 10); + case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(971, 7); + case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(978, 4); + case SPV_OPERAND_TYPE_IMAGE: return IR(982, 21); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(1003, 26); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(1029, 20); + case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(1049, 4); + case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(1053, 3); + case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(1056, 2); + case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(1058, 2); + case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(1060, 3); + case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(1063, 5); + case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(1068, 30); + case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1098, 15); + case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(1113, 12); + case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(1125, 5); + case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(1130, 19); + case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(1149, 1); + case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(1150, 4); + case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(1154, 2); + case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(1156, 8); + case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(1164, 3); + case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1167, 13); + case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1180, 2); + case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1182, 3); + case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1185, 2); + case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1187, 5); + case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1192, 2); + case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1194, 42); + case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1236, 8); + case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1244, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1247, 1); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1248, 8); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1256, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1259, 2); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1261, 20); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1281, 10); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1291, 4); + case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1295, 14); + case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1309, 38); + case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1347, 4); + case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1351, 3); + case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1354, 5); + case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1359, 6); + case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(982, 21); case SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER: return IR(0, 3); - case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(1034, 12); - case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(1075, 2); - case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(524, 6); - case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1019, 15); - case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(1085, 3); - case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(864, 3); - case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1277, 6); - case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return IR(156, 303); + case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(1113, 12); + case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(1154, 2); + case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(547, 6); + case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1098, 15); + case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(1164, 3); + case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(930, 3); + case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1359, 6); + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return IR(156, 326); default: break; } return IR(0,0); @@ -3030,1670 +3161,1781 @@ IndexRange OperandNameRangeForKind(spv_operand_type_t type) { // extensions, as an IndexRange into kExtensionSpans // version, first version of SPIR-V that has it // lastVersion, last version of SPIR-V that has it -static const std::array kInstructionDesc{{ - {spv::Op::OpNop, false, false, IR(0, 0), IR(25214, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpUndef, true, true, IR(39, 2), IR(25270, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpSourceContinued, false, false, IR(11, 1), IR(25276, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpSource, false, false, IR(41, 4), IR(25395, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpSourceExtension, false, false, IR(11, 1), IR(25402, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpName, false, false, IR(45, 2), IR(25418, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpMemberName, false, false, IR(47, 3), IR(25423, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpString, true, false, IR(50, 2), IR(25434, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpLine, false, false, IR(52, 3), IR(25441, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpExtension, false, false, IR(11, 1), IR(25446, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kExtension}, - {spv::Op::OpExtInstImport, true, false, IR(50, 2), IR(25456, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kExtension}, - {spv::Op::OpExtInst, true, true, IR(55, 4), IR(25516, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kExtension}, - {spv::Op::OpMemoryModel, false, false, IR(59, 2), IR(25588, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpEntryPoint, false, false, IR(61, 4), IR(25662, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpExecutionMode, false, false, IR(65, 2), IR(25705, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpCapability, false, false, IR(67, 1), IR(25747, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpTypeVoid, true, false, IR(68, 1), IR(25758, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeBool, true, false, IR(68, 1), IR(25767, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeInt, true, false, IR(69, 3), IR(25776, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeFloat, true, false, IR(72, 3), IR(25821, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeVector, true, false, IR(75, 3), IR(25831, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeMatrix, true, false, IR(75, 3), IR(25842, 11), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeImage, true, false, IR(78, 9), IR(25966, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeSampler, true, false, IR(68, 1), IR(25976, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeSampledImage, true, false, IR(87, 2), IR(25988, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeArray, true, false, IR(89, 3), IR(26005, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeRuntimeArray, true, false, IR(87, 2), IR(26015, 17), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeStruct, true, false, IR(92, 2), IR(26032, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeOpaque, true, false, IR(50, 2), IR(26043, 11), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypePointer, true, false, IR(94, 3), IR(26085, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeFunction, true, false, IR(97, 3), IR(26097, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeEvent, true, false, IR(68, 1), IR(26110, 10), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeDeviceEvent, true, false, IR(68, 1), IR(26120, 16), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeReserveId, true, false, IR(68, 1), IR(26136, 14), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeQueue, true, false, IR(68, 1), IR(26150, 10), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypePipe, true, false, IR(100, 2), IR(26160, 9), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeForwardPointer, false, false, IR(102, 2), IR(26169, 19), IR(0, 0), IR(203, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpConstantTrue, true, true, IR(39, 2), IR(26188, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConstantFalse, true, true, IR(39, 2), IR(26201, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConstant, true, true, IR(104, 3), IR(15470, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConstantComposite, true, true, IR(107, 3), IR(26253, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConstantSampler, true, true, IR(110, 5), IR(26349, 16), IR(0, 0), IR(205, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConstantNull, true, true, IR(39, 2), IR(26365, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantTrue, true, true, IR(39, 2), IR(26378, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantFalse, true, true, IR(39, 2), IR(26395, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstant, true, true, IR(104, 3), IR(26413, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantComposite, true, true, IR(107, 3), IR(26426, 22), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantOp, true, true, IR(115, 3), IR(26489, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpFunction, true, true, IR(118, 4), IR(24566, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, - {spv::Op::OpFunctionParameter, true, true, IR(39, 2), IR(26538, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, - {spv::Op::OpFunctionEnd, false, false, IR(0, 0), IR(26556, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, - {spv::Op::OpFunctionCall, true, true, IR(122, 4), IR(26568, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, - {spv::Op::OpVariable, true, true, IR(126, 4), IR(26581, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpImageTexelPointer, true, true, IR(130, 5), IR(26590, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpLoad, true, true, IR(135, 4), IR(26648, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpStore, false, false, IR(139, 3), IR(26653, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCopyMemory, false, false, IR(142, 4), IR(26659, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCopyMemorySized, false, false, IR(146, 5), IR(26670, 16), IR(0, 0), IR(206, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpAccessChain, true, true, IR(122, 4), IR(26686, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpInBoundsAccessChain, true, true, IR(122, 4), IR(26698, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpPtrAccessChain, true, true, IR(151, 5), IR(26718, 15), IR(0, 0), IR(208, 4), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpArrayLength, true, true, IR(156, 4), IR(26733, 12), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpGenericPtrMemSemantics, true, true, IR(160, 3), IR(26745, 23), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpInBoundsPtrAccessChain, true, true, IR(151, 5), IR(26768, 23), IR(0, 0), IR(1, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpDecorate, false, false, IR(163, 2), IR(26819, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpMemberDecorate, false, false, IR(165, 3), IR(26828, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpDecorationGroup, true, false, IR(68, 1), IR(26843, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpGroupDecorate, false, false, IR(168, 2), IR(26859, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpGroupMemberDecorate, false, false, IR(170, 2), IR(26918, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpVectorExtractDynamic, true, true, IR(172, 4), IR(26938, 21), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpVectorInsertDynamic, true, true, IR(130, 5), IR(26959, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpVectorShuffle, true, true, IR(176, 5), IR(26979, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpCompositeConstruct, true, true, IR(107, 3), IR(26993, 19), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpCompositeExtract, true, true, IR(181, 4), IR(27012, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpCompositeInsert, true, true, IR(176, 5), IR(27029, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpCopyObject, true, true, IR(160, 3), IR(27045, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpTranspose, true, true, IR(160, 3), IR(27056, 10), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpSampledImage, true, true, IR(172, 4), IR(27066, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleImplicitLod, true, true, IR(185, 5), IR(27111, 23), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleExplicitLod, true, true, IR(190, 5), IR(27157, 23), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleDrefImplicitLod, true, true, IR(195, 6), IR(27180, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleDrefExplicitLod, true, true, IR(201, 6), IR(27207, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleProjImplicitLod, true, true, IR(185, 5), IR(27234, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleProjExplicitLod, true, true, IR(190, 5), IR(27261, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleProjDrefImplicitLod, true, true, IR(195, 6), IR(27288, 31), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSampleProjDrefExplicitLod, true, true, IR(201, 6), IR(27319, 31), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageFetch, true, true, IR(185, 5), IR(27350, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageGather, true, true, IR(195, 6), IR(27361, 12), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageDrefGather, true, true, IR(195, 6), IR(27373, 16), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageRead, true, true, IR(185, 5), IR(27389, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageWrite, false, false, IR(207, 4), IR(27399, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImage, true, true, IR(160, 3), IR(24610, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQueryFormat, true, true, IR(160, 3), IR(27410, 17), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQueryOrder, true, true, IR(160, 3), IR(27427, 16), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQuerySizeLod, true, true, IR(172, 4), IR(27443, 18), IR(0, 0), IR(212, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQuerySize, true, true, IR(160, 3), IR(27461, 15), IR(0, 0), IR(212, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQueryLod, true, true, IR(172, 4), IR(27476, 14), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQueryLevels, true, true, IR(160, 3), IR(27490, 17), IR(0, 0), IR(212, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQuerySamples, true, true, IR(160, 3), IR(27507, 18), IR(0, 0), IR(212, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpConvertFToU, true, true, IR(160, 3), IR(27525, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertFToS, true, true, IR(160, 3), IR(27537, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertSToF, true, true, IR(160, 3), IR(27549, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertUToF, true, true, IR(160, 3), IR(27561, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpUConvert, true, true, IR(160, 3), IR(27573, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpSConvert, true, true, IR(160, 3), IR(27582, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpFConvert, true, true, IR(160, 3), IR(27591, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpQuantizeToF16, true, true, IR(160, 3), IR(27600, 14), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertPtrToU, true, true, IR(160, 3), IR(27614, 14), IR(0, 0), IR(203, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpSatConvertSToU, true, true, IR(160, 3), IR(27628, 15), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpSatConvertUToS, true, true, IR(160, 3), IR(27643, 15), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertUToPtr, true, true, IR(160, 3), IR(27658, 14), IR(0, 0), IR(203, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpPtrCastToGeneric, true, true, IR(160, 3), IR(27672, 17), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpGenericCastToPtr, true, true, IR(160, 3), IR(27689, 17), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpGenericCastToPtrExplicit, true, true, IR(211, 4), IR(27706, 25), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpBitcast, true, true, IR(160, 3), IR(27731, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpSNegate, true, true, IR(160, 3), IR(27739, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFNegate, true, true, IR(160, 3), IR(27747, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpIAdd, true, true, IR(172, 4), IR(27755, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFAdd, true, true, IR(172, 4), IR(27760, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpISub, true, true, IR(172, 4), IR(27765, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFSub, true, true, IR(172, 4), IR(27770, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpIMul, true, true, IR(172, 4), IR(27775, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFMul, true, true, IR(172, 4), IR(27780, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUDiv, true, true, IR(172, 4), IR(27785, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSDiv, true, true, IR(172, 4), IR(27790, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFDiv, true, true, IR(172, 4), IR(27795, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUMod, true, true, IR(172, 4), IR(27800, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSRem, true, true, IR(172, 4), IR(27805, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSMod, true, true, IR(172, 4), IR(27810, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFRem, true, true, IR(172, 4), IR(27815, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpFMod, true, true, IR(172, 4), IR(27820, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpVectorTimesScalar, true, true, IR(172, 4), IR(27825, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpMatrixTimesScalar, true, true, IR(172, 4), IR(27843, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpVectorTimesMatrix, true, true, IR(172, 4), IR(27861, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpMatrixTimesVector, true, true, IR(172, 4), IR(27879, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpMatrixTimesMatrix, true, true, IR(172, 4), IR(27897, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpOuterProduct, true, true, IR(172, 4), IR(27915, 13), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpDot, true, true, IR(172, 4), IR(27928, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpIAddCarry, true, true, IR(172, 4), IR(27932, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpISubBorrow, true, true, IR(172, 4), IR(27942, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUMulExtended, true, true, IR(172, 4), IR(27953, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSMulExtended, true, true, IR(172, 4), IR(27966, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpAny, true, true, IR(160, 3), IR(27979, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpAll, true, true, IR(160, 3), IR(27983, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpIsNan, true, true, IR(160, 3), IR(27987, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpIsInf, true, true, IR(160, 3), IR(27993, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpIsFinite, true, true, IR(160, 3), IR(27999, 9), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpIsNormal, true, true, IR(160, 3), IR(28008, 9), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpSignBitSet, true, true, IR(160, 3), IR(28017, 11), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpLessOrGreater, true, true, IR(172, 4), IR(28028, 14), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), SPV_SPIRV_VERSION_WORD(1,5), PrintingClass::kRelational_and_Logical}, - {spv::Op::OpOrdered, true, true, IR(172, 4), IR(28042, 8), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpUnordered, true, true, IR(172, 4), IR(28050, 10), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpLogicalEqual, true, true, IR(172, 4), IR(28060, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpLogicalNotEqual, true, true, IR(172, 4), IR(28073, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpLogicalOr, true, true, IR(172, 4), IR(28089, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpLogicalAnd, true, true, IR(172, 4), IR(28099, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpLogicalNot, true, true, IR(160, 3), IR(28110, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpSelect, true, true, IR(130, 5), IR(28121, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpIEqual, true, true, IR(172, 4), IR(28128, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpINotEqual, true, true, IR(172, 4), IR(28135, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpUGreaterThan, true, true, IR(172, 4), IR(28145, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpSGreaterThan, true, true, IR(172, 4), IR(28158, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpUGreaterThanEqual, true, true, IR(172, 4), IR(28171, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpSGreaterThanEqual, true, true, IR(172, 4), IR(28189, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpULessThan, true, true, IR(172, 4), IR(28207, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpSLessThan, true, true, IR(172, 4), IR(28217, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpULessThanEqual, true, true, IR(172, 4), IR(28227, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpSLessThanEqual, true, true, IR(172, 4), IR(28242, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFOrdEqual, true, true, IR(172, 4), IR(28257, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFUnordEqual, true, true, IR(172, 4), IR(28267, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFOrdNotEqual, true, true, IR(172, 4), IR(28279, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFUnordNotEqual, true, true, IR(172, 4), IR(28292, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFOrdLessThan, true, true, IR(172, 4), IR(28307, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFUnordLessThan, true, true, IR(172, 4), IR(28320, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFOrdGreaterThan, true, true, IR(172, 4), IR(28335, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFUnordGreaterThan, true, true, IR(172, 4), IR(28351, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFOrdLessThanEqual, true, true, IR(172, 4), IR(28369, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFUnordLessThanEqual, true, true, IR(172, 4), IR(28387, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFOrdGreaterThanEqual, true, true, IR(172, 4), IR(28407, 21), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpFUnordGreaterThanEqual, true, true, IR(172, 4), IR(28428, 23), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, - {spv::Op::OpShiftRightLogical, true, true, IR(172, 4), IR(28451, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpShiftRightArithmetic, true, true, IR(172, 4), IR(28469, 21), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpShiftLeftLogical, true, true, IR(172, 4), IR(28490, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitwiseOr, true, true, IR(172, 4), IR(28507, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitwiseXor, true, true, IR(172, 4), IR(28517, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitwiseAnd, true, true, IR(172, 4), IR(28528, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpNot, true, true, IR(160, 3), IR(28539, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitFieldInsert, true, true, IR(215, 6), IR(28543, 15), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitFieldSExtract, true, true, IR(130, 5), IR(28558, 17), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitFieldUExtract, true, true, IR(130, 5), IR(28575, 17), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitReverse, true, true, IR(160, 3), IR(28592, 11), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitCount, true, true, IR(160, 3), IR(28603, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpDPdx, true, true, IR(160, 3), IR(28612, 5), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdy, true, true, IR(160, 3), IR(28617, 5), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpFwidth, true, true, IR(160, 3), IR(28622, 7), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdxFine, true, true, IR(160, 3), IR(28629, 9), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdyFine, true, true, IR(160, 3), IR(28638, 9), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpFwidthFine, true, true, IR(160, 3), IR(28647, 11), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdxCoarse, true, true, IR(160, 3), IR(28658, 11), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdyCoarse, true, true, IR(160, 3), IR(28669, 11), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpFwidthCoarse, true, true, IR(160, 3), IR(28680, 13), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpEmitVertex, false, false, IR(0, 0), IR(28693, 11), IR(0, 0), IR(69, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, - {spv::Op::OpEndPrimitive, false, false, IR(0, 0), IR(28704, 13), IR(0, 0), IR(69, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, - {spv::Op::OpEmitStreamVertex, false, false, IR(10, 1), IR(28717, 17), IR(0, 0), IR(116, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, - {spv::Op::OpEndStreamPrimitive, false, false, IR(10, 1), IR(28734, 19), IR(0, 0), IR(116, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, - {spv::Op::OpControlBarrier, false, false, IR(221, 3), IR(28790, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpMemoryBarrier, false, false, IR(224, 2), IR(28805, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpAtomicLoad, true, true, IR(226, 5), IR(28819, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicStore, false, false, IR(231, 4), IR(28830, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicExchange, true, true, IR(235, 6), IR(28842, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicCompareExchange, true, true, IR(241, 8), IR(28857, 22), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicCompareExchangeWeak, true, true, IR(241, 8), IR(28879, 26), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), SPV_SPIRV_VERSION_WORD(1,3), PrintingClass::kAtomic}, - {spv::Op::OpAtomicIIncrement, true, true, IR(226, 5), IR(28905, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicIDecrement, true, true, IR(226, 5), IR(28922, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicIAdd, true, true, IR(235, 6), IR(28939, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicISub, true, true, IR(235, 6), IR(28950, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicSMin, true, true, IR(235, 6), IR(28961, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicUMin, true, true, IR(235, 6), IR(28972, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicSMax, true, true, IR(235, 6), IR(28983, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicUMax, true, true, IR(235, 6), IR(28994, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicAnd, true, true, IR(235, 6), IR(29005, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicOr, true, true, IR(235, 6), IR(29015, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicXor, true, true, IR(235, 6), IR(29024, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpPhi, true, true, IR(107, 3), IR(29034, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpLoopMerge, false, false, IR(249, 3), IR(29068, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpSelectionMerge, false, false, IR(252, 2), IR(29113, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpLabel, true, false, IR(68, 1), IR(29128, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpBranch, false, false, IR(10, 1), IR(29134, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpBranchConditional, false, false, IR(254, 4), IR(29141, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpSwitch, false, false, IR(258, 3), IR(29204, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpKill, false, false, IR(0, 0), IR(29211, 5), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpReturn, false, false, IR(0, 0), IR(29216, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpReturnValue, false, false, IR(10, 1), IR(29223, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpUnreachable, false, false, IR(0, 0), IR(29235, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpLifetimeStart, false, false, IR(261, 2), IR(29247, 14), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpLifetimeStop, false, false, IR(261, 2), IR(29261, 13), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpGroupAsyncCopy, true, true, IR(263, 8), IR(29274, 15), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupWaitEvents, false, false, IR(271, 3), IR(29289, 16), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupAll, true, true, IR(274, 4), IR(29305, 9), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupAny, true, true, IR(274, 4), IR(29314, 9), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBroadcast, true, true, IR(278, 5), IR(29323, 15), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupIAdd, true, true, IR(283, 5), IR(29371, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFAdd, true, true, IR(283, 5), IR(29381, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMin, true, true, IR(283, 5), IR(29391, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMin, true, true, IR(283, 5), IR(29401, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMin, true, true, IR(283, 5), IR(29411, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMax, true, true, IR(283, 5), IR(29421, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMax, true, true, IR(283, 5), IR(29431, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMax, true, true, IR(283, 5), IR(29441, 10), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpReadPipe, true, true, IR(215, 6), IR(29451, 9), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpWritePipe, true, true, IR(215, 6), IR(29460, 10), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpReservedReadPipe, true, true, IR(288, 8), IR(29470, 17), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpReservedWritePipe, true, true, IR(288, 8), IR(29487, 18), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpReserveReadPipePackets, true, true, IR(215, 6), IR(29505, 23), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpReserveWritePipePackets, true, true, IR(215, 6), IR(29528, 24), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpCommitReadPipe, false, false, IR(296, 4), IR(29552, 15), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpCommitWritePipe, false, false, IR(296, 4), IR(29567, 16), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpIsValidReserveId, true, true, IR(160, 3), IR(29583, 17), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGetNumPipePackets, true, true, IR(130, 5), IR(29600, 18), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGetMaxPipePackets, true, true, IR(130, 5), IR(29618, 18), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGroupReserveReadPipePackets, true, true, IR(300, 7), IR(29636, 28), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGroupReserveWritePipePackets, true, true, IR(300, 7), IR(29664, 29), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGroupCommitReadPipe, false, false, IR(307, 5), IR(29693, 20), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGroupCommitWritePipe, false, false, IR(307, 5), IR(29713, 21), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpEnqueueMarker, true, true, IR(215, 6), IR(29734, 14), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpEnqueueKernel, true, true, IR(312, 13), IR(29748, 14), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetKernelNDrangeSubGroupCount, true, true, IR(325, 7), IR(29762, 30), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetKernelNDrangeMaxSubGroupSize, true, true, IR(325, 7), IR(29792, 32), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetKernelWorkGroupSize, true, true, IR(215, 6), IR(29824, 23), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetKernelPreferredWorkGroupSizeMultiple, true, true, IR(215, 6), IR(29847, 40), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpRetainEvent, false, false, IR(10, 1), IR(29887, 12), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpReleaseEvent, false, false, IR(10, 1), IR(29899, 13), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpCreateUserEvent, true, true, IR(39, 2), IR(29912, 16), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpIsValidEvent, true, true, IR(160, 3), IR(29928, 13), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpSetUserEventStatus, false, false, IR(36, 2), IR(29941, 19), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpCaptureEventProfilingInfo, false, false, IR(33, 3), IR(29960, 26), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetDefaultQueue, true, true, IR(39, 2), IR(29986, 16), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpBuildNDRange, true, true, IR(130, 5), IR(30002, 13), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpImageSparseSampleImplicitLod, true, true, IR(185, 5), IR(30015, 29), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleExplicitLod, true, true, IR(190, 5), IR(30044, 29), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleDrefImplicitLod, true, true, IR(195, 6), IR(30073, 33), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleDrefExplicitLod, true, true, IR(201, 6), IR(30106, 33), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjImplicitLod, true, true, IR(185, 5), IR(30139, 33), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjExplicitLod, true, true, IR(190, 5), IR(30172, 33), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjDrefImplicitLod, true, true, IR(195, 6), IR(30205, 37), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjDrefExplicitLod, true, true, IR(201, 6), IR(30242, 37), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseFetch, true, true, IR(185, 5), IR(30279, 17), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseGather, true, true, IR(195, 6), IR(30296, 18), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseDrefGather, true, true, IR(195, 6), IR(30314, 22), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseTexelsResident, true, true, IR(160, 3), IR(30336, 26), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpNoLine, false, false, IR(0, 0), IR(30362, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpAtomicFlagTestAndSet, true, true, IR(226, 5), IR(30369, 21), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicFlagClear, false, false, IR(332, 3), IR(30390, 16), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpImageSparseRead, true, true, IR(185, 5), IR(30406, 16), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpSizeOf, true, true, IR(160, 3), IR(30422, 7), IR(0, 0), IR(1, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpTypePipeStorage, true, false, IR(68, 1), IR(30429, 16), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpConstantPipeStorage, true, true, IR(335, 5), IR(30445, 20), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpCreatePipeFromPipeStorage, true, true, IR(160, 3), IR(30465, 26), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGetKernelLocalSizeForSubgroupCount, true, true, IR(325, 7), IR(30491, 35), IR(0, 0), IR(155, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetKernelMaxNumSubgroups, true, true, IR(215, 6), IR(30526, 25), IR(0, 0), IR(155, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpTypeNamedBarrier, true, false, IR(68, 1), IR(30551, 17), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpNamedBarrierInitialize, true, true, IR(160, 3), IR(30568, 23), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpMemoryNamedBarrier, false, false, IR(332, 3), IR(30591, 19), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpModuleProcessed, false, false, IR(11, 1), IR(30610, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDebug}, - {spv::Op::OpExecutionModeId, false, false, IR(65, 2), IR(30626, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,2), 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpDecorateId, false, false, IR(163, 2), IR(30642, 11), IR(0, 0), IR(1, 0), IR(158, 1), SPV_SPIRV_VERSION_WORD(1,2), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpGroupNonUniformElect, true, true, IR(340, 3), IR(30653, 21), IR(0, 0), IR(76, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformAll, true, true, IR(274, 4), IR(30674, 19), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformAny, true, true, IR(274, 4), IR(30693, 19), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformAllEqual, true, true, IR(274, 4), IR(30712, 24), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBroadcast, true, true, IR(278, 5), IR(30736, 25), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBroadcastFirst, true, true, IR(274, 4), IR(30761, 30), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallot, true, true, IR(274, 4), IR(5662, 22), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformInverseBallot, true, true, IR(274, 4), IR(30791, 29), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotBitExtract, true, true, IR(278, 5), IR(30820, 32), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotBitCount, true, true, IR(283, 5), IR(30852, 30), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotFindLSB, true, true, IR(274, 4), IR(30882, 29), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotFindMSB, true, true, IR(274, 4), IR(30911, 29), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffle, true, true, IR(278, 5), IR(8752, 23), IR(0, 0), IR(224, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffleXor, true, true, IR(278, 5), IR(30940, 26), IR(0, 0), IR(224, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffleUp, true, true, IR(278, 5), IR(30966, 25), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffleDown, true, true, IR(278, 5), IR(30991, 27), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformIAdd, true, true, IR(343, 6), IR(31018, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFAdd, true, true, IR(343, 6), IR(31038, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformIMul, true, true, IR(343, 6), IR(31058, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFMul, true, true, IR(343, 6), IR(31078, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformSMin, true, true, IR(343, 6), IR(31098, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformUMin, true, true, IR(343, 6), IR(31118, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFMin, true, true, IR(343, 6), IR(31138, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformSMax, true, true, IR(343, 6), IR(31158, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformUMax, true, true, IR(343, 6), IR(31178, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFMax, true, true, IR(343, 6), IR(31198, 20), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBitwiseAnd, true, true, IR(343, 6), IR(31218, 26), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBitwiseOr, true, true, IR(343, 6), IR(31244, 25), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBitwiseXor, true, true, IR(343, 6), IR(31269, 26), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformLogicalAnd, true, true, IR(343, 6), IR(31295, 26), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformLogicalOr, true, true, IR(343, 6), IR(31321, 25), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformLogicalXor, true, true, IR(343, 6), IR(31346, 26), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformQuadBroadcast, true, true, IR(278, 5), IR(31372, 29), IR(0, 0), IR(229, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformQuadSwap, true, true, IR(278, 5), IR(31401, 24), IR(0, 0), IR(229, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpCopyLogical, true, true, IR(160, 3), IR(31425, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpPtrEqual, true, true, IR(172, 4), IR(31437, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpPtrNotEqual, true, true, IR(172, 4), IR(31446, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpPtrDiff, true, true, IR(172, 4), IR(31458, 8), IR(0, 0), IR(230, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpColorAttachmentReadEXT, true, true, IR(349, 4), IR(31466, 23), IR(0, 0), IR(147, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpDepthAttachmentReadEXT, true, true, IR(353, 3), IR(31489, 23), IR(0, 0), IR(156, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpStencilAttachmentReadEXT, true, true, IR(353, 3), IR(31512, 25), IR(0, 0), IR(157, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpTypeTensorARM, true, false, IR(356, 4), IR(31537, 14), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTensorReadARM, true, true, IR(360, 5), IR(31593, 14), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, - {spv::Op::OpTensorWriteARM, false, false, IR(365, 4), IR(31607, 15), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, - {spv::Op::OpTensorQuerySizeARM, true, true, IR(172, 4), IR(31622, 19), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, - {spv::Op::OpGraphConstantARM, true, true, IR(369, 3), IR(31641, 17), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, - {spv::Op::OpGraphEntryPointARM, false, false, IR(372, 3), IR(31658, 19), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, - {spv::Op::OpGraphARM, true, true, IR(39, 2), IR(9043, 9), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, - {spv::Op::OpGraphInputARM, true, true, IR(122, 4), IR(31677, 14), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, - {spv::Op::OpGraphSetOutputARM, false, false, IR(375, 3), IR(31691, 18), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, - {spv::Op::OpGraphEndARM, false, false, IR(0, 0), IR(31709, 12), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, - {spv::Op::OpTypeGraphARM, true, false, IR(378, 3), IR(31721, 13), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTerminateInvocation, false, false, IR(0, 0), IR(31734, 20), IR(0, 0), IR(3, 1), IR(168, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpTypeUntypedPointerKHR, true, false, IR(381, 2), IR(31754, 22), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpUntypedVariableKHR, true, true, IR(383, 5), IR(31776, 19), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedAccessChainKHR, true, true, IR(151, 5), IR(31795, 22), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedInBoundsAccessChainKHR, true, true, IR(151, 5), IR(31817, 30), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpSubgroupBallotKHR, true, true, IR(160, 3), IR(5423, 18), IR(0, 0), IR(235, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupFirstInvocationKHR, true, true, IR(160, 3), IR(31847, 27), IR(0, 0), IR(235, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpUntypedPtrAccessChainKHR, true, true, IR(388, 6), IR(31874, 25), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedInBoundsPtrAccessChainKHR, true, true, IR(388, 6), IR(31899, 33), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedArrayLengthKHR, true, true, IR(394, 5), IR(31932, 22), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedPrefetchKHR, false, false, IR(399, 5), IR(31954, 19), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpFmaKHR, true, true, IR(130, 5), IR(31973, 7), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSubgroupAllKHR, true, true, IR(160, 3), IR(31980, 15), IR(0, 0), IR(237, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupAnyKHR, true, true, IR(160, 3), IR(31995, 15), IR(0, 0), IR(237, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupAllEqualKHR, true, true, IR(160, 3), IR(32010, 20), IR(0, 0), IR(237, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupNonUniformRotateKHR, true, true, IR(404, 6), IR(13262, 25), IR(0, 0), IR(238, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupReadInvocationKHR, true, true, IR(172, 4), IR(32030, 26), IR(0, 0), IR(235, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpExtInstWithForwardRefsKHR, true, true, IR(410, 5), IR(32056, 26), IR(0, 0), IR(1, 0), IR(169, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, - {spv::Op::OpUntypedGroupAsyncCopyKHR, true, true, IR(415, 11), IR(32082, 25), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpTraceRayKHR, false, false, IR(426, 11), IR(32107, 12), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpExecuteCallableKHR, false, false, IR(36, 2), IR(32119, 19), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertUToAccelerationStructureKHR, true, true, IR(160, 3), IR(32138, 35), IR(0, 0), IR(239, 2), IR(170, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIgnoreIntersectionKHR, false, false, IR(0, 0), IR(32173, 22), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTerminateRayKHR, false, false, IR(0, 0), IR(32195, 16), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSDot, true, true, IR(437, 5), IR(32258, 5), IR(93, 1), IR(241, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUDot, true, true, IR(437, 5), IR(32271, 5), IR(94, 1), IR(241, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSUDot, true, true, IR(437, 5), IR(32284, 6), IR(95, 1), IR(241, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSDotAccSat, true, true, IR(442, 6), IR(32299, 11), IR(96, 1), IR(241, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUDotAccSat, true, true, IR(442, 6), IR(32324, 11), IR(97, 1), IR(241, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSUDotAccSat, true, true, IR(442, 6), IR(32349, 12), IR(98, 1), IR(241, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpTypeCooperativeMatrixKHR, true, false, IR(448, 6), IR(32376, 25), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCooperativeMatrixLoadKHR, true, true, IR(454, 6), IR(32401, 25), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixStoreKHR, false, false, IR(460, 5), IR(32426, 26), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixMulAddKHR, true, true, IR(465, 6), IR(32506, 27), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpCooperativeMatrixLengthKHR, true, true, IR(160, 3), IR(32533, 27), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(32560, 30), IR(0, 0), IR(242, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(32590, 34), IR(0, 0), IR(242, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpCompositeConstructReplicateEXT, true, true, IR(160, 3), IR(32624, 31), IR(0, 0), IR(242, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpTypeRayQueryKHR, true, false, IR(68, 1), IR(32655, 16), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpRayQueryInitializeKHR, false, false, IR(471, 8), IR(32671, 22), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryTerminateKHR, false, false, IR(10, 1), IR(32693, 21), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGenerateIntersectionKHR, false, false, IR(36, 2), IR(32714, 32), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryConfirmIntersectionKHR, false, false, IR(10, 1), IR(32746, 31), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryProceedKHR, true, true, IR(160, 3), IR(32777, 19), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionTypeKHR, true, true, IR(172, 4), IR(32796, 31), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpImageSampleWeightedQCOM, true, true, IR(130, 5), IR(32827, 24), IR(0, 0), IR(243, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBoxFilterQCOM, true, true, IR(130, 5), IR(32851, 19), IR(0, 0), IR(244, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchSSDQCOM, true, true, IR(325, 7), IR(32870, 23), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchSADQCOM, true, true, IR(325, 7), IR(32893, 23), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpBitCastArrayQCOM, true, true, IR(160, 3), IR(32916, 17), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpImageBlockMatchWindowSSDQCOM, true, true, IR(325, 7), IR(32933, 29), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchWindowSADQCOM, true, true, IR(325, 7), IR(32962, 29), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchGatherSSDQCOM, true, true, IR(325, 7), IR(32991, 29), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchGatherSADQCOM, true, true, IR(325, 7), IR(33020, 29), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpCompositeConstructCoopMatQCOM, true, true, IR(160, 3), IR(33049, 30), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpCompositeExtractCoopMatQCOM, true, true, IR(160, 3), IR(33079, 28), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpExtractSubArrayQCOM, true, true, IR(172, 4), IR(33107, 20), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpGroupIAddNonUniformAMD, true, true, IR(283, 5), IR(33127, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFAddNonUniformAMD, true, true, IR(283, 5), IR(33150, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMinNonUniformAMD, true, true, IR(283, 5), IR(33173, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMinNonUniformAMD, true, true, IR(283, 5), IR(33196, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMinNonUniformAMD, true, true, IR(283, 5), IR(33219, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMaxNonUniformAMD, true, true, IR(283, 5), IR(33242, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMaxNonUniformAMD, true, true, IR(283, 5), IR(33265, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMaxNonUniformAMD, true, true, IR(283, 5), IR(33288, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpFragmentMaskFetchAMD, true, true, IR(172, 4), IR(33311, 21), IR(0, 0), IR(248, 1), IR(58, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFragmentFetchAMD, true, true, IR(130, 5), IR(33332, 17), IR(0, 0), IR(248, 1), IR(58, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpReadClockKHR, true, true, IR(340, 3), IR(33349, 13), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAllocateNodePayloadsAMDX, true, true, IR(278, 5), IR(33362, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpEnqueueNodePayloadsAMDX, false, false, IR(10, 1), IR(33387, 24), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeNodePayloadArrayAMDX, true, false, IR(87, 2), IR(33411, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFinishWritingNodePayloadAMDX, true, true, IR(160, 3), IR(33436, 29), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpNodePayloadArrayLengthAMDX, true, true, IR(160, 3), IR(33465, 27), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIsNodePayloadValidAMDX, true, true, IR(172, 4), IR(33492, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConstantStringAMDX, true, false, IR(50, 2), IR(33515, 19), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSpecConstantStringAMDX, true, false, IR(50, 2), IR(33534, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpGroupNonUniformQuadAllKHR, true, true, IR(160, 3), IR(33557, 26), IR(0, 0), IR(164, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformQuadAnyKHR, true, true, IR(160, 3), IR(33583, 26), IR(0, 0), IR(164, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpHitObjectRecordHitMotionNV, false, false, IR(479, 14), IR(33609, 27), IR(0, 0), IR(250, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordHitWithIndexMotionNV, false, false, IR(493, 13), IR(33636, 36), IR(0, 0), IR(250, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordMissMotionNV, false, false, IR(506, 7), IR(33672, 28), IR(0, 0), IR(250, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetWorldToObjectNV, true, true, IR(160, 3), IR(33700, 28), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetObjectToWorldNV, true, true, IR(160, 3), IR(33728, 28), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetObjectRayDirectionNV, true, true, IR(160, 3), IR(33756, 33), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetObjectRayOriginNV, true, true, IR(160, 3), IR(33789, 30), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectTraceRayMotionNV, false, false, IR(493, 13), IR(33819, 26), IR(0, 0), IR(250, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetShaderRecordBufferHandleNV, true, true, IR(160, 3), IR(33845, 39), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV, true, true, IR(160, 3), IR(33884, 44), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordEmptyNV, false, false, IR(10, 1), IR(33928, 23), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectTraceRayNV, false, false, IR(513, 12), IR(33951, 20), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordHitNV, false, false, IR(493, 13), IR(33971, 21), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordHitWithIndexNV, false, false, IR(513, 12), IR(33992, 30), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordMissNV, false, false, IR(525, 6), IR(34022, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectExecuteShaderNV, false, false, IR(36, 2), IR(34044, 25), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetCurrentTimeNV, true, true, IR(160, 3), IR(34069, 26), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetAttributesNV, false, false, IR(36, 2), IR(34095, 25), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetHitKindNV, true, true, IR(160, 3), IR(34120, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetPrimitiveIndexNV, true, true, IR(160, 3), IR(34142, 29), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetGeometryIndexNV, true, true, IR(160, 3), IR(34171, 28), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetInstanceIdNV, true, true, IR(160, 3), IR(34199, 25), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetInstanceCustomIndexNV, true, true, IR(160, 3), IR(34224, 34), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetWorldRayDirectionNV, true, true, IR(160, 3), IR(34258, 32), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetWorldRayOriginNV, true, true, IR(160, 3), IR(34290, 29), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetRayTMaxNV, true, true, IR(160, 3), IR(34319, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetRayTMinNV, true, true, IR(160, 3), IR(34341, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsEmptyNV, true, true, IR(160, 3), IR(34363, 19), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsHitNV, true, true, IR(160, 3), IR(34382, 17), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsMissNV, true, true, IR(160, 3), IR(34399, 18), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpReorderThreadWithHitObjectNV, false, false, IR(531, 3), IR(34417, 29), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpReorderThreadWithHintNV, false, false, IR(36, 2), IR(34446, 24), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeHitObjectNV, true, false, IR(68, 1), IR(34470, 16), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpImageSampleFootprintNV, true, true, IR(534, 7), IR(34486, 23), IR(0, 0), IR(252, 1), IR(72, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpTypeCooperativeVectorNV, true, false, IR(89, 3), IR(34509, 24), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCooperativeVectorMatrixMulNV, true, true, IR(541, 13), IR(34533, 29), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorOuterProductAccumulateNV, false, false, IR(554, 7), IR(34562, 42), IR(0, 0), IR(254, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorReduceSumAccumulateNV, false, false, IR(33, 3), IR(34604, 39), IR(0, 0), IR(254, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorMatrixMulAddNV, true, true, IR(561, 16), IR(34643, 32), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixConvertNV, true, true, IR(160, 3), IR(34675, 27), IR(0, 0), IR(255, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpEmitMeshTasksEXT, false, false, IR(577, 4), IR(34702, 17), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSetMeshOutputsEXT, false, false, IR(36, 2), IR(34719, 18), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpGroupNonUniformPartitionNV, true, true, IR(160, 3), IR(34737, 27), IR(0, 0), IR(183, 1), IR(75, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpWritePackedPrimitiveIndices4x8NV, false, false, IR(36, 2), IR(34764, 33), IR(0, 0), IR(50, 1), IR(18, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFetchMicroTriangleVertexPositionNV, true, true, IR(325, 7), IR(34797, 35), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFetchMicroTriangleVertexBarycentricNV, true, true, IR(325, 7), IR(34832, 38), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorLoadNV, true, true, IR(581, 5), IR(34870, 24), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeVectorStoreNV, false, false, IR(586, 4), IR(34894, 25), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpReportIntersectionKHR, true, true, IR(172, 4), IR(34919, 22), IR(99, 1), IR(54, 2), IR(24, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIgnoreIntersectionNV, false, false, IR(0, 0), IR(34962, 21), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTerminateRayNV, false, false, IR(0, 0), IR(34983, 15), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTraceNV, false, false, IR(426, 11), IR(34998, 8), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTraceMotionNV, false, false, IR(513, 12), IR(35006, 14), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTraceRayMotionNV, false, false, IR(513, 12), IR(35020, 17), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR, true, true, IR(172, 4), IR(35037, 50), IR(0, 0), IR(257, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeAccelerationStructureKHR, true, false, IR(68, 1), IR(35087, 29), IR(100, 1), IR(258, 4), IR(172, 4), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpExecuteCallableNV, false, false, IR(36, 2), IR(35144, 18), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionClusterIdNV, true, true, IR(172, 4), IR(35162, 35), IR(101, 1), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetClusterIdNV, true, true, IR(160, 3), IR(35220, 24), IR(0, 0), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeCooperativeMatrixNV, true, false, IR(590, 5), IR(35244, 24), IR(0, 0), IR(262, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCooperativeMatrixLoadNV, true, true, IR(595, 6), IR(35268, 24), IR(0, 0), IR(262, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixStoreNV, false, false, IR(601, 5), IR(35292, 25), IR(0, 0), IR(262, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixMulAddNV, true, true, IR(130, 5), IR(35317, 26), IR(0, 0), IR(262, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixLengthNV, true, true, IR(160, 3), IR(35343, 26), IR(0, 0), IR(262, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpBeginInvocationInterlockEXT, false, false, IR(0, 0), IR(35369, 28), IR(0, 0), IR(263, 3), IR(80, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpEndInvocationInterlockEXT, false, false, IR(0, 0), IR(35397, 26), IR(0, 0), IR(263, 3), IR(80, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixReduceNV, true, true, IR(606, 5), IR(35466, 26), IR(0, 0), IR(266, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpCooperativeMatrixLoadTensorNV, true, true, IR(611, 7), IR(35567, 30), IR(0, 0), IR(200, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixStoreTensorNV, false, false, IR(618, 5), IR(35597, 31), IR(0, 0), IR(200, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixPerElementOpNV, true, true, IR(151, 5), IR(35628, 32), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kFunction}, - {spv::Op::OpTypeTensorLayoutNV, true, false, IR(89, 3), IR(35660, 19), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeTensorViewNV, true, false, IR(623, 4), IR(35679, 17), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCreateTensorLayoutNV, true, true, IR(39, 2), IR(35696, 21), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetDimensionNV, true, true, IR(122, 4), IR(35717, 27), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetStrideNV, true, true, IR(122, 4), IR(35744, 24), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSliceNV, true, true, IR(122, 4), IR(35768, 20), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetClampValueNV, true, true, IR(172, 4), IR(35788, 28), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCreateTensorViewNV, true, true, IR(39, 2), IR(35816, 19), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorViewSetDimensionNV, true, true, IR(122, 4), IR(35835, 25), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorViewSetStrideNV, true, true, IR(122, 4), IR(35860, 22), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpDemoteToHelperInvocation, false, false, IR(0, 0), IR(11574, 25), IR(45, 1), IR(269, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpIsHelperInvocationEXT, true, true, IR(39, 2), IR(35882, 22), IR(0, 0), IR(269, 1), IR(81, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorViewSetClipNV, true, true, IR(325, 7), IR(35904, 20), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetBlockSizeNV, true, true, IR(122, 4), IR(35924, 27), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixTransposeNV, true, true, IR(160, 3), IR(35951, 29), IR(0, 0), IR(255, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertUToImageNV, true, true, IR(160, 3), IR(35980, 18), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertUToSamplerNV, true, true, IR(160, 3), IR(35998, 20), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertImageToUNV, true, true, IR(160, 3), IR(36018, 18), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertSamplerToUNV, true, true, IR(160, 3), IR(36036, 20), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertUToSampledImageNV, true, true, IR(160, 3), IR(36056, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertSampledImageToUNV, true, true, IR(160, 3), IR(36081, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSamplerImageAddressingModeNV, false, false, IR(0, 1), IR(36106, 29), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRawAccessChainNV, true, true, IR(627, 7), IR(36187, 17), IR(0, 0), IR(189, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpRayQueryGetIntersectionSpherePositionNV, true, true, IR(172, 4), IR(36204, 40), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionSphereRadiusNV, true, true, IR(172, 4), IR(36244, 38), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionLSSPositionsNV, true, true, IR(172, 4), IR(36282, 38), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionLSSRadiiNV, true, true, IR(172, 4), IR(36320, 34), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionLSSHitValueNV, true, true, IR(172, 4), IR(36354, 37), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetSpherePositionNV, true, true, IR(160, 3), IR(36391, 29), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetSphereRadiusNV, true, true, IR(160, 3), IR(36420, 27), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetLSSPositionsNV, true, true, IR(160, 3), IR(36447, 27), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetLSSRadiiNV, true, true, IR(160, 3), IR(36474, 23), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsSphereHitNV, true, true, IR(160, 3), IR(36497, 23), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsLSSHitNV, true, true, IR(160, 3), IR(36520, 20), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryIsSphereHitNV, true, true, IR(172, 4), IR(36540, 22), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryIsLSSHitNV, true, true, IR(172, 4), IR(36562, 19), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSubgroupShuffleINTEL, true, true, IR(172, 4), IR(12022, 21), IR(0, 0), IR(270, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupShuffleDownINTEL, true, true, IR(130, 5), IR(36581, 25), IR(0, 0), IR(270, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupShuffleUpINTEL, true, true, IR(130, 5), IR(36606, 23), IR(0, 0), IR(270, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupShuffleXorINTEL, true, true, IR(172, 4), IR(36629, 24), IR(0, 0), IR(270, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupBlockReadINTEL, true, true, IR(160, 3), IR(36653, 23), IR(0, 0), IR(271, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupBlockWriteINTEL, false, false, IR(36, 2), IR(36676, 24), IR(0, 0), IR(271, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageBlockReadINTEL, true, true, IR(172, 4), IR(36700, 28), IR(0, 0), IR(272, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageBlockWriteINTEL, false, false, IR(33, 3), IR(36728, 29), IR(0, 0), IR(272, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageMediaBlockReadINTEL, true, true, IR(215, 6), IR(36757, 33), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageMediaBlockWriteINTEL, false, false, IR(634, 5), IR(36790, 34), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpUCountLeadingZerosINTEL, true, true, IR(160, 3), IR(36824, 24), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUCountTrailingZerosINTEL, true, true, IR(160, 3), IR(36848, 25), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAbsISubINTEL, true, true, IR(172, 4), IR(36873, 13), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAbsUSubINTEL, true, true, IR(172, 4), IR(36886, 13), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIAddSatINTEL, true, true, IR(172, 4), IR(36899, 13), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUAddSatINTEL, true, true, IR(172, 4), IR(36912, 13), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIAverageINTEL, true, true, IR(172, 4), IR(36925, 14), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUAverageINTEL, true, true, IR(172, 4), IR(36939, 14), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIAverageRoundedINTEL, true, true, IR(172, 4), IR(36953, 21), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUAverageRoundedINTEL, true, true, IR(172, 4), IR(36974, 21), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpISubSatINTEL, true, true, IR(172, 4), IR(36995, 13), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUSubSatINTEL, true, true, IR(172, 4), IR(37008, 13), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIMul32x16INTEL, true, true, IR(172, 4), IR(37021, 15), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUMul32x16INTEL, true, true, IR(172, 4), IR(37036, 15), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConstantFunctionPointerINTEL, true, true, IR(160, 3), IR(37051, 29), IR(0, 0), IR(198, 1), IR(95, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFunctionPointerCallINTEL, true, true, IR(107, 3), IR(37080, 25), IR(0, 0), IR(198, 1), IR(95, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAsmTargetINTEL, true, false, IR(50, 2), IR(37105, 15), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAsmINTEL, true, true, IR(639, 6), IR(12240, 9), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAsmCallINTEL, true, true, IR(122, 4), IR(37120, 13), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAtomicFMinEXT, true, true, IR(235, 6), IR(37133, 14), IR(0, 0), IR(275, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicFMaxEXT, true, true, IR(235, 6), IR(37147, 14), IR(0, 0), IR(275, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAssumeTrueKHR, false, false, IR(10, 1), IR(37161, 14), IR(0, 0), IR(279, 1), IR(99, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpExpectKHR, true, true, IR(172, 4), IR(37175, 10), IR(0, 0), IR(279, 1), IR(99, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpDecorateString, false, false, IR(163, 2), IR(37185, 15), IR(102, 1), IR(1, 0), IR(176, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpMemberDecorateString, false, false, IR(165, 3), IR(37221, 21), IR(103, 1), IR(1, 0), IR(176, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpVmeImageINTEL, true, true, IR(172, 4), IR(37269, 14), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeVmeImageINTEL, true, false, IR(87, 2), IR(37283, 18), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImePayloadINTEL, true, false, IR(68, 1), IR(37301, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcRefPayloadINTEL, true, false, IR(68, 1), IR(37324, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcSicPayloadINTEL, true, false, IR(68, 1), IR(37347, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcMcePayloadINTEL, true, false, IR(68, 1), IR(37370, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcMceResultINTEL, true, false, IR(68, 1), IR(37393, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeResultINTEL, true, false, IR(68, 1), IR(37415, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL, true, false, IR(68, 1), IR(37437, 46), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL, true, false, IR(68, 1), IR(37483, 44), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeSingleReferenceStreaminINTEL, true, false, IR(68, 1), IR(37527, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeDualReferenceStreaminINTEL, true, false, IR(68, 1), IR(37566, 37), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcRefResultINTEL, true, false, IR(68, 1), IR(37603, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcSicResultINTEL, true, false, IR(68, 1), IR(37625, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(37647, 60), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(37707, 53), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL, true, true, IR(172, 4), IR(37760, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL, true, true, IR(172, 4), IR(37807, 40), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(37847, 51), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(37898, 44), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(37942, 51), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL, true, true, IR(172, 4), IR(37993, 56), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL, true, true, IR(39, 2), IR(38049, 50), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL, true, true, IR(39, 2), IR(38099, 52), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL, true, true, IR(39, 2), IR(38151, 49), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL, true, true, IR(215, 6), IR(38200, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL, true, true, IR(172, 4), IR(38247, 50), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL, true, true, IR(39, 2), IR(38297, 51), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL, true, true, IR(39, 2), IR(38348, 56), IR(0, 0), IR(283, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL, true, true, IR(160, 3), IR(38404, 33), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(38437, 52), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(38489, 61), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(38550, 61), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToImePayloadINTEL, true, true, IR(160, 3), IR(38611, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToImeResultINTEL, true, true, IR(160, 3), IR(38650, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToRefPayloadINTEL, true, true, IR(160, 3), IR(38688, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToRefResultINTEL, true, true, IR(160, 3), IR(38727, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToSicPayloadINTEL, true, true, IR(160, 3), IR(38765, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToSicResultINTEL, true, true, IR(160, 3), IR(38804, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetMotionVectorsINTEL, true, true, IR(160, 3), IR(38842, 36), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterDistortionsINTEL, true, true, IR(160, 3), IR(38878, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL, true, true, IR(160, 3), IR(38917, 43), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterMajorShapeINTEL, true, true, IR(160, 3), IR(38960, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterMinorShapeINTEL, true, true, IR(160, 3), IR(38998, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterDirectionsINTEL, true, true, IR(160, 3), IR(39036, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL, true, true, IR(160, 3), IR(39074, 45), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL, true, true, IR(160, 3), IR(39119, 40), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(39159, 62), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeInitializeINTEL, true, true, IR(130, 5), IR(39221, 30), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetSingleReferenceINTEL, true, true, IR(130, 5), IR(39251, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetDualReferenceINTEL, true, true, IR(215, 6), IR(39289, 36), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeRefWindowSizeINTEL, true, true, IR(172, 4), IR(39325, 33), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeAdjustRefOffsetINTEL, true, true, IR(215, 6), IR(39358, 35), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(39393, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL, true, true, IR(172, 4), IR(39432, 43), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(39475, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL, true, true, IR(172, 4), IR(39522, 54), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetWeightedSadINTEL, true, true, IR(172, 4), IR(39576, 34), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(39610, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(39657, 45), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL, true, true, IR(215, 6), IR(39702, 55), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL, true, true, IR(325, 7), IR(39757, 53), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL, true, true, IR(130, 5), IR(39810, 56), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL, true, true, IR(215, 6), IR(39866, 54), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL, true, true, IR(215, 6), IR(39920, 58), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL, true, true, IR(325, 7), IR(39978, 56), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeConvertToMceResultINTEL, true, true, IR(160, 3), IR(40034, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL, true, true, IR(160, 3), IR(40072, 46), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL, true, true, IR(160, 3), IR(40118, 44), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL, true, true, IR(160, 3), IR(40162, 49), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL, true, true, IR(160, 3), IR(40211, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL, true, true, IR(172, 4), IR(40258, 70), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL, true, true, IR(172, 4), IR(40328, 68), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL, true, true, IR(172, 4), IR(40396, 69), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL, true, true, IR(130, 5), IR(40465, 68), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL, true, true, IR(130, 5), IR(40533, 66), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL, true, true, IR(130, 5), IR(40599, 67), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetBorderReachedINTEL, true, true, IR(172, 4), IR(40666, 36), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL, true, true, IR(160, 3), IR(40702, 48), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL, true, true, IR(160, 3), IR(40750, 59), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL, true, true, IR(160, 3), IR(40809, 58), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL, true, true, IR(160, 3), IR(40867, 56), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcFmeInitializeINTEL, true, true, IR(645, 9), IR(40923, 30), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcBmeInitializeINTEL, true, true, IR(654, 10), IR(40953, 30), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(40983, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(41022, 46), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(41068, 43), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(41111, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(41158, 45), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(41203, 46), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(41249, 56), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefConvertToMceResultINTEL, true, true, IR(160, 3), IR(41305, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicInitializeINTEL, true, true, IR(160, 3), IR(41343, 30), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConfigureSkcINTEL, true, true, IR(288, 8), IR(41373, 32), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConfigureIpeLumaINTEL, true, true, IR(654, 10), IR(41405, 36), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL, true, true, IR(664, 13), IR(41441, 42), IR(0, 0), IR(283, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL, true, true, IR(172, 4), IR(41483, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(41522, 39), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(41561, 44), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL, true, true, IR(215, 6), IR(41605, 48), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL, true, true, IR(172, 4), IR(41653, 50), IR(0, 0), IR(283, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(41703, 43), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL, true, true, IR(172, 4), IR(41746, 48), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL, true, true, IR(172, 4), IR(41794, 43), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateIpeINTEL, true, true, IR(172, 4), IR(41837, 31), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(41868, 47), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(41915, 45), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(41960, 46), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(42006, 56), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConvertToMceResultINTEL, true, true, IR(160, 3), IR(42062, 38), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL, true, true, IR(160, 3), IR(42100, 35), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL, true, true, IR(160, 3), IR(42135, 44), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL, true, true, IR(160, 3), IR(42179, 46), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL, true, true, IR(160, 3), IR(42225, 41), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetIpeChromaModeINTEL, true, true, IR(160, 3), IR(42266, 36), IR(0, 0), IR(283, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL, true, true, IR(160, 3), IR(42302, 50), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL, true, true, IR(160, 3), IR(42352, 48), IR(0, 0), IR(281, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetInterRawSadsINTEL, true, true, IR(160, 3), IR(42400, 35), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpVariableLengthArrayINTEL, true, true, IR(160, 3), IR(12478, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpSaveMemoryINTEL, true, true, IR(39, 2), IR(42435, 16), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpRestoreMemoryINTEL, false, false, IR(10, 1), IR(42451, 19), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpArbitraryFloatSinCosPiINTEL, true, true, IR(677, 8), IR(42470, 28), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCastINTEL, true, true, IR(677, 8), IR(42498, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCastFromIntINTEL, true, true, IR(677, 8), IR(42522, 31), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCastToIntINTEL, true, true, IR(677, 8), IR(42553, 29), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatAddINTEL, true, true, IR(685, 10), IR(42582, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSubINTEL, true, true, IR(685, 10), IR(42605, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatMulINTEL, true, true, IR(685, 10), IR(42628, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatDivINTEL, true, true, IR(685, 10), IR(42651, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatGTINTEL, true, true, IR(695, 6), IR(42674, 22), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatGEINTEL, true, true, IR(695, 6), IR(42696, 22), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLTINTEL, true, true, IR(695, 6), IR(42718, 22), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLEINTEL, true, true, IR(695, 6), IR(42740, 22), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatEQINTEL, true, true, IR(695, 6), IR(42762, 22), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatRecipINTEL, true, true, IR(677, 8), IR(42784, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatRSqrtINTEL, true, true, IR(677, 8), IR(42809, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCbrtINTEL, true, true, IR(677, 8), IR(42834, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatHypotINTEL, true, true, IR(685, 10), IR(42858, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSqrtINTEL, true, true, IR(677, 8), IR(42883, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLogINTEL, true, true, IR(677, 8), IR(42907, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLog2INTEL, true, true, IR(677, 8), IR(42930, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLog10INTEL, true, true, IR(677, 8), IR(42954, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLog1pINTEL, true, true, IR(677, 8), IR(42979, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExpINTEL, true, true, IR(677, 8), IR(43004, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExp2INTEL, true, true, IR(677, 8), IR(43027, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExp10INTEL, true, true, IR(677, 8), IR(43051, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExpm1INTEL, true, true, IR(677, 8), IR(43076, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinINTEL, true, true, IR(677, 8), IR(43101, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCosINTEL, true, true, IR(677, 8), IR(43124, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinCosINTEL, true, true, IR(677, 8), IR(43147, 26), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinPiINTEL, true, true, IR(677, 8), IR(43173, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCosPiINTEL, true, true, IR(677, 8), IR(43198, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatASinINTEL, true, true, IR(677, 8), IR(43223, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatASinPiINTEL, true, true, IR(677, 8), IR(43247, 26), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatACosINTEL, true, true, IR(677, 8), IR(43273, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatACosPiINTEL, true, true, IR(677, 8), IR(43297, 26), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatATanINTEL, true, true, IR(677, 8), IR(43323, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatATanPiINTEL, true, true, IR(677, 8), IR(43347, 26), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatATan2INTEL, true, true, IR(685, 10), IR(43373, 25), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatPowINTEL, true, true, IR(685, 10), IR(43398, 23), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatPowRINTEL, true, true, IR(685, 10), IR(43421, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatPowNINTEL, true, true, IR(685, 10), IR(43445, 24), IR(0, 0), IR(286, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpLoopControlINTEL, false, false, IR(18, 1), IR(43469, 17), IR(0, 0), IR(287, 1), IR(106, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAliasDomainDeclINTEL, true, false, IR(701, 2), IR(43486, 21), IR(0, 0), IR(136, 1), IR(113, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAliasScopeDeclINTEL, true, false, IR(703, 3), IR(43507, 20), IR(0, 0), IR(136, 1), IR(113, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAliasScopeListDeclINTEL, true, false, IR(92, 2), IR(43527, 24), IR(0, 0), IR(136, 1), IR(113, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSqrtINTEL, true, true, IR(677, 8), IR(43551, 15), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedRecipINTEL, true, true, IR(677, 8), IR(43566, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedRsqrtINTEL, true, true, IR(677, 8), IR(43582, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinINTEL, true, true, IR(677, 8), IR(43598, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedCosINTEL, true, true, IR(677, 8), IR(43612, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinCosINTEL, true, true, IR(677, 8), IR(43626, 17), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinPiINTEL, true, true, IR(677, 8), IR(43643, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedCosPiINTEL, true, true, IR(677, 8), IR(43659, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinCosPiINTEL, true, true, IR(677, 8), IR(43675, 19), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedLogINTEL, true, true, IR(677, 8), IR(43694, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedExpINTEL, true, true, IR(677, 8), IR(43708, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpPtrCastToCrossWorkgroupINTEL, true, true, IR(160, 3), IR(43722, 29), IR(0, 0), IR(199, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpCrossWorkgroupCastToPtrINTEL, true, true, IR(160, 3), IR(43751, 29), IR(0, 0), IR(199, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpReadPipeBlockingINTEL, true, true, IR(172, 4), IR(43780, 22), IR(0, 0), IR(288, 1), IR(120, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpWritePipeBlockingINTEL, true, true, IR(172, 4), IR(43802, 23), IR(0, 0), IR(288, 1), IR(120, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpFPGARegINTEL, true, true, IR(160, 3), IR(13037, 13), IR(0, 0), IR(289, 1), IR(121, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetRayTMinKHR, true, true, IR(160, 3), IR(43825, 22), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetRayFlagsKHR, true, true, IR(160, 3), IR(43847, 23), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionTKHR, true, true, IR(172, 4), IR(43870, 28), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR, true, true, IR(172, 4), IR(43898, 46), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionInstanceIdKHR, true, true, IR(172, 4), IR(43944, 37), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR, true, true, IR(172, 4), IR(43981, 65), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionGeometryIndexKHR, true, true, IR(172, 4), IR(44046, 40), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionPrimitiveIndexKHR, true, true, IR(172, 4), IR(44086, 41), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionBarycentricsKHR, true, true, IR(172, 4), IR(44127, 39), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionFrontFaceKHR, true, true, IR(172, 4), IR(44166, 36), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR, true, true, IR(160, 3), IR(44202, 46), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionObjectRayDirectionKHR, true, true, IR(172, 4), IR(44248, 45), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionObjectRayOriginKHR, true, true, IR(172, 4), IR(44293, 42), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetWorldRayDirectionKHR, true, true, IR(160, 3), IR(44335, 32), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetWorldRayOriginKHR, true, true, IR(160, 3), IR(44367, 29), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionObjectToWorldKHR, true, true, IR(172, 4), IR(44396, 40), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionWorldToObjectKHR, true, true, IR(172, 4), IR(44436, 40), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAtomicFAddEXT, true, true, IR(235, 6), IR(44476, 14), IR(0, 0), IR(290, 4), IR(129, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpTypeBufferSurfaceINTEL, true, false, IR(100, 2), IR(44490, 23), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeStructContinuedINTEL, false, false, IR(706, 1), IR(44513, 25), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpConstantCompositeContinuedINTEL, false, false, IR(706, 1), IR(44538, 32), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantCompositeContinuedINTEL, false, false, IR(706, 1), IR(44570, 36), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpCompositeConstructContinuedINTEL, true, true, IR(107, 3), IR(44606, 33), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpConvertFToBF16INTEL, true, true, IR(160, 3), IR(44639, 20), IR(0, 0), IR(295, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertBF16ToFINTEL, true, true, IR(160, 3), IR(44659, 20), IR(0, 0), IR(295, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpControlBarrierArriveINTEL, false, false, IR(221, 3), IR(44679, 26), IR(0, 0), IR(296, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpControlBarrierWaitINTEL, false, false, IR(221, 3), IR(44705, 24), IR(0, 0), IR(296, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpArithmeticFenceEXT, true, true, IR(160, 3), IR(13476, 19), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpTaskSequenceCreateINTEL, true, true, IR(707, 7), IR(44729, 24), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTaskSequenceAsyncINTEL, false, false, IR(168, 2), IR(44753, 23), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTaskSequenceGetINTEL, true, true, IR(160, 3), IR(44776, 21), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTaskSequenceReleaseINTEL, false, false, IR(10, 1), IR(44797, 25), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeTaskSequenceINTEL, true, false, IR(68, 1), IR(44822, 22), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpSubgroupBlockPrefetchINTEL, false, false, IR(139, 3), IR(44844, 27), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockLoadINTEL, false, false, IR(714, 10), IR(44871, 25), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockLoadTransformINTEL, false, false, IR(714, 10), IR(44896, 34), IR(0, 0), IR(300, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockLoadTransposeINTEL, false, false, IR(714, 10), IR(44930, 34), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockPrefetchINTEL, false, false, IR(724, 9), IR(44964, 29), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockStoreINTEL, false, false, IR(714, 10), IR(44993, 26), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupMatrixMultiplyAccumulateINTEL, true, true, IR(733, 7), IR(13814, 38), IR(0, 0), IR(302, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpBitwiseFunctionINTEL, true, true, IR(215, 6), IR(45081, 21), IR(0, 0), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpUntypedVariableLengthArrayINTEL, true, true, IR(172, 4), IR(13880, 32), IR(0, 0), IR(304, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpConditionalExtensionINTEL, false, false, IR(45, 2), IR(45102, 26), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, - {spv::Op::OpConditionalEntryPointINTEL, false, false, IR(740, 5), IR(45128, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpConditionalCapabilityINTEL, false, false, IR(745, 2), IR(45155, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMode_Setting}, - {spv::Op::OpSpecConstantTargetINTEL, true, true, IR(747, 4), IR(45182, 24), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantArchitectureINTEL, true, true, IR(751, 6), IR(45206, 30), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantCapabilitiesINTEL, true, true, IR(757, 3), IR(45273, 30), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConditionalCopyObjectINTEL, true, true, IR(107, 3), IR(45303, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpGroupIMulKHR, true, true, IR(283, 5), IR(45330, 13), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMulKHR, true, true, IR(283, 5), IR(45343, 13), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBitwiseAndKHR, true, true, IR(283, 5), IR(45356, 19), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBitwiseOrKHR, true, true, IR(283, 5), IR(45375, 18), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBitwiseXorKHR, true, true, IR(283, 5), IR(45393, 19), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupLogicalAndKHR, true, true, IR(283, 5), IR(45412, 19), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupLogicalOrKHR, true, true, IR(283, 5), IR(45431, 18), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupLogicalXorKHR, true, true, IR(283, 5), IR(45449, 19), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpRoundFToTF32INTEL, true, true, IR(160, 3), IR(45468, 18), IR(0, 0), IR(307, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpMaskedGatherINTEL, true, true, IR(760, 6), IR(45486, 18), IR(0, 0), IR(308, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpMaskedScatterINTEL, false, false, IR(766, 4), IR(45504, 19), IR(0, 0), IR(308, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpConvertHandleToImageINTEL, true, true, IR(160, 3), IR(45523, 26), IR(0, 0), IR(309, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpConvertHandleToSamplerINTEL, true, true, IR(160, 3), IR(45549, 28), IR(0, 0), IR(309, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpConvertHandleToSampledImageINTEL, true, true, IR(160, 3), IR(45577, 33), IR(0, 0), IR(309, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, +static const std::array kInstructionDesc{{ + {spv::Op::OpNop, false, false, IR(0, 0), IR(27741, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpUndef, true, true, IR(39, 2), IR(27797, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpSourceContinued, false, false, IR(11, 1), IR(27803, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpSource, false, false, IR(41, 4), IR(27922, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpSourceExtension, false, false, IR(11, 1), IR(27929, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpName, false, false, IR(45, 2), IR(27945, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpMemberName, false, false, IR(47, 3), IR(27950, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpString, true, false, IR(50, 2), IR(27961, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpLine, false, false, IR(52, 3), IR(27968, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpExtension, false, false, IR(11, 1), IR(27973, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpExtInstImport, true, false, IR(50, 2), IR(27983, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpExtInst, true, true, IR(55, 4), IR(28043, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpMemoryModel, false, false, IR(59, 2), IR(28115, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpEntryPoint, false, false, IR(61, 4), IR(28189, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpExecutionMode, false, false, IR(65, 2), IR(28232, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpCapability, false, false, IR(67, 1), IR(28274, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpTypeVoid, true, false, IR(68, 1), IR(28285, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeBool, true, false, IR(68, 1), IR(28294, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeInt, true, false, IR(69, 3), IR(28303, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeFloat, true, false, IR(72, 3), IR(28348, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeVector, true, false, IR(75, 3), IR(28358, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeMatrix, true, false, IR(75, 3), IR(28369, 11), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeImage, true, false, IR(78, 9), IR(28493, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeSampler, true, false, IR(68, 1), IR(28503, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeSampledImage, true, false, IR(87, 2), IR(28515, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeArray, true, false, IR(89, 3), IR(28532, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeRuntimeArray, true, false, IR(87, 2), IR(28542, 17), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeStruct, true, false, IR(92, 2), IR(28559, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeOpaque, true, false, IR(50, 2), IR(28570, 11), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypePointer, true, false, IR(94, 3), IR(28612, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeFunction, true, false, IR(97, 3), IR(28624, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeEvent, true, false, IR(68, 1), IR(28637, 10), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeDeviceEvent, true, false, IR(68, 1), IR(28647, 16), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeReserveId, true, false, IR(68, 1), IR(28663, 14), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeQueue, true, false, IR(68, 1), IR(28677, 10), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypePipe, true, false, IR(100, 2), IR(28687, 9), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeForwardPointer, false, false, IR(102, 2), IR(28696, 19), IR(0, 0), IR(206, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpConstantTrue, true, true, IR(39, 2), IR(28715, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConstantFalse, true, true, IR(39, 2), IR(28728, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConstant, true, true, IR(104, 3), IR(16787, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConstantComposite, true, true, IR(107, 3), IR(28780, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConstantSampler, true, true, IR(110, 5), IR(28876, 16), IR(0, 0), IR(208, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConstantNull, true, true, IR(39, 2), IR(28892, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantTrue, true, true, IR(39, 2), IR(28905, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantFalse, true, true, IR(39, 2), IR(28922, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstant, true, true, IR(104, 3), IR(28940, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantComposite, true, true, IR(107, 3), IR(28953, 22), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantOp, true, true, IR(115, 3), IR(29016, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpFunction, true, true, IR(118, 4), IR(27039, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, + {spv::Op::OpFunctionParameter, true, true, IR(39, 2), IR(29065, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, + {spv::Op::OpFunctionEnd, false, false, IR(0, 0), IR(29083, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, + {spv::Op::OpFunctionCall, true, true, IR(122, 4), IR(29095, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kFunction}, + {spv::Op::OpVariable, true, true, IR(126, 4), IR(29108, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpImageTexelPointer, true, true, IR(130, 5), IR(29117, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpLoad, true, true, IR(135, 4), IR(29175, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpStore, false, false, IR(139, 3), IR(29180, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCopyMemory, false, false, IR(142, 4), IR(29186, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCopyMemorySized, false, false, IR(146, 5), IR(29197, 16), IR(0, 0), IR(209, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpAccessChain, true, true, IR(122, 4), IR(29213, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpInBoundsAccessChain, true, true, IR(122, 4), IR(29225, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpPtrAccessChain, true, true, IR(151, 5), IR(29245, 15), IR(0, 0), IR(211, 4), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpArrayLength, true, true, IR(156, 4), IR(29260, 12), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpGenericPtrMemSemantics, true, true, IR(160, 3), IR(29272, 23), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpInBoundsPtrAccessChain, true, true, IR(151, 5), IR(29295, 23), IR(0, 0), IR(1, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpDecorate, false, false, IR(163, 2), IR(29346, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpMemberDecorate, false, false, IR(165, 3), IR(29355, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpDecorationGroup, true, false, IR(68, 1), IR(29370, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpGroupDecorate, false, false, IR(168, 2), IR(29386, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpGroupMemberDecorate, false, false, IR(170, 2), IR(29445, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpVectorExtractDynamic, true, true, IR(172, 4), IR(29465, 21), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpVectorInsertDynamic, true, true, IR(130, 5), IR(29486, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpVectorShuffle, true, true, IR(176, 5), IR(29506, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpCompositeConstruct, true, true, IR(107, 3), IR(29520, 19), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpCompositeExtract, true, true, IR(181, 4), IR(29539, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpCompositeInsert, true, true, IR(176, 5), IR(29556, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpCopyObject, true, true, IR(160, 3), IR(29572, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpTranspose, true, true, IR(160, 3), IR(29583, 10), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpSampledImage, true, true, IR(172, 4), IR(29593, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleImplicitLod, true, true, IR(185, 5), IR(29638, 23), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleExplicitLod, true, true, IR(190, 5), IR(29684, 23), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleDrefImplicitLod, true, true, IR(195, 6), IR(29707, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleDrefExplicitLod, true, true, IR(201, 6), IR(29734, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleProjImplicitLod, true, true, IR(185, 5), IR(29761, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleProjExplicitLod, true, true, IR(190, 5), IR(29788, 27), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleProjDrefImplicitLod, true, true, IR(195, 6), IR(29815, 31), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSampleProjDrefExplicitLod, true, true, IR(201, 6), IR(29846, 31), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageFetch, true, true, IR(185, 5), IR(29877, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageGather, true, true, IR(195, 6), IR(29888, 12), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageDrefGather, true, true, IR(195, 6), IR(29900, 16), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageRead, true, true, IR(185, 5), IR(29916, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageWrite, false, false, IR(207, 4), IR(29926, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImage, true, true, IR(160, 3), IR(27083, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQueryFormat, true, true, IR(160, 3), IR(29937, 17), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQueryOrder, true, true, IR(160, 3), IR(29954, 16), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQuerySizeLod, true, true, IR(172, 4), IR(29970, 18), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQuerySize, true, true, IR(160, 3), IR(29988, 15), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQueryLod, true, true, IR(172, 4), IR(30003, 14), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQueryLevels, true, true, IR(160, 3), IR(30017, 17), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageQuerySamples, true, true, IR(160, 3), IR(30034, 18), IR(0, 0), IR(215, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpConvertFToU, true, true, IR(160, 3), IR(30052, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertFToS, true, true, IR(160, 3), IR(30064, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertSToF, true, true, IR(160, 3), IR(30076, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertUToF, true, true, IR(160, 3), IR(30088, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpUConvert, true, true, IR(160, 3), IR(30100, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpSConvert, true, true, IR(160, 3), IR(30109, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpFConvert, true, true, IR(160, 3), IR(30118, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpQuantizeToF16, true, true, IR(160, 3), IR(30127, 14), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertPtrToU, true, true, IR(160, 3), IR(30141, 14), IR(0, 0), IR(206, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpSatConvertSToU, true, true, IR(160, 3), IR(30155, 15), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpSatConvertUToS, true, true, IR(160, 3), IR(30170, 15), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertUToPtr, true, true, IR(160, 3), IR(30185, 14), IR(0, 0), IR(206, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpPtrCastToGeneric, true, true, IR(160, 3), IR(30199, 17), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpGenericCastToPtr, true, true, IR(160, 3), IR(30216, 17), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpGenericCastToPtrExplicit, true, true, IR(211, 4), IR(30233, 25), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpBitcast, true, true, IR(160, 3), IR(30258, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpSNegate, true, true, IR(160, 3), IR(30266, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFNegate, true, true, IR(160, 3), IR(30274, 8), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpIAdd, true, true, IR(172, 4), IR(30282, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFAdd, true, true, IR(172, 4), IR(30287, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpISub, true, true, IR(172, 4), IR(30292, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFSub, true, true, IR(172, 4), IR(30297, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpIMul, true, true, IR(172, 4), IR(30302, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFMul, true, true, IR(172, 4), IR(30307, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUDiv, true, true, IR(172, 4), IR(30312, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSDiv, true, true, IR(172, 4), IR(30317, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFDiv, true, true, IR(172, 4), IR(30322, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUMod, true, true, IR(172, 4), IR(30327, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSRem, true, true, IR(172, 4), IR(30332, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSMod, true, true, IR(172, 4), IR(30337, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFRem, true, true, IR(172, 4), IR(30342, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpFMod, true, true, IR(172, 4), IR(30347, 5), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpVectorTimesScalar, true, true, IR(172, 4), IR(30352, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpMatrixTimesScalar, true, true, IR(172, 4), IR(30370, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpVectorTimesMatrix, true, true, IR(172, 4), IR(30388, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpMatrixTimesVector, true, true, IR(172, 4), IR(30406, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpMatrixTimesMatrix, true, true, IR(172, 4), IR(30424, 18), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpOuterProduct, true, true, IR(172, 4), IR(30442, 13), IR(0, 0), IR(66, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpDot, true, true, IR(172, 4), IR(30455, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpIAddCarry, true, true, IR(172, 4), IR(30459, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpISubBorrow, true, true, IR(172, 4), IR(30469, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUMulExtended, true, true, IR(172, 4), IR(30480, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSMulExtended, true, true, IR(172, 4), IR(30493, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpAny, true, true, IR(160, 3), IR(30506, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpAll, true, true, IR(160, 3), IR(30510, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpIsNan, true, true, IR(160, 3), IR(30514, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpIsInf, true, true, IR(160, 3), IR(30520, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpIsFinite, true, true, IR(160, 3), IR(30526, 9), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpIsNormal, true, true, IR(160, 3), IR(30535, 9), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpSignBitSet, true, true, IR(160, 3), IR(30544, 11), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpLessOrGreater, true, true, IR(172, 4), IR(30555, 14), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), SPV_SPIRV_VERSION_WORD(1,5), PrintingClass::kRelational_and_Logical}, + {spv::Op::OpOrdered, true, true, IR(172, 4), IR(30569, 8), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpUnordered, true, true, IR(172, 4), IR(30577, 10), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpLogicalEqual, true, true, IR(172, 4), IR(30587, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpLogicalNotEqual, true, true, IR(172, 4), IR(30600, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpLogicalOr, true, true, IR(172, 4), IR(30616, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpLogicalAnd, true, true, IR(172, 4), IR(30626, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpLogicalNot, true, true, IR(160, 3), IR(30637, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpSelect, true, true, IR(130, 5), IR(30648, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpIEqual, true, true, IR(172, 4), IR(30655, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpINotEqual, true, true, IR(172, 4), IR(30662, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpUGreaterThan, true, true, IR(172, 4), IR(30672, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpSGreaterThan, true, true, IR(172, 4), IR(30685, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpUGreaterThanEqual, true, true, IR(172, 4), IR(30698, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpSGreaterThanEqual, true, true, IR(172, 4), IR(30716, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpULessThan, true, true, IR(172, 4), IR(30734, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpSLessThan, true, true, IR(172, 4), IR(30744, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpULessThanEqual, true, true, IR(172, 4), IR(30754, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpSLessThanEqual, true, true, IR(172, 4), IR(30769, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFOrdEqual, true, true, IR(172, 4), IR(30784, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFUnordEqual, true, true, IR(172, 4), IR(30794, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFOrdNotEqual, true, true, IR(172, 4), IR(30806, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFUnordNotEqual, true, true, IR(172, 4), IR(30819, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFOrdLessThan, true, true, IR(172, 4), IR(30834, 13), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFUnordLessThan, true, true, IR(172, 4), IR(30847, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFOrdGreaterThan, true, true, IR(172, 4), IR(30862, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFUnordGreaterThan, true, true, IR(172, 4), IR(30878, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFOrdLessThanEqual, true, true, IR(172, 4), IR(30896, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFUnordLessThanEqual, true, true, IR(172, 4), IR(30914, 20), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFOrdGreaterThanEqual, true, true, IR(172, 4), IR(30934, 21), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpFUnordGreaterThanEqual, true, true, IR(172, 4), IR(30955, 23), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kRelational_and_Logical}, + {spv::Op::OpShiftRightLogical, true, true, IR(172, 4), IR(30978, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpShiftRightArithmetic, true, true, IR(172, 4), IR(30996, 21), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpShiftLeftLogical, true, true, IR(172, 4), IR(31017, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitwiseOr, true, true, IR(172, 4), IR(31034, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitwiseXor, true, true, IR(172, 4), IR(31044, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitwiseAnd, true, true, IR(172, 4), IR(31055, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpNot, true, true, IR(160, 3), IR(31066, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitFieldInsert, true, true, IR(215, 6), IR(31070, 15), IR(0, 0), IR(218, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitFieldSExtract, true, true, IR(130, 5), IR(31085, 17), IR(0, 0), IR(218, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitFieldUExtract, true, true, IR(130, 5), IR(31102, 17), IR(0, 0), IR(218, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitReverse, true, true, IR(160, 3), IR(31119, 11), IR(0, 0), IR(218, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpBitCount, true, true, IR(160, 3), IR(31130, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpDPdx, true, true, IR(160, 3), IR(31139, 5), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpDPdy, true, true, IR(160, 3), IR(31144, 5), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpFwidth, true, true, IR(160, 3), IR(31149, 7), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpDPdxFine, true, true, IR(160, 3), IR(31156, 9), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpDPdyFine, true, true, IR(160, 3), IR(31165, 9), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpFwidthFine, true, true, IR(160, 3), IR(31174, 11), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpDPdxCoarse, true, true, IR(160, 3), IR(31185, 11), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpDPdyCoarse, true, true, IR(160, 3), IR(31196, 11), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpFwidthCoarse, true, true, IR(160, 3), IR(31207, 13), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, + {spv::Op::OpEmitVertex, false, false, IR(0, 0), IR(31220, 11), IR(0, 0), IR(69, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, + {spv::Op::OpEndPrimitive, false, false, IR(0, 0), IR(31231, 13), IR(0, 0), IR(69, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, + {spv::Op::OpEmitStreamVertex, false, false, IR(10, 1), IR(31244, 17), IR(0, 0), IR(117, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, + {spv::Op::OpEndStreamPrimitive, false, false, IR(10, 1), IR(31261, 19), IR(0, 0), IR(117, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, + {spv::Op::OpControlBarrier, false, false, IR(221, 3), IR(31317, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpMemoryBarrier, false, false, IR(224, 2), IR(31332, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpAtomicLoad, true, true, IR(226, 5), IR(31346, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicStore, false, false, IR(231, 4), IR(31357, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicExchange, true, true, IR(235, 6), IR(31369, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicCompareExchange, true, true, IR(241, 8), IR(31384, 22), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicCompareExchangeWeak, true, true, IR(241, 8), IR(31406, 26), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), SPV_SPIRV_VERSION_WORD(1,3), PrintingClass::kAtomic}, + {spv::Op::OpAtomicIIncrement, true, true, IR(226, 5), IR(31432, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicIDecrement, true, true, IR(226, 5), IR(31449, 17), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicIAdd, true, true, IR(235, 6), IR(31466, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicISub, true, true, IR(235, 6), IR(31477, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicSMin, true, true, IR(235, 6), IR(31488, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicUMin, true, true, IR(235, 6), IR(31499, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicSMax, true, true, IR(235, 6), IR(31510, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicUMax, true, true, IR(235, 6), IR(31521, 11), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicAnd, true, true, IR(235, 6), IR(31532, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicOr, true, true, IR(235, 6), IR(31542, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicXor, true, true, IR(235, 6), IR(31551, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpPhi, true, true, IR(107, 3), IR(31561, 4), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpLoopMerge, false, false, IR(249, 3), IR(31595, 10), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpSelectionMerge, false, false, IR(252, 2), IR(31640, 15), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpLabel, true, false, IR(68, 1), IR(31655, 6), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpBranch, false, false, IR(10, 1), IR(31661, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpBranchConditional, false, false, IR(254, 4), IR(31668, 18), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpSwitch, false, false, IR(258, 3), IR(31731, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpKill, false, false, IR(0, 0), IR(31738, 5), IR(0, 0), IR(3, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpReturn, false, false, IR(0, 0), IR(31743, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpReturnValue, false, false, IR(10, 1), IR(31750, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpUnreachable, false, false, IR(0, 0), IR(31762, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpLifetimeStart, false, false, IR(261, 2), IR(31774, 14), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpLifetimeStop, false, false, IR(261, 2), IR(31788, 13), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpGroupAsyncCopy, true, true, IR(263, 8), IR(31801, 15), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupWaitEvents, false, false, IR(271, 3), IR(31816, 16), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupAll, true, true, IR(274, 4), IR(31832, 9), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupAny, true, true, IR(274, 4), IR(31841, 9), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBroadcast, true, true, IR(278, 5), IR(31850, 15), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupIAdd, true, true, IR(283, 5), IR(31898, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFAdd, true, true, IR(283, 5), IR(31908, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMin, true, true, IR(283, 5), IR(31918, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupUMin, true, true, IR(283, 5), IR(31928, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupSMin, true, true, IR(283, 5), IR(31938, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMax, true, true, IR(283, 5), IR(31948, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupUMax, true, true, IR(283, 5), IR(31958, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupSMax, true, true, IR(283, 5), IR(31968, 10), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpReadPipe, true, true, IR(215, 6), IR(31978, 9), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpWritePipe, true, true, IR(215, 6), IR(31987, 10), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpReservedReadPipe, true, true, IR(288, 8), IR(31997, 17), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpReservedWritePipe, true, true, IR(288, 8), IR(32014, 18), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpReserveReadPipePackets, true, true, IR(215, 6), IR(32032, 23), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpReserveWritePipePackets, true, true, IR(215, 6), IR(32055, 24), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpCommitReadPipe, false, false, IR(296, 4), IR(32079, 15), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpCommitWritePipe, false, false, IR(296, 4), IR(32094, 16), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpIsValidReserveId, true, true, IR(160, 3), IR(32110, 17), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGetNumPipePackets, true, true, IR(130, 5), IR(32127, 18), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGetMaxPipePackets, true, true, IR(130, 5), IR(32145, 18), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGroupReserveReadPipePackets, true, true, IR(300, 7), IR(32163, 28), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGroupReserveWritePipePackets, true, true, IR(300, 7), IR(32191, 29), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGroupCommitReadPipe, false, false, IR(307, 5), IR(32220, 20), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGroupCommitWritePipe, false, false, IR(307, 5), IR(32240, 21), IR(0, 0), IR(75, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpEnqueueMarker, true, true, IR(215, 6), IR(32261, 14), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpEnqueueKernel, true, true, IR(312, 13), IR(32275, 14), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpGetKernelNDrangeSubGroupCount, true, true, IR(325, 7), IR(32289, 30), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpGetKernelNDrangeMaxSubGroupSize, true, true, IR(325, 7), IR(32319, 32), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpGetKernelWorkGroupSize, true, true, IR(215, 6), IR(32351, 23), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpGetKernelPreferredWorkGroupSizeMultiple, true, true, IR(215, 6), IR(32374, 40), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpRetainEvent, false, false, IR(10, 1), IR(32414, 12), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpReleaseEvent, false, false, IR(10, 1), IR(32426, 13), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpCreateUserEvent, true, true, IR(39, 2), IR(32439, 16), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpIsValidEvent, true, true, IR(160, 3), IR(32455, 13), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpSetUserEventStatus, false, false, IR(36, 2), IR(32468, 19), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpCaptureEventProfilingInfo, false, false, IR(33, 3), IR(32487, 26), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpGetDefaultQueue, true, true, IR(39, 2), IR(32513, 16), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpBuildNDRange, true, true, IR(130, 5), IR(32529, 13), IR(0, 0), IR(74, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpImageSparseSampleImplicitLod, true, true, IR(185, 5), IR(32542, 29), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleExplicitLod, true, true, IR(190, 5), IR(32571, 29), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleDrefImplicitLod, true, true, IR(195, 6), IR(32600, 33), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleDrefExplicitLod, true, true, IR(201, 6), IR(32633, 33), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjImplicitLod, true, true, IR(185, 5), IR(32666, 33), IR(0, 0), IR(222, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjExplicitLod, true, true, IR(190, 5), IR(32699, 33), IR(0, 0), IR(222, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjDrefImplicitLod, true, true, IR(195, 6), IR(32732, 37), IR(0, 0), IR(222, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjDrefExplicitLod, true, true, IR(201, 6), IR(32769, 37), IR(0, 0), IR(222, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseFetch, true, true, IR(185, 5), IR(32806, 17), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseGather, true, true, IR(195, 6), IR(32823, 18), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseDrefGather, true, true, IR(195, 6), IR(32841, 22), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseTexelsResident, true, true, IR(160, 3), IR(32863, 26), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpNoLine, false, false, IR(0, 0), IR(32889, 7), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpAtomicFlagTestAndSet, true, true, IR(226, 5), IR(32896, 21), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicFlagClear, false, false, IR(332, 3), IR(32917, 16), IR(0, 0), IR(0, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpImageSparseRead, true, true, IR(185, 5), IR(32933, 16), IR(0, 0), IR(222, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpSizeOf, true, true, IR(160, 3), IR(32949, 7), IR(0, 0), IR(1, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpTypePipeStorage, true, false, IR(68, 1), IR(32956, 16), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpConstantPipeStorage, true, true, IR(335, 5), IR(32972, 20), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpCreatePipeFromPipeStorage, true, true, IR(160, 3), IR(32992, 26), IR(0, 0), IR(223, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpGetKernelLocalSizeForSubgroupCount, true, true, IR(325, 7), IR(33018, 35), IR(0, 0), IR(157, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpGetKernelMaxNumSubgroups, true, true, IR(215, 6), IR(33053, 25), IR(0, 0), IR(157, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, + {spv::Op::OpTypeNamedBarrier, true, false, IR(68, 1), IR(33078, 17), IR(0, 0), IR(224, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpNamedBarrierInitialize, true, true, IR(160, 3), IR(33095, 23), IR(0, 0), IR(224, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpMemoryNamedBarrier, false, false, IR(332, 3), IR(33118, 19), IR(0, 0), IR(224, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpModuleProcessed, false, false, IR(11, 1), IR(33137, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDebug}, + {spv::Op::OpExecutionModeId, false, false, IR(65, 2), IR(33153, 16), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,2), 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpDecorateId, false, false, IR(163, 2), IR(33169, 11), IR(0, 0), IR(1, 0), IR(180, 1), SPV_SPIRV_VERSION_WORD(1,2), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpGroupNonUniformElect, true, true, IR(340, 3), IR(33180, 21), IR(0, 0), IR(76, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformAll, true, true, IR(274, 4), IR(33201, 19), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformAny, true, true, IR(274, 4), IR(33220, 19), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformAllEqual, true, true, IR(274, 4), IR(33239, 24), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBroadcast, true, true, IR(278, 5), IR(33263, 25), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBroadcastFirst, true, true, IR(274, 4), IR(33288, 30), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBallot, true, true, IR(274, 4), IR(6377, 22), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformInverseBallot, true, true, IR(274, 4), IR(33318, 29), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBallotBitExtract, true, true, IR(278, 5), IR(33347, 32), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBallotBitCount, true, true, IR(283, 5), IR(33379, 30), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBallotFindLSB, true, true, IR(274, 4), IR(33409, 29), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBallotFindMSB, true, true, IR(274, 4), IR(33438, 29), IR(0, 0), IR(226, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformShuffle, true, true, IR(278, 5), IR(9467, 23), IR(0, 0), IR(227, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformShuffleXor, true, true, IR(278, 5), IR(33467, 26), IR(0, 0), IR(227, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformShuffleUp, true, true, IR(278, 5), IR(33493, 25), IR(0, 0), IR(228, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformShuffleDown, true, true, IR(278, 5), IR(33518, 27), IR(0, 0), IR(228, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformIAdd, true, true, IR(343, 6), IR(33545, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformFAdd, true, true, IR(343, 6), IR(33565, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformIMul, true, true, IR(343, 6), IR(33585, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformFMul, true, true, IR(343, 6), IR(33605, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformSMin, true, true, IR(343, 6), IR(33625, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformUMin, true, true, IR(343, 6), IR(33645, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformFMin, true, true, IR(343, 6), IR(33665, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformSMax, true, true, IR(343, 6), IR(33685, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformUMax, true, true, IR(343, 6), IR(33705, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformFMax, true, true, IR(343, 6), IR(33725, 20), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBitwiseAnd, true, true, IR(343, 6), IR(33745, 26), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBitwiseOr, true, true, IR(343, 6), IR(33771, 25), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformBitwiseXor, true, true, IR(343, 6), IR(33796, 26), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformLogicalAnd, true, true, IR(343, 6), IR(33822, 26), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformLogicalOr, true, true, IR(343, 6), IR(33848, 25), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformLogicalXor, true, true, IR(343, 6), IR(33873, 26), IR(0, 0), IR(229, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformQuadBroadcast, true, true, IR(278, 5), IR(33899, 29), IR(0, 0), IR(232, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformQuadSwap, true, true, IR(278, 5), IR(33928, 24), IR(0, 0), IR(232, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpCopyLogical, true, true, IR(160, 3), IR(33952, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpPtrEqual, true, true, IR(172, 4), IR(33964, 9), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpPtrNotEqual, true, true, IR(172, 4), IR(33973, 12), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpPtrDiff, true, true, IR(172, 4), IR(33985, 8), IR(0, 0), IR(233, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpColorAttachmentReadEXT, true, true, IR(349, 4), IR(33993, 23), IR(0, 0), IR(149, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpDepthAttachmentReadEXT, true, true, IR(353, 3), IR(34016, 23), IR(0, 0), IR(158, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpStencilAttachmentReadEXT, true, true, IR(353, 3), IR(34039, 25), IR(0, 0), IR(159, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpTypeTensorARM, true, false, IR(356, 4), IR(34064, 14), IR(0, 0), IR(205, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTensorReadARM, true, true, IR(360, 5), IR(34120, 14), IR(0, 0), IR(205, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, + {spv::Op::OpTensorWriteARM, false, false, IR(365, 4), IR(34134, 15), IR(0, 0), IR(205, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, + {spv::Op::OpTensorQuerySizeARM, true, true, IR(172, 4), IR(34149, 19), IR(0, 0), IR(205, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, + {spv::Op::OpGraphConstantARM, true, true, IR(369, 3), IR(34168, 17), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphEntryPointARM, false, false, IR(372, 3), IR(34185, 19), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphARM, true, true, IR(39, 2), IR(9758, 9), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphInputARM, true, true, IR(122, 4), IR(34204, 14), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphSetOutputARM, false, false, IR(375, 3), IR(34218, 18), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphEndARM, false, false, IR(0, 0), IR(34236, 12), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpTypeGraphARM, true, false, IR(378, 3), IR(34248, 13), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTerminateInvocation, false, false, IR(0, 0), IR(34261, 20), IR(0, 0), IR(3, 1), IR(190, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpTypeUntypedPointerKHR, true, false, IR(381, 2), IR(34281, 22), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpUntypedVariableKHR, true, true, IR(383, 5), IR(34303, 19), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedAccessChainKHR, true, true, IR(151, 5), IR(34322, 22), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedInBoundsAccessChainKHR, true, true, IR(151, 5), IR(34344, 30), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpSubgroupBallotKHR, true, true, IR(160, 3), IR(6138, 18), IR(0, 0), IR(238, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupFirstInvocationKHR, true, true, IR(160, 3), IR(34374, 27), IR(0, 0), IR(238, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpUntypedPtrAccessChainKHR, true, true, IR(388, 6), IR(34401, 25), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedInBoundsPtrAccessChainKHR, true, true, IR(388, 6), IR(34426, 33), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedArrayLengthKHR, true, true, IR(394, 5), IR(34459, 22), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedPrefetchKHR, false, false, IR(399, 5), IR(34481, 19), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpFmaKHR, true, true, IR(130, 5), IR(34500, 7), IR(0, 0), IR(239, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSubgroupAllKHR, true, true, IR(160, 3), IR(34507, 15), IR(0, 0), IR(240, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupAnyKHR, true, true, IR(160, 3), IR(34522, 15), IR(0, 0), IR(240, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupAllEqualKHR, true, true, IR(160, 3), IR(34537, 20), IR(0, 0), IR(240, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupNonUniformRotateKHR, true, true, IR(404, 6), IR(14440, 25), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupReadInvocationKHR, true, true, IR(172, 4), IR(34557, 26), IR(0, 0), IR(238, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpExtInstWithForwardRefsKHR, true, true, IR(410, 5), IR(34583, 26), IR(0, 0), IR(1, 0), IR(191, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpUntypedGroupAsyncCopyKHR, true, true, IR(415, 11), IR(34609, 25), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpTraceRayKHR, false, false, IR(426, 11), IR(34634, 12), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpExecuteCallableKHR, false, false, IR(36, 2), IR(34646, 19), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertUToAccelerationStructureKHR, true, true, IR(160, 3), IR(34665, 35), IR(0, 0), IR(242, 2), IR(192, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIgnoreIntersectionKHR, false, false, IR(0, 0), IR(34700, 22), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTerminateRayKHR, false, false, IR(0, 0), IR(34722, 16), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSDot, true, true, IR(437, 5), IR(34785, 5), IR(167, 1), IR(244, 1), IR(140, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUDot, true, true, IR(437, 5), IR(34798, 5), IR(168, 1), IR(244, 1), IR(140, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSUDot, true, true, IR(437, 5), IR(34811, 6), IR(169, 1), IR(244, 1), IR(140, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSDotAccSat, true, true, IR(442, 6), IR(34826, 11), IR(170, 1), IR(244, 1), IR(140, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUDotAccSat, true, true, IR(442, 6), IR(34851, 11), IR(171, 1), IR(244, 1), IR(140, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSUDotAccSat, true, true, IR(442, 6), IR(34876, 12), IR(172, 1), IR(244, 1), IR(140, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpTypeCooperativeMatrixKHR, true, false, IR(448, 6), IR(34903, 25), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCooperativeMatrixLoadKHR, true, true, IR(454, 6), IR(34928, 25), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixStoreKHR, false, false, IR(460, 5), IR(34953, 26), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixMulAddKHR, true, true, IR(465, 6), IR(35033, 27), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpCooperativeMatrixLengthKHR, true, true, IR(160, 3), IR(35060, 27), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(35087, 30), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(35117, 34), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpCompositeConstructReplicateEXT, true, true, IR(160, 3), IR(35151, 31), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpTypeRayQueryKHR, true, false, IR(68, 1), IR(35182, 16), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpRayQueryInitializeKHR, false, false, IR(471, 8), IR(35198, 22), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryTerminateKHR, false, false, IR(10, 1), IR(35220, 21), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGenerateIntersectionKHR, false, false, IR(36, 2), IR(35241, 32), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryConfirmIntersectionKHR, false, false, IR(10, 1), IR(35273, 31), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryProceedKHR, true, true, IR(160, 3), IR(35304, 19), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionTypeKHR, true, true, IR(172, 4), IR(35323, 31), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpImageSampleWeightedQCOM, true, true, IR(130, 5), IR(35354, 24), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBoxFilterQCOM, true, true, IR(130, 5), IR(35378, 19), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchSSDQCOM, true, true, IR(325, 7), IR(35397, 23), IR(0, 0), IR(248, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchSADQCOM, true, true, IR(325, 7), IR(35420, 23), IR(0, 0), IR(248, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpBitCastArrayQCOM, true, true, IR(160, 3), IR(35443, 17), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpImageBlockMatchWindowSSDQCOM, true, true, IR(325, 7), IR(35460, 29), IR(0, 0), IR(250, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchWindowSADQCOM, true, true, IR(325, 7), IR(35489, 29), IR(0, 0), IR(250, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchGatherSSDQCOM, true, true, IR(325, 7), IR(35518, 29), IR(0, 0), IR(250, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchGatherSADQCOM, true, true, IR(325, 7), IR(35547, 29), IR(0, 0), IR(250, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpCompositeConstructCoopMatQCOM, true, true, IR(160, 3), IR(35576, 30), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpCompositeExtractCoopMatQCOM, true, true, IR(160, 3), IR(35606, 28), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpExtractSubArrayQCOM, true, true, IR(172, 4), IR(35634, 20), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpGroupIAddNonUniformAMD, true, true, IR(283, 5), IR(35654, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFAddNonUniformAMD, true, true, IR(283, 5), IR(35677, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMinNonUniformAMD, true, true, IR(283, 5), IR(35700, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupUMinNonUniformAMD, true, true, IR(283, 5), IR(35723, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupSMinNonUniformAMD, true, true, IR(283, 5), IR(35746, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMaxNonUniformAMD, true, true, IR(283, 5), IR(35769, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupUMaxNonUniformAMD, true, true, IR(283, 5), IR(35792, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupSMaxNonUniformAMD, true, true, IR(283, 5), IR(35815, 23), IR(0, 0), IR(221, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpFragmentMaskFetchAMD, true, true, IR(172, 4), IR(35838, 21), IR(0, 0), IR(251, 1), IR(58, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFragmentFetchAMD, true, true, IR(130, 5), IR(35859, 17), IR(0, 0), IR(251, 1), IR(58, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReadClockKHR, true, true, IR(340, 3), IR(35876, 13), IR(0, 0), IR(252, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAllocateNodePayloadsAMDX, true, true, IR(278, 5), IR(35889, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpEnqueueNodePayloadsAMDX, false, false, IR(10, 1), IR(35914, 24), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeNodePayloadArrayAMDX, true, false, IR(87, 2), IR(35938, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFinishWritingNodePayloadAMDX, true, true, IR(160, 3), IR(35963, 29), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpNodePayloadArrayLengthAMDX, true, true, IR(160, 3), IR(35992, 27), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIsNodePayloadValidAMDX, true, true, IR(172, 4), IR(36019, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConstantStringAMDX, true, false, IR(50, 2), IR(36042, 19), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSpecConstantStringAMDX, true, false, IR(50, 2), IR(36061, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpGroupNonUniformQuadAllKHR, true, true, IR(160, 3), IR(36084, 26), IR(0, 0), IR(166, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformQuadAnyKHR, true, true, IR(160, 3), IR(36110, 26), IR(0, 0), IR(166, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpHitObjectRecordHitMotionNV, false, false, IR(479, 14), IR(36136, 27), IR(0, 0), IR(253, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordHitWithIndexMotionNV, false, false, IR(493, 13), IR(36163, 36), IR(0, 0), IR(253, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordMissMotionNV, false, false, IR(506, 7), IR(36199, 28), IR(0, 0), IR(253, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldToObjectNV, true, true, IR(160, 3), IR(36227, 28), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectToWorldNV, true, true, IR(160, 3), IR(36255, 28), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectRayDirectionNV, true, true, IR(160, 3), IR(36283, 33), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectRayOriginNV, true, true, IR(160, 3), IR(36316, 30), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceRayMotionNV, false, false, IR(493, 13), IR(36346, 26), IR(0, 0), IR(253, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetShaderRecordBufferHandleNV, true, true, IR(160, 3), IR(36372, 39), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV, true, true, IR(160, 3), IR(36411, 44), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordEmptyNV, false, false, IR(10, 1), IR(36455, 23), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceRayNV, false, false, IR(513, 12), IR(36478, 20), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordHitNV, false, false, IR(493, 13), IR(36498, 21), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordHitWithIndexNV, false, false, IR(513, 12), IR(36519, 30), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordMissNV, false, false, IR(525, 6), IR(36549, 22), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectExecuteShaderNV, false, false, IR(36, 2), IR(36571, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetCurrentTimeNV, true, true, IR(160, 3), IR(36596, 26), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetAttributesNV, false, false, IR(36, 2), IR(36622, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetHitKindNV, true, true, IR(160, 3), IR(36647, 22), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetPrimitiveIndexNV, true, true, IR(160, 3), IR(36669, 29), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetGeometryIndexNV, true, true, IR(160, 3), IR(36698, 28), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetInstanceIdNV, true, true, IR(160, 3), IR(36726, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetInstanceCustomIndexNV, true, true, IR(160, 3), IR(36751, 34), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldRayDirectionNV, true, true, IR(160, 3), IR(36785, 32), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldRayOriginNV, true, true, IR(160, 3), IR(36817, 29), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayTMaxNV, true, true, IR(160, 3), IR(36846, 22), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayTMinNV, true, true, IR(160, 3), IR(36868, 22), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsEmptyNV, true, true, IR(160, 3), IR(36890, 19), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsHitNV, true, true, IR(160, 3), IR(36909, 17), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsMissNV, true, true, IR(160, 3), IR(36926, 18), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReorderThreadWithHitObjectNV, false, false, IR(531, 3), IR(36944, 29), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReorderThreadWithHintNV, false, false, IR(36, 2), IR(36973, 24), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeHitObjectNV, true, false, IR(68, 1), IR(36997, 16), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpImageSampleFootprintNV, true, true, IR(534, 7), IR(37013, 23), IR(0, 0), IR(255, 1), IR(72, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpTypeCooperativeVectorNV, true, false, IR(89, 3), IR(37036, 24), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCooperativeVectorMatrixMulNV, true, true, IR(541, 13), IR(37060, 29), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorOuterProductAccumulateNV, false, false, IR(554, 7), IR(37089, 42), IR(0, 0), IR(257, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorReduceSumAccumulateNV, false, false, IR(33, 3), IR(37131, 39), IR(0, 0), IR(257, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorMatrixMulAddNV, true, true, IR(561, 16), IR(37170, 32), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixConvertNV, true, true, IR(160, 3), IR(37202, 27), IR(0, 0), IR(258, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpEmitMeshTasksEXT, false, false, IR(577, 4), IR(37229, 17), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSetMeshOutputsEXT, false, false, IR(36, 2), IR(37246, 18), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpGroupNonUniformPartitionNV, true, true, IR(160, 3), IR(37264, 27), IR(0, 0), IR(186, 1), IR(75, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpWritePackedPrimitiveIndices4x8NV, false, false, IR(36, 2), IR(37291, 33), IR(0, 0), IR(50, 1), IR(18, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFetchMicroTriangleVertexPositionNV, true, true, IR(325, 7), IR(37324, 35), IR(0, 0), IR(259, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFetchMicroTriangleVertexBarycentricNV, true, true, IR(325, 7), IR(37359, 38), IR(0, 0), IR(259, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorLoadNV, true, true, IR(581, 5), IR(37397, 24), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeVectorStoreNV, false, false, IR(586, 4), IR(37421, 25), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpHitObjectRecordFromQueryEXT, false, false, IR(296, 4), IR(37446, 28), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordMissEXT, false, false, IR(506, 7), IR(37474, 23), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordMissMotionEXT, false, false, IR(471, 8), IR(37497, 29), IR(0, 0), IR(260, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT, true, true, IR(160, 3), IR(37526, 51), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayFlagsEXT, true, true, IR(160, 3), IR(37577, 24), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectSetShaderBindingTableRecordIndexEXT, false, false, IR(36, 2), IR(37601, 45), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectReorderExecuteShaderEXT, false, false, IR(590, 4), IR(37646, 33), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceReorderExecuteEXT, false, false, IR(594, 14), IR(37679, 32), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceMotionReorderExecuteEXT, false, false, IR(608, 15), IR(37711, 38), IR(0, 0), IR(260, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeHitObjectEXT, true, false, IR(68, 1), IR(37749, 17), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpReorderThreadWithHintEXT, false, false, IR(36, 2), IR(37766, 25), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReorderThreadWithHitObjectEXT, false, false, IR(531, 3), IR(37791, 30), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceRayEXT, false, false, IR(513, 12), IR(37821, 21), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceRayMotionEXT, false, false, IR(493, 13), IR(37842, 27), IR(0, 0), IR(260, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordEmptyEXT, false, false, IR(10, 1), IR(37869, 24), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectExecuteShaderEXT, false, false, IR(36, 2), IR(37893, 26), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetCurrentTimeEXT, true, true, IR(160, 3), IR(37919, 27), IR(0, 0), IR(260, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetAttributesEXT, false, false, IR(36, 2), IR(37946, 26), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetHitKindEXT, true, true, IR(160, 3), IR(37972, 23), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetPrimitiveIndexEXT, true, true, IR(160, 3), IR(37995, 30), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetGeometryIndexEXT, true, true, IR(160, 3), IR(38025, 29), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetInstanceIdEXT, true, true, IR(160, 3), IR(38054, 26), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetInstanceCustomIndexEXT, true, true, IR(160, 3), IR(38080, 35), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectRayOriginEXT, true, true, IR(160, 3), IR(38115, 31), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectRayDirectionEXT, true, true, IR(160, 3), IR(38146, 34), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldRayDirectionEXT, true, true, IR(160, 3), IR(38180, 33), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldRayOriginEXT, true, true, IR(160, 3), IR(38213, 30), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectToWorldEXT, true, true, IR(160, 3), IR(38243, 29), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldToObjectEXT, true, true, IR(160, 3), IR(38272, 29), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayTMaxEXT, true, true, IR(160, 3), IR(38301, 23), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReportIntersectionKHR, true, true, IR(172, 4), IR(38324, 22), IR(173, 1), IR(54, 2), IR(24, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIgnoreIntersectionNV, false, false, IR(0, 0), IR(38367, 21), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTerminateRayNV, false, false, IR(0, 0), IR(38388, 15), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTraceNV, false, false, IR(426, 11), IR(38403, 8), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTraceMotionNV, false, false, IR(513, 12), IR(38411, 14), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTraceRayMotionNV, false, false, IR(513, 12), IR(38425, 17), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR, true, true, IR(172, 4), IR(38442, 50), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeAccelerationStructureKHR, true, false, IR(68, 1), IR(38492, 29), IR(174, 1), IR(263, 4), IR(194, 4), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpExecuteCallableNV, false, false, IR(36, 2), IR(38549, 18), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionClusterIdNV, true, true, IR(172, 4), IR(38567, 35), IR(175, 1), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetClusterIdNV, true, true, IR(160, 3), IR(38625, 24), IR(0, 0), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayTMinEXT, true, true, IR(160, 3), IR(38649, 23), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetShaderBindingTableRecordIndexEXT, true, true, IR(160, 3), IR(38672, 45), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetShaderRecordBufferHandleEXT, true, true, IR(160, 3), IR(38717, 40), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsEmptyEXT, true, true, IR(160, 3), IR(38757, 20), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsHitEXT, true, true, IR(160, 3), IR(38777, 18), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsMissEXT, true, true, IR(160, 3), IR(38795, 19), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeCooperativeMatrixNV, true, false, IR(623, 5), IR(38814, 24), IR(0, 0), IR(267, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCooperativeMatrixLoadNV, true, true, IR(628, 6), IR(38838, 24), IR(0, 0), IR(267, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixStoreNV, false, false, IR(634, 5), IR(38862, 25), IR(0, 0), IR(267, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixMulAddNV, true, true, IR(130, 5), IR(38887, 26), IR(0, 0), IR(267, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixLengthNV, true, true, IR(160, 3), IR(38913, 26), IR(0, 0), IR(267, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpBeginInvocationInterlockEXT, false, false, IR(0, 0), IR(38939, 28), IR(0, 0), IR(268, 3), IR(80, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpEndInvocationInterlockEXT, false, false, IR(0, 0), IR(38967, 26), IR(0, 0), IR(268, 3), IR(80, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixReduceNV, true, true, IR(639, 5), IR(39036, 26), IR(0, 0), IR(271, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpCooperativeMatrixLoadTensorNV, true, true, IR(644, 7), IR(39137, 30), IR(0, 0), IR(203, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixStoreTensorNV, false, false, IR(651, 5), IR(39167, 31), IR(0, 0), IR(203, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixPerElementOpNV, true, true, IR(151, 5), IR(39198, 32), IR(0, 0), IR(272, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kFunction}, + {spv::Op::OpTypeTensorLayoutNV, true, false, IR(89, 3), IR(39230, 19), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeTensorViewNV, true, false, IR(656, 4), IR(39249, 17), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCreateTensorLayoutNV, true, true, IR(39, 2), IR(39266, 21), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetDimensionNV, true, true, IR(122, 4), IR(39287, 27), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetStrideNV, true, true, IR(122, 4), IR(39314, 24), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSliceNV, true, true, IR(122, 4), IR(39338, 20), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetClampValueNV, true, true, IR(172, 4), IR(39358, 28), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCreateTensorViewNV, true, true, IR(39, 2), IR(39386, 19), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorViewSetDimensionNV, true, true, IR(122, 4), IR(39405, 25), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorViewSetStrideNV, true, true, IR(122, 4), IR(39430, 22), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpDemoteToHelperInvocation, false, false, IR(0, 0), IR(12289, 25), IR(45, 1), IR(274, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpIsHelperInvocationEXT, true, true, IR(39, 2), IR(39452, 22), IR(0, 0), IR(274, 1), IR(81, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorViewSetClipNV, true, true, IR(325, 7), IR(39474, 20), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetBlockSizeNV, true, true, IR(122, 4), IR(39494, 27), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixTransposeNV, true, true, IR(160, 3), IR(39521, 29), IR(0, 0), IR(258, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertUToImageNV, true, true, IR(160, 3), IR(39550, 18), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertUToSamplerNV, true, true, IR(160, 3), IR(39568, 20), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertImageToUNV, true, true, IR(160, 3), IR(39588, 18), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertSamplerToUNV, true, true, IR(160, 3), IR(39606, 20), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertUToSampledImageNV, true, true, IR(160, 3), IR(39626, 25), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertSampledImageToUNV, true, true, IR(160, 3), IR(39651, 25), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSamplerImageAddressingModeNV, false, false, IR(0, 1), IR(39676, 29), IR(0, 0), IR(129, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRawAccessChainNV, true, true, IR(660, 7), IR(39757, 17), IR(0, 0), IR(192, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpRayQueryGetIntersectionSpherePositionNV, true, true, IR(172, 4), IR(39774, 40), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionSphereRadiusNV, true, true, IR(172, 4), IR(39814, 38), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionLSSPositionsNV, true, true, IR(172, 4), IR(39852, 38), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionLSSRadiiNV, true, true, IR(172, 4), IR(39890, 34), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionLSSHitValueNV, true, true, IR(172, 4), IR(39924, 37), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetSpherePositionNV, true, true, IR(160, 3), IR(39961, 29), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetSphereRadiusNV, true, true, IR(160, 3), IR(39990, 27), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetLSSPositionsNV, true, true, IR(160, 3), IR(40017, 27), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetLSSRadiiNV, true, true, IR(160, 3), IR(40044, 23), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsSphereHitNV, true, true, IR(160, 3), IR(40067, 23), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsLSSHitNV, true, true, IR(160, 3), IR(40090, 20), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryIsSphereHitNV, true, true, IR(172, 4), IR(40110, 22), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryIsLSSHitNV, true, true, IR(172, 4), IR(40132, 19), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSubgroupShuffleINTEL, true, true, IR(172, 4), IR(12787, 21), IR(0, 0), IR(275, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupShuffleDownINTEL, true, true, IR(130, 5), IR(40151, 25), IR(0, 0), IR(275, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupShuffleUpINTEL, true, true, IR(130, 5), IR(40176, 23), IR(0, 0), IR(275, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupShuffleXorINTEL, true, true, IR(172, 4), IR(40199, 24), IR(0, 0), IR(275, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupBlockReadINTEL, true, true, IR(160, 3), IR(40223, 23), IR(0, 0), IR(276, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupBlockWriteINTEL, false, false, IR(36, 2), IR(40246, 24), IR(0, 0), IR(276, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageBlockReadINTEL, true, true, IR(172, 4), IR(40270, 28), IR(0, 0), IR(277, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageBlockWriteINTEL, false, false, IR(33, 3), IR(40298, 29), IR(0, 0), IR(277, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageMediaBlockReadINTEL, true, true, IR(215, 6), IR(40327, 33), IR(0, 0), IR(278, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageMediaBlockWriteINTEL, false, false, IR(667, 5), IR(40360, 34), IR(0, 0), IR(278, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpUCountLeadingZerosINTEL, true, true, IR(160, 3), IR(40394, 24), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUCountTrailingZerosINTEL, true, true, IR(160, 3), IR(40418, 25), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAbsISubINTEL, true, true, IR(172, 4), IR(40443, 13), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAbsUSubINTEL, true, true, IR(172, 4), IR(40456, 13), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIAddSatINTEL, true, true, IR(172, 4), IR(40469, 13), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUAddSatINTEL, true, true, IR(172, 4), IR(40482, 13), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIAverageINTEL, true, true, IR(172, 4), IR(40495, 14), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUAverageINTEL, true, true, IR(172, 4), IR(40509, 14), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIAverageRoundedINTEL, true, true, IR(172, 4), IR(40523, 21), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUAverageRoundedINTEL, true, true, IR(172, 4), IR(40544, 21), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpISubSatINTEL, true, true, IR(172, 4), IR(40565, 13), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUSubSatINTEL, true, true, IR(172, 4), IR(40578, 13), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIMul32x16INTEL, true, true, IR(172, 4), IR(40591, 15), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUMul32x16INTEL, true, true, IR(172, 4), IR(40606, 15), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConstantFunctionPointerINTEL, true, true, IR(160, 3), IR(40621, 29), IR(0, 0), IR(201, 1), IR(97, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFunctionPointerCallINTEL, true, true, IR(107, 3), IR(40650, 25), IR(0, 0), IR(201, 1), IR(97, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAsmTargetINTEL, true, false, IR(50, 2), IR(40675, 15), IR(0, 0), IR(132, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAsmINTEL, true, true, IR(672, 6), IR(13005, 9), IR(0, 0), IR(132, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAsmCallINTEL, true, true, IR(122, 4), IR(40690, 13), IR(0, 0), IR(132, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAtomicFMinEXT, true, true, IR(235, 6), IR(40703, 14), IR(0, 0), IR(280, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicFMaxEXT, true, true, IR(235, 6), IR(40717, 14), IR(0, 0), IR(280, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAssumeTrueKHR, false, false, IR(10, 1), IR(40731, 14), IR(0, 0), IR(284, 1), IR(101, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpExpectKHR, true, true, IR(172, 4), IR(40745, 10), IR(0, 0), IR(284, 1), IR(101, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpDecorateString, false, false, IR(163, 2), IR(40755, 15), IR(176, 1), IR(1, 0), IR(198, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpMemberDecorateString, false, false, IR(165, 3), IR(40791, 21), IR(177, 1), IR(1, 0), IR(198, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpVmeImageINTEL, true, true, IR(172, 4), IR(40839, 14), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeVmeImageINTEL, true, false, IR(87, 2), IR(40853, 18), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImePayloadINTEL, true, false, IR(68, 1), IR(40871, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcRefPayloadINTEL, true, false, IR(68, 1), IR(40894, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcSicPayloadINTEL, true, false, IR(68, 1), IR(40917, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcMcePayloadINTEL, true, false, IR(68, 1), IR(40940, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcMceResultINTEL, true, false, IR(68, 1), IR(40963, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeResultINTEL, true, false, IR(68, 1), IR(40985, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL, true, false, IR(68, 1), IR(41007, 46), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL, true, false, IR(68, 1), IR(41053, 44), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeSingleReferenceStreaminINTEL, true, false, IR(68, 1), IR(41097, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeDualReferenceStreaminINTEL, true, false, IR(68, 1), IR(41136, 37), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcRefResultINTEL, true, false, IR(68, 1), IR(41173, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcSicResultINTEL, true, false, IR(68, 1), IR(41195, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(41217, 60), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(41277, 53), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL, true, true, IR(172, 4), IR(41330, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL, true, true, IR(172, 4), IR(41377, 40), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(41417, 51), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(41468, 44), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(41512, 51), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL, true, true, IR(172, 4), IR(41563, 56), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL, true, true, IR(39, 2), IR(41619, 50), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL, true, true, IR(39, 2), IR(41669, 52), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL, true, true, IR(39, 2), IR(41721, 49), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL, true, true, IR(215, 6), IR(41770, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL, true, true, IR(172, 4), IR(41817, 50), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL, true, true, IR(39, 2), IR(41867, 51), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL, true, true, IR(39, 2), IR(41918, 56), IR(0, 0), IR(288, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL, true, true, IR(160, 3), IR(41974, 33), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(42007, 52), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(42059, 61), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(42120, 61), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToImePayloadINTEL, true, true, IR(160, 3), IR(42181, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToImeResultINTEL, true, true, IR(160, 3), IR(42220, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToRefPayloadINTEL, true, true, IR(160, 3), IR(42258, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToRefResultINTEL, true, true, IR(160, 3), IR(42297, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToSicPayloadINTEL, true, true, IR(160, 3), IR(42335, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToSicResultINTEL, true, true, IR(160, 3), IR(42374, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetMotionVectorsINTEL, true, true, IR(160, 3), IR(42412, 36), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterDistortionsINTEL, true, true, IR(160, 3), IR(42448, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL, true, true, IR(160, 3), IR(42487, 43), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterMajorShapeINTEL, true, true, IR(160, 3), IR(42530, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterMinorShapeINTEL, true, true, IR(160, 3), IR(42568, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterDirectionsINTEL, true, true, IR(160, 3), IR(42606, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL, true, true, IR(160, 3), IR(42644, 45), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL, true, true, IR(160, 3), IR(42689, 40), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(42729, 62), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeInitializeINTEL, true, true, IR(130, 5), IR(42791, 30), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetSingleReferenceINTEL, true, true, IR(130, 5), IR(42821, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetDualReferenceINTEL, true, true, IR(215, 6), IR(42859, 36), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeRefWindowSizeINTEL, true, true, IR(172, 4), IR(42895, 33), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeAdjustRefOffsetINTEL, true, true, IR(215, 6), IR(42928, 35), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(42963, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL, true, true, IR(172, 4), IR(43002, 43), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(43045, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL, true, true, IR(172, 4), IR(43092, 54), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetWeightedSadINTEL, true, true, IR(172, 4), IR(43146, 34), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(43180, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(43227, 45), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL, true, true, IR(215, 6), IR(43272, 55), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL, true, true, IR(325, 7), IR(43327, 53), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL, true, true, IR(130, 5), IR(43380, 56), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL, true, true, IR(215, 6), IR(43436, 54), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL, true, true, IR(215, 6), IR(43490, 58), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL, true, true, IR(325, 7), IR(43548, 56), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeConvertToMceResultINTEL, true, true, IR(160, 3), IR(43604, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL, true, true, IR(160, 3), IR(43642, 46), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL, true, true, IR(160, 3), IR(43688, 44), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL, true, true, IR(160, 3), IR(43732, 49), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL, true, true, IR(160, 3), IR(43781, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL, true, true, IR(172, 4), IR(43828, 70), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL, true, true, IR(172, 4), IR(43898, 68), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL, true, true, IR(172, 4), IR(43966, 69), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL, true, true, IR(130, 5), IR(44035, 68), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL, true, true, IR(130, 5), IR(44103, 66), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL, true, true, IR(130, 5), IR(44169, 67), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetBorderReachedINTEL, true, true, IR(172, 4), IR(44236, 36), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL, true, true, IR(160, 3), IR(44272, 48), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL, true, true, IR(160, 3), IR(44320, 59), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL, true, true, IR(160, 3), IR(44379, 58), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL, true, true, IR(160, 3), IR(44437, 56), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcFmeInitializeINTEL, true, true, IR(678, 9), IR(44493, 30), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcBmeInitializeINTEL, true, true, IR(687, 10), IR(44523, 30), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(44553, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(44592, 46), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(44638, 43), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(44681, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(44728, 45), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(44773, 46), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(44819, 56), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefConvertToMceResultINTEL, true, true, IR(160, 3), IR(44875, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicInitializeINTEL, true, true, IR(160, 3), IR(44913, 30), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConfigureSkcINTEL, true, true, IR(288, 8), IR(44943, 32), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConfigureIpeLumaINTEL, true, true, IR(687, 10), IR(44975, 36), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL, true, true, IR(697, 13), IR(45011, 42), IR(0, 0), IR(288, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL, true, true, IR(172, 4), IR(45053, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(45092, 39), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(45131, 44), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL, true, true, IR(215, 6), IR(45175, 48), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL, true, true, IR(172, 4), IR(45223, 50), IR(0, 0), IR(288, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(45273, 43), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL, true, true, IR(172, 4), IR(45316, 48), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL, true, true, IR(172, 4), IR(45364, 43), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateIpeINTEL, true, true, IR(172, 4), IR(45407, 31), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(45438, 47), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(45485, 45), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(45530, 46), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(45576, 56), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConvertToMceResultINTEL, true, true, IR(160, 3), IR(45632, 38), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL, true, true, IR(160, 3), IR(45670, 35), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL, true, true, IR(160, 3), IR(45705, 44), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL, true, true, IR(160, 3), IR(45749, 46), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL, true, true, IR(160, 3), IR(45795, 41), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetIpeChromaModeINTEL, true, true, IR(160, 3), IR(45836, 36), IR(0, 0), IR(288, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL, true, true, IR(160, 3), IR(45872, 50), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL, true, true, IR(160, 3), IR(45922, 48), IR(0, 0), IR(286, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetInterRawSadsINTEL, true, true, IR(160, 3), IR(45970, 35), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpVariableLengthArrayINTEL, true, true, IR(160, 3), IR(13243, 25), IR(0, 0), IR(290, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpSaveMemoryINTEL, true, true, IR(39, 2), IR(46005, 16), IR(0, 0), IR(290, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpRestoreMemoryINTEL, false, false, IR(10, 1), IR(46021, 19), IR(0, 0), IR(290, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpArbitraryFloatSinCosPiALTERA, true, true, IR(710, 8), IR(46040, 29), IR(178, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCastALTERA, true, true, IR(710, 8), IR(46097, 25), IR(179, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCastFromIntALTERA, true, true, IR(710, 8), IR(46146, 32), IR(180, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCastToIntALTERA, true, true, IR(710, 8), IR(46209, 30), IR(181, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatAddALTERA, true, true, IR(718, 10), IR(46268, 24), IR(182, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSubALTERA, true, true, IR(718, 10), IR(46315, 24), IR(183, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatMulALTERA, true, true, IR(718, 10), IR(46362, 24), IR(184, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatDivALTERA, true, true, IR(718, 10), IR(46409, 24), IR(185, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatGTALTERA, true, true, IR(728, 6), IR(46456, 23), IR(186, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatGEALTERA, true, true, IR(728, 6), IR(46501, 23), IR(187, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLTALTERA, true, true, IR(728, 6), IR(46546, 23), IR(188, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLEALTERA, true, true, IR(728, 6), IR(46591, 23), IR(189, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatEQALTERA, true, true, IR(728, 6), IR(46636, 23), IR(190, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatRecipALTERA, true, true, IR(710, 8), IR(46681, 26), IR(191, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatRSqrtALTERA, true, true, IR(710, 8), IR(46732, 26), IR(192, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCbrtALTERA, true, true, IR(710, 8), IR(46783, 25), IR(193, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatHypotALTERA, true, true, IR(718, 10), IR(46832, 26), IR(194, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSqrtALTERA, true, true, IR(710, 8), IR(46883, 25), IR(195, 1), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLogINTEL, true, true, IR(710, 8), IR(46932, 23), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLog2INTEL, true, true, IR(710, 8), IR(46955, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLog10INTEL, true, true, IR(710, 8), IR(46979, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLog1pINTEL, true, true, IR(710, 8), IR(47004, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExpINTEL, true, true, IR(710, 8), IR(47029, 23), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExp2INTEL, true, true, IR(710, 8), IR(47052, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExp10INTEL, true, true, IR(710, 8), IR(47076, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExpm1INTEL, true, true, IR(710, 8), IR(47101, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSinINTEL, true, true, IR(710, 8), IR(47126, 23), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCosINTEL, true, true, IR(710, 8), IR(47149, 23), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSinCosINTEL, true, true, IR(710, 8), IR(47172, 26), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSinPiINTEL, true, true, IR(710, 8), IR(47198, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCosPiINTEL, true, true, IR(710, 8), IR(47223, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatASinINTEL, true, true, IR(710, 8), IR(47248, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatASinPiINTEL, true, true, IR(710, 8), IR(47272, 26), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatACosINTEL, true, true, IR(710, 8), IR(47298, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatACosPiINTEL, true, true, IR(710, 8), IR(47322, 26), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatATanINTEL, true, true, IR(710, 8), IR(47348, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatATanPiINTEL, true, true, IR(710, 8), IR(47372, 26), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatATan2INTEL, true, true, IR(718, 10), IR(47398, 25), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatPowINTEL, true, true, IR(718, 10), IR(47423, 23), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatPowRINTEL, true, true, IR(718, 10), IR(47446, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatPowNINTEL, true, true, IR(718, 10), IR(47470, 24), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpLoopControlINTEL, false, false, IR(18, 1), IR(47494, 17), IR(0, 0), IR(292, 1), IR(111, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAliasDomainDeclINTEL, true, false, IR(734, 2), IR(47511, 21), IR(0, 0), IR(138, 1), IR(123, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAliasScopeDeclINTEL, true, false, IR(736, 3), IR(47532, 20), IR(0, 0), IR(138, 1), IR(123, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAliasScopeListDeclINTEL, true, false, IR(92, 2), IR(47552, 24), IR(0, 0), IR(138, 1), IR(123, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSqrtALTERA, true, true, IR(710, 8), IR(47576, 16), IR(196, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedRecipALTERA, true, true, IR(710, 8), IR(47607, 17), IR(197, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedRsqrtALTERA, true, true, IR(710, 8), IR(47640, 17), IR(198, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinALTERA, true, true, IR(710, 8), IR(47673, 15), IR(199, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedCosALTERA, true, true, IR(710, 8), IR(47702, 15), IR(200, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinCosALTERA, true, true, IR(710, 8), IR(47731, 18), IR(201, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinPiALTERA, true, true, IR(710, 8), IR(47766, 17), IR(202, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedCosPiALTERA, true, true, IR(710, 8), IR(47799, 17), IR(203, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinCosPiALTERA, true, true, IR(710, 8), IR(47832, 20), IR(204, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedLogALTERA, true, true, IR(710, 8), IR(47871, 15), IR(205, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedExpALTERA, true, true, IR(710, 8), IR(47900, 15), IR(206, 1), IR(191, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpPtrCastToCrossWorkgroupALTERA, true, true, IR(160, 3), IR(47929, 30), IR(207, 1), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpCrossWorkgroupCastToPtrALTERA, true, true, IR(160, 3), IR(47988, 30), IR(208, 1), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpReadPipeBlockingALTERA, true, true, IR(172, 4), IR(48047, 23), IR(209, 1), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpWritePipeBlockingALTERA, true, true, IR(172, 4), IR(48092, 24), IR(210, 1), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFPGARegALTERA, true, true, IR(160, 3), IR(14201, 14), IR(61, 1), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpRayQueryGetRayTMinKHR, true, true, IR(160, 3), IR(48139, 22), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetRayFlagsKHR, true, true, IR(160, 3), IR(48161, 23), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionTKHR, true, true, IR(172, 4), IR(48184, 28), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR, true, true, IR(172, 4), IR(48212, 46), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionInstanceIdKHR, true, true, IR(172, 4), IR(48258, 37), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR, true, true, IR(172, 4), IR(48295, 65), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionGeometryIndexKHR, true, true, IR(172, 4), IR(48360, 40), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionPrimitiveIndexKHR, true, true, IR(172, 4), IR(48400, 41), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionBarycentricsKHR, true, true, IR(172, 4), IR(48441, 39), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionFrontFaceKHR, true, true, IR(172, 4), IR(48480, 36), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR, true, true, IR(160, 3), IR(48516, 46), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionObjectRayDirectionKHR, true, true, IR(172, 4), IR(48562, 45), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionObjectRayOriginKHR, true, true, IR(172, 4), IR(48607, 42), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetWorldRayDirectionKHR, true, true, IR(160, 3), IR(48649, 32), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetWorldRayOriginKHR, true, true, IR(160, 3), IR(48681, 29), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionObjectToWorldKHR, true, true, IR(172, 4), IR(48710, 40), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionWorldToObjectKHR, true, true, IR(172, 4), IR(48750, 40), IR(0, 0), IR(195, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAtomicFAddEXT, true, true, IR(235, 6), IR(48790, 14), IR(0, 0), IR(295, 4), IR(147, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpTypeBufferSurfaceINTEL, true, false, IR(100, 2), IR(48804, 23), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeStructContinuedINTEL, false, false, IR(739, 1), IR(48827, 25), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpConstantCompositeContinuedINTEL, false, false, IR(739, 1), IR(48852, 32), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantCompositeContinuedINTEL, false, false, IR(739, 1), IR(48884, 36), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpCompositeConstructContinuedINTEL, true, true, IR(107, 3), IR(48920, 33), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpConvertFToBF16INTEL, true, true, IR(160, 3), IR(48953, 20), IR(0, 0), IR(300, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertBF16ToFINTEL, true, true, IR(160, 3), IR(48973, 20), IR(0, 0), IR(300, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpControlBarrierArriveINTEL, false, false, IR(221, 3), IR(48993, 26), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpControlBarrierWaitINTEL, false, false, IR(221, 3), IR(49019, 24), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpArithmeticFenceEXT, true, true, IR(160, 3), IR(14654, 19), IR(0, 0), IR(302, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpTaskSequenceCreateALTERA, true, true, IR(740, 7), IR(49043, 25), IR(211, 1), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTaskSequenceAsyncALTERA, false, false, IR(168, 2), IR(49092, 24), IR(212, 1), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTaskSequenceGetALTERA, true, true, IR(160, 3), IR(49139, 22), IR(213, 1), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTaskSequenceReleaseALTERA, false, false, IR(10, 1), IR(49182, 26), IR(214, 1), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeTaskSequenceALTERA, true, false, IR(68, 1), IR(49233, 23), IR(215, 1), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupBlockPrefetchINTEL, false, false, IR(139, 3), IR(49278, 27), IR(0, 0), IR(304, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockLoadINTEL, false, false, IR(747, 10), IR(49305, 25), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockLoadTransformINTEL, false, false, IR(747, 10), IR(49330, 34), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockLoadTransposeINTEL, false, false, IR(747, 10), IR(49364, 34), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockPrefetchINTEL, false, false, IR(757, 9), IR(49398, 29), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockStoreINTEL, false, false, IR(747, 10), IR(49427, 26), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupMatrixMultiplyAccumulateINTEL, true, true, IR(766, 7), IR(15131, 38), IR(0, 0), IR(307, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpBitwiseFunctionINTEL, true, true, IR(215, 6), IR(49515, 21), IR(0, 0), IR(308, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpUntypedVariableLengthArrayINTEL, true, true, IR(172, 4), IR(15197, 32), IR(0, 0), IR(309, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpConditionalExtensionINTEL, false, false, IR(45, 2), IR(49536, 26), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpConditionalEntryPointINTEL, false, false, IR(773, 5), IR(49562, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpConditionalCapabilityINTEL, false, false, IR(778, 2), IR(49589, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpSpecConstantTargetINTEL, true, true, IR(780, 4), IR(49616, 24), IR(0, 0), IR(310, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantArchitectureINTEL, true, true, IR(784, 6), IR(49640, 30), IR(0, 0), IR(310, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantCapabilitiesINTEL, true, true, IR(790, 3), IR(49707, 30), IR(0, 0), IR(310, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConditionalCopyObjectINTEL, true, true, IR(107, 3), IR(49737, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpGroupIMulKHR, true, true, IR(283, 5), IR(49764, 13), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMulKHR, true, true, IR(283, 5), IR(49777, 13), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBitwiseAndKHR, true, true, IR(283, 5), IR(49790, 19), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBitwiseOrKHR, true, true, IR(283, 5), IR(49809, 18), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBitwiseXorKHR, true, true, IR(283, 5), IR(49827, 19), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupLogicalAndKHR, true, true, IR(283, 5), IR(49846, 19), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupLogicalOrKHR, true, true, IR(283, 5), IR(49865, 18), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupLogicalXorKHR, true, true, IR(283, 5), IR(49883, 19), IR(0, 0), IR(311, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpRoundFToTF32INTEL, true, true, IR(160, 3), IR(49902, 18), IR(0, 0), IR(312, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpMaskedGatherINTEL, true, true, IR(793, 6), IR(49920, 18), IR(0, 0), IR(313, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpMaskedScatterINTEL, false, false, IR(799, 4), IR(49938, 19), IR(0, 0), IR(313, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpConvertHandleToImageINTEL, true, true, IR(160, 3), IR(49957, 26), IR(0, 0), IR(314, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpConvertHandleToSamplerINTEL, true, true, IR(160, 3), IR(49983, 28), IR(0, 0), IR(314, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpConvertHandleToSampledImageINTEL, true, true, IR(160, 3), IR(50011, 33), IR(0, 0), IR(314, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, }}; // Opcode strings (without the 'Op' prefix) and opcode values, ordered by name. // The fields in order are: // name, either the primary name or an alias, indexing into kStrings // index into kInstructionDesc -static const std::array kInstructionNames{{ - {IR(36873, 13), 554}, // 0 AbsISubINTEL - {IR(36886, 13), 555}, // 1 AbsUSubINTEL - {IR(26686, 12), 58}, // 2 AccessChain - {IR(43486, 21), 740}, // 3 AliasDomainDeclINTEL - {IR(43507, 20), 741}, // 4 AliasScopeDeclINTEL - {IR(43527, 24), 742}, // 5 AliasScopeListDeclINTEL - {IR(27983, 4), 143}, // 6 All - {IR(33362, 25), 426}, // 7 AllocateNodePayloadsAMDX - {IR(27979, 4), 142}, // 8 Any - {IR(43273, 24), 731}, // 9 ArbitraryFloatACosINTEL - {IR(43297, 26), 732}, // 10 ArbitraryFloatACosPiINTEL - {IR(43223, 24), 729}, // 11 ArbitraryFloatASinINTEL - {IR(43247, 26), 730}, // 12 ArbitraryFloatASinPiINTEL - {IR(43373, 25), 735}, // 13 ArbitraryFloatATan2INTEL - {IR(43323, 24), 733}, // 14 ArbitraryFloatATanINTEL - {IR(43347, 26), 734}, // 15 ArbitraryFloatATanPiINTEL - {IR(42582, 23), 702}, // 16 ArbitraryFloatAddINTEL - {IR(42522, 31), 700}, // 17 ArbitraryFloatCastFromIntINTEL - {IR(42498, 24), 699}, // 18 ArbitraryFloatCastINTEL - {IR(42553, 29), 701}, // 19 ArbitraryFloatCastToIntINTEL - {IR(42834, 24), 713}, // 20 ArbitraryFloatCbrtINTEL - {IR(43124, 23), 725}, // 21 ArbitraryFloatCosINTEL - {IR(43198, 25), 728}, // 22 ArbitraryFloatCosPiINTEL - {IR(42651, 23), 705}, // 23 ArbitraryFloatDivINTEL - {IR(42762, 22), 710}, // 24 ArbitraryFloatEQINTEL - {IR(43051, 25), 722}, // 25 ArbitraryFloatExp10INTEL - {IR(43027, 24), 721}, // 26 ArbitraryFloatExp2INTEL - {IR(43004, 23), 720}, // 27 ArbitraryFloatExpINTEL - {IR(43076, 25), 723}, // 28 ArbitraryFloatExpm1INTEL - {IR(42696, 22), 707}, // 29 ArbitraryFloatGEINTEL - {IR(42674, 22), 706}, // 30 ArbitraryFloatGTINTEL - {IR(42858, 25), 714}, // 31 ArbitraryFloatHypotINTEL - {IR(42740, 22), 709}, // 32 ArbitraryFloatLEINTEL - {IR(42718, 22), 708}, // 33 ArbitraryFloatLTINTEL - {IR(42954, 25), 718}, // 34 ArbitraryFloatLog10INTEL - {IR(42979, 25), 719}, // 35 ArbitraryFloatLog1pINTEL - {IR(42930, 24), 717}, // 36 ArbitraryFloatLog2INTEL - {IR(42907, 23), 716}, // 37 ArbitraryFloatLogINTEL - {IR(42628, 23), 704}, // 38 ArbitraryFloatMulINTEL - {IR(43398, 23), 736}, // 39 ArbitraryFloatPowINTEL - {IR(43445, 24), 738}, // 40 ArbitraryFloatPowNINTEL - {IR(43421, 24), 737}, // 41 ArbitraryFloatPowRINTEL - {IR(42809, 25), 712}, // 42 ArbitraryFloatRSqrtINTEL - {IR(42784, 25), 711}, // 43 ArbitraryFloatRecipINTEL - {IR(43147, 26), 726}, // 44 ArbitraryFloatSinCosINTEL - {IR(42470, 28), 698}, // 45 ArbitraryFloatSinCosPiINTEL - {IR(43101, 23), 724}, // 46 ArbitraryFloatSinINTEL - {IR(43173, 25), 727}, // 47 ArbitraryFloatSinPiINTEL - {IR(42883, 24), 715}, // 48 ArbitraryFloatSqrtINTEL - {IR(42605, 23), 703}, // 49 ArbitraryFloatSubINTEL - {IR(13476, 19), 786}, // 50 ArithmeticFenceEXT - {IR(26733, 12), 61}, // 51 ArrayLength - {IR(37120, 13), 570}, // 52 AsmCallINTEL - {IR(12240, 9), 569}, // 53 AsmINTEL - {IR(37105, 15), 568}, // 54 AsmTargetINTEL - {IR(37161, 14), 573}, // 55 AssumeTrueKHR - {IR(29005, 10), 220}, // 56 AtomicAnd - {IR(28857, 22), 210}, // 57 AtomicCompareExchange - {IR(28879, 26), 211}, // 58 AtomicCompareExchangeWeak - {IR(28842, 15), 209}, // 59 AtomicExchange - {IR(44476, 14), 776}, // 60 AtomicFAddEXT - {IR(37147, 14), 572}, // 61 AtomicFMaxEXT - {IR(37133, 14), 571}, // 62 AtomicFMinEXT - {IR(30390, 16), 292}, // 63 AtomicFlagClear - {IR(30369, 21), 291}, // 64 AtomicFlagTestAndSet - {IR(28939, 11), 214}, // 65 AtomicIAdd - {IR(28922, 17), 213}, // 66 AtomicIDecrement - {IR(28905, 17), 212}, // 67 AtomicIIncrement - {IR(28950, 11), 215}, // 68 AtomicISub - {IR(28819, 11), 207}, // 69 AtomicLoad - {IR(29015, 9), 221}, // 70 AtomicOr - {IR(28983, 11), 218}, // 71 AtomicSMax - {IR(28961, 11), 216}, // 72 AtomicSMin - {IR(28830, 12), 208}, // 73 AtomicStore - {IR(28994, 11), 219}, // 74 AtomicUMax - {IR(28972, 11), 217}, // 75 AtomicUMin - {IR(29024, 10), 222}, // 76 AtomicXor - {IR(35369, 28), 500}, // 77 BeginInvocationInterlockEXT - {IR(32916, 17), 407}, // 78 BitCastArrayQCOM - {IR(28603, 9), 191}, // 79 BitCount - {IR(28543, 15), 187}, // 80 BitFieldInsert - {IR(28558, 17), 188}, // 81 BitFieldSExtract - {IR(28575, 17), 189}, // 82 BitFieldUExtract - {IR(28592, 11), 190}, // 83 BitReverse - {IR(27731, 8), 114}, // 84 Bitcast - {IR(28528, 11), 185}, // 85 BitwiseAnd - {IR(45081, 21), 799}, // 86 BitwiseFunctionINTEL - {IR(28507, 10), 183}, // 87 BitwiseOr - {IR(28517, 11), 184}, // 88 BitwiseXor - {IR(29134, 7), 227}, // 89 Branch - {IR(29141, 18), 228}, // 90 BranchConditional - {IR(30002, 13), 277}, // 91 BuildNDRange - {IR(25747, 11), 15}, // 92 Capability - {IR(29960, 26), 275}, // 93 CaptureEventProfilingInfo - {IR(31466, 23), 344}, // 94 ColorAttachmentReadEXT - {IR(29552, 15), 255}, // 95 CommitReadPipe - {IR(29567, 16), 256}, // 96 CommitWritePipe - {IR(26993, 19), 72}, // 97 CompositeConstruct - {IR(44606, 33), 781}, // 98 CompositeConstructContinuedINTEL - {IR(33049, 30), 412}, // 99 CompositeConstructCoopMatQCOM - {IR(32624, 31), 395}, // 100 CompositeConstructReplicateEXT - {IR(27012, 17), 73}, // 101 CompositeExtract - {IR(33079, 28), 413}, // 102 CompositeExtractCoopMatQCOM - {IR(27029, 16), 74}, // 103 CompositeInsert - {IR(45155, 27), 803}, // 104 ConditionalCapabilityINTEL - {IR(45303, 27), 807}, // 105 ConditionalCopyObjectINTEL - {IR(45128, 27), 802}, // 106 ConditionalEntryPointINTEL - {IR(45102, 26), 801}, // 107 ConditionalExtensionINTEL - {IR(15470, 9), 39}, // 108 Constant - {IR(26253, 18), 40}, // 109 ConstantComposite - {IR(44538, 32), 779}, // 110 ConstantCompositeContinuedINTEL - {IR(32560, 30), 393}, // 111 ConstantCompositeReplicateEXT - {IR(26201, 14), 38}, // 112 ConstantFalse - {IR(37051, 29), 566}, // 113 ConstantFunctionPointerINTEL - {IR(26365, 13), 42}, // 114 ConstantNull - {IR(30445, 20), 296}, // 115 ConstantPipeStorage - {IR(26349, 16), 41}, // 116 ConstantSampler - {IR(33515, 19), 432}, // 117 ConstantStringAMDX - {IR(26188, 13), 37}, // 118 ConstantTrue - {IR(28790, 15), 205}, // 119 ControlBarrier - {IR(44679, 26), 784}, // 120 ControlBarrierArriveINTEL - {IR(44705, 24), 785}, // 121 ControlBarrierWaitINTEL - {IR(44659, 20), 783}, // 122 ConvertBF16ToFINTEL - {IR(44639, 20), 782}, // 123 ConvertFToBF16INTEL - {IR(27537, 12), 100}, // 124 ConvertFToS - {IR(27525, 12), 99}, // 125 ConvertFToU - {IR(45523, 26), 819}, // 126 ConvertHandleToImageINTEL - {IR(45577, 33), 821}, // 127 ConvertHandleToSampledImageINTEL - {IR(45549, 28), 820}, // 128 ConvertHandleToSamplerINTEL - {IR(36018, 18), 523}, // 129 ConvertImageToUNV - {IR(27614, 14), 107}, // 130 ConvertPtrToU - {IR(27549, 12), 101}, // 131 ConvertSToF - {IR(36081, 25), 526}, // 132 ConvertSampledImageToUNV - {IR(36036, 20), 524}, // 133 ConvertSamplerToUNV - {IR(32138, 35), 379}, // 134 ConvertUToAccelerationStructureKHR - {IR(27561, 12), 102}, // 135 ConvertUToF - {IR(35980, 18), 521}, // 136 ConvertUToImageNV - {IR(27658, 14), 110}, // 137 ConvertUToPtr - {IR(36056, 25), 525}, // 138 ConvertUToSampledImageNV - {IR(35998, 20), 522}, // 139 ConvertUToSamplerNV - {IR(34675, 27), 475}, // 140 CooperativeMatrixConvertNV - {IR(32533, 27), 392}, // 141 CooperativeMatrixLengthKHR - {IR(35343, 26), 499}, // 142 CooperativeMatrixLengthNV - {IR(32401, 25), 389}, // 143 CooperativeMatrixLoadKHR - {IR(35268, 24), 496}, // 144 CooperativeMatrixLoadNV - {IR(35567, 30), 503}, // 145 CooperativeMatrixLoadTensorNV - {IR(32506, 27), 391}, // 146 CooperativeMatrixMulAddKHR - {IR(35317, 26), 498}, // 147 CooperativeMatrixMulAddNV - {IR(35628, 32), 505}, // 148 CooperativeMatrixPerElementOpNV - {IR(35466, 26), 502}, // 149 CooperativeMatrixReduceNV - {IR(32426, 26), 390}, // 150 CooperativeMatrixStoreKHR - {IR(35292, 25), 497}, // 151 CooperativeMatrixStoreNV - {IR(35597, 31), 504}, // 152 CooperativeMatrixStoreTensorNV - {IR(35951, 29), 520}, // 153 CooperativeMatrixTransposeNV - {IR(34870, 24), 482}, // 154 CooperativeVectorLoadNV - {IR(34643, 32), 474}, // 155 CooperativeVectorMatrixMulAddNV - {IR(34533, 29), 471}, // 156 CooperativeVectorMatrixMulNV - {IR(34562, 42), 472}, // 157 CooperativeVectorOuterProductAccumulateNV - {IR(34604, 39), 473}, // 158 CooperativeVectorReduceSumAccumulateNV - {IR(34894, 25), 483}, // 159 CooperativeVectorStoreNV - {IR(31425, 12), 340}, // 160 CopyLogical - {IR(26659, 11), 56}, // 161 CopyMemory - {IR(26670, 16), 57}, // 162 CopyMemorySized - {IR(27045, 11), 75}, // 163 CopyObject - {IR(30465, 26), 297}, // 164 CreatePipeFromPipeStorage - {IR(35696, 21), 508}, // 165 CreateTensorLayoutNV - {IR(35816, 19), 513}, // 166 CreateTensorViewNV - {IR(29912, 16), 272}, // 167 CreateUserEvent - {IR(43751, 29), 755}, // 168 CrossWorkgroupCastToPtrINTEL - {IR(28612, 5), 192}, // 169 DPdx - {IR(28658, 11), 198}, // 170 DPdxCoarse - {IR(28629, 9), 195}, // 171 DPdxFine - {IR(28617, 5), 193}, // 172 DPdy - {IR(28669, 11), 199}, // 173 DPdyCoarse - {IR(28638, 9), 196}, // 174 DPdyFine - {IR(26819, 9), 64}, // 175 Decorate - {IR(30642, 11), 305}, // 176 DecorateId - {IR(37185, 15), 575}, // 177 DecorateString - {IR(37200, 21), 575}, // 178 DecorateStringGOOGLE - {IR(26843, 16), 66}, // 179 DecorationGroup - {IR(11574, 25), 516}, // 180 DemoteToHelperInvocation - {IR(11599, 28), 516}, // 181 DemoteToHelperInvocationEXT - {IR(31489, 23), 345}, // 182 DepthAttachmentReadEXT - {IR(27928, 4), 137}, // 183 Dot - {IR(34702, 17), 476}, // 184 EmitMeshTasksEXT - {IR(28717, 17), 203}, // 185 EmitStreamVertex - {IR(28693, 11), 201}, // 186 EmitVertex - {IR(35397, 26), 501}, // 187 EndInvocationInterlockEXT - {IR(28704, 13), 202}, // 188 EndPrimitive - {IR(28734, 19), 204}, // 189 EndStreamPrimitive - {IR(29748, 14), 265}, // 190 EnqueueKernel - {IR(29734, 14), 264}, // 191 EnqueueMarker - {IR(33387, 24), 427}, // 192 EnqueueNodePayloadsAMDX - {IR(25662, 11), 13}, // 193 EntryPoint - {IR(32119, 19), 378}, // 194 ExecuteCallableKHR - {IR(35144, 18), 492}, // 195 ExecuteCallableNV - {IR(25705, 14), 14}, // 196 ExecutionMode - {IR(30626, 16), 304}, // 197 ExecutionModeId - {IR(37175, 10), 574}, // 198 ExpectKHR - {IR(25516, 8), 11}, // 199 ExtInst - {IR(25456, 14), 10}, // 200 ExtInstImport - {IR(32056, 26), 375}, // 201 ExtInstWithForwardRefsKHR - {IR(25446, 10), 9}, // 202 Extension - {IR(33107, 20), 414}, // 203 ExtractSubArrayQCOM - {IR(27760, 5), 118}, // 204 FAdd - {IR(27591, 9), 105}, // 205 FConvert - {IR(27795, 5), 125}, // 206 FDiv - {IR(27820, 5), 130}, // 207 FMod - {IR(27780, 5), 122}, // 208 FMul - {IR(27747, 8), 116}, // 209 FNegate - {IR(28257, 10), 168}, // 210 FOrdEqual - {IR(28335, 16), 174}, // 211 FOrdGreaterThan - {IR(28407, 21), 178}, // 212 FOrdGreaterThanEqual - {IR(28307, 13), 172}, // 213 FOrdLessThan - {IR(28369, 18), 176}, // 214 FOrdLessThanEqual - {IR(28279, 13), 170}, // 215 FOrdNotEqual - {IR(13037, 13), 758}, // 216 FPGARegINTEL - {IR(27815, 5), 129}, // 217 FRem - {IR(27770, 5), 120}, // 218 FSub - {IR(28267, 12), 169}, // 219 FUnordEqual - {IR(28351, 18), 175}, // 220 FUnordGreaterThan - {IR(28428, 23), 179}, // 221 FUnordGreaterThanEqual - {IR(28320, 15), 173}, // 222 FUnordLessThan - {IR(28387, 20), 177}, // 223 FUnordLessThanEqual - {IR(28292, 15), 171}, // 224 FUnordNotEqual - {IR(34832, 38), 481}, // 225 FetchMicroTriangleVertexBarycentricNV - {IR(34797, 35), 480}, // 226 FetchMicroTriangleVertexPositionNV - {IR(33436, 29), 429}, // 227 FinishWritingNodePayloadAMDX - {IR(43612, 14), 747}, // 228 FixedCosINTEL - {IR(43659, 16), 750}, // 229 FixedCosPiINTEL - {IR(43708, 14), 753}, // 230 FixedExpINTEL - {IR(43694, 14), 752}, // 231 FixedLogINTEL - {IR(43566, 16), 744}, // 232 FixedRecipINTEL - {IR(43582, 16), 745}, // 233 FixedRsqrtINTEL - {IR(43626, 17), 748}, // 234 FixedSinCosINTEL - {IR(43675, 19), 751}, // 235 FixedSinCosPiINTEL - {IR(43598, 14), 746}, // 236 FixedSinINTEL - {IR(43643, 16), 749}, // 237 FixedSinPiINTEL - {IR(43551, 15), 743}, // 238 FixedSqrtINTEL - {IR(31973, 7), 369}, // 239 FmaKHR - {IR(33332, 17), 424}, // 240 FragmentFetchAMD - {IR(33311, 21), 423}, // 241 FragmentMaskFetchAMD - {IR(24566, 9), 48}, // 242 Function - {IR(26568, 13), 51}, // 243 FunctionCall - {IR(26556, 12), 50}, // 244 FunctionEnd - {IR(26538, 18), 49}, // 245 FunctionParameter - {IR(37080, 25), 567}, // 246 FunctionPointerCallINTEL - {IR(28622, 7), 194}, // 247 Fwidth - {IR(28680, 13), 200}, // 248 FwidthCoarse - {IR(28647, 11), 197}, // 249 FwidthFine - {IR(27689, 17), 112}, // 250 GenericCastToPtr - {IR(27706, 25), 113}, // 251 GenericCastToPtrExplicit - {IR(26745, 23), 62}, // 252 GenericPtrMemSemantics - {IR(29986, 16), 276}, // 253 GetDefaultQueue - {IR(30491, 35), 298}, // 254 GetKernelLocalSizeForSubgroupCount - {IR(30526, 25), 299}, // 255 GetKernelMaxNumSubgroups - {IR(29792, 32), 267}, // 256 GetKernelNDrangeMaxSubGroupSize - {IR(29762, 30), 266}, // 257 GetKernelNDrangeSubGroupCount - {IR(29847, 40), 269}, // 258 GetKernelPreferredWorkGroupSizeMultiple - {IR(29824, 23), 268}, // 259 GetKernelWorkGroupSize - {IR(29618, 18), 259}, // 260 GetMaxPipePackets - {IR(29600, 18), 258}, // 261 GetNumPipePackets - {IR(9043, 9), 353}, // 262 GraphARM - {IR(31641, 17), 351}, // 263 GraphConstantARM - {IR(31709, 12), 356}, // 264 GraphEndARM - {IR(31658, 19), 352}, // 265 GraphEntryPointARM - {IR(31677, 14), 354}, // 266 GraphInputARM - {IR(31691, 18), 355}, // 267 GraphSetOutputARM - {IR(29305, 9), 238}, // 268 GroupAll - {IR(29314, 9), 239}, // 269 GroupAny - {IR(29274, 15), 236}, // 270 GroupAsyncCopy - {IR(45356, 19), 810}, // 271 GroupBitwiseAndKHR - {IR(45375, 18), 811}, // 272 GroupBitwiseOrKHR - {IR(45393, 19), 812}, // 273 GroupBitwiseXorKHR - {IR(29323, 15), 240}, // 274 GroupBroadcast - {IR(29693, 20), 262}, // 275 GroupCommitReadPipe - {IR(29713, 21), 263}, // 276 GroupCommitWritePipe - {IR(26859, 14), 67}, // 277 GroupDecorate - {IR(29381, 10), 242}, // 278 GroupFAdd - {IR(33150, 23), 416}, // 279 GroupFAddNonUniformAMD - {IR(29421, 10), 246}, // 280 GroupFMax - {IR(33242, 23), 420}, // 281 GroupFMaxNonUniformAMD - {IR(29391, 10), 243}, // 282 GroupFMin - {IR(33173, 23), 417}, // 283 GroupFMinNonUniformAMD - {IR(45343, 13), 809}, // 284 GroupFMulKHR - {IR(29371, 10), 241}, // 285 GroupIAdd - {IR(33127, 23), 415}, // 286 GroupIAddNonUniformAMD - {IR(45330, 13), 808}, // 287 GroupIMulKHR - {IR(45412, 19), 813}, // 288 GroupLogicalAndKHR - {IR(45431, 18), 814}, // 289 GroupLogicalOrKHR - {IR(45449, 19), 815}, // 290 GroupLogicalXorKHR - {IR(26918, 20), 68}, // 291 GroupMemberDecorate - {IR(30674, 19), 307}, // 292 GroupNonUniformAll - {IR(30712, 24), 309}, // 293 GroupNonUniformAllEqual - {IR(30693, 19), 308}, // 294 GroupNonUniformAny - {IR(5662, 22), 312}, // 295 GroupNonUniformBallot - {IR(30852, 30), 315}, // 296 GroupNonUniformBallotBitCount - {IR(30820, 32), 314}, // 297 GroupNonUniformBallotBitExtract - {IR(30882, 29), 316}, // 298 GroupNonUniformBallotFindLSB - {IR(30911, 29), 317}, // 299 GroupNonUniformBallotFindMSB - {IR(31218, 26), 332}, // 300 GroupNonUniformBitwiseAnd - {IR(31244, 25), 333}, // 301 GroupNonUniformBitwiseOr - {IR(31269, 26), 334}, // 302 GroupNonUniformBitwiseXor - {IR(30736, 25), 310}, // 303 GroupNonUniformBroadcast - {IR(30761, 30), 311}, // 304 GroupNonUniformBroadcastFirst - {IR(30653, 21), 306}, // 305 GroupNonUniformElect - {IR(31038, 20), 323}, // 306 GroupNonUniformFAdd - {IR(31198, 20), 331}, // 307 GroupNonUniformFMax - {IR(31138, 20), 328}, // 308 GroupNonUniformFMin - {IR(31078, 20), 325}, // 309 GroupNonUniformFMul - {IR(31018, 20), 322}, // 310 GroupNonUniformIAdd - {IR(31058, 20), 324}, // 311 GroupNonUniformIMul - {IR(30791, 29), 313}, // 312 GroupNonUniformInverseBallot - {IR(31295, 26), 335}, // 313 GroupNonUniformLogicalAnd - {IR(31321, 25), 336}, // 314 GroupNonUniformLogicalOr - {IR(31346, 26), 337}, // 315 GroupNonUniformLogicalXor - {IR(34737, 27), 478}, // 316 GroupNonUniformPartitionNV - {IR(33557, 26), 434}, // 317 GroupNonUniformQuadAllKHR - {IR(33583, 26), 435}, // 318 GroupNonUniformQuadAnyKHR - {IR(31372, 29), 338}, // 319 GroupNonUniformQuadBroadcast - {IR(31401, 24), 339}, // 320 GroupNonUniformQuadSwap - {IR(13262, 25), 373}, // 321 GroupNonUniformRotateKHR - {IR(31158, 20), 329}, // 322 GroupNonUniformSMax - {IR(31098, 20), 326}, // 323 GroupNonUniformSMin - {IR(8752, 23), 318}, // 324 GroupNonUniformShuffle - {IR(30991, 27), 321}, // 325 GroupNonUniformShuffleDown - {IR(30966, 25), 320}, // 326 GroupNonUniformShuffleUp - {IR(30940, 26), 319}, // 327 GroupNonUniformShuffleXor - {IR(31178, 20), 330}, // 328 GroupNonUniformUMax - {IR(31118, 20), 327}, // 329 GroupNonUniformUMin - {IR(29636, 28), 260}, // 330 GroupReserveReadPipePackets - {IR(29664, 29), 261}, // 331 GroupReserveWritePipePackets - {IR(29441, 10), 248}, // 332 GroupSMax - {IR(33288, 23), 422}, // 333 GroupSMaxNonUniformAMD - {IR(29411, 10), 245}, // 334 GroupSMin - {IR(33219, 23), 419}, // 335 GroupSMinNonUniformAMD - {IR(29431, 10), 247}, // 336 GroupUMax - {IR(33265, 23), 421}, // 337 GroupUMaxNonUniformAMD - {IR(29401, 10), 244}, // 338 GroupUMin - {IR(33196, 23), 418}, // 339 GroupUMinNonUniformAMD - {IR(29289, 16), 237}, // 340 GroupWaitEvents - {IR(34044, 25), 451}, // 341 HitObjectExecuteShaderNV - {IR(34095, 25), 453}, // 342 HitObjectGetAttributesNV - {IR(35220, 24), 494}, // 343 HitObjectGetClusterIdNV - {IR(34069, 26), 452}, // 344 HitObjectGetCurrentTimeNV - {IR(34171, 28), 456}, // 345 HitObjectGetGeometryIndexNV - {IR(34120, 22), 454}, // 346 HitObjectGetHitKindNV - {IR(34224, 34), 458}, // 347 HitObjectGetInstanceCustomIndexNV - {IR(34199, 25), 457}, // 348 HitObjectGetInstanceIdNV - {IR(36447, 27), 536}, // 349 HitObjectGetLSSPositionsNV - {IR(36474, 23), 537}, // 350 HitObjectGetLSSRadiiNV - {IR(33756, 33), 441}, // 351 HitObjectGetObjectRayDirectionNV - {IR(33789, 30), 442}, // 352 HitObjectGetObjectRayOriginNV - {IR(33728, 28), 440}, // 353 HitObjectGetObjectToWorldNV - {IR(34142, 29), 455}, // 354 HitObjectGetPrimitiveIndexNV - {IR(34319, 22), 461}, // 355 HitObjectGetRayTMaxNV - {IR(34341, 22), 462}, // 356 HitObjectGetRayTMinNV - {IR(33884, 44), 445}, // 357 HitObjectGetShaderBindingTableRecordIndexNV - {IR(33845, 39), 444}, // 358 HitObjectGetShaderRecordBufferHandleNV - {IR(36391, 29), 534}, // 359 HitObjectGetSpherePositionNV - {IR(36420, 27), 535}, // 360 HitObjectGetSphereRadiusNV - {IR(34258, 32), 459}, // 361 HitObjectGetWorldRayDirectionNV - {IR(34290, 29), 460}, // 362 HitObjectGetWorldRayOriginNV - {IR(33700, 28), 439}, // 363 HitObjectGetWorldToObjectNV - {IR(34363, 19), 463}, // 364 HitObjectIsEmptyNV - {IR(34382, 17), 464}, // 365 HitObjectIsHitNV - {IR(36520, 20), 539}, // 366 HitObjectIsLSSHitNV - {IR(34399, 18), 465}, // 367 HitObjectIsMissNV - {IR(36497, 23), 538}, // 368 HitObjectIsSphereHitNV - {IR(33928, 23), 446}, // 369 HitObjectRecordEmptyNV - {IR(33609, 27), 436}, // 370 HitObjectRecordHitMotionNV - {IR(33971, 21), 448}, // 371 HitObjectRecordHitNV - {IR(33636, 36), 437}, // 372 HitObjectRecordHitWithIndexMotionNV - {IR(33992, 30), 449}, // 373 HitObjectRecordHitWithIndexNV - {IR(33672, 28), 438}, // 374 HitObjectRecordMissMotionNV - {IR(34022, 22), 450}, // 375 HitObjectRecordMissNV - {IR(33819, 26), 443}, // 376 HitObjectTraceRayMotionNV - {IR(33951, 20), 447}, // 377 HitObjectTraceRayNV - {IR(27755, 5), 117}, // 378 IAdd - {IR(27932, 10), 138}, // 379 IAddCarry - {IR(36899, 13), 556}, // 380 IAddSatINTEL - {IR(36925, 14), 558}, // 381 IAverageINTEL - {IR(36953, 21), 560}, // 382 IAverageRoundedINTEL - {IR(28128, 7), 158}, // 383 IEqual - {IR(27775, 5), 121}, // 384 IMul - {IR(37021, 15), 564}, // 385 IMul32x16INTEL - {IR(28135, 10), 159}, // 386 INotEqual - {IR(27765, 5), 119}, // 387 ISub - {IR(27942, 11), 139}, // 388 ISubBorrow - {IR(36995, 13), 562}, // 389 ISubSatINTEL - {IR(32173, 22), 380}, // 390 IgnoreIntersectionKHR - {IR(34962, 21), 485}, // 391 IgnoreIntersectionNV - {IR(24610, 6), 91}, // 392 Image - {IR(33020, 29), 411}, // 393 ImageBlockMatchGatherSADQCOM - {IR(32991, 29), 410}, // 394 ImageBlockMatchGatherSSDQCOM - {IR(32893, 23), 406}, // 395 ImageBlockMatchSADQCOM - {IR(32870, 23), 405}, // 396 ImageBlockMatchSSDQCOM - {IR(32962, 29), 409}, // 397 ImageBlockMatchWindowSADQCOM - {IR(32933, 29), 408}, // 398 ImageBlockMatchWindowSSDQCOM - {IR(32851, 19), 404}, // 399 ImageBoxFilterQCOM - {IR(27373, 16), 88}, // 400 ImageDrefGather - {IR(27350, 11), 86}, // 401 ImageFetch - {IR(27361, 12), 87}, // 402 ImageGather - {IR(27410, 17), 92}, // 403 ImageQueryFormat - {IR(27490, 17), 97}, // 404 ImageQueryLevels - {IR(27476, 14), 96}, // 405 ImageQueryLod - {IR(27427, 16), 93}, // 406 ImageQueryOrder - {IR(27507, 18), 98}, // 407 ImageQuerySamples - {IR(27461, 15), 95}, // 408 ImageQuerySize - {IR(27443, 18), 94}, // 409 ImageQuerySizeLod - {IR(27389, 10), 89}, // 410 ImageRead - {IR(27207, 27), 81}, // 411 ImageSampleDrefExplicitLod - {IR(27180, 27), 80}, // 412 ImageSampleDrefImplicitLod - {IR(27157, 23), 79}, // 413 ImageSampleExplicitLod - {IR(34486, 23), 469}, // 414 ImageSampleFootprintNV - {IR(27111, 23), 78}, // 415 ImageSampleImplicitLod - {IR(27319, 31), 85}, // 416 ImageSampleProjDrefExplicitLod - {IR(27288, 31), 84}, // 417 ImageSampleProjDrefImplicitLod - {IR(27261, 27), 83}, // 418 ImageSampleProjExplicitLod - {IR(27234, 27), 82}, // 419 ImageSampleProjImplicitLod - {IR(32827, 24), 403}, // 420 ImageSampleWeightedQCOM - {IR(30314, 22), 288}, // 421 ImageSparseDrefGather - {IR(30279, 17), 286}, // 422 ImageSparseFetch - {IR(30296, 18), 287}, // 423 ImageSparseGather - {IR(30406, 16), 293}, // 424 ImageSparseRead - {IR(30106, 33), 281}, // 425 ImageSparseSampleDrefExplicitLod - {IR(30073, 33), 280}, // 426 ImageSparseSampleDrefImplicitLod - {IR(30044, 29), 279}, // 427 ImageSparseSampleExplicitLod - {IR(30015, 29), 278}, // 428 ImageSparseSampleImplicitLod - {IR(30242, 37), 285}, // 429 ImageSparseSampleProjDrefExplicitLod - {IR(30205, 37), 284}, // 430 ImageSparseSampleProjDrefImplicitLod - {IR(30172, 33), 283}, // 431 ImageSparseSampleProjExplicitLod - {IR(30139, 33), 282}, // 432 ImageSparseSampleProjImplicitLod - {IR(30336, 26), 289}, // 433 ImageSparseTexelsResident - {IR(26590, 18), 53}, // 434 ImageTexelPointer - {IR(27399, 11), 90}, // 435 ImageWrite - {IR(26698, 20), 59}, // 436 InBoundsAccessChain - {IR(26768, 23), 63}, // 437 InBoundsPtrAccessChain - {IR(27999, 9), 146}, // 438 IsFinite - {IR(35882, 22), 517}, // 439 IsHelperInvocationEXT - {IR(27993, 6), 145}, // 440 IsInf - {IR(27987, 6), 144}, // 441 IsNan - {IR(33492, 23), 431}, // 442 IsNodePayloadValidAMDX - {IR(28008, 9), 147}, // 443 IsNormal - {IR(29928, 13), 273}, // 444 IsValidEvent - {IR(29583, 17), 257}, // 445 IsValidReserveId - {IR(29211, 5), 230}, // 446 Kill - {IR(29128, 6), 226}, // 447 Label - {IR(28028, 14), 149}, // 448 LessOrGreater - {IR(29247, 14), 234}, // 449 LifetimeStart - {IR(29261, 13), 235}, // 450 LifetimeStop - {IR(25441, 5), 8}, // 451 Line - {IR(26648, 5), 54}, // 452 Load - {IR(28099, 11), 155}, // 453 LogicalAnd - {IR(28060, 13), 152}, // 454 LogicalEqual - {IR(28110, 11), 156}, // 455 LogicalNot - {IR(28073, 16), 153}, // 456 LogicalNotEqual - {IR(28089, 10), 154}, // 457 LogicalOr - {IR(43469, 17), 739}, // 458 LoopControlINTEL - {IR(29068, 10), 224}, // 459 LoopMerge - {IR(45486, 18), 817}, // 460 MaskedGatherINTEL - {IR(45504, 19), 818}, // 461 MaskedScatterINTEL - {IR(27897, 18), 135}, // 462 MatrixTimesMatrix - {IR(27843, 18), 132}, // 463 MatrixTimesScalar - {IR(27879, 18), 134}, // 464 MatrixTimesVector - {IR(26828, 15), 65}, // 465 MemberDecorate - {IR(37221, 21), 576}, // 466 MemberDecorateString - {IR(37242, 27), 576}, // 467 MemberDecorateStringGOOGLE - {IR(25423, 11), 6}, // 468 MemberName - {IR(28805, 14), 206}, // 469 MemoryBarrier - {IR(25588, 12), 12}, // 470 MemoryModel - {IR(30591, 19), 302}, // 471 MemoryNamedBarrier - {IR(30610, 16), 303}, // 472 ModuleProcessed - {IR(25418, 5), 5}, // 473 Name - {IR(30568, 23), 301}, // 474 NamedBarrierInitialize - {IR(30362, 7), 290}, // 475 NoLine - {IR(33465, 27), 430}, // 476 NodePayloadArrayLengthAMDX - {IR(25214, 4), 0}, // 477 Nop - {IR(28539, 4), 186}, // 478 Not - {IR(28042, 8), 150}, // 479 Ordered - {IR(27915, 13), 136}, // 480 OuterProduct - {IR(29034, 4), 223}, // 481 Phi - {IR(26718, 15), 60}, // 482 PtrAccessChain - {IR(43722, 29), 754}, // 483 PtrCastToCrossWorkgroupINTEL - {IR(27672, 17), 111}, // 484 PtrCastToGeneric - {IR(31458, 8), 343}, // 485 PtrDiff - {IR(31437, 9), 341}, // 486 PtrEqual - {IR(31446, 12), 342}, // 487 PtrNotEqual - {IR(27600, 14), 106}, // 488 QuantizeToF16 - {IR(36187, 17), 528}, // 489 RawAccessChainNV - {IR(32746, 31), 400}, // 490 RayQueryConfirmIntersectionKHR - {IR(32714, 32), 399}, // 491 RayQueryGenerateIntersectionKHR - {IR(35197, 23), 493}, // 492 RayQueryGetClusterIdNV - {IR(44127, 39), 767}, // 493 RayQueryGetIntersectionBarycentricsKHR - {IR(44202, 46), 769}, // 494 RayQueryGetIntersectionCandidateAABBOpaqueKHR - {IR(35162, 35), 493}, // 495 RayQueryGetIntersectionClusterIdNV - {IR(44166, 36), 768}, // 496 RayQueryGetIntersectionFrontFaceKHR - {IR(44046, 40), 765}, // 497 RayQueryGetIntersectionGeometryIndexKHR - {IR(43898, 46), 762}, // 498 RayQueryGetIntersectionInstanceCustomIndexKHR - {IR(43944, 37), 763}, // 499 RayQueryGetIntersectionInstanceIdKHR - {IR(43981, 65), 764}, // 500 RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR - {IR(36354, 37), 533}, // 501 RayQueryGetIntersectionLSSHitValueNV - {IR(36282, 38), 531}, // 502 RayQueryGetIntersectionLSSPositionsNV - {IR(36320, 34), 532}, // 503 RayQueryGetIntersectionLSSRadiiNV - {IR(44248, 45), 770}, // 504 RayQueryGetIntersectionObjectRayDirectionKHR - {IR(44293, 42), 771}, // 505 RayQueryGetIntersectionObjectRayOriginKHR - {IR(44396, 40), 774}, // 506 RayQueryGetIntersectionObjectToWorldKHR - {IR(44086, 41), 766}, // 507 RayQueryGetIntersectionPrimitiveIndexKHR - {IR(36204, 40), 529}, // 508 RayQueryGetIntersectionSpherePositionNV - {IR(36244, 38), 530}, // 509 RayQueryGetIntersectionSphereRadiusNV - {IR(43870, 28), 761}, // 510 RayQueryGetIntersectionTKHR - {IR(35037, 50), 490}, // 511 RayQueryGetIntersectionTriangleVertexPositionsKHR - {IR(32796, 31), 402}, // 512 RayQueryGetIntersectionTypeKHR - {IR(44436, 40), 775}, // 513 RayQueryGetIntersectionWorldToObjectKHR - {IR(43847, 23), 760}, // 514 RayQueryGetRayFlagsKHR - {IR(43825, 22), 759}, // 515 RayQueryGetRayTMinKHR - {IR(44335, 32), 772}, // 516 RayQueryGetWorldRayDirectionKHR - {IR(44367, 29), 773}, // 517 RayQueryGetWorldRayOriginKHR - {IR(32671, 22), 397}, // 518 RayQueryInitializeKHR - {IR(36562, 19), 541}, // 519 RayQueryIsLSSHitNV - {IR(36540, 22), 540}, // 520 RayQueryIsSphereHitNV - {IR(32777, 19), 401}, // 521 RayQueryProceedKHR - {IR(32693, 21), 398}, // 522 RayQueryTerminateKHR - {IR(33349, 13), 425}, // 523 ReadClockKHR - {IR(29451, 9), 249}, // 524 ReadPipe - {IR(43780, 22), 756}, // 525 ReadPipeBlockingINTEL - {IR(29899, 13), 271}, // 526 ReleaseEvent - {IR(34446, 24), 467}, // 527 ReorderThreadWithHintNV - {IR(34417, 29), 466}, // 528 ReorderThreadWithHitObjectNV - {IR(34919, 22), 484}, // 529 ReportIntersectionKHR - {IR(34941, 21), 484}, // 530 ReportIntersectionNV - {IR(29505, 23), 253}, // 531 ReserveReadPipePackets - {IR(29528, 24), 254}, // 532 ReserveWritePipePackets - {IR(29470, 17), 251}, // 533 ReservedReadPipe - {IR(29487, 18), 252}, // 534 ReservedWritePipe - {IR(42451, 19), 697}, // 535 RestoreMemoryINTEL - {IR(29887, 12), 270}, // 536 RetainEvent - {IR(29216, 7), 231}, // 537 Return - {IR(29223, 12), 232}, // 538 ReturnValue - {IR(45468, 18), 816}, // 539 RoundFToTF32INTEL - {IR(27582, 9), 104}, // 540 SConvert - {IR(27790, 5), 124}, // 541 SDiv - {IR(32258, 5), 382}, // 542 SDot - {IR(32299, 11), 385}, // 543 SDotAccSat - {IR(32310, 14), 385}, // 544 SDotAccSatKHR - {IR(32263, 8), 382}, // 545 SDotKHR - {IR(28158, 13), 161}, // 546 SGreaterThan - {IR(28189, 18), 163}, // 547 SGreaterThanEqual - {IR(28217, 10), 165}, // 548 SLessThan - {IR(28242, 15), 167}, // 549 SLessThanEqual - {IR(27810, 5), 128}, // 550 SMod - {IR(27966, 13), 141}, // 551 SMulExtended - {IR(27739, 8), 115}, // 552 SNegate - {IR(27805, 5), 127}, // 553 SRem - {IR(32284, 6), 384}, // 554 SUDot - {IR(32349, 12), 387}, // 555 SUDotAccSat - {IR(32361, 15), 387}, // 556 SUDotAccSatKHR - {IR(32290, 9), 384}, // 557 SUDotKHR - {IR(27066, 13), 77}, // 558 SampledImage - {IR(36106, 29), 527}, // 559 SamplerImageAddressingModeNV - {IR(27628, 15), 108}, // 560 SatConvertSToU - {IR(27643, 15), 109}, // 561 SatConvertUToS - {IR(42435, 16), 696}, // 562 SaveMemoryINTEL - {IR(28121, 7), 157}, // 563 Select - {IR(29113, 15), 225}, // 564 SelectionMerge - {IR(34719, 18), 477}, // 565 SetMeshOutputsEXT - {IR(29941, 19), 274}, // 566 SetUserEventStatus - {IR(28490, 17), 182}, // 567 ShiftLeftLogical - {IR(28469, 21), 181}, // 568 ShiftRightArithmetic - {IR(28451, 18), 180}, // 569 ShiftRightLogical - {IR(28017, 11), 148}, // 570 SignBitSet - {IR(30422, 7), 294}, // 571 SizeOf - {IR(25395, 7), 3}, // 572 Source - {IR(25276, 16), 2}, // 573 SourceContinued - {IR(25402, 16), 4}, // 574 SourceExtension - {IR(26413, 13), 45}, // 575 SpecConstant - {IR(45206, 30), 805}, // 576 SpecConstantArchitectureINTEL - {IR(45273, 30), 806}, // 577 SpecConstantCapabilitiesINTEL - {IR(26426, 22), 46}, // 578 SpecConstantComposite - {IR(44570, 36), 780}, // 579 SpecConstantCompositeContinuedINTEL - {IR(32590, 34), 394}, // 580 SpecConstantCompositeReplicateEXT - {IR(26395, 18), 44}, // 581 SpecConstantFalse - {IR(26489, 15), 47}, // 582 SpecConstantOp - {IR(33534, 23), 433}, // 583 SpecConstantStringAMDX - {IR(45182, 24), 804}, // 584 SpecConstantTargetINTEL - {IR(26378, 17), 43}, // 585 SpecConstantTrue - {IR(31512, 25), 346}, // 586 StencilAttachmentReadEXT - {IR(26653, 6), 55}, // 587 Store - {IR(25434, 7), 7}, // 588 String - {IR(44871, 25), 793}, // 589 Subgroup2DBlockLoadINTEL - {IR(44896, 34), 794}, // 590 Subgroup2DBlockLoadTransformINTEL - {IR(44930, 34), 795}, // 591 Subgroup2DBlockLoadTransposeINTEL - {IR(44964, 29), 796}, // 592 Subgroup2DBlockPrefetchINTEL - {IR(44993, 26), 797}, // 593 Subgroup2DBlockStoreINTEL - {IR(32010, 20), 372}, // 594 SubgroupAllEqualKHR - {IR(31980, 15), 370}, // 595 SubgroupAllKHR - {IR(31995, 15), 371}, // 596 SubgroupAnyKHR - {IR(40953, 30), 660}, // 597 SubgroupAvcBmeInitializeINTEL - {IR(40923, 30), 659}, // 598 SubgroupAvcFmeInitializeINTEL - {IR(39358, 35), 629}, // 599 SubgroupAvcImeAdjustRefOffsetINTEL - {IR(39393, 39), 630}, // 600 SubgroupAvcImeConvertToMcePayloadINTEL - {IR(40034, 38), 643}, // 601 SubgroupAvcImeConvertToMceResultINTEL - {IR(39657, 45), 636}, // 602 SubgroupAvcImeEvaluateWithDualReferenceINTEL - {IR(39757, 53), 638}, // 603 SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL - {IR(39978, 56), 642}, // 604 SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL - {IR(39866, 54), 640}, // 605 SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL - {IR(39610, 47), 635}, // 606 SubgroupAvcImeEvaluateWithSingleReferenceINTEL - {IR(39702, 55), 637}, // 607 SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL - {IR(39920, 58), 641}, // 608 SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL - {IR(39810, 56), 639}, // 609 SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL - {IR(40666, 36), 654}, // 610 SubgroupAvcImeGetBorderReachedINTEL - {IR(40118, 44), 645}, // 611 SubgroupAvcImeGetDualReferenceStreaminINTEL - {IR(40072, 46), 644}, // 612 SubgroupAvcImeGetSingleReferenceStreaminINTEL - {IR(40533, 66), 652}, // 613 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL - {IR(40465, 68), 651}, // 614 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL - {IR(40599, 67), 653}, // 615 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL - {IR(40328, 68), 649}, // 616 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL - {IR(40258, 70), 648}, // 617 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL - {IR(40396, 69), 650}, // 618 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL - {IR(40702, 48), 655}, // 619 SubgroupAvcImeGetTruncatedSearchIndicationINTEL - {IR(40750, 59), 656}, // 620 SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL - {IR(40867, 56), 658}, // 621 SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL - {IR(40809, 58), 657}, // 622 SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL - {IR(39221, 30), 625}, // 623 SubgroupAvcImeInitializeINTEL - {IR(39325, 33), 628}, // 624 SubgroupAvcImeRefWindowSizeINTEL - {IR(39289, 36), 627}, // 625 SubgroupAvcImeSetDualReferenceINTEL - {IR(39522, 54), 633}, // 626 SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL - {IR(39432, 43), 631}, // 627 SubgroupAvcImeSetMaxMotionVectorCountINTEL - {IR(39251, 38), 626}, // 628 SubgroupAvcImeSetSingleReferenceINTEL - {IR(39475, 47), 632}, // 629 SubgroupAvcImeSetUnidirectionalMixDisableINTEL - {IR(39576, 34), 634}, // 630 SubgroupAvcImeSetWeightedSadINTEL - {IR(40211, 47), 647}, // 631 SubgroupAvcImeStripDualReferenceStreamoutINTEL - {IR(40162, 49), 646}, // 632 SubgroupAvcImeStripSingleReferenceStreamoutINTEL - {IR(38611, 39), 610}, // 633 SubgroupAvcMceConvertToImePayloadINTEL - {IR(38650, 38), 611}, // 634 SubgroupAvcMceConvertToImeResultINTEL - {IR(38688, 39), 612}, // 635 SubgroupAvcMceConvertToRefPayloadINTEL - {IR(38727, 38), 613}, // 636 SubgroupAvcMceConvertToRefResultINTEL - {IR(38765, 39), 614}, // 637 SubgroupAvcMceConvertToSicPayloadINTEL - {IR(38804, 38), 615}, // 638 SubgroupAvcMceConvertToSicResultINTEL - {IR(38917, 43), 618}, // 639 SubgroupAvcMceGetBestInterDistortionsINTEL - {IR(38049, 50), 599}, // 640 SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL - {IR(37647, 60), 591}, // 641 SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL - {IR(37847, 51), 595}, // 642 SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL - {IR(37993, 56), 598}, // 643 SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL - {IR(37760, 47), 593}, // 644 SubgroupAvcMceGetDefaultInterShapePenaltyINTEL - {IR(38348, 56), 605}, // 645 SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL - {IR(38247, 50), 603}, // 646 SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL - {IR(37942, 51), 597}, // 647 SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL - {IR(38151, 49), 601}, // 648 SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL - {IR(38099, 52), 600}, // 649 SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL - {IR(38297, 51), 604}, // 650 SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL - {IR(39036, 38), 621}, // 651 SubgroupAvcMceGetInterDirectionsINTEL - {IR(38878, 39), 617}, // 652 SubgroupAvcMceGetInterDistortionsINTEL - {IR(38960, 38), 619}, // 653 SubgroupAvcMceGetInterMajorShapeINTEL - {IR(38998, 38), 620}, // 654 SubgroupAvcMceGetInterMinorShapeINTEL - {IR(39074, 45), 622}, // 655 SubgroupAvcMceGetInterMotionVectorCountINTEL - {IR(39119, 40), 623}, // 656 SubgroupAvcMceGetInterReferenceIdsINTEL - {IR(39159, 62), 624}, // 657 SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL - {IR(38842, 36), 616}, // 658 SubgroupAvcMceGetMotionVectorsINTEL - {IR(38404, 33), 606}, // 659 SubgroupAvcMceSetAcOnlyHaarINTEL - {IR(38550, 61), 609}, // 660 SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL - {IR(37707, 53), 592}, // 661 SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL - {IR(37898, 44), 596}, // 662 SubgroupAvcMceSetInterDirectionPenaltyINTEL - {IR(37807, 40), 594}, // 663 SubgroupAvcMceSetInterShapePenaltyINTEL - {IR(38200, 47), 602}, // 664 SubgroupAvcMceSetMotionVectorCostFunctionINTEL - {IR(38489, 61), 608}, // 665 SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL - {IR(38437, 52), 607}, // 666 SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL - {IR(40983, 39), 661}, // 667 SubgroupAvcRefConvertToMcePayloadINTEL - {IR(41305, 38), 668}, // 668 SubgroupAvcRefConvertToMceResultINTEL - {IR(41158, 45), 665}, // 669 SubgroupAvcRefEvaluateWithDualReferenceINTEL - {IR(41203, 46), 666}, // 670 SubgroupAvcRefEvaluateWithMultiReferenceINTEL - {IR(41249, 56), 667}, // 671 SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL - {IR(41111, 47), 664}, // 672 SubgroupAvcRefEvaluateWithSingleReferenceINTEL - {IR(41022, 46), 662}, // 673 SubgroupAvcRefSetBidirectionalMixDisableINTEL - {IR(41068, 43), 663}, // 674 SubgroupAvcRefSetBilinearFilterEnableINTEL - {IR(41441, 42), 672}, // 675 SubgroupAvcSicConfigureIpeLumaChromaINTEL - {IR(41405, 36), 671}, // 676 SubgroupAvcSicConfigureIpeLumaINTEL - {IR(41373, 32), 670}, // 677 SubgroupAvcSicConfigureSkcINTEL - {IR(41522, 39), 674}, // 678 SubgroupAvcSicConvertToMcePayloadINTEL - {IR(42062, 38), 686}, // 679 SubgroupAvcSicConvertToMceResultINTEL - {IR(41837, 31), 681}, // 680 SubgroupAvcSicEvaluateIpeINTEL - {IR(41915, 45), 683}, // 681 SubgroupAvcSicEvaluateWithDualReferenceINTEL - {IR(41960, 46), 684}, // 682 SubgroupAvcSicEvaluateWithMultiReferenceINTEL - {IR(42006, 56), 685}, // 683 SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL - {IR(41868, 47), 682}, // 684 SubgroupAvcSicEvaluateWithSingleReferenceINTEL - {IR(42179, 46), 689}, // 685 SubgroupAvcSicGetBestIpeChromaDistortionINTEL - {IR(42135, 44), 688}, // 686 SubgroupAvcSicGetBestIpeLumaDistortionINTEL - {IR(42400, 35), 694}, // 687 SubgroupAvcSicGetInterRawSadsINTEL - {IR(42266, 36), 691}, // 688 SubgroupAvcSicGetIpeChromaModeINTEL - {IR(42100, 35), 687}, // 689 SubgroupAvcSicGetIpeLumaShapeINTEL - {IR(41483, 39), 673}, // 690 SubgroupAvcSicGetMotionVectorMaskINTEL - {IR(42225, 41), 690}, // 691 SubgroupAvcSicGetPackedIpeLumaModesINTEL - {IR(42302, 50), 692}, // 692 SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL - {IR(42352, 48), 693}, // 693 SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL - {IR(41343, 30), 669}, // 694 SubgroupAvcSicInitializeINTEL - {IR(41703, 43), 678}, // 695 SubgroupAvcSicSetBilinearFilterEnableINTEL - {IR(41794, 43), 680}, // 696 SubgroupAvcSicSetBlockBasedRawSkipSadINTEL - {IR(41653, 50), 677}, // 697 SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL - {IR(41605, 48), 676}, // 698 SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL - {IR(41561, 44), 675}, // 699 SubgroupAvcSicSetIntraLumaShapePenaltyINTEL - {IR(41746, 48), 679}, // 700 SubgroupAvcSicSetSkcForwardTransformEnableINTEL - {IR(5423, 18), 363}, // 701 SubgroupBallotKHR - {IR(44844, 27), 792}, // 702 SubgroupBlockPrefetchINTEL - {IR(36653, 23), 546}, // 703 SubgroupBlockReadINTEL - {IR(36676, 24), 547}, // 704 SubgroupBlockWriteINTEL - {IR(31847, 27), 364}, // 705 SubgroupFirstInvocationKHR - {IR(36700, 28), 548}, // 706 SubgroupImageBlockReadINTEL - {IR(36728, 29), 549}, // 707 SubgroupImageBlockWriteINTEL - {IR(36757, 33), 550}, // 708 SubgroupImageMediaBlockReadINTEL - {IR(36790, 34), 551}, // 709 SubgroupImageMediaBlockWriteINTEL - {IR(13814, 38), 798}, // 710 SubgroupMatrixMultiplyAccumulateINTEL - {IR(32030, 26), 374}, // 711 SubgroupReadInvocationKHR - {IR(36581, 25), 543}, // 712 SubgroupShuffleDownINTEL - {IR(12022, 21), 542}, // 713 SubgroupShuffleINTEL - {IR(36606, 23), 544}, // 714 SubgroupShuffleUpINTEL - {IR(36629, 24), 545}, // 715 SubgroupShuffleXorINTEL - {IR(29204, 7), 229}, // 716 Switch - {IR(44753, 23), 788}, // 717 TaskSequenceAsyncINTEL - {IR(44729, 24), 787}, // 718 TaskSequenceCreateINTEL - {IR(44776, 21), 789}, // 719 TaskSequenceGetINTEL - {IR(44797, 25), 790}, // 720 TaskSequenceReleaseINTEL - {IR(35924, 27), 519}, // 721 TensorLayoutSetBlockSizeNV - {IR(35788, 28), 512}, // 722 TensorLayoutSetClampValueNV - {IR(35717, 27), 509}, // 723 TensorLayoutSetDimensionNV - {IR(35744, 24), 510}, // 724 TensorLayoutSetStrideNV - {IR(35768, 20), 511}, // 725 TensorLayoutSliceNV - {IR(31622, 19), 350}, // 726 TensorQuerySizeARM - {IR(31593, 14), 348}, // 727 TensorReadARM - {IR(35904, 20), 518}, // 728 TensorViewSetClipNV - {IR(35835, 25), 514}, // 729 TensorViewSetDimensionNV - {IR(35860, 22), 515}, // 730 TensorViewSetStrideNV - {IR(31607, 15), 349}, // 731 TensorWriteARM - {IR(31734, 20), 358}, // 732 TerminateInvocation - {IR(32195, 16), 381}, // 733 TerminateRayKHR - {IR(34983, 15), 486}, // 734 TerminateRayNV - {IR(35006, 14), 488}, // 735 TraceMotionNV - {IR(34998, 8), 487}, // 736 TraceNV - {IR(32107, 12), 377}, // 737 TraceRayKHR - {IR(35020, 17), 489}, // 738 TraceRayMotionNV - {IR(27056, 10), 76}, // 739 Transpose - {IR(35087, 29), 491}, // 740 TypeAccelerationStructureKHR - {IR(35116, 28), 491}, // 741 TypeAccelerationStructureNV - {IR(26005, 10), 25}, // 742 TypeArray - {IR(37566, 37), 588}, // 743 TypeAvcImeDualReferenceStreaminINTEL - {IR(37301, 23), 579}, // 744 TypeAvcImePayloadINTEL - {IR(37483, 44), 586}, // 745 TypeAvcImeResultDualReferenceStreamoutINTEL - {IR(37415, 22), 584}, // 746 TypeAvcImeResultINTEL - {IR(37437, 46), 585}, // 747 TypeAvcImeResultSingleReferenceStreamoutINTEL - {IR(37527, 39), 587}, // 748 TypeAvcImeSingleReferenceStreaminINTEL - {IR(37370, 23), 582}, // 749 TypeAvcMcePayloadINTEL - {IR(37393, 22), 583}, // 750 TypeAvcMceResultINTEL - {IR(37324, 23), 580}, // 751 TypeAvcRefPayloadINTEL - {IR(37603, 22), 589}, // 752 TypeAvcRefResultINTEL - {IR(37347, 23), 581}, // 753 TypeAvcSicPayloadINTEL - {IR(37625, 22), 590}, // 754 TypeAvcSicResultINTEL - {IR(25767, 9), 17}, // 755 TypeBool - {IR(44490, 23), 777}, // 756 TypeBufferSurfaceINTEL - {IR(32376, 25), 388}, // 757 TypeCooperativeMatrixKHR - {IR(35244, 24), 495}, // 758 TypeCooperativeMatrixNV - {IR(34509, 24), 470}, // 759 TypeCooperativeVectorNV - {IR(26120, 16), 32}, // 760 TypeDeviceEvent - {IR(26110, 10), 31}, // 761 TypeEvent - {IR(25821, 10), 19}, // 762 TypeFloat - {IR(26169, 19), 36}, // 763 TypeForwardPointer - {IR(26097, 13), 30}, // 764 TypeFunction - {IR(31721, 13), 357}, // 765 TypeGraphARM - {IR(34470, 16), 468}, // 766 TypeHitObjectNV - {IR(25966, 10), 22}, // 767 TypeImage - {IR(25776, 8), 18}, // 768 TypeInt - {IR(25842, 11), 21}, // 769 TypeMatrix - {IR(30551, 17), 300}, // 770 TypeNamedBarrier - {IR(33411, 25), 428}, // 771 TypeNodePayloadArrayAMDX - {IR(26043, 11), 28}, // 772 TypeOpaque - {IR(26160, 9), 35}, // 773 TypePipe - {IR(30429, 16), 295}, // 774 TypePipeStorage - {IR(26085, 12), 29}, // 775 TypePointer - {IR(26150, 10), 34}, // 776 TypeQueue - {IR(32655, 16), 396}, // 777 TypeRayQueryKHR - {IR(26136, 14), 33}, // 778 TypeReserveId - {IR(26015, 17), 26}, // 779 TypeRuntimeArray - {IR(25988, 17), 24}, // 780 TypeSampledImage - {IR(25976, 12), 23}, // 781 TypeSampler - {IR(26032, 11), 27}, // 782 TypeStruct - {IR(44513, 25), 778}, // 783 TypeStructContinuedINTEL - {IR(44822, 22), 791}, // 784 TypeTaskSequenceINTEL - {IR(31537, 14), 347}, // 785 TypeTensorARM - {IR(35660, 19), 506}, // 786 TypeTensorLayoutNV - {IR(35679, 17), 507}, // 787 TypeTensorViewNV - {IR(31754, 22), 359}, // 788 TypeUntypedPointerKHR - {IR(25831, 11), 20}, // 789 TypeVector - {IR(37283, 18), 578}, // 790 TypeVmeImageINTEL - {IR(25758, 9), 16}, // 791 TypeVoid - {IR(36912, 13), 557}, // 792 UAddSatINTEL - {IR(36939, 14), 559}, // 793 UAverageINTEL - {IR(36974, 21), 561}, // 794 UAverageRoundedINTEL - {IR(27573, 9), 103}, // 795 UConvert - {IR(36824, 24), 552}, // 796 UCountLeadingZerosINTEL - {IR(36848, 25), 553}, // 797 UCountTrailingZerosINTEL - {IR(27785, 5), 123}, // 798 UDiv - {IR(32271, 5), 383}, // 799 UDot - {IR(32324, 11), 386}, // 800 UDotAccSat - {IR(32335, 14), 386}, // 801 UDotAccSatKHR - {IR(32276, 8), 383}, // 802 UDotKHR - {IR(28145, 13), 160}, // 803 UGreaterThan - {IR(28171, 18), 162}, // 804 UGreaterThanEqual - {IR(28207, 10), 164}, // 805 ULessThan - {IR(28227, 15), 166}, // 806 ULessThanEqual - {IR(27800, 5), 126}, // 807 UMod - {IR(37036, 15), 565}, // 808 UMul32x16INTEL - {IR(27953, 13), 140}, // 809 UMulExtended - {IR(37008, 13), 563}, // 810 USubSatINTEL - {IR(25270, 6), 1}, // 811 Undef - {IR(28050, 10), 151}, // 812 Unordered - {IR(29235, 12), 233}, // 813 Unreachable - {IR(31795, 22), 361}, // 814 UntypedAccessChainKHR - {IR(31932, 22), 367}, // 815 UntypedArrayLengthKHR - {IR(32082, 25), 376}, // 816 UntypedGroupAsyncCopyKHR - {IR(31817, 30), 362}, // 817 UntypedInBoundsAccessChainKHR - {IR(31899, 33), 366}, // 818 UntypedInBoundsPtrAccessChainKHR - {IR(31954, 19), 368}, // 819 UntypedPrefetchKHR - {IR(31874, 25), 365}, // 820 UntypedPtrAccessChainKHR - {IR(31776, 19), 360}, // 821 UntypedVariableKHR - {IR(13880, 32), 800}, // 822 UntypedVariableLengthArrayINTEL - {IR(26581, 9), 52}, // 823 Variable - {IR(12478, 25), 695}, // 824 VariableLengthArrayINTEL - {IR(26938, 21), 69}, // 825 VectorExtractDynamic - {IR(26959, 20), 70}, // 826 VectorInsertDynamic - {IR(26979, 14), 71}, // 827 VectorShuffle - {IR(27861, 18), 133}, // 828 VectorTimesMatrix - {IR(27825, 18), 131}, // 829 VectorTimesScalar - {IR(37269, 14), 577}, // 830 VmeImageINTEL - {IR(34764, 33), 479}, // 831 WritePackedPrimitiveIndices4x8NV - {IR(29460, 10), 250}, // 832 WritePipe - {IR(43802, 23), 757}, // 833 WritePipeBlockingINTEL +static const std::array kInstructionNames{{ + {IR(40443, 13), 590}, // 0 AbsISubINTEL + {IR(40456, 13), 591}, // 1 AbsUSubINTEL + {IR(29213, 12), 58}, // 2 AccessChain + {IR(47511, 21), 776}, // 3 AliasDomainDeclINTEL + {IR(47532, 20), 777}, // 4 AliasScopeDeclINTEL + {IR(47552, 24), 778}, // 5 AliasScopeListDeclINTEL + {IR(30510, 4), 143}, // 6 All + {IR(35889, 25), 426}, // 7 AllocateNodePayloadsAMDX + {IR(30506, 4), 142}, // 8 Any + {IR(47298, 24), 767}, // 9 ArbitraryFloatACosINTEL + {IR(47322, 26), 768}, // 10 ArbitraryFloatACosPiINTEL + {IR(47248, 24), 765}, // 11 ArbitraryFloatASinINTEL + {IR(47272, 26), 766}, // 12 ArbitraryFloatASinPiINTEL + {IR(47398, 25), 771}, // 13 ArbitraryFloatATan2INTEL + {IR(47348, 24), 769}, // 14 ArbitraryFloatATanINTEL + {IR(47372, 26), 770}, // 15 ArbitraryFloatATanPiINTEL + {IR(46268, 24), 738}, // 16 ArbitraryFloatAddALTERA + {IR(46292, 23), 738}, // 17 ArbitraryFloatAddINTEL + {IR(46097, 25), 735}, // 18 ArbitraryFloatCastALTERA + {IR(46146, 32), 736}, // 19 ArbitraryFloatCastFromIntALTERA + {IR(46178, 31), 736}, // 20 ArbitraryFloatCastFromIntINTEL + {IR(46122, 24), 735}, // 21 ArbitraryFloatCastINTEL + {IR(46209, 30), 737}, // 22 ArbitraryFloatCastToIntALTERA + {IR(46239, 29), 737}, // 23 ArbitraryFloatCastToIntINTEL + {IR(46783, 25), 749}, // 24 ArbitraryFloatCbrtALTERA + {IR(46808, 24), 749}, // 25 ArbitraryFloatCbrtINTEL + {IR(47149, 23), 761}, // 26 ArbitraryFloatCosINTEL + {IR(47223, 25), 764}, // 27 ArbitraryFloatCosPiINTEL + {IR(46409, 24), 741}, // 28 ArbitraryFloatDivALTERA + {IR(46433, 23), 741}, // 29 ArbitraryFloatDivINTEL + {IR(46636, 23), 746}, // 30 ArbitraryFloatEQALTERA + {IR(46659, 22), 746}, // 31 ArbitraryFloatEQINTEL + {IR(47076, 25), 758}, // 32 ArbitraryFloatExp10INTEL + {IR(47052, 24), 757}, // 33 ArbitraryFloatExp2INTEL + {IR(47029, 23), 756}, // 34 ArbitraryFloatExpINTEL + {IR(47101, 25), 759}, // 35 ArbitraryFloatExpm1INTEL + {IR(46501, 23), 743}, // 36 ArbitraryFloatGEALTERA + {IR(46524, 22), 743}, // 37 ArbitraryFloatGEINTEL + {IR(46456, 23), 742}, // 38 ArbitraryFloatGTALTERA + {IR(46479, 22), 742}, // 39 ArbitraryFloatGTINTEL + {IR(46832, 26), 750}, // 40 ArbitraryFloatHypotALTERA + {IR(46858, 25), 750}, // 41 ArbitraryFloatHypotINTEL + {IR(46591, 23), 745}, // 42 ArbitraryFloatLEALTERA + {IR(46614, 22), 745}, // 43 ArbitraryFloatLEINTEL + {IR(46546, 23), 744}, // 44 ArbitraryFloatLTALTERA + {IR(46569, 22), 744}, // 45 ArbitraryFloatLTINTEL + {IR(46979, 25), 754}, // 46 ArbitraryFloatLog10INTEL + {IR(47004, 25), 755}, // 47 ArbitraryFloatLog1pINTEL + {IR(46955, 24), 753}, // 48 ArbitraryFloatLog2INTEL + {IR(46932, 23), 752}, // 49 ArbitraryFloatLogINTEL + {IR(46362, 24), 740}, // 50 ArbitraryFloatMulALTERA + {IR(46386, 23), 740}, // 51 ArbitraryFloatMulINTEL + {IR(47423, 23), 772}, // 52 ArbitraryFloatPowINTEL + {IR(47470, 24), 774}, // 53 ArbitraryFloatPowNINTEL + {IR(47446, 24), 773}, // 54 ArbitraryFloatPowRINTEL + {IR(46732, 26), 748}, // 55 ArbitraryFloatRSqrtALTERA + {IR(46758, 25), 748}, // 56 ArbitraryFloatRSqrtINTEL + {IR(46681, 26), 747}, // 57 ArbitraryFloatRecipALTERA + {IR(46707, 25), 747}, // 58 ArbitraryFloatRecipINTEL + {IR(47172, 26), 762}, // 59 ArbitraryFloatSinCosINTEL + {IR(46040, 29), 734}, // 60 ArbitraryFloatSinCosPiALTERA + {IR(46069, 28), 734}, // 61 ArbitraryFloatSinCosPiINTEL + {IR(47126, 23), 760}, // 62 ArbitraryFloatSinINTEL + {IR(47198, 25), 763}, // 63 ArbitraryFloatSinPiINTEL + {IR(46883, 25), 751}, // 64 ArbitraryFloatSqrtALTERA + {IR(46908, 24), 751}, // 65 ArbitraryFloatSqrtINTEL + {IR(46315, 24), 739}, // 66 ArbitraryFloatSubALTERA + {IR(46339, 23), 739}, // 67 ArbitraryFloatSubINTEL + {IR(14654, 19), 822}, // 68 ArithmeticFenceEXT + {IR(29260, 12), 61}, // 69 ArrayLength + {IR(40690, 13), 606}, // 70 AsmCallINTEL + {IR(13005, 9), 605}, // 71 AsmINTEL + {IR(40675, 15), 604}, // 72 AsmTargetINTEL + {IR(40731, 14), 609}, // 73 AssumeTrueKHR + {IR(31532, 10), 220}, // 74 AtomicAnd + {IR(31384, 22), 210}, // 75 AtomicCompareExchange + {IR(31406, 26), 211}, // 76 AtomicCompareExchangeWeak + {IR(31369, 15), 209}, // 77 AtomicExchange + {IR(48790, 14), 812}, // 78 AtomicFAddEXT + {IR(40717, 14), 608}, // 79 AtomicFMaxEXT + {IR(40703, 14), 607}, // 80 AtomicFMinEXT + {IR(32917, 16), 292}, // 81 AtomicFlagClear + {IR(32896, 21), 291}, // 82 AtomicFlagTestAndSet + {IR(31466, 11), 214}, // 83 AtomicIAdd + {IR(31449, 17), 213}, // 84 AtomicIDecrement + {IR(31432, 17), 212}, // 85 AtomicIIncrement + {IR(31477, 11), 215}, // 86 AtomicISub + {IR(31346, 11), 207}, // 87 AtomicLoad + {IR(31542, 9), 221}, // 88 AtomicOr + {IR(31510, 11), 218}, // 89 AtomicSMax + {IR(31488, 11), 216}, // 90 AtomicSMin + {IR(31357, 12), 208}, // 91 AtomicStore + {IR(31521, 11), 219}, // 92 AtomicUMax + {IR(31499, 11), 217}, // 93 AtomicUMin + {IR(31551, 10), 222}, // 94 AtomicXor + {IR(38939, 28), 536}, // 95 BeginInvocationInterlockEXT + {IR(35443, 17), 407}, // 96 BitCastArrayQCOM + {IR(31130, 9), 191}, // 97 BitCount + {IR(31070, 15), 187}, // 98 BitFieldInsert + {IR(31085, 17), 188}, // 99 BitFieldSExtract + {IR(31102, 17), 189}, // 100 BitFieldUExtract + {IR(31119, 11), 190}, // 101 BitReverse + {IR(30258, 8), 114}, // 102 Bitcast + {IR(31055, 11), 185}, // 103 BitwiseAnd + {IR(49515, 21), 835}, // 104 BitwiseFunctionINTEL + {IR(31034, 10), 183}, // 105 BitwiseOr + {IR(31044, 11), 184}, // 106 BitwiseXor + {IR(31661, 7), 227}, // 107 Branch + {IR(31668, 18), 228}, // 108 BranchConditional + {IR(32529, 13), 277}, // 109 BuildNDRange + {IR(28274, 11), 15}, // 110 Capability + {IR(32487, 26), 275}, // 111 CaptureEventProfilingInfo + {IR(33993, 23), 344}, // 112 ColorAttachmentReadEXT + {IR(32079, 15), 255}, // 113 CommitReadPipe + {IR(32094, 16), 256}, // 114 CommitWritePipe + {IR(29520, 19), 72}, // 115 CompositeConstruct + {IR(48920, 33), 817}, // 116 CompositeConstructContinuedINTEL + {IR(35576, 30), 412}, // 117 CompositeConstructCoopMatQCOM + {IR(35151, 31), 395}, // 118 CompositeConstructReplicateEXT + {IR(29539, 17), 73}, // 119 CompositeExtract + {IR(35606, 28), 413}, // 120 CompositeExtractCoopMatQCOM + {IR(29556, 16), 74}, // 121 CompositeInsert + {IR(49589, 27), 839}, // 122 ConditionalCapabilityINTEL + {IR(49737, 27), 843}, // 123 ConditionalCopyObjectINTEL + {IR(49562, 27), 838}, // 124 ConditionalEntryPointINTEL + {IR(49536, 26), 837}, // 125 ConditionalExtensionINTEL + {IR(16787, 9), 39}, // 126 Constant + {IR(28780, 18), 40}, // 127 ConstantComposite + {IR(48852, 32), 815}, // 128 ConstantCompositeContinuedINTEL + {IR(35087, 30), 393}, // 129 ConstantCompositeReplicateEXT + {IR(28728, 14), 38}, // 130 ConstantFalse + {IR(40621, 29), 602}, // 131 ConstantFunctionPointerINTEL + {IR(28892, 13), 42}, // 132 ConstantNull + {IR(32972, 20), 296}, // 133 ConstantPipeStorage + {IR(28876, 16), 41}, // 134 ConstantSampler + {IR(36042, 19), 432}, // 135 ConstantStringAMDX + {IR(28715, 13), 37}, // 136 ConstantTrue + {IR(31317, 15), 205}, // 137 ControlBarrier + {IR(48993, 26), 820}, // 138 ControlBarrierArriveINTEL + {IR(49019, 24), 821}, // 139 ControlBarrierWaitINTEL + {IR(48973, 20), 819}, // 140 ConvertBF16ToFINTEL + {IR(48953, 20), 818}, // 141 ConvertFToBF16INTEL + {IR(30064, 12), 100}, // 142 ConvertFToS + {IR(30052, 12), 99}, // 143 ConvertFToU + {IR(49957, 26), 855}, // 144 ConvertHandleToImageINTEL + {IR(50011, 33), 857}, // 145 ConvertHandleToSampledImageINTEL + {IR(49983, 28), 856}, // 146 ConvertHandleToSamplerINTEL + {IR(39588, 18), 559}, // 147 ConvertImageToUNV + {IR(30141, 14), 107}, // 148 ConvertPtrToU + {IR(30076, 12), 101}, // 149 ConvertSToF + {IR(39651, 25), 562}, // 150 ConvertSampledImageToUNV + {IR(39606, 20), 560}, // 151 ConvertSamplerToUNV + {IR(34665, 35), 379}, // 152 ConvertUToAccelerationStructureKHR + {IR(30088, 12), 102}, // 153 ConvertUToF + {IR(39550, 18), 557}, // 154 ConvertUToImageNV + {IR(30185, 14), 110}, // 155 ConvertUToPtr + {IR(39626, 25), 561}, // 156 ConvertUToSampledImageNV + {IR(39568, 20), 558}, // 157 ConvertUToSamplerNV + {IR(37202, 27), 475}, // 158 CooperativeMatrixConvertNV + {IR(35060, 27), 392}, // 159 CooperativeMatrixLengthKHR + {IR(38913, 26), 535}, // 160 CooperativeMatrixLengthNV + {IR(34928, 25), 389}, // 161 CooperativeMatrixLoadKHR + {IR(38838, 24), 532}, // 162 CooperativeMatrixLoadNV + {IR(39137, 30), 539}, // 163 CooperativeMatrixLoadTensorNV + {IR(35033, 27), 391}, // 164 CooperativeMatrixMulAddKHR + {IR(38887, 26), 534}, // 165 CooperativeMatrixMulAddNV + {IR(39198, 32), 541}, // 166 CooperativeMatrixPerElementOpNV + {IR(39036, 26), 538}, // 167 CooperativeMatrixReduceNV + {IR(34953, 26), 390}, // 168 CooperativeMatrixStoreKHR + {IR(38862, 25), 533}, // 169 CooperativeMatrixStoreNV + {IR(39167, 31), 540}, // 170 CooperativeMatrixStoreTensorNV + {IR(39521, 29), 556}, // 171 CooperativeMatrixTransposeNV + {IR(37397, 24), 482}, // 172 CooperativeVectorLoadNV + {IR(37170, 32), 474}, // 173 CooperativeVectorMatrixMulAddNV + {IR(37060, 29), 471}, // 174 CooperativeVectorMatrixMulNV + {IR(37089, 42), 472}, // 175 CooperativeVectorOuterProductAccumulateNV + {IR(37131, 39), 473}, // 176 CooperativeVectorReduceSumAccumulateNV + {IR(37421, 25), 483}, // 177 CooperativeVectorStoreNV + {IR(33952, 12), 340}, // 178 CopyLogical + {IR(29186, 11), 56}, // 179 CopyMemory + {IR(29197, 16), 57}, // 180 CopyMemorySized + {IR(29572, 11), 75}, // 181 CopyObject + {IR(32992, 26), 297}, // 182 CreatePipeFromPipeStorage + {IR(39266, 21), 544}, // 183 CreateTensorLayoutNV + {IR(39386, 19), 549}, // 184 CreateTensorViewNV + {IR(32439, 16), 272}, // 185 CreateUserEvent + {IR(47988, 30), 791}, // 186 CrossWorkgroupCastToPtrALTERA + {IR(48018, 29), 791}, // 187 CrossWorkgroupCastToPtrINTEL + {IR(31139, 5), 192}, // 188 DPdx + {IR(31185, 11), 198}, // 189 DPdxCoarse + {IR(31156, 9), 195}, // 190 DPdxFine + {IR(31144, 5), 193}, // 191 DPdy + {IR(31196, 11), 199}, // 192 DPdyCoarse + {IR(31165, 9), 196}, // 193 DPdyFine + {IR(29346, 9), 64}, // 194 Decorate + {IR(33169, 11), 305}, // 195 DecorateId + {IR(40755, 15), 611}, // 196 DecorateString + {IR(40770, 21), 611}, // 197 DecorateStringGOOGLE + {IR(29370, 16), 66}, // 198 DecorationGroup + {IR(12289, 25), 552}, // 199 DemoteToHelperInvocation + {IR(12314, 28), 552}, // 200 DemoteToHelperInvocationEXT + {IR(34016, 23), 345}, // 201 DepthAttachmentReadEXT + {IR(30455, 4), 137}, // 202 Dot + {IR(37229, 17), 476}, // 203 EmitMeshTasksEXT + {IR(31244, 17), 203}, // 204 EmitStreamVertex + {IR(31220, 11), 201}, // 205 EmitVertex + {IR(38967, 26), 537}, // 206 EndInvocationInterlockEXT + {IR(31231, 13), 202}, // 207 EndPrimitive + {IR(31261, 19), 204}, // 208 EndStreamPrimitive + {IR(32275, 14), 265}, // 209 EnqueueKernel + {IR(32261, 14), 264}, // 210 EnqueueMarker + {IR(35914, 24), 427}, // 211 EnqueueNodePayloadsAMDX + {IR(28189, 11), 13}, // 212 EntryPoint + {IR(34646, 19), 378}, // 213 ExecuteCallableKHR + {IR(38549, 18), 522}, // 214 ExecuteCallableNV + {IR(28232, 14), 14}, // 215 ExecutionMode + {IR(33153, 16), 304}, // 216 ExecutionModeId + {IR(40745, 10), 610}, // 217 ExpectKHR + {IR(28043, 8), 11}, // 218 ExtInst + {IR(27983, 14), 10}, // 219 ExtInstImport + {IR(34583, 26), 375}, // 220 ExtInstWithForwardRefsKHR + {IR(27973, 10), 9}, // 221 Extension + {IR(35634, 20), 414}, // 222 ExtractSubArrayQCOM + {IR(30287, 5), 118}, // 223 FAdd + {IR(30118, 9), 105}, // 224 FConvert + {IR(30322, 5), 125}, // 225 FDiv + {IR(30347, 5), 130}, // 226 FMod + {IR(30307, 5), 122}, // 227 FMul + {IR(30274, 8), 116}, // 228 FNegate + {IR(30784, 10), 168}, // 229 FOrdEqual + {IR(30862, 16), 174}, // 230 FOrdGreaterThan + {IR(30934, 21), 178}, // 231 FOrdGreaterThanEqual + {IR(30834, 13), 172}, // 232 FOrdLessThan + {IR(30896, 18), 176}, // 233 FOrdLessThanEqual + {IR(30806, 13), 170}, // 234 FOrdNotEqual + {IR(14201, 14), 794}, // 235 FPGARegALTERA + {IR(14215, 13), 794}, // 236 FPGARegINTEL + {IR(30342, 5), 129}, // 237 FRem + {IR(30297, 5), 120}, // 238 FSub + {IR(30794, 12), 169}, // 239 FUnordEqual + {IR(30878, 18), 175}, // 240 FUnordGreaterThan + {IR(30955, 23), 179}, // 241 FUnordGreaterThanEqual + {IR(30847, 15), 173}, // 242 FUnordLessThan + {IR(30914, 20), 177}, // 243 FUnordLessThanEqual + {IR(30819, 15), 171}, // 244 FUnordNotEqual + {IR(37359, 38), 481}, // 245 FetchMicroTriangleVertexBarycentricNV + {IR(37324, 35), 480}, // 246 FetchMicroTriangleVertexPositionNV + {IR(35963, 29), 429}, // 247 FinishWritingNodePayloadAMDX + {IR(47702, 15), 783}, // 248 FixedCosALTERA + {IR(47717, 14), 783}, // 249 FixedCosINTEL + {IR(47799, 17), 786}, // 250 FixedCosPiALTERA + {IR(47816, 16), 786}, // 251 FixedCosPiINTEL + {IR(47900, 15), 789}, // 252 FixedExpALTERA + {IR(47915, 14), 789}, // 253 FixedExpINTEL + {IR(47871, 15), 788}, // 254 FixedLogALTERA + {IR(47886, 14), 788}, // 255 FixedLogINTEL + {IR(47607, 17), 780}, // 256 FixedRecipALTERA + {IR(47624, 16), 780}, // 257 FixedRecipINTEL + {IR(47640, 17), 781}, // 258 FixedRsqrtALTERA + {IR(47657, 16), 781}, // 259 FixedRsqrtINTEL + {IR(47673, 15), 782}, // 260 FixedSinALTERA + {IR(47731, 18), 784}, // 261 FixedSinCosALTERA + {IR(47749, 17), 784}, // 262 FixedSinCosINTEL + {IR(47832, 20), 787}, // 263 FixedSinCosPiALTERA + {IR(47852, 19), 787}, // 264 FixedSinCosPiINTEL + {IR(47688, 14), 782}, // 265 FixedSinINTEL + {IR(47766, 17), 785}, // 266 FixedSinPiALTERA + {IR(47783, 16), 785}, // 267 FixedSinPiINTEL + {IR(47576, 16), 779}, // 268 FixedSqrtALTERA + {IR(47592, 15), 779}, // 269 FixedSqrtINTEL + {IR(34500, 7), 369}, // 270 FmaKHR + {IR(35859, 17), 424}, // 271 FragmentFetchAMD + {IR(35838, 21), 423}, // 272 FragmentMaskFetchAMD + {IR(27039, 9), 48}, // 273 Function + {IR(29095, 13), 51}, // 274 FunctionCall + {IR(29083, 12), 50}, // 275 FunctionEnd + {IR(29065, 18), 49}, // 276 FunctionParameter + {IR(40650, 25), 603}, // 277 FunctionPointerCallINTEL + {IR(31149, 7), 194}, // 278 Fwidth + {IR(31207, 13), 200}, // 279 FwidthCoarse + {IR(31174, 11), 197}, // 280 FwidthFine + {IR(30216, 17), 112}, // 281 GenericCastToPtr + {IR(30233, 25), 113}, // 282 GenericCastToPtrExplicit + {IR(29272, 23), 62}, // 283 GenericPtrMemSemantics + {IR(32513, 16), 276}, // 284 GetDefaultQueue + {IR(33018, 35), 298}, // 285 GetKernelLocalSizeForSubgroupCount + {IR(33053, 25), 299}, // 286 GetKernelMaxNumSubgroups + {IR(32319, 32), 267}, // 287 GetKernelNDrangeMaxSubGroupSize + {IR(32289, 30), 266}, // 288 GetKernelNDrangeSubGroupCount + {IR(32374, 40), 269}, // 289 GetKernelPreferredWorkGroupSizeMultiple + {IR(32351, 23), 268}, // 290 GetKernelWorkGroupSize + {IR(32145, 18), 259}, // 291 GetMaxPipePackets + {IR(32127, 18), 258}, // 292 GetNumPipePackets + {IR(9758, 9), 353}, // 293 GraphARM + {IR(34168, 17), 351}, // 294 GraphConstantARM + {IR(34236, 12), 356}, // 295 GraphEndARM + {IR(34185, 19), 352}, // 296 GraphEntryPointARM + {IR(34204, 14), 354}, // 297 GraphInputARM + {IR(34218, 18), 355}, // 298 GraphSetOutputARM + {IR(31832, 9), 238}, // 299 GroupAll + {IR(31841, 9), 239}, // 300 GroupAny + {IR(31801, 15), 236}, // 301 GroupAsyncCopy + {IR(49790, 19), 846}, // 302 GroupBitwiseAndKHR + {IR(49809, 18), 847}, // 303 GroupBitwiseOrKHR + {IR(49827, 19), 848}, // 304 GroupBitwiseXorKHR + {IR(31850, 15), 240}, // 305 GroupBroadcast + {IR(32220, 20), 262}, // 306 GroupCommitReadPipe + {IR(32240, 21), 263}, // 307 GroupCommitWritePipe + {IR(29386, 14), 67}, // 308 GroupDecorate + {IR(31908, 10), 242}, // 309 GroupFAdd + {IR(35677, 23), 416}, // 310 GroupFAddNonUniformAMD + {IR(31948, 10), 246}, // 311 GroupFMax + {IR(35769, 23), 420}, // 312 GroupFMaxNonUniformAMD + {IR(31918, 10), 243}, // 313 GroupFMin + {IR(35700, 23), 417}, // 314 GroupFMinNonUniformAMD + {IR(49777, 13), 845}, // 315 GroupFMulKHR + {IR(31898, 10), 241}, // 316 GroupIAdd + {IR(35654, 23), 415}, // 317 GroupIAddNonUniformAMD + {IR(49764, 13), 844}, // 318 GroupIMulKHR + {IR(49846, 19), 849}, // 319 GroupLogicalAndKHR + {IR(49865, 18), 850}, // 320 GroupLogicalOrKHR + {IR(49883, 19), 851}, // 321 GroupLogicalXorKHR + {IR(29445, 20), 68}, // 322 GroupMemberDecorate + {IR(33201, 19), 307}, // 323 GroupNonUniformAll + {IR(33239, 24), 309}, // 324 GroupNonUniformAllEqual + {IR(33220, 19), 308}, // 325 GroupNonUniformAny + {IR(6377, 22), 312}, // 326 GroupNonUniformBallot + {IR(33379, 30), 315}, // 327 GroupNonUniformBallotBitCount + {IR(33347, 32), 314}, // 328 GroupNonUniformBallotBitExtract + {IR(33409, 29), 316}, // 329 GroupNonUniformBallotFindLSB + {IR(33438, 29), 317}, // 330 GroupNonUniformBallotFindMSB + {IR(33745, 26), 332}, // 331 GroupNonUniformBitwiseAnd + {IR(33771, 25), 333}, // 332 GroupNonUniformBitwiseOr + {IR(33796, 26), 334}, // 333 GroupNonUniformBitwiseXor + {IR(33263, 25), 310}, // 334 GroupNonUniformBroadcast + {IR(33288, 30), 311}, // 335 GroupNonUniformBroadcastFirst + {IR(33180, 21), 306}, // 336 GroupNonUniformElect + {IR(33565, 20), 323}, // 337 GroupNonUniformFAdd + {IR(33725, 20), 331}, // 338 GroupNonUniformFMax + {IR(33665, 20), 328}, // 339 GroupNonUniformFMin + {IR(33605, 20), 325}, // 340 GroupNonUniformFMul + {IR(33545, 20), 322}, // 341 GroupNonUniformIAdd + {IR(33585, 20), 324}, // 342 GroupNonUniformIMul + {IR(33318, 29), 313}, // 343 GroupNonUniformInverseBallot + {IR(33822, 26), 335}, // 344 GroupNonUniformLogicalAnd + {IR(33848, 25), 336}, // 345 GroupNonUniformLogicalOr + {IR(33873, 26), 337}, // 346 GroupNonUniformLogicalXor + {IR(37264, 27), 478}, // 347 GroupNonUniformPartitionNV + {IR(36084, 26), 434}, // 348 GroupNonUniformQuadAllKHR + {IR(36110, 26), 435}, // 349 GroupNonUniformQuadAnyKHR + {IR(33899, 29), 338}, // 350 GroupNonUniformQuadBroadcast + {IR(33928, 24), 339}, // 351 GroupNonUniformQuadSwap + {IR(14440, 25), 373}, // 352 GroupNonUniformRotateKHR + {IR(33685, 20), 329}, // 353 GroupNonUniformSMax + {IR(33625, 20), 326}, // 354 GroupNonUniformSMin + {IR(9467, 23), 318}, // 355 GroupNonUniformShuffle + {IR(33518, 27), 321}, // 356 GroupNonUniformShuffleDown + {IR(33493, 25), 320}, // 357 GroupNonUniformShuffleUp + {IR(33467, 26), 319}, // 358 GroupNonUniformShuffleXor + {IR(33705, 20), 330}, // 359 GroupNonUniformUMax + {IR(33645, 20), 327}, // 360 GroupNonUniformUMin + {IR(32163, 28), 260}, // 361 GroupReserveReadPipePackets + {IR(32191, 29), 261}, // 362 GroupReserveWritePipePackets + {IR(31968, 10), 248}, // 363 GroupSMax + {IR(35815, 23), 422}, // 364 GroupSMaxNonUniformAMD + {IR(31938, 10), 245}, // 365 GroupSMin + {IR(35746, 23), 419}, // 366 GroupSMinNonUniformAMD + {IR(31958, 10), 247}, // 367 GroupUMax + {IR(35792, 23), 421}, // 368 GroupUMaxNonUniformAMD + {IR(31928, 10), 244}, // 369 GroupUMin + {IR(35723, 23), 418}, // 370 GroupUMinNonUniformAMD + {IR(31816, 16), 237}, // 371 GroupWaitEvents + {IR(37893, 26), 499}, // 372 HitObjectExecuteShaderEXT + {IR(36571, 25), 451}, // 373 HitObjectExecuteShaderNV + {IR(37946, 26), 501}, // 374 HitObjectGetAttributesEXT + {IR(36622, 25), 453}, // 375 HitObjectGetAttributesNV + {IR(38625, 24), 524}, // 376 HitObjectGetClusterIdNV + {IR(37919, 27), 500}, // 377 HitObjectGetCurrentTimeEXT + {IR(36596, 26), 452}, // 378 HitObjectGetCurrentTimeNV + {IR(38025, 29), 504}, // 379 HitObjectGetGeometryIndexEXT + {IR(36698, 28), 456}, // 380 HitObjectGetGeometryIndexNV + {IR(37972, 23), 502}, // 381 HitObjectGetHitKindEXT + {IR(36647, 22), 454}, // 382 HitObjectGetHitKindNV + {IR(38080, 35), 506}, // 383 HitObjectGetInstanceCustomIndexEXT + {IR(36751, 34), 458}, // 384 HitObjectGetInstanceCustomIndexNV + {IR(38054, 26), 505}, // 385 HitObjectGetInstanceIdEXT + {IR(36726, 25), 457}, // 386 HitObjectGetInstanceIdNV + {IR(37526, 51), 487}, // 387 HitObjectGetIntersectionTriangleVertexPositionsEXT + {IR(40017, 27), 572}, // 388 HitObjectGetLSSPositionsNV + {IR(40044, 23), 573}, // 389 HitObjectGetLSSRadiiNV + {IR(38146, 34), 508}, // 390 HitObjectGetObjectRayDirectionEXT + {IR(36283, 33), 441}, // 391 HitObjectGetObjectRayDirectionNV + {IR(38115, 31), 507}, // 392 HitObjectGetObjectRayOriginEXT + {IR(36316, 30), 442}, // 393 HitObjectGetObjectRayOriginNV + {IR(38243, 29), 511}, // 394 HitObjectGetObjectToWorldEXT + {IR(36255, 28), 440}, // 395 HitObjectGetObjectToWorldNV + {IR(37995, 30), 503}, // 396 HitObjectGetPrimitiveIndexEXT + {IR(36669, 29), 455}, // 397 HitObjectGetPrimitiveIndexNV + {IR(37577, 24), 488}, // 398 HitObjectGetRayFlagsEXT + {IR(38301, 23), 513}, // 399 HitObjectGetRayTMaxEXT + {IR(36846, 22), 461}, // 400 HitObjectGetRayTMaxNV + {IR(38649, 23), 525}, // 401 HitObjectGetRayTMinEXT + {IR(36868, 22), 462}, // 402 HitObjectGetRayTMinNV + {IR(38672, 45), 526}, // 403 HitObjectGetShaderBindingTableRecordIndexEXT + {IR(36411, 44), 445}, // 404 HitObjectGetShaderBindingTableRecordIndexNV + {IR(38717, 40), 527}, // 405 HitObjectGetShaderRecordBufferHandleEXT + {IR(36372, 39), 444}, // 406 HitObjectGetShaderRecordBufferHandleNV + {IR(39961, 29), 570}, // 407 HitObjectGetSpherePositionNV + {IR(39990, 27), 571}, // 408 HitObjectGetSphereRadiusNV + {IR(38180, 33), 509}, // 409 HitObjectGetWorldRayDirectionEXT + {IR(36785, 32), 459}, // 410 HitObjectGetWorldRayDirectionNV + {IR(38213, 30), 510}, // 411 HitObjectGetWorldRayOriginEXT + {IR(36817, 29), 460}, // 412 HitObjectGetWorldRayOriginNV + {IR(38272, 29), 512}, // 413 HitObjectGetWorldToObjectEXT + {IR(36227, 28), 439}, // 414 HitObjectGetWorldToObjectNV + {IR(38757, 20), 528}, // 415 HitObjectIsEmptyEXT + {IR(36890, 19), 463}, // 416 HitObjectIsEmptyNV + {IR(38777, 18), 529}, // 417 HitObjectIsHitEXT + {IR(36909, 17), 464}, // 418 HitObjectIsHitNV + {IR(40090, 20), 575}, // 419 HitObjectIsLSSHitNV + {IR(38795, 19), 530}, // 420 HitObjectIsMissEXT + {IR(36926, 18), 465}, // 421 HitObjectIsMissNV + {IR(40067, 23), 574}, // 422 HitObjectIsSphereHitNV + {IR(37869, 24), 498}, // 423 HitObjectRecordEmptyEXT + {IR(36455, 23), 446}, // 424 HitObjectRecordEmptyNV + {IR(37446, 28), 484}, // 425 HitObjectRecordFromQueryEXT + {IR(36136, 27), 436}, // 426 HitObjectRecordHitMotionNV + {IR(36498, 21), 448}, // 427 HitObjectRecordHitNV + {IR(36163, 36), 437}, // 428 HitObjectRecordHitWithIndexMotionNV + {IR(36519, 30), 449}, // 429 HitObjectRecordHitWithIndexNV + {IR(37474, 23), 485}, // 430 HitObjectRecordMissEXT + {IR(37497, 29), 486}, // 431 HitObjectRecordMissMotionEXT + {IR(36199, 28), 438}, // 432 HitObjectRecordMissMotionNV + {IR(36549, 22), 450}, // 433 HitObjectRecordMissNV + {IR(37646, 33), 490}, // 434 HitObjectReorderExecuteShaderEXT + {IR(37601, 45), 489}, // 435 HitObjectSetShaderBindingTableRecordIndexEXT + {IR(37711, 38), 492}, // 436 HitObjectTraceMotionReorderExecuteEXT + {IR(37821, 21), 496}, // 437 HitObjectTraceRayEXT + {IR(37842, 27), 497}, // 438 HitObjectTraceRayMotionEXT + {IR(36346, 26), 443}, // 439 HitObjectTraceRayMotionNV + {IR(36478, 20), 447}, // 440 HitObjectTraceRayNV + {IR(37679, 32), 491}, // 441 HitObjectTraceReorderExecuteEXT + {IR(30282, 5), 117}, // 442 IAdd + {IR(30459, 10), 138}, // 443 IAddCarry + {IR(40469, 13), 592}, // 444 IAddSatINTEL + {IR(40495, 14), 594}, // 445 IAverageINTEL + {IR(40523, 21), 596}, // 446 IAverageRoundedINTEL + {IR(30655, 7), 158}, // 447 IEqual + {IR(30302, 5), 121}, // 448 IMul + {IR(40591, 15), 600}, // 449 IMul32x16INTEL + {IR(30662, 10), 159}, // 450 INotEqual + {IR(30292, 5), 119}, // 451 ISub + {IR(30469, 11), 139}, // 452 ISubBorrow + {IR(40565, 13), 598}, // 453 ISubSatINTEL + {IR(34700, 22), 380}, // 454 IgnoreIntersectionKHR + {IR(38367, 21), 515}, // 455 IgnoreIntersectionNV + {IR(27083, 6), 91}, // 456 Image + {IR(35547, 29), 411}, // 457 ImageBlockMatchGatherSADQCOM + {IR(35518, 29), 410}, // 458 ImageBlockMatchGatherSSDQCOM + {IR(35420, 23), 406}, // 459 ImageBlockMatchSADQCOM + {IR(35397, 23), 405}, // 460 ImageBlockMatchSSDQCOM + {IR(35489, 29), 409}, // 461 ImageBlockMatchWindowSADQCOM + {IR(35460, 29), 408}, // 462 ImageBlockMatchWindowSSDQCOM + {IR(35378, 19), 404}, // 463 ImageBoxFilterQCOM + {IR(29900, 16), 88}, // 464 ImageDrefGather + {IR(29877, 11), 86}, // 465 ImageFetch + {IR(29888, 12), 87}, // 466 ImageGather + {IR(29937, 17), 92}, // 467 ImageQueryFormat + {IR(30017, 17), 97}, // 468 ImageQueryLevels + {IR(30003, 14), 96}, // 469 ImageQueryLod + {IR(29954, 16), 93}, // 470 ImageQueryOrder + {IR(30034, 18), 98}, // 471 ImageQuerySamples + {IR(29988, 15), 95}, // 472 ImageQuerySize + {IR(29970, 18), 94}, // 473 ImageQuerySizeLod + {IR(29916, 10), 89}, // 474 ImageRead + {IR(29734, 27), 81}, // 475 ImageSampleDrefExplicitLod + {IR(29707, 27), 80}, // 476 ImageSampleDrefImplicitLod + {IR(29684, 23), 79}, // 477 ImageSampleExplicitLod + {IR(37013, 23), 469}, // 478 ImageSampleFootprintNV + {IR(29638, 23), 78}, // 479 ImageSampleImplicitLod + {IR(29846, 31), 85}, // 480 ImageSampleProjDrefExplicitLod + {IR(29815, 31), 84}, // 481 ImageSampleProjDrefImplicitLod + {IR(29788, 27), 83}, // 482 ImageSampleProjExplicitLod + {IR(29761, 27), 82}, // 483 ImageSampleProjImplicitLod + {IR(35354, 24), 403}, // 484 ImageSampleWeightedQCOM + {IR(32841, 22), 288}, // 485 ImageSparseDrefGather + {IR(32806, 17), 286}, // 486 ImageSparseFetch + {IR(32823, 18), 287}, // 487 ImageSparseGather + {IR(32933, 16), 293}, // 488 ImageSparseRead + {IR(32633, 33), 281}, // 489 ImageSparseSampleDrefExplicitLod + {IR(32600, 33), 280}, // 490 ImageSparseSampleDrefImplicitLod + {IR(32571, 29), 279}, // 491 ImageSparseSampleExplicitLod + {IR(32542, 29), 278}, // 492 ImageSparseSampleImplicitLod + {IR(32769, 37), 285}, // 493 ImageSparseSampleProjDrefExplicitLod + {IR(32732, 37), 284}, // 494 ImageSparseSampleProjDrefImplicitLod + {IR(32699, 33), 283}, // 495 ImageSparseSampleProjExplicitLod + {IR(32666, 33), 282}, // 496 ImageSparseSampleProjImplicitLod + {IR(32863, 26), 289}, // 497 ImageSparseTexelsResident + {IR(29117, 18), 53}, // 498 ImageTexelPointer + {IR(29926, 11), 90}, // 499 ImageWrite + {IR(29225, 20), 59}, // 500 InBoundsAccessChain + {IR(29295, 23), 63}, // 501 InBoundsPtrAccessChain + {IR(30526, 9), 146}, // 502 IsFinite + {IR(39452, 22), 553}, // 503 IsHelperInvocationEXT + {IR(30520, 6), 145}, // 504 IsInf + {IR(30514, 6), 144}, // 505 IsNan + {IR(36019, 23), 431}, // 506 IsNodePayloadValidAMDX + {IR(30535, 9), 147}, // 507 IsNormal + {IR(32455, 13), 273}, // 508 IsValidEvent + {IR(32110, 17), 257}, // 509 IsValidReserveId + {IR(31738, 5), 230}, // 510 Kill + {IR(31655, 6), 226}, // 511 Label + {IR(30555, 14), 149}, // 512 LessOrGreater + {IR(31774, 14), 234}, // 513 LifetimeStart + {IR(31788, 13), 235}, // 514 LifetimeStop + {IR(27968, 5), 8}, // 515 Line + {IR(29175, 5), 54}, // 516 Load + {IR(30626, 11), 155}, // 517 LogicalAnd + {IR(30587, 13), 152}, // 518 LogicalEqual + {IR(30637, 11), 156}, // 519 LogicalNot + {IR(30600, 16), 153}, // 520 LogicalNotEqual + {IR(30616, 10), 154}, // 521 LogicalOr + {IR(47494, 17), 775}, // 522 LoopControlINTEL + {IR(31595, 10), 224}, // 523 LoopMerge + {IR(49920, 18), 853}, // 524 MaskedGatherINTEL + {IR(49938, 19), 854}, // 525 MaskedScatterINTEL + {IR(30424, 18), 135}, // 526 MatrixTimesMatrix + {IR(30370, 18), 132}, // 527 MatrixTimesScalar + {IR(30406, 18), 134}, // 528 MatrixTimesVector + {IR(29355, 15), 65}, // 529 MemberDecorate + {IR(40791, 21), 612}, // 530 MemberDecorateString + {IR(40812, 27), 612}, // 531 MemberDecorateStringGOOGLE + {IR(27950, 11), 6}, // 532 MemberName + {IR(31332, 14), 206}, // 533 MemoryBarrier + {IR(28115, 12), 12}, // 534 MemoryModel + {IR(33118, 19), 302}, // 535 MemoryNamedBarrier + {IR(33137, 16), 303}, // 536 ModuleProcessed + {IR(27945, 5), 5}, // 537 Name + {IR(33095, 23), 301}, // 538 NamedBarrierInitialize + {IR(32889, 7), 290}, // 539 NoLine + {IR(35992, 27), 430}, // 540 NodePayloadArrayLengthAMDX + {IR(27741, 4), 0}, // 541 Nop + {IR(31066, 4), 186}, // 542 Not + {IR(30569, 8), 150}, // 543 Ordered + {IR(30442, 13), 136}, // 544 OuterProduct + {IR(31561, 4), 223}, // 545 Phi + {IR(29245, 15), 60}, // 546 PtrAccessChain + {IR(47929, 30), 790}, // 547 PtrCastToCrossWorkgroupALTERA + {IR(47959, 29), 790}, // 548 PtrCastToCrossWorkgroupINTEL + {IR(30199, 17), 111}, // 549 PtrCastToGeneric + {IR(33985, 8), 343}, // 550 PtrDiff + {IR(33964, 9), 341}, // 551 PtrEqual + {IR(33973, 12), 342}, // 552 PtrNotEqual + {IR(30127, 14), 106}, // 553 QuantizeToF16 + {IR(39757, 17), 564}, // 554 RawAccessChainNV + {IR(35273, 31), 400}, // 555 RayQueryConfirmIntersectionKHR + {IR(35241, 32), 399}, // 556 RayQueryGenerateIntersectionKHR + {IR(38602, 23), 523}, // 557 RayQueryGetClusterIdNV + {IR(48441, 39), 803}, // 558 RayQueryGetIntersectionBarycentricsKHR + {IR(48516, 46), 805}, // 559 RayQueryGetIntersectionCandidateAABBOpaqueKHR + {IR(38567, 35), 523}, // 560 RayQueryGetIntersectionClusterIdNV + {IR(48480, 36), 804}, // 561 RayQueryGetIntersectionFrontFaceKHR + {IR(48360, 40), 801}, // 562 RayQueryGetIntersectionGeometryIndexKHR + {IR(48212, 46), 798}, // 563 RayQueryGetIntersectionInstanceCustomIndexKHR + {IR(48258, 37), 799}, // 564 RayQueryGetIntersectionInstanceIdKHR + {IR(48295, 65), 800}, // 565 RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR + {IR(39924, 37), 569}, // 566 RayQueryGetIntersectionLSSHitValueNV + {IR(39852, 38), 567}, // 567 RayQueryGetIntersectionLSSPositionsNV + {IR(39890, 34), 568}, // 568 RayQueryGetIntersectionLSSRadiiNV + {IR(48562, 45), 806}, // 569 RayQueryGetIntersectionObjectRayDirectionKHR + {IR(48607, 42), 807}, // 570 RayQueryGetIntersectionObjectRayOriginKHR + {IR(48710, 40), 810}, // 571 RayQueryGetIntersectionObjectToWorldKHR + {IR(48400, 41), 802}, // 572 RayQueryGetIntersectionPrimitiveIndexKHR + {IR(39774, 40), 565}, // 573 RayQueryGetIntersectionSpherePositionNV + {IR(39814, 38), 566}, // 574 RayQueryGetIntersectionSphereRadiusNV + {IR(48184, 28), 797}, // 575 RayQueryGetIntersectionTKHR + {IR(38442, 50), 520}, // 576 RayQueryGetIntersectionTriangleVertexPositionsKHR + {IR(35323, 31), 402}, // 577 RayQueryGetIntersectionTypeKHR + {IR(48750, 40), 811}, // 578 RayQueryGetIntersectionWorldToObjectKHR + {IR(48161, 23), 796}, // 579 RayQueryGetRayFlagsKHR + {IR(48139, 22), 795}, // 580 RayQueryGetRayTMinKHR + {IR(48649, 32), 808}, // 581 RayQueryGetWorldRayDirectionKHR + {IR(48681, 29), 809}, // 582 RayQueryGetWorldRayOriginKHR + {IR(35198, 22), 397}, // 583 RayQueryInitializeKHR + {IR(40132, 19), 577}, // 584 RayQueryIsLSSHitNV + {IR(40110, 22), 576}, // 585 RayQueryIsSphereHitNV + {IR(35304, 19), 401}, // 586 RayQueryProceedKHR + {IR(35220, 21), 398}, // 587 RayQueryTerminateKHR + {IR(35876, 13), 425}, // 588 ReadClockKHR + {IR(31978, 9), 249}, // 589 ReadPipe + {IR(48047, 23), 792}, // 590 ReadPipeBlockingALTERA + {IR(48070, 22), 792}, // 591 ReadPipeBlockingINTEL + {IR(32426, 13), 271}, // 592 ReleaseEvent + {IR(37766, 25), 494}, // 593 ReorderThreadWithHintEXT + {IR(36973, 24), 467}, // 594 ReorderThreadWithHintNV + {IR(37791, 30), 495}, // 595 ReorderThreadWithHitObjectEXT + {IR(36944, 29), 466}, // 596 ReorderThreadWithHitObjectNV + {IR(38324, 22), 514}, // 597 ReportIntersectionKHR + {IR(38346, 21), 514}, // 598 ReportIntersectionNV + {IR(32032, 23), 253}, // 599 ReserveReadPipePackets + {IR(32055, 24), 254}, // 600 ReserveWritePipePackets + {IR(31997, 17), 251}, // 601 ReservedReadPipe + {IR(32014, 18), 252}, // 602 ReservedWritePipe + {IR(46021, 19), 733}, // 603 RestoreMemoryINTEL + {IR(32414, 12), 270}, // 604 RetainEvent + {IR(31743, 7), 231}, // 605 Return + {IR(31750, 12), 232}, // 606 ReturnValue + {IR(49902, 18), 852}, // 607 RoundFToTF32INTEL + {IR(30109, 9), 104}, // 608 SConvert + {IR(30317, 5), 124}, // 609 SDiv + {IR(34785, 5), 382}, // 610 SDot + {IR(34826, 11), 385}, // 611 SDotAccSat + {IR(34837, 14), 385}, // 612 SDotAccSatKHR + {IR(34790, 8), 382}, // 613 SDotKHR + {IR(30685, 13), 161}, // 614 SGreaterThan + {IR(30716, 18), 163}, // 615 SGreaterThanEqual + {IR(30744, 10), 165}, // 616 SLessThan + {IR(30769, 15), 167}, // 617 SLessThanEqual + {IR(30337, 5), 128}, // 618 SMod + {IR(30493, 13), 141}, // 619 SMulExtended + {IR(30266, 8), 115}, // 620 SNegate + {IR(30332, 5), 127}, // 621 SRem + {IR(34811, 6), 384}, // 622 SUDot + {IR(34876, 12), 387}, // 623 SUDotAccSat + {IR(34888, 15), 387}, // 624 SUDotAccSatKHR + {IR(34817, 9), 384}, // 625 SUDotKHR + {IR(29593, 13), 77}, // 626 SampledImage + {IR(39676, 29), 563}, // 627 SamplerImageAddressingModeNV + {IR(30155, 15), 108}, // 628 SatConvertSToU + {IR(30170, 15), 109}, // 629 SatConvertUToS + {IR(46005, 16), 732}, // 630 SaveMemoryINTEL + {IR(30648, 7), 157}, // 631 Select + {IR(31640, 15), 225}, // 632 SelectionMerge + {IR(37246, 18), 477}, // 633 SetMeshOutputsEXT + {IR(32468, 19), 274}, // 634 SetUserEventStatus + {IR(31017, 17), 182}, // 635 ShiftLeftLogical + {IR(30996, 21), 181}, // 636 ShiftRightArithmetic + {IR(30978, 18), 180}, // 637 ShiftRightLogical + {IR(30544, 11), 148}, // 638 SignBitSet + {IR(32949, 7), 294}, // 639 SizeOf + {IR(27922, 7), 3}, // 640 Source + {IR(27803, 16), 2}, // 641 SourceContinued + {IR(27929, 16), 4}, // 642 SourceExtension + {IR(28940, 13), 45}, // 643 SpecConstant + {IR(49640, 30), 841}, // 644 SpecConstantArchitectureINTEL + {IR(49707, 30), 842}, // 645 SpecConstantCapabilitiesINTEL + {IR(28953, 22), 46}, // 646 SpecConstantComposite + {IR(48884, 36), 816}, // 647 SpecConstantCompositeContinuedINTEL + {IR(35117, 34), 394}, // 648 SpecConstantCompositeReplicateEXT + {IR(28922, 18), 44}, // 649 SpecConstantFalse + {IR(29016, 15), 47}, // 650 SpecConstantOp + {IR(36061, 23), 433}, // 651 SpecConstantStringAMDX + {IR(49616, 24), 840}, // 652 SpecConstantTargetINTEL + {IR(28905, 17), 43}, // 653 SpecConstantTrue + {IR(34039, 25), 346}, // 654 StencilAttachmentReadEXT + {IR(29180, 6), 55}, // 655 Store + {IR(27961, 7), 7}, // 656 String + {IR(49305, 25), 829}, // 657 Subgroup2DBlockLoadINTEL + {IR(49330, 34), 830}, // 658 Subgroup2DBlockLoadTransformINTEL + {IR(49364, 34), 831}, // 659 Subgroup2DBlockLoadTransposeINTEL + {IR(49398, 29), 832}, // 660 Subgroup2DBlockPrefetchINTEL + {IR(49427, 26), 833}, // 661 Subgroup2DBlockStoreINTEL + {IR(34537, 20), 372}, // 662 SubgroupAllEqualKHR + {IR(34507, 15), 370}, // 663 SubgroupAllKHR + {IR(34522, 15), 371}, // 664 SubgroupAnyKHR + {IR(44523, 30), 696}, // 665 SubgroupAvcBmeInitializeINTEL + {IR(44493, 30), 695}, // 666 SubgroupAvcFmeInitializeINTEL + {IR(42928, 35), 665}, // 667 SubgroupAvcImeAdjustRefOffsetINTEL + {IR(42963, 39), 666}, // 668 SubgroupAvcImeConvertToMcePayloadINTEL + {IR(43604, 38), 679}, // 669 SubgroupAvcImeConvertToMceResultINTEL + {IR(43227, 45), 672}, // 670 SubgroupAvcImeEvaluateWithDualReferenceINTEL + {IR(43327, 53), 674}, // 671 SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL + {IR(43548, 56), 678}, // 672 SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL + {IR(43436, 54), 676}, // 673 SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL + {IR(43180, 47), 671}, // 674 SubgroupAvcImeEvaluateWithSingleReferenceINTEL + {IR(43272, 55), 673}, // 675 SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL + {IR(43490, 58), 677}, // 676 SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL + {IR(43380, 56), 675}, // 677 SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL + {IR(44236, 36), 690}, // 678 SubgroupAvcImeGetBorderReachedINTEL + {IR(43688, 44), 681}, // 679 SubgroupAvcImeGetDualReferenceStreaminINTEL + {IR(43642, 46), 680}, // 680 SubgroupAvcImeGetSingleReferenceStreaminINTEL + {IR(44103, 66), 688}, // 681 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL + {IR(44035, 68), 687}, // 682 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL + {IR(44169, 67), 689}, // 683 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL + {IR(43898, 68), 685}, // 684 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL + {IR(43828, 70), 684}, // 685 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL + {IR(43966, 69), 686}, // 686 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL + {IR(44272, 48), 691}, // 687 SubgroupAvcImeGetTruncatedSearchIndicationINTEL + {IR(44320, 59), 692}, // 688 SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL + {IR(44437, 56), 694}, // 689 SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL + {IR(44379, 58), 693}, // 690 SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL + {IR(42791, 30), 661}, // 691 SubgroupAvcImeInitializeINTEL + {IR(42895, 33), 664}, // 692 SubgroupAvcImeRefWindowSizeINTEL + {IR(42859, 36), 663}, // 693 SubgroupAvcImeSetDualReferenceINTEL + {IR(43092, 54), 669}, // 694 SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL + {IR(43002, 43), 667}, // 695 SubgroupAvcImeSetMaxMotionVectorCountINTEL + {IR(42821, 38), 662}, // 696 SubgroupAvcImeSetSingleReferenceINTEL + {IR(43045, 47), 668}, // 697 SubgroupAvcImeSetUnidirectionalMixDisableINTEL + {IR(43146, 34), 670}, // 698 SubgroupAvcImeSetWeightedSadINTEL + {IR(43781, 47), 683}, // 699 SubgroupAvcImeStripDualReferenceStreamoutINTEL + {IR(43732, 49), 682}, // 700 SubgroupAvcImeStripSingleReferenceStreamoutINTEL + {IR(42181, 39), 646}, // 701 SubgroupAvcMceConvertToImePayloadINTEL + {IR(42220, 38), 647}, // 702 SubgroupAvcMceConvertToImeResultINTEL + {IR(42258, 39), 648}, // 703 SubgroupAvcMceConvertToRefPayloadINTEL + {IR(42297, 38), 649}, // 704 SubgroupAvcMceConvertToRefResultINTEL + {IR(42335, 39), 650}, // 705 SubgroupAvcMceConvertToSicPayloadINTEL + {IR(42374, 38), 651}, // 706 SubgroupAvcMceConvertToSicResultINTEL + {IR(42487, 43), 654}, // 707 SubgroupAvcMceGetBestInterDistortionsINTEL + {IR(41619, 50), 635}, // 708 SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL + {IR(41217, 60), 627}, // 709 SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL + {IR(41417, 51), 631}, // 710 SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL + {IR(41563, 56), 634}, // 711 SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL + {IR(41330, 47), 629}, // 712 SubgroupAvcMceGetDefaultInterShapePenaltyINTEL + {IR(41918, 56), 641}, // 713 SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL + {IR(41817, 50), 639}, // 714 SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL + {IR(41512, 51), 633}, // 715 SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL + {IR(41721, 49), 637}, // 716 SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL + {IR(41669, 52), 636}, // 717 SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL + {IR(41867, 51), 640}, // 718 SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL + {IR(42606, 38), 657}, // 719 SubgroupAvcMceGetInterDirectionsINTEL + {IR(42448, 39), 653}, // 720 SubgroupAvcMceGetInterDistortionsINTEL + {IR(42530, 38), 655}, // 721 SubgroupAvcMceGetInterMajorShapeINTEL + {IR(42568, 38), 656}, // 722 SubgroupAvcMceGetInterMinorShapeINTEL + {IR(42644, 45), 658}, // 723 SubgroupAvcMceGetInterMotionVectorCountINTEL + {IR(42689, 40), 659}, // 724 SubgroupAvcMceGetInterReferenceIdsINTEL + {IR(42729, 62), 660}, // 725 SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL + {IR(42412, 36), 652}, // 726 SubgroupAvcMceGetMotionVectorsINTEL + {IR(41974, 33), 642}, // 727 SubgroupAvcMceSetAcOnlyHaarINTEL + {IR(42120, 61), 645}, // 728 SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL + {IR(41277, 53), 628}, // 729 SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL + {IR(41468, 44), 632}, // 730 SubgroupAvcMceSetInterDirectionPenaltyINTEL + {IR(41377, 40), 630}, // 731 SubgroupAvcMceSetInterShapePenaltyINTEL + {IR(41770, 47), 638}, // 732 SubgroupAvcMceSetMotionVectorCostFunctionINTEL + {IR(42059, 61), 644}, // 733 SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL + {IR(42007, 52), 643}, // 734 SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL + {IR(44553, 39), 697}, // 735 SubgroupAvcRefConvertToMcePayloadINTEL + {IR(44875, 38), 704}, // 736 SubgroupAvcRefConvertToMceResultINTEL + {IR(44728, 45), 701}, // 737 SubgroupAvcRefEvaluateWithDualReferenceINTEL + {IR(44773, 46), 702}, // 738 SubgroupAvcRefEvaluateWithMultiReferenceINTEL + {IR(44819, 56), 703}, // 739 SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL + {IR(44681, 47), 700}, // 740 SubgroupAvcRefEvaluateWithSingleReferenceINTEL + {IR(44592, 46), 698}, // 741 SubgroupAvcRefSetBidirectionalMixDisableINTEL + {IR(44638, 43), 699}, // 742 SubgroupAvcRefSetBilinearFilterEnableINTEL + {IR(45011, 42), 708}, // 743 SubgroupAvcSicConfigureIpeLumaChromaINTEL + {IR(44975, 36), 707}, // 744 SubgroupAvcSicConfigureIpeLumaINTEL + {IR(44943, 32), 706}, // 745 SubgroupAvcSicConfigureSkcINTEL + {IR(45092, 39), 710}, // 746 SubgroupAvcSicConvertToMcePayloadINTEL + {IR(45632, 38), 722}, // 747 SubgroupAvcSicConvertToMceResultINTEL + {IR(45407, 31), 717}, // 748 SubgroupAvcSicEvaluateIpeINTEL + {IR(45485, 45), 719}, // 749 SubgroupAvcSicEvaluateWithDualReferenceINTEL + {IR(45530, 46), 720}, // 750 SubgroupAvcSicEvaluateWithMultiReferenceINTEL + {IR(45576, 56), 721}, // 751 SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL + {IR(45438, 47), 718}, // 752 SubgroupAvcSicEvaluateWithSingleReferenceINTEL + {IR(45749, 46), 725}, // 753 SubgroupAvcSicGetBestIpeChromaDistortionINTEL + {IR(45705, 44), 724}, // 754 SubgroupAvcSicGetBestIpeLumaDistortionINTEL + {IR(45970, 35), 730}, // 755 SubgroupAvcSicGetInterRawSadsINTEL + {IR(45836, 36), 727}, // 756 SubgroupAvcSicGetIpeChromaModeINTEL + {IR(45670, 35), 723}, // 757 SubgroupAvcSicGetIpeLumaShapeINTEL + {IR(45053, 39), 709}, // 758 SubgroupAvcSicGetMotionVectorMaskINTEL + {IR(45795, 41), 726}, // 759 SubgroupAvcSicGetPackedIpeLumaModesINTEL + {IR(45872, 50), 728}, // 760 SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL + {IR(45922, 48), 729}, // 761 SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL + {IR(44913, 30), 705}, // 762 SubgroupAvcSicInitializeINTEL + {IR(45273, 43), 714}, // 763 SubgroupAvcSicSetBilinearFilterEnableINTEL + {IR(45364, 43), 716}, // 764 SubgroupAvcSicSetBlockBasedRawSkipSadINTEL + {IR(45223, 50), 713}, // 765 SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL + {IR(45175, 48), 712}, // 766 SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL + {IR(45131, 44), 711}, // 767 SubgroupAvcSicSetIntraLumaShapePenaltyINTEL + {IR(45316, 48), 715}, // 768 SubgroupAvcSicSetSkcForwardTransformEnableINTEL + {IR(6138, 18), 363}, // 769 SubgroupBallotKHR + {IR(49278, 27), 828}, // 770 SubgroupBlockPrefetchINTEL + {IR(40223, 23), 582}, // 771 SubgroupBlockReadINTEL + {IR(40246, 24), 583}, // 772 SubgroupBlockWriteINTEL + {IR(34374, 27), 364}, // 773 SubgroupFirstInvocationKHR + {IR(40270, 28), 584}, // 774 SubgroupImageBlockReadINTEL + {IR(40298, 29), 585}, // 775 SubgroupImageBlockWriteINTEL + {IR(40327, 33), 586}, // 776 SubgroupImageMediaBlockReadINTEL + {IR(40360, 34), 587}, // 777 SubgroupImageMediaBlockWriteINTEL + {IR(15131, 38), 834}, // 778 SubgroupMatrixMultiplyAccumulateINTEL + {IR(34557, 26), 374}, // 779 SubgroupReadInvocationKHR + {IR(40151, 25), 579}, // 780 SubgroupShuffleDownINTEL + {IR(12787, 21), 578}, // 781 SubgroupShuffleINTEL + {IR(40176, 23), 580}, // 782 SubgroupShuffleUpINTEL + {IR(40199, 24), 581}, // 783 SubgroupShuffleXorINTEL + {IR(31731, 7), 229}, // 784 Switch + {IR(49092, 24), 824}, // 785 TaskSequenceAsyncALTERA + {IR(49116, 23), 824}, // 786 TaskSequenceAsyncINTEL + {IR(49043, 25), 823}, // 787 TaskSequenceCreateALTERA + {IR(49068, 24), 823}, // 788 TaskSequenceCreateINTEL + {IR(49139, 22), 825}, // 789 TaskSequenceGetALTERA + {IR(49161, 21), 825}, // 790 TaskSequenceGetINTEL + {IR(49182, 26), 826}, // 791 TaskSequenceReleaseALTERA + {IR(49208, 25), 826}, // 792 TaskSequenceReleaseINTEL + {IR(39494, 27), 555}, // 793 TensorLayoutSetBlockSizeNV + {IR(39358, 28), 548}, // 794 TensorLayoutSetClampValueNV + {IR(39287, 27), 545}, // 795 TensorLayoutSetDimensionNV + {IR(39314, 24), 546}, // 796 TensorLayoutSetStrideNV + {IR(39338, 20), 547}, // 797 TensorLayoutSliceNV + {IR(34149, 19), 350}, // 798 TensorQuerySizeARM + {IR(34120, 14), 348}, // 799 TensorReadARM + {IR(39474, 20), 554}, // 800 TensorViewSetClipNV + {IR(39405, 25), 550}, // 801 TensorViewSetDimensionNV + {IR(39430, 22), 551}, // 802 TensorViewSetStrideNV + {IR(34134, 15), 349}, // 803 TensorWriteARM + {IR(34261, 20), 358}, // 804 TerminateInvocation + {IR(34722, 16), 381}, // 805 TerminateRayKHR + {IR(38388, 15), 516}, // 806 TerminateRayNV + {IR(38411, 14), 518}, // 807 TraceMotionNV + {IR(38403, 8), 517}, // 808 TraceNV + {IR(34634, 12), 377}, // 809 TraceRayKHR + {IR(38425, 17), 519}, // 810 TraceRayMotionNV + {IR(29583, 10), 76}, // 811 Transpose + {IR(38492, 29), 521}, // 812 TypeAccelerationStructureKHR + {IR(38521, 28), 521}, // 813 TypeAccelerationStructureNV + {IR(28532, 10), 25}, // 814 TypeArray + {IR(41136, 37), 624}, // 815 TypeAvcImeDualReferenceStreaminINTEL + {IR(40871, 23), 615}, // 816 TypeAvcImePayloadINTEL + {IR(41053, 44), 622}, // 817 TypeAvcImeResultDualReferenceStreamoutINTEL + {IR(40985, 22), 620}, // 818 TypeAvcImeResultINTEL + {IR(41007, 46), 621}, // 819 TypeAvcImeResultSingleReferenceStreamoutINTEL + {IR(41097, 39), 623}, // 820 TypeAvcImeSingleReferenceStreaminINTEL + {IR(40940, 23), 618}, // 821 TypeAvcMcePayloadINTEL + {IR(40963, 22), 619}, // 822 TypeAvcMceResultINTEL + {IR(40894, 23), 616}, // 823 TypeAvcRefPayloadINTEL + {IR(41173, 22), 625}, // 824 TypeAvcRefResultINTEL + {IR(40917, 23), 617}, // 825 TypeAvcSicPayloadINTEL + {IR(41195, 22), 626}, // 826 TypeAvcSicResultINTEL + {IR(28294, 9), 17}, // 827 TypeBool + {IR(48804, 23), 813}, // 828 TypeBufferSurfaceINTEL + {IR(34903, 25), 388}, // 829 TypeCooperativeMatrixKHR + {IR(38814, 24), 531}, // 830 TypeCooperativeMatrixNV + {IR(37036, 24), 470}, // 831 TypeCooperativeVectorNV + {IR(28647, 16), 32}, // 832 TypeDeviceEvent + {IR(28637, 10), 31}, // 833 TypeEvent + {IR(28348, 10), 19}, // 834 TypeFloat + {IR(28696, 19), 36}, // 835 TypeForwardPointer + {IR(28624, 13), 30}, // 836 TypeFunction + {IR(34248, 13), 357}, // 837 TypeGraphARM + {IR(37749, 17), 493}, // 838 TypeHitObjectEXT + {IR(36997, 16), 468}, // 839 TypeHitObjectNV + {IR(28493, 10), 22}, // 840 TypeImage + {IR(28303, 8), 18}, // 841 TypeInt + {IR(28369, 11), 21}, // 842 TypeMatrix + {IR(33078, 17), 300}, // 843 TypeNamedBarrier + {IR(35938, 25), 428}, // 844 TypeNodePayloadArrayAMDX + {IR(28570, 11), 28}, // 845 TypeOpaque + {IR(28687, 9), 35}, // 846 TypePipe + {IR(32956, 16), 295}, // 847 TypePipeStorage + {IR(28612, 12), 29}, // 848 TypePointer + {IR(28677, 10), 34}, // 849 TypeQueue + {IR(35182, 16), 396}, // 850 TypeRayQueryKHR + {IR(28663, 14), 33}, // 851 TypeReserveId + {IR(28542, 17), 26}, // 852 TypeRuntimeArray + {IR(28515, 17), 24}, // 853 TypeSampledImage + {IR(28503, 12), 23}, // 854 TypeSampler + {IR(28559, 11), 27}, // 855 TypeStruct + {IR(48827, 25), 814}, // 856 TypeStructContinuedINTEL + {IR(49233, 23), 827}, // 857 TypeTaskSequenceALTERA + {IR(49256, 22), 827}, // 858 TypeTaskSequenceINTEL + {IR(34064, 14), 347}, // 859 TypeTensorARM + {IR(39230, 19), 542}, // 860 TypeTensorLayoutNV + {IR(39249, 17), 543}, // 861 TypeTensorViewNV + {IR(34281, 22), 359}, // 862 TypeUntypedPointerKHR + {IR(28358, 11), 20}, // 863 TypeVector + {IR(40853, 18), 614}, // 864 TypeVmeImageINTEL + {IR(28285, 9), 16}, // 865 TypeVoid + {IR(40482, 13), 593}, // 866 UAddSatINTEL + {IR(40509, 14), 595}, // 867 UAverageINTEL + {IR(40544, 21), 597}, // 868 UAverageRoundedINTEL + {IR(30100, 9), 103}, // 869 UConvert + {IR(40394, 24), 588}, // 870 UCountLeadingZerosINTEL + {IR(40418, 25), 589}, // 871 UCountTrailingZerosINTEL + {IR(30312, 5), 123}, // 872 UDiv + {IR(34798, 5), 383}, // 873 UDot + {IR(34851, 11), 386}, // 874 UDotAccSat + {IR(34862, 14), 386}, // 875 UDotAccSatKHR + {IR(34803, 8), 383}, // 876 UDotKHR + {IR(30672, 13), 160}, // 877 UGreaterThan + {IR(30698, 18), 162}, // 878 UGreaterThanEqual + {IR(30734, 10), 164}, // 879 ULessThan + {IR(30754, 15), 166}, // 880 ULessThanEqual + {IR(30327, 5), 126}, // 881 UMod + {IR(40606, 15), 601}, // 882 UMul32x16INTEL + {IR(30480, 13), 140}, // 883 UMulExtended + {IR(40578, 13), 599}, // 884 USubSatINTEL + {IR(27797, 6), 1}, // 885 Undef + {IR(30577, 10), 151}, // 886 Unordered + {IR(31762, 12), 233}, // 887 Unreachable + {IR(34322, 22), 361}, // 888 UntypedAccessChainKHR + {IR(34459, 22), 367}, // 889 UntypedArrayLengthKHR + {IR(34609, 25), 376}, // 890 UntypedGroupAsyncCopyKHR + {IR(34344, 30), 362}, // 891 UntypedInBoundsAccessChainKHR + {IR(34426, 33), 366}, // 892 UntypedInBoundsPtrAccessChainKHR + {IR(34481, 19), 368}, // 893 UntypedPrefetchKHR + {IR(34401, 25), 365}, // 894 UntypedPtrAccessChainKHR + {IR(34303, 19), 360}, // 895 UntypedVariableKHR + {IR(15197, 32), 836}, // 896 UntypedVariableLengthArrayINTEL + {IR(29108, 9), 52}, // 897 Variable + {IR(13243, 25), 731}, // 898 VariableLengthArrayINTEL + {IR(29465, 21), 69}, // 899 VectorExtractDynamic + {IR(29486, 20), 70}, // 900 VectorInsertDynamic + {IR(29506, 14), 71}, // 901 VectorShuffle + {IR(30388, 18), 133}, // 902 VectorTimesMatrix + {IR(30352, 18), 131}, // 903 VectorTimesScalar + {IR(40839, 14), 613}, // 904 VmeImageINTEL + {IR(37291, 33), 479}, // 905 WritePackedPrimitiveIndices4x8NV + {IR(31987, 10), 250}, // 906 WritePipe + {IR(48092, 24), 793}, // 907 WritePipeBlockingALTERA + {IR(48116, 23), 793}, // 908 WritePipeBlockingINTEL }}; // Extended instruction descriptions, ordered by (extinst enum, opcode value). @@ -4703,431 +4945,431 @@ static const std::array kInstructionNames{{ // name, a character-counting IndexRange into kStrings // capabilities, an IndexRange into kCapabilitySpans static const std::array kExtInstByValue{{ - {0,IR(0, 0),IR(45610, 14),IR(1, 0)}, // DebugInfoNone in debuginfo - {1,IR(52, 3),IR(45624, 21),IR(1, 0)}, // DebugCompilationUnit in debuginfo - {2,IR(770, 3),IR(45697, 15),IR(1, 0)}, // DebugTypeBasic in debuginfo - {3,IR(773, 3),IR(45746, 17),IR(1, 0)}, // DebugTypePointer in debuginfo - {4,IR(776, 2),IR(45801, 19),IR(1, 0)}, // DebugTypeQualifier in debuginfo - {5,IR(168, 2),IR(45820, 15),IR(1, 0)}, // DebugTypeArray in debuginfo - {6,IR(261, 2),IR(45835, 16),IR(1, 0)}, // DebugTypeVector in debuginfo - {7,IR(778, 6),IR(45851, 13),IR(1, 0)}, // DebugTypedef in debuginfo - {8,IR(168, 2),IR(45864, 18),IR(1, 0)}, // DebugTypeFunction in debuginfo - {9,IR(784, 9),IR(45882, 14),IR(1, 0)}, // DebugTypeEnum in debuginfo - {10,IR(793, 9),IR(45934, 19),IR(1, 0)}, // DebugTypeComposite in debuginfo - {11,IR(802, 10),IR(45953, 16),IR(1, 0)}, // DebugTypeMember in debuginfo - {12,IR(812, 5),IR(45969, 21),IR(1, 0)}, // DebugTypeInheritance in debuginfo - {13,IR(36, 2),IR(45990, 21),IR(1, 0)}, // DebugTypePtrToMember in debuginfo - {14,IR(168, 2),IR(46011, 18),IR(1, 0)}, // DebugTypeTemplate in debuginfo - {15,IR(817, 6),IR(46029, 27),IR(1, 0)}, // DebugTypeTemplateParameter in debuginfo - {16,IR(823, 5),IR(46056, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in debuginfo - {17,IR(828, 5),IR(46091, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in debuginfo - {18,IR(802, 10),IR(46122, 20),IR(1, 0)}, // DebugGlobalVariable in debuginfo - {19,IR(833, 8),IR(46142, 25),IR(1, 0)}, // DebugFunctionDeclaration in debuginfo - {20,IR(841, 11),IR(46167, 14),IR(1, 0)}, // DebugFunction in debuginfo - {21,IR(852, 5),IR(46181, 18),IR(1, 0)}, // DebugLexicalBlock in debuginfo - {22,IR(857, 3),IR(46199, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in debuginfo - {23,IR(860, 2),IR(46230, 11),IR(1, 0)}, // DebugScope in debuginfo - {24,IR(0, 0),IR(46241, 13),IR(1, 0)}, // DebugNoScope in debuginfo - {25,IR(862, 3),IR(46254, 15),IR(1, 0)}, // DebugInlinedAt in debuginfo - {26,IR(865, 7),IR(46311, 19),IR(1, 0)}, // DebugLocalVariable in debuginfo - {27,IR(36, 2),IR(46330, 21),IR(1, 0)}, // DebugInlinedVariable in debuginfo - {28,IR(33, 3),IR(46351, 13),IR(1, 0)}, // DebugDeclare in debuginfo - {29,IR(375, 3),IR(46364, 11),IR(1, 0)}, // DebugValue in debuginfo - {30,IR(872, 2),IR(46408, 15),IR(1, 0)}, // DebugOperation in debuginfo - {31,IR(706, 1),IR(46423, 16),IR(1, 0)}, // DebugExpression in debuginfo - {32,IR(874, 4),IR(46439, 14),IR(1, 0)}, // DebugMacroDef in debuginfo - {33,IR(857, 3),IR(46453, 16),IR(1, 0)}, // DebugMacroUndef in debuginfo - {1,IR(10, 1),IR(46469, 6),IR(1, 0)}, // Round in glsl_std_450 - {2,IR(10, 1),IR(46475, 10),IR(1, 0)}, // RoundEven in glsl_std_450 - {3,IR(10, 1),IR(46485, 6),IR(1, 0)}, // Trunc in glsl_std_450 - {4,IR(10, 1),IR(46491, 5),IR(1, 0)}, // FAbs in glsl_std_450 - {5,IR(10, 1),IR(46496, 5),IR(1, 0)}, // SAbs in glsl_std_450 - {6,IR(10, 1),IR(46501, 6),IR(1, 0)}, // FSign in glsl_std_450 - {7,IR(10, 1),IR(46507, 6),IR(1, 0)}, // SSign in glsl_std_450 - {8,IR(10, 1),IR(46513, 6),IR(1, 0)}, // Floor in glsl_std_450 - {9,IR(10, 1),IR(46519, 5),IR(1, 0)}, // Ceil in glsl_std_450 - {10,IR(10, 1),IR(46524, 6),IR(1, 0)}, // Fract in glsl_std_450 - {11,IR(10, 1),IR(46530, 8),IR(1, 0)}, // Radians in glsl_std_450 - {12,IR(10, 1),IR(46538, 8),IR(1, 0)}, // Degrees in glsl_std_450 - {13,IR(10, 1),IR(46546, 4),IR(1, 0)}, // Sin in glsl_std_450 - {14,IR(10, 1),IR(46550, 4),IR(1, 0)}, // Cos in glsl_std_450 - {15,IR(10, 1),IR(46554, 4),IR(1, 0)}, // Tan in glsl_std_450 - {16,IR(10, 1),IR(46558, 5),IR(1, 0)}, // Asin in glsl_std_450 - {17,IR(10, 1),IR(46563, 5),IR(1, 0)}, // Acos in glsl_std_450 - {18,IR(10, 1),IR(46568, 5),IR(1, 0)}, // Atan in glsl_std_450 - {19,IR(10, 1),IR(46573, 5),IR(1, 0)}, // Sinh in glsl_std_450 - {20,IR(10, 1),IR(46578, 5),IR(1, 0)}, // Cosh in glsl_std_450 - {21,IR(10, 1),IR(46583, 5),IR(1, 0)}, // Tanh in glsl_std_450 - {22,IR(10, 1),IR(46588, 6),IR(1, 0)}, // Asinh in glsl_std_450 - {23,IR(10, 1),IR(46594, 6),IR(1, 0)}, // Acosh in glsl_std_450 - {24,IR(10, 1),IR(46600, 6),IR(1, 0)}, // Atanh in glsl_std_450 - {25,IR(36, 2),IR(46606, 6),IR(1, 0)}, // Atan2 in glsl_std_450 - {26,IR(36, 2),IR(46612, 4),IR(1, 0)}, // Pow in glsl_std_450 - {27,IR(10, 1),IR(46616, 4),IR(1, 0)}, // Exp in glsl_std_450 - {28,IR(10, 1),IR(46620, 4),IR(1, 0)}, // Log in glsl_std_450 - {29,IR(10, 1),IR(46624, 5),IR(1, 0)}, // Exp2 in glsl_std_450 - {30,IR(10, 1),IR(46629, 5),IR(1, 0)}, // Log2 in glsl_std_450 - {31,IR(10, 1),IR(46634, 5),IR(1, 0)}, // Sqrt in glsl_std_450 - {32,IR(10, 1),IR(46639, 12),IR(1, 0)}, // InverseSqrt in glsl_std_450 - {33,IR(10, 1),IR(46651, 12),IR(1, 0)}, // Determinant in glsl_std_450 - {34,IR(10, 1),IR(46663, 14),IR(1, 0)}, // MatrixInverse in glsl_std_450 - {35,IR(36, 2),IR(46677, 5),IR(1, 0)}, // Modf in glsl_std_450 - {36,IR(10, 1),IR(46682, 11),IR(1, 0)}, // ModfStruct in glsl_std_450 - {37,IR(36, 2),IR(46693, 5),IR(1, 0)}, // FMin in glsl_std_450 - {38,IR(36, 2),IR(46698, 5),IR(1, 0)}, // UMin in glsl_std_450 - {39,IR(36, 2),IR(46703, 5),IR(1, 0)}, // SMin in glsl_std_450 - {40,IR(36, 2),IR(46708, 5),IR(1, 0)}, // FMax in glsl_std_450 - {41,IR(36, 2),IR(46713, 5),IR(1, 0)}, // UMax in glsl_std_450 - {42,IR(36, 2),IR(46718, 5),IR(1, 0)}, // SMax in glsl_std_450 - {43,IR(33, 3),IR(46723, 7),IR(1, 0)}, // FClamp in glsl_std_450 - {44,IR(33, 3),IR(46730, 7),IR(1, 0)}, // UClamp in glsl_std_450 - {45,IR(33, 3),IR(46737, 7),IR(1, 0)}, // SClamp in glsl_std_450 - {46,IR(33, 3),IR(46744, 5),IR(1, 0)}, // FMix in glsl_std_450 - {47,IR(33, 3),IR(46749, 5),IR(1, 0)}, // IMix in glsl_std_450 - {48,IR(36, 2),IR(46754, 5),IR(1, 0)}, // Step in glsl_std_450 - {49,IR(33, 3),IR(46759, 11),IR(1, 0)}, // SmoothStep in glsl_std_450 - {50,IR(33, 3),IR(46770, 4),IR(1, 0)}, // Fma in glsl_std_450 - {51,IR(36, 2),IR(46774, 6),IR(1, 0)}, // Frexp in glsl_std_450 - {52,IR(10, 1),IR(46780, 12),IR(1, 0)}, // FrexpStruct in glsl_std_450 - {53,IR(36, 2),IR(46792, 6),IR(1, 0)}, // Ldexp in glsl_std_450 - {54,IR(10, 1),IR(46798, 13),IR(1, 0)}, // PackSnorm4x8 in glsl_std_450 - {55,IR(10, 1),IR(46811, 13),IR(1, 0)}, // PackUnorm4x8 in glsl_std_450 - {56,IR(10, 1),IR(46824, 14),IR(1, 0)}, // PackSnorm2x16 in glsl_std_450 - {57,IR(10, 1),IR(46838, 14),IR(1, 0)}, // PackUnorm2x16 in glsl_std_450 - {58,IR(10, 1),IR(46852, 13),IR(1, 0)}, // PackHalf2x16 in glsl_std_450 - {59,IR(10, 1),IR(46865, 15),IR(310, 1)}, // PackDouble2x32 in glsl_std_450 - {60,IR(10, 1),IR(46880, 16),IR(1, 0)}, // UnpackSnorm2x16 in glsl_std_450 - {61,IR(10, 1),IR(46896, 16),IR(1, 0)}, // UnpackUnorm2x16 in glsl_std_450 - {62,IR(10, 1),IR(46912, 15),IR(1, 0)}, // UnpackHalf2x16 in glsl_std_450 - {63,IR(10, 1),IR(46927, 15),IR(1, 0)}, // UnpackSnorm4x8 in glsl_std_450 - {64,IR(10, 1),IR(46942, 15),IR(1, 0)}, // UnpackUnorm4x8 in glsl_std_450 - {65,IR(10, 1),IR(46957, 17),IR(310, 1)}, // UnpackDouble2x32 in glsl_std_450 - {66,IR(10, 1),IR(46974, 7),IR(1, 0)}, // Length in glsl_std_450 - {67,IR(36, 2),IR(46981, 9),IR(1, 0)}, // Distance in glsl_std_450 - {68,IR(36, 2),IR(46990, 6),IR(1, 0)}, // Cross in glsl_std_450 - {69,IR(10, 1),IR(46996, 10),IR(1, 0)}, // Normalize in glsl_std_450 - {70,IR(33, 3),IR(47006, 12),IR(1, 0)}, // FaceForward in glsl_std_450 - {71,IR(36, 2),IR(47018, 8),IR(1, 0)}, // Reflect in glsl_std_450 - {72,IR(33, 3),IR(47026, 8),IR(1, 0)}, // Refract in glsl_std_450 - {73,IR(10, 1),IR(47034, 9),IR(1, 0)}, // FindILsb in glsl_std_450 - {74,IR(10, 1),IR(47043, 9),IR(1, 0)}, // FindSMsb in glsl_std_450 - {75,IR(10, 1),IR(47052, 9),IR(1, 0)}, // FindUMsb in glsl_std_450 - {76,IR(10, 1),IR(47061, 22),IR(311, 1)}, // InterpolateAtCentroid in glsl_std_450 - {77,IR(36, 2),IR(47083, 20),IR(311, 1)}, // InterpolateAtSample in glsl_std_450 - {78,IR(36, 2),IR(47103, 20),IR(311, 1)}, // InterpolateAtOffset in glsl_std_450 - {79,IR(36, 2),IR(47123, 5),IR(1, 0)}, // NMin in glsl_std_450 - {80,IR(36, 2),IR(47128, 5),IR(1, 0)}, // NMax in glsl_std_450 - {81,IR(33, 3),IR(47133, 7),IR(1, 0)}, // NClamp in glsl_std_450 - {1,IR(399, 5),IR(4642, 7),IR(1, 0)}, // Kernel in nonsemantic_clspvreflection - {2,IR(878, 5),IR(47140, 13),IR(1, 0)}, // ArgumentInfo in nonsemantic_clspvreflection - {3,IR(883, 5),IR(47153, 22),IR(1, 0)}, // ArgumentStorageBuffer in nonsemantic_clspvreflection - {4,IR(883, 5),IR(47175, 16),IR(1, 0)}, // ArgumentUniform in nonsemantic_clspvreflection - {5,IR(554, 7),IR(47191, 25),IR(1, 0)}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection - {6,IR(554, 7),IR(47216, 19),IR(1, 0)}, // ArgumentPodUniform in nonsemantic_clspvreflection - {7,IR(883, 5),IR(47235, 24),IR(1, 0)}, // ArgumentPodPushConstant in nonsemantic_clspvreflection - {8,IR(883, 5),IR(47259, 21),IR(1, 0)}, // ArgumentSampledImage in nonsemantic_clspvreflection - {9,IR(883, 5),IR(47280, 21),IR(1, 0)}, // ArgumentStorageImage in nonsemantic_clspvreflection - {10,IR(883, 5),IR(47301, 16),IR(1, 0)}, // ArgumentSampler in nonsemantic_clspvreflection - {11,IR(883, 5),IR(47317, 18),IR(1, 0)}, // ArgumentWorkgroup in nonsemantic_clspvreflection - {12,IR(33, 3),IR(47335, 26),IR(1, 0)}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection - {13,IR(33, 3),IR(47361, 25),IR(1, 0)}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection - {14,IR(10, 1),IR(47386, 20),IR(1, 0)}, // SpecConstantWorkDim in nonsemantic_clspvreflection - {15,IR(36, 2),IR(47406, 25),IR(1, 0)}, // PushConstantGlobalOffset in nonsemantic_clspvreflection - {16,IR(36, 2),IR(47431, 30),IR(1, 0)}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection - {17,IR(36, 2),IR(47461, 23),IR(1, 0)}, // PushConstantGlobalSize in nonsemantic_clspvreflection - {18,IR(36, 2),IR(47484, 25),IR(1, 0)}, // PushConstantRegionOffset in nonsemantic_clspvreflection - {19,IR(36, 2),IR(47509, 26),IR(1, 0)}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection - {20,IR(36, 2),IR(47535, 30),IR(1, 0)}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection - {21,IR(33, 3),IR(47565, 26),IR(1, 0)}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection - {22,IR(33, 3),IR(47591, 20),IR(1, 0)}, // ConstantDataUniform in nonsemantic_clspvreflection - {23,IR(33, 3),IR(8067, 15),IR(1, 0)}, // LiteralSampler in nonsemantic_clspvreflection - {24,IR(296, 4),IR(47611, 30),IR(1, 0)}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection - {25,IR(10, 1),IR(47641, 28),IR(1, 0)}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection - {26,IR(883, 5),IR(47669, 28),IR(1, 0)}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection - {27,IR(554, 7),IR(47697, 23),IR(1, 0)}, // ArgumentPointerUniform in nonsemantic_clspvreflection - {28,IR(33, 3),IR(47720, 35),IR(1, 0)}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection - {29,IR(33, 3),IR(47755, 38),IR(1, 0)}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection - {30,IR(296, 4),IR(47793, 42),IR(1, 0)}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection - {31,IR(296, 4),IR(47835, 45),IR(1, 0)}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection - {32,IR(525, 6),IR(47880, 37),IR(1, 0)}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection - {33,IR(525, 6),IR(47917, 40),IR(1, 0)}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection - {34,IR(883, 5),IR(47957, 27),IR(1, 0)}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection - {35,IR(883, 5),IR(47984, 27),IR(1, 0)}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection - {36,IR(33, 3),IR(48011, 32),IR(1, 0)}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection - {37,IR(33, 3),IR(48043, 40),IR(1, 0)}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection - {38,IR(375, 3),IR(48083, 11),IR(1, 0)}, // PrintfInfo in nonsemantic_clspvreflection - {39,IR(33, 3),IR(48094, 26),IR(1, 0)}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection - {40,IR(33, 3),IR(48120, 32),IR(1, 0)}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection - {41,IR(296, 4),IR(48152, 34),IR(1, 0)}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection - {42,IR(36, 2),IR(48186, 22),IR(1, 0)}, // WorkgroupVariableSize in nonsemantic_clspvreflection - {0,IR(0, 0),IR(45610, 14),IR(1, 0)}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 - {1,IR(296, 4),IR(45624, 21),IR(1, 0)}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 - {2,IR(296, 4),IR(45697, 15),IR(1, 0)}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 - {3,IR(33, 3),IR(45746, 17),IR(1, 0)}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 - {4,IR(36, 2),IR(45801, 19),IR(1, 0)}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 - {5,IR(168, 2),IR(45820, 15),IR(1, 0)}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 - {6,IR(36, 2),IR(45835, 16),IR(1, 0)}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 - {7,IR(525, 6),IR(45851, 13),IR(1, 0)}, // DebugTypedef in nonsemantic_shader_debuginfo_100 - {8,IR(375, 3),IR(45864, 18),IR(1, 0)}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 - {9,IR(888, 9),IR(45882, 14),IR(1, 0)}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 - {10,IR(897, 10),IR(45934, 19),IR(1, 0)}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 - {11,IR(907, 9),IR(45953, 16),IR(1, 0)}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 - {12,IR(296, 4),IR(45969, 21),IR(1, 0)}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 - {13,IR(36, 2),IR(45990, 21),IR(1, 0)}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 - {14,IR(168, 2),IR(46011, 18),IR(1, 0)}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 - {15,IR(525, 6),IR(46029, 27),IR(1, 0)}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 - {16,IR(634, 5),IR(46056, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 - {17,IR(916, 5),IR(46091, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 - {18,IR(921, 10),IR(46122, 20),IR(1, 0)}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 - {19,IR(471, 8),IR(46142, 25),IR(1, 0)}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 - {20,IR(921, 10),IR(46167, 14),IR(1, 0)}, // DebugFunction in nonsemantic_shader_debuginfo_100 - {21,IR(883, 5),IR(46181, 18),IR(1, 0)}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 - {22,IR(33, 3),IR(46199, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 - {23,IR(860, 2),IR(46230, 11),IR(1, 0)}, // DebugScope in nonsemantic_shader_debuginfo_100 - {24,IR(0, 0),IR(46241, 13),IR(1, 0)}, // DebugNoScope in nonsemantic_shader_debuginfo_100 - {25,IR(931, 3),IR(46254, 15),IR(1, 0)}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 - {26,IR(934, 8),IR(46311, 19),IR(1, 0)}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 - {27,IR(36, 2),IR(46330, 21),IR(1, 0)}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 - {28,IR(942, 4),IR(46351, 13),IR(1, 0)}, // DebugDeclare in nonsemantic_shader_debuginfo_100 - {29,IR(942, 4),IR(46364, 11),IR(1, 0)}, // DebugValue in nonsemantic_shader_debuginfo_100 - {30,IR(168, 2),IR(46408, 15),IR(1, 0)}, // DebugOperation in nonsemantic_shader_debuginfo_100 - {31,IR(706, 1),IR(46423, 16),IR(1, 0)}, // DebugExpression in nonsemantic_shader_debuginfo_100 - {32,IR(577, 4),IR(46439, 14),IR(1, 0)}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 - {33,IR(33, 3),IR(46453, 16),IR(1, 0)}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 - {34,IR(506, 7),IR(48208, 20),IR(1, 0)}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 - {35,IR(860, 2),IR(48228, 12),IR(1, 0)}, // DebugSource in nonsemantic_shader_debuginfo_100 - {101,IR(36, 2),IR(48240, 24),IR(1, 0)}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 - {102,IR(10, 1),IR(48264, 21),IR(1, 0)}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 - {103,IR(634, 5),IR(48285, 10),IR(1, 0)}, // DebugLine in nonsemantic_shader_debuginfo_100 - {104,IR(0, 0),IR(48295, 12),IR(1, 0)}, // DebugNoLine in nonsemantic_shader_debuginfo_100 - {105,IR(36, 2),IR(48307, 21),IR(1, 0)}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 - {106,IR(10, 1),IR(48328, 17),IR(1, 0)}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 - {107,IR(296, 4),IR(48345, 16),IR(1, 0)}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 - {108,IR(33, 3),IR(48361, 16),IR(1, 0)}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 - {1,IR(724, 9),IR(48377, 14),IR(1, 0)}, // Configuration in nonsemantic_vkspreflection - {2,IR(10, 1),IR(48391, 13),IR(1, 0)}, // StartCounter in nonsemantic_vkspreflection - {3,IR(10, 1),IR(48404, 12),IR(1, 0)}, // StopCounter in nonsemantic_vkspreflection - {4,IR(296, 4),IR(48416, 14),IR(1, 0)}, // PushConstants in nonsemantic_vkspreflection - {5,IR(33, 3),IR(48430, 23),IR(1, 0)}, // SpecializationMapEntry in nonsemantic_vkspreflection - {6,IR(946, 15),IR(48453, 20),IR(1, 0)}, // DescriptorSetBuffer in nonsemantic_vkspreflection - {7,IR(961, 33),IR(48473, 19),IR(1, 0)}, // DescriptorSetImage in nonsemantic_vkspreflection - {8,IR(994, 19),IR(48492, 21),IR(1, 0)}, // DescriptorSetSampler in nonsemantic_vkspreflection - {0,IR(0, 0),IR(45610, 14),IR(1, 0)}, // DebugInfoNone in opencl_debuginfo_100 - {1,IR(1013, 4),IR(45624, 21),IR(1, 0)}, // DebugCompilationUnit in opencl_debuginfo_100 - {2,IR(1017, 3),IR(45697, 15),IR(1, 0)}, // DebugTypeBasic in opencl_debuginfo_100 - {3,IR(1020, 3),IR(45746, 17),IR(1, 0)}, // DebugTypePointer in opencl_debuginfo_100 - {4,IR(1023, 2),IR(45801, 19),IR(1, 0)}, // DebugTypeQualifier in opencl_debuginfo_100 - {5,IR(168, 2),IR(45820, 15),IR(1, 0)}, // DebugTypeArray in opencl_debuginfo_100 - {6,IR(261, 2),IR(45835, 16),IR(1, 0)}, // DebugTypeVector in opencl_debuginfo_100 - {7,IR(778, 6),IR(45851, 13),IR(1, 0)}, // DebugTypedef in opencl_debuginfo_100 - {8,IR(1025, 3),IR(45864, 18),IR(1, 0)}, // DebugTypeFunction in opencl_debuginfo_100 - {9,IR(1028, 9),IR(45882, 14),IR(1, 0)}, // DebugTypeEnum in opencl_debuginfo_100 - {10,IR(1037, 10),IR(45934, 19),IR(1, 0)}, // DebugTypeComposite in opencl_debuginfo_100 - {11,IR(1047, 10),IR(45953, 16),IR(1, 0)}, // DebugTypeMember in opencl_debuginfo_100 - {12,IR(1057, 5),IR(45969, 21),IR(1, 0)}, // DebugTypeInheritance in opencl_debuginfo_100 - {13,IR(36, 2),IR(45990, 21),IR(1, 0)}, // DebugTypePtrToMember in opencl_debuginfo_100 - {14,IR(168, 2),IR(46011, 18),IR(1, 0)}, // DebugTypeTemplate in opencl_debuginfo_100 - {15,IR(817, 6),IR(46029, 27),IR(1, 0)}, // DebugTypeTemplateParameter in opencl_debuginfo_100 - {16,IR(823, 5),IR(46056, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 - {17,IR(828, 5),IR(46091, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 - {18,IR(1047, 10),IR(46122, 20),IR(1, 0)}, // DebugGlobalVariable in opencl_debuginfo_100 - {19,IR(1062, 8),IR(46142, 25),IR(1, 0)}, // DebugFunctionDeclaration in opencl_debuginfo_100 - {20,IR(1070, 11),IR(46167, 14),IR(1, 0)}, // DebugFunction in opencl_debuginfo_100 - {21,IR(852, 5),IR(46181, 18),IR(1, 0)}, // DebugLexicalBlock in opencl_debuginfo_100 - {22,IR(857, 3),IR(46199, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 - {23,IR(860, 2),IR(46230, 11),IR(1, 0)}, // DebugScope in opencl_debuginfo_100 - {24,IR(0, 0),IR(46241, 13),IR(1, 0)}, // DebugNoScope in opencl_debuginfo_100 - {25,IR(862, 3),IR(46254, 15),IR(1, 0)}, // DebugInlinedAt in opencl_debuginfo_100 - {26,IR(1081, 8),IR(46311, 19),IR(1, 0)}, // DebugLocalVariable in opencl_debuginfo_100 - {27,IR(36, 2),IR(46330, 21),IR(1, 0)}, // DebugInlinedVariable in opencl_debuginfo_100 - {28,IR(33, 3),IR(46351, 13),IR(1, 0)}, // DebugDeclare in opencl_debuginfo_100 - {29,IR(942, 4),IR(46364, 11),IR(1, 0)}, // DebugValue in opencl_debuginfo_100 - {30,IR(1089, 2),IR(46408, 15),IR(1, 0)}, // DebugOperation in opencl_debuginfo_100 - {31,IR(706, 1),IR(46423, 16),IR(1, 0)}, // DebugExpression in opencl_debuginfo_100 - {32,IR(874, 4),IR(46439, 14),IR(1, 0)}, // DebugMacroDef in opencl_debuginfo_100 - {33,IR(857, 3),IR(46453, 16),IR(1, 0)}, // DebugMacroUndef in opencl_debuginfo_100 - {34,IR(1091, 7),IR(48208, 20),IR(1, 0)}, // DebugImportedEntity in opencl_debuginfo_100 - {35,IR(860, 2),IR(48228, 12),IR(1, 0)}, // DebugSource in opencl_debuginfo_100 - {36,IR(1098, 8),IR(48813, 17),IR(1, 0)}, // DebugModuleINTEL in opencl_debuginfo_100 - {0,IR(10, 1),IR(48830, 5),IR(1, 0)}, // acos in opencl_std_100 - {1,IR(10, 1),IR(48835, 6),IR(1, 0)}, // acosh in opencl_std_100 - {2,IR(10, 1),IR(48841, 7),IR(1, 0)}, // acospi in opencl_std_100 - {3,IR(10, 1),IR(48848, 5),IR(1, 0)}, // asin in opencl_std_100 - {4,IR(10, 1),IR(48853, 6),IR(1, 0)}, // asinh in opencl_std_100 - {5,IR(10, 1),IR(48859, 7),IR(1, 0)}, // asinpi in opencl_std_100 - {6,IR(10, 1),IR(48866, 5),IR(1, 0)}, // atan in opencl_std_100 - {7,IR(36, 2),IR(48871, 6),IR(1, 0)}, // atan2 in opencl_std_100 - {8,IR(10, 1),IR(48877, 6),IR(1, 0)}, // atanh in opencl_std_100 - {9,IR(10, 1),IR(48883, 7),IR(1, 0)}, // atanpi in opencl_std_100 - {10,IR(36, 2),IR(48890, 8),IR(1, 0)}, // atan2pi in opencl_std_100 - {11,IR(10, 1),IR(48898, 5),IR(1, 0)}, // cbrt in opencl_std_100 - {12,IR(10, 1),IR(48903, 5),IR(1, 0)}, // ceil in opencl_std_100 - {13,IR(36, 2),IR(48908, 9),IR(1, 0)}, // copysign in opencl_std_100 - {14,IR(10, 1),IR(48917, 4),IR(1, 0)}, // cos in opencl_std_100 - {15,IR(10, 1),IR(48921, 5),IR(1, 0)}, // cosh in opencl_std_100 - {16,IR(10, 1),IR(48926, 6),IR(1, 0)}, // cospi in opencl_std_100 - {17,IR(10, 1),IR(48932, 5),IR(1, 0)}, // erfc in opencl_std_100 - {18,IR(10, 1),IR(48937, 4),IR(1, 0)}, // erf in opencl_std_100 - {19,IR(10, 1),IR(48941, 4),IR(1, 0)}, // exp in opencl_std_100 - {20,IR(10, 1),IR(48945, 5),IR(1, 0)}, // exp2 in opencl_std_100 - {21,IR(10, 1),IR(48950, 6),IR(1, 0)}, // exp10 in opencl_std_100 - {22,IR(10, 1),IR(48956, 6),IR(1, 0)}, // expm1 in opencl_std_100 - {23,IR(10, 1),IR(48962, 5),IR(1, 0)}, // fabs in opencl_std_100 - {24,IR(36, 2),IR(48967, 5),IR(1, 0)}, // fdim in opencl_std_100 - {25,IR(10, 1),IR(48972, 6),IR(1, 0)}, // floor in opencl_std_100 - {26,IR(33, 3),IR(48978, 4),IR(1, 0)}, // fma in opencl_std_100 - {27,IR(36, 2),IR(48982, 5),IR(1, 0)}, // fmax in opencl_std_100 - {28,IR(36, 2),IR(48987, 5),IR(1, 0)}, // fmin in opencl_std_100 - {29,IR(36, 2),IR(48992, 5),IR(1, 0)}, // fmod in opencl_std_100 - {30,IR(36, 2),IR(48997, 6),IR(1, 0)}, // fract in opencl_std_100 - {31,IR(36, 2),IR(49003, 6),IR(1, 0)}, // frexp in opencl_std_100 - {32,IR(36, 2),IR(49009, 6),IR(1, 0)}, // hypot in opencl_std_100 - {33,IR(10, 1),IR(49015, 6),IR(1, 0)}, // ilogb in opencl_std_100 - {34,IR(36, 2),IR(49021, 6),IR(1, 0)}, // ldexp in opencl_std_100 - {35,IR(10, 1),IR(49027, 7),IR(1, 0)}, // lgamma in opencl_std_100 - {36,IR(36, 2),IR(49034, 9),IR(1, 0)}, // lgamma_r in opencl_std_100 - {37,IR(10, 1),IR(49043, 4),IR(1, 0)}, // log in opencl_std_100 - {38,IR(10, 1),IR(49047, 5),IR(1, 0)}, // log2 in opencl_std_100 - {39,IR(10, 1),IR(49052, 6),IR(1, 0)}, // log10 in opencl_std_100 - {40,IR(10, 1),IR(49058, 6),IR(1, 0)}, // log1p in opencl_std_100 - {41,IR(10, 1),IR(49064, 5),IR(1, 0)}, // logb in opencl_std_100 - {42,IR(33, 3),IR(49069, 4),IR(1, 0)}, // mad in opencl_std_100 - {43,IR(36, 2),IR(49073, 7),IR(1, 0)}, // maxmag in opencl_std_100 - {44,IR(36, 2),IR(49080, 7),IR(1, 0)}, // minmag in opencl_std_100 - {45,IR(36, 2),IR(49087, 5),IR(1, 0)}, // modf in opencl_std_100 - {46,IR(10, 1),IR(49092, 4),IR(1, 0)}, // nan in opencl_std_100 - {47,IR(36, 2),IR(49096, 10),IR(1, 0)}, // nextafter in opencl_std_100 - {48,IR(36, 2),IR(49106, 4),IR(1, 0)}, // pow in opencl_std_100 - {49,IR(36, 2),IR(49110, 5),IR(1, 0)}, // pown in opencl_std_100 - {50,IR(36, 2),IR(49115, 5),IR(1, 0)}, // powr in opencl_std_100 - {51,IR(36, 2),IR(49120, 10),IR(1, 0)}, // remainder in opencl_std_100 - {52,IR(33, 3),IR(49130, 7),IR(1, 0)}, // remquo in opencl_std_100 - {53,IR(10, 1),IR(49137, 5),IR(1, 0)}, // rint in opencl_std_100 - {54,IR(36, 2),IR(49142, 6),IR(1, 0)}, // rootn in opencl_std_100 - {55,IR(10, 1),IR(49148, 6),IR(1, 0)}, // round in opencl_std_100 - {56,IR(10, 1),IR(49154, 6),IR(1, 0)}, // rsqrt in opencl_std_100 - {57,IR(10, 1),IR(49160, 4),IR(1, 0)}, // sin in opencl_std_100 - {58,IR(36, 2),IR(49164, 7),IR(1, 0)}, // sincos in opencl_std_100 - {59,IR(10, 1),IR(49171, 5),IR(1, 0)}, // sinh in opencl_std_100 - {60,IR(10, 1),IR(49176, 6),IR(1, 0)}, // sinpi in opencl_std_100 - {61,IR(10, 1),IR(49182, 5),IR(1, 0)}, // sqrt in opencl_std_100 - {62,IR(10, 1),IR(49187, 4),IR(1, 0)}, // tan in opencl_std_100 - {63,IR(10, 1),IR(49191, 5),IR(1, 0)}, // tanh in opencl_std_100 - {64,IR(10, 1),IR(49196, 6),IR(1, 0)}, // tanpi in opencl_std_100 - {65,IR(10, 1),IR(49202, 7),IR(1, 0)}, // tgamma in opencl_std_100 - {66,IR(10, 1),IR(49209, 6),IR(1, 0)}, // trunc in opencl_std_100 - {67,IR(10, 1),IR(49215, 9),IR(1, 0)}, // half_cos in opencl_std_100 - {68,IR(36, 2),IR(49224, 12),IR(1, 0)}, // half_divide in opencl_std_100 - {69,IR(10, 1),IR(49236, 9),IR(1, 0)}, // half_exp in opencl_std_100 - {70,IR(10, 1),IR(49245, 10),IR(1, 0)}, // half_exp2 in opencl_std_100 - {71,IR(10, 1),IR(49255, 11),IR(1, 0)}, // half_exp10 in opencl_std_100 - {72,IR(10, 1),IR(49266, 9),IR(1, 0)}, // half_log in opencl_std_100 - {73,IR(10, 1),IR(49275, 10),IR(1, 0)}, // half_log2 in opencl_std_100 - {74,IR(10, 1),IR(49285, 11),IR(1, 0)}, // half_log10 in opencl_std_100 - {75,IR(36, 2),IR(49296, 10),IR(1, 0)}, // half_powr in opencl_std_100 - {76,IR(10, 1),IR(49306, 11),IR(1, 0)}, // half_recip in opencl_std_100 - {77,IR(10, 1),IR(49317, 11),IR(1, 0)}, // half_rsqrt in opencl_std_100 - {78,IR(10, 1),IR(49328, 9),IR(1, 0)}, // half_sin in opencl_std_100 - {79,IR(10, 1),IR(49337, 10),IR(1, 0)}, // half_sqrt in opencl_std_100 - {80,IR(10, 1),IR(49347, 9),IR(1, 0)}, // half_tan in opencl_std_100 - {81,IR(10, 1),IR(49356, 11),IR(1, 0)}, // native_cos in opencl_std_100 - {82,IR(36, 2),IR(49367, 14),IR(1, 0)}, // native_divide in opencl_std_100 - {83,IR(10, 1),IR(49381, 11),IR(1, 0)}, // native_exp in opencl_std_100 - {84,IR(10, 1),IR(49392, 12),IR(1, 0)}, // native_exp2 in opencl_std_100 - {85,IR(10, 1),IR(49404, 13),IR(1, 0)}, // native_exp10 in opencl_std_100 - {86,IR(10, 1),IR(49417, 11),IR(1, 0)}, // native_log in opencl_std_100 - {87,IR(10, 1),IR(49428, 12),IR(1, 0)}, // native_log2 in opencl_std_100 - {88,IR(10, 1),IR(49440, 13),IR(1, 0)}, // native_log10 in opencl_std_100 - {89,IR(36, 2),IR(49453, 12),IR(1, 0)}, // native_powr in opencl_std_100 - {90,IR(10, 1),IR(49465, 13),IR(1, 0)}, // native_recip in opencl_std_100 - {91,IR(10, 1),IR(49478, 13),IR(1, 0)}, // native_rsqrt in opencl_std_100 - {92,IR(10, 1),IR(49491, 11),IR(1, 0)}, // native_sin in opencl_std_100 - {93,IR(10, 1),IR(49502, 12),IR(1, 0)}, // native_sqrt in opencl_std_100 - {94,IR(10, 1),IR(49514, 11),IR(1, 0)}, // native_tan in opencl_std_100 - {95,IR(33, 3),IR(49525, 7),IR(1, 0)}, // fclamp in opencl_std_100 - {96,IR(10, 1),IR(49532, 8),IR(1, 0)}, // degrees in opencl_std_100 - {97,IR(36, 2),IR(49540, 12),IR(1, 0)}, // fmax_common in opencl_std_100 - {98,IR(36, 2),IR(49552, 12),IR(1, 0)}, // fmin_common in opencl_std_100 - {99,IR(33, 3),IR(49564, 4),IR(1, 0)}, // mix in opencl_std_100 - {100,IR(10, 1),IR(49568, 8),IR(1, 0)}, // radians in opencl_std_100 - {101,IR(36, 2),IR(49576, 5),IR(1, 0)}, // step in opencl_std_100 - {102,IR(33, 3),IR(49581, 11),IR(1, 0)}, // smoothstep in opencl_std_100 - {103,IR(10, 1),IR(49592, 5),IR(1, 0)}, // sign in opencl_std_100 - {104,IR(36, 2),IR(49597, 6),IR(1, 0)}, // cross in opencl_std_100 - {105,IR(36, 2),IR(49603, 9),IR(1, 0)}, // distance in opencl_std_100 - {106,IR(10, 1),IR(49612, 7),IR(1, 0)}, // length in opencl_std_100 - {107,IR(10, 1),IR(49619, 10),IR(1, 0)}, // normalize in opencl_std_100 - {108,IR(36, 2),IR(49629, 14),IR(1, 0)}, // fast_distance in opencl_std_100 - {109,IR(10, 1),IR(49643, 12),IR(1, 0)}, // fast_length in opencl_std_100 - {110,IR(10, 1),IR(49655, 15),IR(1, 0)}, // fast_normalize in opencl_std_100 - {141,IR(10, 1),IR(49670, 6),IR(1, 0)}, // s_abs in opencl_std_100 - {142,IR(36, 2),IR(49676, 11),IR(1, 0)}, // s_abs_diff in opencl_std_100 - {143,IR(36, 2),IR(49687, 10),IR(1, 0)}, // s_add_sat in opencl_std_100 - {144,IR(36, 2),IR(49697, 10),IR(1, 0)}, // u_add_sat in opencl_std_100 - {145,IR(36, 2),IR(49707, 7),IR(1, 0)}, // s_hadd in opencl_std_100 - {146,IR(36, 2),IR(49714, 7),IR(1, 0)}, // u_hadd in opencl_std_100 - {147,IR(36, 2),IR(49721, 8),IR(1, 0)}, // s_rhadd in opencl_std_100 - {148,IR(36, 2),IR(49729, 8),IR(1, 0)}, // u_rhadd in opencl_std_100 - {149,IR(33, 3),IR(49737, 8),IR(1, 0)}, // s_clamp in opencl_std_100 - {150,IR(33, 3),IR(49745, 8),IR(1, 0)}, // u_clamp in opencl_std_100 - {151,IR(10, 1),IR(49753, 4),IR(1, 0)}, // clz in opencl_std_100 - {152,IR(10, 1),IR(49757, 4),IR(1, 0)}, // ctz in opencl_std_100 - {153,IR(33, 3),IR(49761, 9),IR(1, 0)}, // s_mad_hi in opencl_std_100 - {154,IR(33, 3),IR(49770, 10),IR(1, 0)}, // u_mad_sat in opencl_std_100 - {155,IR(33, 3),IR(49780, 10),IR(1, 0)}, // s_mad_sat in opencl_std_100 - {156,IR(36, 2),IR(49790, 6),IR(1, 0)}, // s_max in opencl_std_100 - {157,IR(36, 2),IR(49796, 6),IR(1, 0)}, // u_max in opencl_std_100 - {158,IR(36, 2),IR(49802, 6),IR(1, 0)}, // s_min in opencl_std_100 - {159,IR(36, 2),IR(49808, 6),IR(1, 0)}, // u_min in opencl_std_100 - {160,IR(36, 2),IR(49814, 9),IR(1, 0)}, // s_mul_hi in opencl_std_100 - {161,IR(36, 2),IR(49823, 7),IR(1, 0)}, // rotate in opencl_std_100 - {162,IR(36, 2),IR(49830, 10),IR(1, 0)}, // s_sub_sat in opencl_std_100 - {163,IR(36, 2),IR(49840, 10),IR(1, 0)}, // u_sub_sat in opencl_std_100 - {164,IR(36, 2),IR(49850, 11),IR(1, 0)}, // u_upsample in opencl_std_100 - {165,IR(36, 2),IR(49861, 11),IR(1, 0)}, // s_upsample in opencl_std_100 - {166,IR(10, 1),IR(49872, 9),IR(1, 0)}, // popcount in opencl_std_100 - {167,IR(33, 3),IR(49881, 8),IR(1, 0)}, // s_mad24 in opencl_std_100 - {168,IR(33, 3),IR(49889, 8),IR(1, 0)}, // u_mad24 in opencl_std_100 - {169,IR(36, 2),IR(49897, 8),IR(1, 0)}, // s_mul24 in opencl_std_100 - {170,IR(36, 2),IR(49905, 8),IR(1, 0)}, // u_mul24 in opencl_std_100 - {171,IR(1106, 3),IR(49913, 7),IR(1, 0)}, // vloadn in opencl_std_100 - {172,IR(33, 3),IR(49920, 8),IR(1, 0)}, // vstoren in opencl_std_100 - {173,IR(36, 2),IR(49928, 11),IR(1, 0)}, // vload_half in opencl_std_100 - {174,IR(1106, 3),IR(49939, 12),IR(1, 0)}, // vload_halfn in opencl_std_100 - {175,IR(33, 3),IR(49951, 12),IR(1, 0)}, // vstore_half in opencl_std_100 - {176,IR(1109, 4),IR(49963, 14),IR(1, 0)}, // vstore_half_r in opencl_std_100 - {177,IR(33, 3),IR(49977, 13),IR(1, 0)}, // vstore_halfn in opencl_std_100 - {178,IR(1109, 4),IR(49990, 15),IR(1, 0)}, // vstore_halfn_r in opencl_std_100 - {179,IR(1106, 3),IR(50005, 13),IR(1, 0)}, // vloada_halfn in opencl_std_100 - {180,IR(33, 3),IR(50018, 14),IR(1, 0)}, // vstorea_halfn in opencl_std_100 - {181,IR(1109, 4),IR(50032, 16),IR(1, 0)}, // vstorea_halfn_r in opencl_std_100 - {182,IR(36, 2),IR(50048, 8),IR(1, 0)}, // shuffle in opencl_std_100 - {183,IR(33, 3),IR(50056, 9),IR(1, 0)}, // shuffle2 in opencl_std_100 - {184,IR(168, 2),IR(50065, 7),IR(1, 0)}, // printf in opencl_std_100 - {185,IR(36, 2),IR(50072, 9),IR(1, 0)}, // prefetch in opencl_std_100 - {186,IR(33, 3),IR(50081, 10),IR(1, 0)}, // bitselect in opencl_std_100 - {187,IR(33, 3),IR(50091, 7),IR(1, 0)}, // select in opencl_std_100 - {201,IR(10, 1),IR(50098, 6),IR(1, 0)}, // u_abs in opencl_std_100 - {202,IR(36, 2),IR(50104, 11),IR(1, 0)}, // u_abs_diff in opencl_std_100 - {203,IR(36, 2),IR(50115, 9),IR(1, 0)}, // u_mul_hi in opencl_std_100 - {204,IR(33, 3),IR(50124, 9),IR(1, 0)}, // u_mad_hi in opencl_std_100 - {1,IR(10, 1),IR(50133, 17),IR(1, 0)}, // CubeFaceIndexAMD in spv_amd_gcn_shader - {2,IR(10, 1),IR(50150, 17),IR(1, 0)}, // CubeFaceCoordAMD in spv_amd_gcn_shader - {3,IR(0, 0),IR(50167, 8),IR(1, 0)}, // TimeAMD in spv_amd_gcn_shader - {1,IR(36, 2),IR(50175, 22),IR(1, 0)}, // SwizzleInvocationsAMD in spv_amd_shader_ballot - {2,IR(36, 2),IR(50197, 28),IR(1, 0)}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot - {3,IR(33, 3),IR(50225, 19),IR(1, 0)}, // WriteInvocationAMD in spv_amd_shader_ballot - {4,IR(10, 1),IR(50244, 9),IR(1, 0)}, // MbcntAMD in spv_amd_shader_ballot - {1,IR(36, 2),IR(50253, 23),IR(1, 0)}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter - {1,IR(33, 3),IR(50276, 9),IR(1, 0)}, // FMin3AMD in spv_amd_shader_trinary_minmax - {2,IR(33, 3),IR(50285, 9),IR(1, 0)}, // UMin3AMD in spv_amd_shader_trinary_minmax - {3,IR(33, 3),IR(50294, 9),IR(1, 0)}, // SMin3AMD in spv_amd_shader_trinary_minmax - {4,IR(33, 3),IR(50303, 9),IR(1, 0)}, // FMax3AMD in spv_amd_shader_trinary_minmax - {5,IR(33, 3),IR(50312, 9),IR(1, 0)}, // UMax3AMD in spv_amd_shader_trinary_minmax - {6,IR(33, 3),IR(50321, 9),IR(1, 0)}, // SMax3AMD in spv_amd_shader_trinary_minmax - {7,IR(33, 3),IR(50330, 9),IR(1, 0)}, // FMid3AMD in spv_amd_shader_trinary_minmax - {8,IR(33, 3),IR(50339, 9),IR(1, 0)}, // UMid3AMD in spv_amd_shader_trinary_minmax - {9,IR(33, 3),IR(50348, 9),IR(1, 0)}, // SMid3AMD in spv_amd_shader_trinary_minmax + {0,IR(0, 0),IR(50044, 14),IR(1, 0)}, // DebugInfoNone in debuginfo + {1,IR(52, 3),IR(50058, 21),IR(1, 0)}, // DebugCompilationUnit in debuginfo + {2,IR(803, 3),IR(50131, 15),IR(1, 0)}, // DebugTypeBasic in debuginfo + {3,IR(806, 3),IR(50180, 17),IR(1, 0)}, // DebugTypePointer in debuginfo + {4,IR(809, 2),IR(50235, 19),IR(1, 0)}, // DebugTypeQualifier in debuginfo + {5,IR(168, 2),IR(50254, 15),IR(1, 0)}, // DebugTypeArray in debuginfo + {6,IR(261, 2),IR(50269, 16),IR(1, 0)}, // DebugTypeVector in debuginfo + {7,IR(811, 6),IR(50285, 13),IR(1, 0)}, // DebugTypedef in debuginfo + {8,IR(168, 2),IR(50298, 18),IR(1, 0)}, // DebugTypeFunction in debuginfo + {9,IR(817, 9),IR(50316, 14),IR(1, 0)}, // DebugTypeEnum in debuginfo + {10,IR(826, 9),IR(50368, 19),IR(1, 0)}, // DebugTypeComposite in debuginfo + {11,IR(835, 10),IR(50387, 16),IR(1, 0)}, // DebugTypeMember in debuginfo + {12,IR(845, 5),IR(50403, 21),IR(1, 0)}, // DebugTypeInheritance in debuginfo + {13,IR(36, 2),IR(50424, 21),IR(1, 0)}, // DebugTypePtrToMember in debuginfo + {14,IR(168, 2),IR(50445, 18),IR(1, 0)}, // DebugTypeTemplate in debuginfo + {15,IR(850, 6),IR(50463, 27),IR(1, 0)}, // DebugTypeTemplateParameter in debuginfo + {16,IR(856, 5),IR(50490, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in debuginfo + {17,IR(861, 5),IR(50525, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in debuginfo + {18,IR(835, 10),IR(50556, 20),IR(1, 0)}, // DebugGlobalVariable in debuginfo + {19,IR(866, 8),IR(50576, 25),IR(1, 0)}, // DebugFunctionDeclaration in debuginfo + {20,IR(874, 11),IR(50601, 14),IR(1, 0)}, // DebugFunction in debuginfo + {21,IR(885, 5),IR(50615, 18),IR(1, 0)}, // DebugLexicalBlock in debuginfo + {22,IR(890, 3),IR(50633, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in debuginfo + {23,IR(893, 2),IR(50664, 11),IR(1, 0)}, // DebugScope in debuginfo + {24,IR(0, 0),IR(50675, 13),IR(1, 0)}, // DebugNoScope in debuginfo + {25,IR(895, 3),IR(50688, 15),IR(1, 0)}, // DebugInlinedAt in debuginfo + {26,IR(898, 7),IR(50745, 19),IR(1, 0)}, // DebugLocalVariable in debuginfo + {27,IR(36, 2),IR(50764, 21),IR(1, 0)}, // DebugInlinedVariable in debuginfo + {28,IR(33, 3),IR(50785, 13),IR(1, 0)}, // DebugDeclare in debuginfo + {29,IR(375, 3),IR(50798, 11),IR(1, 0)}, // DebugValue in debuginfo + {30,IR(905, 2),IR(50842, 15),IR(1, 0)}, // DebugOperation in debuginfo + {31,IR(739, 1),IR(50857, 16),IR(1, 0)}, // DebugExpression in debuginfo + {32,IR(907, 4),IR(50873, 14),IR(1, 0)}, // DebugMacroDef in debuginfo + {33,IR(890, 3),IR(50887, 16),IR(1, 0)}, // DebugMacroUndef in debuginfo + {1,IR(10, 1),IR(50903, 6),IR(1, 0)}, // Round in glsl_std_450 + {2,IR(10, 1),IR(50909, 10),IR(1, 0)}, // RoundEven in glsl_std_450 + {3,IR(10, 1),IR(50919, 6),IR(1, 0)}, // Trunc in glsl_std_450 + {4,IR(10, 1),IR(50925, 5),IR(1, 0)}, // FAbs in glsl_std_450 + {5,IR(10, 1),IR(50930, 5),IR(1, 0)}, // SAbs in glsl_std_450 + {6,IR(10, 1),IR(50935, 6),IR(1, 0)}, // FSign in glsl_std_450 + {7,IR(10, 1),IR(50941, 6),IR(1, 0)}, // SSign in glsl_std_450 + {8,IR(10, 1),IR(50947, 6),IR(1, 0)}, // Floor in glsl_std_450 + {9,IR(10, 1),IR(50953, 5),IR(1, 0)}, // Ceil in glsl_std_450 + {10,IR(10, 1),IR(50958, 6),IR(1, 0)}, // Fract in glsl_std_450 + {11,IR(10, 1),IR(50964, 8),IR(1, 0)}, // Radians in glsl_std_450 + {12,IR(10, 1),IR(50972, 8),IR(1, 0)}, // Degrees in glsl_std_450 + {13,IR(10, 1),IR(50980, 4),IR(1, 0)}, // Sin in glsl_std_450 + {14,IR(10, 1),IR(50984, 4),IR(1, 0)}, // Cos in glsl_std_450 + {15,IR(10, 1),IR(50988, 4),IR(1, 0)}, // Tan in glsl_std_450 + {16,IR(10, 1),IR(50992, 5),IR(1, 0)}, // Asin in glsl_std_450 + {17,IR(10, 1),IR(50997, 5),IR(1, 0)}, // Acos in glsl_std_450 + {18,IR(10, 1),IR(51002, 5),IR(1, 0)}, // Atan in glsl_std_450 + {19,IR(10, 1),IR(51007, 5),IR(1, 0)}, // Sinh in glsl_std_450 + {20,IR(10, 1),IR(51012, 5),IR(1, 0)}, // Cosh in glsl_std_450 + {21,IR(10, 1),IR(51017, 5),IR(1, 0)}, // Tanh in glsl_std_450 + {22,IR(10, 1),IR(51022, 6),IR(1, 0)}, // Asinh in glsl_std_450 + {23,IR(10, 1),IR(51028, 6),IR(1, 0)}, // Acosh in glsl_std_450 + {24,IR(10, 1),IR(51034, 6),IR(1, 0)}, // Atanh in glsl_std_450 + {25,IR(36, 2),IR(51040, 6),IR(1, 0)}, // Atan2 in glsl_std_450 + {26,IR(36, 2),IR(51046, 4),IR(1, 0)}, // Pow in glsl_std_450 + {27,IR(10, 1),IR(51050, 4),IR(1, 0)}, // Exp in glsl_std_450 + {28,IR(10, 1),IR(51054, 4),IR(1, 0)}, // Log in glsl_std_450 + {29,IR(10, 1),IR(51058, 5),IR(1, 0)}, // Exp2 in glsl_std_450 + {30,IR(10, 1),IR(51063, 5),IR(1, 0)}, // Log2 in glsl_std_450 + {31,IR(10, 1),IR(51068, 5),IR(1, 0)}, // Sqrt in glsl_std_450 + {32,IR(10, 1),IR(51073, 12),IR(1, 0)}, // InverseSqrt in glsl_std_450 + {33,IR(10, 1),IR(51085, 12),IR(1, 0)}, // Determinant in glsl_std_450 + {34,IR(10, 1),IR(51097, 14),IR(1, 0)}, // MatrixInverse in glsl_std_450 + {35,IR(36, 2),IR(51111, 5),IR(1, 0)}, // Modf in glsl_std_450 + {36,IR(10, 1),IR(51116, 11),IR(1, 0)}, // ModfStruct in glsl_std_450 + {37,IR(36, 2),IR(51127, 5),IR(1, 0)}, // FMin in glsl_std_450 + {38,IR(36, 2),IR(51132, 5),IR(1, 0)}, // UMin in glsl_std_450 + {39,IR(36, 2),IR(51137, 5),IR(1, 0)}, // SMin in glsl_std_450 + {40,IR(36, 2),IR(51142, 5),IR(1, 0)}, // FMax in glsl_std_450 + {41,IR(36, 2),IR(51147, 5),IR(1, 0)}, // UMax in glsl_std_450 + {42,IR(36, 2),IR(51152, 5),IR(1, 0)}, // SMax in glsl_std_450 + {43,IR(33, 3),IR(51157, 7),IR(1, 0)}, // FClamp in glsl_std_450 + {44,IR(33, 3),IR(51164, 7),IR(1, 0)}, // UClamp in glsl_std_450 + {45,IR(33, 3),IR(51171, 7),IR(1, 0)}, // SClamp in glsl_std_450 + {46,IR(33, 3),IR(51178, 5),IR(1, 0)}, // FMix in glsl_std_450 + {47,IR(33, 3),IR(51183, 5),IR(1, 0)}, // IMix in glsl_std_450 + {48,IR(36, 2),IR(51188, 5),IR(1, 0)}, // Step in glsl_std_450 + {49,IR(33, 3),IR(51193, 11),IR(1, 0)}, // SmoothStep in glsl_std_450 + {50,IR(33, 3),IR(51204, 4),IR(1, 0)}, // Fma in glsl_std_450 + {51,IR(36, 2),IR(51208, 6),IR(1, 0)}, // Frexp in glsl_std_450 + {52,IR(10, 1),IR(51214, 12),IR(1, 0)}, // FrexpStruct in glsl_std_450 + {53,IR(36, 2),IR(51226, 6),IR(1, 0)}, // Ldexp in glsl_std_450 + {54,IR(10, 1),IR(51232, 13),IR(1, 0)}, // PackSnorm4x8 in glsl_std_450 + {55,IR(10, 1),IR(51245, 13),IR(1, 0)}, // PackUnorm4x8 in glsl_std_450 + {56,IR(10, 1),IR(51258, 14),IR(1, 0)}, // PackSnorm2x16 in glsl_std_450 + {57,IR(10, 1),IR(51272, 14),IR(1, 0)}, // PackUnorm2x16 in glsl_std_450 + {58,IR(10, 1),IR(51286, 13),IR(1, 0)}, // PackHalf2x16 in glsl_std_450 + {59,IR(10, 1),IR(51299, 15),IR(315, 1)}, // PackDouble2x32 in glsl_std_450 + {60,IR(10, 1),IR(51314, 16),IR(1, 0)}, // UnpackSnorm2x16 in glsl_std_450 + {61,IR(10, 1),IR(51330, 16),IR(1, 0)}, // UnpackUnorm2x16 in glsl_std_450 + {62,IR(10, 1),IR(51346, 15),IR(1, 0)}, // UnpackHalf2x16 in glsl_std_450 + {63,IR(10, 1),IR(51361, 15),IR(1, 0)}, // UnpackSnorm4x8 in glsl_std_450 + {64,IR(10, 1),IR(51376, 15),IR(1, 0)}, // UnpackUnorm4x8 in glsl_std_450 + {65,IR(10, 1),IR(51391, 17),IR(315, 1)}, // UnpackDouble2x32 in glsl_std_450 + {66,IR(10, 1),IR(51408, 7),IR(1, 0)}, // Length in glsl_std_450 + {67,IR(36, 2),IR(51415, 9),IR(1, 0)}, // Distance in glsl_std_450 + {68,IR(36, 2),IR(51424, 6),IR(1, 0)}, // Cross in glsl_std_450 + {69,IR(10, 1),IR(51430, 10),IR(1, 0)}, // Normalize in glsl_std_450 + {70,IR(33, 3),IR(51440, 12),IR(1, 0)}, // FaceForward in glsl_std_450 + {71,IR(36, 2),IR(51452, 8),IR(1, 0)}, // Reflect in glsl_std_450 + {72,IR(33, 3),IR(51460, 8),IR(1, 0)}, // Refract in glsl_std_450 + {73,IR(10, 1),IR(51468, 9),IR(1, 0)}, // FindILsb in glsl_std_450 + {74,IR(10, 1),IR(51477, 9),IR(1, 0)}, // FindSMsb in glsl_std_450 + {75,IR(10, 1),IR(51486, 9),IR(1, 0)}, // FindUMsb in glsl_std_450 + {76,IR(10, 1),IR(51495, 22),IR(316, 1)}, // InterpolateAtCentroid in glsl_std_450 + {77,IR(36, 2),IR(51517, 20),IR(316, 1)}, // InterpolateAtSample in glsl_std_450 + {78,IR(36, 2),IR(51537, 20),IR(316, 1)}, // InterpolateAtOffset in glsl_std_450 + {79,IR(36, 2),IR(51557, 5),IR(1, 0)}, // NMin in glsl_std_450 + {80,IR(36, 2),IR(51562, 5),IR(1, 0)}, // NMax in glsl_std_450 + {81,IR(33, 3),IR(51567, 7),IR(1, 0)}, // NClamp in glsl_std_450 + {1,IR(399, 5),IR(5357, 7),IR(1, 0)}, // Kernel in nonsemantic_clspvreflection + {2,IR(911, 5),IR(51574, 13),IR(1, 0)}, // ArgumentInfo in nonsemantic_clspvreflection + {3,IR(916, 5),IR(51587, 22),IR(1, 0)}, // ArgumentStorageBuffer in nonsemantic_clspvreflection + {4,IR(916, 5),IR(51609, 16),IR(1, 0)}, // ArgumentUniform in nonsemantic_clspvreflection + {5,IR(554, 7),IR(51625, 25),IR(1, 0)}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection + {6,IR(554, 7),IR(51650, 19),IR(1, 0)}, // ArgumentPodUniform in nonsemantic_clspvreflection + {7,IR(916, 5),IR(51669, 24),IR(1, 0)}, // ArgumentPodPushConstant in nonsemantic_clspvreflection + {8,IR(916, 5),IR(51693, 21),IR(1, 0)}, // ArgumentSampledImage in nonsemantic_clspvreflection + {9,IR(916, 5),IR(51714, 21),IR(1, 0)}, // ArgumentStorageImage in nonsemantic_clspvreflection + {10,IR(916, 5),IR(51735, 16),IR(1, 0)}, // ArgumentSampler in nonsemantic_clspvreflection + {11,IR(916, 5),IR(51751, 18),IR(1, 0)}, // ArgumentWorkgroup in nonsemantic_clspvreflection + {12,IR(33, 3),IR(51769, 26),IR(1, 0)}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection + {13,IR(33, 3),IR(51795, 25),IR(1, 0)}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection + {14,IR(10, 1),IR(51820, 20),IR(1, 0)}, // SpecConstantWorkDim in nonsemantic_clspvreflection + {15,IR(36, 2),IR(51840, 25),IR(1, 0)}, // PushConstantGlobalOffset in nonsemantic_clspvreflection + {16,IR(36, 2),IR(51865, 30),IR(1, 0)}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection + {17,IR(36, 2),IR(51895, 23),IR(1, 0)}, // PushConstantGlobalSize in nonsemantic_clspvreflection + {18,IR(36, 2),IR(51918, 25),IR(1, 0)}, // PushConstantRegionOffset in nonsemantic_clspvreflection + {19,IR(36, 2),IR(51943, 26),IR(1, 0)}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection + {20,IR(36, 2),IR(51969, 30),IR(1, 0)}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection + {21,IR(33, 3),IR(51999, 26),IR(1, 0)}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection + {22,IR(33, 3),IR(52025, 20),IR(1, 0)}, // ConstantDataUniform in nonsemantic_clspvreflection + {23,IR(33, 3),IR(8782, 15),IR(1, 0)}, // LiteralSampler in nonsemantic_clspvreflection + {24,IR(296, 4),IR(52045, 30),IR(1, 0)}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection + {25,IR(10, 1),IR(52075, 28),IR(1, 0)}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection + {26,IR(916, 5),IR(52103, 28),IR(1, 0)}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection + {27,IR(554, 7),IR(52131, 23),IR(1, 0)}, // ArgumentPointerUniform in nonsemantic_clspvreflection + {28,IR(33, 3),IR(52154, 35),IR(1, 0)}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection + {29,IR(33, 3),IR(52189, 38),IR(1, 0)}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection + {30,IR(296, 4),IR(52227, 42),IR(1, 0)}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection + {31,IR(296, 4),IR(52269, 45),IR(1, 0)}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection + {32,IR(525, 6),IR(52314, 37),IR(1, 0)}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection + {33,IR(525, 6),IR(52351, 40),IR(1, 0)}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection + {34,IR(916, 5),IR(52391, 27),IR(1, 0)}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection + {35,IR(916, 5),IR(52418, 27),IR(1, 0)}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection + {36,IR(33, 3),IR(52445, 32),IR(1, 0)}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection + {37,IR(33, 3),IR(52477, 40),IR(1, 0)}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection + {38,IR(375, 3),IR(52517, 11),IR(1, 0)}, // PrintfInfo in nonsemantic_clspvreflection + {39,IR(33, 3),IR(52528, 26),IR(1, 0)}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection + {40,IR(33, 3),IR(52554, 32),IR(1, 0)}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection + {41,IR(296, 4),IR(52586, 34),IR(1, 0)}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection + {42,IR(36, 2),IR(52620, 22),IR(1, 0)}, // WorkgroupVariableSize in nonsemantic_clspvreflection + {0,IR(0, 0),IR(50044, 14),IR(1, 0)}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 + {1,IR(296, 4),IR(50058, 21),IR(1, 0)}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 + {2,IR(296, 4),IR(50131, 15),IR(1, 0)}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 + {3,IR(33, 3),IR(50180, 17),IR(1, 0)}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 + {4,IR(36, 2),IR(50235, 19),IR(1, 0)}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 + {5,IR(168, 2),IR(50254, 15),IR(1, 0)}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 + {6,IR(36, 2),IR(50269, 16),IR(1, 0)}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 + {7,IR(525, 6),IR(50285, 13),IR(1, 0)}, // DebugTypedef in nonsemantic_shader_debuginfo_100 + {8,IR(375, 3),IR(50298, 18),IR(1, 0)}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 + {9,IR(921, 9),IR(50316, 14),IR(1, 0)}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 + {10,IR(930, 10),IR(50368, 19),IR(1, 0)}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 + {11,IR(940, 9),IR(50387, 16),IR(1, 0)}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 + {12,IR(296, 4),IR(50403, 21),IR(1, 0)}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 + {13,IR(36, 2),IR(50424, 21),IR(1, 0)}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 + {14,IR(168, 2),IR(50445, 18),IR(1, 0)}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 + {15,IR(525, 6),IR(50463, 27),IR(1, 0)}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 + {16,IR(667, 5),IR(50490, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 + {17,IR(949, 5),IR(50525, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 + {18,IR(954, 10),IR(50556, 20),IR(1, 0)}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 + {19,IR(471, 8),IR(50576, 25),IR(1, 0)}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 + {20,IR(954, 10),IR(50601, 14),IR(1, 0)}, // DebugFunction in nonsemantic_shader_debuginfo_100 + {21,IR(916, 5),IR(50615, 18),IR(1, 0)}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 + {22,IR(33, 3),IR(50633, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 + {23,IR(893, 2),IR(50664, 11),IR(1, 0)}, // DebugScope in nonsemantic_shader_debuginfo_100 + {24,IR(0, 0),IR(50675, 13),IR(1, 0)}, // DebugNoScope in nonsemantic_shader_debuginfo_100 + {25,IR(964, 3),IR(50688, 15),IR(1, 0)}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 + {26,IR(967, 8),IR(50745, 19),IR(1, 0)}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 + {27,IR(36, 2),IR(50764, 21),IR(1, 0)}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 + {28,IR(975, 4),IR(50785, 13),IR(1, 0)}, // DebugDeclare in nonsemantic_shader_debuginfo_100 + {29,IR(975, 4),IR(50798, 11),IR(1, 0)}, // DebugValue in nonsemantic_shader_debuginfo_100 + {30,IR(168, 2),IR(50842, 15),IR(1, 0)}, // DebugOperation in nonsemantic_shader_debuginfo_100 + {31,IR(739, 1),IR(50857, 16),IR(1, 0)}, // DebugExpression in nonsemantic_shader_debuginfo_100 + {32,IR(577, 4),IR(50873, 14),IR(1, 0)}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 + {33,IR(33, 3),IR(50887, 16),IR(1, 0)}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 + {34,IR(506, 7),IR(52642, 20),IR(1, 0)}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 + {35,IR(893, 2),IR(52662, 12),IR(1, 0)}, // DebugSource in nonsemantic_shader_debuginfo_100 + {101,IR(36, 2),IR(52674, 24),IR(1, 0)}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 + {102,IR(10, 1),IR(52698, 21),IR(1, 0)}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 + {103,IR(667, 5),IR(52719, 10),IR(1, 0)}, // DebugLine in nonsemantic_shader_debuginfo_100 + {104,IR(0, 0),IR(52729, 12),IR(1, 0)}, // DebugNoLine in nonsemantic_shader_debuginfo_100 + {105,IR(36, 2),IR(52741, 21),IR(1, 0)}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 + {106,IR(10, 1),IR(52762, 17),IR(1, 0)}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 + {107,IR(296, 4),IR(52779, 16),IR(1, 0)}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 + {108,IR(33, 3),IR(52795, 16),IR(1, 0)}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 + {1,IR(757, 9),IR(52811, 14),IR(1, 0)}, // Configuration in nonsemantic_vkspreflection + {2,IR(10, 1),IR(52825, 13),IR(1, 0)}, // StartCounter in nonsemantic_vkspreflection + {3,IR(10, 1),IR(52838, 12),IR(1, 0)}, // StopCounter in nonsemantic_vkspreflection + {4,IR(296, 4),IR(52850, 14),IR(1, 0)}, // PushConstants in nonsemantic_vkspreflection + {5,IR(33, 3),IR(52864, 23),IR(1, 0)}, // SpecializationMapEntry in nonsemantic_vkspreflection + {6,IR(979, 15),IR(52887, 20),IR(1, 0)}, // DescriptorSetBuffer in nonsemantic_vkspreflection + {7,IR(994, 33),IR(52907, 19),IR(1, 0)}, // DescriptorSetImage in nonsemantic_vkspreflection + {8,IR(1027, 19),IR(52926, 21),IR(1, 0)}, // DescriptorSetSampler in nonsemantic_vkspreflection + {0,IR(0, 0),IR(50044, 14),IR(1, 0)}, // DebugInfoNone in opencl_debuginfo_100 + {1,IR(1046, 4),IR(50058, 21),IR(1, 0)}, // DebugCompilationUnit in opencl_debuginfo_100 + {2,IR(1050, 3),IR(50131, 15),IR(1, 0)}, // DebugTypeBasic in opencl_debuginfo_100 + {3,IR(1053, 3),IR(50180, 17),IR(1, 0)}, // DebugTypePointer in opencl_debuginfo_100 + {4,IR(1056, 2),IR(50235, 19),IR(1, 0)}, // DebugTypeQualifier in opencl_debuginfo_100 + {5,IR(168, 2),IR(50254, 15),IR(1, 0)}, // DebugTypeArray in opencl_debuginfo_100 + {6,IR(261, 2),IR(50269, 16),IR(1, 0)}, // DebugTypeVector in opencl_debuginfo_100 + {7,IR(811, 6),IR(50285, 13),IR(1, 0)}, // DebugTypedef in opencl_debuginfo_100 + {8,IR(1058, 3),IR(50298, 18),IR(1, 0)}, // DebugTypeFunction in opencl_debuginfo_100 + {9,IR(1061, 9),IR(50316, 14),IR(1, 0)}, // DebugTypeEnum in opencl_debuginfo_100 + {10,IR(1070, 10),IR(50368, 19),IR(1, 0)}, // DebugTypeComposite in opencl_debuginfo_100 + {11,IR(1080, 10),IR(50387, 16),IR(1, 0)}, // DebugTypeMember in opencl_debuginfo_100 + {12,IR(1090, 5),IR(50403, 21),IR(1, 0)}, // DebugTypeInheritance in opencl_debuginfo_100 + {13,IR(36, 2),IR(50424, 21),IR(1, 0)}, // DebugTypePtrToMember in opencl_debuginfo_100 + {14,IR(168, 2),IR(50445, 18),IR(1, 0)}, // DebugTypeTemplate in opencl_debuginfo_100 + {15,IR(850, 6),IR(50463, 27),IR(1, 0)}, // DebugTypeTemplateParameter in opencl_debuginfo_100 + {16,IR(856, 5),IR(50490, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 + {17,IR(861, 5),IR(50525, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 + {18,IR(1080, 10),IR(50556, 20),IR(1, 0)}, // DebugGlobalVariable in opencl_debuginfo_100 + {19,IR(1095, 8),IR(50576, 25),IR(1, 0)}, // DebugFunctionDeclaration in opencl_debuginfo_100 + {20,IR(1103, 11),IR(50601, 14),IR(1, 0)}, // DebugFunction in opencl_debuginfo_100 + {21,IR(885, 5),IR(50615, 18),IR(1, 0)}, // DebugLexicalBlock in opencl_debuginfo_100 + {22,IR(890, 3),IR(50633, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 + {23,IR(893, 2),IR(50664, 11),IR(1, 0)}, // DebugScope in opencl_debuginfo_100 + {24,IR(0, 0),IR(50675, 13),IR(1, 0)}, // DebugNoScope in opencl_debuginfo_100 + {25,IR(895, 3),IR(50688, 15),IR(1, 0)}, // DebugInlinedAt in opencl_debuginfo_100 + {26,IR(1114, 8),IR(50745, 19),IR(1, 0)}, // DebugLocalVariable in opencl_debuginfo_100 + {27,IR(36, 2),IR(50764, 21),IR(1, 0)}, // DebugInlinedVariable in opencl_debuginfo_100 + {28,IR(33, 3),IR(50785, 13),IR(1, 0)}, // DebugDeclare in opencl_debuginfo_100 + {29,IR(975, 4),IR(50798, 11),IR(1, 0)}, // DebugValue in opencl_debuginfo_100 + {30,IR(1122, 2),IR(50842, 15),IR(1, 0)}, // DebugOperation in opencl_debuginfo_100 + {31,IR(739, 1),IR(50857, 16),IR(1, 0)}, // DebugExpression in opencl_debuginfo_100 + {32,IR(907, 4),IR(50873, 14),IR(1, 0)}, // DebugMacroDef in opencl_debuginfo_100 + {33,IR(890, 3),IR(50887, 16),IR(1, 0)}, // DebugMacroUndef in opencl_debuginfo_100 + {34,IR(1124, 7),IR(52642, 20),IR(1, 0)}, // DebugImportedEntity in opencl_debuginfo_100 + {35,IR(893, 2),IR(52662, 12),IR(1, 0)}, // DebugSource in opencl_debuginfo_100 + {36,IR(1131, 8),IR(53247, 17),IR(1, 0)}, // DebugModuleINTEL in opencl_debuginfo_100 + {0,IR(10, 1),IR(53264, 5),IR(1, 0)}, // acos in opencl_std_100 + {1,IR(10, 1),IR(53269, 6),IR(1, 0)}, // acosh in opencl_std_100 + {2,IR(10, 1),IR(53275, 7),IR(1, 0)}, // acospi in opencl_std_100 + {3,IR(10, 1),IR(53282, 5),IR(1, 0)}, // asin in opencl_std_100 + {4,IR(10, 1),IR(53287, 6),IR(1, 0)}, // asinh in opencl_std_100 + {5,IR(10, 1),IR(53293, 7),IR(1, 0)}, // asinpi in opencl_std_100 + {6,IR(10, 1),IR(53300, 5),IR(1, 0)}, // atan in opencl_std_100 + {7,IR(36, 2),IR(53305, 6),IR(1, 0)}, // atan2 in opencl_std_100 + {8,IR(10, 1),IR(53311, 6),IR(1, 0)}, // atanh in opencl_std_100 + {9,IR(10, 1),IR(53317, 7),IR(1, 0)}, // atanpi in opencl_std_100 + {10,IR(36, 2),IR(53324, 8),IR(1, 0)}, // atan2pi in opencl_std_100 + {11,IR(10, 1),IR(53332, 5),IR(1, 0)}, // cbrt in opencl_std_100 + {12,IR(10, 1),IR(53337, 5),IR(1, 0)}, // ceil in opencl_std_100 + {13,IR(36, 2),IR(53342, 9),IR(1, 0)}, // copysign in opencl_std_100 + {14,IR(10, 1),IR(53351, 4),IR(1, 0)}, // cos in opencl_std_100 + {15,IR(10, 1),IR(53355, 5),IR(1, 0)}, // cosh in opencl_std_100 + {16,IR(10, 1),IR(53360, 6),IR(1, 0)}, // cospi in opencl_std_100 + {17,IR(10, 1),IR(53366, 5),IR(1, 0)}, // erfc in opencl_std_100 + {18,IR(10, 1),IR(53371, 4),IR(1, 0)}, // erf in opencl_std_100 + {19,IR(10, 1),IR(53375, 4),IR(1, 0)}, // exp in opencl_std_100 + {20,IR(10, 1),IR(53379, 5),IR(1, 0)}, // exp2 in opencl_std_100 + {21,IR(10, 1),IR(53384, 6),IR(1, 0)}, // exp10 in opencl_std_100 + {22,IR(10, 1),IR(53390, 6),IR(1, 0)}, // expm1 in opencl_std_100 + {23,IR(10, 1),IR(53396, 5),IR(1, 0)}, // fabs in opencl_std_100 + {24,IR(36, 2),IR(53401, 5),IR(1, 0)}, // fdim in opencl_std_100 + {25,IR(10, 1),IR(53406, 6),IR(1, 0)}, // floor in opencl_std_100 + {26,IR(33, 3),IR(53412, 4),IR(1, 0)}, // fma in opencl_std_100 + {27,IR(36, 2),IR(53416, 5),IR(1, 0)}, // fmax in opencl_std_100 + {28,IR(36, 2),IR(53421, 5),IR(1, 0)}, // fmin in opencl_std_100 + {29,IR(36, 2),IR(53426, 5),IR(1, 0)}, // fmod in opencl_std_100 + {30,IR(36, 2),IR(53431, 6),IR(1, 0)}, // fract in opencl_std_100 + {31,IR(36, 2),IR(53437, 6),IR(1, 0)}, // frexp in opencl_std_100 + {32,IR(36, 2),IR(53443, 6),IR(1, 0)}, // hypot in opencl_std_100 + {33,IR(10, 1),IR(53449, 6),IR(1, 0)}, // ilogb in opencl_std_100 + {34,IR(36, 2),IR(53455, 6),IR(1, 0)}, // ldexp in opencl_std_100 + {35,IR(10, 1),IR(53461, 7),IR(1, 0)}, // lgamma in opencl_std_100 + {36,IR(36, 2),IR(53468, 9),IR(1, 0)}, // lgamma_r in opencl_std_100 + {37,IR(10, 1),IR(53477, 4),IR(1, 0)}, // log in opencl_std_100 + {38,IR(10, 1),IR(53481, 5),IR(1, 0)}, // log2 in opencl_std_100 + {39,IR(10, 1),IR(53486, 6),IR(1, 0)}, // log10 in opencl_std_100 + {40,IR(10, 1),IR(53492, 6),IR(1, 0)}, // log1p in opencl_std_100 + {41,IR(10, 1),IR(53498, 5),IR(1, 0)}, // logb in opencl_std_100 + {42,IR(33, 3),IR(53503, 4),IR(1, 0)}, // mad in opencl_std_100 + {43,IR(36, 2),IR(53507, 7),IR(1, 0)}, // maxmag in opencl_std_100 + {44,IR(36, 2),IR(53514, 7),IR(1, 0)}, // minmag in opencl_std_100 + {45,IR(36, 2),IR(53521, 5),IR(1, 0)}, // modf in opencl_std_100 + {46,IR(10, 1),IR(53526, 4),IR(1, 0)}, // nan in opencl_std_100 + {47,IR(36, 2),IR(53530, 10),IR(1, 0)}, // nextafter in opencl_std_100 + {48,IR(36, 2),IR(53540, 4),IR(1, 0)}, // pow in opencl_std_100 + {49,IR(36, 2),IR(53544, 5),IR(1, 0)}, // pown in opencl_std_100 + {50,IR(36, 2),IR(53549, 5),IR(1, 0)}, // powr in opencl_std_100 + {51,IR(36, 2),IR(53554, 10),IR(1, 0)}, // remainder in opencl_std_100 + {52,IR(33, 3),IR(53564, 7),IR(1, 0)}, // remquo in opencl_std_100 + {53,IR(10, 1),IR(53571, 5),IR(1, 0)}, // rint in opencl_std_100 + {54,IR(36, 2),IR(53576, 6),IR(1, 0)}, // rootn in opencl_std_100 + {55,IR(10, 1),IR(53582, 6),IR(1, 0)}, // round in opencl_std_100 + {56,IR(10, 1),IR(53588, 6),IR(1, 0)}, // rsqrt in opencl_std_100 + {57,IR(10, 1),IR(53594, 4),IR(1, 0)}, // sin in opencl_std_100 + {58,IR(36, 2),IR(53598, 7),IR(1, 0)}, // sincos in opencl_std_100 + {59,IR(10, 1),IR(53605, 5),IR(1, 0)}, // sinh in opencl_std_100 + {60,IR(10, 1),IR(53610, 6),IR(1, 0)}, // sinpi in opencl_std_100 + {61,IR(10, 1),IR(53616, 5),IR(1, 0)}, // sqrt in opencl_std_100 + {62,IR(10, 1),IR(53621, 4),IR(1, 0)}, // tan in opencl_std_100 + {63,IR(10, 1),IR(53625, 5),IR(1, 0)}, // tanh in opencl_std_100 + {64,IR(10, 1),IR(53630, 6),IR(1, 0)}, // tanpi in opencl_std_100 + {65,IR(10, 1),IR(53636, 7),IR(1, 0)}, // tgamma in opencl_std_100 + {66,IR(10, 1),IR(53643, 6),IR(1, 0)}, // trunc in opencl_std_100 + {67,IR(10, 1),IR(53649, 9),IR(1, 0)}, // half_cos in opencl_std_100 + {68,IR(36, 2),IR(53658, 12),IR(1, 0)}, // half_divide in opencl_std_100 + {69,IR(10, 1),IR(53670, 9),IR(1, 0)}, // half_exp in opencl_std_100 + {70,IR(10, 1),IR(53679, 10),IR(1, 0)}, // half_exp2 in opencl_std_100 + {71,IR(10, 1),IR(53689, 11),IR(1, 0)}, // half_exp10 in opencl_std_100 + {72,IR(10, 1),IR(53700, 9),IR(1, 0)}, // half_log in opencl_std_100 + {73,IR(10, 1),IR(53709, 10),IR(1, 0)}, // half_log2 in opencl_std_100 + {74,IR(10, 1),IR(53719, 11),IR(1, 0)}, // half_log10 in opencl_std_100 + {75,IR(36, 2),IR(53730, 10),IR(1, 0)}, // half_powr in opencl_std_100 + {76,IR(10, 1),IR(53740, 11),IR(1, 0)}, // half_recip in opencl_std_100 + {77,IR(10, 1),IR(53751, 11),IR(1, 0)}, // half_rsqrt in opencl_std_100 + {78,IR(10, 1),IR(53762, 9),IR(1, 0)}, // half_sin in opencl_std_100 + {79,IR(10, 1),IR(53771, 10),IR(1, 0)}, // half_sqrt in opencl_std_100 + {80,IR(10, 1),IR(53781, 9),IR(1, 0)}, // half_tan in opencl_std_100 + {81,IR(10, 1),IR(53790, 11),IR(1, 0)}, // native_cos in opencl_std_100 + {82,IR(36, 2),IR(53801, 14),IR(1, 0)}, // native_divide in opencl_std_100 + {83,IR(10, 1),IR(53815, 11),IR(1, 0)}, // native_exp in opencl_std_100 + {84,IR(10, 1),IR(53826, 12),IR(1, 0)}, // native_exp2 in opencl_std_100 + {85,IR(10, 1),IR(53838, 13),IR(1, 0)}, // native_exp10 in opencl_std_100 + {86,IR(10, 1),IR(53851, 11),IR(1, 0)}, // native_log in opencl_std_100 + {87,IR(10, 1),IR(53862, 12),IR(1, 0)}, // native_log2 in opencl_std_100 + {88,IR(10, 1),IR(53874, 13),IR(1, 0)}, // native_log10 in opencl_std_100 + {89,IR(36, 2),IR(53887, 12),IR(1, 0)}, // native_powr in opencl_std_100 + {90,IR(10, 1),IR(53899, 13),IR(1, 0)}, // native_recip in opencl_std_100 + {91,IR(10, 1),IR(53912, 13),IR(1, 0)}, // native_rsqrt in opencl_std_100 + {92,IR(10, 1),IR(53925, 11),IR(1, 0)}, // native_sin in opencl_std_100 + {93,IR(10, 1),IR(53936, 12),IR(1, 0)}, // native_sqrt in opencl_std_100 + {94,IR(10, 1),IR(53948, 11),IR(1, 0)}, // native_tan in opencl_std_100 + {95,IR(33, 3),IR(53959, 7),IR(1, 0)}, // fclamp in opencl_std_100 + {96,IR(10, 1),IR(53966, 8),IR(1, 0)}, // degrees in opencl_std_100 + {97,IR(36, 2),IR(53974, 12),IR(1, 0)}, // fmax_common in opencl_std_100 + {98,IR(36, 2),IR(53986, 12),IR(1, 0)}, // fmin_common in opencl_std_100 + {99,IR(33, 3),IR(53998, 4),IR(1, 0)}, // mix in opencl_std_100 + {100,IR(10, 1),IR(54002, 8),IR(1, 0)}, // radians in opencl_std_100 + {101,IR(36, 2),IR(54010, 5),IR(1, 0)}, // step in opencl_std_100 + {102,IR(33, 3),IR(54015, 11),IR(1, 0)}, // smoothstep in opencl_std_100 + {103,IR(10, 1),IR(54026, 5),IR(1, 0)}, // sign in opencl_std_100 + {104,IR(36, 2),IR(54031, 6),IR(1, 0)}, // cross in opencl_std_100 + {105,IR(36, 2),IR(54037, 9),IR(1, 0)}, // distance in opencl_std_100 + {106,IR(10, 1),IR(54046, 7),IR(1, 0)}, // length in opencl_std_100 + {107,IR(10, 1),IR(54053, 10),IR(1, 0)}, // normalize in opencl_std_100 + {108,IR(36, 2),IR(54063, 14),IR(1, 0)}, // fast_distance in opencl_std_100 + {109,IR(10, 1),IR(54077, 12),IR(1, 0)}, // fast_length in opencl_std_100 + {110,IR(10, 1),IR(54089, 15),IR(1, 0)}, // fast_normalize in opencl_std_100 + {141,IR(10, 1),IR(54104, 6),IR(1, 0)}, // s_abs in opencl_std_100 + {142,IR(36, 2),IR(54110, 11),IR(1, 0)}, // s_abs_diff in opencl_std_100 + {143,IR(36, 2),IR(54121, 10),IR(1, 0)}, // s_add_sat in opencl_std_100 + {144,IR(36, 2),IR(54131, 10),IR(1, 0)}, // u_add_sat in opencl_std_100 + {145,IR(36, 2),IR(54141, 7),IR(1, 0)}, // s_hadd in opencl_std_100 + {146,IR(36, 2),IR(54148, 7),IR(1, 0)}, // u_hadd in opencl_std_100 + {147,IR(36, 2),IR(54155, 8),IR(1, 0)}, // s_rhadd in opencl_std_100 + {148,IR(36, 2),IR(54163, 8),IR(1, 0)}, // u_rhadd in opencl_std_100 + {149,IR(33, 3),IR(54171, 8),IR(1, 0)}, // s_clamp in opencl_std_100 + {150,IR(33, 3),IR(54179, 8),IR(1, 0)}, // u_clamp in opencl_std_100 + {151,IR(10, 1),IR(54187, 4),IR(1, 0)}, // clz in opencl_std_100 + {152,IR(10, 1),IR(54191, 4),IR(1, 0)}, // ctz in opencl_std_100 + {153,IR(33, 3),IR(54195, 9),IR(1, 0)}, // s_mad_hi in opencl_std_100 + {154,IR(33, 3),IR(54204, 10),IR(1, 0)}, // u_mad_sat in opencl_std_100 + {155,IR(33, 3),IR(54214, 10),IR(1, 0)}, // s_mad_sat in opencl_std_100 + {156,IR(36, 2),IR(54224, 6),IR(1, 0)}, // s_max in opencl_std_100 + {157,IR(36, 2),IR(54230, 6),IR(1, 0)}, // u_max in opencl_std_100 + {158,IR(36, 2),IR(54236, 6),IR(1, 0)}, // s_min in opencl_std_100 + {159,IR(36, 2),IR(54242, 6),IR(1, 0)}, // u_min in opencl_std_100 + {160,IR(36, 2),IR(54248, 9),IR(1, 0)}, // s_mul_hi in opencl_std_100 + {161,IR(36, 2),IR(54257, 7),IR(1, 0)}, // rotate in opencl_std_100 + {162,IR(36, 2),IR(54264, 10),IR(1, 0)}, // s_sub_sat in opencl_std_100 + {163,IR(36, 2),IR(54274, 10),IR(1, 0)}, // u_sub_sat in opencl_std_100 + {164,IR(36, 2),IR(54284, 11),IR(1, 0)}, // u_upsample in opencl_std_100 + {165,IR(36, 2),IR(54295, 11),IR(1, 0)}, // s_upsample in opencl_std_100 + {166,IR(10, 1),IR(54306, 9),IR(1, 0)}, // popcount in opencl_std_100 + {167,IR(33, 3),IR(54315, 8),IR(1, 0)}, // s_mad24 in opencl_std_100 + {168,IR(33, 3),IR(54323, 8),IR(1, 0)}, // u_mad24 in opencl_std_100 + {169,IR(36, 2),IR(54331, 8),IR(1, 0)}, // s_mul24 in opencl_std_100 + {170,IR(36, 2),IR(54339, 8),IR(1, 0)}, // u_mul24 in opencl_std_100 + {171,IR(1139, 3),IR(54347, 7),IR(1, 0)}, // vloadn in opencl_std_100 + {172,IR(33, 3),IR(54354, 8),IR(1, 0)}, // vstoren in opencl_std_100 + {173,IR(36, 2),IR(54362, 11),IR(1, 0)}, // vload_half in opencl_std_100 + {174,IR(1139, 3),IR(54373, 12),IR(1, 0)}, // vload_halfn in opencl_std_100 + {175,IR(33, 3),IR(54385, 12),IR(1, 0)}, // vstore_half in opencl_std_100 + {176,IR(1142, 4),IR(54397, 14),IR(1, 0)}, // vstore_half_r in opencl_std_100 + {177,IR(33, 3),IR(54411, 13),IR(1, 0)}, // vstore_halfn in opencl_std_100 + {178,IR(1142, 4),IR(54424, 15),IR(1, 0)}, // vstore_halfn_r in opencl_std_100 + {179,IR(1139, 3),IR(54439, 13),IR(1, 0)}, // vloada_halfn in opencl_std_100 + {180,IR(33, 3),IR(54452, 14),IR(1, 0)}, // vstorea_halfn in opencl_std_100 + {181,IR(1142, 4),IR(54466, 16),IR(1, 0)}, // vstorea_halfn_r in opencl_std_100 + {182,IR(36, 2),IR(54482, 8),IR(1, 0)}, // shuffle in opencl_std_100 + {183,IR(33, 3),IR(54490, 9),IR(1, 0)}, // shuffle2 in opencl_std_100 + {184,IR(168, 2),IR(54499, 7),IR(1, 0)}, // printf in opencl_std_100 + {185,IR(36, 2),IR(54506, 9),IR(1, 0)}, // prefetch in opencl_std_100 + {186,IR(33, 3),IR(54515, 10),IR(1, 0)}, // bitselect in opencl_std_100 + {187,IR(33, 3),IR(54525, 7),IR(1, 0)}, // select in opencl_std_100 + {201,IR(10, 1),IR(54532, 6),IR(1, 0)}, // u_abs in opencl_std_100 + {202,IR(36, 2),IR(54538, 11),IR(1, 0)}, // u_abs_diff in opencl_std_100 + {203,IR(36, 2),IR(54549, 9),IR(1, 0)}, // u_mul_hi in opencl_std_100 + {204,IR(33, 3),IR(54558, 9),IR(1, 0)}, // u_mad_hi in opencl_std_100 + {1,IR(10, 1),IR(54567, 17),IR(1, 0)}, // CubeFaceIndexAMD in spv_amd_gcn_shader + {2,IR(10, 1),IR(54584, 17),IR(1, 0)}, // CubeFaceCoordAMD in spv_amd_gcn_shader + {3,IR(0, 0),IR(54601, 8),IR(1, 0)}, // TimeAMD in spv_amd_gcn_shader + {1,IR(36, 2),IR(54609, 22),IR(1, 0)}, // SwizzleInvocationsAMD in spv_amd_shader_ballot + {2,IR(36, 2),IR(54631, 28),IR(1, 0)}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot + {3,IR(33, 3),IR(54659, 19),IR(1, 0)}, // WriteInvocationAMD in spv_amd_shader_ballot + {4,IR(10, 1),IR(54678, 9),IR(1, 0)}, // MbcntAMD in spv_amd_shader_ballot + {1,IR(36, 2),IR(54687, 23),IR(1, 0)}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter + {1,IR(33, 3),IR(54710, 9),IR(1, 0)}, // FMin3AMD in spv_amd_shader_trinary_minmax + {2,IR(33, 3),IR(54719, 9),IR(1, 0)}, // UMin3AMD in spv_amd_shader_trinary_minmax + {3,IR(33, 3),IR(54728, 9),IR(1, 0)}, // SMin3AMD in spv_amd_shader_trinary_minmax + {4,IR(33, 3),IR(54737, 9),IR(1, 0)}, // FMax3AMD in spv_amd_shader_trinary_minmax + {5,IR(33, 3),IR(54746, 9),IR(1, 0)}, // UMax3AMD in spv_amd_shader_trinary_minmax + {6,IR(33, 3),IR(54755, 9),IR(1, 0)}, // SMax3AMD in spv_amd_shader_trinary_minmax + {7,IR(33, 3),IR(54764, 9),IR(1, 0)}, // FMid3AMD in spv_amd_shader_trinary_minmax + {8,IR(33, 3),IR(54773, 9),IR(1, 0)}, // UMid3AMD in spv_amd_shader_trinary_minmax + {9,IR(33, 3),IR(54782, 9),IR(1, 0)}, // SMid3AMD in spv_amd_shader_trinary_minmax }}; IndexRange ExtInstByValueRangeForKind(spv_ext_inst_type_t type) { @@ -5153,431 +5395,431 @@ IndexRange ExtInstByValueRangeForKind(spv_ext_inst_type_t type) { // name // index into kExtInstByValue static const std::array kExtInstNames{{ - {IR(45624, 21), 1}, // DebugCompilationUnit in debuginfo - {IR(46351, 13), 28}, // DebugDeclare in debuginfo - {IR(46423, 16), 31}, // DebugExpression in debuginfo - {IR(46167, 14), 20}, // DebugFunction in debuginfo - {IR(46142, 25), 19}, // DebugFunctionDeclaration in debuginfo - {IR(46122, 20), 18}, // DebugGlobalVariable in debuginfo - {IR(45610, 14), 0}, // DebugInfoNone in debuginfo - {IR(46254, 15), 25}, // DebugInlinedAt in debuginfo - {IR(46330, 21), 27}, // DebugInlinedVariable in debuginfo - {IR(46181, 18), 21}, // DebugLexicalBlock in debuginfo - {IR(46199, 31), 22}, // DebugLexicalBlockDiscriminator in debuginfo - {IR(46311, 19), 26}, // DebugLocalVariable in debuginfo - {IR(46439, 14), 32}, // DebugMacroDef in debuginfo - {IR(46453, 16), 33}, // DebugMacroUndef in debuginfo - {IR(46241, 13), 24}, // DebugNoScope in debuginfo - {IR(46408, 15), 30}, // DebugOperation in debuginfo - {IR(46230, 11), 23}, // DebugScope in debuginfo - {IR(45820, 15), 5}, // DebugTypeArray in debuginfo - {IR(45697, 15), 2}, // DebugTypeBasic in debuginfo - {IR(45934, 19), 10}, // DebugTypeComposite in debuginfo - {IR(45882, 14), 9}, // DebugTypeEnum in debuginfo - {IR(45864, 18), 8}, // DebugTypeFunction in debuginfo - {IR(45969, 21), 12}, // DebugTypeInheritance in debuginfo - {IR(45953, 16), 11}, // DebugTypeMember in debuginfo - {IR(45746, 17), 3}, // DebugTypePointer in debuginfo - {IR(45990, 21), 13}, // DebugTypePtrToMember in debuginfo - {IR(45801, 19), 4}, // DebugTypeQualifier in debuginfo - {IR(46011, 18), 14}, // DebugTypeTemplate in debuginfo - {IR(46029, 27), 15}, // DebugTypeTemplateParameter in debuginfo - {IR(46091, 31), 17}, // DebugTypeTemplateParameterPack in debuginfo - {IR(46056, 35), 16}, // DebugTypeTemplateTemplateParameter in debuginfo - {IR(45835, 16), 6}, // DebugTypeVector in debuginfo - {IR(45851, 13), 7}, // DebugTypedef in debuginfo - {IR(46364, 11), 29}, // DebugValue in debuginfo - {IR(46563, 5), 50}, // Acos in glsl_std_450 - {IR(46594, 6), 56}, // Acosh in glsl_std_450 - {IR(46558, 5), 49}, // Asin in glsl_std_450 - {IR(46588, 6), 55}, // Asinh in glsl_std_450 - {IR(46568, 5), 51}, // Atan in glsl_std_450 - {IR(46606, 6), 58}, // Atan2 in glsl_std_450 - {IR(46600, 6), 57}, // Atanh in glsl_std_450 - {IR(46519, 5), 42}, // Ceil in glsl_std_450 - {IR(46550, 4), 47}, // Cos in glsl_std_450 - {IR(46578, 5), 53}, // Cosh in glsl_std_450 - {IR(46990, 6), 101}, // Cross in glsl_std_450 - {IR(46538, 8), 45}, // Degrees in glsl_std_450 - {IR(46651, 12), 66}, // Determinant in glsl_std_450 - {IR(46981, 9), 100}, // Distance in glsl_std_450 - {IR(46616, 4), 60}, // Exp in glsl_std_450 - {IR(46624, 5), 62}, // Exp2 in glsl_std_450 - {IR(46491, 5), 37}, // FAbs in glsl_std_450 - {IR(46723, 7), 76}, // FClamp in glsl_std_450 - {IR(46708, 5), 73}, // FMax in glsl_std_450 - {IR(46693, 5), 70}, // FMin in glsl_std_450 - {IR(46744, 5), 79}, // FMix in glsl_std_450 - {IR(46501, 6), 39}, // FSign in glsl_std_450 - {IR(47006, 12), 103}, // FaceForward in glsl_std_450 - {IR(47034, 9), 106}, // FindILsb in glsl_std_450 - {IR(47043, 9), 107}, // FindSMsb in glsl_std_450 - {IR(47052, 9), 108}, // FindUMsb in glsl_std_450 - {IR(46513, 6), 41}, // Floor in glsl_std_450 - {IR(46770, 4), 83}, // Fma in glsl_std_450 - {IR(46524, 6), 43}, // Fract in glsl_std_450 - {IR(46774, 6), 84}, // Frexp in glsl_std_450 - {IR(46780, 12), 85}, // FrexpStruct in glsl_std_450 - {IR(46749, 5), 80}, // IMix in glsl_std_450 - {IR(47061, 22), 109}, // InterpolateAtCentroid in glsl_std_450 - {IR(47103, 20), 111}, // InterpolateAtOffset in glsl_std_450 - {IR(47083, 20), 110}, // InterpolateAtSample in glsl_std_450 - {IR(46639, 12), 65}, // InverseSqrt in glsl_std_450 - {IR(46792, 6), 86}, // Ldexp in glsl_std_450 - {IR(46974, 7), 99}, // Length in glsl_std_450 - {IR(46620, 4), 61}, // Log in glsl_std_450 - {IR(46629, 5), 63}, // Log2 in glsl_std_450 - {IR(46663, 14), 67}, // MatrixInverse in glsl_std_450 - {IR(46677, 5), 68}, // Modf in glsl_std_450 - {IR(46682, 11), 69}, // ModfStruct in glsl_std_450 - {IR(47133, 7), 114}, // NClamp in glsl_std_450 - {IR(47128, 5), 113}, // NMax in glsl_std_450 - {IR(47123, 5), 112}, // NMin in glsl_std_450 - {IR(46996, 10), 102}, // Normalize in glsl_std_450 - {IR(46865, 15), 92}, // PackDouble2x32 in glsl_std_450 - {IR(46852, 13), 91}, // PackHalf2x16 in glsl_std_450 - {IR(46824, 14), 89}, // PackSnorm2x16 in glsl_std_450 - {IR(46798, 13), 87}, // PackSnorm4x8 in glsl_std_450 - {IR(46838, 14), 90}, // PackUnorm2x16 in glsl_std_450 - {IR(46811, 13), 88}, // PackUnorm4x8 in glsl_std_450 - {IR(46612, 4), 59}, // Pow in glsl_std_450 - {IR(46530, 8), 44}, // Radians in glsl_std_450 - {IR(47018, 8), 104}, // Reflect in glsl_std_450 - {IR(47026, 8), 105}, // Refract in glsl_std_450 - {IR(46469, 6), 34}, // Round in glsl_std_450 - {IR(46475, 10), 35}, // RoundEven in glsl_std_450 - {IR(46496, 5), 38}, // SAbs in glsl_std_450 - {IR(46737, 7), 78}, // SClamp in glsl_std_450 - {IR(46718, 5), 75}, // SMax in glsl_std_450 - {IR(46703, 5), 72}, // SMin in glsl_std_450 - {IR(46507, 6), 40}, // SSign in glsl_std_450 - {IR(46546, 4), 46}, // Sin in glsl_std_450 - {IR(46573, 5), 52}, // Sinh in glsl_std_450 - {IR(46759, 11), 82}, // SmoothStep in glsl_std_450 - {IR(46634, 5), 64}, // Sqrt in glsl_std_450 - {IR(46754, 5), 81}, // Step in glsl_std_450 - {IR(46554, 4), 48}, // Tan in glsl_std_450 - {IR(46583, 5), 54}, // Tanh in glsl_std_450 - {IR(46485, 6), 36}, // Trunc in glsl_std_450 - {IR(46730, 7), 77}, // UClamp in glsl_std_450 - {IR(46713, 5), 74}, // UMax in glsl_std_450 - {IR(46698, 5), 71}, // UMin in glsl_std_450 - {IR(46957, 17), 98}, // UnpackDouble2x32 in glsl_std_450 - {IR(46912, 15), 95}, // UnpackHalf2x16 in glsl_std_450 - {IR(46880, 16), 93}, // UnpackSnorm2x16 in glsl_std_450 - {IR(46927, 15), 96}, // UnpackSnorm4x8 in glsl_std_450 - {IR(46896, 16), 94}, // UnpackUnorm2x16 in glsl_std_450 - {IR(46942, 15), 97}, // UnpackUnorm4x8 in glsl_std_450 - {IR(47140, 13), 116}, // ArgumentInfo in nonsemantic_clspvreflection - {IR(47235, 24), 121}, // ArgumentPodPushConstant in nonsemantic_clspvreflection - {IR(47191, 25), 119}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection - {IR(47216, 19), 120}, // ArgumentPodUniform in nonsemantic_clspvreflection - {IR(47669, 28), 140}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection - {IR(47697, 23), 141}, // ArgumentPointerUniform in nonsemantic_clspvreflection - {IR(47259, 21), 122}, // ArgumentSampledImage in nonsemantic_clspvreflection - {IR(47301, 16), 124}, // ArgumentSampler in nonsemantic_clspvreflection - {IR(47153, 22), 117}, // ArgumentStorageBuffer in nonsemantic_clspvreflection - {IR(47280, 21), 123}, // ArgumentStorageImage in nonsemantic_clspvreflection - {IR(47957, 27), 148}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection - {IR(47175, 16), 118}, // ArgumentUniform in nonsemantic_clspvreflection - {IR(47984, 27), 149}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection - {IR(47317, 18), 125}, // ArgumentWorkgroup in nonsemantic_clspvreflection - {IR(48011, 32), 150}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection - {IR(47565, 26), 135}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection - {IR(47591, 20), 136}, // ConstantDataUniform in nonsemantic_clspvreflection - {IR(47835, 45), 145}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection - {IR(47917, 40), 147}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection - {IR(47793, 42), 144}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection - {IR(47880, 37), 146}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection - {IR(4642, 7), 115}, // Kernel in nonsemantic_clspvreflection - {IR(8067, 15), 137}, // LiteralSampler in nonsemantic_clspvreflection - {IR(48152, 34), 155}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection - {IR(48120, 32), 154}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection - {IR(48094, 26), 153}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection - {IR(48083, 11), 152}, // PrintfInfo in nonsemantic_clspvreflection - {IR(48043, 40), 151}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection - {IR(47755, 38), 143}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection - {IR(47720, 35), 142}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection - {IR(47611, 30), 138}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection - {IR(47431, 30), 130}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection - {IR(47406, 25), 129}, // PushConstantGlobalOffset in nonsemantic_clspvreflection - {IR(47461, 23), 131}, // PushConstantGlobalSize in nonsemantic_clspvreflection - {IR(47509, 26), 133}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection - {IR(47535, 30), 134}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection - {IR(47484, 25), 132}, // PushConstantRegionOffset in nonsemantic_clspvreflection - {IR(47361, 25), 127}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection - {IR(47641, 28), 139}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection - {IR(47386, 20), 128}, // SpecConstantWorkDim in nonsemantic_clspvreflection - {IR(47335, 26), 126}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection - {IR(48186, 22), 156}, // WorkgroupVariableSize in nonsemantic_clspvreflection - {IR(48307, 21), 197}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 - {IR(45624, 21), 158}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 - {IR(46351, 13), 185}, // DebugDeclare in nonsemantic_shader_debuginfo_100 - {IR(48345, 16), 199}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 - {IR(46423, 16), 188}, // DebugExpression in nonsemantic_shader_debuginfo_100 - {IR(46167, 14), 177}, // DebugFunction in nonsemantic_shader_debuginfo_100 - {IR(46142, 25), 176}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 - {IR(48240, 24), 193}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 - {IR(46122, 20), 175}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 - {IR(48208, 20), 191}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 - {IR(45610, 14), 157}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 - {IR(46254, 15), 182}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 - {IR(46330, 21), 184}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 - {IR(46181, 18), 178}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 - {IR(46199, 31), 179}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 - {IR(48285, 10), 195}, // DebugLine in nonsemantic_shader_debuginfo_100 - {IR(46311, 19), 183}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 - {IR(46439, 14), 189}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 - {IR(46453, 16), 190}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 - {IR(48295, 12), 196}, // DebugNoLine in nonsemantic_shader_debuginfo_100 - {IR(46241, 13), 181}, // DebugNoScope in nonsemantic_shader_debuginfo_100 - {IR(46408, 15), 187}, // DebugOperation in nonsemantic_shader_debuginfo_100 - {IR(46230, 11), 180}, // DebugScope in nonsemantic_shader_debuginfo_100 - {IR(48228, 12), 192}, // DebugSource in nonsemantic_shader_debuginfo_100 - {IR(48264, 21), 194}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 - {IR(48328, 17), 198}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 - {IR(45820, 15), 162}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 - {IR(45697, 15), 159}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 - {IR(45934, 19), 167}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 - {IR(45882, 14), 166}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 - {IR(45864, 18), 165}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 - {IR(45969, 21), 169}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 - {IR(48361, 16), 200}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 - {IR(45953, 16), 168}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 - {IR(45746, 17), 160}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 - {IR(45990, 21), 170}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 - {IR(45801, 19), 161}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 - {IR(46011, 18), 171}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 - {IR(46029, 27), 172}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 - {IR(46091, 31), 174}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 - {IR(46056, 35), 173}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 - {IR(45835, 16), 163}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 - {IR(45851, 13), 164}, // DebugTypedef in nonsemantic_shader_debuginfo_100 - {IR(46364, 11), 186}, // DebugValue in nonsemantic_shader_debuginfo_100 - {IR(48377, 14), 201}, // Configuration in nonsemantic_vkspreflection - {IR(48453, 20), 206}, // DescriptorSetBuffer in nonsemantic_vkspreflection - {IR(48473, 19), 207}, // DescriptorSetImage in nonsemantic_vkspreflection - {IR(48492, 21), 208}, // DescriptorSetSampler in nonsemantic_vkspreflection - {IR(48416, 14), 204}, // PushConstants in nonsemantic_vkspreflection - {IR(48430, 23), 205}, // SpecializationMapEntry in nonsemantic_vkspreflection - {IR(48391, 13), 202}, // StartCounter in nonsemantic_vkspreflection - {IR(48404, 12), 203}, // StopCounter in nonsemantic_vkspreflection - {IR(45624, 21), 210}, // DebugCompilationUnit in opencl_debuginfo_100 - {IR(46351, 13), 237}, // DebugDeclare in opencl_debuginfo_100 - {IR(46423, 16), 240}, // DebugExpression in opencl_debuginfo_100 - {IR(46167, 14), 229}, // DebugFunction in opencl_debuginfo_100 - {IR(46142, 25), 228}, // DebugFunctionDeclaration in opencl_debuginfo_100 - {IR(46122, 20), 227}, // DebugGlobalVariable in opencl_debuginfo_100 - {IR(48208, 20), 243}, // DebugImportedEntity in opencl_debuginfo_100 - {IR(45610, 14), 209}, // DebugInfoNone in opencl_debuginfo_100 - {IR(46254, 15), 234}, // DebugInlinedAt in opencl_debuginfo_100 - {IR(46330, 21), 236}, // DebugInlinedVariable in opencl_debuginfo_100 - {IR(46181, 18), 230}, // DebugLexicalBlock in opencl_debuginfo_100 - {IR(46199, 31), 231}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 - {IR(46311, 19), 235}, // DebugLocalVariable in opencl_debuginfo_100 - {IR(46439, 14), 241}, // DebugMacroDef in opencl_debuginfo_100 - {IR(46453, 16), 242}, // DebugMacroUndef in opencl_debuginfo_100 - {IR(48813, 17), 245}, // DebugModuleINTEL in opencl_debuginfo_100 - {IR(46241, 13), 233}, // DebugNoScope in opencl_debuginfo_100 - {IR(46408, 15), 239}, // DebugOperation in opencl_debuginfo_100 - {IR(46230, 11), 232}, // DebugScope in opencl_debuginfo_100 - {IR(48228, 12), 244}, // DebugSource in opencl_debuginfo_100 - {IR(45820, 15), 214}, // DebugTypeArray in opencl_debuginfo_100 - {IR(45697, 15), 211}, // DebugTypeBasic in opencl_debuginfo_100 - {IR(45934, 19), 219}, // DebugTypeComposite in opencl_debuginfo_100 - {IR(45882, 14), 218}, // DebugTypeEnum in opencl_debuginfo_100 - {IR(45864, 18), 217}, // DebugTypeFunction in opencl_debuginfo_100 - {IR(45969, 21), 221}, // DebugTypeInheritance in opencl_debuginfo_100 - {IR(45953, 16), 220}, // DebugTypeMember in opencl_debuginfo_100 - {IR(45746, 17), 212}, // DebugTypePointer in opencl_debuginfo_100 - {IR(45990, 21), 222}, // DebugTypePtrToMember in opencl_debuginfo_100 - {IR(45801, 19), 213}, // DebugTypeQualifier in opencl_debuginfo_100 - {IR(46011, 18), 223}, // DebugTypeTemplate in opencl_debuginfo_100 - {IR(46029, 27), 224}, // DebugTypeTemplateParameter in opencl_debuginfo_100 - {IR(46091, 31), 226}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 - {IR(46056, 35), 225}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 - {IR(45835, 16), 215}, // DebugTypeVector in opencl_debuginfo_100 - {IR(45851, 13), 216}, // DebugTypedef in opencl_debuginfo_100 - {IR(46364, 11), 238}, // DebugValue in opencl_debuginfo_100 - {IR(48830, 5), 246}, // acos in opencl_std_100 - {IR(48835, 6), 247}, // acosh in opencl_std_100 - {IR(48841, 7), 248}, // acospi in opencl_std_100 - {IR(48848, 5), 249}, // asin in opencl_std_100 - {IR(48853, 6), 250}, // asinh in opencl_std_100 - {IR(48859, 7), 251}, // asinpi in opencl_std_100 - {IR(48866, 5), 252}, // atan in opencl_std_100 - {IR(48871, 6), 253}, // atan2 in opencl_std_100 - {IR(48890, 8), 256}, // atan2pi in opencl_std_100 - {IR(48877, 6), 254}, // atanh in opencl_std_100 - {IR(48883, 7), 255}, // atanpi in opencl_std_100 - {IR(50081, 10), 402}, // bitselect in opencl_std_100 - {IR(48898, 5), 257}, // cbrt in opencl_std_100 - {IR(48903, 5), 258}, // ceil in opencl_std_100 - {IR(49753, 4), 367}, // clz in opencl_std_100 - {IR(48908, 9), 259}, // copysign in opencl_std_100 - {IR(48917, 4), 260}, // cos in opencl_std_100 - {IR(48921, 5), 261}, // cosh in opencl_std_100 - {IR(48926, 6), 262}, // cospi in opencl_std_100 - {IR(49597, 6), 350}, // cross in opencl_std_100 - {IR(49757, 4), 368}, // ctz in opencl_std_100 - {IR(49532, 8), 342}, // degrees in opencl_std_100 - {IR(49603, 9), 351}, // distance in opencl_std_100 - {IR(48937, 4), 264}, // erf in opencl_std_100 - {IR(48932, 5), 263}, // erfc in opencl_std_100 - {IR(48941, 4), 265}, // exp in opencl_std_100 - {IR(48950, 6), 267}, // exp10 in opencl_std_100 - {IR(48945, 5), 266}, // exp2 in opencl_std_100 - {IR(48956, 6), 268}, // expm1 in opencl_std_100 - {IR(48962, 5), 269}, // fabs in opencl_std_100 - {IR(49629, 14), 354}, // fast_distance in opencl_std_100 - {IR(49643, 12), 355}, // fast_length in opencl_std_100 - {IR(49655, 15), 356}, // fast_normalize in opencl_std_100 - {IR(49525, 7), 341}, // fclamp in opencl_std_100 - {IR(48967, 5), 270}, // fdim in opencl_std_100 - {IR(48972, 6), 271}, // floor in opencl_std_100 - {IR(48978, 4), 272}, // fma in opencl_std_100 - {IR(48982, 5), 273}, // fmax in opencl_std_100 - {IR(49540, 12), 343}, // fmax_common in opencl_std_100 - {IR(48987, 5), 274}, // fmin in opencl_std_100 - {IR(49552, 12), 344}, // fmin_common in opencl_std_100 - {IR(48992, 5), 275}, // fmod in opencl_std_100 - {IR(48997, 6), 276}, // fract in opencl_std_100 - {IR(49003, 6), 277}, // frexp in opencl_std_100 - {IR(49215, 9), 313}, // half_cos in opencl_std_100 - {IR(49224, 12), 314}, // half_divide in opencl_std_100 - {IR(49236, 9), 315}, // half_exp in opencl_std_100 - {IR(49255, 11), 317}, // half_exp10 in opencl_std_100 - {IR(49245, 10), 316}, // half_exp2 in opencl_std_100 - {IR(49266, 9), 318}, // half_log in opencl_std_100 - {IR(49285, 11), 320}, // half_log10 in opencl_std_100 - {IR(49275, 10), 319}, // half_log2 in opencl_std_100 - {IR(49296, 10), 321}, // half_powr in opencl_std_100 - {IR(49306, 11), 322}, // half_recip in opencl_std_100 - {IR(49317, 11), 323}, // half_rsqrt in opencl_std_100 - {IR(49328, 9), 324}, // half_sin in opencl_std_100 - {IR(49337, 10), 325}, // half_sqrt in opencl_std_100 - {IR(49347, 9), 326}, // half_tan in opencl_std_100 - {IR(49009, 6), 278}, // hypot in opencl_std_100 - {IR(49015, 6), 279}, // ilogb in opencl_std_100 - {IR(49021, 6), 280}, // ldexp in opencl_std_100 - {IR(49612, 7), 352}, // length in opencl_std_100 - {IR(49027, 7), 281}, // lgamma in opencl_std_100 - {IR(49034, 9), 282}, // lgamma_r in opencl_std_100 - {IR(49043, 4), 283}, // log in opencl_std_100 - {IR(49052, 6), 285}, // log10 in opencl_std_100 - {IR(49058, 6), 286}, // log1p in opencl_std_100 - {IR(49047, 5), 284}, // log2 in opencl_std_100 - {IR(49064, 5), 287}, // logb in opencl_std_100 - {IR(49069, 4), 288}, // mad in opencl_std_100 - {IR(49073, 7), 289}, // maxmag in opencl_std_100 - {IR(49080, 7), 290}, // minmag in opencl_std_100 - {IR(49564, 4), 345}, // mix in opencl_std_100 - {IR(49087, 5), 291}, // modf in opencl_std_100 - {IR(49092, 4), 292}, // nan in opencl_std_100 - {IR(49356, 11), 327}, // native_cos in opencl_std_100 - {IR(49367, 14), 328}, // native_divide in opencl_std_100 - {IR(49381, 11), 329}, // native_exp in opencl_std_100 - {IR(49404, 13), 331}, // native_exp10 in opencl_std_100 - {IR(49392, 12), 330}, // native_exp2 in opencl_std_100 - {IR(49417, 11), 332}, // native_log in opencl_std_100 - {IR(49440, 13), 334}, // native_log10 in opencl_std_100 - {IR(49428, 12), 333}, // native_log2 in opencl_std_100 - {IR(49453, 12), 335}, // native_powr in opencl_std_100 - {IR(49465, 13), 336}, // native_recip in opencl_std_100 - {IR(49478, 13), 337}, // native_rsqrt in opencl_std_100 - {IR(49491, 11), 338}, // native_sin in opencl_std_100 - {IR(49502, 12), 339}, // native_sqrt in opencl_std_100 - {IR(49514, 11), 340}, // native_tan in opencl_std_100 - {IR(49096, 10), 293}, // nextafter in opencl_std_100 - {IR(49619, 10), 353}, // normalize in opencl_std_100 - {IR(49872, 9), 382}, // popcount in opencl_std_100 - {IR(49106, 4), 294}, // pow in opencl_std_100 - {IR(49110, 5), 295}, // pown in opencl_std_100 - {IR(49115, 5), 296}, // powr in opencl_std_100 - {IR(50072, 9), 401}, // prefetch in opencl_std_100 - {IR(50065, 7), 400}, // printf in opencl_std_100 - {IR(49568, 8), 346}, // radians in opencl_std_100 - {IR(49120, 10), 297}, // remainder in opencl_std_100 - {IR(49130, 7), 298}, // remquo in opencl_std_100 - {IR(49137, 5), 299}, // rint in opencl_std_100 - {IR(49142, 6), 300}, // rootn in opencl_std_100 - {IR(49823, 7), 377}, // rotate in opencl_std_100 - {IR(49148, 6), 301}, // round in opencl_std_100 - {IR(49154, 6), 302}, // rsqrt in opencl_std_100 - {IR(49670, 6), 357}, // s_abs in opencl_std_100 - {IR(49676, 11), 358}, // s_abs_diff in opencl_std_100 - {IR(49687, 10), 359}, // s_add_sat in opencl_std_100 - {IR(49737, 8), 365}, // s_clamp in opencl_std_100 - {IR(49707, 7), 361}, // s_hadd in opencl_std_100 - {IR(49881, 8), 383}, // s_mad24 in opencl_std_100 - {IR(49761, 9), 369}, // s_mad_hi in opencl_std_100 - {IR(49780, 10), 371}, // s_mad_sat in opencl_std_100 - {IR(49790, 6), 372}, // s_max in opencl_std_100 - {IR(49802, 6), 374}, // s_min in opencl_std_100 - {IR(49897, 8), 385}, // s_mul24 in opencl_std_100 - {IR(49814, 9), 376}, // s_mul_hi in opencl_std_100 - {IR(49721, 8), 363}, // s_rhadd in opencl_std_100 - {IR(49830, 10), 378}, // s_sub_sat in opencl_std_100 - {IR(49861, 11), 381}, // s_upsample in opencl_std_100 - {IR(50091, 7), 403}, // select in opencl_std_100 - {IR(50048, 8), 398}, // shuffle in opencl_std_100 - {IR(50056, 9), 399}, // shuffle2 in opencl_std_100 - {IR(49592, 5), 349}, // sign in opencl_std_100 - {IR(49160, 4), 303}, // sin in opencl_std_100 - {IR(49164, 7), 304}, // sincos in opencl_std_100 - {IR(49171, 5), 305}, // sinh in opencl_std_100 - {IR(49176, 6), 306}, // sinpi in opencl_std_100 - {IR(49581, 11), 348}, // smoothstep in opencl_std_100 - {IR(49182, 5), 307}, // sqrt in opencl_std_100 - {IR(49576, 5), 347}, // step in opencl_std_100 - {IR(49187, 4), 308}, // tan in opencl_std_100 - {IR(49191, 5), 309}, // tanh in opencl_std_100 - {IR(49196, 6), 310}, // tanpi in opencl_std_100 - {IR(49202, 7), 311}, // tgamma in opencl_std_100 - {IR(49209, 6), 312}, // trunc in opencl_std_100 - {IR(50098, 6), 404}, // u_abs in opencl_std_100 - {IR(50104, 11), 405}, // u_abs_diff in opencl_std_100 - {IR(49697, 10), 360}, // u_add_sat in opencl_std_100 - {IR(49745, 8), 366}, // u_clamp in opencl_std_100 - {IR(49714, 7), 362}, // u_hadd in opencl_std_100 - {IR(49889, 8), 384}, // u_mad24 in opencl_std_100 - {IR(50124, 9), 407}, // u_mad_hi in opencl_std_100 - {IR(49770, 10), 370}, // u_mad_sat in opencl_std_100 - {IR(49796, 6), 373}, // u_max in opencl_std_100 - {IR(49808, 6), 375}, // u_min in opencl_std_100 - {IR(49905, 8), 386}, // u_mul24 in opencl_std_100 - {IR(50115, 9), 406}, // u_mul_hi in opencl_std_100 - {IR(49729, 8), 364}, // u_rhadd in opencl_std_100 - {IR(49840, 10), 379}, // u_sub_sat in opencl_std_100 - {IR(49850, 11), 380}, // u_upsample in opencl_std_100 - {IR(49928, 11), 389}, // vload_half in opencl_std_100 - {IR(49939, 12), 390}, // vload_halfn in opencl_std_100 - {IR(50005, 13), 395}, // vloada_halfn in opencl_std_100 - {IR(49913, 7), 387}, // vloadn in opencl_std_100 - {IR(49951, 12), 391}, // vstore_half in opencl_std_100 - {IR(49963, 14), 392}, // vstore_half_r in opencl_std_100 - {IR(49977, 13), 393}, // vstore_halfn in opencl_std_100 - {IR(49990, 15), 394}, // vstore_halfn_r in opencl_std_100 - {IR(50018, 14), 396}, // vstorea_halfn in opencl_std_100 - {IR(50032, 16), 397}, // vstorea_halfn_r in opencl_std_100 - {IR(49920, 8), 388}, // vstoren in opencl_std_100 - {IR(50150, 17), 409}, // CubeFaceCoordAMD in spv_amd_gcn_shader - {IR(50133, 17), 408}, // CubeFaceIndexAMD in spv_amd_gcn_shader - {IR(50167, 8), 410}, // TimeAMD in spv_amd_gcn_shader - {IR(50244, 9), 414}, // MbcntAMD in spv_amd_shader_ballot - {IR(50175, 22), 411}, // SwizzleInvocationsAMD in spv_amd_shader_ballot - {IR(50197, 28), 412}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot - {IR(50225, 19), 413}, // WriteInvocationAMD in spv_amd_shader_ballot - {IR(50253, 23), 415}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter - {IR(50303, 9), 419}, // FMax3AMD in spv_amd_shader_trinary_minmax - {IR(50330, 9), 422}, // FMid3AMD in spv_amd_shader_trinary_minmax - {IR(50276, 9), 416}, // FMin3AMD in spv_amd_shader_trinary_minmax - {IR(50321, 9), 421}, // SMax3AMD in spv_amd_shader_trinary_minmax - {IR(50348, 9), 424}, // SMid3AMD in spv_amd_shader_trinary_minmax - {IR(50294, 9), 418}, // SMin3AMD in spv_amd_shader_trinary_minmax - {IR(50312, 9), 420}, // UMax3AMD in spv_amd_shader_trinary_minmax - {IR(50339, 9), 423}, // UMid3AMD in spv_amd_shader_trinary_minmax - {IR(50285, 9), 417}, // UMin3AMD in spv_amd_shader_trinary_minmax + {IR(50058, 21), 1}, // DebugCompilationUnit in debuginfo + {IR(50785, 13), 28}, // DebugDeclare in debuginfo + {IR(50857, 16), 31}, // DebugExpression in debuginfo + {IR(50601, 14), 20}, // DebugFunction in debuginfo + {IR(50576, 25), 19}, // DebugFunctionDeclaration in debuginfo + {IR(50556, 20), 18}, // DebugGlobalVariable in debuginfo + {IR(50044, 14), 0}, // DebugInfoNone in debuginfo + {IR(50688, 15), 25}, // DebugInlinedAt in debuginfo + {IR(50764, 21), 27}, // DebugInlinedVariable in debuginfo + {IR(50615, 18), 21}, // DebugLexicalBlock in debuginfo + {IR(50633, 31), 22}, // DebugLexicalBlockDiscriminator in debuginfo + {IR(50745, 19), 26}, // DebugLocalVariable in debuginfo + {IR(50873, 14), 32}, // DebugMacroDef in debuginfo + {IR(50887, 16), 33}, // DebugMacroUndef in debuginfo + {IR(50675, 13), 24}, // DebugNoScope in debuginfo + {IR(50842, 15), 30}, // DebugOperation in debuginfo + {IR(50664, 11), 23}, // DebugScope in debuginfo + {IR(50254, 15), 5}, // DebugTypeArray in debuginfo + {IR(50131, 15), 2}, // DebugTypeBasic in debuginfo + {IR(50368, 19), 10}, // DebugTypeComposite in debuginfo + {IR(50316, 14), 9}, // DebugTypeEnum in debuginfo + {IR(50298, 18), 8}, // DebugTypeFunction in debuginfo + {IR(50403, 21), 12}, // DebugTypeInheritance in debuginfo + {IR(50387, 16), 11}, // DebugTypeMember in debuginfo + {IR(50180, 17), 3}, // DebugTypePointer in debuginfo + {IR(50424, 21), 13}, // DebugTypePtrToMember in debuginfo + {IR(50235, 19), 4}, // DebugTypeQualifier in debuginfo + {IR(50445, 18), 14}, // DebugTypeTemplate in debuginfo + {IR(50463, 27), 15}, // DebugTypeTemplateParameter in debuginfo + {IR(50525, 31), 17}, // DebugTypeTemplateParameterPack in debuginfo + {IR(50490, 35), 16}, // DebugTypeTemplateTemplateParameter in debuginfo + {IR(50269, 16), 6}, // DebugTypeVector in debuginfo + {IR(50285, 13), 7}, // DebugTypedef in debuginfo + {IR(50798, 11), 29}, // DebugValue in debuginfo + {IR(50997, 5), 50}, // Acos in glsl_std_450 + {IR(51028, 6), 56}, // Acosh in glsl_std_450 + {IR(50992, 5), 49}, // Asin in glsl_std_450 + {IR(51022, 6), 55}, // Asinh in glsl_std_450 + {IR(51002, 5), 51}, // Atan in glsl_std_450 + {IR(51040, 6), 58}, // Atan2 in glsl_std_450 + {IR(51034, 6), 57}, // Atanh in glsl_std_450 + {IR(50953, 5), 42}, // Ceil in glsl_std_450 + {IR(50984, 4), 47}, // Cos in glsl_std_450 + {IR(51012, 5), 53}, // Cosh in glsl_std_450 + {IR(51424, 6), 101}, // Cross in glsl_std_450 + {IR(50972, 8), 45}, // Degrees in glsl_std_450 + {IR(51085, 12), 66}, // Determinant in glsl_std_450 + {IR(51415, 9), 100}, // Distance in glsl_std_450 + {IR(51050, 4), 60}, // Exp in glsl_std_450 + {IR(51058, 5), 62}, // Exp2 in glsl_std_450 + {IR(50925, 5), 37}, // FAbs in glsl_std_450 + {IR(51157, 7), 76}, // FClamp in glsl_std_450 + {IR(51142, 5), 73}, // FMax in glsl_std_450 + {IR(51127, 5), 70}, // FMin in glsl_std_450 + {IR(51178, 5), 79}, // FMix in glsl_std_450 + {IR(50935, 6), 39}, // FSign in glsl_std_450 + {IR(51440, 12), 103}, // FaceForward in glsl_std_450 + {IR(51468, 9), 106}, // FindILsb in glsl_std_450 + {IR(51477, 9), 107}, // FindSMsb in glsl_std_450 + {IR(51486, 9), 108}, // FindUMsb in glsl_std_450 + {IR(50947, 6), 41}, // Floor in glsl_std_450 + {IR(51204, 4), 83}, // Fma in glsl_std_450 + {IR(50958, 6), 43}, // Fract in glsl_std_450 + {IR(51208, 6), 84}, // Frexp in glsl_std_450 + {IR(51214, 12), 85}, // FrexpStruct in glsl_std_450 + {IR(51183, 5), 80}, // IMix in glsl_std_450 + {IR(51495, 22), 109}, // InterpolateAtCentroid in glsl_std_450 + {IR(51537, 20), 111}, // InterpolateAtOffset in glsl_std_450 + {IR(51517, 20), 110}, // InterpolateAtSample in glsl_std_450 + {IR(51073, 12), 65}, // InverseSqrt in glsl_std_450 + {IR(51226, 6), 86}, // Ldexp in glsl_std_450 + {IR(51408, 7), 99}, // Length in glsl_std_450 + {IR(51054, 4), 61}, // Log in glsl_std_450 + {IR(51063, 5), 63}, // Log2 in glsl_std_450 + {IR(51097, 14), 67}, // MatrixInverse in glsl_std_450 + {IR(51111, 5), 68}, // Modf in glsl_std_450 + {IR(51116, 11), 69}, // ModfStruct in glsl_std_450 + {IR(51567, 7), 114}, // NClamp in glsl_std_450 + {IR(51562, 5), 113}, // NMax in glsl_std_450 + {IR(51557, 5), 112}, // NMin in glsl_std_450 + {IR(51430, 10), 102}, // Normalize in glsl_std_450 + {IR(51299, 15), 92}, // PackDouble2x32 in glsl_std_450 + {IR(51286, 13), 91}, // PackHalf2x16 in glsl_std_450 + {IR(51258, 14), 89}, // PackSnorm2x16 in glsl_std_450 + {IR(51232, 13), 87}, // PackSnorm4x8 in glsl_std_450 + {IR(51272, 14), 90}, // PackUnorm2x16 in glsl_std_450 + {IR(51245, 13), 88}, // PackUnorm4x8 in glsl_std_450 + {IR(51046, 4), 59}, // Pow in glsl_std_450 + {IR(50964, 8), 44}, // Radians in glsl_std_450 + {IR(51452, 8), 104}, // Reflect in glsl_std_450 + {IR(51460, 8), 105}, // Refract in glsl_std_450 + {IR(50903, 6), 34}, // Round in glsl_std_450 + {IR(50909, 10), 35}, // RoundEven in glsl_std_450 + {IR(50930, 5), 38}, // SAbs in glsl_std_450 + {IR(51171, 7), 78}, // SClamp in glsl_std_450 + {IR(51152, 5), 75}, // SMax in glsl_std_450 + {IR(51137, 5), 72}, // SMin in glsl_std_450 + {IR(50941, 6), 40}, // SSign in glsl_std_450 + {IR(50980, 4), 46}, // Sin in glsl_std_450 + {IR(51007, 5), 52}, // Sinh in glsl_std_450 + {IR(51193, 11), 82}, // SmoothStep in glsl_std_450 + {IR(51068, 5), 64}, // Sqrt in glsl_std_450 + {IR(51188, 5), 81}, // Step in glsl_std_450 + {IR(50988, 4), 48}, // Tan in glsl_std_450 + {IR(51017, 5), 54}, // Tanh in glsl_std_450 + {IR(50919, 6), 36}, // Trunc in glsl_std_450 + {IR(51164, 7), 77}, // UClamp in glsl_std_450 + {IR(51147, 5), 74}, // UMax in glsl_std_450 + {IR(51132, 5), 71}, // UMin in glsl_std_450 + {IR(51391, 17), 98}, // UnpackDouble2x32 in glsl_std_450 + {IR(51346, 15), 95}, // UnpackHalf2x16 in glsl_std_450 + {IR(51314, 16), 93}, // UnpackSnorm2x16 in glsl_std_450 + {IR(51361, 15), 96}, // UnpackSnorm4x8 in glsl_std_450 + {IR(51330, 16), 94}, // UnpackUnorm2x16 in glsl_std_450 + {IR(51376, 15), 97}, // UnpackUnorm4x8 in glsl_std_450 + {IR(51574, 13), 116}, // ArgumentInfo in nonsemantic_clspvreflection + {IR(51669, 24), 121}, // ArgumentPodPushConstant in nonsemantic_clspvreflection + {IR(51625, 25), 119}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection + {IR(51650, 19), 120}, // ArgumentPodUniform in nonsemantic_clspvreflection + {IR(52103, 28), 140}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection + {IR(52131, 23), 141}, // ArgumentPointerUniform in nonsemantic_clspvreflection + {IR(51693, 21), 122}, // ArgumentSampledImage in nonsemantic_clspvreflection + {IR(51735, 16), 124}, // ArgumentSampler in nonsemantic_clspvreflection + {IR(51587, 22), 117}, // ArgumentStorageBuffer in nonsemantic_clspvreflection + {IR(51714, 21), 123}, // ArgumentStorageImage in nonsemantic_clspvreflection + {IR(52391, 27), 148}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection + {IR(51609, 16), 118}, // ArgumentUniform in nonsemantic_clspvreflection + {IR(52418, 27), 149}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection + {IR(51751, 18), 125}, // ArgumentWorkgroup in nonsemantic_clspvreflection + {IR(52445, 32), 150}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection + {IR(51999, 26), 135}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection + {IR(52025, 20), 136}, // ConstantDataUniform in nonsemantic_clspvreflection + {IR(52269, 45), 145}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection + {IR(52351, 40), 147}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection + {IR(52227, 42), 144}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection + {IR(52314, 37), 146}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection + {IR(5357, 7), 115}, // Kernel in nonsemantic_clspvreflection + {IR(8782, 15), 137}, // LiteralSampler in nonsemantic_clspvreflection + {IR(52586, 34), 155}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection + {IR(52554, 32), 154}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection + {IR(52528, 26), 153}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection + {IR(52517, 11), 152}, // PrintfInfo in nonsemantic_clspvreflection + {IR(52477, 40), 151}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection + {IR(52189, 38), 143}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection + {IR(52154, 35), 142}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection + {IR(52045, 30), 138}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection + {IR(51865, 30), 130}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection + {IR(51840, 25), 129}, // PushConstantGlobalOffset in nonsemantic_clspvreflection + {IR(51895, 23), 131}, // PushConstantGlobalSize in nonsemantic_clspvreflection + {IR(51943, 26), 133}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection + {IR(51969, 30), 134}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection + {IR(51918, 25), 132}, // PushConstantRegionOffset in nonsemantic_clspvreflection + {IR(51795, 25), 127}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection + {IR(52075, 28), 139}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection + {IR(51820, 20), 128}, // SpecConstantWorkDim in nonsemantic_clspvreflection + {IR(51769, 26), 126}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection + {IR(52620, 22), 156}, // WorkgroupVariableSize in nonsemantic_clspvreflection + {IR(52741, 21), 197}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 + {IR(50058, 21), 158}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 + {IR(50785, 13), 185}, // DebugDeclare in nonsemantic_shader_debuginfo_100 + {IR(52779, 16), 199}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 + {IR(50857, 16), 188}, // DebugExpression in nonsemantic_shader_debuginfo_100 + {IR(50601, 14), 177}, // DebugFunction in nonsemantic_shader_debuginfo_100 + {IR(50576, 25), 176}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 + {IR(52674, 24), 193}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 + {IR(50556, 20), 175}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 + {IR(52642, 20), 191}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 + {IR(50044, 14), 157}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 + {IR(50688, 15), 182}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 + {IR(50764, 21), 184}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 + {IR(50615, 18), 178}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 + {IR(50633, 31), 179}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 + {IR(52719, 10), 195}, // DebugLine in nonsemantic_shader_debuginfo_100 + {IR(50745, 19), 183}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 + {IR(50873, 14), 189}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 + {IR(50887, 16), 190}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 + {IR(52729, 12), 196}, // DebugNoLine in nonsemantic_shader_debuginfo_100 + {IR(50675, 13), 181}, // DebugNoScope in nonsemantic_shader_debuginfo_100 + {IR(50842, 15), 187}, // DebugOperation in nonsemantic_shader_debuginfo_100 + {IR(50664, 11), 180}, // DebugScope in nonsemantic_shader_debuginfo_100 + {IR(52662, 12), 192}, // DebugSource in nonsemantic_shader_debuginfo_100 + {IR(52698, 21), 194}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 + {IR(52762, 17), 198}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 + {IR(50254, 15), 162}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 + {IR(50131, 15), 159}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 + {IR(50368, 19), 167}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 + {IR(50316, 14), 166}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 + {IR(50298, 18), 165}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 + {IR(50403, 21), 169}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 + {IR(52795, 16), 200}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 + {IR(50387, 16), 168}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 + {IR(50180, 17), 160}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 + {IR(50424, 21), 170}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 + {IR(50235, 19), 161}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 + {IR(50445, 18), 171}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 + {IR(50463, 27), 172}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 + {IR(50525, 31), 174}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 + {IR(50490, 35), 173}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 + {IR(50269, 16), 163}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 + {IR(50285, 13), 164}, // DebugTypedef in nonsemantic_shader_debuginfo_100 + {IR(50798, 11), 186}, // DebugValue in nonsemantic_shader_debuginfo_100 + {IR(52811, 14), 201}, // Configuration in nonsemantic_vkspreflection + {IR(52887, 20), 206}, // DescriptorSetBuffer in nonsemantic_vkspreflection + {IR(52907, 19), 207}, // DescriptorSetImage in nonsemantic_vkspreflection + {IR(52926, 21), 208}, // DescriptorSetSampler in nonsemantic_vkspreflection + {IR(52850, 14), 204}, // PushConstants in nonsemantic_vkspreflection + {IR(52864, 23), 205}, // SpecializationMapEntry in nonsemantic_vkspreflection + {IR(52825, 13), 202}, // StartCounter in nonsemantic_vkspreflection + {IR(52838, 12), 203}, // StopCounter in nonsemantic_vkspreflection + {IR(50058, 21), 210}, // DebugCompilationUnit in opencl_debuginfo_100 + {IR(50785, 13), 237}, // DebugDeclare in opencl_debuginfo_100 + {IR(50857, 16), 240}, // DebugExpression in opencl_debuginfo_100 + {IR(50601, 14), 229}, // DebugFunction in opencl_debuginfo_100 + {IR(50576, 25), 228}, // DebugFunctionDeclaration in opencl_debuginfo_100 + {IR(50556, 20), 227}, // DebugGlobalVariable in opencl_debuginfo_100 + {IR(52642, 20), 243}, // DebugImportedEntity in opencl_debuginfo_100 + {IR(50044, 14), 209}, // DebugInfoNone in opencl_debuginfo_100 + {IR(50688, 15), 234}, // DebugInlinedAt in opencl_debuginfo_100 + {IR(50764, 21), 236}, // DebugInlinedVariable in opencl_debuginfo_100 + {IR(50615, 18), 230}, // DebugLexicalBlock in opencl_debuginfo_100 + {IR(50633, 31), 231}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 + {IR(50745, 19), 235}, // DebugLocalVariable in opencl_debuginfo_100 + {IR(50873, 14), 241}, // DebugMacroDef in opencl_debuginfo_100 + {IR(50887, 16), 242}, // DebugMacroUndef in opencl_debuginfo_100 + {IR(53247, 17), 245}, // DebugModuleINTEL in opencl_debuginfo_100 + {IR(50675, 13), 233}, // DebugNoScope in opencl_debuginfo_100 + {IR(50842, 15), 239}, // DebugOperation in opencl_debuginfo_100 + {IR(50664, 11), 232}, // DebugScope in opencl_debuginfo_100 + {IR(52662, 12), 244}, // DebugSource in opencl_debuginfo_100 + {IR(50254, 15), 214}, // DebugTypeArray in opencl_debuginfo_100 + {IR(50131, 15), 211}, // DebugTypeBasic in opencl_debuginfo_100 + {IR(50368, 19), 219}, // DebugTypeComposite in opencl_debuginfo_100 + {IR(50316, 14), 218}, // DebugTypeEnum in opencl_debuginfo_100 + {IR(50298, 18), 217}, // DebugTypeFunction in opencl_debuginfo_100 + {IR(50403, 21), 221}, // DebugTypeInheritance in opencl_debuginfo_100 + {IR(50387, 16), 220}, // DebugTypeMember in opencl_debuginfo_100 + {IR(50180, 17), 212}, // DebugTypePointer in opencl_debuginfo_100 + {IR(50424, 21), 222}, // DebugTypePtrToMember in opencl_debuginfo_100 + {IR(50235, 19), 213}, // DebugTypeQualifier in opencl_debuginfo_100 + {IR(50445, 18), 223}, // DebugTypeTemplate in opencl_debuginfo_100 + {IR(50463, 27), 224}, // DebugTypeTemplateParameter in opencl_debuginfo_100 + {IR(50525, 31), 226}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 + {IR(50490, 35), 225}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 + {IR(50269, 16), 215}, // DebugTypeVector in opencl_debuginfo_100 + {IR(50285, 13), 216}, // DebugTypedef in opencl_debuginfo_100 + {IR(50798, 11), 238}, // DebugValue in opencl_debuginfo_100 + {IR(53264, 5), 246}, // acos in opencl_std_100 + {IR(53269, 6), 247}, // acosh in opencl_std_100 + {IR(53275, 7), 248}, // acospi in opencl_std_100 + {IR(53282, 5), 249}, // asin in opencl_std_100 + {IR(53287, 6), 250}, // asinh in opencl_std_100 + {IR(53293, 7), 251}, // asinpi in opencl_std_100 + {IR(53300, 5), 252}, // atan in opencl_std_100 + {IR(53305, 6), 253}, // atan2 in opencl_std_100 + {IR(53324, 8), 256}, // atan2pi in opencl_std_100 + {IR(53311, 6), 254}, // atanh in opencl_std_100 + {IR(53317, 7), 255}, // atanpi in opencl_std_100 + {IR(54515, 10), 402}, // bitselect in opencl_std_100 + {IR(53332, 5), 257}, // cbrt in opencl_std_100 + {IR(53337, 5), 258}, // ceil in opencl_std_100 + {IR(54187, 4), 367}, // clz in opencl_std_100 + {IR(53342, 9), 259}, // copysign in opencl_std_100 + {IR(53351, 4), 260}, // cos in opencl_std_100 + {IR(53355, 5), 261}, // cosh in opencl_std_100 + {IR(53360, 6), 262}, // cospi in opencl_std_100 + {IR(54031, 6), 350}, // cross in opencl_std_100 + {IR(54191, 4), 368}, // ctz in opencl_std_100 + {IR(53966, 8), 342}, // degrees in opencl_std_100 + {IR(54037, 9), 351}, // distance in opencl_std_100 + {IR(53371, 4), 264}, // erf in opencl_std_100 + {IR(53366, 5), 263}, // erfc in opencl_std_100 + {IR(53375, 4), 265}, // exp in opencl_std_100 + {IR(53384, 6), 267}, // exp10 in opencl_std_100 + {IR(53379, 5), 266}, // exp2 in opencl_std_100 + {IR(53390, 6), 268}, // expm1 in opencl_std_100 + {IR(53396, 5), 269}, // fabs in opencl_std_100 + {IR(54063, 14), 354}, // fast_distance in opencl_std_100 + {IR(54077, 12), 355}, // fast_length in opencl_std_100 + {IR(54089, 15), 356}, // fast_normalize in opencl_std_100 + {IR(53959, 7), 341}, // fclamp in opencl_std_100 + {IR(53401, 5), 270}, // fdim in opencl_std_100 + {IR(53406, 6), 271}, // floor in opencl_std_100 + {IR(53412, 4), 272}, // fma in opencl_std_100 + {IR(53416, 5), 273}, // fmax in opencl_std_100 + {IR(53974, 12), 343}, // fmax_common in opencl_std_100 + {IR(53421, 5), 274}, // fmin in opencl_std_100 + {IR(53986, 12), 344}, // fmin_common in opencl_std_100 + {IR(53426, 5), 275}, // fmod in opencl_std_100 + {IR(53431, 6), 276}, // fract in opencl_std_100 + {IR(53437, 6), 277}, // frexp in opencl_std_100 + {IR(53649, 9), 313}, // half_cos in opencl_std_100 + {IR(53658, 12), 314}, // half_divide in opencl_std_100 + {IR(53670, 9), 315}, // half_exp in opencl_std_100 + {IR(53689, 11), 317}, // half_exp10 in opencl_std_100 + {IR(53679, 10), 316}, // half_exp2 in opencl_std_100 + {IR(53700, 9), 318}, // half_log in opencl_std_100 + {IR(53719, 11), 320}, // half_log10 in opencl_std_100 + {IR(53709, 10), 319}, // half_log2 in opencl_std_100 + {IR(53730, 10), 321}, // half_powr in opencl_std_100 + {IR(53740, 11), 322}, // half_recip in opencl_std_100 + {IR(53751, 11), 323}, // half_rsqrt in opencl_std_100 + {IR(53762, 9), 324}, // half_sin in opencl_std_100 + {IR(53771, 10), 325}, // half_sqrt in opencl_std_100 + {IR(53781, 9), 326}, // half_tan in opencl_std_100 + {IR(53443, 6), 278}, // hypot in opencl_std_100 + {IR(53449, 6), 279}, // ilogb in opencl_std_100 + {IR(53455, 6), 280}, // ldexp in opencl_std_100 + {IR(54046, 7), 352}, // length in opencl_std_100 + {IR(53461, 7), 281}, // lgamma in opencl_std_100 + {IR(53468, 9), 282}, // lgamma_r in opencl_std_100 + {IR(53477, 4), 283}, // log in opencl_std_100 + {IR(53486, 6), 285}, // log10 in opencl_std_100 + {IR(53492, 6), 286}, // log1p in opencl_std_100 + {IR(53481, 5), 284}, // log2 in opencl_std_100 + {IR(53498, 5), 287}, // logb in opencl_std_100 + {IR(53503, 4), 288}, // mad in opencl_std_100 + {IR(53507, 7), 289}, // maxmag in opencl_std_100 + {IR(53514, 7), 290}, // minmag in opencl_std_100 + {IR(53998, 4), 345}, // mix in opencl_std_100 + {IR(53521, 5), 291}, // modf in opencl_std_100 + {IR(53526, 4), 292}, // nan in opencl_std_100 + {IR(53790, 11), 327}, // native_cos in opencl_std_100 + {IR(53801, 14), 328}, // native_divide in opencl_std_100 + {IR(53815, 11), 329}, // native_exp in opencl_std_100 + {IR(53838, 13), 331}, // native_exp10 in opencl_std_100 + {IR(53826, 12), 330}, // native_exp2 in opencl_std_100 + {IR(53851, 11), 332}, // native_log in opencl_std_100 + {IR(53874, 13), 334}, // native_log10 in opencl_std_100 + {IR(53862, 12), 333}, // native_log2 in opencl_std_100 + {IR(53887, 12), 335}, // native_powr in opencl_std_100 + {IR(53899, 13), 336}, // native_recip in opencl_std_100 + {IR(53912, 13), 337}, // native_rsqrt in opencl_std_100 + {IR(53925, 11), 338}, // native_sin in opencl_std_100 + {IR(53936, 12), 339}, // native_sqrt in opencl_std_100 + {IR(53948, 11), 340}, // native_tan in opencl_std_100 + {IR(53530, 10), 293}, // nextafter in opencl_std_100 + {IR(54053, 10), 353}, // normalize in opencl_std_100 + {IR(54306, 9), 382}, // popcount in opencl_std_100 + {IR(53540, 4), 294}, // pow in opencl_std_100 + {IR(53544, 5), 295}, // pown in opencl_std_100 + {IR(53549, 5), 296}, // powr in opencl_std_100 + {IR(54506, 9), 401}, // prefetch in opencl_std_100 + {IR(54499, 7), 400}, // printf in opencl_std_100 + {IR(54002, 8), 346}, // radians in opencl_std_100 + {IR(53554, 10), 297}, // remainder in opencl_std_100 + {IR(53564, 7), 298}, // remquo in opencl_std_100 + {IR(53571, 5), 299}, // rint in opencl_std_100 + {IR(53576, 6), 300}, // rootn in opencl_std_100 + {IR(54257, 7), 377}, // rotate in opencl_std_100 + {IR(53582, 6), 301}, // round in opencl_std_100 + {IR(53588, 6), 302}, // rsqrt in opencl_std_100 + {IR(54104, 6), 357}, // s_abs in opencl_std_100 + {IR(54110, 11), 358}, // s_abs_diff in opencl_std_100 + {IR(54121, 10), 359}, // s_add_sat in opencl_std_100 + {IR(54171, 8), 365}, // s_clamp in opencl_std_100 + {IR(54141, 7), 361}, // s_hadd in opencl_std_100 + {IR(54315, 8), 383}, // s_mad24 in opencl_std_100 + {IR(54195, 9), 369}, // s_mad_hi in opencl_std_100 + {IR(54214, 10), 371}, // s_mad_sat in opencl_std_100 + {IR(54224, 6), 372}, // s_max in opencl_std_100 + {IR(54236, 6), 374}, // s_min in opencl_std_100 + {IR(54331, 8), 385}, // s_mul24 in opencl_std_100 + {IR(54248, 9), 376}, // s_mul_hi in opencl_std_100 + {IR(54155, 8), 363}, // s_rhadd in opencl_std_100 + {IR(54264, 10), 378}, // s_sub_sat in opencl_std_100 + {IR(54295, 11), 381}, // s_upsample in opencl_std_100 + {IR(54525, 7), 403}, // select in opencl_std_100 + {IR(54482, 8), 398}, // shuffle in opencl_std_100 + {IR(54490, 9), 399}, // shuffle2 in opencl_std_100 + {IR(54026, 5), 349}, // sign in opencl_std_100 + {IR(53594, 4), 303}, // sin in opencl_std_100 + {IR(53598, 7), 304}, // sincos in opencl_std_100 + {IR(53605, 5), 305}, // sinh in opencl_std_100 + {IR(53610, 6), 306}, // sinpi in opencl_std_100 + {IR(54015, 11), 348}, // smoothstep in opencl_std_100 + {IR(53616, 5), 307}, // sqrt in opencl_std_100 + {IR(54010, 5), 347}, // step in opencl_std_100 + {IR(53621, 4), 308}, // tan in opencl_std_100 + {IR(53625, 5), 309}, // tanh in opencl_std_100 + {IR(53630, 6), 310}, // tanpi in opencl_std_100 + {IR(53636, 7), 311}, // tgamma in opencl_std_100 + {IR(53643, 6), 312}, // trunc in opencl_std_100 + {IR(54532, 6), 404}, // u_abs in opencl_std_100 + {IR(54538, 11), 405}, // u_abs_diff in opencl_std_100 + {IR(54131, 10), 360}, // u_add_sat in opencl_std_100 + {IR(54179, 8), 366}, // u_clamp in opencl_std_100 + {IR(54148, 7), 362}, // u_hadd in opencl_std_100 + {IR(54323, 8), 384}, // u_mad24 in opencl_std_100 + {IR(54558, 9), 407}, // u_mad_hi in opencl_std_100 + {IR(54204, 10), 370}, // u_mad_sat in opencl_std_100 + {IR(54230, 6), 373}, // u_max in opencl_std_100 + {IR(54242, 6), 375}, // u_min in opencl_std_100 + {IR(54339, 8), 386}, // u_mul24 in opencl_std_100 + {IR(54549, 9), 406}, // u_mul_hi in opencl_std_100 + {IR(54163, 8), 364}, // u_rhadd in opencl_std_100 + {IR(54274, 10), 379}, // u_sub_sat in opencl_std_100 + {IR(54284, 11), 380}, // u_upsample in opencl_std_100 + {IR(54362, 11), 389}, // vload_half in opencl_std_100 + {IR(54373, 12), 390}, // vload_halfn in opencl_std_100 + {IR(54439, 13), 395}, // vloada_halfn in opencl_std_100 + {IR(54347, 7), 387}, // vloadn in opencl_std_100 + {IR(54385, 12), 391}, // vstore_half in opencl_std_100 + {IR(54397, 14), 392}, // vstore_half_r in opencl_std_100 + {IR(54411, 13), 393}, // vstore_halfn in opencl_std_100 + {IR(54424, 15), 394}, // vstore_halfn_r in opencl_std_100 + {IR(54452, 14), 396}, // vstorea_halfn in opencl_std_100 + {IR(54466, 16), 397}, // vstorea_halfn_r in opencl_std_100 + {IR(54354, 8), 388}, // vstoren in opencl_std_100 + {IR(54584, 17), 409}, // CubeFaceCoordAMD in spv_amd_gcn_shader + {IR(54567, 17), 408}, // CubeFaceIndexAMD in spv_amd_gcn_shader + {IR(54601, 8), 410}, // TimeAMD in spv_amd_gcn_shader + {IR(54678, 9), 414}, // MbcntAMD in spv_amd_shader_ballot + {IR(54609, 22), 411}, // SwizzleInvocationsAMD in spv_amd_shader_ballot + {IR(54631, 28), 412}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot + {IR(54659, 19), 413}, // WriteInvocationAMD in spv_amd_shader_ballot + {IR(54687, 23), 415}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter + {IR(54737, 9), 419}, // FMax3AMD in spv_amd_shader_trinary_minmax + {IR(54764, 9), 422}, // FMid3AMD in spv_amd_shader_trinary_minmax + {IR(54710, 9), 416}, // FMin3AMD in spv_amd_shader_trinary_minmax + {IR(54755, 9), 421}, // SMax3AMD in spv_amd_shader_trinary_minmax + {IR(54782, 9), 424}, // SMid3AMD in spv_amd_shader_trinary_minmax + {IR(54728, 9), 418}, // SMin3AMD in spv_amd_shader_trinary_minmax + {IR(54746, 9), 420}, // UMax3AMD in spv_amd_shader_trinary_minmax + {IR(54773, 9), 423}, // UMid3AMD in spv_amd_shader_trinary_minmax + {IR(54719, 9), 417}, // UMin3AMD in spv_amd_shader_trinary_minmax }}; IndexRange ExtInstNameRangeForKind(spv_ext_inst_type_t type) { @@ -5601,2560 +5843,2734 @@ IndexRange ExtInstNameRangeForKind(spv_ext_inst_type_t type) { // Array of characters, referenced by IndexRanges elsewhere. // Each IndexRange denotes a string. static const char kStrings[] = - "SPV_AMDX_shader_enqueue\0" // IR(0, 24) - "SPV_AMD_gcn_shader\0" // IR(24, 19) - "SPV_AMD_gpu_shader_half_float\0" // IR(43, 30) - "SPV_AMD_gpu_shader_half_float_fetch\0" // IR(73, 36) - "SPV_AMD_gpu_shader_int16\0" // IR(109, 25) - "SPV_AMD_shader_ballot\0" // IR(134, 22) - "SPV_AMD_shader_early_and_late_fragment_tests\0" // IR(156, 45) - "SPV_AMD_shader_explicit_vertex_parameter\0" // IR(201, 41) - "SPV_AMD_shader_fragment_mask\0" // IR(242, 29) - "SPV_AMD_shader_image_load_store_lod\0" // IR(271, 36) - "SPV_AMD_shader_trinary_minmax\0" // IR(307, 30) - "SPV_AMD_texture_gather_bias_lod\0" // IR(337, 32) - "SPV_ARM_cooperative_matrix_layouts\0" // IR(369, 35) - "SPV_ARM_core_builtins\0" // IR(404, 22) - "SPV_ARM_graph\0" // IR(426, 14) - "SPV_ARM_tensors\0" // IR(440, 16) - "SPV_EXT_arithmetic_fence\0" // IR(456, 25) - "SPV_EXT_demote_to_helper_invocation\0" // IR(481, 36) - "SPV_EXT_descriptor_indexing\0" // IR(517, 28) - "SPV_EXT_float8\0" // IR(545, 15) - "SPV_EXT_fragment_fully_covered\0" // IR(560, 31) - "SPV_EXT_fragment_invocation_density\0" // IR(591, 36) - "SPV_EXT_fragment_shader_interlock\0" // IR(627, 34) - "SPV_EXT_mesh_shader\0" // IR(661, 20) - "SPV_EXT_opacity_micromap\0" // IR(681, 25) - "SPV_EXT_optnone\0" // IR(706, 16) - "SPV_EXT_physical_storage_buffer\0" // IR(722, 32) - "SPV_EXT_relaxed_printf_string_address_space\0" // IR(754, 44) - "SPV_EXT_replicated_composites\0" // IR(798, 30) - "SPV_EXT_shader_atomic_float16_add\0" // IR(828, 34) - "SPV_EXT_shader_atomic_float_add\0" // IR(862, 32) - "SPV_EXT_shader_atomic_float_min_max\0" // IR(894, 36) - "SPV_EXT_shader_image_int64\0" // IR(930, 27) - "SPV_EXT_shader_stencil_export\0" // IR(957, 30) - "SPV_EXT_shader_tile_image\0" // IR(987, 26) - "SPV_EXT_shader_viewport_index_layer\0" // IR(1013, 36) - "SPV_GOOGLE_decorate_string\0" // IR(1049, 27) - "SPV_GOOGLE_hlsl_functionality1\0" // IR(1076, 31) - "SPV_GOOGLE_user_type\0" // IR(1107, 21) - "SPV_INTEL_2d_block_io\0" // IR(1128, 22) - "SPV_INTEL_arbitrary_precision_fixed_point\0" // IR(1150, 42) - "SPV_INTEL_arbitrary_precision_floating_point\0" // IR(1192, 45) - "SPV_INTEL_arbitrary_precision_integers\0" // IR(1237, 39) - "SPV_INTEL_bfloat16_conversion\0" // IR(1276, 30) - "SPV_INTEL_bindless_images\0" // IR(1306, 26) - "SPV_INTEL_blocking_pipes\0" // IR(1332, 25) - "SPV_INTEL_cache_controls\0" // IR(1357, 25) - "SPV_INTEL_debug_module\0" // IR(1382, 23) - "SPV_INTEL_device_side_avc_motion_estimation\0" // IR(1405, 44) - "SPV_INTEL_float_controls2\0" // IR(1449, 26) - "SPV_INTEL_fp_fast_math_mode\0" // IR(1475, 28) - "SPV_INTEL_fp_max_error\0" // IR(1503, 23) - "SPV_INTEL_fpga_argument_interfaces\0" // IR(1526, 35) - "SPV_INTEL_fpga_buffer_location\0" // IR(1561, 31) - "SPV_INTEL_fpga_cluster_attributes\0" // IR(1592, 34) - "SPV_INTEL_fpga_dsp_control\0" // IR(1626, 27) - "SPV_INTEL_fpga_invocation_pipelining_attributes\0" // IR(1653, 48) - "SPV_INTEL_fpga_latency_control\0" // IR(1701, 31) - "SPV_INTEL_fpga_loop_controls\0" // IR(1732, 29) - "SPV_INTEL_fpga_memory_accesses\0" // IR(1761, 31) - "SPV_INTEL_fpga_memory_attributes\0" // IR(1792, 33) - "SPV_INTEL_fpga_reg\0" // IR(1825, 19) - "SPV_INTEL_function_pointers\0" // IR(1844, 28) - "SPV_INTEL_function_variants\0" // IR(1872, 28) - "SPV_INTEL_global_variable_fpga_decorations\0" // IR(1900, 43) - "SPV_INTEL_global_variable_host_access\0" // IR(1943, 38) - "SPV_INTEL_inline_assembly\0" // IR(1981, 26) - "SPV_INTEL_int4\0" // IR(2007, 15) - "SPV_INTEL_io_pipes\0" // IR(2022, 19) - "SPV_INTEL_kernel_attributes\0" // IR(2041, 28) - "SPV_INTEL_long_composites\0" // IR(2069, 26) - "SPV_INTEL_loop_fuse\0" // IR(2095, 20) - "SPV_INTEL_masked_gather_scatter\0" // IR(2115, 32) - "SPV_INTEL_maximum_registers\0" // IR(2147, 28) - "SPV_INTEL_media_block_io\0" // IR(2175, 25) - "SPV_INTEL_memory_access_aliasing\0" // IR(2200, 33) - "SPV_INTEL_optnone\0" // IR(2233, 18) - "SPV_INTEL_runtime_aligned\0" // IR(2251, 26) - "SPV_INTEL_shader_integer_functions2\0" // IR(2277, 36) - "SPV_INTEL_split_barrier\0" // IR(2313, 24) - "SPV_INTEL_subgroup_buffer_prefetch\0" // IR(2337, 35) - "SPV_INTEL_subgroup_matrix_multiply_accumulate\0" // IR(2372, 46) - "SPV_INTEL_subgroups\0" // IR(2418, 20) - "SPV_INTEL_task_sequence\0" // IR(2438, 24) - "SPV_INTEL_tensor_float32_conversion\0" // IR(2462, 36) - "SPV_INTEL_ternary_bitwise_function\0" // IR(2498, 35) - "SPV_INTEL_unstructured_loop_controls\0" // IR(2533, 37) - "SPV_INTEL_usm_storage_classes\0" // IR(2570, 30) - "SPV_INTEL_variable_length_array\0" // IR(2600, 32) - "SPV_INTEL_vector_compute\0" // IR(2632, 25) - "SPV_KHR_16bit_storage\0" // IR(2657, 22) - "SPV_KHR_8bit_storage\0" // IR(2679, 21) - "SPV_KHR_bfloat16\0" // IR(2700, 17) - "SPV_KHR_bit_instructions\0" // IR(2717, 25) - "SPV_KHR_compute_shader_derivatives\0" // IR(2742, 35) - "SPV_KHR_cooperative_matrix\0" // IR(2777, 27) - "SPV_KHR_device_group\0" // IR(2804, 21) - "SPV_KHR_expect_assume\0" // IR(2825, 22) - "SPV_KHR_float_controls\0" // IR(2847, 23) - "SPV_KHR_float_controls2\0" // IR(2870, 24) - "SPV_KHR_fma\0" // IR(2894, 12) - "SPV_KHR_fragment_shader_barycentric\0" // IR(2906, 36) - "SPV_KHR_fragment_shading_rate\0" // IR(2942, 30) - "SPV_KHR_integer_dot_product\0" // IR(2972, 28) - "SPV_KHR_linkonce_odr\0" // IR(3000, 21) - "SPV_KHR_maximal_reconvergence\0" // IR(3021, 30) - "SPV_KHR_multiview\0" // IR(3051, 18) - "SPV_KHR_no_integer_wrap_decoration\0" // IR(3069, 35) - "SPV_KHR_non_semantic_info\0" // IR(3104, 26) - "SPV_KHR_physical_storage_buffer\0" // IR(3130, 32) - "SPV_KHR_post_depth_coverage\0" // IR(3162, 28) - "SPV_KHR_quad_control\0" // IR(3190, 21) - "SPV_KHR_ray_cull_mask\0" // IR(3211, 22) - "SPV_KHR_ray_query\0" // IR(3233, 18) - "SPV_KHR_ray_tracing\0" // IR(3251, 20) - "SPV_KHR_ray_tracing_position_fetch\0" // IR(3271, 35) - "SPV_KHR_relaxed_extended_instruction\0" // IR(3306, 37) - "SPV_KHR_shader_atomic_counter_ops\0" // IR(3343, 34) - "SPV_KHR_shader_ballot\0" // IR(3377, 22) - "SPV_KHR_shader_clock\0" // IR(3399, 21) - "SPV_KHR_shader_draw_parameters\0" // IR(3420, 31) - "SPV_KHR_storage_buffer_storage_class\0" // IR(3451, 37) - "SPV_KHR_subgroup_rotate\0" // IR(3488, 24) - "SPV_KHR_subgroup_uniform_control_flow\0" // IR(3512, 38) - "SPV_KHR_subgroup_vote\0" // IR(3550, 22) - "SPV_KHR_terminate_invocation\0" // IR(3572, 29) - "SPV_KHR_uniform_group_instructions\0" // IR(3601, 35) - "SPV_KHR_untyped_pointers\0" // IR(3636, 25) - "SPV_KHR_variable_pointers\0" // IR(3661, 26) - "SPV_KHR_vulkan_memory_model\0" // IR(3687, 28) - "SPV_KHR_workgroup_memory_explicit_layout\0" // IR(3715, 41) - "SPV_NVX_multiview_per_view_attributes\0" // IR(3756, 38) - "SPV_NV_bindless_texture\0" // IR(3794, 24) - "SPV_NV_cluster_acceleration_structure\0" // IR(3818, 38) - "SPV_NV_compute_shader_derivatives\0" // IR(3856, 34) - "SPV_NV_cooperative_matrix\0" // IR(3890, 26) - "SPV_NV_cooperative_matrix2\0" // IR(3916, 27) - "SPV_NV_cooperative_vector\0" // IR(3943, 26) - "SPV_NV_displacement_micromap\0" // IR(3969, 29) - "SPV_NV_fragment_shader_barycentric\0" // IR(3998, 35) - "SPV_NV_geometry_shader_passthrough\0" // IR(4033, 35) - "SPV_NV_linear_swept_spheres\0" // IR(4068, 28) - "SPV_NV_mesh_shader\0" // IR(4096, 19) - "SPV_NV_raw_access_chains\0" // IR(4115, 25) - "SPV_NV_ray_tracing\0" // IR(4140, 19) - "SPV_NV_ray_tracing_motion_blur\0" // IR(4159, 31) - "SPV_NV_sample_mask_override_coverage\0" // IR(4190, 37) - "SPV_NV_shader_atomic_fp16_vector\0" // IR(4227, 33) - "SPV_NV_shader_image_footprint\0" // IR(4260, 30) - "SPV_NV_shader_invocation_reorder\0" // IR(4290, 33) - "SPV_NV_shader_sm_builtins\0" // IR(4323, 26) - "SPV_NV_shader_subgroup_partitioned\0" // IR(4349, 35) - "SPV_NV_shading_rate\0" // IR(4384, 20) - "SPV_NV_stereo_view_rendering\0" // IR(4404, 29) - "SPV_NV_tensor_addressing\0" // IR(4433, 25) - "SPV_NV_viewport_array2\0" // IR(4458, 23) - "SPV_QCOM_cooperative_matrix_conversion\0" // IR(4481, 39) - "SPV_QCOM_image_processing\0" // IR(4520, 26) - "SPV_QCOM_image_processing2\0" // IR(4546, 27) - "SPV_QCOM_tile_shading\0" // IR(4573, 22) - "SPV_VALIDATOR_ignore_type_decl_unique\0" // IR(4595, 38) - "ReadOnly\0" // IR(4633, 9) - "Kernel\0" // IR(4642, 7) - "WriteOnly\0" // IR(4649, 10) - "ReadWrite\0" // IR(4659, 10) - "Logical\0" // IR(4669, 8) - "Physical32\0" // IR(4677, 11) - "Addresses\0" // IR(4688, 10) - "Physical64\0" // IR(4698, 11) - "PhysicalStorageBuffer64\0" // IR(4709, 24) - "PhysicalStorageBuffer64EXT\0" // IR(4733, 27) - "PhysicalStorageBufferAddresses\0" // IR(4760, 31) - "Position\0" // IR(4791, 9) - "Shader\0" // IR(4800, 7) - "PointSize\0" // IR(4807, 10) - "ClipDistance\0" // IR(4817, 13) - "CullDistance\0" // IR(4830, 13) - "VertexId\0" // IR(4843, 9) - "InstanceId\0" // IR(4852, 11) - "PrimitiveId\0" // IR(4863, 12) - "Geometry\0" // IR(4875, 9) - "Tessellation\0" // IR(4884, 13) - "RayTracingNV\0" // IR(4897, 13) - "RayTracingKHR\0" // IR(4910, 14) - "MeshShadingNV\0" // IR(4924, 14) - "MeshShadingEXT\0" // IR(4938, 15) - "InvocationId\0" // IR(4953, 13) - "Layer\0" // IR(4966, 6) - "ShaderLayer\0" // IR(4972, 12) - "ShaderViewportIndexLayerEXT\0" // IR(4984, 28) - "ViewportIndex\0" // IR(5012, 14) - "MultiViewport\0" // IR(5026, 14) - "ShaderViewportIndex\0" // IR(5040, 20) - "TessLevelOuter\0" // IR(5060, 15) - "TessLevelInner\0" // IR(5075, 15) - "TessCoord\0" // IR(5090, 10) - "PatchVertices\0" // IR(5100, 14) - "FragCoord\0" // IR(5114, 10) - "PointCoord\0" // IR(5124, 11) - "FrontFacing\0" // IR(5135, 12) - "SampleId\0" // IR(5147, 9) - "SampleRateShading\0" // IR(5156, 18) - "SamplePosition\0" // IR(5174, 15) - "SampleMask\0" // IR(5189, 11) - "FragDepth\0" // IR(5200, 10) - "HelperInvocation\0" // IR(5210, 17) - "NumWorkgroups\0" // IR(5227, 14) - "WorkgroupSize\0" // IR(5241, 14) - "WorkgroupId\0" // IR(5255, 12) - "LocalInvocationId\0" // IR(5267, 18) - "GlobalInvocationId\0" // IR(5285, 19) - "LocalInvocationIndex\0" // IR(5304, 21) - "WorkDim\0" // IR(5325, 8) - "GlobalSize\0" // IR(5333, 11) - "EnqueuedWorkgroupSize\0" // IR(5344, 22) - "GlobalOffset\0" // IR(5366, 13) - "GlobalLinearId\0" // IR(5379, 15) - "SubgroupSize\0" // IR(5394, 13) - "GroupNonUniform\0" // IR(5407, 16) - "SubgroupBallotKHR\0" // IR(5423, 18) - "SubgroupMaxSize\0" // IR(5441, 16) - "NumSubgroups\0" // IR(5457, 13) - "NumEnqueuedSubgroups\0" // IR(5470, 21) - "SubgroupId\0" // IR(5491, 11) - "SubgroupLocalInvocationId\0" // IR(5502, 26) - "VertexIndex\0" // IR(5528, 12) - "InstanceIndex\0" // IR(5540, 14) - "CoreIDARM\0" // IR(5554, 10) - "CoreBuiltinsARM\0" // IR(5564, 16) - "CoreCountARM\0" // IR(5580, 13) - "CoreMaxIDARM\0" // IR(5593, 13) - "WarpIDARM\0" // IR(5606, 10) - "WarpMaxIDARM\0" // IR(5616, 13) - "SubgroupEqMask\0" // IR(5629, 15) - "SubgroupEqMaskKHR\0" // IR(5644, 18) - "GroupNonUniformBallot\0" // IR(5662, 22) - "SubgroupGeMask\0" // IR(5684, 15) - "SubgroupGeMaskKHR\0" // IR(5699, 18) - "SubgroupGtMask\0" // IR(5717, 15) - "SubgroupGtMaskKHR\0" // IR(5732, 18) - "SubgroupLeMask\0" // IR(5750, 15) - "SubgroupLeMaskKHR\0" // IR(5765, 18) - "SubgroupLtMask\0" // IR(5783, 15) - "SubgroupLtMaskKHR\0" // IR(5798, 18) - "BaseVertex\0" // IR(5816, 11) - "DrawParameters\0" // IR(5827, 15) - "BaseInstance\0" // IR(5842, 13) - "DrawIndex\0" // IR(5855, 10) - "PrimitiveShadingRateKHR\0" // IR(5865, 24) - "FragmentShadingRateKHR\0" // IR(5889, 23) - "DeviceIndex\0" // IR(5912, 12) - "DeviceGroup\0" // IR(5924, 12) - "ViewIndex\0" // IR(5936, 10) - "MultiView\0" // IR(5946, 10) - "ShadingRateKHR\0" // IR(5956, 15) - "TileOffsetQCOM\0" // IR(5971, 15) - "TileShadingQCOM\0" // IR(5986, 16) - "TileDimensionQCOM\0" // IR(6002, 18) - "TileApronSizeQCOM\0" // IR(6020, 18) - "BaryCoordNoPerspAMD\0" // IR(6038, 20) - "BaryCoordNoPerspCentroidAMD\0" // IR(6058, 28) - "BaryCoordNoPerspSampleAMD\0" // IR(6086, 26) - "BaryCoordSmoothAMD\0" // IR(6112, 19) - "BaryCoordSmoothCentroidAMD\0" // IR(6131, 27) - "BaryCoordSmoothSampleAMD\0" // IR(6158, 25) - "BaryCoordPullModelAMD\0" // IR(6183, 22) - "FragStencilRefEXT\0" // IR(6205, 18) - "StencilExportEXT\0" // IR(6223, 17) - "RemainingRecursionLevelsAMDX\0" // IR(6240, 29) - "ShaderEnqueueAMDX\0" // IR(6269, 18) - "ShaderIndexAMDX\0" // IR(6287, 16) - "ViewportMaskNV\0" // IR(6303, 15) - "ShaderViewportMaskNV\0" // IR(6318, 21) - "SecondaryPositionNV\0" // IR(6339, 20) - "ShaderStereoViewNV\0" // IR(6359, 19) - "SecondaryViewportMaskNV\0" // IR(6378, 24) - "PositionPerViewNV\0" // IR(6402, 18) - "PerViewAttributesNV\0" // IR(6420, 20) - "ViewportMaskPerViewNV\0" // IR(6440, 22) - "FullyCoveredEXT\0" // IR(6462, 16) - "FragmentFullyCoveredEXT\0" // IR(6478, 24) - "TaskCountNV\0" // IR(6502, 12) - "PrimitiveCountNV\0" // IR(6514, 17) - "PrimitiveIndicesNV\0" // IR(6531, 19) - "ClipDistancePerViewNV\0" // IR(6550, 22) - "CullDistancePerViewNV\0" // IR(6572, 22) - "LayerPerViewNV\0" // IR(6594, 15) - "MeshViewCountNV\0" // IR(6609, 16) - "MeshViewIndicesNV\0" // IR(6625, 18) - "BaryCoordKHR\0" // IR(6643, 13) - "BaryCoordNV\0" // IR(6656, 12) - "FragmentBarycentricKHR\0" // IR(6668, 23) - "BaryCoordNoPerspKHR\0" // IR(6691, 20) - "BaryCoordNoPerspNV\0" // IR(6711, 19) - "FragSizeEXT\0" // IR(6730, 12) - "FragmentSizeNV\0" // IR(6742, 15) - "FragmentDensityEXT\0" // IR(6757, 19) - "FragInvocationCountEXT\0" // IR(6776, 23) - "InvocationsPerPixelNV\0" // IR(6799, 22) - "PrimitivePointIndicesEXT\0" // IR(6821, 25) - "PrimitiveLineIndicesEXT\0" // IR(6846, 24) - "PrimitiveTriangleIndicesEXT\0" // IR(6870, 28) - "CullPrimitiveEXT\0" // IR(6898, 17) - "LaunchIdKHR\0" // IR(6915, 12) - "LaunchIdNV\0" // IR(6927, 11) - "LaunchSizeKHR\0" // IR(6938, 14) - "LaunchSizeNV\0" // IR(6952, 13) - "WorldRayOriginKHR\0" // IR(6965, 18) - "WorldRayOriginNV\0" // IR(6983, 17) - "WorldRayDirectionKHR\0" // IR(7000, 21) - "WorldRayDirectionNV\0" // IR(7021, 20) - "ObjectRayOriginKHR\0" // IR(7041, 19) - "ObjectRayOriginNV\0" // IR(7060, 18) - "ObjectRayDirectionKHR\0" // IR(7078, 22) - "ObjectRayDirectionNV\0" // IR(7100, 21) - "RayTminKHR\0" // IR(7121, 11) - "RayTminNV\0" // IR(7132, 10) - "RayTmaxKHR\0" // IR(7142, 11) - "RayTmaxNV\0" // IR(7153, 10) - "InstanceCustomIndexKHR\0" // IR(7163, 23) - "InstanceCustomIndexNV\0" // IR(7186, 22) - "ObjectToWorldKHR\0" // IR(7208, 17) - "ObjectToWorldNV\0" // IR(7225, 16) - "WorldToObjectKHR\0" // IR(7241, 17) - "WorldToObjectNV\0" // IR(7258, 16) - "HitTNV\0" // IR(7274, 7) - "HitKindKHR\0" // IR(7281, 11) - "HitKindNV\0" // IR(7292, 10) - "CurrentRayTimeNV\0" // IR(7302, 17) - "RayTracingMotionBlurNV\0" // IR(7319, 23) - "HitTriangleVertexPositionsKHR\0" // IR(7342, 30) - "RayTracingPositionFetchKHR\0" // IR(7372, 27) - "HitMicroTriangleVertexPositionsNV\0" // IR(7399, 34) - "RayTracingDisplacementMicromapNV\0" // IR(7433, 33) - "HitMicroTriangleVertexBarycentricsNV\0" // IR(7466, 37) - "IncomingRayFlagsKHR\0" // IR(7503, 20) - "IncomingRayFlagsNV\0" // IR(7523, 19) - "RayGeometryIndexKHR\0" // IR(7542, 20) - "HitIsSphereNV\0" // IR(7562, 14) - "RayTracingSpheresGeometryNV\0" // IR(7576, 28) - "HitIsLSSNV\0" // IR(7604, 11) - "RayTracingLinearSweptSpheresGeometryNV\0" // IR(7615, 39) - "HitSpherePositionNV\0" // IR(7654, 20) - "WarpsPerSMNV\0" // IR(7674, 13) - "ShaderSMBuiltinsNV\0" // IR(7687, 19) - "SMCountNV\0" // IR(7706, 10) - "WarpIDNV\0" // IR(7716, 9) - "SMIDNV\0" // IR(7725, 7) - "HitLSSPositionsNV\0" // IR(7732, 18) - "HitKindFrontFacingMicroTriangleNV\0" // IR(7750, 34) - "HitKindBackFacingMicroTriangleNV\0" // IR(7784, 33) - "HitSphereRadiusNV\0" // IR(7817, 18) - "HitLSSRadiiNV\0" // IR(7835, 14) - "ClusterIDNV\0" // IR(7849, 12) - "RayTracingClusterAccelerationStructureNV\0" // IR(7861, 41) - "CullMaskKHR\0" // IR(7902, 12) - "RayCullMaskKHR\0" // IR(7914, 15) - "Matrix\0" // IR(7929, 7) - "Linkage\0" // IR(7936, 8) - "Vector16\0" // IR(7944, 9) - "Float16Buffer\0" // IR(7953, 14) - "Float16\0" // IR(7967, 8) - "Float64\0" // IR(7975, 8) - "Int64\0" // IR(7983, 6) - "Int64Atomics\0" // IR(7989, 13) - "ImageBasic\0" // IR(8002, 11) - "ImageReadWrite\0" // IR(8013, 15) - "ImageMipmap\0" // IR(8028, 12) - "Pipes\0" // IR(8040, 6) - "Groups\0" // IR(8046, 7) - "DeviceEnqueue\0" // IR(8053, 14) - "LiteralSampler\0" // IR(8067, 15) - "AtomicStorage\0" // IR(8082, 14) - "Int16\0" // IR(8096, 6) - "TessellationPointSize\0" // IR(8102, 22) - "GeometryPointSize\0" // IR(8124, 18) - "ImageGatherExtended\0" // IR(8142, 20) - "StorageImageMultisample\0" // IR(8162, 24) - "UniformBufferArrayDynamicIndexing\0" // IR(8186, 34) - "SampledImageArrayDynamicIndexing\0" // IR(8220, 33) - "StorageBufferArrayDynamicIndexing\0" // IR(8253, 34) - "StorageImageArrayDynamicIndexing\0" // IR(8287, 33) - "ImageCubeArray\0" // IR(8320, 15) - "SampledCubeArray\0" // IR(8335, 17) - "ImageRect\0" // IR(8352, 10) - "SampledRect\0" // IR(8362, 12) - "GenericPointer\0" // IR(8374, 15) - "Int8\0" // IR(8389, 5) - "InputAttachment\0" // IR(8394, 16) - "SparseResidency\0" // IR(8410, 16) - "MinLod\0" // IR(8426, 7) - "Sampled1D\0" // IR(8433, 10) - "Image1D\0" // IR(8443, 8) - "SampledBuffer\0" // IR(8451, 14) - "ImageBuffer\0" // IR(8465, 12) - "ImageMSArray\0" // IR(8477, 13) - "StorageImageExtendedFormats\0" // IR(8490, 28) - "ImageQuery\0" // IR(8518, 11) - "DerivativeControl\0" // IR(8529, 18) - "InterpolationFunction\0" // IR(8547, 22) - "TransformFeedback\0" // IR(8569, 18) - "GeometryStreams\0" // IR(8587, 16) - "StorageImageReadWithoutFormat\0" // IR(8603, 30) - "StorageImageWriteWithoutFormat\0" // IR(8633, 31) - "SubgroupDispatch\0" // IR(8664, 17) - "NamedBarrier\0" // IR(8681, 13) - "PipeStorage\0" // IR(8694, 12) - "GroupNonUniformVote\0" // IR(8706, 20) - "GroupNonUniformArithmetic\0" // IR(8726, 26) - "GroupNonUniformShuffle\0" // IR(8752, 23) - "GroupNonUniformShuffleRelative\0" // IR(8775, 31) - "GroupNonUniformClustered\0" // IR(8806, 25) - "GroupNonUniformQuad\0" // IR(8831, 20) - "UniformDecoration\0" // IR(8851, 18) - "TileImageColorReadAccessEXT\0" // IR(8869, 28) - "TileImageDepthReadAccessEXT\0" // IR(8897, 28) - "TileImageStencilReadAccessEXT\0" // IR(8925, 30) - "TensorsARM\0" // IR(8955, 11) - "StorageTensorArrayDynamicIndexingARM\0" // IR(8966, 37) - "StorageTensorArrayNonUniformIndexingARM\0" // IR(9003, 40) - "GraphARM\0" // IR(9043, 9) - "CooperativeMatrixLayoutsARM\0" // IR(9052, 28) - "Float8EXT\0" // IR(9080, 10) - "Float8CooperativeMatrixEXT\0" // IR(9090, 27) - "CooperativeMatrixKHR\0" // IR(9117, 21) - "WorkgroupMemoryExplicitLayoutKHR\0" // IR(9138, 33) - "WorkgroupMemoryExplicitLayout8BitAccessKHR\0" // IR(9171, 43) - "WorkgroupMemoryExplicitLayout16BitAccessKHR\0" // IR(9214, 44) - "SubgroupVoteKHR\0" // IR(9258, 16) - "StorageBuffer16BitAccess\0" // IR(9274, 25) - "StorageUniformBufferBlock16\0" // IR(9299, 28) - "UniformAndStorageBuffer16BitAccess\0" // IR(9327, 35) - "StorageUniform16\0" // IR(9362, 17) - "StoragePushConstant16\0" // IR(9379, 22) - "StorageInputOutput16\0" // IR(9401, 21) - "VariablePointersStorageBuffer\0" // IR(9422, 30) - "VariablePointers\0" // IR(9452, 17) - "AtomicStorageOps\0" // IR(9469, 17) - "SampleMaskPostDepthCoverage\0" // IR(9486, 28) - "StorageBuffer8BitAccess\0" // IR(9514, 24) - "UniformAndStorageBuffer8BitAccess\0" // IR(9538, 34) - "StoragePushConstant8\0" // IR(9572, 21) - "DenormPreserve\0" // IR(9593, 15) - "DenormFlushToZero\0" // IR(9608, 18) - "SignedZeroInfNanPreserve\0" // IR(9626, 25) - "RoundingModeRTE\0" // IR(9651, 16) - "RoundingModeRTZ\0" // IR(9667, 16) - "RayQueryProvisionalKHR\0" // IR(9683, 23) - "RayQueryKHR\0" // IR(9706, 12) - "UntypedPointersKHR\0" // IR(9718, 19) - "RayTraversalPrimitiveCullingKHR\0" // IR(9737, 32) - "TextureSampleWeightedQCOM\0" // IR(9769, 26) - "TextureBoxFilterQCOM\0" // IR(9795, 21) - "TextureBlockMatchQCOM\0" // IR(9816, 22) - "CooperativeMatrixConversionQCOM\0" // IR(9838, 32) - "TextureBlockMatch2QCOM\0" // IR(9870, 23) - "Float16ImageAMD\0" // IR(9893, 16) - "ImageGatherBiasLodAMD\0" // IR(9909, 22) - "FragmentMaskAMD\0" // IR(9931, 16) - "ImageReadWriteLodAMD\0" // IR(9947, 21) - "Int64ImageEXT\0" // IR(9968, 14) - "ShaderClockKHR\0" // IR(9982, 15) - "QuadControlKHR\0" // IR(9997, 15) - "Int4TypeINTEL\0" // IR(10012, 14) - "Int4CooperativeMatrixINTEL\0" // IR(10026, 27) - "BFloat16TypeKHR\0" // IR(10053, 16) - "BFloat16DotProductKHR\0" // IR(10069, 22) - "BFloat16CooperativeMatrixKHR\0" // IR(10091, 29) - "SampleMaskOverrideCoverageNV\0" // IR(10120, 29) - "GeometryShaderPassthroughNV\0" // IR(10149, 28) - "ShaderViewportIndexLayerNV\0" // IR(10177, 27) - "ImageFootprintNV\0" // IR(10204, 17) - "FragmentBarycentricNV\0" // IR(10221, 22) - "ComputeDerivativeGroupQuadsKHR\0" // IR(10243, 31) - "ComputeDerivativeGroupQuadsNV\0" // IR(10274, 30) - "ShadingRateNV\0" // IR(10304, 14) - "GroupNonUniformPartitionedNV\0" // IR(10318, 29) - "ShaderNonUniform\0" // IR(10347, 17) - "ShaderNonUniformEXT\0" // IR(10364, 20) - "RuntimeDescriptorArray\0" // IR(10384, 23) - "RuntimeDescriptorArrayEXT\0" // IR(10407, 26) - "InputAttachmentArrayDynamicIndexing\0" // IR(10433, 36) - "InputAttachmentArrayDynamicIndexingEXT\0" // IR(10469, 39) - "UniformTexelBufferArrayDynamicIndexing\0" // IR(10508, 39) - "UniformTexelBufferArrayDynamicIndexingEXT\0" // IR(10547, 42) - "StorageTexelBufferArrayDynamicIndexing\0" // IR(10589, 39) - "StorageTexelBufferArrayDynamicIndexingEXT\0" // IR(10628, 42) - "UniformBufferArrayNonUniformIndexing\0" // IR(10670, 37) - "UniformBufferArrayNonUniformIndexingEXT\0" // IR(10707, 40) - "SampledImageArrayNonUniformIndexing\0" // IR(10747, 36) - "SampledImageArrayNonUniformIndexingEXT\0" // IR(10783, 39) - "StorageBufferArrayNonUniformIndexing\0" // IR(10822, 37) - "StorageBufferArrayNonUniformIndexingEXT\0" // IR(10859, 40) - "StorageImageArrayNonUniformIndexing\0" // IR(10899, 36) - "StorageImageArrayNonUniformIndexingEXT\0" // IR(10935, 39) - "InputAttachmentArrayNonUniformIndexing\0" // IR(10974, 39) - "InputAttachmentArrayNonUniformIndexingEXT\0" // IR(11013, 42) - "UniformTexelBufferArrayNonUniformIndexing\0" // IR(11055, 42) - "UniformTexelBufferArrayNonUniformIndexingEXT\0" // IR(11097, 45) - "StorageTexelBufferArrayNonUniformIndexing\0" // IR(11142, 42) - "StorageTexelBufferArrayNonUniformIndexingEXT\0" // IR(11184, 45) - "VulkanMemoryModel\0" // IR(11229, 18) - "VulkanMemoryModelKHR\0" // IR(11247, 21) - "VulkanMemoryModelDeviceScope\0" // IR(11268, 29) - "VulkanMemoryModelDeviceScopeKHR\0" // IR(11297, 32) - "PhysicalStorageBufferAddressesEXT\0" // IR(11329, 34) - "ComputeDerivativeGroupLinearKHR\0" // IR(11363, 32) - "ComputeDerivativeGroupLinearNV\0" // IR(11395, 31) - "RayTracingProvisionalKHR\0" // IR(11426, 25) - "CooperativeMatrixNV\0" // IR(11451, 20) - "FragmentShaderSampleInterlockEXT\0" // IR(11471, 33) - "FragmentShaderShadingRateInterlockEXT\0" // IR(11504, 38) - "FragmentShaderPixelInterlockEXT\0" // IR(11542, 32) - "DemoteToHelperInvocation\0" // IR(11574, 25) - "DemoteToHelperInvocationEXT\0" // IR(11599, 28) - "DisplacementMicromapNV\0" // IR(11627, 23) - "RayTracingOpacityMicromapEXT\0" // IR(11650, 29) - "ShaderInvocationReorderNV\0" // IR(11679, 26) - "BindlessTextureNV\0" // IR(11705, 18) - "RayQueryPositionFetchKHR\0" // IR(11723, 25) - "CooperativeVectorNV\0" // IR(11748, 20) - "AtomicFloat16VectorNV\0" // IR(11768, 22) - "RawAccessChainsNV\0" // IR(11790, 18) - "CooperativeMatrixReductionsNV\0" // IR(11808, 30) - "CooperativeMatrixConversionsNV\0" // IR(11838, 31) - "CooperativeMatrixPerElementOperationsNV\0" // IR(11869, 40) - "CooperativeMatrixTensorAddressingNV\0" // IR(11909, 36) - "CooperativeMatrixBlockLoadsNV\0" // IR(11945, 30) - "CooperativeVectorTrainingNV\0" // IR(11975, 28) - "TensorAddressingNV\0" // IR(12003, 19) - "SubgroupShuffleINTEL\0" // IR(12022, 21) - "SubgroupBufferBlockIOINTEL\0" // IR(12043, 27) - "SubgroupImageBlockIOINTEL\0" // IR(12070, 26) - "SubgroupImageMediaBlockIOINTEL\0" // IR(12096, 31) - "RoundToInfinityINTEL\0" // IR(12127, 21) - "FloatingPointModeINTEL\0" // IR(12148, 23) - "IntegerFunctions2INTEL\0" // IR(12171, 23) - "FunctionPointersINTEL\0" // IR(12194, 22) - "IndirectReferencesINTEL\0" // IR(12216, 24) - "AsmINTEL\0" // IR(12240, 9) - "AtomicFloat32MinMaxEXT\0" // IR(12249, 23) - "AtomicFloat64MinMaxEXT\0" // IR(12272, 23) - "AtomicFloat16MinMaxEXT\0" // IR(12295, 23) - "VectorComputeINTEL\0" // IR(12318, 19) - "VectorAnyINTEL\0" // IR(12337, 15) - "ExpectAssumeKHR\0" // IR(12352, 16) - "SubgroupAvcMotionEstimationINTEL\0" // IR(12368, 33) - "SubgroupAvcMotionEstimationIntraINTEL\0" // IR(12401, 38) - "SubgroupAvcMotionEstimationChromaINTEL\0" // IR(12439, 39) - "VariableLengthArrayINTEL\0" // IR(12478, 25) - "FunctionFloatControlINTEL\0" // IR(12503, 26) - "FPGAMemoryAttributesINTEL\0" // IR(12529, 26) - "FPFastMathModeINTEL\0" // IR(12555, 20) - "ArbitraryPrecisionIntegersINTEL\0" // IR(12575, 32) - "ArbitraryPrecisionFloatingPointINTEL\0" // IR(12607, 37) - "UnstructuredLoopControlsINTEL\0" // IR(12644, 30) - "FPGALoopControlsINTEL\0" // IR(12674, 22) - "KernelAttributesINTEL\0" // IR(12696, 22) - "FPGAKernelAttributesINTEL\0" // IR(12718, 26) - "FPGAMemoryAccessesINTEL\0" // IR(12744, 24) - "FPGAClusterAttributesINTEL\0" // IR(12768, 27) - "LoopFuseINTEL\0" // IR(12795, 14) - "FPGADSPControlINTEL\0" // IR(12809, 20) - "MemoryAccessAliasingINTEL\0" // IR(12829, 26) - "FPGAInvocationPipeliningAttributesINTEL\0" // IR(12855, 40) - "FPGABufferLocationINTEL\0" // IR(12895, 24) - "ArbitraryPrecisionFixedPointINTEL\0" // IR(12919, 34) - "USMStorageClassesINTEL\0" // IR(12953, 23) - "RuntimeAlignedAttributeINTEL\0" // IR(12976, 29) - "IOPipesINTEL\0" // IR(13005, 13) - "BlockingPipesINTEL\0" // IR(13018, 19) - "FPGARegINTEL\0" // IR(13037, 13) - "DotProductInputAll\0" // IR(13050, 19) - "DotProductInputAllKHR\0" // IR(13069, 22) - "DotProductInput4x8Bit\0" // IR(13091, 22) - "DotProductInput4x8BitKHR\0" // IR(13113, 25) - "DotProductInput4x8BitPacked\0" // IR(13138, 28) - "DotProductInput4x8BitPackedKHR\0" // IR(13166, 31) - "DotProduct\0" // IR(13197, 11) - "DotProductKHR\0" // IR(13208, 14) - "ReplicatedCompositesEXT\0" // IR(13222, 24) - "BitInstructions\0" // IR(13246, 16) - "GroupNonUniformRotateKHR\0" // IR(13262, 25) - "FloatControls2\0" // IR(13287, 15) - "FMAKHR\0" // IR(13302, 7) - "AtomicFloat32AddEXT\0" // IR(13309, 20) - "AtomicFloat64AddEXT\0" // IR(13329, 20) - "LongCompositesINTEL\0" // IR(13349, 20) - "OptNoneEXT\0" // IR(13369, 11) - "OptNoneINTEL\0" // IR(13380, 13) - "AtomicFloat16AddEXT\0" // IR(13393, 20) - "DebugInfoModuleINTEL\0" // IR(13413, 21) - "BFloat16ConversionINTEL\0" // IR(13434, 24) - "SplitBarrierINTEL\0" // IR(13458, 18) - "ArithmeticFenceEXT\0" // IR(13476, 19) - "FPGAClusterAttributesV2INTEL\0" // IR(13495, 29) - "FPGAKernelAttributesv2INTEL\0" // IR(13524, 28) - "TaskSequenceINTEL\0" // IR(13552, 18) - "FPMaxErrorINTEL\0" // IR(13570, 16) - "FPGALatencyControlINTEL\0" // IR(13586, 24) - "FPGAArgumentInterfacesINTEL\0" // IR(13610, 28) - "GlobalVariableHostAccessINTEL\0" // IR(13638, 30) - "GlobalVariableFPGADecorationsINTEL\0" // IR(13668, 35) - "SubgroupBufferPrefetchINTEL\0" // IR(13703, 28) - "Subgroup2DBlockIOINTEL\0" // IR(13731, 23) - "Subgroup2DBlockTransformINTEL\0" // IR(13754, 30) - "Subgroup2DBlockTransposeINTEL\0" // IR(13784, 30) - "SubgroupMatrixMultiplyAccumulateINTEL\0" // IR(13814, 38) - "TernaryBitwiseFunctionINTEL\0" // IR(13852, 28) - "UntypedVariableLengthArrayINTEL\0" // IR(13880, 32) - "SpecConditionalINTEL\0" // IR(13912, 21) - "FunctionVariantsINTEL\0" // IR(13933, 22) - "GroupUniformArithmeticKHR\0" // IR(13955, 26) - "TensorFloat32RoundingINTEL\0" // IR(13981, 27) - "MaskedGatherScatterINTEL\0" // IR(14008, 25) - "CacheControlsINTEL\0" // IR(14033, 19) - "RegisterLimitsINTEL\0" // IR(14052, 20) - "BindlessImagesINTEL\0" // IR(14072, 20) - "Unspecified\0" // IR(14092, 12) - "Address\0" // IR(14104, 8) - "Boolean\0" // IR(14112, 8) - "Float\0" // IR(14120, 6) - "Signed\0" // IR(14126, 7) - "SignedChar\0" // IR(14133, 11) - "Unsigned\0" // IR(14144, 9) - "UnsignedChar\0" // IR(14153, 13) - "Class\0" // IR(14166, 6) - "Structure\0" // IR(14172, 10) - "Union\0" // IR(14182, 6) - "ImportedModule\0" // IR(14188, 15) - "ImportedDeclaration\0" // IR(14203, 20) - "None\0" // IR(14223, 5) - "FlagIsProtected\0" // IR(14228, 16) - "FlagIsPrivate\0" // IR(14244, 14) - "FlagIsPublic\0" // IR(14258, 13) - "FlagIsLocal\0" // IR(14271, 12) - "FlagIsDefinition\0" // IR(14283, 17) - "FlagFwdDecl\0" // IR(14300, 12) - "FlagArtificial\0" // IR(14312, 15) - "FlagExplicit\0" // IR(14327, 13) - "FlagPrototyped\0" // IR(14340, 15) - "FlagObjectPointer\0" // IR(14355, 18) - "FlagStaticMember\0" // IR(14373, 17) - "FlagIndirectVariable\0" // IR(14390, 21) - "FlagLValueReference\0" // IR(14411, 20) - "FlagRValueReference\0" // IR(14431, 20) - "FlagIsOptimized\0" // IR(14451, 16) - "FlagIsEnumClass\0" // IR(14467, 16) - "FlagTypePassByValue\0" // IR(14483, 20) - "FlagTypePassByReference\0" // IR(14503, 24) - "Deref\0" // IR(14527, 6) - "Plus\0" // IR(14533, 5) - "Minus\0" // IR(14538, 6) - "SPV_OPERAND_TYPE_LITERAL_INTEGER\0" // IR(14544, 33) - "PlusUconst\0" // IR(14577, 11) - "BitPiece\0" // IR(14588, 9) - "Swap\0" // IR(14597, 5) - "Xderef\0" // IR(14602, 7) - "StackValue\0" // IR(14609, 11) - "Constu\0" // IR(14620, 7) - "Fragment\0" // IR(14627, 9) - "ConstType\0" // IR(14636, 10) - "VolatileType\0" // IR(14646, 13) - "RestrictType\0" // IR(14659, 13) - "AtomicType\0" // IR(14672, 11) - "Float16NV\0" // IR(14683, 10) - "Float32NV\0" // IR(14693, 10) - "Float64NV\0" // IR(14703, 10) - "SignedInt8NV\0" // IR(14713, 13) - "SignedInt16NV\0" // IR(14726, 14) - "SignedInt32NV\0" // IR(14740, 14) - "SignedInt64NV\0" // IR(14754, 14) - "UnsignedInt8NV\0" // IR(14768, 15) - "UnsignedInt16NV\0" // IR(14783, 16) - "UnsignedInt32NV\0" // IR(14799, 16) - "UnsignedInt64NV\0" // IR(14815, 16) - "SignedInt8PackedNV\0" // IR(14831, 19) - "UnsignedInt8PackedNV\0" // IR(14850, 21) - "FloatE4M3NV\0" // IR(14871, 12) - "FloatE5M2NV\0" // IR(14883, 12) - "RowMajorKHR\0" // IR(14895, 12) - "ColumnMajorKHR\0" // IR(14907, 15) - "RowBlockedInterleavedARM\0" // IR(14922, 25) - "ColumnBlockedInterleavedARM\0" // IR(14947, 28) - "NoneKHR\0" // IR(14975, 8) - "MatrixASignedComponentsKHR\0" // IR(14983, 27) - "MatrixBSignedComponentsKHR\0" // IR(15010, 27) - "MatrixCSignedComponentsKHR\0" // IR(15037, 27) - "MatrixResultSignedComponentsKHR\0" // IR(15064, 32) - "SaturatingAccumulationKHR\0" // IR(15096, 26) - "Row\0" // IR(15122, 4) - "Column\0" // IR(15126, 7) - "2x2\0" // IR(15133, 4) - "MatrixAKHR\0" // IR(15137, 11) - "MatrixBKHR\0" // IR(15148, 11) - "MatrixAccumulatorKHR\0" // IR(15159, 21) - "RowMajorNV\0" // IR(15180, 11) - "ColumnMajorNV\0" // IR(15191, 14) - "InferencingOptimalNV\0" // IR(15205, 21) - "TrainingOptimalNV\0" // IR(15226, 18) - "RelaxedPrecision\0" // IR(15244, 17) - "SpecId\0" // IR(15261, 7) - "Block\0" // IR(15268, 6) - "BufferBlock\0" // IR(15274, 12) - "RowMajor\0" // IR(15286, 9) - "ColMajor\0" // IR(15295, 9) - "ArrayStride\0" // IR(15304, 12) - "MatrixStride\0" // IR(15316, 13) - "GLSLShared\0" // IR(15329, 11) - "GLSLPacked\0" // IR(15340, 11) - "CPacked\0" // IR(15351, 8) - "SPV_OPERAND_TYPE_BUILT_IN\0" // IR(15359, 26) - "BuiltIn\0" // IR(15385, 8) - "NoPerspective\0" // IR(15393, 14) - "Flat\0" // IR(15407, 5) - "Patch\0" // IR(15412, 6) - "Centroid\0" // IR(15418, 9) - "Sample\0" // IR(15427, 7) - "Invariant\0" // IR(15434, 10) - "Restrict\0" // IR(15444, 9) - "Aliased\0" // IR(15453, 8) - "Volatile\0" // IR(15461, 9) - "Constant\0" // IR(15470, 9) - "Coherent\0" // IR(15479, 9) - "NonWritable\0" // IR(15488, 12) - "NonReadable\0" // IR(15500, 12) - "Uniform\0" // IR(15512, 8) - "SPV_OPERAND_TYPE_SCOPE_ID\0" // IR(15520, 26) - "UniformId\0" // IR(15546, 10) - "SaturatedConversion\0" // IR(15556, 20) - "Stream\0" // IR(15576, 7) - "Location\0" // IR(15583, 9) - "Component\0" // IR(15592, 10) - "Index\0" // IR(15602, 6) - "Binding\0" // IR(15608, 8) - "DescriptorSet\0" // IR(15616, 14) - "Offset\0" // IR(15630, 7) - "XfbBuffer\0" // IR(15637, 10) - "XfbStride\0" // IR(15647, 10) - "SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE\0" // IR(15657, 46) - "FuncParamAttr\0" // IR(15703, 14) - "SPV_OPERAND_TYPE_FP_ROUNDING_MODE\0" // IR(15717, 34) - "FPRoundingMode\0" // IR(15751, 15) - "SPV_OPERAND_TYPE_FP_FAST_MATH_MODE\0" // IR(15766, 35) - "FPFastMathMode\0" // IR(15801, 15) - "SPV_OPERAND_TYPE_LITERAL_STRING\0" // IR(15816, 32) - "SPV_OPERAND_TYPE_LINKAGE_TYPE\0" // IR(15848, 30) - "LinkageAttributes\0" // IR(15878, 18) - "NoContraction\0" // IR(15896, 14) - "InputAttachmentIndex\0" // IR(15910, 21) - "Alignment\0" // IR(15931, 10) - "MaxByteOffset\0" // IR(15941, 14) - "SPV_OPERAND_TYPE_ID\0" // IR(15955, 20) - "AlignmentId\0" // IR(15975, 12) - "MaxByteOffsetId\0" // IR(15987, 16) - "SaturatedToLargestFloat8NormalConversionEXT\0" // IR(16003, 44) - "NoSignedWrap\0" // IR(16047, 13) - "NoUnsignedWrap\0" // IR(16060, 15) - "WeightTextureQCOM\0" // IR(16075, 18) - "BlockMatchTextureQCOM\0" // IR(16093, 22) - "BlockMatchSamplerQCOM\0" // IR(16115, 22) - "ExplicitInterpAMD\0" // IR(16137, 18) - "NodeSharesPayloadLimitsWithAMDX\0" // IR(16155, 32) - "NodeMaxPayloadsAMDX\0" // IR(16187, 20) - "TrackFinishWritingAMDX\0" // IR(16207, 23) - "PayloadNodeNameAMDX\0" // IR(16230, 20) - "PayloadNodeBaseIndexAMDX\0" // IR(16250, 25) - "PayloadNodeSparseArrayAMDX\0" // IR(16275, 27) - "PayloadNodeArraySizeAMDX\0" // IR(16302, 25) - "PayloadDispatchIndirectAMDX\0" // IR(16327, 28) - "OverrideCoverageNV\0" // IR(16355, 19) - "PassthroughNV\0" // IR(16374, 14) - "ViewportRelativeNV\0" // IR(16388, 19) - "SecondaryViewportRelativeNV\0" // IR(16407, 28) - "PerPrimitiveEXT\0" // IR(16435, 16) - "PerPrimitiveNV\0" // IR(16451, 15) - "PerViewNV\0" // IR(16466, 10) - "PerTaskNV\0" // IR(16476, 10) - "PerVertexKHR\0" // IR(16486, 13) - "PerVertexNV\0" // IR(16499, 12) - "NonUniform\0" // IR(16511, 11) - "NonUniformEXT\0" // IR(16522, 14) - "RestrictPointer\0" // IR(16536, 16) - "RestrictPointerEXT\0" // IR(16552, 19) - "AliasedPointer\0" // IR(16571, 15) - "AliasedPointerEXT\0" // IR(16586, 18) - "HitObjectShaderRecordBufferNV\0" // IR(16604, 30) - "BindlessSamplerNV\0" // IR(16634, 18) - "BindlessImageNV\0" // IR(16652, 16) - "BoundSamplerNV\0" // IR(16668, 15) - "BoundImageNV\0" // IR(16683, 13) - "SIMTCallINTEL\0" // IR(16696, 14) - "ReferencedIndirectlyINTEL\0" // IR(16710, 26) - "ClobberINTEL\0" // IR(16736, 13) - "SideEffectsINTEL\0" // IR(16749, 17) - "VectorComputeVariableINTEL\0" // IR(16766, 27) - "FuncParamIOKindINTEL\0" // IR(16793, 21) - "VectorComputeFunctionINTEL\0" // IR(16814, 27) - "StackCallINTEL\0" // IR(16841, 15) - "GlobalVariableOffsetINTEL\0" // IR(16856, 26) - "CounterBuffer\0" // IR(16882, 14) - "HlslCounterBufferGOOGLE\0" // IR(16896, 24) - "UserSemantic\0" // IR(16920, 13) - "HlslSemanticGOOGLE\0" // IR(16933, 19) - "UserTypeGOOGLE\0" // IR(16952, 15) - "FunctionRoundingModeINTEL\0" // IR(16967, 26) - "SPV_OPERAND_TYPE_FPDENORM_MODE\0" // IR(16993, 31) - "FunctionDenormModeINTEL\0" // IR(17024, 24) - "RegisterINTEL\0" // IR(17048, 14) - "MemoryINTEL\0" // IR(17062, 12) - "NumbanksINTEL\0" // IR(17074, 14) - "BankwidthINTEL\0" // IR(17088, 15) - "MaxPrivateCopiesINTEL\0" // IR(17103, 22) - "SinglepumpINTEL\0" // IR(17125, 16) - "DoublepumpINTEL\0" // IR(17141, 16) - "MaxReplicatesINTEL\0" // IR(17157, 19) - "SimpleDualPortINTEL\0" // IR(17176, 20) - "MergeINTEL\0" // IR(17196, 11) - "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER\0" // IR(17207, 42) - "BankBitsINTEL\0" // IR(17249, 14) - "ForcePow2DepthINTEL\0" // IR(17263, 20) - "StridesizeINTEL\0" // IR(17283, 16) - "WordsizeINTEL\0" // IR(17299, 14) - "TrueDualPortINTEL\0" // IR(17313, 18) - "BurstCoalesceINTEL\0" // IR(17331, 19) - "CacheSizeINTEL\0" // IR(17350, 15) - "DontStaticallyCoalesceINTEL\0" // IR(17365, 28) - "PrefetchINTEL\0" // IR(17393, 14) - "StallEnableINTEL\0" // IR(17407, 17) - "FuseLoopsInFunctionINTEL\0" // IR(17424, 25) - "MathOpDSPModeINTEL\0" // IR(17449, 19) - "AliasScopeINTEL\0" // IR(17468, 16) - "NoAliasINTEL\0" // IR(17484, 13) - "InitiationIntervalINTEL\0" // IR(17497, 24) - "MaxConcurrencyINTEL\0" // IR(17521, 20) - "PipelineEnableINTEL\0" // IR(17541, 20) - "BufferLocationINTEL\0" // IR(17561, 20) - "IOPipeStorageINTEL\0" // IR(17581, 19) - "SPV_OPERAND_TYPE_FPOPERATION_MODE\0" // IR(17600, 34) - "FunctionFloatingPointModeINTEL\0" // IR(17634, 31) - "SingleElementVectorINTEL\0" // IR(17665, 25) - "VectorComputeCallableFunctionINTEL\0" // IR(17690, 35) - "MediaBlockIOINTEL\0" // IR(17725, 18) - "StallFreeINTEL\0" // IR(17743, 15) - "SPV_OPERAND_TYPE_LITERAL_FLOAT\0" // IR(17758, 31) - "FPMaxErrorDecorationINTEL\0" // IR(17789, 26) - "LatencyControlLabelINTEL\0" // IR(17815, 25) - "LatencyControlConstraintINTEL\0" // IR(17840, 30) - "ConduitKernelArgumentINTEL\0" // IR(17870, 27) - "RegisterMapKernelArgumentINTEL\0" // IR(17897, 31) - "MMHostInterfaceAddressWidthINTEL\0" // IR(17928, 33) - "MMHostInterfaceDataWidthINTEL\0" // IR(17961, 30) - "MMHostInterfaceLatencyINTEL\0" // IR(17991, 28) - "SPV_OPERAND_TYPE_ACCESS_QUALIFIER\0" // IR(18019, 34) - "MMHostInterfaceReadWriteModeINTEL\0" // IR(18053, 34) - "MMHostInterfaceMaxBurstINTEL\0" // IR(18087, 29) - "MMHostInterfaceWaitRequestINTEL\0" // IR(18116, 32) - "StableKernelArgumentINTEL\0" // IR(18148, 26) - "SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER\0" // IR(18174, 39) - "HostAccessINTEL\0" // IR(18213, 16) - "SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER\0" // IR(18229, 47) - "InitModeINTEL\0" // IR(18276, 14) - "ImplementInRegisterMapINTEL\0" // IR(18290, 28) - "ConditionalINTEL\0" // IR(18318, 17) - "SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL\0" // IR(18335, 36) - "CacheControlLoadINTEL\0" // IR(18371, 22) - "SPV_OPERAND_TYPE_STORE_CACHE_CONTROL\0" // IR(18393, 37) - "CacheControlStoreINTEL\0" // IR(18430, 23) - "1D\0" // IR(18453, 3) - "2D\0" // IR(18456, 3) - "3D\0" // IR(18459, 3) - "Cube\0" // IR(18462, 5) - "Rect\0" // IR(18467, 5) - "Buffer\0" // IR(18472, 7) - "SubpassData\0" // IR(18479, 12) - "TileImageDataEXT\0" // IR(18491, 17) - "Invocations\0" // IR(18508, 12) - "SpacingEqual\0" // IR(18520, 13) - "SpacingFractionalEven\0" // IR(18533, 22) - "SpacingFractionalOdd\0" // IR(18555, 21) - "VertexOrderCw\0" // IR(18576, 14) - "VertexOrderCcw\0" // IR(18590, 15) - "PixelCenterInteger\0" // IR(18605, 19) - "OriginUpperLeft\0" // IR(18624, 16) - "OriginLowerLeft\0" // IR(18640, 16) - "EarlyFragmentTests\0" // IR(18656, 19) - "PointMode\0" // IR(18675, 10) - "Xfb\0" // IR(18685, 4) - "DepthReplacing\0" // IR(18689, 15) - "DepthGreater\0" // IR(18704, 13) - "DepthLess\0" // IR(18717, 10) - "DepthUnchanged\0" // IR(18727, 15) - "LocalSize\0" // IR(18742, 10) - "LocalSizeHint\0" // IR(18752, 14) - "InputPoints\0" // IR(18766, 12) - "InputLines\0" // IR(18778, 11) - "InputLinesAdjacency\0" // IR(18789, 20) - "Triangles\0" // IR(18809, 10) - "InputTrianglesAdjacency\0" // IR(18819, 24) - "Quads\0" // IR(18843, 6) - "Isolines\0" // IR(18849, 9) - "OutputVertices\0" // IR(18858, 15) - "OutputPoints\0" // IR(18873, 13) - "OutputLineStrip\0" // IR(18886, 16) - "OutputTriangleStrip\0" // IR(18902, 20) - "VecTypeHint\0" // IR(18922, 12) - "ContractionOff\0" // IR(18934, 15) - "Initializer\0" // IR(18949, 12) - "Finalizer\0" // IR(18961, 10) - "SubgroupsPerWorkgroup\0" // IR(18971, 22) - "SubgroupsPerWorkgroupId\0" // IR(18993, 24) - "LocalSizeId\0" // IR(19017, 12) - "LocalSizeHintId\0" // IR(19029, 16) - "NonCoherentColorAttachmentReadEXT\0" // IR(19045, 34) - "NonCoherentDepthAttachmentReadEXT\0" // IR(19079, 34) - "NonCoherentStencilAttachmentReadEXT\0" // IR(19113, 36) - "SubgroupUniformControlFlowKHR\0" // IR(19149, 30) - "PostDepthCoverage\0" // IR(19179, 18) - "NonCoherentTileAttachmentReadQCOM\0" // IR(19197, 34) - "TileShadingRateQCOM\0" // IR(19231, 20) - "EarlyAndLateFragmentTestsAMD\0" // IR(19251, 29) - "StencilRefReplacingEXT\0" // IR(19280, 23) - "CoalescingAMDX\0" // IR(19303, 15) - "IsApiEntryAMDX\0" // IR(19318, 15) - "MaxNodeRecursionAMDX\0" // IR(19333, 21) - "StaticNumWorkgroupsAMDX\0" // IR(19354, 24) - "MaxNumWorkgroupsAMDX\0" // IR(19378, 21) - "StencilRefUnchangedFrontAMD\0" // IR(19399, 28) - "StencilRefGreaterFrontAMD\0" // IR(19427, 26) - "StencilRefLessFrontAMD\0" // IR(19453, 23) - "StencilRefUnchangedBackAMD\0" // IR(19476, 27) - "StencilRefGreaterBackAMD\0" // IR(19503, 25) - "StencilRefLessBackAMD\0" // IR(19528, 22) - "QuadDerivativesKHR\0" // IR(19550, 19) - "RequireFullQuadsKHR\0" // IR(19569, 20) - "SharesInputWithAMDX\0" // IR(19589, 20) - "OutputLinesEXT\0" // IR(19609, 15) - "OutputLinesNV\0" // IR(19624, 14) - "OutputPrimitivesEXT\0" // IR(19638, 20) - "OutputPrimitivesNV\0" // IR(19658, 19) - "DerivativeGroupQuadsKHR\0" // IR(19677, 24) - "DerivativeGroupQuadsNV\0" // IR(19701, 23) - "DerivativeGroupLinearKHR\0" // IR(19724, 25) - "DerivativeGroupLinearNV\0" // IR(19749, 24) - "OutputTrianglesEXT\0" // IR(19773, 19) - "OutputTrianglesNV\0" // IR(19792, 18) - "PixelInterlockOrderedEXT\0" // IR(19810, 25) - "PixelInterlockUnorderedEXT\0" // IR(19835, 27) - "SampleInterlockOrderedEXT\0" // IR(19862, 26) - "SampleInterlockUnorderedEXT\0" // IR(19888, 28) - "ShadingRateInterlockOrderedEXT\0" // IR(19916, 31) - "ShadingRateInterlockUnorderedEXT\0" // IR(19947, 33) - "SharedLocalMemorySizeINTEL\0" // IR(19980, 27) - "RoundingModeRTPINTEL\0" // IR(20007, 21) - "RoundingModeRTNINTEL\0" // IR(20028, 21) - "FloatingPointModeALTINTEL\0" // IR(20049, 26) - "FloatingPointModeIEEEINTEL\0" // IR(20075, 27) - "MaxWorkgroupSizeINTEL\0" // IR(20102, 22) - "MaxWorkDimINTEL\0" // IR(20124, 16) - "NoGlobalOffsetINTEL\0" // IR(20140, 20) - "NumSIMDWorkitemsINTEL\0" // IR(20160, 22) - "SchedulerTargetFmaxMhzINTEL\0" // IR(20182, 28) - "MaximallyReconvergesKHR\0" // IR(20210, 24) - "FPFastMathDefault\0" // IR(20234, 18) - "StreamingInterfaceINTEL\0" // IR(20252, 24) - "RegisterMapInterfaceINTEL\0" // IR(20276, 26) - "NamedBarrierCountINTEL\0" // IR(20302, 23) - "MaximumRegistersINTEL\0" // IR(20325, 22) - "MaximumRegistersIdINTEL\0" // IR(20347, 24) - "SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS\0" // IR(20371, 51) - "NamedMaximumRegistersINTEL\0" // IR(20422, 27) - "Vertex\0" // IR(20449, 7) - "TessellationControl\0" // IR(20456, 20) - "TessellationEvaluation\0" // IR(20476, 23) - "GLCompute\0" // IR(20499, 10) - "TaskNV\0" // IR(20509, 7) - "MeshNV\0" // IR(20516, 7) - "RayGenerationKHR\0" // IR(20523, 17) - "RayGenerationNV\0" // IR(20540, 16) - "IntersectionKHR\0" // IR(20556, 16) - "IntersectionNV\0" // IR(20572, 15) - "AnyHitKHR\0" // IR(20587, 10) - "AnyHitNV\0" // IR(20597, 9) - "ClosestHitKHR\0" // IR(20606, 14) - "ClosestHitNV\0" // IR(20620, 13) - "MissKHR\0" // IR(20633, 8) - "MissNV\0" // IR(20641, 7) - "CallableKHR\0" // IR(20648, 12) - "CallableNV\0" // IR(20660, 11) - "TaskEXT\0" // IR(20671, 8) - "MeshEXT\0" // IR(20679, 8) - "Preserve\0" // IR(20687, 9) - "FlushToZero\0" // IR(20696, 12) - "BFloat16KHR\0" // IR(20708, 12) - "Float8E4M3EXT\0" // IR(20720, 14) - "Float8E5M2EXT\0" // IR(20734, 14) - "IEEE\0" // IR(20748, 5) - "ALT\0" // IR(20753, 4) - "NotNaN\0" // IR(20757, 7) - "NotInf\0" // IR(20764, 7) - "NSZ\0" // IR(20771, 4) - "AllowRecip\0" // IR(20775, 11) - "Fast\0" // IR(20786, 5) - "AllowContract\0" // IR(20791, 14) - "AllowContractFastINTEL\0" // IR(20805, 23) - "AllowReassoc\0" // IR(20828, 13) - "AllowReassocINTEL\0" // IR(20841, 18) - "AllowTransform\0" // IR(20859, 15) - "RTE\0" // IR(20874, 4) - "RTZ\0" // IR(20878, 4) - "RTP\0" // IR(20882, 4) - "RTN\0" // IR(20886, 4) - "Vertical2Pixels\0" // IR(20890, 16) - "Vertical4Pixels\0" // IR(20906, 16) - "Horizontal2Pixels\0" // IR(20922, 18) - "Horizontal4Pixels\0" // IR(20940, 18) - "Inline\0" // IR(20958, 7) - "DontInline\0" // IR(20965, 11) - "Pure\0" // IR(20976, 5) - "Const\0" // IR(20981, 6) - "Zext\0" // IR(20987, 5) - "Sext\0" // IR(20992, 5) - "ByVal\0" // IR(20997, 6) - "Sret\0" // IR(21003, 5) - "NoAlias\0" // IR(21008, 8) - "NoCapture\0" // IR(21016, 10) - "NoWrite\0" // IR(21026, 8) - "NoReadWrite\0" // IR(21034, 12) - "RuntimeAlignedINTEL\0" // IR(21046, 20) - "Reduce\0" // IR(21066, 7) - "InclusiveScan\0" // IR(21073, 14) - "ExclusiveScan\0" // IR(21087, 14) - "ClusteredReduce\0" // IR(21101, 16) - "PartitionedReduceNV\0" // IR(21117, 20) - "PartitionedInclusiveScanNV\0" // IR(21137, 27) - "PartitionedExclusiveScanNV\0" // IR(21164, 27) - "NoneINTEL\0" // IR(21191, 10) - "ReadINTEL\0" // IR(21201, 10) - "WriteINTEL\0" // IR(21211, 11) - "ReadWriteINTEL\0" // IR(21222, 15) - "Bias\0" // IR(21237, 5) - "Lod\0" // IR(21242, 4) - "Grad\0" // IR(21246, 5) - "ConstOffset\0" // IR(21251, 12) - "ConstOffsets\0" // IR(21263, 13) - "MakeTexelAvailable\0" // IR(21276, 19) - "MakeTexelAvailableKHR\0" // IR(21295, 22) - "MakeTexelVisible\0" // IR(21317, 17) - "MakeTexelVisibleKHR\0" // IR(21334, 20) - "NonPrivateTexel\0" // IR(21354, 16) - "NonPrivateTexelKHR\0" // IR(21370, 19) - "VolatileTexel\0" // IR(21389, 14) - "VolatileTexelKHR\0" // IR(21403, 17) - "SignExtend\0" // IR(21420, 11) - "ZeroExtend\0" // IR(21431, 11) - "Nontemporal\0" // IR(21442, 12) - "Offsets\0" // IR(21454, 8) - "SnormInt8\0" // IR(21462, 10) - "SnormInt16\0" // IR(21472, 11) - "UnormInt8\0" // IR(21483, 10) - "UnormInt16\0" // IR(21493, 11) - "UnormShort565\0" // IR(21504, 14) - "UnormShort555\0" // IR(21518, 14) - "UnormInt101010\0" // IR(21532, 15) - "SignedInt8\0" // IR(21547, 11) - "SignedInt16\0" // IR(21558, 12) - "SignedInt32\0" // IR(21570, 12) - "UnsignedInt8\0" // IR(21582, 13) - "UnsignedInt16\0" // IR(21595, 14) - "UnsignedInt32\0" // IR(21609, 14) - "HalfFloat\0" // IR(21623, 10) - "UnormInt24\0" // IR(21633, 11) - "UnormInt101010_2\0" // IR(21644, 17) - "UnormInt10X6EXT\0" // IR(21661, 16) - "UnsignedIntRaw10EXT\0" // IR(21677, 20) - "UnsignedIntRaw12EXT\0" // IR(21697, 20) - "UnormInt2_101010EXT\0" // IR(21717, 20) - "UnsignedInt10X6EXT\0" // IR(21737, 19) - "UnsignedInt12X4EXT\0" // IR(21756, 19) - "UnsignedInt14X2EXT\0" // IR(21775, 19) - "UnormInt12X4EXT\0" // IR(21794, 16) - "UnormInt14X2EXT\0" // IR(21810, 16) - "R\0" // IR(21826, 2) - "A\0" // IR(21828, 2) - "RG\0" // IR(21830, 3) - "RA\0" // IR(21833, 3) - "RGB\0" // IR(21836, 4) - "RGBA\0" // IR(21840, 5) - "BGRA\0" // IR(21845, 5) - "ARGB\0" // IR(21850, 5) - "Intensity\0" // IR(21855, 10) - "Luminance\0" // IR(21865, 10) - "Rx\0" // IR(21875, 3) - "RGx\0" // IR(21878, 4) - "RGBx\0" // IR(21882, 5) - "Depth\0" // IR(21887, 6) - "DepthStencil\0" // IR(21893, 13) - "sRGB\0" // IR(21906, 5) - "sRGBx\0" // IR(21911, 6) - "sRGBA\0" // IR(21917, 6) - "sBGRA\0" // IR(21923, 6) - "ABGR\0" // IR(21929, 5) - "InitOnDeviceReprogramINTEL\0" // IR(21934, 27) - "InitOnDeviceResetINTEL\0" // IR(21961, 23) - "NoWait\0" // IR(21984, 7) - "WaitKernel\0" // IR(21991, 11) - "WaitWorkGroup\0" // IR(22002, 14) - "CmdExecTime\0" // IR(22016, 12) - "MayUsePrintf\0" // IR(22028, 13) - "Export\0" // IR(22041, 7) - "Import\0" // IR(22048, 7) - "LinkOnceODR\0" // IR(22055, 12) - "UncachedINTEL\0" // IR(22067, 14) - "CachedINTEL\0" // IR(22081, 12) - "StreamingINTEL\0" // IR(22093, 15) - "InvalidateAfterReadINTEL\0" // IR(22108, 25) - "ConstCachedINTEL\0" // IR(22133, 17) - "Unroll\0" // IR(22150, 7) - "DontUnroll\0" // IR(22157, 11) - "DependencyInfinite\0" // IR(22168, 19) - "DependencyLength\0" // IR(22187, 17) - "MinIterations\0" // IR(22204, 14) - "MaxIterations\0" // IR(22218, 14) - "IterationMultiple\0" // IR(22232, 18) - "PeelCount\0" // IR(22250, 10) - "PartialCount\0" // IR(22260, 13) - "DependencyArrayINTEL\0" // IR(22273, 21) - "LoopCoalesceINTEL\0" // IR(22294, 18) - "MaxInterleavingINTEL\0" // IR(22312, 21) - "SpeculatedIterationsINTEL\0" // IR(22333, 26) - "NoFusionINTEL\0" // IR(22359, 14) - "LoopCountINTEL\0" // IR(22373, 15) - "MaxReinvocationDelayINTEL\0" // IR(22388, 26) - "MatrixASignedComponentsINTEL\0" // IR(22414, 29) - "MatrixBSignedComponentsINTEL\0" // IR(22443, 29) - "MatrixCBFloat16INTEL\0" // IR(22472, 21) - "MatrixResultBFloat16INTEL\0" // IR(22493, 26) - "MatrixAPackedInt8INTEL\0" // IR(22519, 23) - "MatrixBPackedInt8INTEL\0" // IR(22542, 23) - "MatrixAPackedInt4INTEL\0" // IR(22565, 23) - "MatrixBPackedInt4INTEL\0" // IR(22588, 23) - "MatrixATF32INTEL\0" // IR(22611, 17) - "MatrixBTF32INTEL\0" // IR(22628, 17) - "MatrixAPackedFloat16INTEL\0" // IR(22645, 26) - "MatrixBPackedFloat16INTEL\0" // IR(22671, 26) - "MatrixAPackedBFloat16INTEL\0" // IR(22697, 27) - "MatrixBPackedBFloat16INTEL\0" // IR(22724, 27) - "Aligned\0" // IR(22751, 8) - "MakePointerAvailable\0" // IR(22759, 21) - "MakePointerAvailableKHR\0" // IR(22780, 24) - "MakePointerVisible\0" // IR(22804, 19) - "MakePointerVisibleKHR\0" // IR(22823, 22) - "NonPrivatePointer\0" // IR(22845, 18) - "NonPrivatePointerKHR\0" // IR(22863, 21) - "AliasScopeINTELMask\0" // IR(22884, 20) - "NoAliasINTELMask\0" // IR(22904, 17) - "Simple\0" // IR(22921, 7) - "GLSL450\0" // IR(22928, 8) - "OpenCL\0" // IR(22936, 7) - "Vulkan\0" // IR(22943, 7) - "VulkanKHR\0" // IR(22950, 10) - "Relaxed\0" // IR(22960, 8) - "Acquire\0" // IR(22968, 8) - "Release\0" // IR(22976, 8) - "AcquireRelease\0" // IR(22984, 15) - "SequentiallyConsistent\0" // IR(22999, 23) - "UniformMemory\0" // IR(23022, 14) - "SubgroupMemory\0" // IR(23036, 15) - "WorkgroupMemory\0" // IR(23051, 16) - "CrossWorkgroupMemory\0" // IR(23067, 21) - "AtomicCounterMemory\0" // IR(23088, 20) - "ImageMemory\0" // IR(23108, 12) - "OutputMemory\0" // IR(23120, 13) - "OutputMemoryKHR\0" // IR(23133, 16) - "MakeAvailable\0" // IR(23149, 14) - "MakeAvailableKHR\0" // IR(23163, 17) - "MakeVisible\0" // IR(23180, 12) - "MakeVisibleKHR\0" // IR(23192, 15) - "AutoINTEL\0" // IR(23207, 10) - "WRAP\0" // IR(23217, 5) - "SAT\0" // IR(23222, 4) - "SAT_ZERO\0" // IR(23226, 9) - "SAT_SYM\0" // IR(23235, 8) - "PackedVectorFormat4x8Bit\0" // IR(23243, 25) - "PackedVectorFormat4x8BitKHR\0" // IR(23268, 28) - "TRN\0" // IR(23296, 4) - "TRN_ZERO\0" // IR(23300, 9) - "RND\0" // IR(23309, 4) - "RND_ZERO\0" // IR(23313, 9) - "RND_INF\0" // IR(23322, 8) - "RND_MIN_INF\0" // IR(23330, 12) - "RND_CONV\0" // IR(23342, 9) - "RND_CONV_ODD\0" // IR(23351, 13) - "RobustnessPerComponentNV\0" // IR(23364, 25) - "RobustnessPerElementNV\0" // IR(23389, 23) - "OpaqueKHR\0" // IR(23412, 10) - "NoOpaqueKHR\0" // IR(23422, 12) - "TerminateOnFirstHitKHR\0" // IR(23434, 23) - "SkipClosestHitShaderKHR\0" // IR(23457, 24) - "CullBackFacingTrianglesKHR\0" // IR(23481, 27) - "CullFrontFacingTrianglesKHR\0" // IR(23508, 28) - "CullOpaqueKHR\0" // IR(23536, 14) - "CullNoOpaqueKHR\0" // IR(23550, 16) - "SkipTrianglesKHR\0" // IR(23566, 17) - "SkipBuiltinPrimitivesNV\0" // IR(23583, 24) - "SkipAABBsKHR\0" // IR(23607, 13) - "ForceOpacityMicromap2StateEXT\0" // IR(23620, 30) - "RayQueryCandidateIntersectionTriangleKHR\0" // IR(23650, 41) - "RayQueryCandidateIntersectionAABBKHR\0" // IR(23691, 37) - "RayQueryCommittedIntersectionNoneKHR\0" // IR(23728, 37) - "RayQueryCommittedIntersectionTriangleKHR\0" // IR(23765, 41) - "RayQueryCommittedIntersectionGeneratedKHR\0" // IR(23806, 42) - "RayQueryCandidateIntersectionKHR\0" // IR(23848, 33) - "RayQueryCommittedIntersectionKHR\0" // IR(23881, 33) - "ClampToEdge\0" // IR(23914, 12) - "Clamp\0" // IR(23926, 6) - "Repeat\0" // IR(23932, 7) - "RepeatMirrored\0" // IR(23939, 15) - "Nearest\0" // IR(23954, 8) - "Linear\0" // IR(23962, 7) - "Unknown\0" // IR(23969, 8) - "Rgba32f\0" // IR(23977, 8) - "Rgba16f\0" // IR(23985, 8) - "R32f\0" // IR(23993, 5) - "Rgba8\0" // IR(23998, 6) - "Rgba8Snorm\0" // IR(24004, 11) - "Rg32f\0" // IR(24015, 6) - "Rg16f\0" // IR(24021, 6) - "R11fG11fB10f\0" // IR(24027, 13) - "R16f\0" // IR(24040, 5) - "Rgba16\0" // IR(24045, 7) - "Rgb10A2\0" // IR(24052, 8) - "Rg16\0" // IR(24060, 5) - "Rg8\0" // IR(24065, 4) - "R16\0" // IR(24069, 4) - "R8\0" // IR(24073, 3) - "Rgba16Snorm\0" // IR(24076, 12) - "Rg16Snorm\0" // IR(24088, 10) - "Rg8Snorm\0" // IR(24098, 9) - "R16Snorm\0" // IR(24107, 9) - "R8Snorm\0" // IR(24116, 8) - "Rgba32i\0" // IR(24124, 8) - "Rgba16i\0" // IR(24132, 8) - "Rgba8i\0" // IR(24140, 7) - "R32i\0" // IR(24147, 5) - "Rg32i\0" // IR(24152, 6) - "Rg16i\0" // IR(24158, 6) - "Rg8i\0" // IR(24164, 5) - "R16i\0" // IR(24169, 5) - "R8i\0" // IR(24174, 4) - "Rgba32ui\0" // IR(24178, 9) - "Rgba16ui\0" // IR(24187, 9) - "Rgba8ui\0" // IR(24196, 8) - "R32ui\0" // IR(24204, 6) - "Rgb10a2ui\0" // IR(24210, 10) - "Rg32ui\0" // IR(24220, 7) - "Rg16ui\0" // IR(24227, 7) - "Rg8ui\0" // IR(24234, 6) - "R16ui\0" // IR(24240, 6) - "R8ui\0" // IR(24246, 5) - "R64ui\0" // IR(24251, 6) - "R64i\0" // IR(24257, 5) - "CrossDevice\0" // IR(24262, 12) - "Device\0" // IR(24274, 7) - "Workgroup\0" // IR(24281, 10) - "Subgroup\0" // IR(24291, 9) - "Invocation\0" // IR(24300, 11) - "QueueFamily\0" // IR(24311, 12) - "QueueFamilyKHR\0" // IR(24323, 15) - "ShaderCallKHR\0" // IR(24338, 14) - "Flatten\0" // IR(24352, 8) - "DontFlatten\0" // IR(24360, 12) - "IdentifierPossibleDuplicates\0" // IR(24372, 29) - "FlagUnknownPhysicalLayout\0" // IR(24401, 26) - "ESSL\0" // IR(24427, 5) - "GLSL\0" // IR(24432, 5) - "OpenCL_C\0" // IR(24437, 9) - "OpenCL_CPP\0" // IR(24446, 11) - "HLSL\0" // IR(24457, 5) - "CPP_for_OpenCL\0" // IR(24462, 15) - "SYCL\0" // IR(24477, 5) - "HERO_C\0" // IR(24482, 7) - "NZSL\0" // IR(24489, 5) - "WGSL\0" // IR(24494, 5) - "Slang\0" // IR(24499, 6) - "Zig\0" // IR(24505, 4) - "Rust\0" // IR(24509, 5) - "UniformConstant\0" // IR(24514, 16) - "Input\0" // IR(24530, 6) - "Output\0" // IR(24536, 7) - "CrossWorkgroup\0" // IR(24543, 15) - "Private\0" // IR(24558, 8) - "Function\0" // IR(24566, 9) - "Generic\0" // IR(24575, 8) - "PushConstant\0" // IR(24583, 13) - "AtomicCounter\0" // IR(24596, 14) - "Image\0" // IR(24610, 6) - "StorageBuffer\0" // IR(24616, 14) - "TileImageEXT\0" // IR(24630, 13) - "TileAttachmentQCOM\0" // IR(24643, 19) - "NodePayloadAMDX\0" // IR(24662, 16) - "CallableDataKHR\0" // IR(24678, 16) - "CallableDataNV\0" // IR(24694, 15) - "IncomingCallableDataKHR\0" // IR(24709, 24) - "IncomingCallableDataNV\0" // IR(24733, 23) - "RayPayloadKHR\0" // IR(24756, 14) - "RayPayloadNV\0" // IR(24770, 13) - "HitAttributeKHR\0" // IR(24783, 16) - "HitAttributeNV\0" // IR(24799, 15) - "IncomingRayPayloadKHR\0" // IR(24814, 22) - "IncomingRayPayloadNV\0" // IR(24836, 21) - "ShaderRecordBufferKHR\0" // IR(24857, 22) - "ShaderRecordBufferNV\0" // IR(24879, 21) - "PhysicalStorageBuffer\0" // IR(24900, 22) - "PhysicalStorageBufferEXT\0" // IR(24922, 25) - "HitObjectAttributeNV\0" // IR(24947, 21) - "TaskPayloadWorkgroupEXT\0" // IR(24968, 24) - "CodeSectionINTEL\0" // IR(24992, 17) - "DeviceOnlyINTEL\0" // IR(25009, 16) - "HostOnlyINTEL\0" // IR(25025, 14) - "WriteThroughINTEL\0" // IR(25039, 18) - "WriteBackINTEL\0" // IR(25057, 15) - "TensorView\0" // IR(25072, 11) - "DecodeFunc\0" // IR(25083, 11) - "Undefined\0" // IR(25094, 10) - "NoneARM\0" // IR(25104, 8) - "NontemporalARM\0" // IR(25112, 15) - "OutOfBoundsValueARM\0" // IR(25127, 20) - "MakeElementAvailableARM\0" // IR(25147, 24) - "MakeElementVisibleARM\0" // IR(25171, 22) - "NonPrivateElementARM\0" // IR(25193, 21) - "Nop\0" // IR(25214, 4) - "SPV_OPERAND_TYPE_TYPE_ID\0" // IR(25218, 25) - "SPV_OPERAND_TYPE_RESULT_ID\0" // IR(25243, 27) - "Undef\0" // IR(25270, 6) - "SourceContinued\0" // IR(25276, 16) - "SPV_OPERAND_TYPE_SOURCE_LANGUAGE\0" // IR(25292, 33) - "SPV_OPERAND_TYPE_OPTIONAL_ID\0" // IR(25325, 29) - "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_STRING\0" // IR(25354, 41) - "Source\0" // IR(25395, 7) - "SourceExtension\0" // IR(25402, 16) - "Name\0" // IR(25418, 5) - "MemberName\0" // IR(25423, 11) - "String\0" // IR(25434, 7) - "Line\0" // IR(25441, 5) - "Extension\0" // IR(25446, 10) - "ExtInstImport\0" // IR(25456, 14) - "SPV_OPERAND_TYPE_EXTENSION_INSTRUCTION_NUMBER\0" // IR(25470, 46) - "ExtInst\0" // IR(25516, 8) - "SPV_OPERAND_TYPE_ADDRESSING_MODEL\0" // IR(25524, 34) - "SPV_OPERAND_TYPE_MEMORY_MODEL\0" // IR(25558, 30) - "MemoryModel\0" // IR(25588, 12) - "SPV_OPERAND_TYPE_EXECUTION_MODEL\0" // IR(25600, 33) - "SPV_OPERAND_TYPE_VARIABLE_ID\0" // IR(25633, 29) - "EntryPoint\0" // IR(25662, 11) - "SPV_OPERAND_TYPE_EXECUTION_MODE\0" // IR(25673, 32) - "ExecutionMode\0" // IR(25705, 14) - "SPV_OPERAND_TYPE_CAPABILITY\0" // IR(25719, 28) - "Capability\0" // IR(25747, 11) - "TypeVoid\0" // IR(25758, 9) - "TypeBool\0" // IR(25767, 9) - "TypeInt\0" // IR(25776, 8) - "SPV_OPERAND_TYPE_OPTIONAL_FPENCODING\0" // IR(25784, 37) - "TypeFloat\0" // IR(25821, 10) - "TypeVector\0" // IR(25831, 11) - "TypeMatrix\0" // IR(25842, 11) - "SPV_OPERAND_TYPE_DIMENSIONALITY\0" // IR(25853, 32) - "SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT\0" // IR(25885, 38) - "SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER\0" // IR(25923, 43) - "TypeImage\0" // IR(25966, 10) - "TypeSampler\0" // IR(25976, 12) - "TypeSampledImage\0" // IR(25988, 17) - "TypeArray\0" // IR(26005, 10) - "TypeRuntimeArray\0" // IR(26015, 17) - "TypeStruct\0" // IR(26032, 11) - "TypeOpaque\0" // IR(26043, 11) - "SPV_OPERAND_TYPE_STORAGE_CLASS\0" // IR(26054, 31) - "TypePointer\0" // IR(26085, 12) - "TypeFunction\0" // IR(26097, 13) - "TypeEvent\0" // IR(26110, 10) - "TypeDeviceEvent\0" // IR(26120, 16) - "TypeReserveId\0" // IR(26136, 14) - "TypeQueue\0" // IR(26150, 10) - "TypePipe\0" // IR(26160, 9) - "TypeForwardPointer\0" // IR(26169, 19) - "ConstantTrue\0" // IR(26188, 13) - "ConstantFalse\0" // IR(26201, 14) - "SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER\0" // IR(26215, 38) - "ConstantComposite\0" // IR(26253, 18) - "SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE\0" // IR(26271, 41) - "SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE\0" // IR(26312, 37) - "ConstantSampler\0" // IR(26349, 16) - "ConstantNull\0" // IR(26365, 13) - "SpecConstantTrue\0" // IR(26378, 17) - "SpecConstantFalse\0" // IR(26395, 18) - "SpecConstant\0" // IR(26413, 13) - "SpecConstantComposite\0" // IR(26426, 22) - "SPV_OPERAND_TYPE_SPEC_CONSTANT_OP_NUMBER\0" // IR(26448, 41) - "SpecConstantOp\0" // IR(26489, 15) - "SPV_OPERAND_TYPE_FUNCTION_CONTROL\0" // IR(26504, 34) - "FunctionParameter\0" // IR(26538, 18) - "FunctionEnd\0" // IR(26556, 12) - "FunctionCall\0" // IR(26568, 13) - "Variable\0" // IR(26581, 9) - "ImageTexelPointer\0" // IR(26590, 18) - "SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS\0" // IR(26608, 40) - "Load\0" // IR(26648, 5) - "Store\0" // IR(26653, 6) - "CopyMemory\0" // IR(26659, 11) - "CopyMemorySized\0" // IR(26670, 16) - "AccessChain\0" // IR(26686, 12) - "InBoundsAccessChain\0" // IR(26698, 20) - "PtrAccessChain\0" // IR(26718, 15) - "ArrayLength\0" // IR(26733, 12) - "GenericPtrMemSemantics\0" // IR(26745, 23) - "InBoundsPtrAccessChain\0" // IR(26768, 23) - "SPV_OPERAND_TYPE_DECORATION\0" // IR(26791, 28) - "Decorate\0" // IR(26819, 9) - "MemberDecorate\0" // IR(26828, 15) - "DecorationGroup\0" // IR(26843, 16) - "GroupDecorate\0" // IR(26859, 14) - "SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER\0" // IR(26873, 45) - "GroupMemberDecorate\0" // IR(26918, 20) - "VectorExtractDynamic\0" // IR(26938, 21) - "VectorInsertDynamic\0" // IR(26959, 20) - "VectorShuffle\0" // IR(26979, 14) - "CompositeConstruct\0" // IR(26993, 19) - "CompositeExtract\0" // IR(27012, 17) - "CompositeInsert\0" // IR(27029, 16) - "CopyObject\0" // IR(27045, 11) - "Transpose\0" // IR(27056, 10) - "SampledImage\0" // IR(27066, 13) - "SPV_OPERAND_TYPE_OPTIONAL_IMAGE\0" // IR(27079, 32) - "ImageSampleImplicitLod\0" // IR(27111, 23) - "SPV_OPERAND_TYPE_IMAGE\0" // IR(27134, 23) - "ImageSampleExplicitLod\0" // IR(27157, 23) - "ImageSampleDrefImplicitLod\0" // IR(27180, 27) - "ImageSampleDrefExplicitLod\0" // IR(27207, 27) - "ImageSampleProjImplicitLod\0" // IR(27234, 27) - "ImageSampleProjExplicitLod\0" // IR(27261, 27) - "ImageSampleProjDrefImplicitLod\0" // IR(27288, 31) - "ImageSampleProjDrefExplicitLod\0" // IR(27319, 31) - "ImageFetch\0" // IR(27350, 11) - "ImageGather\0" // IR(27361, 12) - "ImageDrefGather\0" // IR(27373, 16) - "ImageRead\0" // IR(27389, 10) - "ImageWrite\0" // IR(27399, 11) - "ImageQueryFormat\0" // IR(27410, 17) - "ImageQueryOrder\0" // IR(27427, 16) - "ImageQuerySizeLod\0" // IR(27443, 18) - "ImageQuerySize\0" // IR(27461, 15) - "ImageQueryLod\0" // IR(27476, 14) - "ImageQueryLevels\0" // IR(27490, 17) - "ImageQuerySamples\0" // IR(27507, 18) - "ConvertFToU\0" // IR(27525, 12) - "ConvertFToS\0" // IR(27537, 12) - "ConvertSToF\0" // IR(27549, 12) - "ConvertUToF\0" // IR(27561, 12) - "UConvert\0" // IR(27573, 9) - "SConvert\0" // IR(27582, 9) - "FConvert\0" // IR(27591, 9) - "QuantizeToF16\0" // IR(27600, 14) - "ConvertPtrToU\0" // IR(27614, 14) - "SatConvertSToU\0" // IR(27628, 15) - "SatConvertUToS\0" // IR(27643, 15) - "ConvertUToPtr\0" // IR(27658, 14) - "PtrCastToGeneric\0" // IR(27672, 17) - "GenericCastToPtr\0" // IR(27689, 17) - "GenericCastToPtrExplicit\0" // IR(27706, 25) - "Bitcast\0" // IR(27731, 8) - "SNegate\0" // IR(27739, 8) - "FNegate\0" // IR(27747, 8) - "IAdd\0" // IR(27755, 5) - "FAdd\0" // IR(27760, 5) - "ISub\0" // IR(27765, 5) - "FSub\0" // IR(27770, 5) - "IMul\0" // IR(27775, 5) - "FMul\0" // IR(27780, 5) - "UDiv\0" // IR(27785, 5) - "SDiv\0" // IR(27790, 5) - "FDiv\0" // IR(27795, 5) - "UMod\0" // IR(27800, 5) - "SRem\0" // IR(27805, 5) - "SMod\0" // IR(27810, 5) - "FRem\0" // IR(27815, 5) - "FMod\0" // IR(27820, 5) - "VectorTimesScalar\0" // IR(27825, 18) - "MatrixTimesScalar\0" // IR(27843, 18) - "VectorTimesMatrix\0" // IR(27861, 18) - "MatrixTimesVector\0" // IR(27879, 18) - "MatrixTimesMatrix\0" // IR(27897, 18) - "OuterProduct\0" // IR(27915, 13) - "Dot\0" // IR(27928, 4) - "IAddCarry\0" // IR(27932, 10) - "ISubBorrow\0" // IR(27942, 11) - "UMulExtended\0" // IR(27953, 13) - "SMulExtended\0" // IR(27966, 13) - "Any\0" // IR(27979, 4) - "All\0" // IR(27983, 4) - "IsNan\0" // IR(27987, 6) - "IsInf\0" // IR(27993, 6) - "IsFinite\0" // IR(27999, 9) - "IsNormal\0" // IR(28008, 9) - "SignBitSet\0" // IR(28017, 11) - "LessOrGreater\0" // IR(28028, 14) - "Ordered\0" // IR(28042, 8) - "Unordered\0" // IR(28050, 10) - "LogicalEqual\0" // IR(28060, 13) - "LogicalNotEqual\0" // IR(28073, 16) - "LogicalOr\0" // IR(28089, 10) - "LogicalAnd\0" // IR(28099, 11) - "LogicalNot\0" // IR(28110, 11) - "Select\0" // IR(28121, 7) - "IEqual\0" // IR(28128, 7) - "INotEqual\0" // IR(28135, 10) - "UGreaterThan\0" // IR(28145, 13) - "SGreaterThan\0" // IR(28158, 13) - "UGreaterThanEqual\0" // IR(28171, 18) - "SGreaterThanEqual\0" // IR(28189, 18) - "ULessThan\0" // IR(28207, 10) - "SLessThan\0" // IR(28217, 10) - "ULessThanEqual\0" // IR(28227, 15) - "SLessThanEqual\0" // IR(28242, 15) - "FOrdEqual\0" // IR(28257, 10) - "FUnordEqual\0" // IR(28267, 12) - "FOrdNotEqual\0" // IR(28279, 13) - "FUnordNotEqual\0" // IR(28292, 15) - "FOrdLessThan\0" // IR(28307, 13) - "FUnordLessThan\0" // IR(28320, 15) - "FOrdGreaterThan\0" // IR(28335, 16) - "FUnordGreaterThan\0" // IR(28351, 18) - "FOrdLessThanEqual\0" // IR(28369, 18) - "FUnordLessThanEqual\0" // IR(28387, 20) - "FOrdGreaterThanEqual\0" // IR(28407, 21) - "FUnordGreaterThanEqual\0" // IR(28428, 23) - "ShiftRightLogical\0" // IR(28451, 18) - "ShiftRightArithmetic\0" // IR(28469, 21) - "ShiftLeftLogical\0" // IR(28490, 17) - "BitwiseOr\0" // IR(28507, 10) - "BitwiseXor\0" // IR(28517, 11) - "BitwiseAnd\0" // IR(28528, 11) - "Not\0" // IR(28539, 4) - "BitFieldInsert\0" // IR(28543, 15) - "BitFieldSExtract\0" // IR(28558, 17) - "BitFieldUExtract\0" // IR(28575, 17) - "BitReverse\0" // IR(28592, 11) - "BitCount\0" // IR(28603, 9) - "DPdx\0" // IR(28612, 5) - "DPdy\0" // IR(28617, 5) - "Fwidth\0" // IR(28622, 7) - "DPdxFine\0" // IR(28629, 9) - "DPdyFine\0" // IR(28638, 9) - "FwidthFine\0" // IR(28647, 11) - "DPdxCoarse\0" // IR(28658, 11) - "DPdyCoarse\0" // IR(28669, 11) - "FwidthCoarse\0" // IR(28680, 13) - "EmitVertex\0" // IR(28693, 11) - "EndPrimitive\0" // IR(28704, 13) - "EmitStreamVertex\0" // IR(28717, 17) - "EndStreamPrimitive\0" // IR(28734, 19) - "SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID\0" // IR(28753, 37) - "ControlBarrier\0" // IR(28790, 15) - "MemoryBarrier\0" // IR(28805, 14) - "AtomicLoad\0" // IR(28819, 11) - "AtomicStore\0" // IR(28830, 12) - "AtomicExchange\0" // IR(28842, 15) - "AtomicCompareExchange\0" // IR(28857, 22) - "AtomicCompareExchangeWeak\0" // IR(28879, 26) - "AtomicIIncrement\0" // IR(28905, 17) - "AtomicIDecrement\0" // IR(28922, 17) - "AtomicIAdd\0" // IR(28939, 11) - "AtomicISub\0" // IR(28950, 11) - "AtomicSMin\0" // IR(28961, 11) - "AtomicUMin\0" // IR(28972, 11) - "AtomicSMax\0" // IR(28983, 11) - "AtomicUMax\0" // IR(28994, 11) - "AtomicAnd\0" // IR(29005, 10) - "AtomicOr\0" // IR(29015, 9) - "AtomicXor\0" // IR(29024, 10) - "Phi\0" // IR(29034, 4) - "SPV_OPERAND_TYPE_LOOP_CONTROL\0" // IR(29038, 30) - "LoopMerge\0" // IR(29068, 10) - "SPV_OPERAND_TYPE_SELECTION_CONTROL\0" // IR(29078, 35) - "SelectionMerge\0" // IR(29113, 15) - "Label\0" // IR(29128, 6) - "Branch\0" // IR(29134, 7) - "BranchConditional\0" // IR(29141, 18) - "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER_ID\0" // IR(29159, 45) - "Switch\0" // IR(29204, 7) - "Kill\0" // IR(29211, 5) - "Return\0" // IR(29216, 7) - "ReturnValue\0" // IR(29223, 12) - "Unreachable\0" // IR(29235, 12) - "LifetimeStart\0" // IR(29247, 14) - "LifetimeStop\0" // IR(29261, 13) - "GroupAsyncCopy\0" // IR(29274, 15) - "GroupWaitEvents\0" // IR(29289, 16) - "GroupAll\0" // IR(29305, 9) - "GroupAny\0" // IR(29314, 9) - "GroupBroadcast\0" // IR(29323, 15) - "SPV_OPERAND_TYPE_GROUP_OPERATION\0" // IR(29338, 33) - "GroupIAdd\0" // IR(29371, 10) - "GroupFAdd\0" // IR(29381, 10) - "GroupFMin\0" // IR(29391, 10) - "GroupUMin\0" // IR(29401, 10) - "GroupSMin\0" // IR(29411, 10) - "GroupFMax\0" // IR(29421, 10) - "GroupUMax\0" // IR(29431, 10) - "GroupSMax\0" // IR(29441, 10) - "ReadPipe\0" // IR(29451, 9) - "WritePipe\0" // IR(29460, 10) - "ReservedReadPipe\0" // IR(29470, 17) - "ReservedWritePipe\0" // IR(29487, 18) - "ReserveReadPipePackets\0" // IR(29505, 23) - "ReserveWritePipePackets\0" // IR(29528, 24) - "CommitReadPipe\0" // IR(29552, 15) - "CommitWritePipe\0" // IR(29567, 16) - "IsValidReserveId\0" // IR(29583, 17) - "GetNumPipePackets\0" // IR(29600, 18) - "GetMaxPipePackets\0" // IR(29618, 18) - "GroupReserveReadPipePackets\0" // IR(29636, 28) - "GroupReserveWritePipePackets\0" // IR(29664, 29) - "GroupCommitReadPipe\0" // IR(29693, 20) - "GroupCommitWritePipe\0" // IR(29713, 21) - "EnqueueMarker\0" // IR(29734, 14) - "EnqueueKernel\0" // IR(29748, 14) - "GetKernelNDrangeSubGroupCount\0" // IR(29762, 30) - "GetKernelNDrangeMaxSubGroupSize\0" // IR(29792, 32) - "GetKernelWorkGroupSize\0" // IR(29824, 23) - "GetKernelPreferredWorkGroupSizeMultiple\0" // IR(29847, 40) - "RetainEvent\0" // IR(29887, 12) - "ReleaseEvent\0" // IR(29899, 13) - "CreateUserEvent\0" // IR(29912, 16) - "IsValidEvent\0" // IR(29928, 13) - "SetUserEventStatus\0" // IR(29941, 19) - "CaptureEventProfilingInfo\0" // IR(29960, 26) - "GetDefaultQueue\0" // IR(29986, 16) - "BuildNDRange\0" // IR(30002, 13) - "ImageSparseSampleImplicitLod\0" // IR(30015, 29) - "ImageSparseSampleExplicitLod\0" // IR(30044, 29) - "ImageSparseSampleDrefImplicitLod\0" // IR(30073, 33) - "ImageSparseSampleDrefExplicitLod\0" // IR(30106, 33) - "ImageSparseSampleProjImplicitLod\0" // IR(30139, 33) - "ImageSparseSampleProjExplicitLod\0" // IR(30172, 33) - "ImageSparseSampleProjDrefImplicitLod\0" // IR(30205, 37) - "ImageSparseSampleProjDrefExplicitLod\0" // IR(30242, 37) - "ImageSparseFetch\0" // IR(30279, 17) - "ImageSparseGather\0" // IR(30296, 18) - "ImageSparseDrefGather\0" // IR(30314, 22) - "ImageSparseTexelsResident\0" // IR(30336, 26) - "NoLine\0" // IR(30362, 7) - "AtomicFlagTestAndSet\0" // IR(30369, 21) - "AtomicFlagClear\0" // IR(30390, 16) - "ImageSparseRead\0" // IR(30406, 16) - "SizeOf\0" // IR(30422, 7) - "TypePipeStorage\0" // IR(30429, 16) - "ConstantPipeStorage\0" // IR(30445, 20) - "CreatePipeFromPipeStorage\0" // IR(30465, 26) - "GetKernelLocalSizeForSubgroupCount\0" // IR(30491, 35) - "GetKernelMaxNumSubgroups\0" // IR(30526, 25) - "TypeNamedBarrier\0" // IR(30551, 17) - "NamedBarrierInitialize\0" // IR(30568, 23) - "MemoryNamedBarrier\0" // IR(30591, 19) - "ModuleProcessed\0" // IR(30610, 16) - "ExecutionModeId\0" // IR(30626, 16) - "DecorateId\0" // IR(30642, 11) - "GroupNonUniformElect\0" // IR(30653, 21) - "GroupNonUniformAll\0" // IR(30674, 19) - "GroupNonUniformAny\0" // IR(30693, 19) - "GroupNonUniformAllEqual\0" // IR(30712, 24) - "GroupNonUniformBroadcast\0" // IR(30736, 25) - "GroupNonUniformBroadcastFirst\0" // IR(30761, 30) - "GroupNonUniformInverseBallot\0" // IR(30791, 29) - "GroupNonUniformBallotBitExtract\0" // IR(30820, 32) - "GroupNonUniformBallotBitCount\0" // IR(30852, 30) - "GroupNonUniformBallotFindLSB\0" // IR(30882, 29) - "GroupNonUniformBallotFindMSB\0" // IR(30911, 29) - "GroupNonUniformShuffleXor\0" // IR(30940, 26) - "GroupNonUniformShuffleUp\0" // IR(30966, 25) - "GroupNonUniformShuffleDown\0" // IR(30991, 27) - "GroupNonUniformIAdd\0" // IR(31018, 20) - "GroupNonUniformFAdd\0" // IR(31038, 20) - "GroupNonUniformIMul\0" // IR(31058, 20) - "GroupNonUniformFMul\0" // IR(31078, 20) - "GroupNonUniformSMin\0" // IR(31098, 20) - "GroupNonUniformUMin\0" // IR(31118, 20) - "GroupNonUniformFMin\0" // IR(31138, 20) - "GroupNonUniformSMax\0" // IR(31158, 20) - "GroupNonUniformUMax\0" // IR(31178, 20) - "GroupNonUniformFMax\0" // IR(31198, 20) - "GroupNonUniformBitwiseAnd\0" // IR(31218, 26) - "GroupNonUniformBitwiseOr\0" // IR(31244, 25) - "GroupNonUniformBitwiseXor\0" // IR(31269, 26) - "GroupNonUniformLogicalAnd\0" // IR(31295, 26) - "GroupNonUniformLogicalOr\0" // IR(31321, 25) - "GroupNonUniformLogicalXor\0" // IR(31346, 26) - "GroupNonUniformQuadBroadcast\0" // IR(31372, 29) - "GroupNonUniformQuadSwap\0" // IR(31401, 24) - "CopyLogical\0" // IR(31425, 12) - "PtrEqual\0" // IR(31437, 9) - "PtrNotEqual\0" // IR(31446, 12) - "PtrDiff\0" // IR(31458, 8) - "ColorAttachmentReadEXT\0" // IR(31466, 23) - "DepthAttachmentReadEXT\0" // IR(31489, 23) - "StencilAttachmentReadEXT\0" // IR(31512, 25) - "TypeTensorARM\0" // IR(31537, 14) - "SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS\0" // IR(31551, 42) - "TensorReadARM\0" // IR(31593, 14) - "TensorWriteARM\0" // IR(31607, 15) - "TensorQuerySizeARM\0" // IR(31622, 19) - "GraphConstantARM\0" // IR(31641, 17) - "GraphEntryPointARM\0" // IR(31658, 19) - "GraphInputARM\0" // IR(31677, 14) - "GraphSetOutputARM\0" // IR(31691, 18) - "GraphEndARM\0" // IR(31709, 12) - "TypeGraphARM\0" // IR(31721, 13) - "TerminateInvocation\0" // IR(31734, 20) - "TypeUntypedPointerKHR\0" // IR(31754, 22) - "UntypedVariableKHR\0" // IR(31776, 19) - "UntypedAccessChainKHR\0" // IR(31795, 22) - "UntypedInBoundsAccessChainKHR\0" // IR(31817, 30) - "SubgroupFirstInvocationKHR\0" // IR(31847, 27) - "UntypedPtrAccessChainKHR\0" // IR(31874, 25) - "UntypedInBoundsPtrAccessChainKHR\0" // IR(31899, 33) - "UntypedArrayLengthKHR\0" // IR(31932, 22) - "UntypedPrefetchKHR\0" // IR(31954, 19) - "FmaKHR\0" // IR(31973, 7) - "SubgroupAllKHR\0" // IR(31980, 15) - "SubgroupAnyKHR\0" // IR(31995, 15) - "SubgroupAllEqualKHR\0" // IR(32010, 20) - "SubgroupReadInvocationKHR\0" // IR(32030, 26) - "ExtInstWithForwardRefsKHR\0" // IR(32056, 26) - "UntypedGroupAsyncCopyKHR\0" // IR(32082, 25) - "TraceRayKHR\0" // IR(32107, 12) - "ExecuteCallableKHR\0" // IR(32119, 19) - "ConvertUToAccelerationStructureKHR\0" // IR(32138, 35) - "IgnoreIntersectionKHR\0" // IR(32173, 22) - "TerminateRayKHR\0" // IR(32195, 16) - "SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT\0" // IR(32211, 47) - "SDot\0" // IR(32258, 5) - "SDotKHR\0" // IR(32263, 8) - "UDot\0" // IR(32271, 5) - "UDotKHR\0" // IR(32276, 8) - "SUDot\0" // IR(32284, 6) - "SUDotKHR\0" // IR(32290, 9) - "SDotAccSat\0" // IR(32299, 11) - "SDotAccSatKHR\0" // IR(32310, 14) - "UDotAccSat\0" // IR(32324, 11) - "UDotAccSatKHR\0" // IR(32335, 14) - "SUDotAccSat\0" // IR(32349, 12) - "SUDotAccSatKHR\0" // IR(32361, 15) - "TypeCooperativeMatrixKHR\0" // IR(32376, 25) - "CooperativeMatrixLoadKHR\0" // IR(32401, 25) - "CooperativeMatrixStoreKHR\0" // IR(32426, 26) - "SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS\0" // IR(32452, 54) - "CooperativeMatrixMulAddKHR\0" // IR(32506, 27) - "CooperativeMatrixLengthKHR\0" // IR(32533, 27) - "ConstantCompositeReplicateEXT\0" // IR(32560, 30) - "SpecConstantCompositeReplicateEXT\0" // IR(32590, 34) - "CompositeConstructReplicateEXT\0" // IR(32624, 31) - "TypeRayQueryKHR\0" // IR(32655, 16) - "RayQueryInitializeKHR\0" // IR(32671, 22) - "RayQueryTerminateKHR\0" // IR(32693, 21) - "RayQueryGenerateIntersectionKHR\0" // IR(32714, 32) - "RayQueryConfirmIntersectionKHR\0" // IR(32746, 31) - "RayQueryProceedKHR\0" // IR(32777, 19) - "RayQueryGetIntersectionTypeKHR\0" // IR(32796, 31) - "ImageSampleWeightedQCOM\0" // IR(32827, 24) - "ImageBoxFilterQCOM\0" // IR(32851, 19) - "ImageBlockMatchSSDQCOM\0" // IR(32870, 23) - "ImageBlockMatchSADQCOM\0" // IR(32893, 23) - "BitCastArrayQCOM\0" // IR(32916, 17) - "ImageBlockMatchWindowSSDQCOM\0" // IR(32933, 29) - "ImageBlockMatchWindowSADQCOM\0" // IR(32962, 29) - "ImageBlockMatchGatherSSDQCOM\0" // IR(32991, 29) - "ImageBlockMatchGatherSADQCOM\0" // IR(33020, 29) - "CompositeConstructCoopMatQCOM\0" // IR(33049, 30) - "CompositeExtractCoopMatQCOM\0" // IR(33079, 28) - "ExtractSubArrayQCOM\0" // IR(33107, 20) - "GroupIAddNonUniformAMD\0" // IR(33127, 23) - "GroupFAddNonUniformAMD\0" // IR(33150, 23) - "GroupFMinNonUniformAMD\0" // IR(33173, 23) - "GroupUMinNonUniformAMD\0" // IR(33196, 23) - "GroupSMinNonUniformAMD\0" // IR(33219, 23) - "GroupFMaxNonUniformAMD\0" // IR(33242, 23) - "GroupUMaxNonUniformAMD\0" // IR(33265, 23) - "GroupSMaxNonUniformAMD\0" // IR(33288, 23) - "FragmentMaskFetchAMD\0" // IR(33311, 21) - "FragmentFetchAMD\0" // IR(33332, 17) - "ReadClockKHR\0" // IR(33349, 13) - "AllocateNodePayloadsAMDX\0" // IR(33362, 25) - "EnqueueNodePayloadsAMDX\0" // IR(33387, 24) - "TypeNodePayloadArrayAMDX\0" // IR(33411, 25) - "FinishWritingNodePayloadAMDX\0" // IR(33436, 29) - "NodePayloadArrayLengthAMDX\0" // IR(33465, 27) - "IsNodePayloadValidAMDX\0" // IR(33492, 23) - "ConstantStringAMDX\0" // IR(33515, 19) - "SpecConstantStringAMDX\0" // IR(33534, 23) - "GroupNonUniformQuadAllKHR\0" // IR(33557, 26) - "GroupNonUniformQuadAnyKHR\0" // IR(33583, 26) - "HitObjectRecordHitMotionNV\0" // IR(33609, 27) - "HitObjectRecordHitWithIndexMotionNV\0" // IR(33636, 36) - "HitObjectRecordMissMotionNV\0" // IR(33672, 28) - "HitObjectGetWorldToObjectNV\0" // IR(33700, 28) - "HitObjectGetObjectToWorldNV\0" // IR(33728, 28) - "HitObjectGetObjectRayDirectionNV\0" // IR(33756, 33) - "HitObjectGetObjectRayOriginNV\0" // IR(33789, 30) - "HitObjectTraceRayMotionNV\0" // IR(33819, 26) - "HitObjectGetShaderRecordBufferHandleNV\0" // IR(33845, 39) - "HitObjectGetShaderBindingTableRecordIndexNV\0" // IR(33884, 44) - "HitObjectRecordEmptyNV\0" // IR(33928, 23) - "HitObjectTraceRayNV\0" // IR(33951, 20) - "HitObjectRecordHitNV\0" // IR(33971, 21) - "HitObjectRecordHitWithIndexNV\0" // IR(33992, 30) - "HitObjectRecordMissNV\0" // IR(34022, 22) - "HitObjectExecuteShaderNV\0" // IR(34044, 25) - "HitObjectGetCurrentTimeNV\0" // IR(34069, 26) - "HitObjectGetAttributesNV\0" // IR(34095, 25) - "HitObjectGetHitKindNV\0" // IR(34120, 22) - "HitObjectGetPrimitiveIndexNV\0" // IR(34142, 29) - "HitObjectGetGeometryIndexNV\0" // IR(34171, 28) - "HitObjectGetInstanceIdNV\0" // IR(34199, 25) - "HitObjectGetInstanceCustomIndexNV\0" // IR(34224, 34) - "HitObjectGetWorldRayDirectionNV\0" // IR(34258, 32) - "HitObjectGetWorldRayOriginNV\0" // IR(34290, 29) - "HitObjectGetRayTMaxNV\0" // IR(34319, 22) - "HitObjectGetRayTMinNV\0" // IR(34341, 22) - "HitObjectIsEmptyNV\0" // IR(34363, 19) - "HitObjectIsHitNV\0" // IR(34382, 17) - "HitObjectIsMissNV\0" // IR(34399, 18) - "ReorderThreadWithHitObjectNV\0" // IR(34417, 29) - "ReorderThreadWithHintNV\0" // IR(34446, 24) - "TypeHitObjectNV\0" // IR(34470, 16) - "ImageSampleFootprintNV\0" // IR(34486, 23) - "TypeCooperativeVectorNV\0" // IR(34509, 24) - "CooperativeVectorMatrixMulNV\0" // IR(34533, 29) - "CooperativeVectorOuterProductAccumulateNV\0" // IR(34562, 42) - "CooperativeVectorReduceSumAccumulateNV\0" // IR(34604, 39) - "CooperativeVectorMatrixMulAddNV\0" // IR(34643, 32) - "CooperativeMatrixConvertNV\0" // IR(34675, 27) - "EmitMeshTasksEXT\0" // IR(34702, 17) - "SetMeshOutputsEXT\0" // IR(34719, 18) - "GroupNonUniformPartitionNV\0" // IR(34737, 27) - "WritePackedPrimitiveIndices4x8NV\0" // IR(34764, 33) - "FetchMicroTriangleVertexPositionNV\0" // IR(34797, 35) - "FetchMicroTriangleVertexBarycentricNV\0" // IR(34832, 38) - "CooperativeVectorLoadNV\0" // IR(34870, 24) - "CooperativeVectorStoreNV\0" // IR(34894, 25) - "ReportIntersectionKHR\0" // IR(34919, 22) - "ReportIntersectionNV\0" // IR(34941, 21) - "IgnoreIntersectionNV\0" // IR(34962, 21) - "TerminateRayNV\0" // IR(34983, 15) - "TraceNV\0" // IR(34998, 8) - "TraceMotionNV\0" // IR(35006, 14) - "TraceRayMotionNV\0" // IR(35020, 17) - "RayQueryGetIntersectionTriangleVertexPositionsKHR\0" // IR(35037, 50) - "TypeAccelerationStructureKHR\0" // IR(35087, 29) - "TypeAccelerationStructureNV\0" // IR(35116, 28) - "ExecuteCallableNV\0" // IR(35144, 18) - "RayQueryGetIntersectionClusterIdNV\0" // IR(35162, 35) - "RayQueryGetClusterIdNV\0" // IR(35197, 23) - "HitObjectGetClusterIdNV\0" // IR(35220, 24) - "TypeCooperativeMatrixNV\0" // IR(35244, 24) - "CooperativeMatrixLoadNV\0" // IR(35268, 24) - "CooperativeMatrixStoreNV\0" // IR(35292, 25) - "CooperativeMatrixMulAddNV\0" // IR(35317, 26) - "CooperativeMatrixLengthNV\0" // IR(35343, 26) - "BeginInvocationInterlockEXT\0" // IR(35369, 28) - "EndInvocationInterlockEXT\0" // IR(35397, 26) - "SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE\0" // IR(35423, 43) - "CooperativeMatrixReduceNV\0" // IR(35466, 26) - "SPV_OPERAND_TYPE_MEMORY_ACCESS\0" // IR(35492, 31) - "SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS\0" // IR(35523, 44) - "CooperativeMatrixLoadTensorNV\0" // IR(35567, 30) - "CooperativeMatrixStoreTensorNV\0" // IR(35597, 31) - "CooperativeMatrixPerElementOpNV\0" // IR(35628, 32) - "TypeTensorLayoutNV\0" // IR(35660, 19) - "TypeTensorViewNV\0" // IR(35679, 17) - "CreateTensorLayoutNV\0" // IR(35696, 21) - "TensorLayoutSetDimensionNV\0" // IR(35717, 27) - "TensorLayoutSetStrideNV\0" // IR(35744, 24) - "TensorLayoutSliceNV\0" // IR(35768, 20) - "TensorLayoutSetClampValueNV\0" // IR(35788, 28) - "CreateTensorViewNV\0" // IR(35816, 19) - "TensorViewSetDimensionNV\0" // IR(35835, 25) - "TensorViewSetStrideNV\0" // IR(35860, 22) - "IsHelperInvocationEXT\0" // IR(35882, 22) - "TensorViewSetClipNV\0" // IR(35904, 20) - "TensorLayoutSetBlockSizeNV\0" // IR(35924, 27) - "CooperativeMatrixTransposeNV\0" // IR(35951, 29) - "ConvertUToImageNV\0" // IR(35980, 18) - "ConvertUToSamplerNV\0" // IR(35998, 20) - "ConvertImageToUNV\0" // IR(36018, 18) - "ConvertSamplerToUNV\0" // IR(36036, 20) - "ConvertUToSampledImageNV\0" // IR(36056, 25) - "ConvertSampledImageToUNV\0" // IR(36081, 25) - "SamplerImageAddressingModeNV\0" // IR(36106, 29) - "SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS\0" // IR(36135, 52) - "RawAccessChainNV\0" // IR(36187, 17) - "RayQueryGetIntersectionSpherePositionNV\0" // IR(36204, 40) - "RayQueryGetIntersectionSphereRadiusNV\0" // IR(36244, 38) - "RayQueryGetIntersectionLSSPositionsNV\0" // IR(36282, 38) - "RayQueryGetIntersectionLSSRadiiNV\0" // IR(36320, 34) - "RayQueryGetIntersectionLSSHitValueNV\0" // IR(36354, 37) - "HitObjectGetSpherePositionNV\0" // IR(36391, 29) - "HitObjectGetSphereRadiusNV\0" // IR(36420, 27) - "HitObjectGetLSSPositionsNV\0" // IR(36447, 27) - "HitObjectGetLSSRadiiNV\0" // IR(36474, 23) - "HitObjectIsSphereHitNV\0" // IR(36497, 23) - "HitObjectIsLSSHitNV\0" // IR(36520, 20) - "RayQueryIsSphereHitNV\0" // IR(36540, 22) - "RayQueryIsLSSHitNV\0" // IR(36562, 19) - "SubgroupShuffleDownINTEL\0" // IR(36581, 25) - "SubgroupShuffleUpINTEL\0" // IR(36606, 23) - "SubgroupShuffleXorINTEL\0" // IR(36629, 24) - "SubgroupBlockReadINTEL\0" // IR(36653, 23) - "SubgroupBlockWriteINTEL\0" // IR(36676, 24) - "SubgroupImageBlockReadINTEL\0" // IR(36700, 28) - "SubgroupImageBlockWriteINTEL\0" // IR(36728, 29) - "SubgroupImageMediaBlockReadINTEL\0" // IR(36757, 33) - "SubgroupImageMediaBlockWriteINTEL\0" // IR(36790, 34) - "UCountLeadingZerosINTEL\0" // IR(36824, 24) - "UCountTrailingZerosINTEL\0" // IR(36848, 25) - "AbsISubINTEL\0" // IR(36873, 13) - "AbsUSubINTEL\0" // IR(36886, 13) - "IAddSatINTEL\0" // IR(36899, 13) - "UAddSatINTEL\0" // IR(36912, 13) - "IAverageINTEL\0" // IR(36925, 14) - "UAverageINTEL\0" // IR(36939, 14) - "IAverageRoundedINTEL\0" // IR(36953, 21) - "UAverageRoundedINTEL\0" // IR(36974, 21) - "ISubSatINTEL\0" // IR(36995, 13) - "USubSatINTEL\0" // IR(37008, 13) - "IMul32x16INTEL\0" // IR(37021, 15) - "UMul32x16INTEL\0" // IR(37036, 15) - "ConstantFunctionPointerINTEL\0" // IR(37051, 29) - "FunctionPointerCallINTEL\0" // IR(37080, 25) - "AsmTargetINTEL\0" // IR(37105, 15) - "AsmCallINTEL\0" // IR(37120, 13) - "AtomicFMinEXT\0" // IR(37133, 14) - "AtomicFMaxEXT\0" // IR(37147, 14) - "AssumeTrueKHR\0" // IR(37161, 14) - "ExpectKHR\0" // IR(37175, 10) - "DecorateString\0" // IR(37185, 15) - "DecorateStringGOOGLE\0" // IR(37200, 21) - "MemberDecorateString\0" // IR(37221, 21) - "MemberDecorateStringGOOGLE\0" // IR(37242, 27) - "VmeImageINTEL\0" // IR(37269, 14) - "TypeVmeImageINTEL\0" // IR(37283, 18) - "TypeAvcImePayloadINTEL\0" // IR(37301, 23) - "TypeAvcRefPayloadINTEL\0" // IR(37324, 23) - "TypeAvcSicPayloadINTEL\0" // IR(37347, 23) - "TypeAvcMcePayloadINTEL\0" // IR(37370, 23) - "TypeAvcMceResultINTEL\0" // IR(37393, 22) - "TypeAvcImeResultINTEL\0" // IR(37415, 22) - "TypeAvcImeResultSingleReferenceStreamoutINTEL\0" // IR(37437, 46) - "TypeAvcImeResultDualReferenceStreamoutINTEL\0" // IR(37483, 44) - "TypeAvcImeSingleReferenceStreaminINTEL\0" // IR(37527, 39) - "TypeAvcImeDualReferenceStreaminINTEL\0" // IR(37566, 37) - "TypeAvcRefResultINTEL\0" // IR(37603, 22) - "TypeAvcSicResultINTEL\0" // IR(37625, 22) - "SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL\0" // IR(37647, 60) - "SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL\0" // IR(37707, 53) - "SubgroupAvcMceGetDefaultInterShapePenaltyINTEL\0" // IR(37760, 47) - "SubgroupAvcMceSetInterShapePenaltyINTEL\0" // IR(37807, 40) - "SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL\0" // IR(37847, 51) - "SubgroupAvcMceSetInterDirectionPenaltyINTEL\0" // IR(37898, 44) - "SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL\0" // IR(37942, 51) - "SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL\0" // IR(37993, 56) - "SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL\0" // IR(38049, 50) - "SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL\0" // IR(38099, 52) - "SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL\0" // IR(38151, 49) - "SubgroupAvcMceSetMotionVectorCostFunctionINTEL\0" // IR(38200, 47) - "SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL\0" // IR(38247, 50) - "SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL\0" // IR(38297, 51) - "SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL\0" // IR(38348, 56) - "SubgroupAvcMceSetAcOnlyHaarINTEL\0" // IR(38404, 33) - "SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL\0" // IR(38437, 52) - "SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL\0" // IR(38489, 61) - "SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL\0" // IR(38550, 61) - "SubgroupAvcMceConvertToImePayloadINTEL\0" // IR(38611, 39) - "SubgroupAvcMceConvertToImeResultINTEL\0" // IR(38650, 38) - "SubgroupAvcMceConvertToRefPayloadINTEL\0" // IR(38688, 39) - "SubgroupAvcMceConvertToRefResultINTEL\0" // IR(38727, 38) - "SubgroupAvcMceConvertToSicPayloadINTEL\0" // IR(38765, 39) - "SubgroupAvcMceConvertToSicResultINTEL\0" // IR(38804, 38) - "SubgroupAvcMceGetMotionVectorsINTEL\0" // IR(38842, 36) - "SubgroupAvcMceGetInterDistortionsINTEL\0" // IR(38878, 39) - "SubgroupAvcMceGetBestInterDistortionsINTEL\0" // IR(38917, 43) - "SubgroupAvcMceGetInterMajorShapeINTEL\0" // IR(38960, 38) - "SubgroupAvcMceGetInterMinorShapeINTEL\0" // IR(38998, 38) - "SubgroupAvcMceGetInterDirectionsINTEL\0" // IR(39036, 38) - "SubgroupAvcMceGetInterMotionVectorCountINTEL\0" // IR(39074, 45) - "SubgroupAvcMceGetInterReferenceIdsINTEL\0" // IR(39119, 40) - "SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL\0" // IR(39159, 62) - "SubgroupAvcImeInitializeINTEL\0" // IR(39221, 30) - "SubgroupAvcImeSetSingleReferenceINTEL\0" // IR(39251, 38) - "SubgroupAvcImeSetDualReferenceINTEL\0" // IR(39289, 36) - "SubgroupAvcImeRefWindowSizeINTEL\0" // IR(39325, 33) - "SubgroupAvcImeAdjustRefOffsetINTEL\0" // IR(39358, 35) - "SubgroupAvcImeConvertToMcePayloadINTEL\0" // IR(39393, 39) - "SubgroupAvcImeSetMaxMotionVectorCountINTEL\0" // IR(39432, 43) - "SubgroupAvcImeSetUnidirectionalMixDisableINTEL\0" // IR(39475, 47) - "SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL\0" // IR(39522, 54) - "SubgroupAvcImeSetWeightedSadINTEL\0" // IR(39576, 34) - "SubgroupAvcImeEvaluateWithSingleReferenceINTEL\0" // IR(39610, 47) - "SubgroupAvcImeEvaluateWithDualReferenceINTEL\0" // IR(39657, 45) - "SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL\0" // IR(39702, 55) - "SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL\0" // IR(39757, 53) - "SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL\0" // IR(39810, 56) - "SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL\0" // IR(39866, 54) - "SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL\0" // IR(39920, 58) - "SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL\0" // IR(39978, 56) - "SubgroupAvcImeConvertToMceResultINTEL\0" // IR(40034, 38) - "SubgroupAvcImeGetSingleReferenceStreaminINTEL\0" // IR(40072, 46) - "SubgroupAvcImeGetDualReferenceStreaminINTEL\0" // IR(40118, 44) - "SubgroupAvcImeStripSingleReferenceStreamoutINTEL\0" // IR(40162, 49) - "SubgroupAvcImeStripDualReferenceStreamoutINTEL\0" // IR(40211, 47) - "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL\0" // IR(40258, 70) - "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL\0" // IR(40328, 68) - "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL\0" // IR(40396, 69) - "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL\0" // IR(40465, 68) - "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL\0" // IR(40533, 66) - "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL\0" // IR(40599, 67) - "SubgroupAvcImeGetBorderReachedINTEL\0" // IR(40666, 36) - "SubgroupAvcImeGetTruncatedSearchIndicationINTEL\0" // IR(40702, 48) - "SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL\0" // IR(40750, 59) - "SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL\0" // IR(40809, 58) - "SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL\0" // IR(40867, 56) - "SubgroupAvcFmeInitializeINTEL\0" // IR(40923, 30) - "SubgroupAvcBmeInitializeINTEL\0" // IR(40953, 30) - "SubgroupAvcRefConvertToMcePayloadINTEL\0" // IR(40983, 39) - "SubgroupAvcRefSetBidirectionalMixDisableINTEL\0" // IR(41022, 46) - "SubgroupAvcRefSetBilinearFilterEnableINTEL\0" // IR(41068, 43) - "SubgroupAvcRefEvaluateWithSingleReferenceINTEL\0" // IR(41111, 47) - "SubgroupAvcRefEvaluateWithDualReferenceINTEL\0" // IR(41158, 45) - "SubgroupAvcRefEvaluateWithMultiReferenceINTEL\0" // IR(41203, 46) - "SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(41249, 56) - "SubgroupAvcRefConvertToMceResultINTEL\0" // IR(41305, 38) - "SubgroupAvcSicInitializeINTEL\0" // IR(41343, 30) - "SubgroupAvcSicConfigureSkcINTEL\0" // IR(41373, 32) - "SubgroupAvcSicConfigureIpeLumaINTEL\0" // IR(41405, 36) - "SubgroupAvcSicConfigureIpeLumaChromaINTEL\0" // IR(41441, 42) - "SubgroupAvcSicGetMotionVectorMaskINTEL\0" // IR(41483, 39) - "SubgroupAvcSicConvertToMcePayloadINTEL\0" // IR(41522, 39) - "SubgroupAvcSicSetIntraLumaShapePenaltyINTEL\0" // IR(41561, 44) - "SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL\0" // IR(41605, 48) - "SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL\0" // IR(41653, 50) - "SubgroupAvcSicSetBilinearFilterEnableINTEL\0" // IR(41703, 43) - "SubgroupAvcSicSetSkcForwardTransformEnableINTEL\0" // IR(41746, 48) - "SubgroupAvcSicSetBlockBasedRawSkipSadINTEL\0" // IR(41794, 43) - "SubgroupAvcSicEvaluateIpeINTEL\0" // IR(41837, 31) - "SubgroupAvcSicEvaluateWithSingleReferenceINTEL\0" // IR(41868, 47) - "SubgroupAvcSicEvaluateWithDualReferenceINTEL\0" // IR(41915, 45) - "SubgroupAvcSicEvaluateWithMultiReferenceINTEL\0" // IR(41960, 46) - "SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(42006, 56) - "SubgroupAvcSicConvertToMceResultINTEL\0" // IR(42062, 38) - "SubgroupAvcSicGetIpeLumaShapeINTEL\0" // IR(42100, 35) - "SubgroupAvcSicGetBestIpeLumaDistortionINTEL\0" // IR(42135, 44) - "SubgroupAvcSicGetBestIpeChromaDistortionINTEL\0" // IR(42179, 46) - "SubgroupAvcSicGetPackedIpeLumaModesINTEL\0" // IR(42225, 41) - "SubgroupAvcSicGetIpeChromaModeINTEL\0" // IR(42266, 36) - "SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL\0" // IR(42302, 50) - "SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL\0" // IR(42352, 48) - "SubgroupAvcSicGetInterRawSadsINTEL\0" // IR(42400, 35) - "SaveMemoryINTEL\0" // IR(42435, 16) - "RestoreMemoryINTEL\0" // IR(42451, 19) - "ArbitraryFloatSinCosPiINTEL\0" // IR(42470, 28) - "ArbitraryFloatCastINTEL\0" // IR(42498, 24) - "ArbitraryFloatCastFromIntINTEL\0" // IR(42522, 31) - "ArbitraryFloatCastToIntINTEL\0" // IR(42553, 29) - "ArbitraryFloatAddINTEL\0" // IR(42582, 23) - "ArbitraryFloatSubINTEL\0" // IR(42605, 23) - "ArbitraryFloatMulINTEL\0" // IR(42628, 23) - "ArbitraryFloatDivINTEL\0" // IR(42651, 23) - "ArbitraryFloatGTINTEL\0" // IR(42674, 22) - "ArbitraryFloatGEINTEL\0" // IR(42696, 22) - "ArbitraryFloatLTINTEL\0" // IR(42718, 22) - "ArbitraryFloatLEINTEL\0" // IR(42740, 22) - "ArbitraryFloatEQINTEL\0" // IR(42762, 22) - "ArbitraryFloatRecipINTEL\0" // IR(42784, 25) - "ArbitraryFloatRSqrtINTEL\0" // IR(42809, 25) - "ArbitraryFloatCbrtINTEL\0" // IR(42834, 24) - "ArbitraryFloatHypotINTEL\0" // IR(42858, 25) - "ArbitraryFloatSqrtINTEL\0" // IR(42883, 24) - "ArbitraryFloatLogINTEL\0" // IR(42907, 23) - "ArbitraryFloatLog2INTEL\0" // IR(42930, 24) - "ArbitraryFloatLog10INTEL\0" // IR(42954, 25) - "ArbitraryFloatLog1pINTEL\0" // IR(42979, 25) - "ArbitraryFloatExpINTEL\0" // IR(43004, 23) - "ArbitraryFloatExp2INTEL\0" // IR(43027, 24) - "ArbitraryFloatExp10INTEL\0" // IR(43051, 25) - "ArbitraryFloatExpm1INTEL\0" // IR(43076, 25) - "ArbitraryFloatSinINTEL\0" // IR(43101, 23) - "ArbitraryFloatCosINTEL\0" // IR(43124, 23) - "ArbitraryFloatSinCosINTEL\0" // IR(43147, 26) - "ArbitraryFloatSinPiINTEL\0" // IR(43173, 25) - "ArbitraryFloatCosPiINTEL\0" // IR(43198, 25) - "ArbitraryFloatASinINTEL\0" // IR(43223, 24) - "ArbitraryFloatASinPiINTEL\0" // IR(43247, 26) - "ArbitraryFloatACosINTEL\0" // IR(43273, 24) - "ArbitraryFloatACosPiINTEL\0" // IR(43297, 26) - "ArbitraryFloatATanINTEL\0" // IR(43323, 24) - "ArbitraryFloatATanPiINTEL\0" // IR(43347, 26) - "ArbitraryFloatATan2INTEL\0" // IR(43373, 25) - "ArbitraryFloatPowINTEL\0" // IR(43398, 23) - "ArbitraryFloatPowRINTEL\0" // IR(43421, 24) - "ArbitraryFloatPowNINTEL\0" // IR(43445, 24) - "LoopControlINTEL\0" // IR(43469, 17) - "AliasDomainDeclINTEL\0" // IR(43486, 21) - "AliasScopeDeclINTEL\0" // IR(43507, 20) - "AliasScopeListDeclINTEL\0" // IR(43527, 24) - "FixedSqrtINTEL\0" // IR(43551, 15) - "FixedRecipINTEL\0" // IR(43566, 16) - "FixedRsqrtINTEL\0" // IR(43582, 16) - "FixedSinINTEL\0" // IR(43598, 14) - "FixedCosINTEL\0" // IR(43612, 14) - "FixedSinCosINTEL\0" // IR(43626, 17) - "FixedSinPiINTEL\0" // IR(43643, 16) - "FixedCosPiINTEL\0" // IR(43659, 16) - "FixedSinCosPiINTEL\0" // IR(43675, 19) - "FixedLogINTEL\0" // IR(43694, 14) - "FixedExpINTEL\0" // IR(43708, 14) - "PtrCastToCrossWorkgroupINTEL\0" // IR(43722, 29) - "CrossWorkgroupCastToPtrINTEL\0" // IR(43751, 29) - "ReadPipeBlockingINTEL\0" // IR(43780, 22) - "WritePipeBlockingINTEL\0" // IR(43802, 23) - "RayQueryGetRayTMinKHR\0" // IR(43825, 22) - "RayQueryGetRayFlagsKHR\0" // IR(43847, 23) - "RayQueryGetIntersectionTKHR\0" // IR(43870, 28) - "RayQueryGetIntersectionInstanceCustomIndexKHR\0" // IR(43898, 46) - "RayQueryGetIntersectionInstanceIdKHR\0" // IR(43944, 37) - "RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR\0" // IR(43981, 65) - "RayQueryGetIntersectionGeometryIndexKHR\0" // IR(44046, 40) - "RayQueryGetIntersectionPrimitiveIndexKHR\0" // IR(44086, 41) - "RayQueryGetIntersectionBarycentricsKHR\0" // IR(44127, 39) - "RayQueryGetIntersectionFrontFaceKHR\0" // IR(44166, 36) - "RayQueryGetIntersectionCandidateAABBOpaqueKHR\0" // IR(44202, 46) - "RayQueryGetIntersectionObjectRayDirectionKHR\0" // IR(44248, 45) - "RayQueryGetIntersectionObjectRayOriginKHR\0" // IR(44293, 42) - "RayQueryGetWorldRayDirectionKHR\0" // IR(44335, 32) - "RayQueryGetWorldRayOriginKHR\0" // IR(44367, 29) - "RayQueryGetIntersectionObjectToWorldKHR\0" // IR(44396, 40) - "RayQueryGetIntersectionWorldToObjectKHR\0" // IR(44436, 40) - "AtomicFAddEXT\0" // IR(44476, 14) - "TypeBufferSurfaceINTEL\0" // IR(44490, 23) - "TypeStructContinuedINTEL\0" // IR(44513, 25) - "ConstantCompositeContinuedINTEL\0" // IR(44538, 32) - "SpecConstantCompositeContinuedINTEL\0" // IR(44570, 36) - "CompositeConstructContinuedINTEL\0" // IR(44606, 33) - "ConvertFToBF16INTEL\0" // IR(44639, 20) - "ConvertBF16ToFINTEL\0" // IR(44659, 20) - "ControlBarrierArriveINTEL\0" // IR(44679, 26) - "ControlBarrierWaitINTEL\0" // IR(44705, 24) - "TaskSequenceCreateINTEL\0" // IR(44729, 24) - "TaskSequenceAsyncINTEL\0" // IR(44753, 23) - "TaskSequenceGetINTEL\0" // IR(44776, 21) - "TaskSequenceReleaseINTEL\0" // IR(44797, 25) - "TypeTaskSequenceINTEL\0" // IR(44822, 22) - "SubgroupBlockPrefetchINTEL\0" // IR(44844, 27) - "Subgroup2DBlockLoadINTEL\0" // IR(44871, 25) - "Subgroup2DBlockLoadTransformINTEL\0" // IR(44896, 34) - "Subgroup2DBlockLoadTransposeINTEL\0" // IR(44930, 34) - "Subgroup2DBlockPrefetchINTEL\0" // IR(44964, 29) - "Subgroup2DBlockStoreINTEL\0" // IR(44993, 26) - "SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS\0" // IR(45019, 62) - "BitwiseFunctionINTEL\0" // IR(45081, 21) - "ConditionalExtensionINTEL\0" // IR(45102, 26) - "ConditionalEntryPointINTEL\0" // IR(45128, 27) - "ConditionalCapabilityINTEL\0" // IR(45155, 27) - "SpecConstantTargetINTEL\0" // IR(45182, 24) - "SpecConstantArchitectureINTEL\0" // IR(45206, 30) - "SPV_OPERAND_TYPE_VARIABLE_CAPABILITY\0" // IR(45236, 37) - "SpecConstantCapabilitiesINTEL\0" // IR(45273, 30) - "ConditionalCopyObjectINTEL\0" // IR(45303, 27) - "GroupIMulKHR\0" // IR(45330, 13) - "GroupFMulKHR\0" // IR(45343, 13) - "GroupBitwiseAndKHR\0" // IR(45356, 19) - "GroupBitwiseOrKHR\0" // IR(45375, 18) - "GroupBitwiseXorKHR\0" // IR(45393, 19) - "GroupLogicalAndKHR\0" // IR(45412, 19) - "GroupLogicalOrKHR\0" // IR(45431, 18) - "GroupLogicalXorKHR\0" // IR(45449, 19) - "RoundFToTF32INTEL\0" // IR(45468, 18) - "MaskedGatherINTEL\0" // IR(45486, 18) - "MaskedScatterINTEL\0" // IR(45504, 19) - "ConvertHandleToImageINTEL\0" // IR(45523, 26) - "ConvertHandleToSamplerINTEL\0" // IR(45549, 28) - "ConvertHandleToSampledImageINTEL\0" // IR(45577, 33) - "DebugInfoNone\0" // IR(45610, 14) - "DebugCompilationUnit\0" // IR(45624, 21) - "SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(45645, 52) - "DebugTypeBasic\0" // IR(45697, 15) - "SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS\0" // IR(45712, 34) - "DebugTypePointer\0" // IR(45746, 17) - "SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER\0" // IR(45763, 38) - "DebugTypeQualifier\0" // IR(45801, 19) - "DebugTypeArray\0" // IR(45820, 15) - "DebugTypeVector\0" // IR(45835, 16) - "DebugTypedef\0" // IR(45851, 13) - "DebugTypeFunction\0" // IR(45864, 18) - "DebugTypeEnum\0" // IR(45882, 14) - "SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE\0" // IR(45896, 38) - "DebugTypeComposite\0" // IR(45934, 19) - "DebugTypeMember\0" // IR(45953, 16) - "DebugTypeInheritance\0" // IR(45969, 21) - "DebugTypePtrToMember\0" // IR(45990, 21) - "DebugTypeTemplate\0" // IR(46011, 18) - "DebugTypeTemplateParameter\0" // IR(46029, 27) - "DebugTypeTemplateTemplateParameter\0" // IR(46056, 35) - "DebugTypeTemplateParameterPack\0" // IR(46091, 31) - "DebugGlobalVariable\0" // IR(46122, 20) - "DebugFunctionDeclaration\0" // IR(46142, 25) - "DebugFunction\0" // IR(46167, 14) - "DebugLexicalBlock\0" // IR(46181, 18) - "DebugLexicalBlockDiscriminator\0" // IR(46199, 31) - "DebugScope\0" // IR(46230, 11) - "DebugNoScope\0" // IR(46241, 13) - "DebugInlinedAt\0" // IR(46254, 15) - "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER\0" // IR(46269, 42) - "DebugLocalVariable\0" // IR(46311, 19) - "DebugInlinedVariable\0" // IR(46330, 21) - "DebugDeclare\0" // IR(46351, 13) - "DebugValue\0" // IR(46364, 11) - "SPV_OPERAND_TYPE_DEBUG_OPERATION\0" // IR(46375, 33) - "DebugOperation\0" // IR(46408, 15) - "DebugExpression\0" // IR(46423, 16) - "DebugMacroDef\0" // IR(46439, 14) - "DebugMacroUndef\0" // IR(46453, 16) - "Round\0" // IR(46469, 6) - "RoundEven\0" // IR(46475, 10) - "Trunc\0" // IR(46485, 6) - "FAbs\0" // IR(46491, 5) - "SAbs\0" // IR(46496, 5) - "FSign\0" // IR(46501, 6) - "SSign\0" // IR(46507, 6) - "Floor\0" // IR(46513, 6) - "Ceil\0" // IR(46519, 5) - "Fract\0" // IR(46524, 6) - "Radians\0" // IR(46530, 8) - "Degrees\0" // IR(46538, 8) - "Sin\0" // IR(46546, 4) - "Cos\0" // IR(46550, 4) - "Tan\0" // IR(46554, 4) - "Asin\0" // IR(46558, 5) - "Acos\0" // IR(46563, 5) - "Atan\0" // IR(46568, 5) - "Sinh\0" // IR(46573, 5) - "Cosh\0" // IR(46578, 5) - "Tanh\0" // IR(46583, 5) - "Asinh\0" // IR(46588, 6) - "Acosh\0" // IR(46594, 6) - "Atanh\0" // IR(46600, 6) - "Atan2\0" // IR(46606, 6) - "Pow\0" // IR(46612, 4) - "Exp\0" // IR(46616, 4) - "Log\0" // IR(46620, 4) - "Exp2\0" // IR(46624, 5) - "Log2\0" // IR(46629, 5) - "Sqrt\0" // IR(46634, 5) - "InverseSqrt\0" // IR(46639, 12) - "Determinant\0" // IR(46651, 12) - "MatrixInverse\0" // IR(46663, 14) - "Modf\0" // IR(46677, 5) - "ModfStruct\0" // IR(46682, 11) - "FMin\0" // IR(46693, 5) - "UMin\0" // IR(46698, 5) - "SMin\0" // IR(46703, 5) - "FMax\0" // IR(46708, 5) - "UMax\0" // IR(46713, 5) - "SMax\0" // IR(46718, 5) - "FClamp\0" // IR(46723, 7) - "UClamp\0" // IR(46730, 7) - "SClamp\0" // IR(46737, 7) - "FMix\0" // IR(46744, 5) - "IMix\0" // IR(46749, 5) - "Step\0" // IR(46754, 5) - "SmoothStep\0" // IR(46759, 11) - "Fma\0" // IR(46770, 4) - "Frexp\0" // IR(46774, 6) - "FrexpStruct\0" // IR(46780, 12) - "Ldexp\0" // IR(46792, 6) - "PackSnorm4x8\0" // IR(46798, 13) - "PackUnorm4x8\0" // IR(46811, 13) - "PackSnorm2x16\0" // IR(46824, 14) - "PackUnorm2x16\0" // IR(46838, 14) - "PackHalf2x16\0" // IR(46852, 13) - "PackDouble2x32\0" // IR(46865, 15) - "UnpackSnorm2x16\0" // IR(46880, 16) - "UnpackUnorm2x16\0" // IR(46896, 16) - "UnpackHalf2x16\0" // IR(46912, 15) - "UnpackSnorm4x8\0" // IR(46927, 15) - "UnpackUnorm4x8\0" // IR(46942, 15) - "UnpackDouble2x32\0" // IR(46957, 17) - "Length\0" // IR(46974, 7) - "Distance\0" // IR(46981, 9) - "Cross\0" // IR(46990, 6) - "Normalize\0" // IR(46996, 10) - "FaceForward\0" // IR(47006, 12) - "Reflect\0" // IR(47018, 8) - "Refract\0" // IR(47026, 8) - "FindILsb\0" // IR(47034, 9) - "FindSMsb\0" // IR(47043, 9) - "FindUMsb\0" // IR(47052, 9) - "InterpolateAtCentroid\0" // IR(47061, 22) - "InterpolateAtSample\0" // IR(47083, 20) - "InterpolateAtOffset\0" // IR(47103, 20) - "NMin\0" // IR(47123, 5) - "NMax\0" // IR(47128, 5) - "NClamp\0" // IR(47133, 7) - "ArgumentInfo\0" // IR(47140, 13) - "ArgumentStorageBuffer\0" // IR(47153, 22) - "ArgumentUniform\0" // IR(47175, 16) - "ArgumentPodStorageBuffer\0" // IR(47191, 25) - "ArgumentPodUniform\0" // IR(47216, 19) - "ArgumentPodPushConstant\0" // IR(47235, 24) - "ArgumentSampledImage\0" // IR(47259, 21) - "ArgumentStorageImage\0" // IR(47280, 21) - "ArgumentSampler\0" // IR(47301, 16) - "ArgumentWorkgroup\0" // IR(47317, 18) - "SpecConstantWorkgroupSize\0" // IR(47335, 26) - "SpecConstantGlobalOffset\0" // IR(47361, 25) - "SpecConstantWorkDim\0" // IR(47386, 20) - "PushConstantGlobalOffset\0" // IR(47406, 25) - "PushConstantEnqueuedLocalSize\0" // IR(47431, 30) - "PushConstantGlobalSize\0" // IR(47461, 23) - "PushConstantRegionOffset\0" // IR(47484, 25) - "PushConstantNumWorkgroups\0" // IR(47509, 26) - "PushConstantRegionGroupOffset\0" // IR(47535, 30) - "ConstantDataStorageBuffer\0" // IR(47565, 26) - "ConstantDataUniform\0" // IR(47591, 20) - "PropertyRequiredWorkgroupSize\0" // IR(47611, 30) - "SpecConstantSubgroupMaxSize\0" // IR(47641, 28) - "ArgumentPointerPushConstant\0" // IR(47669, 28) - "ArgumentPointerUniform\0" // IR(47697, 23) - "ProgramScopeVariablesStorageBuffer\0" // IR(47720, 35) - "ProgramScopeVariablePointerRelocation\0" // IR(47755, 38) - "ImageArgumentInfoChannelOrderPushConstant\0" // IR(47793, 42) - "ImageArgumentInfoChannelDataTypePushConstant\0" // IR(47835, 45) - "ImageArgumentInfoChannelOrderUniform\0" // IR(47880, 37) - "ImageArgumentInfoChannelDataTypeUniform\0" // IR(47917, 40) - "ArgumentStorageTexelBuffer\0" // IR(47957, 27) - "ArgumentUniformTexelBuffer\0" // IR(47984, 27) - "ConstantDataPointerPushConstant\0" // IR(48011, 32) - "ProgramScopeVariablePointerPushConstant\0" // IR(48043, 40) - "PrintfInfo\0" // IR(48083, 11) - "PrintfBufferStorageBuffer\0" // IR(48094, 26) - "PrintfBufferPointerPushConstant\0" // IR(48120, 32) - "NormalizedSamplerMaskPushConstant\0" // IR(48152, 34) - "WorkgroupVariableSize\0" // IR(48186, 22) - "DebugImportedEntity\0" // IR(48208, 20) - "DebugSource\0" // IR(48228, 12) - "DebugFunctionDefinition\0" // IR(48240, 24) - "DebugSourceContinued\0" // IR(48264, 21) - "DebugLine\0" // IR(48285, 10) - "DebugNoLine\0" // IR(48295, 12) - "DebugBuildIdentifier\0" // IR(48307, 21) - "DebugStoragePath\0" // IR(48328, 17) - "DebugEntryPoint\0" // IR(48345, 16) - "DebugTypeMatrix\0" // IR(48361, 16) - "Configuration\0" // IR(48377, 14) - "StartCounter\0" // IR(48391, 13) - "StopCounter\0" // IR(48404, 12) - "PushConstants\0" // IR(48416, 14) - "SpecializationMapEntry\0" // IR(48430, 23) - "DescriptorSetBuffer\0" // IR(48453, 20) - "DescriptorSetImage\0" // IR(48473, 19) - "DescriptorSetSampler\0" // IR(48492, 21) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(48513, 63) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS\0" // IR(48576, 45) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER\0" // IR(48621, 49) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE\0" // IR(48670, 49) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION\0" // IR(48719, 44) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY\0" // IR(48763, 50) - "DebugModuleINTEL\0" // IR(48813, 17) - "acos\0" // IR(48830, 5) - "acosh\0" // IR(48835, 6) - "acospi\0" // IR(48841, 7) - "asin\0" // IR(48848, 5) - "asinh\0" // IR(48853, 6) - "asinpi\0" // IR(48859, 7) - "atan\0" // IR(48866, 5) - "atan2\0" // IR(48871, 6) - "atanh\0" // IR(48877, 6) - "atanpi\0" // IR(48883, 7) - "atan2pi\0" // IR(48890, 8) - "cbrt\0" // IR(48898, 5) - "ceil\0" // IR(48903, 5) - "copysign\0" // IR(48908, 9) - "cos\0" // IR(48917, 4) - "cosh\0" // IR(48921, 5) - "cospi\0" // IR(48926, 6) - "erfc\0" // IR(48932, 5) - "erf\0" // IR(48937, 4) - "exp\0" // IR(48941, 4) - "exp2\0" // IR(48945, 5) - "exp10\0" // IR(48950, 6) - "expm1\0" // IR(48956, 6) - "fabs\0" // IR(48962, 5) - "fdim\0" // IR(48967, 5) - "floor\0" // IR(48972, 6) - "fma\0" // IR(48978, 4) - "fmax\0" // IR(48982, 5) - "fmin\0" // IR(48987, 5) - "fmod\0" // IR(48992, 5) - "fract\0" // IR(48997, 6) - "frexp\0" // IR(49003, 6) - "hypot\0" // IR(49009, 6) - "ilogb\0" // IR(49015, 6) - "ldexp\0" // IR(49021, 6) - "lgamma\0" // IR(49027, 7) - "lgamma_r\0" // IR(49034, 9) - "log\0" // IR(49043, 4) - "log2\0" // IR(49047, 5) - "log10\0" // IR(49052, 6) - "log1p\0" // IR(49058, 6) - "logb\0" // IR(49064, 5) - "mad\0" // IR(49069, 4) - "maxmag\0" // IR(49073, 7) - "minmag\0" // IR(49080, 7) - "modf\0" // IR(49087, 5) - "nan\0" // IR(49092, 4) - "nextafter\0" // IR(49096, 10) - "pow\0" // IR(49106, 4) - "pown\0" // IR(49110, 5) - "powr\0" // IR(49115, 5) - "remainder\0" // IR(49120, 10) - "remquo\0" // IR(49130, 7) - "rint\0" // IR(49137, 5) - "rootn\0" // IR(49142, 6) - "round\0" // IR(49148, 6) - "rsqrt\0" // IR(49154, 6) - "sin\0" // IR(49160, 4) - "sincos\0" // IR(49164, 7) - "sinh\0" // IR(49171, 5) - "sinpi\0" // IR(49176, 6) - "sqrt\0" // IR(49182, 5) - "tan\0" // IR(49187, 4) - "tanh\0" // IR(49191, 5) - "tanpi\0" // IR(49196, 6) - "tgamma\0" // IR(49202, 7) - "trunc\0" // IR(49209, 6) - "half_cos\0" // IR(49215, 9) - "half_divide\0" // IR(49224, 12) - "half_exp\0" // IR(49236, 9) - "half_exp2\0" // IR(49245, 10) - "half_exp10\0" // IR(49255, 11) - "half_log\0" // IR(49266, 9) - "half_log2\0" // IR(49275, 10) - "half_log10\0" // IR(49285, 11) - "half_powr\0" // IR(49296, 10) - "half_recip\0" // IR(49306, 11) - "half_rsqrt\0" // IR(49317, 11) - "half_sin\0" // IR(49328, 9) - "half_sqrt\0" // IR(49337, 10) - "half_tan\0" // IR(49347, 9) - "native_cos\0" // IR(49356, 11) - "native_divide\0" // IR(49367, 14) - "native_exp\0" // IR(49381, 11) - "native_exp2\0" // IR(49392, 12) - "native_exp10\0" // IR(49404, 13) - "native_log\0" // IR(49417, 11) - "native_log2\0" // IR(49428, 12) - "native_log10\0" // IR(49440, 13) - "native_powr\0" // IR(49453, 12) - "native_recip\0" // IR(49465, 13) - "native_rsqrt\0" // IR(49478, 13) - "native_sin\0" // IR(49491, 11) - "native_sqrt\0" // IR(49502, 12) - "native_tan\0" // IR(49514, 11) - "fclamp\0" // IR(49525, 7) - "degrees\0" // IR(49532, 8) - "fmax_common\0" // IR(49540, 12) - "fmin_common\0" // IR(49552, 12) - "mix\0" // IR(49564, 4) - "radians\0" // IR(49568, 8) - "step\0" // IR(49576, 5) - "smoothstep\0" // IR(49581, 11) - "sign\0" // IR(49592, 5) - "cross\0" // IR(49597, 6) - "distance\0" // IR(49603, 9) - "length\0" // IR(49612, 7) - "normalize\0" // IR(49619, 10) - "fast_distance\0" // IR(49629, 14) - "fast_length\0" // IR(49643, 12) - "fast_normalize\0" // IR(49655, 15) - "s_abs\0" // IR(49670, 6) - "s_abs_diff\0" // IR(49676, 11) - "s_add_sat\0" // IR(49687, 10) - "u_add_sat\0" // IR(49697, 10) - "s_hadd\0" // IR(49707, 7) - "u_hadd\0" // IR(49714, 7) - "s_rhadd\0" // IR(49721, 8) - "u_rhadd\0" // IR(49729, 8) - "s_clamp\0" // IR(49737, 8) - "u_clamp\0" // IR(49745, 8) - "clz\0" // IR(49753, 4) - "ctz\0" // IR(49757, 4) - "s_mad_hi\0" // IR(49761, 9) - "u_mad_sat\0" // IR(49770, 10) - "s_mad_sat\0" // IR(49780, 10) - "s_max\0" // IR(49790, 6) - "u_max\0" // IR(49796, 6) - "s_min\0" // IR(49802, 6) - "u_min\0" // IR(49808, 6) - "s_mul_hi\0" // IR(49814, 9) - "rotate\0" // IR(49823, 7) - "s_sub_sat\0" // IR(49830, 10) - "u_sub_sat\0" // IR(49840, 10) - "u_upsample\0" // IR(49850, 11) - "s_upsample\0" // IR(49861, 11) - "popcount\0" // IR(49872, 9) - "s_mad24\0" // IR(49881, 8) - "u_mad24\0" // IR(49889, 8) - "s_mul24\0" // IR(49897, 8) - "u_mul24\0" // IR(49905, 8) - "vloadn\0" // IR(49913, 7) - "vstoren\0" // IR(49920, 8) - "vload_half\0" // IR(49928, 11) - "vload_halfn\0" // IR(49939, 12) - "vstore_half\0" // IR(49951, 12) - "vstore_half_r\0" // IR(49963, 14) - "vstore_halfn\0" // IR(49977, 13) - "vstore_halfn_r\0" // IR(49990, 15) - "vloada_halfn\0" // IR(50005, 13) - "vstorea_halfn\0" // IR(50018, 14) - "vstorea_halfn_r\0" // IR(50032, 16) - "shuffle\0" // IR(50048, 8) - "shuffle2\0" // IR(50056, 9) - "printf\0" // IR(50065, 7) - "prefetch\0" // IR(50072, 9) - "bitselect\0" // IR(50081, 10) - "select\0" // IR(50091, 7) - "u_abs\0" // IR(50098, 6) - "u_abs_diff\0" // IR(50104, 11) - "u_mul_hi\0" // IR(50115, 9) - "u_mad_hi\0" // IR(50124, 9) - "CubeFaceIndexAMD\0" // IR(50133, 17) - "CubeFaceCoordAMD\0" // IR(50150, 17) - "TimeAMD\0" // IR(50167, 8) - "SwizzleInvocationsAMD\0" // IR(50175, 22) - "SwizzleInvocationsMaskedAMD\0" // IR(50197, 28) - "WriteInvocationAMD\0" // IR(50225, 19) - "MbcntAMD\0" // IR(50244, 9) - "InterpolateAtVertexAMD\0" // IR(50253, 23) - "FMin3AMD\0" // IR(50276, 9) - "UMin3AMD\0" // IR(50285, 9) - "SMin3AMD\0" // IR(50294, 9) - "FMax3AMD\0" // IR(50303, 9) - "UMax3AMD\0" // IR(50312, 9) - "SMax3AMD\0" // IR(50321, 9) - "FMid3AMD\0" // IR(50330, 9) - "UMid3AMD\0" // IR(50339, 9) - "SMid3AMD\0" // IR(50348, 9) + "SPV_ALTERA_arbitrary_precision_fixed_point\0" // IR(0, 43) + "SPV_ALTERA_arbitrary_precision_floating_point\0" // IR(43, 46) + "SPV_ALTERA_arbitrary_precision_integers\0" // IR(89, 40) + "SPV_ALTERA_blocking_pipes\0" // IR(129, 26) + "SPV_ALTERA_fpga_argument_interfaces\0" // IR(155, 36) + "SPV_ALTERA_fpga_buffer_location\0" // IR(191, 32) + "SPV_ALTERA_fpga_cluster_attributes\0" // IR(223, 35) + "SPV_ALTERA_fpga_dsp_control\0" // IR(258, 28) + "SPV_ALTERA_fpga_invocation_pipelining_attributes\0" // IR(286, 49) + "SPV_ALTERA_fpga_latency_control\0" // IR(335, 32) + "SPV_ALTERA_fpga_loop_controls\0" // IR(367, 30) + "SPV_ALTERA_fpga_memory_accesses\0" // IR(397, 32) + "SPV_ALTERA_fpga_memory_attributes\0" // IR(429, 34) + "SPV_ALTERA_fpga_reg\0" // IR(463, 20) + "SPV_ALTERA_global_variable_fpga_decorations\0" // IR(483, 44) + "SPV_ALTERA_io_pipes\0" // IR(527, 20) + "SPV_ALTERA_loop_fuse\0" // IR(547, 21) + "SPV_ALTERA_runtime_aligned\0" // IR(568, 27) + "SPV_ALTERA_task_sequence\0" // IR(595, 25) + "SPV_ALTERA_usm_storage_classes\0" // IR(620, 31) + "SPV_AMDX_shader_enqueue\0" // IR(651, 24) + "SPV_AMD_gcn_shader\0" // IR(675, 19) + "SPV_AMD_gpu_shader_half_float\0" // IR(694, 30) + "SPV_AMD_gpu_shader_half_float_fetch\0" // IR(724, 36) + "SPV_AMD_gpu_shader_int16\0" // IR(760, 25) + "SPV_AMD_shader_ballot\0" // IR(785, 22) + "SPV_AMD_shader_early_and_late_fragment_tests\0" // IR(807, 45) + "SPV_AMD_shader_explicit_vertex_parameter\0" // IR(852, 41) + "SPV_AMD_shader_fragment_mask\0" // IR(893, 29) + "SPV_AMD_shader_image_load_store_lod\0" // IR(922, 36) + "SPV_AMD_shader_trinary_minmax\0" // IR(958, 30) + "SPV_AMD_texture_gather_bias_lod\0" // IR(988, 32) + "SPV_ARM_cooperative_matrix_layouts\0" // IR(1020, 35) + "SPV_ARM_core_builtins\0" // IR(1055, 22) + "SPV_ARM_graph\0" // IR(1077, 14) + "SPV_ARM_tensors\0" // IR(1091, 16) + "SPV_EXT_arithmetic_fence\0" // IR(1107, 25) + "SPV_EXT_demote_to_helper_invocation\0" // IR(1132, 36) + "SPV_EXT_descriptor_indexing\0" // IR(1168, 28) + "SPV_EXT_float8\0" // IR(1196, 15) + "SPV_EXT_fragment_fully_covered\0" // IR(1211, 31) + "SPV_EXT_fragment_invocation_density\0" // IR(1242, 36) + "SPV_EXT_fragment_shader_interlock\0" // IR(1278, 34) + "SPV_EXT_mesh_shader\0" // IR(1312, 20) + "SPV_EXT_opacity_micromap\0" // IR(1332, 25) + "SPV_EXT_optnone\0" // IR(1357, 16) + "SPV_EXT_physical_storage_buffer\0" // IR(1373, 32) + "SPV_EXT_relaxed_printf_string_address_space\0" // IR(1405, 44) + "SPV_EXT_replicated_composites\0" // IR(1449, 30) + "SPV_EXT_shader_64bit_indexing\0" // IR(1479, 30) + "SPV_EXT_shader_atomic_float16_add\0" // IR(1509, 34) + "SPV_EXT_shader_atomic_float_add\0" // IR(1543, 32) + "SPV_EXT_shader_atomic_float_min_max\0" // IR(1575, 36) + "SPV_EXT_shader_image_int64\0" // IR(1611, 27) + "SPV_EXT_shader_invocation_reorder\0" // IR(1638, 34) + "SPV_EXT_shader_stencil_export\0" // IR(1672, 30) + "SPV_EXT_shader_tile_image\0" // IR(1702, 26) + "SPV_EXT_shader_viewport_index_layer\0" // IR(1728, 36) + "SPV_GOOGLE_decorate_string\0" // IR(1764, 27) + "SPV_GOOGLE_hlsl_functionality1\0" // IR(1791, 31) + "SPV_GOOGLE_user_type\0" // IR(1822, 21) + "SPV_INTEL_2d_block_io\0" // IR(1843, 22) + "SPV_INTEL_arbitrary_precision_fixed_point\0" // IR(1865, 42) + "SPV_INTEL_arbitrary_precision_floating_point\0" // IR(1907, 45) + "SPV_INTEL_arbitrary_precision_integers\0" // IR(1952, 39) + "SPV_INTEL_bfloat16_conversion\0" // IR(1991, 30) + "SPV_INTEL_bindless_images\0" // IR(2021, 26) + "SPV_INTEL_blocking_pipes\0" // IR(2047, 25) + "SPV_INTEL_cache_controls\0" // IR(2072, 25) + "SPV_INTEL_debug_module\0" // IR(2097, 23) + "SPV_INTEL_device_side_avc_motion_estimation\0" // IR(2120, 44) + "SPV_INTEL_float_controls2\0" // IR(2164, 26) + "SPV_INTEL_fp_fast_math_mode\0" // IR(2190, 28) + "SPV_INTEL_fp_max_error\0" // IR(2218, 23) + "SPV_INTEL_fpga_argument_interfaces\0" // IR(2241, 35) + "SPV_INTEL_fpga_buffer_location\0" // IR(2276, 31) + "SPV_INTEL_fpga_cluster_attributes\0" // IR(2307, 34) + "SPV_INTEL_fpga_dsp_control\0" // IR(2341, 27) + "SPV_INTEL_fpga_invocation_pipelining_attributes\0" // IR(2368, 48) + "SPV_INTEL_fpga_latency_control\0" // IR(2416, 31) + "SPV_INTEL_fpga_loop_controls\0" // IR(2447, 29) + "SPV_INTEL_fpga_memory_accesses\0" // IR(2476, 31) + "SPV_INTEL_fpga_memory_attributes\0" // IR(2507, 33) + "SPV_INTEL_fpga_reg\0" // IR(2540, 19) + "SPV_INTEL_function_pointers\0" // IR(2559, 28) + "SPV_INTEL_function_variants\0" // IR(2587, 28) + "SPV_INTEL_global_variable_fpga_decorations\0" // IR(2615, 43) + "SPV_INTEL_global_variable_host_access\0" // IR(2658, 38) + "SPV_INTEL_inline_assembly\0" // IR(2696, 26) + "SPV_INTEL_int4\0" // IR(2722, 15) + "SPV_INTEL_io_pipes\0" // IR(2737, 19) + "SPV_INTEL_kernel_attributes\0" // IR(2756, 28) + "SPV_INTEL_long_composites\0" // IR(2784, 26) + "SPV_INTEL_loop_fuse\0" // IR(2810, 20) + "SPV_INTEL_masked_gather_scatter\0" // IR(2830, 32) + "SPV_INTEL_maximum_registers\0" // IR(2862, 28) + "SPV_INTEL_media_block_io\0" // IR(2890, 25) + "SPV_INTEL_memory_access_aliasing\0" // IR(2915, 33) + "SPV_INTEL_optnone\0" // IR(2948, 18) + "SPV_INTEL_runtime_aligned\0" // IR(2966, 26) + "SPV_INTEL_shader_integer_functions2\0" // IR(2992, 36) + "SPV_INTEL_split_barrier\0" // IR(3028, 24) + "SPV_INTEL_subgroup_buffer_prefetch\0" // IR(3052, 35) + "SPV_INTEL_subgroup_matrix_multiply_accumulate\0" // IR(3087, 46) + "SPV_INTEL_subgroups\0" // IR(3133, 20) + "SPV_INTEL_task_sequence\0" // IR(3153, 24) + "SPV_INTEL_tensor_float32_conversion\0" // IR(3177, 36) + "SPV_INTEL_ternary_bitwise_function\0" // IR(3213, 35) + "SPV_INTEL_unstructured_loop_controls\0" // IR(3248, 37) + "SPV_INTEL_usm_storage_classes\0" // IR(3285, 30) + "SPV_INTEL_variable_length_array\0" // IR(3315, 32) + "SPV_INTEL_vector_compute\0" // IR(3347, 25) + "SPV_KHR_16bit_storage\0" // IR(3372, 22) + "SPV_KHR_8bit_storage\0" // IR(3394, 21) + "SPV_KHR_bfloat16\0" // IR(3415, 17) + "SPV_KHR_bit_instructions\0" // IR(3432, 25) + "SPV_KHR_compute_shader_derivatives\0" // IR(3457, 35) + "SPV_KHR_cooperative_matrix\0" // IR(3492, 27) + "SPV_KHR_device_group\0" // IR(3519, 21) + "SPV_KHR_expect_assume\0" // IR(3540, 22) + "SPV_KHR_float_controls\0" // IR(3562, 23) + "SPV_KHR_float_controls2\0" // IR(3585, 24) + "SPV_KHR_fma\0" // IR(3609, 12) + "SPV_KHR_fragment_shader_barycentric\0" // IR(3621, 36) + "SPV_KHR_fragment_shading_rate\0" // IR(3657, 30) + "SPV_KHR_integer_dot_product\0" // IR(3687, 28) + "SPV_KHR_linkonce_odr\0" // IR(3715, 21) + "SPV_KHR_maximal_reconvergence\0" // IR(3736, 30) + "SPV_KHR_multiview\0" // IR(3766, 18) + "SPV_KHR_no_integer_wrap_decoration\0" // IR(3784, 35) + "SPV_KHR_non_semantic_info\0" // IR(3819, 26) + "SPV_KHR_physical_storage_buffer\0" // IR(3845, 32) + "SPV_KHR_post_depth_coverage\0" // IR(3877, 28) + "SPV_KHR_quad_control\0" // IR(3905, 21) + "SPV_KHR_ray_cull_mask\0" // IR(3926, 22) + "SPV_KHR_ray_query\0" // IR(3948, 18) + "SPV_KHR_ray_tracing\0" // IR(3966, 20) + "SPV_KHR_ray_tracing_position_fetch\0" // IR(3986, 35) + "SPV_KHR_relaxed_extended_instruction\0" // IR(4021, 37) + "SPV_KHR_shader_atomic_counter_ops\0" // IR(4058, 34) + "SPV_KHR_shader_ballot\0" // IR(4092, 22) + "SPV_KHR_shader_clock\0" // IR(4114, 21) + "SPV_KHR_shader_draw_parameters\0" // IR(4135, 31) + "SPV_KHR_storage_buffer_storage_class\0" // IR(4166, 37) + "SPV_KHR_subgroup_rotate\0" // IR(4203, 24) + "SPV_KHR_subgroup_uniform_control_flow\0" // IR(4227, 38) + "SPV_KHR_subgroup_vote\0" // IR(4265, 22) + "SPV_KHR_terminate_invocation\0" // IR(4287, 29) + "SPV_KHR_uniform_group_instructions\0" // IR(4316, 35) + "SPV_KHR_untyped_pointers\0" // IR(4351, 25) + "SPV_KHR_variable_pointers\0" // IR(4376, 26) + "SPV_KHR_vulkan_memory_model\0" // IR(4402, 28) + "SPV_KHR_workgroup_memory_explicit_layout\0" // IR(4430, 41) + "SPV_NVX_multiview_per_view_attributes\0" // IR(4471, 38) + "SPV_NV_bindless_texture\0" // IR(4509, 24) + "SPV_NV_cluster_acceleration_structure\0" // IR(4533, 38) + "SPV_NV_compute_shader_derivatives\0" // IR(4571, 34) + "SPV_NV_cooperative_matrix\0" // IR(4605, 26) + "SPV_NV_cooperative_matrix2\0" // IR(4631, 27) + "SPV_NV_cooperative_vector\0" // IR(4658, 26) + "SPV_NV_displacement_micromap\0" // IR(4684, 29) + "SPV_NV_fragment_shader_barycentric\0" // IR(4713, 35) + "SPV_NV_geometry_shader_passthrough\0" // IR(4748, 35) + "SPV_NV_linear_swept_spheres\0" // IR(4783, 28) + "SPV_NV_mesh_shader\0" // IR(4811, 19) + "SPV_NV_raw_access_chains\0" // IR(4830, 25) + "SPV_NV_ray_tracing\0" // IR(4855, 19) + "SPV_NV_ray_tracing_motion_blur\0" // IR(4874, 31) + "SPV_NV_sample_mask_override_coverage\0" // IR(4905, 37) + "SPV_NV_shader_atomic_fp16_vector\0" // IR(4942, 33) + "SPV_NV_shader_image_footprint\0" // IR(4975, 30) + "SPV_NV_shader_invocation_reorder\0" // IR(5005, 33) + "SPV_NV_shader_sm_builtins\0" // IR(5038, 26) + "SPV_NV_shader_subgroup_partitioned\0" // IR(5064, 35) + "SPV_NV_shading_rate\0" // IR(5099, 20) + "SPV_NV_stereo_view_rendering\0" // IR(5119, 29) + "SPV_NV_tensor_addressing\0" // IR(5148, 25) + "SPV_NV_viewport_array2\0" // IR(5173, 23) + "SPV_QCOM_cooperative_matrix_conversion\0" // IR(5196, 39) + "SPV_QCOM_image_processing\0" // IR(5235, 26) + "SPV_QCOM_image_processing2\0" // IR(5261, 27) + "SPV_QCOM_tile_shading\0" // IR(5288, 22) + "SPV_VALIDATOR_ignore_type_decl_unique\0" // IR(5310, 38) + "ReadOnly\0" // IR(5348, 9) + "Kernel\0" // IR(5357, 7) + "WriteOnly\0" // IR(5364, 10) + "ReadWrite\0" // IR(5374, 10) + "Logical\0" // IR(5384, 8) + "Physical32\0" // IR(5392, 11) + "Addresses\0" // IR(5403, 10) + "Physical64\0" // IR(5413, 11) + "PhysicalStorageBuffer64\0" // IR(5424, 24) + "PhysicalStorageBuffer64EXT\0" // IR(5448, 27) + "PhysicalStorageBufferAddresses\0" // IR(5475, 31) + "Position\0" // IR(5506, 9) + "Shader\0" // IR(5515, 7) + "PointSize\0" // IR(5522, 10) + "ClipDistance\0" // IR(5532, 13) + "CullDistance\0" // IR(5545, 13) + "VertexId\0" // IR(5558, 9) + "InstanceId\0" // IR(5567, 11) + "PrimitiveId\0" // IR(5578, 12) + "Geometry\0" // IR(5590, 9) + "Tessellation\0" // IR(5599, 13) + "RayTracingNV\0" // IR(5612, 13) + "RayTracingKHR\0" // IR(5625, 14) + "MeshShadingNV\0" // IR(5639, 14) + "MeshShadingEXT\0" // IR(5653, 15) + "InvocationId\0" // IR(5668, 13) + "Layer\0" // IR(5681, 6) + "ShaderLayer\0" // IR(5687, 12) + "ShaderViewportIndexLayerEXT\0" // IR(5699, 28) + "ViewportIndex\0" // IR(5727, 14) + "MultiViewport\0" // IR(5741, 14) + "ShaderViewportIndex\0" // IR(5755, 20) + "TessLevelOuter\0" // IR(5775, 15) + "TessLevelInner\0" // IR(5790, 15) + "TessCoord\0" // IR(5805, 10) + "PatchVertices\0" // IR(5815, 14) + "FragCoord\0" // IR(5829, 10) + "PointCoord\0" // IR(5839, 11) + "FrontFacing\0" // IR(5850, 12) + "SampleId\0" // IR(5862, 9) + "SampleRateShading\0" // IR(5871, 18) + "SamplePosition\0" // IR(5889, 15) + "SampleMask\0" // IR(5904, 11) + "FragDepth\0" // IR(5915, 10) + "HelperInvocation\0" // IR(5925, 17) + "NumWorkgroups\0" // IR(5942, 14) + "WorkgroupSize\0" // IR(5956, 14) + "WorkgroupId\0" // IR(5970, 12) + "LocalInvocationId\0" // IR(5982, 18) + "GlobalInvocationId\0" // IR(6000, 19) + "LocalInvocationIndex\0" // IR(6019, 21) + "WorkDim\0" // IR(6040, 8) + "GlobalSize\0" // IR(6048, 11) + "EnqueuedWorkgroupSize\0" // IR(6059, 22) + "GlobalOffset\0" // IR(6081, 13) + "GlobalLinearId\0" // IR(6094, 15) + "SubgroupSize\0" // IR(6109, 13) + "GroupNonUniform\0" // IR(6122, 16) + "SubgroupBallotKHR\0" // IR(6138, 18) + "SubgroupMaxSize\0" // IR(6156, 16) + "NumSubgroups\0" // IR(6172, 13) + "NumEnqueuedSubgroups\0" // IR(6185, 21) + "SubgroupId\0" // IR(6206, 11) + "SubgroupLocalInvocationId\0" // IR(6217, 26) + "VertexIndex\0" // IR(6243, 12) + "InstanceIndex\0" // IR(6255, 14) + "CoreIDARM\0" // IR(6269, 10) + "CoreBuiltinsARM\0" // IR(6279, 16) + "CoreCountARM\0" // IR(6295, 13) + "CoreMaxIDARM\0" // IR(6308, 13) + "WarpIDARM\0" // IR(6321, 10) + "WarpMaxIDARM\0" // IR(6331, 13) + "SubgroupEqMask\0" // IR(6344, 15) + "SubgroupEqMaskKHR\0" // IR(6359, 18) + "GroupNonUniformBallot\0" // IR(6377, 22) + "SubgroupGeMask\0" // IR(6399, 15) + "SubgroupGeMaskKHR\0" // IR(6414, 18) + "SubgroupGtMask\0" // IR(6432, 15) + "SubgroupGtMaskKHR\0" // IR(6447, 18) + "SubgroupLeMask\0" // IR(6465, 15) + "SubgroupLeMaskKHR\0" // IR(6480, 18) + "SubgroupLtMask\0" // IR(6498, 15) + "SubgroupLtMaskKHR\0" // IR(6513, 18) + "BaseVertex\0" // IR(6531, 11) + "DrawParameters\0" // IR(6542, 15) + "BaseInstance\0" // IR(6557, 13) + "DrawIndex\0" // IR(6570, 10) + "PrimitiveShadingRateKHR\0" // IR(6580, 24) + "FragmentShadingRateKHR\0" // IR(6604, 23) + "DeviceIndex\0" // IR(6627, 12) + "DeviceGroup\0" // IR(6639, 12) + "ViewIndex\0" // IR(6651, 10) + "MultiView\0" // IR(6661, 10) + "ShadingRateKHR\0" // IR(6671, 15) + "TileOffsetQCOM\0" // IR(6686, 15) + "TileShadingQCOM\0" // IR(6701, 16) + "TileDimensionQCOM\0" // IR(6717, 18) + "TileApronSizeQCOM\0" // IR(6735, 18) + "BaryCoordNoPerspAMD\0" // IR(6753, 20) + "BaryCoordNoPerspCentroidAMD\0" // IR(6773, 28) + "BaryCoordNoPerspSampleAMD\0" // IR(6801, 26) + "BaryCoordSmoothAMD\0" // IR(6827, 19) + "BaryCoordSmoothCentroidAMD\0" // IR(6846, 27) + "BaryCoordSmoothSampleAMD\0" // IR(6873, 25) + "BaryCoordPullModelAMD\0" // IR(6898, 22) + "FragStencilRefEXT\0" // IR(6920, 18) + "StencilExportEXT\0" // IR(6938, 17) + "RemainingRecursionLevelsAMDX\0" // IR(6955, 29) + "ShaderEnqueueAMDX\0" // IR(6984, 18) + "ShaderIndexAMDX\0" // IR(7002, 16) + "ViewportMaskNV\0" // IR(7018, 15) + "ShaderViewportMaskNV\0" // IR(7033, 21) + "SecondaryPositionNV\0" // IR(7054, 20) + "ShaderStereoViewNV\0" // IR(7074, 19) + "SecondaryViewportMaskNV\0" // IR(7093, 24) + "PositionPerViewNV\0" // IR(7117, 18) + "PerViewAttributesNV\0" // IR(7135, 20) + "ViewportMaskPerViewNV\0" // IR(7155, 22) + "FullyCoveredEXT\0" // IR(7177, 16) + "FragmentFullyCoveredEXT\0" // IR(7193, 24) + "TaskCountNV\0" // IR(7217, 12) + "PrimitiveCountNV\0" // IR(7229, 17) + "PrimitiveIndicesNV\0" // IR(7246, 19) + "ClipDistancePerViewNV\0" // IR(7265, 22) + "CullDistancePerViewNV\0" // IR(7287, 22) + "LayerPerViewNV\0" // IR(7309, 15) + "MeshViewCountNV\0" // IR(7324, 16) + "MeshViewIndicesNV\0" // IR(7340, 18) + "BaryCoordKHR\0" // IR(7358, 13) + "BaryCoordNV\0" // IR(7371, 12) + "FragmentBarycentricKHR\0" // IR(7383, 23) + "BaryCoordNoPerspKHR\0" // IR(7406, 20) + "BaryCoordNoPerspNV\0" // IR(7426, 19) + "FragSizeEXT\0" // IR(7445, 12) + "FragmentSizeNV\0" // IR(7457, 15) + "FragmentDensityEXT\0" // IR(7472, 19) + "FragInvocationCountEXT\0" // IR(7491, 23) + "InvocationsPerPixelNV\0" // IR(7514, 22) + "PrimitivePointIndicesEXT\0" // IR(7536, 25) + "PrimitiveLineIndicesEXT\0" // IR(7561, 24) + "PrimitiveTriangleIndicesEXT\0" // IR(7585, 28) + "CullPrimitiveEXT\0" // IR(7613, 17) + "LaunchIdKHR\0" // IR(7630, 12) + "LaunchIdNV\0" // IR(7642, 11) + "LaunchSizeKHR\0" // IR(7653, 14) + "LaunchSizeNV\0" // IR(7667, 13) + "WorldRayOriginKHR\0" // IR(7680, 18) + "WorldRayOriginNV\0" // IR(7698, 17) + "WorldRayDirectionKHR\0" // IR(7715, 21) + "WorldRayDirectionNV\0" // IR(7736, 20) + "ObjectRayOriginKHR\0" // IR(7756, 19) + "ObjectRayOriginNV\0" // IR(7775, 18) + "ObjectRayDirectionKHR\0" // IR(7793, 22) + "ObjectRayDirectionNV\0" // IR(7815, 21) + "RayTminKHR\0" // IR(7836, 11) + "RayTminNV\0" // IR(7847, 10) + "RayTmaxKHR\0" // IR(7857, 11) + "RayTmaxNV\0" // IR(7868, 10) + "InstanceCustomIndexKHR\0" // IR(7878, 23) + "InstanceCustomIndexNV\0" // IR(7901, 22) + "ObjectToWorldKHR\0" // IR(7923, 17) + "ObjectToWorldNV\0" // IR(7940, 16) + "WorldToObjectKHR\0" // IR(7956, 17) + "WorldToObjectNV\0" // IR(7973, 16) + "HitTNV\0" // IR(7989, 7) + "HitKindKHR\0" // IR(7996, 11) + "HitKindNV\0" // IR(8007, 10) + "CurrentRayTimeNV\0" // IR(8017, 17) + "RayTracingMotionBlurNV\0" // IR(8034, 23) + "HitTriangleVertexPositionsKHR\0" // IR(8057, 30) + "RayTracingPositionFetchKHR\0" // IR(8087, 27) + "HitMicroTriangleVertexPositionsNV\0" // IR(8114, 34) + "RayTracingDisplacementMicromapNV\0" // IR(8148, 33) + "HitMicroTriangleVertexBarycentricsNV\0" // IR(8181, 37) + "IncomingRayFlagsKHR\0" // IR(8218, 20) + "IncomingRayFlagsNV\0" // IR(8238, 19) + "RayGeometryIndexKHR\0" // IR(8257, 20) + "HitIsSphereNV\0" // IR(8277, 14) + "RayTracingSpheresGeometryNV\0" // IR(8291, 28) + "HitIsLSSNV\0" // IR(8319, 11) + "RayTracingLinearSweptSpheresGeometryNV\0" // IR(8330, 39) + "HitSpherePositionNV\0" // IR(8369, 20) + "WarpsPerSMNV\0" // IR(8389, 13) + "ShaderSMBuiltinsNV\0" // IR(8402, 19) + "SMCountNV\0" // IR(8421, 10) + "WarpIDNV\0" // IR(8431, 9) + "SMIDNV\0" // IR(8440, 7) + "HitLSSPositionsNV\0" // IR(8447, 18) + "HitKindFrontFacingMicroTriangleNV\0" // IR(8465, 34) + "HitKindBackFacingMicroTriangleNV\0" // IR(8499, 33) + "HitSphereRadiusNV\0" // IR(8532, 18) + "HitLSSRadiiNV\0" // IR(8550, 14) + "ClusterIDNV\0" // IR(8564, 12) + "RayTracingClusterAccelerationStructureNV\0" // IR(8576, 41) + "CullMaskKHR\0" // IR(8617, 12) + "RayCullMaskKHR\0" // IR(8629, 15) + "Matrix\0" // IR(8644, 7) + "Linkage\0" // IR(8651, 8) + "Vector16\0" // IR(8659, 9) + "Float16Buffer\0" // IR(8668, 14) + "Float16\0" // IR(8682, 8) + "Float64\0" // IR(8690, 8) + "Int64\0" // IR(8698, 6) + "Int64Atomics\0" // IR(8704, 13) + "ImageBasic\0" // IR(8717, 11) + "ImageReadWrite\0" // IR(8728, 15) + "ImageMipmap\0" // IR(8743, 12) + "Pipes\0" // IR(8755, 6) + "Groups\0" // IR(8761, 7) + "DeviceEnqueue\0" // IR(8768, 14) + "LiteralSampler\0" // IR(8782, 15) + "AtomicStorage\0" // IR(8797, 14) + "Int16\0" // IR(8811, 6) + "TessellationPointSize\0" // IR(8817, 22) + "GeometryPointSize\0" // IR(8839, 18) + "ImageGatherExtended\0" // IR(8857, 20) + "StorageImageMultisample\0" // IR(8877, 24) + "UniformBufferArrayDynamicIndexing\0" // IR(8901, 34) + "SampledImageArrayDynamicIndexing\0" // IR(8935, 33) + "StorageBufferArrayDynamicIndexing\0" // IR(8968, 34) + "StorageImageArrayDynamicIndexing\0" // IR(9002, 33) + "ImageCubeArray\0" // IR(9035, 15) + "SampledCubeArray\0" // IR(9050, 17) + "ImageRect\0" // IR(9067, 10) + "SampledRect\0" // IR(9077, 12) + "GenericPointer\0" // IR(9089, 15) + "Int8\0" // IR(9104, 5) + "InputAttachment\0" // IR(9109, 16) + "SparseResidency\0" // IR(9125, 16) + "MinLod\0" // IR(9141, 7) + "Sampled1D\0" // IR(9148, 10) + "Image1D\0" // IR(9158, 8) + "SampledBuffer\0" // IR(9166, 14) + "ImageBuffer\0" // IR(9180, 12) + "ImageMSArray\0" // IR(9192, 13) + "StorageImageExtendedFormats\0" // IR(9205, 28) + "ImageQuery\0" // IR(9233, 11) + "DerivativeControl\0" // IR(9244, 18) + "InterpolationFunction\0" // IR(9262, 22) + "TransformFeedback\0" // IR(9284, 18) + "GeometryStreams\0" // IR(9302, 16) + "StorageImageReadWithoutFormat\0" // IR(9318, 30) + "StorageImageWriteWithoutFormat\0" // IR(9348, 31) + "SubgroupDispatch\0" // IR(9379, 17) + "NamedBarrier\0" // IR(9396, 13) + "PipeStorage\0" // IR(9409, 12) + "GroupNonUniformVote\0" // IR(9421, 20) + "GroupNonUniformArithmetic\0" // IR(9441, 26) + "GroupNonUniformShuffle\0" // IR(9467, 23) + "GroupNonUniformShuffleRelative\0" // IR(9490, 31) + "GroupNonUniformClustered\0" // IR(9521, 25) + "GroupNonUniformQuad\0" // IR(9546, 20) + "UniformDecoration\0" // IR(9566, 18) + "TileImageColorReadAccessEXT\0" // IR(9584, 28) + "TileImageDepthReadAccessEXT\0" // IR(9612, 28) + "TileImageStencilReadAccessEXT\0" // IR(9640, 30) + "TensorsARM\0" // IR(9670, 11) + "StorageTensorArrayDynamicIndexingARM\0" // IR(9681, 37) + "StorageTensorArrayNonUniformIndexingARM\0" // IR(9718, 40) + "GraphARM\0" // IR(9758, 9) + "CooperativeMatrixLayoutsARM\0" // IR(9767, 28) + "Float8EXT\0" // IR(9795, 10) + "Float8CooperativeMatrixEXT\0" // IR(9805, 27) + "CooperativeMatrixKHR\0" // IR(9832, 21) + "WorkgroupMemoryExplicitLayoutKHR\0" // IR(9853, 33) + "WorkgroupMemoryExplicitLayout8BitAccessKHR\0" // IR(9886, 43) + "WorkgroupMemoryExplicitLayout16BitAccessKHR\0" // IR(9929, 44) + "SubgroupVoteKHR\0" // IR(9973, 16) + "StorageBuffer16BitAccess\0" // IR(9989, 25) + "StorageUniformBufferBlock16\0" // IR(10014, 28) + "UniformAndStorageBuffer16BitAccess\0" // IR(10042, 35) + "StorageUniform16\0" // IR(10077, 17) + "StoragePushConstant16\0" // IR(10094, 22) + "StorageInputOutput16\0" // IR(10116, 21) + "VariablePointersStorageBuffer\0" // IR(10137, 30) + "VariablePointers\0" // IR(10167, 17) + "AtomicStorageOps\0" // IR(10184, 17) + "SampleMaskPostDepthCoverage\0" // IR(10201, 28) + "StorageBuffer8BitAccess\0" // IR(10229, 24) + "UniformAndStorageBuffer8BitAccess\0" // IR(10253, 34) + "StoragePushConstant8\0" // IR(10287, 21) + "DenormPreserve\0" // IR(10308, 15) + "DenormFlushToZero\0" // IR(10323, 18) + "SignedZeroInfNanPreserve\0" // IR(10341, 25) + "RoundingModeRTE\0" // IR(10366, 16) + "RoundingModeRTZ\0" // IR(10382, 16) + "RayQueryProvisionalKHR\0" // IR(10398, 23) + "RayQueryKHR\0" // IR(10421, 12) + "UntypedPointersKHR\0" // IR(10433, 19) + "RayTraversalPrimitiveCullingKHR\0" // IR(10452, 32) + "TextureSampleWeightedQCOM\0" // IR(10484, 26) + "TextureBoxFilterQCOM\0" // IR(10510, 21) + "TextureBlockMatchQCOM\0" // IR(10531, 22) + "CooperativeMatrixConversionQCOM\0" // IR(10553, 32) + "TextureBlockMatch2QCOM\0" // IR(10585, 23) + "Float16ImageAMD\0" // IR(10608, 16) + "ImageGatherBiasLodAMD\0" // IR(10624, 22) + "FragmentMaskAMD\0" // IR(10646, 16) + "ImageReadWriteLodAMD\0" // IR(10662, 21) + "Int64ImageEXT\0" // IR(10683, 14) + "ShaderClockKHR\0" // IR(10697, 15) + "QuadControlKHR\0" // IR(10712, 15) + "Int4TypeINTEL\0" // IR(10727, 14) + "Int4CooperativeMatrixINTEL\0" // IR(10741, 27) + "BFloat16TypeKHR\0" // IR(10768, 16) + "BFloat16DotProductKHR\0" // IR(10784, 22) + "BFloat16CooperativeMatrixKHR\0" // IR(10806, 29) + "SampleMaskOverrideCoverageNV\0" // IR(10835, 29) + "GeometryShaderPassthroughNV\0" // IR(10864, 28) + "ShaderViewportIndexLayerNV\0" // IR(10892, 27) + "ImageFootprintNV\0" // IR(10919, 17) + "FragmentBarycentricNV\0" // IR(10936, 22) + "ComputeDerivativeGroupQuadsKHR\0" // IR(10958, 31) + "ComputeDerivativeGroupQuadsNV\0" // IR(10989, 30) + "ShadingRateNV\0" // IR(11019, 14) + "GroupNonUniformPartitionedNV\0" // IR(11033, 29) + "ShaderNonUniform\0" // IR(11062, 17) + "ShaderNonUniformEXT\0" // IR(11079, 20) + "RuntimeDescriptorArray\0" // IR(11099, 23) + "RuntimeDescriptorArrayEXT\0" // IR(11122, 26) + "InputAttachmentArrayDynamicIndexing\0" // IR(11148, 36) + "InputAttachmentArrayDynamicIndexingEXT\0" // IR(11184, 39) + "UniformTexelBufferArrayDynamicIndexing\0" // IR(11223, 39) + "UniformTexelBufferArrayDynamicIndexingEXT\0" // IR(11262, 42) + "StorageTexelBufferArrayDynamicIndexing\0" // IR(11304, 39) + "StorageTexelBufferArrayDynamicIndexingEXT\0" // IR(11343, 42) + "UniformBufferArrayNonUniformIndexing\0" // IR(11385, 37) + "UniformBufferArrayNonUniformIndexingEXT\0" // IR(11422, 40) + "SampledImageArrayNonUniformIndexing\0" // IR(11462, 36) + "SampledImageArrayNonUniformIndexingEXT\0" // IR(11498, 39) + "StorageBufferArrayNonUniformIndexing\0" // IR(11537, 37) + "StorageBufferArrayNonUniformIndexingEXT\0" // IR(11574, 40) + "StorageImageArrayNonUniformIndexing\0" // IR(11614, 36) + "StorageImageArrayNonUniformIndexingEXT\0" // IR(11650, 39) + "InputAttachmentArrayNonUniformIndexing\0" // IR(11689, 39) + "InputAttachmentArrayNonUniformIndexingEXT\0" // IR(11728, 42) + "UniformTexelBufferArrayNonUniformIndexing\0" // IR(11770, 42) + "UniformTexelBufferArrayNonUniformIndexingEXT\0" // IR(11812, 45) + "StorageTexelBufferArrayNonUniformIndexing\0" // IR(11857, 42) + "StorageTexelBufferArrayNonUniformIndexingEXT\0" // IR(11899, 45) + "VulkanMemoryModel\0" // IR(11944, 18) + "VulkanMemoryModelKHR\0" // IR(11962, 21) + "VulkanMemoryModelDeviceScope\0" // IR(11983, 29) + "VulkanMemoryModelDeviceScopeKHR\0" // IR(12012, 32) + "PhysicalStorageBufferAddressesEXT\0" // IR(12044, 34) + "ComputeDerivativeGroupLinearKHR\0" // IR(12078, 32) + "ComputeDerivativeGroupLinearNV\0" // IR(12110, 31) + "RayTracingProvisionalKHR\0" // IR(12141, 25) + "CooperativeMatrixNV\0" // IR(12166, 20) + "FragmentShaderSampleInterlockEXT\0" // IR(12186, 33) + "FragmentShaderShadingRateInterlockEXT\0" // IR(12219, 38) + "FragmentShaderPixelInterlockEXT\0" // IR(12257, 32) + "DemoteToHelperInvocation\0" // IR(12289, 25) + "DemoteToHelperInvocationEXT\0" // IR(12314, 28) + "DisplacementMicromapNV\0" // IR(12342, 23) + "RayTracingOpacityMicromapEXT\0" // IR(12365, 29) + "ShaderInvocationReorderNV\0" // IR(12394, 26) + "ShaderInvocationReorderEXT\0" // IR(12420, 27) + "BindlessTextureNV\0" // IR(12447, 18) + "RayQueryPositionFetchKHR\0" // IR(12465, 25) + "CooperativeVectorNV\0" // IR(12490, 20) + "AtomicFloat16VectorNV\0" // IR(12510, 22) + "RawAccessChainsNV\0" // IR(12532, 18) + "Shader64BitIndexingEXT\0" // IR(12550, 23) + "CooperativeMatrixReductionsNV\0" // IR(12573, 30) + "CooperativeMatrixConversionsNV\0" // IR(12603, 31) + "CooperativeMatrixPerElementOperationsNV\0" // IR(12634, 40) + "CooperativeMatrixTensorAddressingNV\0" // IR(12674, 36) + "CooperativeMatrixBlockLoadsNV\0" // IR(12710, 30) + "CooperativeVectorTrainingNV\0" // IR(12740, 28) + "TensorAddressingNV\0" // IR(12768, 19) + "SubgroupShuffleINTEL\0" // IR(12787, 21) + "SubgroupBufferBlockIOINTEL\0" // IR(12808, 27) + "SubgroupImageBlockIOINTEL\0" // IR(12835, 26) + "SubgroupImageMediaBlockIOINTEL\0" // IR(12861, 31) + "RoundToInfinityINTEL\0" // IR(12892, 21) + "FloatingPointModeINTEL\0" // IR(12913, 23) + "IntegerFunctions2INTEL\0" // IR(12936, 23) + "FunctionPointersINTEL\0" // IR(12959, 22) + "IndirectReferencesINTEL\0" // IR(12981, 24) + "AsmINTEL\0" // IR(13005, 9) + "AtomicFloat32MinMaxEXT\0" // IR(13014, 23) + "AtomicFloat64MinMaxEXT\0" // IR(13037, 23) + "AtomicFloat16MinMaxEXT\0" // IR(13060, 23) + "VectorComputeINTEL\0" // IR(13083, 19) + "VectorAnyINTEL\0" // IR(13102, 15) + "ExpectAssumeKHR\0" // IR(13117, 16) + "SubgroupAvcMotionEstimationINTEL\0" // IR(13133, 33) + "SubgroupAvcMotionEstimationIntraINTEL\0" // IR(13166, 38) + "SubgroupAvcMotionEstimationChromaINTEL\0" // IR(13204, 39) + "VariableLengthArrayINTEL\0" // IR(13243, 25) + "FunctionFloatControlINTEL\0" // IR(13268, 26) + "FPGAMemoryAttributesALTERA\0" // IR(13294, 27) + "FPGAMemoryAttributesINTEL\0" // IR(13321, 26) + "FPFastMathModeINTEL\0" // IR(13347, 20) + "ArbitraryPrecisionIntegersALTERA\0" // IR(13367, 33) + "ArbitraryPrecisionIntegersINTEL\0" // IR(13400, 32) + "ArbitraryPrecisionFloatingPointALTERA\0" // IR(13432, 38) + "ArbitraryPrecisionFloatingPointINTEL\0" // IR(13470, 37) + "UnstructuredLoopControlsINTEL\0" // IR(13507, 30) + "FPGALoopControlsALTERA\0" // IR(13537, 23) + "FPGALoopControlsINTEL\0" // IR(13560, 22) + "KernelAttributesINTEL\0" // IR(13582, 22) + "FPGAKernelAttributesINTEL\0" // IR(13604, 26) + "FPGAMemoryAccessesALTERA\0" // IR(13630, 25) + "FPGAMemoryAccessesINTEL\0" // IR(13655, 24) + "FPGAClusterAttributesALTERA\0" // IR(13679, 28) + "FPGAClusterAttributesINTEL\0" // IR(13707, 27) + "LoopFuseALTERA\0" // IR(13734, 15) + "LoopFuseINTEL\0" // IR(13749, 14) + "FPGADSPControlALTERA\0" // IR(13763, 21) + "FPGADSPControlINTEL\0" // IR(13784, 20) + "MemoryAccessAliasingINTEL\0" // IR(13804, 26) + "FPGAInvocationPipeliningAttributesALTERA\0" // IR(13830, 41) + "FPGAInvocationPipeliningAttributesINTEL\0" // IR(13871, 40) + "FPGABufferLocationALTERA\0" // IR(13911, 25) + "FPGABufferLocationINTEL\0" // IR(13936, 24) + "ArbitraryPrecisionFixedPointALTERA\0" // IR(13960, 35) + "ArbitraryPrecisionFixedPointINTEL\0" // IR(13995, 34) + "USMStorageClassesALTERA\0" // IR(14029, 24) + "USMStorageClassesINTEL\0" // IR(14053, 23) + "RuntimeAlignedAttributeALTERA\0" // IR(14076, 30) + "RuntimeAlignedAttributeINTEL\0" // IR(14106, 29) + "IOPipesALTERA\0" // IR(14135, 14) + "IOPipesINTEL\0" // IR(14149, 13) + "BlockingPipesALTERA\0" // IR(14162, 20) + "BlockingPipesINTEL\0" // IR(14182, 19) + "FPGARegALTERA\0" // IR(14201, 14) + "FPGARegINTEL\0" // IR(14215, 13) + "DotProductInputAll\0" // IR(14228, 19) + "DotProductInputAllKHR\0" // IR(14247, 22) + "DotProductInput4x8Bit\0" // IR(14269, 22) + "DotProductInput4x8BitKHR\0" // IR(14291, 25) + "DotProductInput4x8BitPacked\0" // IR(14316, 28) + "DotProductInput4x8BitPackedKHR\0" // IR(14344, 31) + "DotProduct\0" // IR(14375, 11) + "DotProductKHR\0" // IR(14386, 14) + "ReplicatedCompositesEXT\0" // IR(14400, 24) + "BitInstructions\0" // IR(14424, 16) + "GroupNonUniformRotateKHR\0" // IR(14440, 25) + "FloatControls2\0" // IR(14465, 15) + "FMAKHR\0" // IR(14480, 7) + "AtomicFloat32AddEXT\0" // IR(14487, 20) + "AtomicFloat64AddEXT\0" // IR(14507, 20) + "LongCompositesINTEL\0" // IR(14527, 20) + "OptNoneEXT\0" // IR(14547, 11) + "OptNoneINTEL\0" // IR(14558, 13) + "AtomicFloat16AddEXT\0" // IR(14571, 20) + "DebugInfoModuleINTEL\0" // IR(14591, 21) + "BFloat16ConversionINTEL\0" // IR(14612, 24) + "SplitBarrierINTEL\0" // IR(14636, 18) + "ArithmeticFenceEXT\0" // IR(14654, 19) + "FPGAClusterAttributesV2ALTERA\0" // IR(14673, 30) + "FPGAClusterAttributesV2INTEL\0" // IR(14703, 29) + "FPGAKernelAttributesv2INTEL\0" // IR(14732, 28) + "TaskSequenceALTERA\0" // IR(14760, 19) + "TaskSequenceINTEL\0" // IR(14779, 18) + "FPMaxErrorINTEL\0" // IR(14797, 16) + "FPGALatencyControlALTERA\0" // IR(14813, 25) + "FPGALatencyControlINTEL\0" // IR(14838, 24) + "FPGAArgumentInterfacesALTERA\0" // IR(14862, 29) + "FPGAArgumentInterfacesINTEL\0" // IR(14891, 28) + "GlobalVariableHostAccessINTEL\0" // IR(14919, 30) + "GlobalVariableFPGADecorationsALTERA\0" // IR(14949, 36) + "GlobalVariableFPGADecorationsINTEL\0" // IR(14985, 35) + "SubgroupBufferPrefetchINTEL\0" // IR(15020, 28) + "Subgroup2DBlockIOINTEL\0" // IR(15048, 23) + "Subgroup2DBlockTransformINTEL\0" // IR(15071, 30) + "Subgroup2DBlockTransposeINTEL\0" // IR(15101, 30) + "SubgroupMatrixMultiplyAccumulateINTEL\0" // IR(15131, 38) + "TernaryBitwiseFunctionINTEL\0" // IR(15169, 28) + "UntypedVariableLengthArrayINTEL\0" // IR(15197, 32) + "SpecConditionalINTEL\0" // IR(15229, 21) + "FunctionVariantsINTEL\0" // IR(15250, 22) + "GroupUniformArithmeticKHR\0" // IR(15272, 26) + "TensorFloat32RoundingINTEL\0" // IR(15298, 27) + "MaskedGatherScatterINTEL\0" // IR(15325, 25) + "CacheControlsINTEL\0" // IR(15350, 19) + "RegisterLimitsINTEL\0" // IR(15369, 20) + "BindlessImagesINTEL\0" // IR(15389, 20) + "Unspecified\0" // IR(15409, 12) + "Address\0" // IR(15421, 8) + "Boolean\0" // IR(15429, 8) + "Float\0" // IR(15437, 6) + "Signed\0" // IR(15443, 7) + "SignedChar\0" // IR(15450, 11) + "Unsigned\0" // IR(15461, 9) + "UnsignedChar\0" // IR(15470, 13) + "Class\0" // IR(15483, 6) + "Structure\0" // IR(15489, 10) + "Union\0" // IR(15499, 6) + "ImportedModule\0" // IR(15505, 15) + "ImportedDeclaration\0" // IR(15520, 20) + "None\0" // IR(15540, 5) + "FlagIsProtected\0" // IR(15545, 16) + "FlagIsPrivate\0" // IR(15561, 14) + "FlagIsPublic\0" // IR(15575, 13) + "FlagIsLocal\0" // IR(15588, 12) + "FlagIsDefinition\0" // IR(15600, 17) + "FlagFwdDecl\0" // IR(15617, 12) + "FlagArtificial\0" // IR(15629, 15) + "FlagExplicit\0" // IR(15644, 13) + "FlagPrototyped\0" // IR(15657, 15) + "FlagObjectPointer\0" // IR(15672, 18) + "FlagStaticMember\0" // IR(15690, 17) + "FlagIndirectVariable\0" // IR(15707, 21) + "FlagLValueReference\0" // IR(15728, 20) + "FlagRValueReference\0" // IR(15748, 20) + "FlagIsOptimized\0" // IR(15768, 16) + "FlagIsEnumClass\0" // IR(15784, 16) + "FlagTypePassByValue\0" // IR(15800, 20) + "FlagTypePassByReference\0" // IR(15820, 24) + "Deref\0" // IR(15844, 6) + "Plus\0" // IR(15850, 5) + "Minus\0" // IR(15855, 6) + "SPV_OPERAND_TYPE_LITERAL_INTEGER\0" // IR(15861, 33) + "PlusUconst\0" // IR(15894, 11) + "BitPiece\0" // IR(15905, 9) + "Swap\0" // IR(15914, 5) + "Xderef\0" // IR(15919, 7) + "StackValue\0" // IR(15926, 11) + "Constu\0" // IR(15937, 7) + "Fragment\0" // IR(15944, 9) + "ConstType\0" // IR(15953, 10) + "VolatileType\0" // IR(15963, 13) + "RestrictType\0" // IR(15976, 13) + "AtomicType\0" // IR(15989, 11) + "Float16NV\0" // IR(16000, 10) + "Float32NV\0" // IR(16010, 10) + "Float64NV\0" // IR(16020, 10) + "SignedInt8NV\0" // IR(16030, 13) + "SignedInt16NV\0" // IR(16043, 14) + "SignedInt32NV\0" // IR(16057, 14) + "SignedInt64NV\0" // IR(16071, 14) + "UnsignedInt8NV\0" // IR(16085, 15) + "UnsignedInt16NV\0" // IR(16100, 16) + "UnsignedInt32NV\0" // IR(16116, 16) + "UnsignedInt64NV\0" // IR(16132, 16) + "SignedInt8PackedNV\0" // IR(16148, 19) + "UnsignedInt8PackedNV\0" // IR(16167, 21) + "FloatE4M3NV\0" // IR(16188, 12) + "FloatE5M2NV\0" // IR(16200, 12) + "RowMajorKHR\0" // IR(16212, 12) + "ColumnMajorKHR\0" // IR(16224, 15) + "RowBlockedInterleavedARM\0" // IR(16239, 25) + "ColumnBlockedInterleavedARM\0" // IR(16264, 28) + "NoneKHR\0" // IR(16292, 8) + "MatrixASignedComponentsKHR\0" // IR(16300, 27) + "MatrixBSignedComponentsKHR\0" // IR(16327, 27) + "MatrixCSignedComponentsKHR\0" // IR(16354, 27) + "MatrixResultSignedComponentsKHR\0" // IR(16381, 32) + "SaturatingAccumulationKHR\0" // IR(16413, 26) + "Row\0" // IR(16439, 4) + "Column\0" // IR(16443, 7) + "2x2\0" // IR(16450, 4) + "MatrixAKHR\0" // IR(16454, 11) + "MatrixBKHR\0" // IR(16465, 11) + "MatrixAccumulatorKHR\0" // IR(16476, 21) + "RowMajorNV\0" // IR(16497, 11) + "ColumnMajorNV\0" // IR(16508, 14) + "InferencingOptimalNV\0" // IR(16522, 21) + "TrainingOptimalNV\0" // IR(16543, 18) + "RelaxedPrecision\0" // IR(16561, 17) + "SpecId\0" // IR(16578, 7) + "Block\0" // IR(16585, 6) + "BufferBlock\0" // IR(16591, 12) + "RowMajor\0" // IR(16603, 9) + "ColMajor\0" // IR(16612, 9) + "ArrayStride\0" // IR(16621, 12) + "MatrixStride\0" // IR(16633, 13) + "GLSLShared\0" // IR(16646, 11) + "GLSLPacked\0" // IR(16657, 11) + "CPacked\0" // IR(16668, 8) + "SPV_OPERAND_TYPE_BUILT_IN\0" // IR(16676, 26) + "BuiltIn\0" // IR(16702, 8) + "NoPerspective\0" // IR(16710, 14) + "Flat\0" // IR(16724, 5) + "Patch\0" // IR(16729, 6) + "Centroid\0" // IR(16735, 9) + "Sample\0" // IR(16744, 7) + "Invariant\0" // IR(16751, 10) + "Restrict\0" // IR(16761, 9) + "Aliased\0" // IR(16770, 8) + "Volatile\0" // IR(16778, 9) + "Constant\0" // IR(16787, 9) + "Coherent\0" // IR(16796, 9) + "NonWritable\0" // IR(16805, 12) + "NonReadable\0" // IR(16817, 12) + "Uniform\0" // IR(16829, 8) + "SPV_OPERAND_TYPE_SCOPE_ID\0" // IR(16837, 26) + "UniformId\0" // IR(16863, 10) + "SaturatedConversion\0" // IR(16873, 20) + "Stream\0" // IR(16893, 7) + "Location\0" // IR(16900, 9) + "Component\0" // IR(16909, 10) + "Index\0" // IR(16919, 6) + "Binding\0" // IR(16925, 8) + "DescriptorSet\0" // IR(16933, 14) + "Offset\0" // IR(16947, 7) + "XfbBuffer\0" // IR(16954, 10) + "XfbStride\0" // IR(16964, 10) + "SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE\0" // IR(16974, 46) + "FuncParamAttr\0" // IR(17020, 14) + "SPV_OPERAND_TYPE_FP_ROUNDING_MODE\0" // IR(17034, 34) + "FPRoundingMode\0" // IR(17068, 15) + "SPV_OPERAND_TYPE_FP_FAST_MATH_MODE\0" // IR(17083, 35) + "FPFastMathMode\0" // IR(17118, 15) + "SPV_OPERAND_TYPE_LITERAL_STRING\0" // IR(17133, 32) + "SPV_OPERAND_TYPE_LINKAGE_TYPE\0" // IR(17165, 30) + "LinkageAttributes\0" // IR(17195, 18) + "NoContraction\0" // IR(17213, 14) + "InputAttachmentIndex\0" // IR(17227, 21) + "Alignment\0" // IR(17248, 10) + "MaxByteOffset\0" // IR(17258, 14) + "SPV_OPERAND_TYPE_ID\0" // IR(17272, 20) + "AlignmentId\0" // IR(17292, 12) + "MaxByteOffsetId\0" // IR(17304, 16) + "SaturatedToLargestFloat8NormalConversionEXT\0" // IR(17320, 44) + "NoSignedWrap\0" // IR(17364, 13) + "NoUnsignedWrap\0" // IR(17377, 15) + "WeightTextureQCOM\0" // IR(17392, 18) + "BlockMatchTextureQCOM\0" // IR(17410, 22) + "BlockMatchSamplerQCOM\0" // IR(17432, 22) + "ExplicitInterpAMD\0" // IR(17454, 18) + "NodeSharesPayloadLimitsWithAMDX\0" // IR(17472, 32) + "NodeMaxPayloadsAMDX\0" // IR(17504, 20) + "TrackFinishWritingAMDX\0" // IR(17524, 23) + "PayloadNodeNameAMDX\0" // IR(17547, 20) + "PayloadNodeBaseIndexAMDX\0" // IR(17567, 25) + "PayloadNodeSparseArrayAMDX\0" // IR(17592, 27) + "PayloadNodeArraySizeAMDX\0" // IR(17619, 25) + "PayloadDispatchIndirectAMDX\0" // IR(17644, 28) + "OverrideCoverageNV\0" // IR(17672, 19) + "PassthroughNV\0" // IR(17691, 14) + "ViewportRelativeNV\0" // IR(17705, 19) + "SecondaryViewportRelativeNV\0" // IR(17724, 28) + "PerPrimitiveEXT\0" // IR(17752, 16) + "PerPrimitiveNV\0" // IR(17768, 15) + "PerViewNV\0" // IR(17783, 10) + "PerTaskNV\0" // IR(17793, 10) + "PerVertexKHR\0" // IR(17803, 13) + "PerVertexNV\0" // IR(17816, 12) + "NonUniform\0" // IR(17828, 11) + "NonUniformEXT\0" // IR(17839, 14) + "RestrictPointer\0" // IR(17853, 16) + "RestrictPointerEXT\0" // IR(17869, 19) + "AliasedPointer\0" // IR(17888, 15) + "AliasedPointerEXT\0" // IR(17903, 18) + "HitObjectShaderRecordBufferNV\0" // IR(17921, 30) + "HitObjectShaderRecordBufferEXT\0" // IR(17951, 31) + "BindlessSamplerNV\0" // IR(17982, 18) + "BindlessImageNV\0" // IR(18000, 16) + "BoundSamplerNV\0" // IR(18016, 15) + "BoundImageNV\0" // IR(18031, 13) + "SIMTCallINTEL\0" // IR(18044, 14) + "ReferencedIndirectlyINTEL\0" // IR(18058, 26) + "ClobberINTEL\0" // IR(18084, 13) + "SideEffectsINTEL\0" // IR(18097, 17) + "VectorComputeVariableINTEL\0" // IR(18114, 27) + "FuncParamIOKindINTEL\0" // IR(18141, 21) + "VectorComputeFunctionINTEL\0" // IR(18162, 27) + "StackCallINTEL\0" // IR(18189, 15) + "GlobalVariableOffsetINTEL\0" // IR(18204, 26) + "CounterBuffer\0" // IR(18230, 14) + "HlslCounterBufferGOOGLE\0" // IR(18244, 24) + "UserSemantic\0" // IR(18268, 13) + "HlslSemanticGOOGLE\0" // IR(18281, 19) + "UserTypeGOOGLE\0" // IR(18300, 15) + "FunctionRoundingModeINTEL\0" // IR(18315, 26) + "SPV_OPERAND_TYPE_FPDENORM_MODE\0" // IR(18341, 31) + "FunctionDenormModeINTEL\0" // IR(18372, 24) + "RegisterALTERA\0" // IR(18396, 15) + "RegisterINTEL\0" // IR(18411, 14) + "MemoryALTERA\0" // IR(18425, 13) + "MemoryINTEL\0" // IR(18438, 12) + "NumbanksALTERA\0" // IR(18450, 15) + "NumbanksINTEL\0" // IR(18465, 14) + "BankwidthALTERA\0" // IR(18479, 16) + "BankwidthINTEL\0" // IR(18495, 15) + "MaxPrivateCopiesALTERA\0" // IR(18510, 23) + "MaxPrivateCopiesINTEL\0" // IR(18533, 22) + "SinglepumpALTERA\0" // IR(18555, 17) + "SinglepumpINTEL\0" // IR(18572, 16) + "DoublepumpALTERA\0" // IR(18588, 17) + "DoublepumpINTEL\0" // IR(18605, 16) + "MaxReplicatesALTERA\0" // IR(18621, 20) + "MaxReplicatesINTEL\0" // IR(18641, 19) + "SimpleDualPortALTERA\0" // IR(18660, 21) + "SimpleDualPortINTEL\0" // IR(18681, 20) + "MergeALTERA\0" // IR(18701, 12) + "MergeINTEL\0" // IR(18713, 11) + "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER\0" // IR(18724, 42) + "BankBitsALTERA\0" // IR(18766, 15) + "BankBitsINTEL\0" // IR(18781, 14) + "ForcePow2DepthALTERA\0" // IR(18795, 21) + "ForcePow2DepthINTEL\0" // IR(18816, 20) + "StridesizeALTERA\0" // IR(18836, 17) + "StridesizeINTEL\0" // IR(18853, 16) + "WordsizeALTERA\0" // IR(18869, 15) + "WordsizeINTEL\0" // IR(18884, 14) + "TrueDualPortALTERA\0" // IR(18898, 19) + "TrueDualPortINTEL\0" // IR(18917, 18) + "BurstCoalesceALTERA\0" // IR(18935, 20) + "BurstCoalesceINTEL\0" // IR(18955, 19) + "CacheSizeALTERA\0" // IR(18974, 16) + "CacheSizeINTEL\0" // IR(18990, 15) + "DontStaticallyCoalesceALTERA\0" // IR(19005, 29) + "DontStaticallyCoalesceINTEL\0" // IR(19034, 28) + "PrefetchALTERA\0" // IR(19062, 15) + "PrefetchINTEL\0" // IR(19077, 14) + "StallEnableALTERA\0" // IR(19091, 18) + "StallEnableINTEL\0" // IR(19109, 17) + "FuseLoopsInFunctionALTERA\0" // IR(19126, 26) + "FuseLoopsInFunctionINTEL\0" // IR(19152, 25) + "MathOpDSPModeALTERA\0" // IR(19177, 20) + "MathOpDSPModeINTEL\0" // IR(19197, 19) + "AliasScopeINTEL\0" // IR(19216, 16) + "NoAliasINTEL\0" // IR(19232, 13) + "InitiationIntervalALTERA\0" // IR(19245, 25) + "InitiationIntervalINTEL\0" // IR(19270, 24) + "MaxConcurrencyALTERA\0" // IR(19294, 21) + "MaxConcurrencyINTEL\0" // IR(19315, 20) + "PipelineEnableALTERA\0" // IR(19335, 21) + "PipelineEnableINTEL\0" // IR(19356, 20) + "BufferLocationALTERA\0" // IR(19376, 21) + "BufferLocationINTEL\0" // IR(19397, 20) + "IOPipeStorageALTERA\0" // IR(19417, 20) + "IOPipeStorageINTEL\0" // IR(19437, 19) + "SPV_OPERAND_TYPE_FPOPERATION_MODE\0" // IR(19456, 34) + "FunctionFloatingPointModeINTEL\0" // IR(19490, 31) + "SingleElementVectorINTEL\0" // IR(19521, 25) + "VectorComputeCallableFunctionINTEL\0" // IR(19546, 35) + "MediaBlockIOINTEL\0" // IR(19581, 18) + "StallFreeALTERA\0" // IR(19599, 16) + "StallFreeINTEL\0" // IR(19615, 15) + "SPV_OPERAND_TYPE_LITERAL_FLOAT\0" // IR(19630, 31) + "FPMaxErrorDecorationINTEL\0" // IR(19661, 26) + "LatencyControlLabelALTERA\0" // IR(19687, 26) + "LatencyControlLabelINTEL\0" // IR(19713, 25) + "LatencyControlConstraintALTERA\0" // IR(19738, 31) + "LatencyControlConstraintINTEL\0" // IR(19769, 30) + "ConduitKernelArgumentALTERA\0" // IR(19799, 28) + "ConduitKernelArgumentINTEL\0" // IR(19827, 27) + "RegisterMapKernelArgumentALTERA\0" // IR(19854, 32) + "RegisterMapKernelArgumentINTEL\0" // IR(19886, 31) + "MMHostInterfaceAddressWidthALTERA\0" // IR(19917, 34) + "MMHostInterfaceAddressWidthINTEL\0" // IR(19951, 33) + "MMHostInterfaceDataWidthALTERA\0" // IR(19984, 31) + "MMHostInterfaceDataWidthINTEL\0" // IR(20015, 30) + "MMHostInterfaceLatencyALTERA\0" // IR(20045, 29) + "MMHostInterfaceLatencyINTEL\0" // IR(20074, 28) + "SPV_OPERAND_TYPE_ACCESS_QUALIFIER\0" // IR(20102, 34) + "MMHostInterfaceReadWriteModeALTERA\0" // IR(20136, 35) + "MMHostInterfaceReadWriteModeINTEL\0" // IR(20171, 34) + "MMHostInterfaceMaxBurstALTERA\0" // IR(20205, 30) + "MMHostInterfaceMaxBurstINTEL\0" // IR(20235, 29) + "MMHostInterfaceWaitRequestALTERA\0" // IR(20264, 33) + "MMHostInterfaceWaitRequestINTEL\0" // IR(20297, 32) + "StableKernelArgumentALTERA\0" // IR(20329, 27) + "StableKernelArgumentINTEL\0" // IR(20356, 26) + "SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER\0" // IR(20382, 39) + "HostAccessINTEL\0" // IR(20421, 16) + "SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER\0" // IR(20437, 47) + "InitModeALTERA\0" // IR(20484, 15) + "InitModeINTEL\0" // IR(20499, 14) + "ImplementInRegisterMapALTERA\0" // IR(20513, 29) + "ImplementInRegisterMapINTEL\0" // IR(20542, 28) + "ConditionalINTEL\0" // IR(20570, 17) + "SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL\0" // IR(20587, 36) + "CacheControlLoadINTEL\0" // IR(20623, 22) + "SPV_OPERAND_TYPE_STORE_CACHE_CONTROL\0" // IR(20645, 37) + "CacheControlStoreINTEL\0" // IR(20682, 23) + "1D\0" // IR(20705, 3) + "2D\0" // IR(20708, 3) + "3D\0" // IR(20711, 3) + "Cube\0" // IR(20714, 5) + "Rect\0" // IR(20719, 5) + "Buffer\0" // IR(20724, 7) + "SubpassData\0" // IR(20731, 12) + "TileImageDataEXT\0" // IR(20743, 17) + "Invocations\0" // IR(20760, 12) + "SpacingEqual\0" // IR(20772, 13) + "SpacingFractionalEven\0" // IR(20785, 22) + "SpacingFractionalOdd\0" // IR(20807, 21) + "VertexOrderCw\0" // IR(20828, 14) + "VertexOrderCcw\0" // IR(20842, 15) + "PixelCenterInteger\0" // IR(20857, 19) + "OriginUpperLeft\0" // IR(20876, 16) + "OriginLowerLeft\0" // IR(20892, 16) + "EarlyFragmentTests\0" // IR(20908, 19) + "PointMode\0" // IR(20927, 10) + "Xfb\0" // IR(20937, 4) + "DepthReplacing\0" // IR(20941, 15) + "DepthGreater\0" // IR(20956, 13) + "DepthLess\0" // IR(20969, 10) + "DepthUnchanged\0" // IR(20979, 15) + "LocalSize\0" // IR(20994, 10) + "LocalSizeHint\0" // IR(21004, 14) + "InputPoints\0" // IR(21018, 12) + "InputLines\0" // IR(21030, 11) + "InputLinesAdjacency\0" // IR(21041, 20) + "Triangles\0" // IR(21061, 10) + "InputTrianglesAdjacency\0" // IR(21071, 24) + "Quads\0" // IR(21095, 6) + "Isolines\0" // IR(21101, 9) + "OutputVertices\0" // IR(21110, 15) + "OutputPoints\0" // IR(21125, 13) + "OutputLineStrip\0" // IR(21138, 16) + "OutputTriangleStrip\0" // IR(21154, 20) + "VecTypeHint\0" // IR(21174, 12) + "ContractionOff\0" // IR(21186, 15) + "Initializer\0" // IR(21201, 12) + "Finalizer\0" // IR(21213, 10) + "SubgroupsPerWorkgroup\0" // IR(21223, 22) + "SubgroupsPerWorkgroupId\0" // IR(21245, 24) + "LocalSizeId\0" // IR(21269, 12) + "LocalSizeHintId\0" // IR(21281, 16) + "NonCoherentColorAttachmentReadEXT\0" // IR(21297, 34) + "NonCoherentDepthAttachmentReadEXT\0" // IR(21331, 34) + "NonCoherentStencilAttachmentReadEXT\0" // IR(21365, 36) + "SubgroupUniformControlFlowKHR\0" // IR(21401, 30) + "PostDepthCoverage\0" // IR(21431, 18) + "NonCoherentTileAttachmentReadQCOM\0" // IR(21449, 34) + "TileShadingRateQCOM\0" // IR(21483, 20) + "EarlyAndLateFragmentTestsAMD\0" // IR(21503, 29) + "StencilRefReplacingEXT\0" // IR(21532, 23) + "CoalescingAMDX\0" // IR(21555, 15) + "IsApiEntryAMDX\0" // IR(21570, 15) + "MaxNodeRecursionAMDX\0" // IR(21585, 21) + "StaticNumWorkgroupsAMDX\0" // IR(21606, 24) + "MaxNumWorkgroupsAMDX\0" // IR(21630, 21) + "StencilRefUnchangedFrontAMD\0" // IR(21651, 28) + "StencilRefGreaterFrontAMD\0" // IR(21679, 26) + "StencilRefLessFrontAMD\0" // IR(21705, 23) + "StencilRefUnchangedBackAMD\0" // IR(21728, 27) + "StencilRefGreaterBackAMD\0" // IR(21755, 25) + "StencilRefLessBackAMD\0" // IR(21780, 22) + "QuadDerivativesKHR\0" // IR(21802, 19) + "RequireFullQuadsKHR\0" // IR(21821, 20) + "SharesInputWithAMDX\0" // IR(21841, 20) + "OutputLinesEXT\0" // IR(21861, 15) + "OutputLinesNV\0" // IR(21876, 14) + "OutputPrimitivesEXT\0" // IR(21890, 20) + "OutputPrimitivesNV\0" // IR(21910, 19) + "DerivativeGroupQuadsKHR\0" // IR(21929, 24) + "DerivativeGroupQuadsNV\0" // IR(21953, 23) + "DerivativeGroupLinearKHR\0" // IR(21976, 25) + "DerivativeGroupLinearNV\0" // IR(22001, 24) + "OutputTrianglesEXT\0" // IR(22025, 19) + "OutputTrianglesNV\0" // IR(22044, 18) + "PixelInterlockOrderedEXT\0" // IR(22062, 25) + "PixelInterlockUnorderedEXT\0" // IR(22087, 27) + "SampleInterlockOrderedEXT\0" // IR(22114, 26) + "SampleInterlockUnorderedEXT\0" // IR(22140, 28) + "ShadingRateInterlockOrderedEXT\0" // IR(22168, 31) + "ShadingRateInterlockUnorderedEXT\0" // IR(22199, 33) + "SharedLocalMemorySizeINTEL\0" // IR(22232, 27) + "RoundingModeRTPINTEL\0" // IR(22259, 21) + "RoundingModeRTNINTEL\0" // IR(22280, 21) + "FloatingPointModeALTINTEL\0" // IR(22301, 26) + "FloatingPointModeIEEEINTEL\0" // IR(22327, 27) + "MaxWorkgroupSizeINTEL\0" // IR(22354, 22) + "MaxWorkDimINTEL\0" // IR(22376, 16) + "NoGlobalOffsetINTEL\0" // IR(22392, 20) + "NumSIMDWorkitemsINTEL\0" // IR(22412, 22) + "SchedulerTargetFmaxMhzINTEL\0" // IR(22434, 28) + "MaximallyReconvergesKHR\0" // IR(22462, 24) + "FPFastMathDefault\0" // IR(22486, 18) + "StreamingInterfaceINTEL\0" // IR(22504, 24) + "RegisterMapInterfaceINTEL\0" // IR(22528, 26) + "NamedBarrierCountINTEL\0" // IR(22554, 23) + "MaximumRegistersINTEL\0" // IR(22577, 22) + "MaximumRegistersIdINTEL\0" // IR(22599, 24) + "SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS\0" // IR(22623, 51) + "NamedMaximumRegistersINTEL\0" // IR(22674, 27) + "Vertex\0" // IR(22701, 7) + "TessellationControl\0" // IR(22708, 20) + "TessellationEvaluation\0" // IR(22728, 23) + "GLCompute\0" // IR(22751, 10) + "TaskNV\0" // IR(22761, 7) + "MeshNV\0" // IR(22768, 7) + "RayGenerationKHR\0" // IR(22775, 17) + "RayGenerationNV\0" // IR(22792, 16) + "IntersectionKHR\0" // IR(22808, 16) + "IntersectionNV\0" // IR(22824, 15) + "AnyHitKHR\0" // IR(22839, 10) + "AnyHitNV\0" // IR(22849, 9) + "ClosestHitKHR\0" // IR(22858, 14) + "ClosestHitNV\0" // IR(22872, 13) + "MissKHR\0" // IR(22885, 8) + "MissNV\0" // IR(22893, 7) + "CallableKHR\0" // IR(22900, 12) + "CallableNV\0" // IR(22912, 11) + "TaskEXT\0" // IR(22923, 8) + "MeshEXT\0" // IR(22931, 8) + "Preserve\0" // IR(22939, 9) + "FlushToZero\0" // IR(22948, 12) + "BFloat16KHR\0" // IR(22960, 12) + "Float8E4M3EXT\0" // IR(22972, 14) + "Float8E5M2EXT\0" // IR(22986, 14) + "IEEE\0" // IR(23000, 5) + "ALT\0" // IR(23005, 4) + "NotNaN\0" // IR(23009, 7) + "NotInf\0" // IR(23016, 7) + "NSZ\0" // IR(23023, 4) + "AllowRecip\0" // IR(23027, 11) + "Fast\0" // IR(23038, 5) + "AllowContract\0" // IR(23043, 14) + "AllowContractFastINTEL\0" // IR(23057, 23) + "AllowReassoc\0" // IR(23080, 13) + "AllowReassocINTEL\0" // IR(23093, 18) + "AllowTransform\0" // IR(23111, 15) + "RTE\0" // IR(23126, 4) + "RTZ\0" // IR(23130, 4) + "RTP\0" // IR(23134, 4) + "RTN\0" // IR(23138, 4) + "Vertical2Pixels\0" // IR(23142, 16) + "Vertical4Pixels\0" // IR(23158, 16) + "Horizontal2Pixels\0" // IR(23174, 18) + "Horizontal4Pixels\0" // IR(23192, 18) + "Inline\0" // IR(23210, 7) + "DontInline\0" // IR(23217, 11) + "Pure\0" // IR(23228, 5) + "Const\0" // IR(23233, 6) + "Zext\0" // IR(23239, 5) + "Sext\0" // IR(23244, 5) + "ByVal\0" // IR(23249, 6) + "Sret\0" // IR(23255, 5) + "NoAlias\0" // IR(23260, 8) + "NoCapture\0" // IR(23268, 10) + "NoWrite\0" // IR(23278, 8) + "NoReadWrite\0" // IR(23286, 12) + "RuntimeAlignedALTERA\0" // IR(23298, 21) + "RuntimeAlignedINTEL\0" // IR(23319, 20) + "Reduce\0" // IR(23339, 7) + "InclusiveScan\0" // IR(23346, 14) + "ExclusiveScan\0" // IR(23360, 14) + "ClusteredReduce\0" // IR(23374, 16) + "PartitionedReduceNV\0" // IR(23390, 20) + "PartitionedInclusiveScanNV\0" // IR(23410, 27) + "PartitionedExclusiveScanNV\0" // IR(23437, 27) + "NoneINTEL\0" // IR(23464, 10) + "ReadINTEL\0" // IR(23474, 10) + "WriteINTEL\0" // IR(23484, 11) + "ReadWriteINTEL\0" // IR(23495, 15) + "Bias\0" // IR(23510, 5) + "Lod\0" // IR(23515, 4) + "Grad\0" // IR(23519, 5) + "ConstOffset\0" // IR(23524, 12) + "ConstOffsets\0" // IR(23536, 13) + "MakeTexelAvailable\0" // IR(23549, 19) + "MakeTexelAvailableKHR\0" // IR(23568, 22) + "MakeTexelVisible\0" // IR(23590, 17) + "MakeTexelVisibleKHR\0" // IR(23607, 20) + "NonPrivateTexel\0" // IR(23627, 16) + "NonPrivateTexelKHR\0" // IR(23643, 19) + "VolatileTexel\0" // IR(23662, 14) + "VolatileTexelKHR\0" // IR(23676, 17) + "SignExtend\0" // IR(23693, 11) + "ZeroExtend\0" // IR(23704, 11) + "Nontemporal\0" // IR(23715, 12) + "Offsets\0" // IR(23727, 8) + "SnormInt8\0" // IR(23735, 10) + "SnormInt16\0" // IR(23745, 11) + "UnormInt8\0" // IR(23756, 10) + "UnormInt16\0" // IR(23766, 11) + "UnormShort565\0" // IR(23777, 14) + "UnormShort555\0" // IR(23791, 14) + "UnormInt101010\0" // IR(23805, 15) + "SignedInt8\0" // IR(23820, 11) + "SignedInt16\0" // IR(23831, 12) + "SignedInt32\0" // IR(23843, 12) + "UnsignedInt8\0" // IR(23855, 13) + "UnsignedInt16\0" // IR(23868, 14) + "UnsignedInt32\0" // IR(23882, 14) + "HalfFloat\0" // IR(23896, 10) + "UnormInt24\0" // IR(23906, 11) + "UnormInt101010_2\0" // IR(23917, 17) + "UnormInt10X6EXT\0" // IR(23934, 16) + "UnsignedIntRaw10EXT\0" // IR(23950, 20) + "UnsignedIntRaw12EXT\0" // IR(23970, 20) + "UnormInt2_101010EXT\0" // IR(23990, 20) + "UnsignedInt10X6EXT\0" // IR(24010, 19) + "UnsignedInt12X4EXT\0" // IR(24029, 19) + "UnsignedInt14X2EXT\0" // IR(24048, 19) + "UnormInt12X4EXT\0" // IR(24067, 16) + "UnormInt14X2EXT\0" // IR(24083, 16) + "R\0" // IR(24099, 2) + "A\0" // IR(24101, 2) + "RG\0" // IR(24103, 3) + "RA\0" // IR(24106, 3) + "RGB\0" // IR(24109, 4) + "RGBA\0" // IR(24113, 5) + "BGRA\0" // IR(24118, 5) + "ARGB\0" // IR(24123, 5) + "Intensity\0" // IR(24128, 10) + "Luminance\0" // IR(24138, 10) + "Rx\0" // IR(24148, 3) + "RGx\0" // IR(24151, 4) + "RGBx\0" // IR(24155, 5) + "Depth\0" // IR(24160, 6) + "DepthStencil\0" // IR(24166, 13) + "sRGB\0" // IR(24179, 5) + "sRGBx\0" // IR(24184, 6) + "sRGBA\0" // IR(24190, 6) + "sBGRA\0" // IR(24196, 6) + "ABGR\0" // IR(24202, 5) + "InitOnDeviceReprogramALTERA\0" // IR(24207, 28) + "InitOnDeviceReprogramINTEL\0" // IR(24235, 27) + "InitOnDeviceResetALTERA\0" // IR(24262, 24) + "InitOnDeviceResetINTEL\0" // IR(24286, 23) + "NoWait\0" // IR(24309, 7) + "WaitKernel\0" // IR(24316, 11) + "WaitWorkGroup\0" // IR(24327, 14) + "CmdExecTime\0" // IR(24341, 12) + "MayUsePrintf\0" // IR(24353, 13) + "Export\0" // IR(24366, 7) + "Import\0" // IR(24373, 7) + "LinkOnceODR\0" // IR(24380, 12) + "UncachedINTEL\0" // IR(24392, 14) + "CachedINTEL\0" // IR(24406, 12) + "StreamingINTEL\0" // IR(24418, 15) + "InvalidateAfterReadINTEL\0" // IR(24433, 25) + "ConstCachedINTEL\0" // IR(24458, 17) + "Unroll\0" // IR(24475, 7) + "DontUnroll\0" // IR(24482, 11) + "DependencyInfinite\0" // IR(24493, 19) + "DependencyLength\0" // IR(24512, 17) + "MinIterations\0" // IR(24529, 14) + "MaxIterations\0" // IR(24543, 14) + "IterationMultiple\0" // IR(24557, 18) + "PeelCount\0" // IR(24575, 10) + "PartialCount\0" // IR(24585, 13) + "DependencyArrayALTERA\0" // IR(24598, 22) + "DependencyArrayINTEL\0" // IR(24620, 21) + "LoopCoalesceALTERA\0" // IR(24641, 19) + "LoopCoalesceINTEL\0" // IR(24660, 18) + "MaxInterleavingALTERA\0" // IR(24678, 22) + "MaxInterleavingINTEL\0" // IR(24700, 21) + "SpeculatedIterationsALTERA\0" // IR(24721, 27) + "SpeculatedIterationsINTEL\0" // IR(24748, 26) + "NoFusionALTERA\0" // IR(24774, 15) + "NoFusionINTEL\0" // IR(24789, 14) + "LoopCountALTERA\0" // IR(24803, 16) + "LoopCountINTEL\0" // IR(24819, 15) + "MaxReinvocationDelayALTERA\0" // IR(24834, 27) + "MaxReinvocationDelayINTEL\0" // IR(24861, 26) + "MatrixASignedComponentsINTEL\0" // IR(24887, 29) + "MatrixBSignedComponentsINTEL\0" // IR(24916, 29) + "MatrixCBFloat16INTEL\0" // IR(24945, 21) + "MatrixResultBFloat16INTEL\0" // IR(24966, 26) + "MatrixAPackedInt8INTEL\0" // IR(24992, 23) + "MatrixBPackedInt8INTEL\0" // IR(25015, 23) + "MatrixAPackedInt4INTEL\0" // IR(25038, 23) + "MatrixBPackedInt4INTEL\0" // IR(25061, 23) + "MatrixATF32INTEL\0" // IR(25084, 17) + "MatrixBTF32INTEL\0" // IR(25101, 17) + "MatrixAPackedFloat16INTEL\0" // IR(25118, 26) + "MatrixBPackedFloat16INTEL\0" // IR(25144, 26) + "MatrixAPackedBFloat16INTEL\0" // IR(25170, 27) + "MatrixBPackedBFloat16INTEL\0" // IR(25197, 27) + "Aligned\0" // IR(25224, 8) + "MakePointerAvailable\0" // IR(25232, 21) + "MakePointerAvailableKHR\0" // IR(25253, 24) + "MakePointerVisible\0" // IR(25277, 19) + "MakePointerVisibleKHR\0" // IR(25296, 22) + "NonPrivatePointer\0" // IR(25318, 18) + "NonPrivatePointerKHR\0" // IR(25336, 21) + "AliasScopeINTELMask\0" // IR(25357, 20) + "NoAliasINTELMask\0" // IR(25377, 17) + "Simple\0" // IR(25394, 7) + "GLSL450\0" // IR(25401, 8) + "OpenCL\0" // IR(25409, 7) + "Vulkan\0" // IR(25416, 7) + "VulkanKHR\0" // IR(25423, 10) + "Relaxed\0" // IR(25433, 8) + "Acquire\0" // IR(25441, 8) + "Release\0" // IR(25449, 8) + "AcquireRelease\0" // IR(25457, 15) + "SequentiallyConsistent\0" // IR(25472, 23) + "UniformMemory\0" // IR(25495, 14) + "SubgroupMemory\0" // IR(25509, 15) + "WorkgroupMemory\0" // IR(25524, 16) + "CrossWorkgroupMemory\0" // IR(25540, 21) + "AtomicCounterMemory\0" // IR(25561, 20) + "ImageMemory\0" // IR(25581, 12) + "OutputMemory\0" // IR(25593, 13) + "OutputMemoryKHR\0" // IR(25606, 16) + "MakeAvailable\0" // IR(25622, 14) + "MakeAvailableKHR\0" // IR(25636, 17) + "MakeVisible\0" // IR(25653, 12) + "MakeVisibleKHR\0" // IR(25665, 15) + "AutoINTEL\0" // IR(25680, 10) + "WRAP\0" // IR(25690, 5) + "SAT\0" // IR(25695, 4) + "SAT_ZERO\0" // IR(25699, 9) + "SAT_SYM\0" // IR(25708, 8) + "PackedVectorFormat4x8Bit\0" // IR(25716, 25) + "PackedVectorFormat4x8BitKHR\0" // IR(25741, 28) + "TRN\0" // IR(25769, 4) + "TRN_ZERO\0" // IR(25773, 9) + "RND\0" // IR(25782, 4) + "RND_ZERO\0" // IR(25786, 9) + "RND_INF\0" // IR(25795, 8) + "RND_MIN_INF\0" // IR(25803, 12) + "RND_CONV\0" // IR(25815, 9) + "RND_CONV_ODD\0" // IR(25824, 13) + "RobustnessPerComponentNV\0" // IR(25837, 25) + "RobustnessPerElementNV\0" // IR(25862, 23) + "OpaqueKHR\0" // IR(25885, 10) + "NoOpaqueKHR\0" // IR(25895, 12) + "TerminateOnFirstHitKHR\0" // IR(25907, 23) + "SkipClosestHitShaderKHR\0" // IR(25930, 24) + "CullBackFacingTrianglesKHR\0" // IR(25954, 27) + "CullFrontFacingTrianglesKHR\0" // IR(25981, 28) + "CullOpaqueKHR\0" // IR(26009, 14) + "CullNoOpaqueKHR\0" // IR(26023, 16) + "SkipTrianglesKHR\0" // IR(26039, 17) + "SkipBuiltinPrimitivesNV\0" // IR(26056, 24) + "SkipAABBsKHR\0" // IR(26080, 13) + "ForceOpacityMicromap2StateEXT\0" // IR(26093, 30) + "RayQueryCandidateIntersectionTriangleKHR\0" // IR(26123, 41) + "RayQueryCandidateIntersectionAABBKHR\0" // IR(26164, 37) + "RayQueryCommittedIntersectionNoneKHR\0" // IR(26201, 37) + "RayQueryCommittedIntersectionTriangleKHR\0" // IR(26238, 41) + "RayQueryCommittedIntersectionGeneratedKHR\0" // IR(26279, 42) + "RayQueryCandidateIntersectionKHR\0" // IR(26321, 33) + "RayQueryCommittedIntersectionKHR\0" // IR(26354, 33) + "ClampToEdge\0" // IR(26387, 12) + "Clamp\0" // IR(26399, 6) + "Repeat\0" // IR(26405, 7) + "RepeatMirrored\0" // IR(26412, 15) + "Nearest\0" // IR(26427, 8) + "Linear\0" // IR(26435, 7) + "Unknown\0" // IR(26442, 8) + "Rgba32f\0" // IR(26450, 8) + "Rgba16f\0" // IR(26458, 8) + "R32f\0" // IR(26466, 5) + "Rgba8\0" // IR(26471, 6) + "Rgba8Snorm\0" // IR(26477, 11) + "Rg32f\0" // IR(26488, 6) + "Rg16f\0" // IR(26494, 6) + "R11fG11fB10f\0" // IR(26500, 13) + "R16f\0" // IR(26513, 5) + "Rgba16\0" // IR(26518, 7) + "Rgb10A2\0" // IR(26525, 8) + "Rg16\0" // IR(26533, 5) + "Rg8\0" // IR(26538, 4) + "R16\0" // IR(26542, 4) + "R8\0" // IR(26546, 3) + "Rgba16Snorm\0" // IR(26549, 12) + "Rg16Snorm\0" // IR(26561, 10) + "Rg8Snorm\0" // IR(26571, 9) + "R16Snorm\0" // IR(26580, 9) + "R8Snorm\0" // IR(26589, 8) + "Rgba32i\0" // IR(26597, 8) + "Rgba16i\0" // IR(26605, 8) + "Rgba8i\0" // IR(26613, 7) + "R32i\0" // IR(26620, 5) + "Rg32i\0" // IR(26625, 6) + "Rg16i\0" // IR(26631, 6) + "Rg8i\0" // IR(26637, 5) + "R16i\0" // IR(26642, 5) + "R8i\0" // IR(26647, 4) + "Rgba32ui\0" // IR(26651, 9) + "Rgba16ui\0" // IR(26660, 9) + "Rgba8ui\0" // IR(26669, 8) + "R32ui\0" // IR(26677, 6) + "Rgb10a2ui\0" // IR(26683, 10) + "Rg32ui\0" // IR(26693, 7) + "Rg16ui\0" // IR(26700, 7) + "Rg8ui\0" // IR(26707, 6) + "R16ui\0" // IR(26713, 6) + "R8ui\0" // IR(26719, 5) + "R64ui\0" // IR(26724, 6) + "R64i\0" // IR(26730, 5) + "CrossDevice\0" // IR(26735, 12) + "Device\0" // IR(26747, 7) + "Workgroup\0" // IR(26754, 10) + "Subgroup\0" // IR(26764, 9) + "Invocation\0" // IR(26773, 11) + "QueueFamily\0" // IR(26784, 12) + "QueueFamilyKHR\0" // IR(26796, 15) + "ShaderCallKHR\0" // IR(26811, 14) + "Flatten\0" // IR(26825, 8) + "DontFlatten\0" // IR(26833, 12) + "IdentifierPossibleDuplicates\0" // IR(26845, 29) + "FlagUnknownPhysicalLayout\0" // IR(26874, 26) + "ESSL\0" // IR(26900, 5) + "GLSL\0" // IR(26905, 5) + "OpenCL_C\0" // IR(26910, 9) + "OpenCL_CPP\0" // IR(26919, 11) + "HLSL\0" // IR(26930, 5) + "CPP_for_OpenCL\0" // IR(26935, 15) + "SYCL\0" // IR(26950, 5) + "HERO_C\0" // IR(26955, 7) + "NZSL\0" // IR(26962, 5) + "WGSL\0" // IR(26967, 5) + "Slang\0" // IR(26972, 6) + "Zig\0" // IR(26978, 4) + "Rust\0" // IR(26982, 5) + "UniformConstant\0" // IR(26987, 16) + "Input\0" // IR(27003, 6) + "Output\0" // IR(27009, 7) + "CrossWorkgroup\0" // IR(27016, 15) + "Private\0" // IR(27031, 8) + "Function\0" // IR(27039, 9) + "Generic\0" // IR(27048, 8) + "PushConstant\0" // IR(27056, 13) + "AtomicCounter\0" // IR(27069, 14) + "Image\0" // IR(27083, 6) + "StorageBuffer\0" // IR(27089, 14) + "TileImageEXT\0" // IR(27103, 13) + "TileAttachmentQCOM\0" // IR(27116, 19) + "NodePayloadAMDX\0" // IR(27135, 16) + "CallableDataKHR\0" // IR(27151, 16) + "CallableDataNV\0" // IR(27167, 15) + "IncomingCallableDataKHR\0" // IR(27182, 24) + "IncomingCallableDataNV\0" // IR(27206, 23) + "RayPayloadKHR\0" // IR(27229, 14) + "RayPayloadNV\0" // IR(27243, 13) + "HitAttributeKHR\0" // IR(27256, 16) + "HitAttributeNV\0" // IR(27272, 15) + "IncomingRayPayloadKHR\0" // IR(27287, 22) + "IncomingRayPayloadNV\0" // IR(27309, 21) + "ShaderRecordBufferKHR\0" // IR(27330, 22) + "ShaderRecordBufferNV\0" // IR(27352, 21) + "PhysicalStorageBuffer\0" // IR(27373, 22) + "PhysicalStorageBufferEXT\0" // IR(27395, 25) + "HitObjectAttributeNV\0" // IR(27420, 21) + "TaskPayloadWorkgroupEXT\0" // IR(27441, 24) + "HitObjectAttributeEXT\0" // IR(27465, 22) + "CodeSectionINTEL\0" // IR(27487, 17) + "DeviceOnlyALTERA\0" // IR(27504, 17) + "DeviceOnlyINTEL\0" // IR(27521, 16) + "HostOnlyALTERA\0" // IR(27537, 15) + "HostOnlyINTEL\0" // IR(27552, 14) + "WriteThroughINTEL\0" // IR(27566, 18) + "WriteBackINTEL\0" // IR(27584, 15) + "TensorView\0" // IR(27599, 11) + "DecodeFunc\0" // IR(27610, 11) + "Undefined\0" // IR(27621, 10) + "NoneARM\0" // IR(27631, 8) + "NontemporalARM\0" // IR(27639, 15) + "OutOfBoundsValueARM\0" // IR(27654, 20) + "MakeElementAvailableARM\0" // IR(27674, 24) + "MakeElementVisibleARM\0" // IR(27698, 22) + "NonPrivateElementARM\0" // IR(27720, 21) + "Nop\0" // IR(27741, 4) + "SPV_OPERAND_TYPE_TYPE_ID\0" // IR(27745, 25) + "SPV_OPERAND_TYPE_RESULT_ID\0" // IR(27770, 27) + "Undef\0" // IR(27797, 6) + "SourceContinued\0" // IR(27803, 16) + "SPV_OPERAND_TYPE_SOURCE_LANGUAGE\0" // IR(27819, 33) + "SPV_OPERAND_TYPE_OPTIONAL_ID\0" // IR(27852, 29) + "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_STRING\0" // IR(27881, 41) + "Source\0" // IR(27922, 7) + "SourceExtension\0" // IR(27929, 16) + "Name\0" // IR(27945, 5) + "MemberName\0" // IR(27950, 11) + "String\0" // IR(27961, 7) + "Line\0" // IR(27968, 5) + "Extension\0" // IR(27973, 10) + "ExtInstImport\0" // IR(27983, 14) + "SPV_OPERAND_TYPE_EXTENSION_INSTRUCTION_NUMBER\0" // IR(27997, 46) + "ExtInst\0" // IR(28043, 8) + "SPV_OPERAND_TYPE_ADDRESSING_MODEL\0" // IR(28051, 34) + "SPV_OPERAND_TYPE_MEMORY_MODEL\0" // IR(28085, 30) + "MemoryModel\0" // IR(28115, 12) + "SPV_OPERAND_TYPE_EXECUTION_MODEL\0" // IR(28127, 33) + "SPV_OPERAND_TYPE_VARIABLE_ID\0" // IR(28160, 29) + "EntryPoint\0" // IR(28189, 11) + "SPV_OPERAND_TYPE_EXECUTION_MODE\0" // IR(28200, 32) + "ExecutionMode\0" // IR(28232, 14) + "SPV_OPERAND_TYPE_CAPABILITY\0" // IR(28246, 28) + "Capability\0" // IR(28274, 11) + "TypeVoid\0" // IR(28285, 9) + "TypeBool\0" // IR(28294, 9) + "TypeInt\0" // IR(28303, 8) + "SPV_OPERAND_TYPE_OPTIONAL_FPENCODING\0" // IR(28311, 37) + "TypeFloat\0" // IR(28348, 10) + "TypeVector\0" // IR(28358, 11) + "TypeMatrix\0" // IR(28369, 11) + "SPV_OPERAND_TYPE_DIMENSIONALITY\0" // IR(28380, 32) + "SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT\0" // IR(28412, 38) + "SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER\0" // IR(28450, 43) + "TypeImage\0" // IR(28493, 10) + "TypeSampler\0" // IR(28503, 12) + "TypeSampledImage\0" // IR(28515, 17) + "TypeArray\0" // IR(28532, 10) + "TypeRuntimeArray\0" // IR(28542, 17) + "TypeStruct\0" // IR(28559, 11) + "TypeOpaque\0" // IR(28570, 11) + "SPV_OPERAND_TYPE_STORAGE_CLASS\0" // IR(28581, 31) + "TypePointer\0" // IR(28612, 12) + "TypeFunction\0" // IR(28624, 13) + "TypeEvent\0" // IR(28637, 10) + "TypeDeviceEvent\0" // IR(28647, 16) + "TypeReserveId\0" // IR(28663, 14) + "TypeQueue\0" // IR(28677, 10) + "TypePipe\0" // IR(28687, 9) + "TypeForwardPointer\0" // IR(28696, 19) + "ConstantTrue\0" // IR(28715, 13) + "ConstantFalse\0" // IR(28728, 14) + "SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER\0" // IR(28742, 38) + "ConstantComposite\0" // IR(28780, 18) + "SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE\0" // IR(28798, 41) + "SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE\0" // IR(28839, 37) + "ConstantSampler\0" // IR(28876, 16) + "ConstantNull\0" // IR(28892, 13) + "SpecConstantTrue\0" // IR(28905, 17) + "SpecConstantFalse\0" // IR(28922, 18) + "SpecConstant\0" // IR(28940, 13) + "SpecConstantComposite\0" // IR(28953, 22) + "SPV_OPERAND_TYPE_SPEC_CONSTANT_OP_NUMBER\0" // IR(28975, 41) + "SpecConstantOp\0" // IR(29016, 15) + "SPV_OPERAND_TYPE_FUNCTION_CONTROL\0" // IR(29031, 34) + "FunctionParameter\0" // IR(29065, 18) + "FunctionEnd\0" // IR(29083, 12) + "FunctionCall\0" // IR(29095, 13) + "Variable\0" // IR(29108, 9) + "ImageTexelPointer\0" // IR(29117, 18) + "SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS\0" // IR(29135, 40) + "Load\0" // IR(29175, 5) + "Store\0" // IR(29180, 6) + "CopyMemory\0" // IR(29186, 11) + "CopyMemorySized\0" // IR(29197, 16) + "AccessChain\0" // IR(29213, 12) + "InBoundsAccessChain\0" // IR(29225, 20) + "PtrAccessChain\0" // IR(29245, 15) + "ArrayLength\0" // IR(29260, 12) + "GenericPtrMemSemantics\0" // IR(29272, 23) + "InBoundsPtrAccessChain\0" // IR(29295, 23) + "SPV_OPERAND_TYPE_DECORATION\0" // IR(29318, 28) + "Decorate\0" // IR(29346, 9) + "MemberDecorate\0" // IR(29355, 15) + "DecorationGroup\0" // IR(29370, 16) + "GroupDecorate\0" // IR(29386, 14) + "SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER\0" // IR(29400, 45) + "GroupMemberDecorate\0" // IR(29445, 20) + "VectorExtractDynamic\0" // IR(29465, 21) + "VectorInsertDynamic\0" // IR(29486, 20) + "VectorShuffle\0" // IR(29506, 14) + "CompositeConstruct\0" // IR(29520, 19) + "CompositeExtract\0" // IR(29539, 17) + "CompositeInsert\0" // IR(29556, 16) + "CopyObject\0" // IR(29572, 11) + "Transpose\0" // IR(29583, 10) + "SampledImage\0" // IR(29593, 13) + "SPV_OPERAND_TYPE_OPTIONAL_IMAGE\0" // IR(29606, 32) + "ImageSampleImplicitLod\0" // IR(29638, 23) + "SPV_OPERAND_TYPE_IMAGE\0" // IR(29661, 23) + "ImageSampleExplicitLod\0" // IR(29684, 23) + "ImageSampleDrefImplicitLod\0" // IR(29707, 27) + "ImageSampleDrefExplicitLod\0" // IR(29734, 27) + "ImageSampleProjImplicitLod\0" // IR(29761, 27) + "ImageSampleProjExplicitLod\0" // IR(29788, 27) + "ImageSampleProjDrefImplicitLod\0" // IR(29815, 31) + "ImageSampleProjDrefExplicitLod\0" // IR(29846, 31) + "ImageFetch\0" // IR(29877, 11) + "ImageGather\0" // IR(29888, 12) + "ImageDrefGather\0" // IR(29900, 16) + "ImageRead\0" // IR(29916, 10) + "ImageWrite\0" // IR(29926, 11) + "ImageQueryFormat\0" // IR(29937, 17) + "ImageQueryOrder\0" // IR(29954, 16) + "ImageQuerySizeLod\0" // IR(29970, 18) + "ImageQuerySize\0" // IR(29988, 15) + "ImageQueryLod\0" // IR(30003, 14) + "ImageQueryLevels\0" // IR(30017, 17) + "ImageQuerySamples\0" // IR(30034, 18) + "ConvertFToU\0" // IR(30052, 12) + "ConvertFToS\0" // IR(30064, 12) + "ConvertSToF\0" // IR(30076, 12) + "ConvertUToF\0" // IR(30088, 12) + "UConvert\0" // IR(30100, 9) + "SConvert\0" // IR(30109, 9) + "FConvert\0" // IR(30118, 9) + "QuantizeToF16\0" // IR(30127, 14) + "ConvertPtrToU\0" // IR(30141, 14) + "SatConvertSToU\0" // IR(30155, 15) + "SatConvertUToS\0" // IR(30170, 15) + "ConvertUToPtr\0" // IR(30185, 14) + "PtrCastToGeneric\0" // IR(30199, 17) + "GenericCastToPtr\0" // IR(30216, 17) + "GenericCastToPtrExplicit\0" // IR(30233, 25) + "Bitcast\0" // IR(30258, 8) + "SNegate\0" // IR(30266, 8) + "FNegate\0" // IR(30274, 8) + "IAdd\0" // IR(30282, 5) + "FAdd\0" // IR(30287, 5) + "ISub\0" // IR(30292, 5) + "FSub\0" // IR(30297, 5) + "IMul\0" // IR(30302, 5) + "FMul\0" // IR(30307, 5) + "UDiv\0" // IR(30312, 5) + "SDiv\0" // IR(30317, 5) + "FDiv\0" // IR(30322, 5) + "UMod\0" // IR(30327, 5) + "SRem\0" // IR(30332, 5) + "SMod\0" // IR(30337, 5) + "FRem\0" // IR(30342, 5) + "FMod\0" // IR(30347, 5) + "VectorTimesScalar\0" // IR(30352, 18) + "MatrixTimesScalar\0" // IR(30370, 18) + "VectorTimesMatrix\0" // IR(30388, 18) + "MatrixTimesVector\0" // IR(30406, 18) + "MatrixTimesMatrix\0" // IR(30424, 18) + "OuterProduct\0" // IR(30442, 13) + "Dot\0" // IR(30455, 4) + "IAddCarry\0" // IR(30459, 10) + "ISubBorrow\0" // IR(30469, 11) + "UMulExtended\0" // IR(30480, 13) + "SMulExtended\0" // IR(30493, 13) + "Any\0" // IR(30506, 4) + "All\0" // IR(30510, 4) + "IsNan\0" // IR(30514, 6) + "IsInf\0" // IR(30520, 6) + "IsFinite\0" // IR(30526, 9) + "IsNormal\0" // IR(30535, 9) + "SignBitSet\0" // IR(30544, 11) + "LessOrGreater\0" // IR(30555, 14) + "Ordered\0" // IR(30569, 8) + "Unordered\0" // IR(30577, 10) + "LogicalEqual\0" // IR(30587, 13) + "LogicalNotEqual\0" // IR(30600, 16) + "LogicalOr\0" // IR(30616, 10) + "LogicalAnd\0" // IR(30626, 11) + "LogicalNot\0" // IR(30637, 11) + "Select\0" // IR(30648, 7) + "IEqual\0" // IR(30655, 7) + "INotEqual\0" // IR(30662, 10) + "UGreaterThan\0" // IR(30672, 13) + "SGreaterThan\0" // IR(30685, 13) + "UGreaterThanEqual\0" // IR(30698, 18) + "SGreaterThanEqual\0" // IR(30716, 18) + "ULessThan\0" // IR(30734, 10) + "SLessThan\0" // IR(30744, 10) + "ULessThanEqual\0" // IR(30754, 15) + "SLessThanEqual\0" // IR(30769, 15) + "FOrdEqual\0" // IR(30784, 10) + "FUnordEqual\0" // IR(30794, 12) + "FOrdNotEqual\0" // IR(30806, 13) + "FUnordNotEqual\0" // IR(30819, 15) + "FOrdLessThan\0" // IR(30834, 13) + "FUnordLessThan\0" // IR(30847, 15) + "FOrdGreaterThan\0" // IR(30862, 16) + "FUnordGreaterThan\0" // IR(30878, 18) + "FOrdLessThanEqual\0" // IR(30896, 18) + "FUnordLessThanEqual\0" // IR(30914, 20) + "FOrdGreaterThanEqual\0" // IR(30934, 21) + "FUnordGreaterThanEqual\0" // IR(30955, 23) + "ShiftRightLogical\0" // IR(30978, 18) + "ShiftRightArithmetic\0" // IR(30996, 21) + "ShiftLeftLogical\0" // IR(31017, 17) + "BitwiseOr\0" // IR(31034, 10) + "BitwiseXor\0" // IR(31044, 11) + "BitwiseAnd\0" // IR(31055, 11) + "Not\0" // IR(31066, 4) + "BitFieldInsert\0" // IR(31070, 15) + "BitFieldSExtract\0" // IR(31085, 17) + "BitFieldUExtract\0" // IR(31102, 17) + "BitReverse\0" // IR(31119, 11) + "BitCount\0" // IR(31130, 9) + "DPdx\0" // IR(31139, 5) + "DPdy\0" // IR(31144, 5) + "Fwidth\0" // IR(31149, 7) + "DPdxFine\0" // IR(31156, 9) + "DPdyFine\0" // IR(31165, 9) + "FwidthFine\0" // IR(31174, 11) + "DPdxCoarse\0" // IR(31185, 11) + "DPdyCoarse\0" // IR(31196, 11) + "FwidthCoarse\0" // IR(31207, 13) + "EmitVertex\0" // IR(31220, 11) + "EndPrimitive\0" // IR(31231, 13) + "EmitStreamVertex\0" // IR(31244, 17) + "EndStreamPrimitive\0" // IR(31261, 19) + "SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID\0" // IR(31280, 37) + "ControlBarrier\0" // IR(31317, 15) + "MemoryBarrier\0" // IR(31332, 14) + "AtomicLoad\0" // IR(31346, 11) + "AtomicStore\0" // IR(31357, 12) + "AtomicExchange\0" // IR(31369, 15) + "AtomicCompareExchange\0" // IR(31384, 22) + "AtomicCompareExchangeWeak\0" // IR(31406, 26) + "AtomicIIncrement\0" // IR(31432, 17) + "AtomicIDecrement\0" // IR(31449, 17) + "AtomicIAdd\0" // IR(31466, 11) + "AtomicISub\0" // IR(31477, 11) + "AtomicSMin\0" // IR(31488, 11) + "AtomicUMin\0" // IR(31499, 11) + "AtomicSMax\0" // IR(31510, 11) + "AtomicUMax\0" // IR(31521, 11) + "AtomicAnd\0" // IR(31532, 10) + "AtomicOr\0" // IR(31542, 9) + "AtomicXor\0" // IR(31551, 10) + "Phi\0" // IR(31561, 4) + "SPV_OPERAND_TYPE_LOOP_CONTROL\0" // IR(31565, 30) + "LoopMerge\0" // IR(31595, 10) + "SPV_OPERAND_TYPE_SELECTION_CONTROL\0" // IR(31605, 35) + "SelectionMerge\0" // IR(31640, 15) + "Label\0" // IR(31655, 6) + "Branch\0" // IR(31661, 7) + "BranchConditional\0" // IR(31668, 18) + "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER_ID\0" // IR(31686, 45) + "Switch\0" // IR(31731, 7) + "Kill\0" // IR(31738, 5) + "Return\0" // IR(31743, 7) + "ReturnValue\0" // IR(31750, 12) + "Unreachable\0" // IR(31762, 12) + "LifetimeStart\0" // IR(31774, 14) + "LifetimeStop\0" // IR(31788, 13) + "GroupAsyncCopy\0" // IR(31801, 15) + "GroupWaitEvents\0" // IR(31816, 16) + "GroupAll\0" // IR(31832, 9) + "GroupAny\0" // IR(31841, 9) + "GroupBroadcast\0" // IR(31850, 15) + "SPV_OPERAND_TYPE_GROUP_OPERATION\0" // IR(31865, 33) + "GroupIAdd\0" // IR(31898, 10) + "GroupFAdd\0" // IR(31908, 10) + "GroupFMin\0" // IR(31918, 10) + "GroupUMin\0" // IR(31928, 10) + "GroupSMin\0" // IR(31938, 10) + "GroupFMax\0" // IR(31948, 10) + "GroupUMax\0" // IR(31958, 10) + "GroupSMax\0" // IR(31968, 10) + "ReadPipe\0" // IR(31978, 9) + "WritePipe\0" // IR(31987, 10) + "ReservedReadPipe\0" // IR(31997, 17) + "ReservedWritePipe\0" // IR(32014, 18) + "ReserveReadPipePackets\0" // IR(32032, 23) + "ReserveWritePipePackets\0" // IR(32055, 24) + "CommitReadPipe\0" // IR(32079, 15) + "CommitWritePipe\0" // IR(32094, 16) + "IsValidReserveId\0" // IR(32110, 17) + "GetNumPipePackets\0" // IR(32127, 18) + "GetMaxPipePackets\0" // IR(32145, 18) + "GroupReserveReadPipePackets\0" // IR(32163, 28) + "GroupReserveWritePipePackets\0" // IR(32191, 29) + "GroupCommitReadPipe\0" // IR(32220, 20) + "GroupCommitWritePipe\0" // IR(32240, 21) + "EnqueueMarker\0" // IR(32261, 14) + "EnqueueKernel\0" // IR(32275, 14) + "GetKernelNDrangeSubGroupCount\0" // IR(32289, 30) + "GetKernelNDrangeMaxSubGroupSize\0" // IR(32319, 32) + "GetKernelWorkGroupSize\0" // IR(32351, 23) + "GetKernelPreferredWorkGroupSizeMultiple\0" // IR(32374, 40) + "RetainEvent\0" // IR(32414, 12) + "ReleaseEvent\0" // IR(32426, 13) + "CreateUserEvent\0" // IR(32439, 16) + "IsValidEvent\0" // IR(32455, 13) + "SetUserEventStatus\0" // IR(32468, 19) + "CaptureEventProfilingInfo\0" // IR(32487, 26) + "GetDefaultQueue\0" // IR(32513, 16) + "BuildNDRange\0" // IR(32529, 13) + "ImageSparseSampleImplicitLod\0" // IR(32542, 29) + "ImageSparseSampleExplicitLod\0" // IR(32571, 29) + "ImageSparseSampleDrefImplicitLod\0" // IR(32600, 33) + "ImageSparseSampleDrefExplicitLod\0" // IR(32633, 33) + "ImageSparseSampleProjImplicitLod\0" // IR(32666, 33) + "ImageSparseSampleProjExplicitLod\0" // IR(32699, 33) + "ImageSparseSampleProjDrefImplicitLod\0" // IR(32732, 37) + "ImageSparseSampleProjDrefExplicitLod\0" // IR(32769, 37) + "ImageSparseFetch\0" // IR(32806, 17) + "ImageSparseGather\0" // IR(32823, 18) + "ImageSparseDrefGather\0" // IR(32841, 22) + "ImageSparseTexelsResident\0" // IR(32863, 26) + "NoLine\0" // IR(32889, 7) + "AtomicFlagTestAndSet\0" // IR(32896, 21) + "AtomicFlagClear\0" // IR(32917, 16) + "ImageSparseRead\0" // IR(32933, 16) + "SizeOf\0" // IR(32949, 7) + "TypePipeStorage\0" // IR(32956, 16) + "ConstantPipeStorage\0" // IR(32972, 20) + "CreatePipeFromPipeStorage\0" // IR(32992, 26) + "GetKernelLocalSizeForSubgroupCount\0" // IR(33018, 35) + "GetKernelMaxNumSubgroups\0" // IR(33053, 25) + "TypeNamedBarrier\0" // IR(33078, 17) + "NamedBarrierInitialize\0" // IR(33095, 23) + "MemoryNamedBarrier\0" // IR(33118, 19) + "ModuleProcessed\0" // IR(33137, 16) + "ExecutionModeId\0" // IR(33153, 16) + "DecorateId\0" // IR(33169, 11) + "GroupNonUniformElect\0" // IR(33180, 21) + "GroupNonUniformAll\0" // IR(33201, 19) + "GroupNonUniformAny\0" // IR(33220, 19) + "GroupNonUniformAllEqual\0" // IR(33239, 24) + "GroupNonUniformBroadcast\0" // IR(33263, 25) + "GroupNonUniformBroadcastFirst\0" // IR(33288, 30) + "GroupNonUniformInverseBallot\0" // IR(33318, 29) + "GroupNonUniformBallotBitExtract\0" // IR(33347, 32) + "GroupNonUniformBallotBitCount\0" // IR(33379, 30) + "GroupNonUniformBallotFindLSB\0" // IR(33409, 29) + "GroupNonUniformBallotFindMSB\0" // IR(33438, 29) + "GroupNonUniformShuffleXor\0" // IR(33467, 26) + "GroupNonUniformShuffleUp\0" // IR(33493, 25) + "GroupNonUniformShuffleDown\0" // IR(33518, 27) + "GroupNonUniformIAdd\0" // IR(33545, 20) + "GroupNonUniformFAdd\0" // IR(33565, 20) + "GroupNonUniformIMul\0" // IR(33585, 20) + "GroupNonUniformFMul\0" // IR(33605, 20) + "GroupNonUniformSMin\0" // IR(33625, 20) + "GroupNonUniformUMin\0" // IR(33645, 20) + "GroupNonUniformFMin\0" // IR(33665, 20) + "GroupNonUniformSMax\0" // IR(33685, 20) + "GroupNonUniformUMax\0" // IR(33705, 20) + "GroupNonUniformFMax\0" // IR(33725, 20) + "GroupNonUniformBitwiseAnd\0" // IR(33745, 26) + "GroupNonUniformBitwiseOr\0" // IR(33771, 25) + "GroupNonUniformBitwiseXor\0" // IR(33796, 26) + "GroupNonUniformLogicalAnd\0" // IR(33822, 26) + "GroupNonUniformLogicalOr\0" // IR(33848, 25) + "GroupNonUniformLogicalXor\0" // IR(33873, 26) + "GroupNonUniformQuadBroadcast\0" // IR(33899, 29) + "GroupNonUniformQuadSwap\0" // IR(33928, 24) + "CopyLogical\0" // IR(33952, 12) + "PtrEqual\0" // IR(33964, 9) + "PtrNotEqual\0" // IR(33973, 12) + "PtrDiff\0" // IR(33985, 8) + "ColorAttachmentReadEXT\0" // IR(33993, 23) + "DepthAttachmentReadEXT\0" // IR(34016, 23) + "StencilAttachmentReadEXT\0" // IR(34039, 25) + "TypeTensorARM\0" // IR(34064, 14) + "SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS\0" // IR(34078, 42) + "TensorReadARM\0" // IR(34120, 14) + "TensorWriteARM\0" // IR(34134, 15) + "TensorQuerySizeARM\0" // IR(34149, 19) + "GraphConstantARM\0" // IR(34168, 17) + "GraphEntryPointARM\0" // IR(34185, 19) + "GraphInputARM\0" // IR(34204, 14) + "GraphSetOutputARM\0" // IR(34218, 18) + "GraphEndARM\0" // IR(34236, 12) + "TypeGraphARM\0" // IR(34248, 13) + "TerminateInvocation\0" // IR(34261, 20) + "TypeUntypedPointerKHR\0" // IR(34281, 22) + "UntypedVariableKHR\0" // IR(34303, 19) + "UntypedAccessChainKHR\0" // IR(34322, 22) + "UntypedInBoundsAccessChainKHR\0" // IR(34344, 30) + "SubgroupFirstInvocationKHR\0" // IR(34374, 27) + "UntypedPtrAccessChainKHR\0" // IR(34401, 25) + "UntypedInBoundsPtrAccessChainKHR\0" // IR(34426, 33) + "UntypedArrayLengthKHR\0" // IR(34459, 22) + "UntypedPrefetchKHR\0" // IR(34481, 19) + "FmaKHR\0" // IR(34500, 7) + "SubgroupAllKHR\0" // IR(34507, 15) + "SubgroupAnyKHR\0" // IR(34522, 15) + "SubgroupAllEqualKHR\0" // IR(34537, 20) + "SubgroupReadInvocationKHR\0" // IR(34557, 26) + "ExtInstWithForwardRefsKHR\0" // IR(34583, 26) + "UntypedGroupAsyncCopyKHR\0" // IR(34609, 25) + "TraceRayKHR\0" // IR(34634, 12) + "ExecuteCallableKHR\0" // IR(34646, 19) + "ConvertUToAccelerationStructureKHR\0" // IR(34665, 35) + "IgnoreIntersectionKHR\0" // IR(34700, 22) + "TerminateRayKHR\0" // IR(34722, 16) + "SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT\0" // IR(34738, 47) + "SDot\0" // IR(34785, 5) + "SDotKHR\0" // IR(34790, 8) + "UDot\0" // IR(34798, 5) + "UDotKHR\0" // IR(34803, 8) + "SUDot\0" // IR(34811, 6) + "SUDotKHR\0" // IR(34817, 9) + "SDotAccSat\0" // IR(34826, 11) + "SDotAccSatKHR\0" // IR(34837, 14) + "UDotAccSat\0" // IR(34851, 11) + "UDotAccSatKHR\0" // IR(34862, 14) + "SUDotAccSat\0" // IR(34876, 12) + "SUDotAccSatKHR\0" // IR(34888, 15) + "TypeCooperativeMatrixKHR\0" // IR(34903, 25) + "CooperativeMatrixLoadKHR\0" // IR(34928, 25) + "CooperativeMatrixStoreKHR\0" // IR(34953, 26) + "SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS\0" // IR(34979, 54) + "CooperativeMatrixMulAddKHR\0" // IR(35033, 27) + "CooperativeMatrixLengthKHR\0" // IR(35060, 27) + "ConstantCompositeReplicateEXT\0" // IR(35087, 30) + "SpecConstantCompositeReplicateEXT\0" // IR(35117, 34) + "CompositeConstructReplicateEXT\0" // IR(35151, 31) + "TypeRayQueryKHR\0" // IR(35182, 16) + "RayQueryInitializeKHR\0" // IR(35198, 22) + "RayQueryTerminateKHR\0" // IR(35220, 21) + "RayQueryGenerateIntersectionKHR\0" // IR(35241, 32) + "RayQueryConfirmIntersectionKHR\0" // IR(35273, 31) + "RayQueryProceedKHR\0" // IR(35304, 19) + "RayQueryGetIntersectionTypeKHR\0" // IR(35323, 31) + "ImageSampleWeightedQCOM\0" // IR(35354, 24) + "ImageBoxFilterQCOM\0" // IR(35378, 19) + "ImageBlockMatchSSDQCOM\0" // IR(35397, 23) + "ImageBlockMatchSADQCOM\0" // IR(35420, 23) + "BitCastArrayQCOM\0" // IR(35443, 17) + "ImageBlockMatchWindowSSDQCOM\0" // IR(35460, 29) + "ImageBlockMatchWindowSADQCOM\0" // IR(35489, 29) + "ImageBlockMatchGatherSSDQCOM\0" // IR(35518, 29) + "ImageBlockMatchGatherSADQCOM\0" // IR(35547, 29) + "CompositeConstructCoopMatQCOM\0" // IR(35576, 30) + "CompositeExtractCoopMatQCOM\0" // IR(35606, 28) + "ExtractSubArrayQCOM\0" // IR(35634, 20) + "GroupIAddNonUniformAMD\0" // IR(35654, 23) + "GroupFAddNonUniformAMD\0" // IR(35677, 23) + "GroupFMinNonUniformAMD\0" // IR(35700, 23) + "GroupUMinNonUniformAMD\0" // IR(35723, 23) + "GroupSMinNonUniformAMD\0" // IR(35746, 23) + "GroupFMaxNonUniformAMD\0" // IR(35769, 23) + "GroupUMaxNonUniformAMD\0" // IR(35792, 23) + "GroupSMaxNonUniformAMD\0" // IR(35815, 23) + "FragmentMaskFetchAMD\0" // IR(35838, 21) + "FragmentFetchAMD\0" // IR(35859, 17) + "ReadClockKHR\0" // IR(35876, 13) + "AllocateNodePayloadsAMDX\0" // IR(35889, 25) + "EnqueueNodePayloadsAMDX\0" // IR(35914, 24) + "TypeNodePayloadArrayAMDX\0" // IR(35938, 25) + "FinishWritingNodePayloadAMDX\0" // IR(35963, 29) + "NodePayloadArrayLengthAMDX\0" // IR(35992, 27) + "IsNodePayloadValidAMDX\0" // IR(36019, 23) + "ConstantStringAMDX\0" // IR(36042, 19) + "SpecConstantStringAMDX\0" // IR(36061, 23) + "GroupNonUniformQuadAllKHR\0" // IR(36084, 26) + "GroupNonUniformQuadAnyKHR\0" // IR(36110, 26) + "HitObjectRecordHitMotionNV\0" // IR(36136, 27) + "HitObjectRecordHitWithIndexMotionNV\0" // IR(36163, 36) + "HitObjectRecordMissMotionNV\0" // IR(36199, 28) + "HitObjectGetWorldToObjectNV\0" // IR(36227, 28) + "HitObjectGetObjectToWorldNV\0" // IR(36255, 28) + "HitObjectGetObjectRayDirectionNV\0" // IR(36283, 33) + "HitObjectGetObjectRayOriginNV\0" // IR(36316, 30) + "HitObjectTraceRayMotionNV\0" // IR(36346, 26) + "HitObjectGetShaderRecordBufferHandleNV\0" // IR(36372, 39) + "HitObjectGetShaderBindingTableRecordIndexNV\0" // IR(36411, 44) + "HitObjectRecordEmptyNV\0" // IR(36455, 23) + "HitObjectTraceRayNV\0" // IR(36478, 20) + "HitObjectRecordHitNV\0" // IR(36498, 21) + "HitObjectRecordHitWithIndexNV\0" // IR(36519, 30) + "HitObjectRecordMissNV\0" // IR(36549, 22) + "HitObjectExecuteShaderNV\0" // IR(36571, 25) + "HitObjectGetCurrentTimeNV\0" // IR(36596, 26) + "HitObjectGetAttributesNV\0" // IR(36622, 25) + "HitObjectGetHitKindNV\0" // IR(36647, 22) + "HitObjectGetPrimitiveIndexNV\0" // IR(36669, 29) + "HitObjectGetGeometryIndexNV\0" // IR(36698, 28) + "HitObjectGetInstanceIdNV\0" // IR(36726, 25) + "HitObjectGetInstanceCustomIndexNV\0" // IR(36751, 34) + "HitObjectGetWorldRayDirectionNV\0" // IR(36785, 32) + "HitObjectGetWorldRayOriginNV\0" // IR(36817, 29) + "HitObjectGetRayTMaxNV\0" // IR(36846, 22) + "HitObjectGetRayTMinNV\0" // IR(36868, 22) + "HitObjectIsEmptyNV\0" // IR(36890, 19) + "HitObjectIsHitNV\0" // IR(36909, 17) + "HitObjectIsMissNV\0" // IR(36926, 18) + "ReorderThreadWithHitObjectNV\0" // IR(36944, 29) + "ReorderThreadWithHintNV\0" // IR(36973, 24) + "TypeHitObjectNV\0" // IR(36997, 16) + "ImageSampleFootprintNV\0" // IR(37013, 23) + "TypeCooperativeVectorNV\0" // IR(37036, 24) + "CooperativeVectorMatrixMulNV\0" // IR(37060, 29) + "CooperativeVectorOuterProductAccumulateNV\0" // IR(37089, 42) + "CooperativeVectorReduceSumAccumulateNV\0" // IR(37131, 39) + "CooperativeVectorMatrixMulAddNV\0" // IR(37170, 32) + "CooperativeMatrixConvertNV\0" // IR(37202, 27) + "EmitMeshTasksEXT\0" // IR(37229, 17) + "SetMeshOutputsEXT\0" // IR(37246, 18) + "GroupNonUniformPartitionNV\0" // IR(37264, 27) + "WritePackedPrimitiveIndices4x8NV\0" // IR(37291, 33) + "FetchMicroTriangleVertexPositionNV\0" // IR(37324, 35) + "FetchMicroTriangleVertexBarycentricNV\0" // IR(37359, 38) + "CooperativeVectorLoadNV\0" // IR(37397, 24) + "CooperativeVectorStoreNV\0" // IR(37421, 25) + "HitObjectRecordFromQueryEXT\0" // IR(37446, 28) + "HitObjectRecordMissEXT\0" // IR(37474, 23) + "HitObjectRecordMissMotionEXT\0" // IR(37497, 29) + "HitObjectGetIntersectionTriangleVertexPositionsEXT\0" // IR(37526, 51) + "HitObjectGetRayFlagsEXT\0" // IR(37577, 24) + "HitObjectSetShaderBindingTableRecordIndexEXT\0" // IR(37601, 45) + "HitObjectReorderExecuteShaderEXT\0" // IR(37646, 33) + "HitObjectTraceReorderExecuteEXT\0" // IR(37679, 32) + "HitObjectTraceMotionReorderExecuteEXT\0" // IR(37711, 38) + "TypeHitObjectEXT\0" // IR(37749, 17) + "ReorderThreadWithHintEXT\0" // IR(37766, 25) + "ReorderThreadWithHitObjectEXT\0" // IR(37791, 30) + "HitObjectTraceRayEXT\0" // IR(37821, 21) + "HitObjectTraceRayMotionEXT\0" // IR(37842, 27) + "HitObjectRecordEmptyEXT\0" // IR(37869, 24) + "HitObjectExecuteShaderEXT\0" // IR(37893, 26) + "HitObjectGetCurrentTimeEXT\0" // IR(37919, 27) + "HitObjectGetAttributesEXT\0" // IR(37946, 26) + "HitObjectGetHitKindEXT\0" // IR(37972, 23) + "HitObjectGetPrimitiveIndexEXT\0" // IR(37995, 30) + "HitObjectGetGeometryIndexEXT\0" // IR(38025, 29) + "HitObjectGetInstanceIdEXT\0" // IR(38054, 26) + "HitObjectGetInstanceCustomIndexEXT\0" // IR(38080, 35) + "HitObjectGetObjectRayOriginEXT\0" // IR(38115, 31) + "HitObjectGetObjectRayDirectionEXT\0" // IR(38146, 34) + "HitObjectGetWorldRayDirectionEXT\0" // IR(38180, 33) + "HitObjectGetWorldRayOriginEXT\0" // IR(38213, 30) + "HitObjectGetObjectToWorldEXT\0" // IR(38243, 29) + "HitObjectGetWorldToObjectEXT\0" // IR(38272, 29) + "HitObjectGetRayTMaxEXT\0" // IR(38301, 23) + "ReportIntersectionKHR\0" // IR(38324, 22) + "ReportIntersectionNV\0" // IR(38346, 21) + "IgnoreIntersectionNV\0" // IR(38367, 21) + "TerminateRayNV\0" // IR(38388, 15) + "TraceNV\0" // IR(38403, 8) + "TraceMotionNV\0" // IR(38411, 14) + "TraceRayMotionNV\0" // IR(38425, 17) + "RayQueryGetIntersectionTriangleVertexPositionsKHR\0" // IR(38442, 50) + "TypeAccelerationStructureKHR\0" // IR(38492, 29) + "TypeAccelerationStructureNV\0" // IR(38521, 28) + "ExecuteCallableNV\0" // IR(38549, 18) + "RayQueryGetIntersectionClusterIdNV\0" // IR(38567, 35) + "RayQueryGetClusterIdNV\0" // IR(38602, 23) + "HitObjectGetClusterIdNV\0" // IR(38625, 24) + "HitObjectGetRayTMinEXT\0" // IR(38649, 23) + "HitObjectGetShaderBindingTableRecordIndexEXT\0" // IR(38672, 45) + "HitObjectGetShaderRecordBufferHandleEXT\0" // IR(38717, 40) + "HitObjectIsEmptyEXT\0" // IR(38757, 20) + "HitObjectIsHitEXT\0" // IR(38777, 18) + "HitObjectIsMissEXT\0" // IR(38795, 19) + "TypeCooperativeMatrixNV\0" // IR(38814, 24) + "CooperativeMatrixLoadNV\0" // IR(38838, 24) + "CooperativeMatrixStoreNV\0" // IR(38862, 25) + "CooperativeMatrixMulAddNV\0" // IR(38887, 26) + "CooperativeMatrixLengthNV\0" // IR(38913, 26) + "BeginInvocationInterlockEXT\0" // IR(38939, 28) + "EndInvocationInterlockEXT\0" // IR(38967, 26) + "SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE\0" // IR(38993, 43) + "CooperativeMatrixReduceNV\0" // IR(39036, 26) + "SPV_OPERAND_TYPE_MEMORY_ACCESS\0" // IR(39062, 31) + "SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS\0" // IR(39093, 44) + "CooperativeMatrixLoadTensorNV\0" // IR(39137, 30) + "CooperativeMatrixStoreTensorNV\0" // IR(39167, 31) + "CooperativeMatrixPerElementOpNV\0" // IR(39198, 32) + "TypeTensorLayoutNV\0" // IR(39230, 19) + "TypeTensorViewNV\0" // IR(39249, 17) + "CreateTensorLayoutNV\0" // IR(39266, 21) + "TensorLayoutSetDimensionNV\0" // IR(39287, 27) + "TensorLayoutSetStrideNV\0" // IR(39314, 24) + "TensorLayoutSliceNV\0" // IR(39338, 20) + "TensorLayoutSetClampValueNV\0" // IR(39358, 28) + "CreateTensorViewNV\0" // IR(39386, 19) + "TensorViewSetDimensionNV\0" // IR(39405, 25) + "TensorViewSetStrideNV\0" // IR(39430, 22) + "IsHelperInvocationEXT\0" // IR(39452, 22) + "TensorViewSetClipNV\0" // IR(39474, 20) + "TensorLayoutSetBlockSizeNV\0" // IR(39494, 27) + "CooperativeMatrixTransposeNV\0" // IR(39521, 29) + "ConvertUToImageNV\0" // IR(39550, 18) + "ConvertUToSamplerNV\0" // IR(39568, 20) + "ConvertImageToUNV\0" // IR(39588, 18) + "ConvertSamplerToUNV\0" // IR(39606, 20) + "ConvertUToSampledImageNV\0" // IR(39626, 25) + "ConvertSampledImageToUNV\0" // IR(39651, 25) + "SamplerImageAddressingModeNV\0" // IR(39676, 29) + "SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS\0" // IR(39705, 52) + "RawAccessChainNV\0" // IR(39757, 17) + "RayQueryGetIntersectionSpherePositionNV\0" // IR(39774, 40) + "RayQueryGetIntersectionSphereRadiusNV\0" // IR(39814, 38) + "RayQueryGetIntersectionLSSPositionsNV\0" // IR(39852, 38) + "RayQueryGetIntersectionLSSRadiiNV\0" // IR(39890, 34) + "RayQueryGetIntersectionLSSHitValueNV\0" // IR(39924, 37) + "HitObjectGetSpherePositionNV\0" // IR(39961, 29) + "HitObjectGetSphereRadiusNV\0" // IR(39990, 27) + "HitObjectGetLSSPositionsNV\0" // IR(40017, 27) + "HitObjectGetLSSRadiiNV\0" // IR(40044, 23) + "HitObjectIsSphereHitNV\0" // IR(40067, 23) + "HitObjectIsLSSHitNV\0" // IR(40090, 20) + "RayQueryIsSphereHitNV\0" // IR(40110, 22) + "RayQueryIsLSSHitNV\0" // IR(40132, 19) + "SubgroupShuffleDownINTEL\0" // IR(40151, 25) + "SubgroupShuffleUpINTEL\0" // IR(40176, 23) + "SubgroupShuffleXorINTEL\0" // IR(40199, 24) + "SubgroupBlockReadINTEL\0" // IR(40223, 23) + "SubgroupBlockWriteINTEL\0" // IR(40246, 24) + "SubgroupImageBlockReadINTEL\0" // IR(40270, 28) + "SubgroupImageBlockWriteINTEL\0" // IR(40298, 29) + "SubgroupImageMediaBlockReadINTEL\0" // IR(40327, 33) + "SubgroupImageMediaBlockWriteINTEL\0" // IR(40360, 34) + "UCountLeadingZerosINTEL\0" // IR(40394, 24) + "UCountTrailingZerosINTEL\0" // IR(40418, 25) + "AbsISubINTEL\0" // IR(40443, 13) + "AbsUSubINTEL\0" // IR(40456, 13) + "IAddSatINTEL\0" // IR(40469, 13) + "UAddSatINTEL\0" // IR(40482, 13) + "IAverageINTEL\0" // IR(40495, 14) + "UAverageINTEL\0" // IR(40509, 14) + "IAverageRoundedINTEL\0" // IR(40523, 21) + "UAverageRoundedINTEL\0" // IR(40544, 21) + "ISubSatINTEL\0" // IR(40565, 13) + "USubSatINTEL\0" // IR(40578, 13) + "IMul32x16INTEL\0" // IR(40591, 15) + "UMul32x16INTEL\0" // IR(40606, 15) + "ConstantFunctionPointerINTEL\0" // IR(40621, 29) + "FunctionPointerCallINTEL\0" // IR(40650, 25) + "AsmTargetINTEL\0" // IR(40675, 15) + "AsmCallINTEL\0" // IR(40690, 13) + "AtomicFMinEXT\0" // IR(40703, 14) + "AtomicFMaxEXT\0" // IR(40717, 14) + "AssumeTrueKHR\0" // IR(40731, 14) + "ExpectKHR\0" // IR(40745, 10) + "DecorateString\0" // IR(40755, 15) + "DecorateStringGOOGLE\0" // IR(40770, 21) + "MemberDecorateString\0" // IR(40791, 21) + "MemberDecorateStringGOOGLE\0" // IR(40812, 27) + "VmeImageINTEL\0" // IR(40839, 14) + "TypeVmeImageINTEL\0" // IR(40853, 18) + "TypeAvcImePayloadINTEL\0" // IR(40871, 23) + "TypeAvcRefPayloadINTEL\0" // IR(40894, 23) + "TypeAvcSicPayloadINTEL\0" // IR(40917, 23) + "TypeAvcMcePayloadINTEL\0" // IR(40940, 23) + "TypeAvcMceResultINTEL\0" // IR(40963, 22) + "TypeAvcImeResultINTEL\0" // IR(40985, 22) + "TypeAvcImeResultSingleReferenceStreamoutINTEL\0" // IR(41007, 46) + "TypeAvcImeResultDualReferenceStreamoutINTEL\0" // IR(41053, 44) + "TypeAvcImeSingleReferenceStreaminINTEL\0" // IR(41097, 39) + "TypeAvcImeDualReferenceStreaminINTEL\0" // IR(41136, 37) + "TypeAvcRefResultINTEL\0" // IR(41173, 22) + "TypeAvcSicResultINTEL\0" // IR(41195, 22) + "SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL\0" // IR(41217, 60) + "SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL\0" // IR(41277, 53) + "SubgroupAvcMceGetDefaultInterShapePenaltyINTEL\0" // IR(41330, 47) + "SubgroupAvcMceSetInterShapePenaltyINTEL\0" // IR(41377, 40) + "SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL\0" // IR(41417, 51) + "SubgroupAvcMceSetInterDirectionPenaltyINTEL\0" // IR(41468, 44) + "SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL\0" // IR(41512, 51) + "SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL\0" // IR(41563, 56) + "SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL\0" // IR(41619, 50) + "SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL\0" // IR(41669, 52) + "SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL\0" // IR(41721, 49) + "SubgroupAvcMceSetMotionVectorCostFunctionINTEL\0" // IR(41770, 47) + "SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL\0" // IR(41817, 50) + "SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL\0" // IR(41867, 51) + "SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL\0" // IR(41918, 56) + "SubgroupAvcMceSetAcOnlyHaarINTEL\0" // IR(41974, 33) + "SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL\0" // IR(42007, 52) + "SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL\0" // IR(42059, 61) + "SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL\0" // IR(42120, 61) + "SubgroupAvcMceConvertToImePayloadINTEL\0" // IR(42181, 39) + "SubgroupAvcMceConvertToImeResultINTEL\0" // IR(42220, 38) + "SubgroupAvcMceConvertToRefPayloadINTEL\0" // IR(42258, 39) + "SubgroupAvcMceConvertToRefResultINTEL\0" // IR(42297, 38) + "SubgroupAvcMceConvertToSicPayloadINTEL\0" // IR(42335, 39) + "SubgroupAvcMceConvertToSicResultINTEL\0" // IR(42374, 38) + "SubgroupAvcMceGetMotionVectorsINTEL\0" // IR(42412, 36) + "SubgroupAvcMceGetInterDistortionsINTEL\0" // IR(42448, 39) + "SubgroupAvcMceGetBestInterDistortionsINTEL\0" // IR(42487, 43) + "SubgroupAvcMceGetInterMajorShapeINTEL\0" // IR(42530, 38) + "SubgroupAvcMceGetInterMinorShapeINTEL\0" // IR(42568, 38) + "SubgroupAvcMceGetInterDirectionsINTEL\0" // IR(42606, 38) + "SubgroupAvcMceGetInterMotionVectorCountINTEL\0" // IR(42644, 45) + "SubgroupAvcMceGetInterReferenceIdsINTEL\0" // IR(42689, 40) + "SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL\0" // IR(42729, 62) + "SubgroupAvcImeInitializeINTEL\0" // IR(42791, 30) + "SubgroupAvcImeSetSingleReferenceINTEL\0" // IR(42821, 38) + "SubgroupAvcImeSetDualReferenceINTEL\0" // IR(42859, 36) + "SubgroupAvcImeRefWindowSizeINTEL\0" // IR(42895, 33) + "SubgroupAvcImeAdjustRefOffsetINTEL\0" // IR(42928, 35) + "SubgroupAvcImeConvertToMcePayloadINTEL\0" // IR(42963, 39) + "SubgroupAvcImeSetMaxMotionVectorCountINTEL\0" // IR(43002, 43) + "SubgroupAvcImeSetUnidirectionalMixDisableINTEL\0" // IR(43045, 47) + "SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL\0" // IR(43092, 54) + "SubgroupAvcImeSetWeightedSadINTEL\0" // IR(43146, 34) + "SubgroupAvcImeEvaluateWithSingleReferenceINTEL\0" // IR(43180, 47) + "SubgroupAvcImeEvaluateWithDualReferenceINTEL\0" // IR(43227, 45) + "SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL\0" // IR(43272, 55) + "SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL\0" // IR(43327, 53) + "SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL\0" // IR(43380, 56) + "SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL\0" // IR(43436, 54) + "SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL\0" // IR(43490, 58) + "SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL\0" // IR(43548, 56) + "SubgroupAvcImeConvertToMceResultINTEL\0" // IR(43604, 38) + "SubgroupAvcImeGetSingleReferenceStreaminINTEL\0" // IR(43642, 46) + "SubgroupAvcImeGetDualReferenceStreaminINTEL\0" // IR(43688, 44) + "SubgroupAvcImeStripSingleReferenceStreamoutINTEL\0" // IR(43732, 49) + "SubgroupAvcImeStripDualReferenceStreamoutINTEL\0" // IR(43781, 47) + "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL\0" // IR(43828, 70) + "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL\0" // IR(43898, 68) + "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL\0" // IR(43966, 69) + "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL\0" // IR(44035, 68) + "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL\0" // IR(44103, 66) + "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL\0" // IR(44169, 67) + "SubgroupAvcImeGetBorderReachedINTEL\0" // IR(44236, 36) + "SubgroupAvcImeGetTruncatedSearchIndicationINTEL\0" // IR(44272, 48) + "SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL\0" // IR(44320, 59) + "SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL\0" // IR(44379, 58) + "SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL\0" // IR(44437, 56) + "SubgroupAvcFmeInitializeINTEL\0" // IR(44493, 30) + "SubgroupAvcBmeInitializeINTEL\0" // IR(44523, 30) + "SubgroupAvcRefConvertToMcePayloadINTEL\0" // IR(44553, 39) + "SubgroupAvcRefSetBidirectionalMixDisableINTEL\0" // IR(44592, 46) + "SubgroupAvcRefSetBilinearFilterEnableINTEL\0" // IR(44638, 43) + "SubgroupAvcRefEvaluateWithSingleReferenceINTEL\0" // IR(44681, 47) + "SubgroupAvcRefEvaluateWithDualReferenceINTEL\0" // IR(44728, 45) + "SubgroupAvcRefEvaluateWithMultiReferenceINTEL\0" // IR(44773, 46) + "SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(44819, 56) + "SubgroupAvcRefConvertToMceResultINTEL\0" // IR(44875, 38) + "SubgroupAvcSicInitializeINTEL\0" // IR(44913, 30) + "SubgroupAvcSicConfigureSkcINTEL\0" // IR(44943, 32) + "SubgroupAvcSicConfigureIpeLumaINTEL\0" // IR(44975, 36) + "SubgroupAvcSicConfigureIpeLumaChromaINTEL\0" // IR(45011, 42) + "SubgroupAvcSicGetMotionVectorMaskINTEL\0" // IR(45053, 39) + "SubgroupAvcSicConvertToMcePayloadINTEL\0" // IR(45092, 39) + "SubgroupAvcSicSetIntraLumaShapePenaltyINTEL\0" // IR(45131, 44) + "SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL\0" // IR(45175, 48) + "SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL\0" // IR(45223, 50) + "SubgroupAvcSicSetBilinearFilterEnableINTEL\0" // IR(45273, 43) + "SubgroupAvcSicSetSkcForwardTransformEnableINTEL\0" // IR(45316, 48) + "SubgroupAvcSicSetBlockBasedRawSkipSadINTEL\0" // IR(45364, 43) + "SubgroupAvcSicEvaluateIpeINTEL\0" // IR(45407, 31) + "SubgroupAvcSicEvaluateWithSingleReferenceINTEL\0" // IR(45438, 47) + "SubgroupAvcSicEvaluateWithDualReferenceINTEL\0" // IR(45485, 45) + "SubgroupAvcSicEvaluateWithMultiReferenceINTEL\0" // IR(45530, 46) + "SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(45576, 56) + "SubgroupAvcSicConvertToMceResultINTEL\0" // IR(45632, 38) + "SubgroupAvcSicGetIpeLumaShapeINTEL\0" // IR(45670, 35) + "SubgroupAvcSicGetBestIpeLumaDistortionINTEL\0" // IR(45705, 44) + "SubgroupAvcSicGetBestIpeChromaDistortionINTEL\0" // IR(45749, 46) + "SubgroupAvcSicGetPackedIpeLumaModesINTEL\0" // IR(45795, 41) + "SubgroupAvcSicGetIpeChromaModeINTEL\0" // IR(45836, 36) + "SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL\0" // IR(45872, 50) + "SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL\0" // IR(45922, 48) + "SubgroupAvcSicGetInterRawSadsINTEL\0" // IR(45970, 35) + "SaveMemoryINTEL\0" // IR(46005, 16) + "RestoreMemoryINTEL\0" // IR(46021, 19) + "ArbitraryFloatSinCosPiALTERA\0" // IR(46040, 29) + "ArbitraryFloatSinCosPiINTEL\0" // IR(46069, 28) + "ArbitraryFloatCastALTERA\0" // IR(46097, 25) + "ArbitraryFloatCastINTEL\0" // IR(46122, 24) + "ArbitraryFloatCastFromIntALTERA\0" // IR(46146, 32) + "ArbitraryFloatCastFromIntINTEL\0" // IR(46178, 31) + "ArbitraryFloatCastToIntALTERA\0" // IR(46209, 30) + "ArbitraryFloatCastToIntINTEL\0" // IR(46239, 29) + "ArbitraryFloatAddALTERA\0" // IR(46268, 24) + "ArbitraryFloatAddINTEL\0" // IR(46292, 23) + "ArbitraryFloatSubALTERA\0" // IR(46315, 24) + "ArbitraryFloatSubINTEL\0" // IR(46339, 23) + "ArbitraryFloatMulALTERA\0" // IR(46362, 24) + "ArbitraryFloatMulINTEL\0" // IR(46386, 23) + "ArbitraryFloatDivALTERA\0" // IR(46409, 24) + "ArbitraryFloatDivINTEL\0" // IR(46433, 23) + "ArbitraryFloatGTALTERA\0" // IR(46456, 23) + "ArbitraryFloatGTINTEL\0" // IR(46479, 22) + "ArbitraryFloatGEALTERA\0" // IR(46501, 23) + "ArbitraryFloatGEINTEL\0" // IR(46524, 22) + "ArbitraryFloatLTALTERA\0" // IR(46546, 23) + "ArbitraryFloatLTINTEL\0" // IR(46569, 22) + "ArbitraryFloatLEALTERA\0" // IR(46591, 23) + "ArbitraryFloatLEINTEL\0" // IR(46614, 22) + "ArbitraryFloatEQALTERA\0" // IR(46636, 23) + "ArbitraryFloatEQINTEL\0" // IR(46659, 22) + "ArbitraryFloatRecipALTERA\0" // IR(46681, 26) + "ArbitraryFloatRecipINTEL\0" // IR(46707, 25) + "ArbitraryFloatRSqrtALTERA\0" // IR(46732, 26) + "ArbitraryFloatRSqrtINTEL\0" // IR(46758, 25) + "ArbitraryFloatCbrtALTERA\0" // IR(46783, 25) + "ArbitraryFloatCbrtINTEL\0" // IR(46808, 24) + "ArbitraryFloatHypotALTERA\0" // IR(46832, 26) + "ArbitraryFloatHypotINTEL\0" // IR(46858, 25) + "ArbitraryFloatSqrtALTERA\0" // IR(46883, 25) + "ArbitraryFloatSqrtINTEL\0" // IR(46908, 24) + "ArbitraryFloatLogINTEL\0" // IR(46932, 23) + "ArbitraryFloatLog2INTEL\0" // IR(46955, 24) + "ArbitraryFloatLog10INTEL\0" // IR(46979, 25) + "ArbitraryFloatLog1pINTEL\0" // IR(47004, 25) + "ArbitraryFloatExpINTEL\0" // IR(47029, 23) + "ArbitraryFloatExp2INTEL\0" // IR(47052, 24) + "ArbitraryFloatExp10INTEL\0" // IR(47076, 25) + "ArbitraryFloatExpm1INTEL\0" // IR(47101, 25) + "ArbitraryFloatSinINTEL\0" // IR(47126, 23) + "ArbitraryFloatCosINTEL\0" // IR(47149, 23) + "ArbitraryFloatSinCosINTEL\0" // IR(47172, 26) + "ArbitraryFloatSinPiINTEL\0" // IR(47198, 25) + "ArbitraryFloatCosPiINTEL\0" // IR(47223, 25) + "ArbitraryFloatASinINTEL\0" // IR(47248, 24) + "ArbitraryFloatASinPiINTEL\0" // IR(47272, 26) + "ArbitraryFloatACosINTEL\0" // IR(47298, 24) + "ArbitraryFloatACosPiINTEL\0" // IR(47322, 26) + "ArbitraryFloatATanINTEL\0" // IR(47348, 24) + "ArbitraryFloatATanPiINTEL\0" // IR(47372, 26) + "ArbitraryFloatATan2INTEL\0" // IR(47398, 25) + "ArbitraryFloatPowINTEL\0" // IR(47423, 23) + "ArbitraryFloatPowRINTEL\0" // IR(47446, 24) + "ArbitraryFloatPowNINTEL\0" // IR(47470, 24) + "LoopControlINTEL\0" // IR(47494, 17) + "AliasDomainDeclINTEL\0" // IR(47511, 21) + "AliasScopeDeclINTEL\0" // IR(47532, 20) + "AliasScopeListDeclINTEL\0" // IR(47552, 24) + "FixedSqrtALTERA\0" // IR(47576, 16) + "FixedSqrtINTEL\0" // IR(47592, 15) + "FixedRecipALTERA\0" // IR(47607, 17) + "FixedRecipINTEL\0" // IR(47624, 16) + "FixedRsqrtALTERA\0" // IR(47640, 17) + "FixedRsqrtINTEL\0" // IR(47657, 16) + "FixedSinALTERA\0" // IR(47673, 15) + "FixedSinINTEL\0" // IR(47688, 14) + "FixedCosALTERA\0" // IR(47702, 15) + "FixedCosINTEL\0" // IR(47717, 14) + "FixedSinCosALTERA\0" // IR(47731, 18) + "FixedSinCosINTEL\0" // IR(47749, 17) + "FixedSinPiALTERA\0" // IR(47766, 17) + "FixedSinPiINTEL\0" // IR(47783, 16) + "FixedCosPiALTERA\0" // IR(47799, 17) + "FixedCosPiINTEL\0" // IR(47816, 16) + "FixedSinCosPiALTERA\0" // IR(47832, 20) + "FixedSinCosPiINTEL\0" // IR(47852, 19) + "FixedLogALTERA\0" // IR(47871, 15) + "FixedLogINTEL\0" // IR(47886, 14) + "FixedExpALTERA\0" // IR(47900, 15) + "FixedExpINTEL\0" // IR(47915, 14) + "PtrCastToCrossWorkgroupALTERA\0" // IR(47929, 30) + "PtrCastToCrossWorkgroupINTEL\0" // IR(47959, 29) + "CrossWorkgroupCastToPtrALTERA\0" // IR(47988, 30) + "CrossWorkgroupCastToPtrINTEL\0" // IR(48018, 29) + "ReadPipeBlockingALTERA\0" // IR(48047, 23) + "ReadPipeBlockingINTEL\0" // IR(48070, 22) + "WritePipeBlockingALTERA\0" // IR(48092, 24) + "WritePipeBlockingINTEL\0" // IR(48116, 23) + "RayQueryGetRayTMinKHR\0" // IR(48139, 22) + "RayQueryGetRayFlagsKHR\0" // IR(48161, 23) + "RayQueryGetIntersectionTKHR\0" // IR(48184, 28) + "RayQueryGetIntersectionInstanceCustomIndexKHR\0" // IR(48212, 46) + "RayQueryGetIntersectionInstanceIdKHR\0" // IR(48258, 37) + "RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR\0" // IR(48295, 65) + "RayQueryGetIntersectionGeometryIndexKHR\0" // IR(48360, 40) + "RayQueryGetIntersectionPrimitiveIndexKHR\0" // IR(48400, 41) + "RayQueryGetIntersectionBarycentricsKHR\0" // IR(48441, 39) + "RayQueryGetIntersectionFrontFaceKHR\0" // IR(48480, 36) + "RayQueryGetIntersectionCandidateAABBOpaqueKHR\0" // IR(48516, 46) + "RayQueryGetIntersectionObjectRayDirectionKHR\0" // IR(48562, 45) + "RayQueryGetIntersectionObjectRayOriginKHR\0" // IR(48607, 42) + "RayQueryGetWorldRayDirectionKHR\0" // IR(48649, 32) + "RayQueryGetWorldRayOriginKHR\0" // IR(48681, 29) + "RayQueryGetIntersectionObjectToWorldKHR\0" // IR(48710, 40) + "RayQueryGetIntersectionWorldToObjectKHR\0" // IR(48750, 40) + "AtomicFAddEXT\0" // IR(48790, 14) + "TypeBufferSurfaceINTEL\0" // IR(48804, 23) + "TypeStructContinuedINTEL\0" // IR(48827, 25) + "ConstantCompositeContinuedINTEL\0" // IR(48852, 32) + "SpecConstantCompositeContinuedINTEL\0" // IR(48884, 36) + "CompositeConstructContinuedINTEL\0" // IR(48920, 33) + "ConvertFToBF16INTEL\0" // IR(48953, 20) + "ConvertBF16ToFINTEL\0" // IR(48973, 20) + "ControlBarrierArriveINTEL\0" // IR(48993, 26) + "ControlBarrierWaitINTEL\0" // IR(49019, 24) + "TaskSequenceCreateALTERA\0" // IR(49043, 25) + "TaskSequenceCreateINTEL\0" // IR(49068, 24) + "TaskSequenceAsyncALTERA\0" // IR(49092, 24) + "TaskSequenceAsyncINTEL\0" // IR(49116, 23) + "TaskSequenceGetALTERA\0" // IR(49139, 22) + "TaskSequenceGetINTEL\0" // IR(49161, 21) + "TaskSequenceReleaseALTERA\0" // IR(49182, 26) + "TaskSequenceReleaseINTEL\0" // IR(49208, 25) + "TypeTaskSequenceALTERA\0" // IR(49233, 23) + "TypeTaskSequenceINTEL\0" // IR(49256, 22) + "SubgroupBlockPrefetchINTEL\0" // IR(49278, 27) + "Subgroup2DBlockLoadINTEL\0" // IR(49305, 25) + "Subgroup2DBlockLoadTransformINTEL\0" // IR(49330, 34) + "Subgroup2DBlockLoadTransposeINTEL\0" // IR(49364, 34) + "Subgroup2DBlockPrefetchINTEL\0" // IR(49398, 29) + "Subgroup2DBlockStoreINTEL\0" // IR(49427, 26) + "SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS\0" // IR(49453, 62) + "BitwiseFunctionINTEL\0" // IR(49515, 21) + "ConditionalExtensionINTEL\0" // IR(49536, 26) + "ConditionalEntryPointINTEL\0" // IR(49562, 27) + "ConditionalCapabilityINTEL\0" // IR(49589, 27) + "SpecConstantTargetINTEL\0" // IR(49616, 24) + "SpecConstantArchitectureINTEL\0" // IR(49640, 30) + "SPV_OPERAND_TYPE_VARIABLE_CAPABILITY\0" // IR(49670, 37) + "SpecConstantCapabilitiesINTEL\0" // IR(49707, 30) + "ConditionalCopyObjectINTEL\0" // IR(49737, 27) + "GroupIMulKHR\0" // IR(49764, 13) + "GroupFMulKHR\0" // IR(49777, 13) + "GroupBitwiseAndKHR\0" // IR(49790, 19) + "GroupBitwiseOrKHR\0" // IR(49809, 18) + "GroupBitwiseXorKHR\0" // IR(49827, 19) + "GroupLogicalAndKHR\0" // IR(49846, 19) + "GroupLogicalOrKHR\0" // IR(49865, 18) + "GroupLogicalXorKHR\0" // IR(49883, 19) + "RoundFToTF32INTEL\0" // IR(49902, 18) + "MaskedGatherINTEL\0" // IR(49920, 18) + "MaskedScatterINTEL\0" // IR(49938, 19) + "ConvertHandleToImageINTEL\0" // IR(49957, 26) + "ConvertHandleToSamplerINTEL\0" // IR(49983, 28) + "ConvertHandleToSampledImageINTEL\0" // IR(50011, 33) + "DebugInfoNone\0" // IR(50044, 14) + "DebugCompilationUnit\0" // IR(50058, 21) + "SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(50079, 52) + "DebugTypeBasic\0" // IR(50131, 15) + "SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS\0" // IR(50146, 34) + "DebugTypePointer\0" // IR(50180, 17) + "SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER\0" // IR(50197, 38) + "DebugTypeQualifier\0" // IR(50235, 19) + "DebugTypeArray\0" // IR(50254, 15) + "DebugTypeVector\0" // IR(50269, 16) + "DebugTypedef\0" // IR(50285, 13) + "DebugTypeFunction\0" // IR(50298, 18) + "DebugTypeEnum\0" // IR(50316, 14) + "SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE\0" // IR(50330, 38) + "DebugTypeComposite\0" // IR(50368, 19) + "DebugTypeMember\0" // IR(50387, 16) + "DebugTypeInheritance\0" // IR(50403, 21) + "DebugTypePtrToMember\0" // IR(50424, 21) + "DebugTypeTemplate\0" // IR(50445, 18) + "DebugTypeTemplateParameter\0" // IR(50463, 27) + "DebugTypeTemplateTemplateParameter\0" // IR(50490, 35) + "DebugTypeTemplateParameterPack\0" // IR(50525, 31) + "DebugGlobalVariable\0" // IR(50556, 20) + "DebugFunctionDeclaration\0" // IR(50576, 25) + "DebugFunction\0" // IR(50601, 14) + "DebugLexicalBlock\0" // IR(50615, 18) + "DebugLexicalBlockDiscriminator\0" // IR(50633, 31) + "DebugScope\0" // IR(50664, 11) + "DebugNoScope\0" // IR(50675, 13) + "DebugInlinedAt\0" // IR(50688, 15) + "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER\0" // IR(50703, 42) + "DebugLocalVariable\0" // IR(50745, 19) + "DebugInlinedVariable\0" // IR(50764, 21) + "DebugDeclare\0" // IR(50785, 13) + "DebugValue\0" // IR(50798, 11) + "SPV_OPERAND_TYPE_DEBUG_OPERATION\0" // IR(50809, 33) + "DebugOperation\0" // IR(50842, 15) + "DebugExpression\0" // IR(50857, 16) + "DebugMacroDef\0" // IR(50873, 14) + "DebugMacroUndef\0" // IR(50887, 16) + "Round\0" // IR(50903, 6) + "RoundEven\0" // IR(50909, 10) + "Trunc\0" // IR(50919, 6) + "FAbs\0" // IR(50925, 5) + "SAbs\0" // IR(50930, 5) + "FSign\0" // IR(50935, 6) + "SSign\0" // IR(50941, 6) + "Floor\0" // IR(50947, 6) + "Ceil\0" // IR(50953, 5) + "Fract\0" // IR(50958, 6) + "Radians\0" // IR(50964, 8) + "Degrees\0" // IR(50972, 8) + "Sin\0" // IR(50980, 4) + "Cos\0" // IR(50984, 4) + "Tan\0" // IR(50988, 4) + "Asin\0" // IR(50992, 5) + "Acos\0" // IR(50997, 5) + "Atan\0" // IR(51002, 5) + "Sinh\0" // IR(51007, 5) + "Cosh\0" // IR(51012, 5) + "Tanh\0" // IR(51017, 5) + "Asinh\0" // IR(51022, 6) + "Acosh\0" // IR(51028, 6) + "Atanh\0" // IR(51034, 6) + "Atan2\0" // IR(51040, 6) + "Pow\0" // IR(51046, 4) + "Exp\0" // IR(51050, 4) + "Log\0" // IR(51054, 4) + "Exp2\0" // IR(51058, 5) + "Log2\0" // IR(51063, 5) + "Sqrt\0" // IR(51068, 5) + "InverseSqrt\0" // IR(51073, 12) + "Determinant\0" // IR(51085, 12) + "MatrixInverse\0" // IR(51097, 14) + "Modf\0" // IR(51111, 5) + "ModfStruct\0" // IR(51116, 11) + "FMin\0" // IR(51127, 5) + "UMin\0" // IR(51132, 5) + "SMin\0" // IR(51137, 5) + "FMax\0" // IR(51142, 5) + "UMax\0" // IR(51147, 5) + "SMax\0" // IR(51152, 5) + "FClamp\0" // IR(51157, 7) + "UClamp\0" // IR(51164, 7) + "SClamp\0" // IR(51171, 7) + "FMix\0" // IR(51178, 5) + "IMix\0" // IR(51183, 5) + "Step\0" // IR(51188, 5) + "SmoothStep\0" // IR(51193, 11) + "Fma\0" // IR(51204, 4) + "Frexp\0" // IR(51208, 6) + "FrexpStruct\0" // IR(51214, 12) + "Ldexp\0" // IR(51226, 6) + "PackSnorm4x8\0" // IR(51232, 13) + "PackUnorm4x8\0" // IR(51245, 13) + "PackSnorm2x16\0" // IR(51258, 14) + "PackUnorm2x16\0" // IR(51272, 14) + "PackHalf2x16\0" // IR(51286, 13) + "PackDouble2x32\0" // IR(51299, 15) + "UnpackSnorm2x16\0" // IR(51314, 16) + "UnpackUnorm2x16\0" // IR(51330, 16) + "UnpackHalf2x16\0" // IR(51346, 15) + "UnpackSnorm4x8\0" // IR(51361, 15) + "UnpackUnorm4x8\0" // IR(51376, 15) + "UnpackDouble2x32\0" // IR(51391, 17) + "Length\0" // IR(51408, 7) + "Distance\0" // IR(51415, 9) + "Cross\0" // IR(51424, 6) + "Normalize\0" // IR(51430, 10) + "FaceForward\0" // IR(51440, 12) + "Reflect\0" // IR(51452, 8) + "Refract\0" // IR(51460, 8) + "FindILsb\0" // IR(51468, 9) + "FindSMsb\0" // IR(51477, 9) + "FindUMsb\0" // IR(51486, 9) + "InterpolateAtCentroid\0" // IR(51495, 22) + "InterpolateAtSample\0" // IR(51517, 20) + "InterpolateAtOffset\0" // IR(51537, 20) + "NMin\0" // IR(51557, 5) + "NMax\0" // IR(51562, 5) + "NClamp\0" // IR(51567, 7) + "ArgumentInfo\0" // IR(51574, 13) + "ArgumentStorageBuffer\0" // IR(51587, 22) + "ArgumentUniform\0" // IR(51609, 16) + "ArgumentPodStorageBuffer\0" // IR(51625, 25) + "ArgumentPodUniform\0" // IR(51650, 19) + "ArgumentPodPushConstant\0" // IR(51669, 24) + "ArgumentSampledImage\0" // IR(51693, 21) + "ArgumentStorageImage\0" // IR(51714, 21) + "ArgumentSampler\0" // IR(51735, 16) + "ArgumentWorkgroup\0" // IR(51751, 18) + "SpecConstantWorkgroupSize\0" // IR(51769, 26) + "SpecConstantGlobalOffset\0" // IR(51795, 25) + "SpecConstantWorkDim\0" // IR(51820, 20) + "PushConstantGlobalOffset\0" // IR(51840, 25) + "PushConstantEnqueuedLocalSize\0" // IR(51865, 30) + "PushConstantGlobalSize\0" // IR(51895, 23) + "PushConstantRegionOffset\0" // IR(51918, 25) + "PushConstantNumWorkgroups\0" // IR(51943, 26) + "PushConstantRegionGroupOffset\0" // IR(51969, 30) + "ConstantDataStorageBuffer\0" // IR(51999, 26) + "ConstantDataUniform\0" // IR(52025, 20) + "PropertyRequiredWorkgroupSize\0" // IR(52045, 30) + "SpecConstantSubgroupMaxSize\0" // IR(52075, 28) + "ArgumentPointerPushConstant\0" // IR(52103, 28) + "ArgumentPointerUniform\0" // IR(52131, 23) + "ProgramScopeVariablesStorageBuffer\0" // IR(52154, 35) + "ProgramScopeVariablePointerRelocation\0" // IR(52189, 38) + "ImageArgumentInfoChannelOrderPushConstant\0" // IR(52227, 42) + "ImageArgumentInfoChannelDataTypePushConstant\0" // IR(52269, 45) + "ImageArgumentInfoChannelOrderUniform\0" // IR(52314, 37) + "ImageArgumentInfoChannelDataTypeUniform\0" // IR(52351, 40) + "ArgumentStorageTexelBuffer\0" // IR(52391, 27) + "ArgumentUniformTexelBuffer\0" // IR(52418, 27) + "ConstantDataPointerPushConstant\0" // IR(52445, 32) + "ProgramScopeVariablePointerPushConstant\0" // IR(52477, 40) + "PrintfInfo\0" // IR(52517, 11) + "PrintfBufferStorageBuffer\0" // IR(52528, 26) + "PrintfBufferPointerPushConstant\0" // IR(52554, 32) + "NormalizedSamplerMaskPushConstant\0" // IR(52586, 34) + "WorkgroupVariableSize\0" // IR(52620, 22) + "DebugImportedEntity\0" // IR(52642, 20) + "DebugSource\0" // IR(52662, 12) + "DebugFunctionDefinition\0" // IR(52674, 24) + "DebugSourceContinued\0" // IR(52698, 21) + "DebugLine\0" // IR(52719, 10) + "DebugNoLine\0" // IR(52729, 12) + "DebugBuildIdentifier\0" // IR(52741, 21) + "DebugStoragePath\0" // IR(52762, 17) + "DebugEntryPoint\0" // IR(52779, 16) + "DebugTypeMatrix\0" // IR(52795, 16) + "Configuration\0" // IR(52811, 14) + "StartCounter\0" // IR(52825, 13) + "StopCounter\0" // IR(52838, 12) + "PushConstants\0" // IR(52850, 14) + "SpecializationMapEntry\0" // IR(52864, 23) + "DescriptorSetBuffer\0" // IR(52887, 20) + "DescriptorSetImage\0" // IR(52907, 19) + "DescriptorSetSampler\0" // IR(52926, 21) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(52947, 63) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS\0" // IR(53010, 45) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER\0" // IR(53055, 49) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE\0" // IR(53104, 49) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION\0" // IR(53153, 44) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY\0" // IR(53197, 50) + "DebugModuleINTEL\0" // IR(53247, 17) + "acos\0" // IR(53264, 5) + "acosh\0" // IR(53269, 6) + "acospi\0" // IR(53275, 7) + "asin\0" // IR(53282, 5) + "asinh\0" // IR(53287, 6) + "asinpi\0" // IR(53293, 7) + "atan\0" // IR(53300, 5) + "atan2\0" // IR(53305, 6) + "atanh\0" // IR(53311, 6) + "atanpi\0" // IR(53317, 7) + "atan2pi\0" // IR(53324, 8) + "cbrt\0" // IR(53332, 5) + "ceil\0" // IR(53337, 5) + "copysign\0" // IR(53342, 9) + "cos\0" // IR(53351, 4) + "cosh\0" // IR(53355, 5) + "cospi\0" // IR(53360, 6) + "erfc\0" // IR(53366, 5) + "erf\0" // IR(53371, 4) + "exp\0" // IR(53375, 4) + "exp2\0" // IR(53379, 5) + "exp10\0" // IR(53384, 6) + "expm1\0" // IR(53390, 6) + "fabs\0" // IR(53396, 5) + "fdim\0" // IR(53401, 5) + "floor\0" // IR(53406, 6) + "fma\0" // IR(53412, 4) + "fmax\0" // IR(53416, 5) + "fmin\0" // IR(53421, 5) + "fmod\0" // IR(53426, 5) + "fract\0" // IR(53431, 6) + "frexp\0" // IR(53437, 6) + "hypot\0" // IR(53443, 6) + "ilogb\0" // IR(53449, 6) + "ldexp\0" // IR(53455, 6) + "lgamma\0" // IR(53461, 7) + "lgamma_r\0" // IR(53468, 9) + "log\0" // IR(53477, 4) + "log2\0" // IR(53481, 5) + "log10\0" // IR(53486, 6) + "log1p\0" // IR(53492, 6) + "logb\0" // IR(53498, 5) + "mad\0" // IR(53503, 4) + "maxmag\0" // IR(53507, 7) + "minmag\0" // IR(53514, 7) + "modf\0" // IR(53521, 5) + "nan\0" // IR(53526, 4) + "nextafter\0" // IR(53530, 10) + "pow\0" // IR(53540, 4) + "pown\0" // IR(53544, 5) + "powr\0" // IR(53549, 5) + "remainder\0" // IR(53554, 10) + "remquo\0" // IR(53564, 7) + "rint\0" // IR(53571, 5) + "rootn\0" // IR(53576, 6) + "round\0" // IR(53582, 6) + "rsqrt\0" // IR(53588, 6) + "sin\0" // IR(53594, 4) + "sincos\0" // IR(53598, 7) + "sinh\0" // IR(53605, 5) + "sinpi\0" // IR(53610, 6) + "sqrt\0" // IR(53616, 5) + "tan\0" // IR(53621, 4) + "tanh\0" // IR(53625, 5) + "tanpi\0" // IR(53630, 6) + "tgamma\0" // IR(53636, 7) + "trunc\0" // IR(53643, 6) + "half_cos\0" // IR(53649, 9) + "half_divide\0" // IR(53658, 12) + "half_exp\0" // IR(53670, 9) + "half_exp2\0" // IR(53679, 10) + "half_exp10\0" // IR(53689, 11) + "half_log\0" // IR(53700, 9) + "half_log2\0" // IR(53709, 10) + "half_log10\0" // IR(53719, 11) + "half_powr\0" // IR(53730, 10) + "half_recip\0" // IR(53740, 11) + "half_rsqrt\0" // IR(53751, 11) + "half_sin\0" // IR(53762, 9) + "half_sqrt\0" // IR(53771, 10) + "half_tan\0" // IR(53781, 9) + "native_cos\0" // IR(53790, 11) + "native_divide\0" // IR(53801, 14) + "native_exp\0" // IR(53815, 11) + "native_exp2\0" // IR(53826, 12) + "native_exp10\0" // IR(53838, 13) + "native_log\0" // IR(53851, 11) + "native_log2\0" // IR(53862, 12) + "native_log10\0" // IR(53874, 13) + "native_powr\0" // IR(53887, 12) + "native_recip\0" // IR(53899, 13) + "native_rsqrt\0" // IR(53912, 13) + "native_sin\0" // IR(53925, 11) + "native_sqrt\0" // IR(53936, 12) + "native_tan\0" // IR(53948, 11) + "fclamp\0" // IR(53959, 7) + "degrees\0" // IR(53966, 8) + "fmax_common\0" // IR(53974, 12) + "fmin_common\0" // IR(53986, 12) + "mix\0" // IR(53998, 4) + "radians\0" // IR(54002, 8) + "step\0" // IR(54010, 5) + "smoothstep\0" // IR(54015, 11) + "sign\0" // IR(54026, 5) + "cross\0" // IR(54031, 6) + "distance\0" // IR(54037, 9) + "length\0" // IR(54046, 7) + "normalize\0" // IR(54053, 10) + "fast_distance\0" // IR(54063, 14) + "fast_length\0" // IR(54077, 12) + "fast_normalize\0" // IR(54089, 15) + "s_abs\0" // IR(54104, 6) + "s_abs_diff\0" // IR(54110, 11) + "s_add_sat\0" // IR(54121, 10) + "u_add_sat\0" // IR(54131, 10) + "s_hadd\0" // IR(54141, 7) + "u_hadd\0" // IR(54148, 7) + "s_rhadd\0" // IR(54155, 8) + "u_rhadd\0" // IR(54163, 8) + "s_clamp\0" // IR(54171, 8) + "u_clamp\0" // IR(54179, 8) + "clz\0" // IR(54187, 4) + "ctz\0" // IR(54191, 4) + "s_mad_hi\0" // IR(54195, 9) + "u_mad_sat\0" // IR(54204, 10) + "s_mad_sat\0" // IR(54214, 10) + "s_max\0" // IR(54224, 6) + "u_max\0" // IR(54230, 6) + "s_min\0" // IR(54236, 6) + "u_min\0" // IR(54242, 6) + "s_mul_hi\0" // IR(54248, 9) + "rotate\0" // IR(54257, 7) + "s_sub_sat\0" // IR(54264, 10) + "u_sub_sat\0" // IR(54274, 10) + "u_upsample\0" // IR(54284, 11) + "s_upsample\0" // IR(54295, 11) + "popcount\0" // IR(54306, 9) + "s_mad24\0" // IR(54315, 8) + "u_mad24\0" // IR(54323, 8) + "s_mul24\0" // IR(54331, 8) + "u_mul24\0" // IR(54339, 8) + "vloadn\0" // IR(54347, 7) + "vstoren\0" // IR(54354, 8) + "vload_half\0" // IR(54362, 11) + "vload_halfn\0" // IR(54373, 12) + "vstore_half\0" // IR(54385, 12) + "vstore_half_r\0" // IR(54397, 14) + "vstore_halfn\0" // IR(54411, 13) + "vstore_halfn_r\0" // IR(54424, 15) + "vloada_halfn\0" // IR(54439, 13) + "vstorea_halfn\0" // IR(54452, 14) + "vstorea_halfn_r\0" // IR(54466, 16) + "shuffle\0" // IR(54482, 8) + "shuffle2\0" // IR(54490, 9) + "printf\0" // IR(54499, 7) + "prefetch\0" // IR(54506, 9) + "bitselect\0" // IR(54515, 10) + "select\0" // IR(54525, 7) + "u_abs\0" // IR(54532, 6) + "u_abs_diff\0" // IR(54538, 11) + "u_mul_hi\0" // IR(54549, 9) + "u_mad_hi\0" // IR(54558, 9) + "CubeFaceIndexAMD\0" // IR(54567, 17) + "CubeFaceCoordAMD\0" // IR(54584, 17) + "TimeAMD\0" // IR(54601, 8) + "SwizzleInvocationsAMD\0" // IR(54609, 22) + "SwizzleInvocationsMaskedAMD\0" // IR(54631, 28) + "WriteInvocationAMD\0" // IR(54659, 19) + "MbcntAMD\0" // IR(54678, 9) + "InterpolateAtVertexAMD\0" // IR(54687, 23) + "FMin3AMD\0" // IR(54710, 9) + "UMin3AMD\0" // IR(54719, 9) + "SMin3AMD\0" // IR(54728, 9) + "FMax3AMD\0" // IR(54737, 9) + "UMax3AMD\0" // IR(54746, 9) + "SMax3AMD\0" // IR(54755, 9) + "FMid3AMD\0" // IR(54764, 9) + "UMid3AMD\0" // IR(54773, 9) + "SMid3AMD\0" // IR(54782, 9) ; // Array of IndexRanges, where each represents a string by referencing @@ -8163,110 +8579,222 @@ static const char kStrings[] = // This table is referenced by an IndexRange elsewhere, i.e. by the 'aliases' // field of an instruction or operand description. static const IndexRange kAliasSpans[] = { - IR(4733, 27), // 0 PhysicalStorageBuffer64EXT - IR(5644, 18), // 1 SubgroupEqMaskKHR - IR(5699, 18), // 2 SubgroupGeMaskKHR - IR(5732, 18), // 3 SubgroupGtMaskKHR - IR(5765, 18), // 4 SubgroupLeMaskKHR - IR(5798, 18), // 5 SubgroupLtMaskKHR - IR(6656, 12), // 6 BaryCoordNV - IR(6711, 19), // 7 BaryCoordNoPerspNV - IR(6742, 15), // 8 FragmentSizeNV - IR(6799, 22), // 9 InvocationsPerPixelNV - IR(6927, 11), // 10 LaunchIdNV - IR(6952, 13), // 11 LaunchSizeNV - IR(6983, 17), // 12 WorldRayOriginNV - IR(7021, 20), // 13 WorldRayDirectionNV - IR(7060, 18), // 14 ObjectRayOriginNV - IR(7100, 21), // 15 ObjectRayDirectionNV - IR(7132, 10), // 16 RayTminNV - IR(7153, 10), // 17 RayTmaxNV - IR(7186, 22), // 18 InstanceCustomIndexNV - IR(7225, 16), // 19 ObjectToWorldNV - IR(7258, 16), // 20 WorldToObjectNV - IR(7292, 10), // 21 HitKindNV - IR(7523, 19), // 22 IncomingRayFlagsNV - IR(9299, 28), // 23 StorageUniformBufferBlock16 - IR(9362, 17), // 24 StorageUniform16 - IR(10177, 27), // 25 ShaderViewportIndexLayerNV - IR(10221, 22), // 26 FragmentBarycentricNV - IR(10274, 30), // 27 ComputeDerivativeGroupQuadsNV - IR(10304, 14), // 28 ShadingRateNV - IR(10364, 20), // 29 ShaderNonUniformEXT - IR(10407, 26), // 30 RuntimeDescriptorArrayEXT - IR(10469, 39), // 31 InputAttachmentArrayDynamicIndexingEXT - IR(10547, 42), // 32 UniformTexelBufferArrayDynamicIndexingEXT - IR(10628, 42), // 33 StorageTexelBufferArrayDynamicIndexingEXT - IR(10707, 40), // 34 UniformBufferArrayNonUniformIndexingEXT - IR(10783, 39), // 35 SampledImageArrayNonUniformIndexingEXT - IR(10859, 40), // 36 StorageBufferArrayNonUniformIndexingEXT - IR(10935, 39), // 37 StorageImageArrayNonUniformIndexingEXT - IR(11013, 42), // 38 InputAttachmentArrayNonUniformIndexingEXT - IR(11097, 45), // 39 UniformTexelBufferArrayNonUniformIndexingEXT - IR(11184, 45), // 40 StorageTexelBufferArrayNonUniformIndexingEXT - IR(11247, 21), // 41 VulkanMemoryModelKHR - IR(11297, 32), // 42 VulkanMemoryModelDeviceScopeKHR - IR(11329, 34), // 43 PhysicalStorageBufferAddressesEXT - IR(11395, 31), // 44 ComputeDerivativeGroupLinearNV - IR(11599, 28), // 45 DemoteToHelperInvocationEXT - IR(13069, 22), // 46 DotProductInputAllKHR - IR(13113, 25), // 47 DotProductInput4x8BitKHR - IR(13166, 31), // 48 DotProductInput4x8BitPackedKHR - IR(13208, 14), // 49 DotProductKHR - IR(13380, 13), // 50 OptNoneINTEL - IR(16451, 15), // 51 PerPrimitiveNV - IR(16499, 12), // 52 PerVertexNV - IR(16522, 14), // 53 NonUniformEXT - IR(16552, 19), // 54 RestrictPointerEXT - IR(16586, 18), // 55 AliasedPointerEXT - IR(16896, 24), // 56 HlslCounterBufferGOOGLE - IR(16933, 19), // 57 HlslSemanticGOOGLE - IR(19624, 14), // 58 OutputLinesNV - IR(19658, 19), // 59 OutputPrimitivesNV - IR(19701, 23), // 60 DerivativeGroupQuadsNV - IR(19749, 24), // 61 DerivativeGroupLinearNV - IR(19792, 18), // 62 OutputTrianglesNV - IR(20540, 16), // 63 RayGenerationNV - IR(20572, 15), // 64 IntersectionNV - IR(20597, 9), // 65 AnyHitNV - IR(20620, 13), // 66 ClosestHitNV - IR(20641, 7), // 67 MissNV - IR(20660, 11), // 68 CallableNV - IR(20805, 23), // 69 AllowContractFastINTEL - IR(20841, 18), // 70 AllowReassocINTEL - IR(21295, 22), // 71 MakeTexelAvailableKHR - IR(21334, 20), // 72 MakeTexelVisibleKHR - IR(21370, 19), // 73 NonPrivateTexelKHR - IR(21403, 17), // 74 VolatileTexelKHR - IR(22780, 24), // 75 MakePointerAvailableKHR - IR(22823, 22), // 76 MakePointerVisibleKHR - IR(22863, 21), // 77 NonPrivatePointerKHR - IR(22950, 10), // 78 VulkanKHR - IR(14223, 5), // 79 None - IR(23133, 16), // 80 OutputMemoryKHR - IR(23163, 17), // 81 MakeAvailableKHR - IR(23192, 15), // 82 MakeVisibleKHR - IR(23268, 28), // 83 PackedVectorFormat4x8BitKHR - IR(23583, 24), // 84 SkipBuiltinPrimitivesNV - IR(24323, 15), // 85 QueueFamilyKHR - IR(24694, 15), // 86 CallableDataNV - IR(24733, 23), // 87 IncomingCallableDataNV - IR(24770, 13), // 88 RayPayloadNV - IR(24799, 15), // 89 HitAttributeNV - IR(24836, 21), // 90 IncomingRayPayloadNV - IR(24879, 21), // 91 ShaderRecordBufferNV - IR(24922, 25), // 92 PhysicalStorageBufferEXT - IR(32263, 8), // 93 SDotKHR - IR(32276, 8), // 94 UDotKHR - IR(32290, 9), // 95 SUDotKHR - IR(32310, 14), // 96 SDotAccSatKHR - IR(32335, 14), // 97 UDotAccSatKHR - IR(32361, 15), // 98 SUDotAccSatKHR - IR(34941, 21), // 99 ReportIntersectionNV - IR(35116, 28), // 100 TypeAccelerationStructureNV - IR(35197, 23), // 101 RayQueryGetClusterIdNV - IR(37200, 21), // 102 DecorateStringGOOGLE - IR(37242, 27), // 103 MemberDecorateStringGOOGLE + IR(5448, 27), // 0 PhysicalStorageBuffer64EXT + IR(6359, 18), // 1 SubgroupEqMaskKHR + IR(6414, 18), // 2 SubgroupGeMaskKHR + IR(6447, 18), // 3 SubgroupGtMaskKHR + IR(6480, 18), // 4 SubgroupLeMaskKHR + IR(6513, 18), // 5 SubgroupLtMaskKHR + IR(7371, 12), // 6 BaryCoordNV + IR(7426, 19), // 7 BaryCoordNoPerspNV + IR(7457, 15), // 8 FragmentSizeNV + IR(7514, 22), // 9 InvocationsPerPixelNV + IR(7642, 11), // 10 LaunchIdNV + IR(7667, 13), // 11 LaunchSizeNV + IR(7698, 17), // 12 WorldRayOriginNV + IR(7736, 20), // 13 WorldRayDirectionNV + IR(7775, 18), // 14 ObjectRayOriginNV + IR(7815, 21), // 15 ObjectRayDirectionNV + IR(7847, 10), // 16 RayTminNV + IR(7868, 10), // 17 RayTmaxNV + IR(7901, 22), // 18 InstanceCustomIndexNV + IR(7940, 16), // 19 ObjectToWorldNV + IR(7973, 16), // 20 WorldToObjectNV + IR(8007, 10), // 21 HitKindNV + IR(8238, 19), // 22 IncomingRayFlagsNV + IR(10014, 28), // 23 StorageUniformBufferBlock16 + IR(10077, 17), // 24 StorageUniform16 + IR(10892, 27), // 25 ShaderViewportIndexLayerNV + IR(10936, 22), // 26 FragmentBarycentricNV + IR(10989, 30), // 27 ComputeDerivativeGroupQuadsNV + IR(11019, 14), // 28 ShadingRateNV + IR(11079, 20), // 29 ShaderNonUniformEXT + IR(11122, 26), // 30 RuntimeDescriptorArrayEXT + IR(11184, 39), // 31 InputAttachmentArrayDynamicIndexingEXT + IR(11262, 42), // 32 UniformTexelBufferArrayDynamicIndexingEXT + IR(11343, 42), // 33 StorageTexelBufferArrayDynamicIndexingEXT + IR(11422, 40), // 34 UniformBufferArrayNonUniformIndexingEXT + IR(11498, 39), // 35 SampledImageArrayNonUniformIndexingEXT + IR(11574, 40), // 36 StorageBufferArrayNonUniformIndexingEXT + IR(11650, 39), // 37 StorageImageArrayNonUniformIndexingEXT + IR(11728, 42), // 38 InputAttachmentArrayNonUniformIndexingEXT + IR(11812, 45), // 39 UniformTexelBufferArrayNonUniformIndexingEXT + IR(11899, 45), // 40 StorageTexelBufferArrayNonUniformIndexingEXT + IR(11962, 21), // 41 VulkanMemoryModelKHR + IR(12012, 32), // 42 VulkanMemoryModelDeviceScopeKHR + IR(12044, 34), // 43 PhysicalStorageBufferAddressesEXT + IR(12110, 31), // 44 ComputeDerivativeGroupLinearNV + IR(12314, 28), // 45 DemoteToHelperInvocationEXT + IR(13321, 26), // 46 FPGAMemoryAttributesINTEL + IR(13400, 32), // 47 ArbitraryPrecisionIntegersINTEL + IR(13470, 37), // 48 ArbitraryPrecisionFloatingPointINTEL + IR(13560, 22), // 49 FPGALoopControlsINTEL + IR(13655, 24), // 50 FPGAMemoryAccessesINTEL + IR(13707, 27), // 51 FPGAClusterAttributesINTEL + IR(13749, 14), // 52 LoopFuseINTEL + IR(13784, 20), // 53 FPGADSPControlINTEL + IR(13871, 40), // 54 FPGAInvocationPipeliningAttributesINTEL + IR(13936, 24), // 55 FPGABufferLocationINTEL + IR(13995, 34), // 56 ArbitraryPrecisionFixedPointINTEL + IR(14053, 23), // 57 USMStorageClassesINTEL + IR(14106, 29), // 58 RuntimeAlignedAttributeINTEL + IR(14149, 13), // 59 IOPipesINTEL + IR(14182, 19), // 60 BlockingPipesINTEL + IR(14215, 13), // 61 FPGARegINTEL + IR(14247, 22), // 62 DotProductInputAllKHR + IR(14291, 25), // 63 DotProductInput4x8BitKHR + IR(14344, 31), // 64 DotProductInput4x8BitPackedKHR + IR(14386, 14), // 65 DotProductKHR + IR(14558, 13), // 66 OptNoneINTEL + IR(14703, 29), // 67 FPGAClusterAttributesV2INTEL + IR(14779, 18), // 68 TaskSequenceINTEL + IR(14838, 24), // 69 FPGALatencyControlINTEL + IR(14891, 28), // 70 FPGAArgumentInterfacesINTEL + IR(14985, 35), // 71 GlobalVariableFPGADecorationsINTEL + IR(17768, 15), // 72 PerPrimitiveNV + IR(17816, 12), // 73 PerVertexNV + IR(17839, 14), // 74 NonUniformEXT + IR(17869, 19), // 75 RestrictPointerEXT + IR(17903, 18), // 76 AliasedPointerEXT + IR(18244, 24), // 77 HlslCounterBufferGOOGLE + IR(18281, 19), // 78 HlslSemanticGOOGLE + IR(18411, 14), // 79 RegisterINTEL + IR(18438, 12), // 80 MemoryINTEL + IR(18465, 14), // 81 NumbanksINTEL + IR(18495, 15), // 82 BankwidthINTEL + IR(18533, 22), // 83 MaxPrivateCopiesINTEL + IR(18572, 16), // 84 SinglepumpINTEL + IR(18605, 16), // 85 DoublepumpINTEL + IR(18641, 19), // 86 MaxReplicatesINTEL + IR(18681, 20), // 87 SimpleDualPortINTEL + IR(18713, 11), // 88 MergeINTEL + IR(18781, 14), // 89 BankBitsINTEL + IR(18816, 20), // 90 ForcePow2DepthINTEL + IR(18853, 16), // 91 StridesizeINTEL + IR(18884, 14), // 92 WordsizeINTEL + IR(18917, 18), // 93 TrueDualPortINTEL + IR(18955, 19), // 94 BurstCoalesceINTEL + IR(18990, 15), // 95 CacheSizeINTEL + IR(19034, 28), // 96 DontStaticallyCoalesceINTEL + IR(19077, 14), // 97 PrefetchINTEL + IR(19109, 17), // 98 StallEnableINTEL + IR(19152, 25), // 99 FuseLoopsInFunctionINTEL + IR(19197, 19), // 100 MathOpDSPModeINTEL + IR(19270, 24), // 101 InitiationIntervalINTEL + IR(19315, 20), // 102 MaxConcurrencyINTEL + IR(19356, 20), // 103 PipelineEnableINTEL + IR(19397, 20), // 104 BufferLocationINTEL + IR(19437, 19), // 105 IOPipeStorageINTEL + IR(19615, 15), // 106 StallFreeINTEL + IR(19713, 25), // 107 LatencyControlLabelINTEL + IR(19769, 30), // 108 LatencyControlConstraintINTEL + IR(19827, 27), // 109 ConduitKernelArgumentINTEL + IR(19886, 31), // 110 RegisterMapKernelArgumentINTEL + IR(19951, 33), // 111 MMHostInterfaceAddressWidthINTEL + IR(20015, 30), // 112 MMHostInterfaceDataWidthINTEL + IR(20074, 28), // 113 MMHostInterfaceLatencyINTEL + IR(20171, 34), // 114 MMHostInterfaceReadWriteModeINTEL + IR(20235, 29), // 115 MMHostInterfaceMaxBurstINTEL + IR(20297, 32), // 116 MMHostInterfaceWaitRequestINTEL + IR(20356, 26), // 117 StableKernelArgumentINTEL + IR(20499, 14), // 118 InitModeINTEL + IR(20542, 28), // 119 ImplementInRegisterMapINTEL + IR(21876, 14), // 120 OutputLinesNV + IR(21910, 19), // 121 OutputPrimitivesNV + IR(21953, 23), // 122 DerivativeGroupQuadsNV + IR(22001, 24), // 123 DerivativeGroupLinearNV + IR(22044, 18), // 124 OutputTrianglesNV + IR(22792, 16), // 125 RayGenerationNV + IR(22824, 15), // 126 IntersectionNV + IR(22849, 9), // 127 AnyHitNV + IR(22872, 13), // 128 ClosestHitNV + IR(22893, 7), // 129 MissNV + IR(22912, 11), // 130 CallableNV + IR(23057, 23), // 131 AllowContractFastINTEL + IR(23093, 18), // 132 AllowReassocINTEL + IR(23319, 20), // 133 RuntimeAlignedINTEL + IR(23568, 22), // 134 MakeTexelAvailableKHR + IR(23607, 20), // 135 MakeTexelVisibleKHR + IR(23643, 19), // 136 NonPrivateTexelKHR + IR(23676, 17), // 137 VolatileTexelKHR + IR(24235, 27), // 138 InitOnDeviceReprogramINTEL + IR(24286, 23), // 139 InitOnDeviceResetINTEL + IR(24620, 21), // 140 DependencyArrayINTEL + IR(24660, 18), // 141 LoopCoalesceINTEL + IR(24700, 21), // 142 MaxInterleavingINTEL + IR(24748, 26), // 143 SpeculatedIterationsINTEL + IR(24789, 14), // 144 NoFusionINTEL + IR(24819, 15), // 145 LoopCountINTEL + IR(24861, 26), // 146 MaxReinvocationDelayINTEL + IR(25253, 24), // 147 MakePointerAvailableKHR + IR(25296, 22), // 148 MakePointerVisibleKHR + IR(25336, 21), // 149 NonPrivatePointerKHR + IR(25423, 10), // 150 VulkanKHR + IR(15540, 5), // 151 None + IR(25606, 16), // 152 OutputMemoryKHR + IR(25636, 17), // 153 MakeAvailableKHR + IR(25665, 15), // 154 MakeVisibleKHR + IR(25741, 28), // 155 PackedVectorFormat4x8BitKHR + IR(26056, 24), // 156 SkipBuiltinPrimitivesNV + IR(26796, 15), // 157 QueueFamilyKHR + IR(27167, 15), // 158 CallableDataNV + IR(27206, 23), // 159 IncomingCallableDataNV + IR(27243, 13), // 160 RayPayloadNV + IR(27272, 15), // 161 HitAttributeNV + IR(27309, 21), // 162 IncomingRayPayloadNV + IR(27352, 21), // 163 ShaderRecordBufferNV + IR(27395, 25), // 164 PhysicalStorageBufferEXT + IR(27521, 16), // 165 DeviceOnlyINTEL + IR(27552, 14), // 166 HostOnlyINTEL + IR(34790, 8), // 167 SDotKHR + IR(34803, 8), // 168 UDotKHR + IR(34817, 9), // 169 SUDotKHR + IR(34837, 14), // 170 SDotAccSatKHR + IR(34862, 14), // 171 UDotAccSatKHR + IR(34888, 15), // 172 SUDotAccSatKHR + IR(38346, 21), // 173 ReportIntersectionNV + IR(38521, 28), // 174 TypeAccelerationStructureNV + IR(38602, 23), // 175 RayQueryGetClusterIdNV + IR(40770, 21), // 176 DecorateStringGOOGLE + IR(40812, 27), // 177 MemberDecorateStringGOOGLE + IR(46069, 28), // 178 ArbitraryFloatSinCosPiINTEL + IR(46122, 24), // 179 ArbitraryFloatCastINTEL + IR(46178, 31), // 180 ArbitraryFloatCastFromIntINTEL + IR(46239, 29), // 181 ArbitraryFloatCastToIntINTEL + IR(46292, 23), // 182 ArbitraryFloatAddINTEL + IR(46339, 23), // 183 ArbitraryFloatSubINTEL + IR(46386, 23), // 184 ArbitraryFloatMulINTEL + IR(46433, 23), // 185 ArbitraryFloatDivINTEL + IR(46479, 22), // 186 ArbitraryFloatGTINTEL + IR(46524, 22), // 187 ArbitraryFloatGEINTEL + IR(46569, 22), // 188 ArbitraryFloatLTINTEL + IR(46614, 22), // 189 ArbitraryFloatLEINTEL + IR(46659, 22), // 190 ArbitraryFloatEQINTEL + IR(46707, 25), // 191 ArbitraryFloatRecipINTEL + IR(46758, 25), // 192 ArbitraryFloatRSqrtINTEL + IR(46808, 24), // 193 ArbitraryFloatCbrtINTEL + IR(46858, 25), // 194 ArbitraryFloatHypotINTEL + IR(46908, 24), // 195 ArbitraryFloatSqrtINTEL + IR(47592, 15), // 196 FixedSqrtINTEL + IR(47624, 16), // 197 FixedRecipINTEL + IR(47657, 16), // 198 FixedRsqrtINTEL + IR(47688, 14), // 199 FixedSinINTEL + IR(47717, 14), // 200 FixedCosINTEL + IR(47749, 17), // 201 FixedSinCosINTEL + IR(47783, 16), // 202 FixedSinPiINTEL + IR(47816, 16), // 203 FixedCosPiINTEL + IR(47852, 19), // 204 FixedSinCosPiINTEL + IR(47886, 14), // 205 FixedLogINTEL + IR(47915, 14), // 206 FixedExpINTEL + IR(47959, 29), // 207 PtrCastToCrossWorkgroupINTEL + IR(48018, 29), // 208 CrossWorkgroupCastToPtrINTEL + IR(48070, 22), // 209 ReadPipeBlockingINTEL + IR(48116, 23), // 210 WritePipeBlockingINTEL + IR(49068, 24), // 211 TaskSequenceCreateINTEL + IR(49116, 23), // 212 TaskSequenceAsyncINTEL + IR(49161, 21), // 213 TaskSequenceGetINTEL + IR(49208, 25), // 214 TaskSequenceReleaseINTEL + IR(49256, 22), // 215 TypeTaskSequenceINTEL }; // Array of capabilities, referenced by IndexRanges elsewhere. @@ -8378,212 +8906,217 @@ static const spv::Capability kCapabilitySpans[] = { spv::Capability::ShaderNonUniform, // 103 spv::Capability::VectorAnyINTEL, // 104 spv::Capability::Int8, // 105 - spv::Capability::FPGAClusterAttributesINTEL, // 106 + spv::Capability::FPGAClusterAttributesALTERA, // 106 spv::Capability::FPGAKernelAttributesINTEL, // 107 spv::Capability::Subgroup2DBlockIOINTEL, // 108 spv::Capability::VariableLengthArrayINTEL, // 109 spv::Capability::UntypedPointersKHR, // 110 spv::Capability::SpecConditionalINTEL, // 111 - spv::Capability::Shader, // 112 - spv::Capability::Kernel, // 113 - spv::Capability::Shader, // 114 - spv::Capability::UniformDecoration, // 115 - spv::Capability::GeometryStreams, // 116 - spv::Capability::TransformFeedback, // 117 - spv::Capability::Kernel, // 118 - spv::Capability::FloatControls2, // 119 - spv::Capability::Linkage, // 120 - spv::Capability::Float8EXT, // 121 - spv::Capability::SampleMaskOverrideCoverageNV, // 122 - spv::Capability::GeometryShaderPassthroughNV, // 123 - spv::Capability::MeshShadingNV, // 124 - spv::Capability::MeshShadingEXT, // 125 - spv::Capability::ShaderInvocationReorderNV, // 126 - spv::Capability::BindlessTextureNV, // 127 - spv::Capability::VectorComputeINTEL, // 128 - spv::Capability::IndirectReferencesINTEL, // 129 - spv::Capability::AsmINTEL, // 130 - spv::Capability::FunctionFloatControlINTEL, // 131 - spv::Capability::FPGAMemoryAttributesINTEL, // 132 - spv::Capability::FPGAMemoryAccessesINTEL, // 133 - spv::Capability::LoopFuseINTEL, // 134 - spv::Capability::FPGADSPControlINTEL, // 135 - spv::Capability::MemoryAccessAliasingINTEL, // 136 - spv::Capability::FPGAInvocationPipeliningAttributesINTEL, // 137 - spv::Capability::FPGABufferLocationINTEL, // 138 - spv::Capability::IOPipesINTEL, // 139 - spv::Capability::FPGAClusterAttributesV2INTEL, // 140 - spv::Capability::FPMaxErrorINTEL, // 141 - spv::Capability::FPGALatencyControlINTEL, // 142 - spv::Capability::FPGAArgumentInterfacesINTEL, // 143 - spv::Capability::GlobalVariableHostAccessINTEL, // 144 - spv::Capability::GlobalVariableFPGADecorationsINTEL, // 145 - spv::Capability::CacheControlsINTEL, // 146 - spv::Capability::TileImageColorReadAccessEXT, // 147 - spv::Capability::Geometry, // 148 - spv::Capability::Tessellation, // 149 - spv::Capability::MeshShadingNV, // 150 - spv::Capability::MeshShadingEXT, // 151 - spv::Capability::Geometry, // 152 - spv::Capability::MeshShadingNV, // 153 - spv::Capability::MeshShadingEXT, // 154 - spv::Capability::SubgroupDispatch, // 155 - spv::Capability::TileImageDepthReadAccessEXT, // 156 - spv::Capability::TileImageStencilReadAccessEXT, // 157 - spv::Capability::SampleMaskPostDepthCoverage, // 158 - spv::Capability::DenormPreserve, // 159 - spv::Capability::DenormFlushToZero, // 160 - spv::Capability::SignedZeroInfNanPreserve, // 161 - spv::Capability::RoundingModeRTE, // 162 - spv::Capability::RoundingModeRTZ, // 163 - spv::Capability::QuadControlKHR, // 164 - spv::Capability::ComputeDerivativeGroupQuadsKHR, // 165 - spv::Capability::ComputeDerivativeGroupLinearKHR, // 166 - spv::Capability::FragmentShaderPixelInterlockEXT, // 167 - spv::Capability::FragmentShaderSampleInterlockEXT, // 168 - spv::Capability::FragmentShaderShadingRateInterlockEXT, // 169 - spv::Capability::RoundToInfinityINTEL, // 170 - spv::Capability::KernelAttributesINTEL, // 171 - spv::Capability::FloatControls2, // 172 - spv::Capability::FPGAKernelAttributesv2INTEL, // 173 - spv::Capability::RegisterLimitsINTEL, // 174 + spv::Capability::CooperativeMatrixLayoutsARM, // 112 + spv::Capability::Shader, // 113 + spv::Capability::Kernel, // 114 + spv::Capability::Shader, // 115 + spv::Capability::UniformDecoration, // 116 + spv::Capability::GeometryStreams, // 117 + spv::Capability::TransformFeedback, // 118 + spv::Capability::Kernel, // 119 + spv::Capability::FloatControls2, // 120 + spv::Capability::Linkage, // 121 + spv::Capability::Float8EXT, // 122 + spv::Capability::SampleMaskOverrideCoverageNV, // 123 + spv::Capability::GeometryShaderPassthroughNV, // 124 + spv::Capability::MeshShadingNV, // 125 + spv::Capability::MeshShadingEXT, // 126 + spv::Capability::ShaderInvocationReorderNV, // 127 + spv::Capability::ShaderInvocationReorderEXT, // 128 + spv::Capability::BindlessTextureNV, // 129 + spv::Capability::VectorComputeINTEL, // 130 + spv::Capability::IndirectReferencesINTEL, // 131 + spv::Capability::AsmINTEL, // 132 + spv::Capability::FunctionFloatControlINTEL, // 133 + spv::Capability::FPGAMemoryAttributesALTERA, // 134 + spv::Capability::FPGAMemoryAccessesALTERA, // 135 + spv::Capability::LoopFuseALTERA, // 136 + spv::Capability::FPGADSPControlALTERA, // 137 + spv::Capability::MemoryAccessAliasingINTEL, // 138 + spv::Capability::FPGAInvocationPipeliningAttributesALTERA, // 139 + spv::Capability::FPGABufferLocationALTERA, // 140 + spv::Capability::IOPipesALTERA, // 141 + spv::Capability::FPGAClusterAttributesV2ALTERA, // 142 + spv::Capability::FPMaxErrorINTEL, // 143 + spv::Capability::FPGALatencyControlALTERA, // 144 + spv::Capability::FPGAArgumentInterfacesALTERA, // 145 + spv::Capability::GlobalVariableHostAccessINTEL, // 146 + spv::Capability::GlobalVariableFPGADecorationsALTERA, // 147 + spv::Capability::CacheControlsINTEL, // 148 + spv::Capability::TileImageColorReadAccessEXT, // 149 + spv::Capability::Geometry, // 150 + spv::Capability::Tessellation, // 151 + spv::Capability::MeshShadingNV, // 152 + spv::Capability::MeshShadingEXT, // 153 + spv::Capability::Geometry, // 154 + spv::Capability::MeshShadingNV, // 155 + spv::Capability::MeshShadingEXT, // 156 + spv::Capability::SubgroupDispatch, // 157 + spv::Capability::TileImageDepthReadAccessEXT, // 158 + spv::Capability::TileImageStencilReadAccessEXT, // 159 + spv::Capability::SampleMaskPostDepthCoverage, // 160 + spv::Capability::DenormPreserve, // 161 + spv::Capability::DenormFlushToZero, // 162 + spv::Capability::SignedZeroInfNanPreserve, // 163 + spv::Capability::RoundingModeRTE, // 164 + spv::Capability::RoundingModeRTZ, // 165 + spv::Capability::QuadControlKHR, // 166 + spv::Capability::ComputeDerivativeGroupQuadsKHR, // 167 + spv::Capability::ComputeDerivativeGroupLinearKHR, // 168 + spv::Capability::FragmentShaderPixelInterlockEXT, // 169 + spv::Capability::FragmentShaderSampleInterlockEXT, // 170 + spv::Capability::FragmentShaderShadingRateInterlockEXT, // 171 + spv::Capability::Shader64BitIndexingEXT, // 172 + spv::Capability::RoundToInfinityINTEL, // 173 + spv::Capability::KernelAttributesINTEL, // 174 spv::Capability::FloatControls2, // 175 - spv::Capability::FPFastMathModeINTEL, // 176 - spv::Capability::OptNoneEXT, // 177 - spv::Capability::RuntimeAlignedAttributeINTEL, // 178 - spv::Capability::Kernel, // 179 - spv::Capability::GroupNonUniformArithmetic, // 180 - spv::Capability::GroupNonUniformBallot, // 181 - spv::Capability::GroupNonUniformClustered, // 182 - spv::Capability::GroupNonUniformPartitionedNV, // 183 - spv::Capability::ImageGatherExtended, // 184 - spv::Capability::MinLod, // 185 - spv::Capability::VulkanMemoryModel, // 186 - spv::Capability::FPGALoopControlsINTEL, // 187 - spv::Capability::ArbitraryPrecisionFixedPointINTEL, // 188 - spv::Capability::RawAccessChainsNV, // 189 - spv::Capability::RayTraversalPrimitiveCullingKHR, // 190 - spv::Capability::RayTracingOpacityMicromapEXT, // 191 - spv::Capability::RayQueryKHR, // 192 - spv::Capability::StorageImageExtendedFormats, // 193 - spv::Capability::Int64ImageEXT, // 194 - spv::Capability::Shader, // 195 - spv::Capability::VectorComputeINTEL, // 196 - spv::Capability::GenericPointer, // 197 - spv::Capability::FunctionPointersINTEL, // 198 - spv::Capability::USMStorageClassesINTEL, // 199 - spv::Capability::CooperativeMatrixTensorAddressingNV, // 200 - spv::Capability::CooperativeMatrixBlockLoadsNV, // 201 - spv::Capability::TensorsARM, // 202 - spv::Capability::Addresses, // 203 - spv::Capability::PhysicalStorageBufferAddresses, // 204 - spv::Capability::LiteralSampler, // 205 + spv::Capability::FPGAKernelAttributesv2INTEL, // 176 + spv::Capability::RegisterLimitsINTEL, // 177 + spv::Capability::FloatControls2, // 178 + spv::Capability::FPFastMathModeINTEL, // 179 + spv::Capability::OptNoneEXT, // 180 + spv::Capability::RuntimeAlignedAttributeALTERA, // 181 + spv::Capability::Kernel, // 182 + spv::Capability::GroupNonUniformArithmetic, // 183 + spv::Capability::GroupNonUniformBallot, // 184 + spv::Capability::GroupNonUniformClustered, // 185 + spv::Capability::GroupNonUniformPartitionedNV, // 186 + spv::Capability::ImageGatherExtended, // 187 + spv::Capability::MinLod, // 188 + spv::Capability::VulkanMemoryModel, // 189 + spv::Capability::FPGALoopControlsALTERA, // 190 + spv::Capability::ArbitraryPrecisionFixedPointALTERA, // 191 + spv::Capability::RawAccessChainsNV, // 192 + spv::Capability::RayTraversalPrimitiveCullingKHR, // 193 + spv::Capability::RayTracingOpacityMicromapEXT, // 194 + spv::Capability::RayQueryKHR, // 195 + spv::Capability::StorageImageExtendedFormats, // 196 + spv::Capability::Int64ImageEXT, // 197 + spv::Capability::Shader, // 198 + spv::Capability::VectorComputeINTEL, // 199 + spv::Capability::GenericPointer, // 200 + spv::Capability::FunctionPointersINTEL, // 201 + spv::Capability::USMStorageClassesALTERA, // 202 + spv::Capability::CooperativeMatrixTensorAddressingNV, // 203 + spv::Capability::CooperativeMatrixBlockLoadsNV, // 204 + spv::Capability::TensorsARM, // 205 spv::Capability::Addresses, // 206 - spv::Capability::UntypedPointersKHR, // 207 - spv::Capability::Addresses, // 208 - spv::Capability::VariablePointers, // 209 - spv::Capability::VariablePointersStorageBuffer, // 210 - spv::Capability::PhysicalStorageBufferAddresses, // 211 - spv::Capability::Kernel, // 212 - spv::Capability::ImageQuery, // 213 - spv::Capability::ImageQuery, // 214 - spv::Capability::Shader, // 215 - spv::Capability::BitInstructions, // 216 - spv::Capability::DerivativeControl, // 217 - spv::Capability::Groups, // 218 - spv::Capability::SparseResidency, // 219 - spv::Capability::PipeStorage, // 220 - spv::Capability::NamedBarrier, // 221 - spv::Capability::GroupNonUniformVote, // 222 - spv::Capability::GroupNonUniformBallot, // 223 - spv::Capability::GroupNonUniformShuffle, // 224 - spv::Capability::GroupNonUniformShuffleRelative, // 225 - spv::Capability::GroupNonUniformArithmetic, // 226 - spv::Capability::GroupNonUniformClustered, // 227 - spv::Capability::GroupNonUniformPartitionedNV, // 228 - spv::Capability::GroupNonUniformQuad, // 229 - spv::Capability::Addresses, // 230 - spv::Capability::VariablePointers, // 231 - spv::Capability::VariablePointersStorageBuffer, // 232 - spv::Capability::GraphARM, // 233 - spv::Capability::UntypedPointersKHR, // 234 - spv::Capability::SubgroupBallotKHR, // 235 - spv::Capability::FMAKHR, // 236 - spv::Capability::SubgroupVoteKHR, // 237 - spv::Capability::GroupNonUniformRotateKHR, // 238 - spv::Capability::RayTracingKHR, // 239 - spv::Capability::RayQueryKHR, // 240 - spv::Capability::DotProduct, // 241 - spv::Capability::ReplicatedCompositesEXT, // 242 - spv::Capability::TextureSampleWeightedQCOM, // 243 - spv::Capability::TextureBoxFilterQCOM, // 244 - spv::Capability::TextureBlockMatchQCOM, // 245 - spv::Capability::CooperativeMatrixConversionQCOM, // 246 - spv::Capability::TextureBlockMatch2QCOM, // 247 - spv::Capability::FragmentMaskAMD, // 248 - spv::Capability::ShaderClockKHR, // 249 - spv::Capability::ShaderInvocationReorderNV, // 250 - spv::Capability::RayTracingMotionBlurNV, // 251 - spv::Capability::ImageFootprintNV, // 252 - spv::Capability::CooperativeVectorNV, // 253 - spv::Capability::CooperativeVectorTrainingNV, // 254 - spv::Capability::CooperativeMatrixConversionsNV, // 255 - spv::Capability::DisplacementMicromapNV, // 256 - spv::Capability::RayQueryPositionFetchKHR, // 257 - spv::Capability::RayTracingNV, // 258 - spv::Capability::RayTracingKHR, // 259 - spv::Capability::RayQueryKHR, // 260 - spv::Capability::DisplacementMicromapNV, // 261 - spv::Capability::CooperativeMatrixNV, // 262 - spv::Capability::FragmentShaderSampleInterlockEXT, // 263 - spv::Capability::FragmentShaderPixelInterlockEXT, // 264 - spv::Capability::FragmentShaderShadingRateInterlockEXT, // 265 - spv::Capability::CooperativeMatrixReductionsNV, // 266 - spv::Capability::CooperativeMatrixPerElementOperationsNV, // 267 - spv::Capability::TensorAddressingNV, // 268 - spv::Capability::DemoteToHelperInvocation, // 269 - spv::Capability::SubgroupShuffleINTEL, // 270 - spv::Capability::SubgroupBufferBlockIOINTEL, // 271 - spv::Capability::SubgroupImageBlockIOINTEL, // 272 - spv::Capability::SubgroupImageMediaBlockIOINTEL, // 273 - spv::Capability::IntegerFunctions2INTEL, // 274 - spv::Capability::AtomicFloat16MinMaxEXT, // 275 - spv::Capability::AtomicFloat32MinMaxEXT, // 276 - spv::Capability::AtomicFloat64MinMaxEXT, // 277 - spv::Capability::AtomicFloat16VectorNV, // 278 - spv::Capability::ExpectAssumeKHR, // 279 - spv::Capability::SubgroupAvcMotionEstimationINTEL, // 280 - spv::Capability::SubgroupAvcMotionEstimationINTEL, // 281 - spv::Capability::SubgroupAvcMotionEstimationIntraINTEL, // 282 - spv::Capability::SubgroupAvcMotionEstimationINTEL, // 283 - spv::Capability::SubgroupAvcMotionEstimationChromaINTEL, // 284 - spv::Capability::VariableLengthArrayINTEL, // 285 - spv::Capability::ArbitraryPrecisionFloatingPointINTEL, // 286 - spv::Capability::UnstructuredLoopControlsINTEL, // 287 - spv::Capability::BlockingPipesINTEL, // 288 - spv::Capability::FPGARegINTEL, // 289 - spv::Capability::AtomicFloat16AddEXT, // 290 - spv::Capability::AtomicFloat32AddEXT, // 291 - spv::Capability::AtomicFloat64AddEXT, // 292 - spv::Capability::AtomicFloat16VectorNV, // 293 - spv::Capability::LongCompositesINTEL, // 294 - spv::Capability::BFloat16ConversionINTEL, // 295 - spv::Capability::SplitBarrierINTEL, // 296 - spv::Capability::ArithmeticFenceEXT, // 297 - spv::Capability::TaskSequenceINTEL, // 298 - spv::Capability::SubgroupBufferPrefetchINTEL, // 299 - spv::Capability::Subgroup2DBlockTransformINTEL, // 300 - spv::Capability::Subgroup2DBlockTransposeINTEL, // 301 - spv::Capability::SubgroupMatrixMultiplyAccumulateINTEL, // 302 - spv::Capability::TernaryBitwiseFunctionINTEL, // 303 - spv::Capability::UntypedVariableLengthArrayINTEL, // 304 - spv::Capability::FunctionVariantsINTEL, // 305 - spv::Capability::GroupUniformArithmeticKHR, // 306 - spv::Capability::TensorFloat32RoundingINTEL, // 307 - spv::Capability::MaskedGatherScatterINTEL, // 308 - spv::Capability::BindlessImagesINTEL, // 309 - spv::Capability::Float64, // 310 - spv::Capability::InterpolationFunction, // 311 + spv::Capability::PhysicalStorageBufferAddresses, // 207 + spv::Capability::LiteralSampler, // 208 + spv::Capability::Addresses, // 209 + spv::Capability::UntypedPointersKHR, // 210 + spv::Capability::Addresses, // 211 + spv::Capability::VariablePointers, // 212 + spv::Capability::VariablePointersStorageBuffer, // 213 + spv::Capability::PhysicalStorageBufferAddresses, // 214 + spv::Capability::Kernel, // 215 + spv::Capability::ImageQuery, // 216 + spv::Capability::ImageQuery, // 217 + spv::Capability::Shader, // 218 + spv::Capability::BitInstructions, // 219 + spv::Capability::DerivativeControl, // 220 + spv::Capability::Groups, // 221 + spv::Capability::SparseResidency, // 222 + spv::Capability::PipeStorage, // 223 + spv::Capability::NamedBarrier, // 224 + spv::Capability::GroupNonUniformVote, // 225 + spv::Capability::GroupNonUniformBallot, // 226 + spv::Capability::GroupNonUniformShuffle, // 227 + spv::Capability::GroupNonUniformShuffleRelative, // 228 + spv::Capability::GroupNonUniformArithmetic, // 229 + spv::Capability::GroupNonUniformClustered, // 230 + spv::Capability::GroupNonUniformPartitionedNV, // 231 + spv::Capability::GroupNonUniformQuad, // 232 + spv::Capability::Addresses, // 233 + spv::Capability::VariablePointers, // 234 + spv::Capability::VariablePointersStorageBuffer, // 235 + spv::Capability::GraphARM, // 236 + spv::Capability::UntypedPointersKHR, // 237 + spv::Capability::SubgroupBallotKHR, // 238 + spv::Capability::FMAKHR, // 239 + spv::Capability::SubgroupVoteKHR, // 240 + spv::Capability::GroupNonUniformRotateKHR, // 241 + spv::Capability::RayTracingKHR, // 242 + spv::Capability::RayQueryKHR, // 243 + spv::Capability::DotProduct, // 244 + spv::Capability::ReplicatedCompositesEXT, // 245 + spv::Capability::TextureSampleWeightedQCOM, // 246 + spv::Capability::TextureBoxFilterQCOM, // 247 + spv::Capability::TextureBlockMatchQCOM, // 248 + spv::Capability::CooperativeMatrixConversionQCOM, // 249 + spv::Capability::TextureBlockMatch2QCOM, // 250 + spv::Capability::FragmentMaskAMD, // 251 + spv::Capability::ShaderClockKHR, // 252 + spv::Capability::ShaderInvocationReorderNV, // 253 + spv::Capability::RayTracingMotionBlurNV, // 254 + spv::Capability::ImageFootprintNV, // 255 + spv::Capability::CooperativeVectorNV, // 256 + spv::Capability::CooperativeVectorTrainingNV, // 257 + spv::Capability::CooperativeMatrixConversionsNV, // 258 + spv::Capability::DisplacementMicromapNV, // 259 + spv::Capability::ShaderInvocationReorderEXT, // 260 + spv::Capability::RayTracingMotionBlurNV, // 261 + spv::Capability::RayQueryPositionFetchKHR, // 262 + spv::Capability::RayTracingNV, // 263 + spv::Capability::RayTracingKHR, // 264 + spv::Capability::RayQueryKHR, // 265 + spv::Capability::DisplacementMicromapNV, // 266 + spv::Capability::CooperativeMatrixNV, // 267 + spv::Capability::FragmentShaderSampleInterlockEXT, // 268 + spv::Capability::FragmentShaderPixelInterlockEXT, // 269 + spv::Capability::FragmentShaderShadingRateInterlockEXT, // 270 + spv::Capability::CooperativeMatrixReductionsNV, // 271 + spv::Capability::CooperativeMatrixPerElementOperationsNV, // 272 + spv::Capability::TensorAddressingNV, // 273 + spv::Capability::DemoteToHelperInvocation, // 274 + spv::Capability::SubgroupShuffleINTEL, // 275 + spv::Capability::SubgroupBufferBlockIOINTEL, // 276 + spv::Capability::SubgroupImageBlockIOINTEL, // 277 + spv::Capability::SubgroupImageMediaBlockIOINTEL, // 278 + spv::Capability::IntegerFunctions2INTEL, // 279 + spv::Capability::AtomicFloat16MinMaxEXT, // 280 + spv::Capability::AtomicFloat32MinMaxEXT, // 281 + spv::Capability::AtomicFloat64MinMaxEXT, // 282 + spv::Capability::AtomicFloat16VectorNV, // 283 + spv::Capability::ExpectAssumeKHR, // 284 + spv::Capability::SubgroupAvcMotionEstimationINTEL, // 285 + spv::Capability::SubgroupAvcMotionEstimationINTEL, // 286 + spv::Capability::SubgroupAvcMotionEstimationIntraINTEL, // 287 + spv::Capability::SubgroupAvcMotionEstimationINTEL, // 288 + spv::Capability::SubgroupAvcMotionEstimationChromaINTEL, // 289 + spv::Capability::VariableLengthArrayINTEL, // 290 + spv::Capability::ArbitraryPrecisionFloatingPointALTERA, // 291 + spv::Capability::UnstructuredLoopControlsINTEL, // 292 + spv::Capability::BlockingPipesALTERA, // 293 + spv::Capability::FPGARegALTERA, // 294 + spv::Capability::AtomicFloat16AddEXT, // 295 + spv::Capability::AtomicFloat32AddEXT, // 296 + spv::Capability::AtomicFloat64AddEXT, // 297 + spv::Capability::AtomicFloat16VectorNV, // 298 + spv::Capability::LongCompositesINTEL, // 299 + spv::Capability::BFloat16ConversionINTEL, // 300 + spv::Capability::SplitBarrierINTEL, // 301 + spv::Capability::ArithmeticFenceEXT, // 302 + spv::Capability::TaskSequenceALTERA, // 303 + spv::Capability::SubgroupBufferPrefetchINTEL, // 304 + spv::Capability::Subgroup2DBlockTransformINTEL, // 305 + spv::Capability::Subgroup2DBlockTransposeINTEL, // 306 + spv::Capability::SubgroupMatrixMultiplyAccumulateINTEL, // 307 + spv::Capability::TernaryBitwiseFunctionINTEL, // 308 + spv::Capability::UntypedVariableLengthArrayINTEL, // 309 + spv::Capability::FunctionVariantsINTEL, // 310 + spv::Capability::GroupUniformArithmeticKHR, // 311 + spv::Capability::TensorFloat32RoundingINTEL, // 312 + spv::Capability::MaskedGatherScatterINTEL, // 313 + spv::Capability::BindlessImagesINTEL, // 314 + spv::Capability::Float64, // 315 + spv::Capability::InterpolationFunction, // 316 }; // Array of extensions, referenced by IndexRanges elsewhere. @@ -8674,99 +9207,121 @@ static const spvtools::Extension kExtensionSpans[] = { spvtools::Extension::kSPV_NV_displacement_micromap, // 82 spvtools::Extension::kSPV_EXT_opacity_micromap, // 83 spvtools::Extension::kSPV_NV_shader_invocation_reorder, // 84 - spvtools::Extension::kSPV_NV_bindless_texture, // 85 - spvtools::Extension::kSPV_NV_cooperative_vector, // 86 - spvtools::Extension::kSPV_NV_shader_atomic_fp16_vector, // 87 - spvtools::Extension::kSPV_NV_raw_access_chains, // 88 - spvtools::Extension::kSPV_NV_cooperative_matrix2, // 89 - spvtools::Extension::kSPV_NV_tensor_addressing, // 90 - spvtools::Extension::kSPV_INTEL_subgroups, // 91 - spvtools::Extension::kSPV_INTEL_media_block_io, // 92 - spvtools::Extension::kSPV_INTEL_float_controls2, // 93 - spvtools::Extension::kSPV_INTEL_shader_integer_functions2, // 94 - spvtools::Extension::kSPV_INTEL_function_pointers, // 95 - spvtools::Extension::kSPV_INTEL_inline_assembly, // 96 - spvtools::Extension::kSPV_EXT_shader_atomic_float_min_max, // 97 - spvtools::Extension::kSPV_INTEL_vector_compute, // 98 - spvtools::Extension::kSPV_KHR_expect_assume, // 99 - spvtools::Extension::kSPV_INTEL_device_side_avc_motion_estimation, // 100 - spvtools::Extension::kSPV_INTEL_variable_length_array, // 101 - spvtools::Extension::kSPV_INTEL_fpga_memory_attributes, // 102 - spvtools::Extension::kSPV_INTEL_fp_fast_math_mode, // 103 - spvtools::Extension::kSPV_INTEL_arbitrary_precision_integers, // 104 - spvtools::Extension::kSPV_INTEL_arbitrary_precision_floating_point, // 105 - spvtools::Extension::kSPV_INTEL_unstructured_loop_controls, // 106 - spvtools::Extension::kSPV_INTEL_fpga_loop_controls, // 107 - spvtools::Extension::kSPV_INTEL_kernel_attributes, // 108 - spvtools::Extension::kSPV_INTEL_fpga_memory_accesses, // 109 - spvtools::Extension::kSPV_INTEL_fpga_cluster_attributes, // 110 - spvtools::Extension::kSPV_INTEL_loop_fuse, // 111 - spvtools::Extension::kSPV_INTEL_fpga_dsp_control, // 112 - spvtools::Extension::kSPV_INTEL_memory_access_aliasing, // 113 - spvtools::Extension::kSPV_INTEL_fpga_invocation_pipelining_attributes, // 114 - spvtools::Extension::kSPV_INTEL_fpga_buffer_location, // 115 - spvtools::Extension::kSPV_INTEL_arbitrary_precision_fixed_point, // 116 - spvtools::Extension::kSPV_INTEL_usm_storage_classes, // 117 - spvtools::Extension::kSPV_INTEL_runtime_aligned, // 118 - spvtools::Extension::kSPV_INTEL_io_pipes, // 119 - spvtools::Extension::kSPV_INTEL_blocking_pipes, // 120 - spvtools::Extension::kSPV_INTEL_fpga_reg, // 121 - spvtools::Extension::kSPV_KHR_integer_dot_product, // 122 - spvtools::Extension::kSPV_KHR_cooperative_matrix, // 123 - spvtools::Extension::kSPV_EXT_replicated_composites, // 124 - spvtools::Extension::kSPV_KHR_bit_instructions, // 125 - spvtools::Extension::kSPV_KHR_subgroup_rotate, // 126 - spvtools::Extension::kSPV_KHR_float_controls2, // 127 - spvtools::Extension::kSPV_KHR_fma, // 128 - spvtools::Extension::kSPV_EXT_shader_atomic_float_add, // 129 - spvtools::Extension::kSPV_INTEL_long_composites, // 130 - spvtools::Extension::kSPV_EXT_optnone, // 131 - spvtools::Extension::kSPV_INTEL_optnone, // 132 - spvtools::Extension::kSPV_EXT_shader_atomic_float16_add, // 133 - spvtools::Extension::kSPV_INTEL_debug_module, // 134 - spvtools::Extension::kSPV_INTEL_bfloat16_conversion, // 135 - spvtools::Extension::kSPV_INTEL_split_barrier, // 136 - spvtools::Extension::kSPV_EXT_arithmetic_fence, // 137 - spvtools::Extension::kSPV_INTEL_task_sequence, // 138 - spvtools::Extension::kSPV_INTEL_fp_max_error, // 139 - spvtools::Extension::kSPV_INTEL_fpga_latency_control, // 140 - spvtools::Extension::kSPV_INTEL_fpga_argument_interfaces, // 141 - spvtools::Extension::kSPV_INTEL_global_variable_host_access, // 142 - spvtools::Extension::kSPV_INTEL_global_variable_fpga_decorations, // 143 - spvtools::Extension::kSPV_INTEL_subgroup_buffer_prefetch, // 144 - spvtools::Extension::kSPV_INTEL_2d_block_io, // 145 - spvtools::Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate, // 146 - spvtools::Extension::kSPV_INTEL_ternary_bitwise_function, // 147 - spvtools::Extension::kSPV_INTEL_function_variants, // 148 - spvtools::Extension::kSPV_KHR_uniform_group_instructions, // 149 - spvtools::Extension::kSPV_INTEL_tensor_float32_conversion, // 150 - spvtools::Extension::kSPV_INTEL_masked_gather_scatter, // 151 - spvtools::Extension::kSPV_INTEL_cache_controls, // 152 - spvtools::Extension::kSPV_INTEL_maximum_registers, // 153 - spvtools::Extension::kSPV_INTEL_bindless_images, // 154 - spvtools::Extension::kSPV_KHR_no_integer_wrap_decoration, // 155 - spvtools::Extension::kSPV_NV_mesh_shader, // 156 - spvtools::Extension::kSPV_EXT_mesh_shader, // 157 - spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 158 - spvtools::Extension::kSPV_GOOGLE_user_type, // 159 - spvtools::Extension::kSPV_KHR_subgroup_uniform_control_flow, // 160 - spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 161 - spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 162 - spvtools::Extension::kSPV_EXT_shader_stencil_export, // 163 - spvtools::Extension::kSPV_KHR_maximal_reconvergence, // 164 - spvtools::Extension::kSPV_KHR_linkonce_odr, // 165 - spvtools::Extension::kSPV_KHR_storage_buffer_storage_class, // 166 - spvtools::Extension::kSPV_KHR_variable_pointers, // 167 - spvtools::Extension::kSPV_KHR_terminate_invocation, // 168 - spvtools::Extension::kSPV_KHR_relaxed_extended_instruction, // 169 - spvtools::Extension::kSPV_KHR_ray_tracing, // 170 - spvtools::Extension::kSPV_KHR_ray_query, // 171 - spvtools::Extension::kSPV_NV_ray_tracing, // 172 - spvtools::Extension::kSPV_KHR_ray_tracing, // 173 - spvtools::Extension::kSPV_KHR_ray_query, // 174 - spvtools::Extension::kSPV_NV_displacement_micromap, // 175 - spvtools::Extension::kSPV_GOOGLE_decorate_string, // 176 - spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 177 + spvtools::Extension::kSPV_EXT_shader_invocation_reorder, // 85 + spvtools::Extension::kSPV_NV_bindless_texture, // 86 + spvtools::Extension::kSPV_NV_cooperative_vector, // 87 + spvtools::Extension::kSPV_NV_shader_atomic_fp16_vector, // 88 + spvtools::Extension::kSPV_NV_raw_access_chains, // 89 + spvtools::Extension::kSPV_EXT_shader_64bit_indexing, // 90 + spvtools::Extension::kSPV_NV_cooperative_matrix2, // 91 + spvtools::Extension::kSPV_NV_tensor_addressing, // 92 + spvtools::Extension::kSPV_INTEL_subgroups, // 93 + spvtools::Extension::kSPV_INTEL_media_block_io, // 94 + spvtools::Extension::kSPV_INTEL_float_controls2, // 95 + spvtools::Extension::kSPV_INTEL_shader_integer_functions2, // 96 + spvtools::Extension::kSPV_INTEL_function_pointers, // 97 + spvtools::Extension::kSPV_INTEL_inline_assembly, // 98 + spvtools::Extension::kSPV_EXT_shader_atomic_float_min_max, // 99 + spvtools::Extension::kSPV_INTEL_vector_compute, // 100 + spvtools::Extension::kSPV_KHR_expect_assume, // 101 + spvtools::Extension::kSPV_INTEL_device_side_avc_motion_estimation, // 102 + spvtools::Extension::kSPV_INTEL_variable_length_array, // 103 + spvtools::Extension::kSPV_ALTERA_fpga_memory_attributes, // 104 + spvtools::Extension::kSPV_INTEL_fpga_memory_attributes, // 105 + spvtools::Extension::kSPV_INTEL_fp_fast_math_mode, // 106 + spvtools::Extension::kSPV_ALTERA_arbitrary_precision_integers, // 107 + spvtools::Extension::kSPV_INTEL_arbitrary_precision_integers, // 108 + spvtools::Extension::kSPV_ALTERA_arbitrary_precision_floating_point, // 109 + spvtools::Extension::kSPV_INTEL_arbitrary_precision_floating_point, // 110 + spvtools::Extension::kSPV_INTEL_unstructured_loop_controls, // 111 + spvtools::Extension::kSPV_ALTERA_fpga_loop_controls, // 112 + spvtools::Extension::kSPV_INTEL_fpga_loop_controls, // 113 + spvtools::Extension::kSPV_INTEL_kernel_attributes, // 114 + spvtools::Extension::kSPV_ALTERA_fpga_memory_accesses, // 115 + spvtools::Extension::kSPV_INTEL_fpga_memory_accesses, // 116 + spvtools::Extension::kSPV_ALTERA_fpga_cluster_attributes, // 117 + spvtools::Extension::kSPV_INTEL_fpga_cluster_attributes, // 118 + spvtools::Extension::kSPV_ALTERA_loop_fuse, // 119 + spvtools::Extension::kSPV_INTEL_loop_fuse, // 120 + spvtools::Extension::kSPV_ALTERA_fpga_dsp_control, // 121 + spvtools::Extension::kSPV_INTEL_fpga_dsp_control, // 122 + spvtools::Extension::kSPV_INTEL_memory_access_aliasing, // 123 + spvtools::Extension::kSPV_ALTERA_fpga_invocation_pipelining_attributes, // 124 + spvtools::Extension::kSPV_INTEL_fpga_invocation_pipelining_attributes, // 125 + spvtools::Extension::kSPV_ALTERA_fpga_buffer_location, // 126 + spvtools::Extension::kSPV_INTEL_fpga_buffer_location, // 127 + spvtools::Extension::kSPV_ALTERA_arbitrary_precision_fixed_point, // 128 + spvtools::Extension::kSPV_INTEL_arbitrary_precision_fixed_point, // 129 + spvtools::Extension::kSPV_ALTERA_usm_storage_classes, // 130 + spvtools::Extension::kSPV_INTEL_usm_storage_classes, // 131 + spvtools::Extension::kSPV_ALTERA_runtime_aligned, // 132 + spvtools::Extension::kSPV_INTEL_runtime_aligned, // 133 + spvtools::Extension::kSPV_ALTERA_io_pipes, // 134 + spvtools::Extension::kSPV_INTEL_io_pipes, // 135 + spvtools::Extension::kSPV_ALTERA_blocking_pipes, // 136 + spvtools::Extension::kSPV_INTEL_blocking_pipes, // 137 + spvtools::Extension::kSPV_ALTERA_fpga_reg, // 138 + spvtools::Extension::kSPV_INTEL_fpga_reg, // 139 + spvtools::Extension::kSPV_KHR_integer_dot_product, // 140 + spvtools::Extension::kSPV_KHR_cooperative_matrix, // 141 + spvtools::Extension::kSPV_EXT_replicated_composites, // 142 + spvtools::Extension::kSPV_KHR_bit_instructions, // 143 + spvtools::Extension::kSPV_KHR_subgroup_rotate, // 144 + spvtools::Extension::kSPV_KHR_float_controls2, // 145 + spvtools::Extension::kSPV_KHR_fma, // 146 + spvtools::Extension::kSPV_EXT_shader_atomic_float_add, // 147 + spvtools::Extension::kSPV_INTEL_long_composites, // 148 + spvtools::Extension::kSPV_EXT_optnone, // 149 + spvtools::Extension::kSPV_INTEL_optnone, // 150 + spvtools::Extension::kSPV_EXT_shader_atomic_float16_add, // 151 + spvtools::Extension::kSPV_INTEL_debug_module, // 152 + spvtools::Extension::kSPV_INTEL_bfloat16_conversion, // 153 + spvtools::Extension::kSPV_INTEL_split_barrier, // 154 + spvtools::Extension::kSPV_EXT_arithmetic_fence, // 155 + spvtools::Extension::kSPV_ALTERA_task_sequence, // 156 + spvtools::Extension::kSPV_INTEL_task_sequence, // 157 + spvtools::Extension::kSPV_INTEL_fp_max_error, // 158 + spvtools::Extension::kSPV_ALTERA_fpga_latency_control, // 159 + spvtools::Extension::kSPV_INTEL_fpga_latency_control, // 160 + spvtools::Extension::kSPV_ALTERA_fpga_argument_interfaces, // 161 + spvtools::Extension::kSPV_INTEL_fpga_argument_interfaces, // 162 + spvtools::Extension::kSPV_INTEL_global_variable_host_access, // 163 + spvtools::Extension::kSPV_ALTERA_global_variable_fpga_decorations, // 164 + spvtools::Extension::kSPV_INTEL_global_variable_fpga_decorations, // 165 + spvtools::Extension::kSPV_INTEL_subgroup_buffer_prefetch, // 166 + spvtools::Extension::kSPV_INTEL_2d_block_io, // 167 + spvtools::Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate, // 168 + spvtools::Extension::kSPV_INTEL_ternary_bitwise_function, // 169 + spvtools::Extension::kSPV_INTEL_function_variants, // 170 + spvtools::Extension::kSPV_KHR_uniform_group_instructions, // 171 + spvtools::Extension::kSPV_INTEL_tensor_float32_conversion, // 172 + spvtools::Extension::kSPV_INTEL_masked_gather_scatter, // 173 + spvtools::Extension::kSPV_INTEL_cache_controls, // 174 + spvtools::Extension::kSPV_INTEL_maximum_registers, // 175 + spvtools::Extension::kSPV_INTEL_bindless_images, // 176 + spvtools::Extension::kSPV_KHR_no_integer_wrap_decoration, // 177 + spvtools::Extension::kSPV_NV_mesh_shader, // 178 + spvtools::Extension::kSPV_EXT_mesh_shader, // 179 + spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 180 + spvtools::Extension::kSPV_GOOGLE_user_type, // 181 + spvtools::Extension::kSPV_KHR_subgroup_uniform_control_flow, // 182 + spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 183 + spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 184 + spvtools::Extension::kSPV_EXT_shader_stencil_export, // 185 + spvtools::Extension::kSPV_KHR_maximal_reconvergence, // 186 + spvtools::Extension::kSPV_KHR_linkonce_odr, // 187 + spvtools::Extension::kSPV_KHR_storage_buffer_storage_class, // 188 + spvtools::Extension::kSPV_KHR_variable_pointers, // 189 + spvtools::Extension::kSPV_KHR_terminate_invocation, // 190 + spvtools::Extension::kSPV_KHR_relaxed_extended_instruction, // 191 + spvtools::Extension::kSPV_KHR_ray_tracing, // 192 + spvtools::Extension::kSPV_KHR_ray_query, // 193 + spvtools::Extension::kSPV_NV_ray_tracing, // 194 + spvtools::Extension::kSPV_KHR_ray_tracing, // 195 + spvtools::Extension::kSPV_KHR_ray_query, // 196 + spvtools::Extension::kSPV_NV_displacement_micromap, // 197 + spvtools::Extension::kSPV_GOOGLE_decorate_string, // 198 + spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 199 }; // Array of operand types, referenced by IndexRanges elsewhere. @@ -9362,337 +9917,337 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 587 SPV_OPERAND_TYPE_ID, // 588 SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 589 - SPV_OPERAND_TYPE_RESULT_ID, // 590 + SPV_OPERAND_TYPE_ID, // 590 SPV_OPERAND_TYPE_ID, // 591 - SPV_OPERAND_TYPE_SCOPE_ID, // 592 - SPV_OPERAND_TYPE_ID, // 593 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 592 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 593 SPV_OPERAND_TYPE_ID, // 594 - SPV_OPERAND_TYPE_TYPE_ID, // 595 - SPV_OPERAND_TYPE_RESULT_ID, // 596 + SPV_OPERAND_TYPE_ID, // 595 + SPV_OPERAND_TYPE_ID, // 596 SPV_OPERAND_TYPE_ID, // 597 SPV_OPERAND_TYPE_ID, // 598 SPV_OPERAND_TYPE_ID, // 599 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 600 + SPV_OPERAND_TYPE_ID, // 600 SPV_OPERAND_TYPE_ID, // 601 SPV_OPERAND_TYPE_ID, // 602 SPV_OPERAND_TYPE_ID, // 603 SPV_OPERAND_TYPE_ID, // 604 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 605 - SPV_OPERAND_TYPE_TYPE_ID, // 606 - SPV_OPERAND_TYPE_RESULT_ID, // 607 + SPV_OPERAND_TYPE_ID, // 605 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 606 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 607 SPV_OPERAND_TYPE_ID, // 608 - SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE, // 609 + SPV_OPERAND_TYPE_ID, // 609 SPV_OPERAND_TYPE_ID, // 610 - SPV_OPERAND_TYPE_TYPE_ID, // 611 - SPV_OPERAND_TYPE_RESULT_ID, // 612 + SPV_OPERAND_TYPE_ID, // 611 + SPV_OPERAND_TYPE_ID, // 612 SPV_OPERAND_TYPE_ID, // 613 SPV_OPERAND_TYPE_ID, // 614 SPV_OPERAND_TYPE_ID, // 615 - SPV_OPERAND_TYPE_MEMORY_ACCESS, // 616 - SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 617 + SPV_OPERAND_TYPE_ID, // 616 + SPV_OPERAND_TYPE_ID, // 617 SPV_OPERAND_TYPE_ID, // 618 SPV_OPERAND_TYPE_ID, // 619 SPV_OPERAND_TYPE_ID, // 620 - SPV_OPERAND_TYPE_MEMORY_ACCESS, // 621 - SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 622 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 621 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 622 SPV_OPERAND_TYPE_RESULT_ID, // 623 SPV_OPERAND_TYPE_ID, // 624 - SPV_OPERAND_TYPE_ID, // 625 - SPV_OPERAND_TYPE_VARIABLE_ID, // 626 - SPV_OPERAND_TYPE_TYPE_ID, // 627 - SPV_OPERAND_TYPE_RESULT_ID, // 628 - SPV_OPERAND_TYPE_ID, // 629 + SPV_OPERAND_TYPE_SCOPE_ID, // 625 + SPV_OPERAND_TYPE_ID, // 626 + SPV_OPERAND_TYPE_ID, // 627 + SPV_OPERAND_TYPE_TYPE_ID, // 628 + SPV_OPERAND_TYPE_RESULT_ID, // 629 SPV_OPERAND_TYPE_ID, // 630 SPV_OPERAND_TYPE_ID, // 631 SPV_OPERAND_TYPE_ID, // 632 - SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS, // 633 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 633 SPV_OPERAND_TYPE_ID, // 634 SPV_OPERAND_TYPE_ID, // 635 SPV_OPERAND_TYPE_ID, // 636 SPV_OPERAND_TYPE_ID, // 637 - SPV_OPERAND_TYPE_ID, // 638 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 638 SPV_OPERAND_TYPE_TYPE_ID, // 639 SPV_OPERAND_TYPE_RESULT_ID, // 640 SPV_OPERAND_TYPE_ID, // 641 - SPV_OPERAND_TYPE_ID, // 642 - SPV_OPERAND_TYPE_LITERAL_STRING, // 643 - SPV_OPERAND_TYPE_LITERAL_STRING, // 644 - SPV_OPERAND_TYPE_TYPE_ID, // 645 - SPV_OPERAND_TYPE_RESULT_ID, // 646 + SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE, // 642 + SPV_OPERAND_TYPE_ID, // 643 + SPV_OPERAND_TYPE_TYPE_ID, // 644 + SPV_OPERAND_TYPE_RESULT_ID, // 645 + SPV_OPERAND_TYPE_ID, // 646 SPV_OPERAND_TYPE_ID, // 647 SPV_OPERAND_TYPE_ID, // 648 - SPV_OPERAND_TYPE_ID, // 649 - SPV_OPERAND_TYPE_ID, // 650 + SPV_OPERAND_TYPE_MEMORY_ACCESS, // 649 + SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 650 SPV_OPERAND_TYPE_ID, // 651 SPV_OPERAND_TYPE_ID, // 652 SPV_OPERAND_TYPE_ID, // 653 - SPV_OPERAND_TYPE_TYPE_ID, // 654 - SPV_OPERAND_TYPE_RESULT_ID, // 655 - SPV_OPERAND_TYPE_ID, // 656 + SPV_OPERAND_TYPE_MEMORY_ACCESS, // 654 + SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 655 + SPV_OPERAND_TYPE_RESULT_ID, // 656 SPV_OPERAND_TYPE_ID, // 657 SPV_OPERAND_TYPE_ID, // 658 - SPV_OPERAND_TYPE_ID, // 659 - SPV_OPERAND_TYPE_ID, // 660 - SPV_OPERAND_TYPE_ID, // 661 + SPV_OPERAND_TYPE_VARIABLE_ID, // 659 + SPV_OPERAND_TYPE_TYPE_ID, // 660 + SPV_OPERAND_TYPE_RESULT_ID, // 661 SPV_OPERAND_TYPE_ID, // 662 SPV_OPERAND_TYPE_ID, // 663 - SPV_OPERAND_TYPE_TYPE_ID, // 664 - SPV_OPERAND_TYPE_RESULT_ID, // 665 - SPV_OPERAND_TYPE_ID, // 666 + SPV_OPERAND_TYPE_ID, // 664 + SPV_OPERAND_TYPE_ID, // 665 + SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS, // 666 SPV_OPERAND_TYPE_ID, // 667 SPV_OPERAND_TYPE_ID, // 668 SPV_OPERAND_TYPE_ID, // 669 SPV_OPERAND_TYPE_ID, // 670 SPV_OPERAND_TYPE_ID, // 671 - SPV_OPERAND_TYPE_ID, // 672 - SPV_OPERAND_TYPE_ID, // 673 + SPV_OPERAND_TYPE_TYPE_ID, // 672 + SPV_OPERAND_TYPE_RESULT_ID, // 673 SPV_OPERAND_TYPE_ID, // 674 SPV_OPERAND_TYPE_ID, // 675 - SPV_OPERAND_TYPE_ID, // 676 - SPV_OPERAND_TYPE_TYPE_ID, // 677 - SPV_OPERAND_TYPE_RESULT_ID, // 678 - SPV_OPERAND_TYPE_ID, // 679 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 680 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 681 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 682 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 683 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 684 - SPV_OPERAND_TYPE_TYPE_ID, // 685 - SPV_OPERAND_TYPE_RESULT_ID, // 686 - SPV_OPERAND_TYPE_ID, // 687 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 688 + SPV_OPERAND_TYPE_LITERAL_STRING, // 676 + SPV_OPERAND_TYPE_LITERAL_STRING, // 677 + SPV_OPERAND_TYPE_TYPE_ID, // 678 + SPV_OPERAND_TYPE_RESULT_ID, // 679 + SPV_OPERAND_TYPE_ID, // 680 + SPV_OPERAND_TYPE_ID, // 681 + SPV_OPERAND_TYPE_ID, // 682 + SPV_OPERAND_TYPE_ID, // 683 + SPV_OPERAND_TYPE_ID, // 684 + SPV_OPERAND_TYPE_ID, // 685 + SPV_OPERAND_TYPE_ID, // 686 + SPV_OPERAND_TYPE_TYPE_ID, // 687 + SPV_OPERAND_TYPE_RESULT_ID, // 688 SPV_OPERAND_TYPE_ID, // 689 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 690 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 691 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 692 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 693 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 694 - SPV_OPERAND_TYPE_TYPE_ID, // 695 - SPV_OPERAND_TYPE_RESULT_ID, // 696 - SPV_OPERAND_TYPE_ID, // 697 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 698 + SPV_OPERAND_TYPE_ID, // 690 + SPV_OPERAND_TYPE_ID, // 691 + SPV_OPERAND_TYPE_ID, // 692 + SPV_OPERAND_TYPE_ID, // 693 + SPV_OPERAND_TYPE_ID, // 694 + SPV_OPERAND_TYPE_ID, // 695 + SPV_OPERAND_TYPE_ID, // 696 + SPV_OPERAND_TYPE_TYPE_ID, // 697 + SPV_OPERAND_TYPE_RESULT_ID, // 698 SPV_OPERAND_TYPE_ID, // 699 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 700 - SPV_OPERAND_TYPE_RESULT_ID, // 701 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 702 - SPV_OPERAND_TYPE_RESULT_ID, // 703 + SPV_OPERAND_TYPE_ID, // 700 + SPV_OPERAND_TYPE_ID, // 701 + SPV_OPERAND_TYPE_ID, // 702 + SPV_OPERAND_TYPE_ID, // 703 SPV_OPERAND_TYPE_ID, // 704 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 705 - SPV_OPERAND_TYPE_VARIABLE_ID, // 706 - SPV_OPERAND_TYPE_TYPE_ID, // 707 - SPV_OPERAND_TYPE_RESULT_ID, // 708 + SPV_OPERAND_TYPE_ID, // 705 + SPV_OPERAND_TYPE_ID, // 706 + SPV_OPERAND_TYPE_ID, // 707 + SPV_OPERAND_TYPE_ID, // 708 SPV_OPERAND_TYPE_ID, // 709 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 710 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 711 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 712 + SPV_OPERAND_TYPE_TYPE_ID, // 710 + SPV_OPERAND_TYPE_RESULT_ID, // 711 + SPV_OPERAND_TYPE_ID, // 712 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 713 - SPV_OPERAND_TYPE_ID, // 714 - SPV_OPERAND_TYPE_ID, // 715 - SPV_OPERAND_TYPE_ID, // 716 - SPV_OPERAND_TYPE_ID, // 717 - SPV_OPERAND_TYPE_ID, // 718 - SPV_OPERAND_TYPE_ID, // 719 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 714 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 715 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 716 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 717 + SPV_OPERAND_TYPE_TYPE_ID, // 718 + SPV_OPERAND_TYPE_RESULT_ID, // 719 SPV_OPERAND_TYPE_ID, // 720 - SPV_OPERAND_TYPE_ID, // 721 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 721 SPV_OPERAND_TYPE_ID, // 722 - SPV_OPERAND_TYPE_ID, // 723 - SPV_OPERAND_TYPE_ID, // 724 - SPV_OPERAND_TYPE_ID, // 725 - SPV_OPERAND_TYPE_ID, // 726 - SPV_OPERAND_TYPE_ID, // 727 - SPV_OPERAND_TYPE_ID, // 728 - SPV_OPERAND_TYPE_ID, // 729 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 723 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 724 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 725 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 726 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 727 + SPV_OPERAND_TYPE_TYPE_ID, // 728 + SPV_OPERAND_TYPE_RESULT_ID, // 729 SPV_OPERAND_TYPE_ID, // 730 - SPV_OPERAND_TYPE_ID, // 731 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 731 SPV_OPERAND_TYPE_ID, // 732 - SPV_OPERAND_TYPE_TYPE_ID, // 733 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 733 SPV_OPERAND_TYPE_RESULT_ID, // 734 - SPV_OPERAND_TYPE_ID, // 735 - SPV_OPERAND_TYPE_ID, // 736 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 735 + SPV_OPERAND_TYPE_RESULT_ID, // 736 SPV_OPERAND_TYPE_ID, // 737 - SPV_OPERAND_TYPE_ID, // 738 - SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS, // 739 - SPV_OPERAND_TYPE_ID, // 740 - SPV_OPERAND_TYPE_EXECUTION_MODEL, // 741 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 738 + SPV_OPERAND_TYPE_VARIABLE_ID, // 739 + SPV_OPERAND_TYPE_TYPE_ID, // 740 + SPV_OPERAND_TYPE_RESULT_ID, // 741 SPV_OPERAND_TYPE_ID, // 742 - SPV_OPERAND_TYPE_LITERAL_STRING, // 743 - SPV_OPERAND_TYPE_VARIABLE_ID, // 744 - SPV_OPERAND_TYPE_ID, // 745 - SPV_OPERAND_TYPE_CAPABILITY, // 746 - SPV_OPERAND_TYPE_TYPE_ID, // 747 - SPV_OPERAND_TYPE_RESULT_ID, // 748 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 749 - SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 750 - SPV_OPERAND_TYPE_TYPE_ID, // 751 - SPV_OPERAND_TYPE_RESULT_ID, // 752 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 753 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 754 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 755 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 756 - SPV_OPERAND_TYPE_TYPE_ID, // 757 - SPV_OPERAND_TYPE_RESULT_ID, // 758 - SPV_OPERAND_TYPE_VARIABLE_CAPABILITY, // 759 - SPV_OPERAND_TYPE_TYPE_ID, // 760 - SPV_OPERAND_TYPE_RESULT_ID, // 761 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 743 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 744 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 745 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 746 + SPV_OPERAND_TYPE_ID, // 747 + SPV_OPERAND_TYPE_ID, // 748 + SPV_OPERAND_TYPE_ID, // 749 + SPV_OPERAND_TYPE_ID, // 750 + SPV_OPERAND_TYPE_ID, // 751 + SPV_OPERAND_TYPE_ID, // 752 + SPV_OPERAND_TYPE_ID, // 753 + SPV_OPERAND_TYPE_ID, // 754 + SPV_OPERAND_TYPE_ID, // 755 + SPV_OPERAND_TYPE_ID, // 756 + SPV_OPERAND_TYPE_ID, // 757 + SPV_OPERAND_TYPE_ID, // 758 + SPV_OPERAND_TYPE_ID, // 759 + SPV_OPERAND_TYPE_ID, // 760 + SPV_OPERAND_TYPE_ID, // 761 SPV_OPERAND_TYPE_ID, // 762 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 763 + SPV_OPERAND_TYPE_ID, // 763 SPV_OPERAND_TYPE_ID, // 764 SPV_OPERAND_TYPE_ID, // 765 - SPV_OPERAND_TYPE_ID, // 766 - SPV_OPERAND_TYPE_ID, // 767 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 768 + SPV_OPERAND_TYPE_TYPE_ID, // 766 + SPV_OPERAND_TYPE_RESULT_ID, // 767 + SPV_OPERAND_TYPE_ID, // 768 SPV_OPERAND_TYPE_ID, // 769 SPV_OPERAND_TYPE_ID, // 770 SPV_OPERAND_TYPE_ID, // 771 - SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 772 + SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS, // 772 SPV_OPERAND_TYPE_ID, // 773 - SPV_OPERAND_TYPE_STORAGE_CLASS, // 774 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 775 - SPV_OPERAND_TYPE_ID, // 776 - SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER, // 777 + SPV_OPERAND_TYPE_EXECUTION_MODEL, // 774 + SPV_OPERAND_TYPE_ID, // 775 + SPV_OPERAND_TYPE_LITERAL_STRING, // 776 + SPV_OPERAND_TYPE_VARIABLE_ID, // 777 SPV_OPERAND_TYPE_ID, // 778 - SPV_OPERAND_TYPE_ID, // 779 - SPV_OPERAND_TYPE_ID, // 780 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 781 + SPV_OPERAND_TYPE_CAPABILITY, // 779 + SPV_OPERAND_TYPE_TYPE_ID, // 780 + SPV_OPERAND_TYPE_RESULT_ID, // 781 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 782 - SPV_OPERAND_TYPE_ID, // 783 - SPV_OPERAND_TYPE_ID, // 784 - SPV_OPERAND_TYPE_ID, // 785 - SPV_OPERAND_TYPE_ID, // 786 + SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 783 + SPV_OPERAND_TYPE_TYPE_ID, // 784 + SPV_OPERAND_TYPE_RESULT_ID, // 785 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 786 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 787 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 788 - SPV_OPERAND_TYPE_ID, // 789 - SPV_OPERAND_TYPE_ID, // 790 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 791 - SPV_OPERAND_TYPE_VARIABLE_ID, // 792 - SPV_OPERAND_TYPE_ID, // 793 - SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE, // 794 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 789 + SPV_OPERAND_TYPE_TYPE_ID, // 790 + SPV_OPERAND_TYPE_RESULT_ID, // 791 + SPV_OPERAND_TYPE_VARIABLE_CAPABILITY, // 792 + SPV_OPERAND_TYPE_TYPE_ID, // 793 + SPV_OPERAND_TYPE_RESULT_ID, // 794 SPV_OPERAND_TYPE_ID, // 795 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 796 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 797 + SPV_OPERAND_TYPE_ID, // 797 SPV_OPERAND_TYPE_ID, // 798 SPV_OPERAND_TYPE_ID, // 799 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 800 - SPV_OPERAND_TYPE_VARIABLE_ID, // 801 + SPV_OPERAND_TYPE_ID, // 800 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 801 SPV_OPERAND_TYPE_ID, // 802 SPV_OPERAND_TYPE_ID, // 803 SPV_OPERAND_TYPE_ID, // 804 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 805 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 806 - SPV_OPERAND_TYPE_ID, // 807 - SPV_OPERAND_TYPE_ID, // 808 + SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 805 + SPV_OPERAND_TYPE_ID, // 806 + SPV_OPERAND_TYPE_STORAGE_CLASS, // 807 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 808 SPV_OPERAND_TYPE_ID, // 809 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 810 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 811 + SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER, // 810 + SPV_OPERAND_TYPE_ID, // 811 SPV_OPERAND_TYPE_ID, // 812 SPV_OPERAND_TYPE_ID, // 813 - SPV_OPERAND_TYPE_ID, // 814 - SPV_OPERAND_TYPE_ID, // 815 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 816 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 814 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 815 + SPV_OPERAND_TYPE_ID, // 816 SPV_OPERAND_TYPE_ID, // 817 SPV_OPERAND_TYPE_ID, // 818 SPV_OPERAND_TYPE_ID, // 819 - SPV_OPERAND_TYPE_ID, // 820 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 820 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 821 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 822 + SPV_OPERAND_TYPE_ID, // 822 SPV_OPERAND_TYPE_ID, // 823 - SPV_OPERAND_TYPE_ID, // 824 - SPV_OPERAND_TYPE_ID, // 825 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 826 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 827 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 824 + SPV_OPERAND_TYPE_VARIABLE_ID, // 825 + SPV_OPERAND_TYPE_ID, // 826 + SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE, // 827 SPV_OPERAND_TYPE_ID, // 828 - SPV_OPERAND_TYPE_ID, // 829 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 829 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 830 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 831 - SPV_OPERAND_TYPE_VARIABLE_ID, // 832 - SPV_OPERAND_TYPE_ID, // 833 - SPV_OPERAND_TYPE_ID, // 834 + SPV_OPERAND_TYPE_ID, // 831 + SPV_OPERAND_TYPE_ID, // 832 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 833 + SPV_OPERAND_TYPE_VARIABLE_ID, // 834 SPV_OPERAND_TYPE_ID, // 835 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 836 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 837 - SPV_OPERAND_TYPE_ID, // 838 - SPV_OPERAND_TYPE_ID, // 839 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 840 + SPV_OPERAND_TYPE_ID, // 836 + SPV_OPERAND_TYPE_ID, // 837 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 838 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 839 + SPV_OPERAND_TYPE_ID, // 840 SPV_OPERAND_TYPE_ID, // 841 SPV_OPERAND_TYPE_ID, // 842 - SPV_OPERAND_TYPE_ID, // 843 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 844 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 845 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 843 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 844 + SPV_OPERAND_TYPE_ID, // 845 SPV_OPERAND_TYPE_ID, // 846 SPV_OPERAND_TYPE_ID, // 847 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 848 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 849 + SPV_OPERAND_TYPE_ID, // 848 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 849 SPV_OPERAND_TYPE_ID, // 850 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 851 + SPV_OPERAND_TYPE_ID, // 851 SPV_OPERAND_TYPE_ID, // 852 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 853 + SPV_OPERAND_TYPE_ID, // 853 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 854 - SPV_OPERAND_TYPE_ID, // 855 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 856 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 855 + SPV_OPERAND_TYPE_ID, // 856 SPV_OPERAND_TYPE_ID, // 857 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 858 - SPV_OPERAND_TYPE_ID, // 859 - SPV_OPERAND_TYPE_ID, // 860 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 861 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 862 - SPV_OPERAND_TYPE_ID, // 863 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 864 - SPV_OPERAND_TYPE_ID, // 865 + SPV_OPERAND_TYPE_ID, // 858 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 859 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 860 + SPV_OPERAND_TYPE_ID, // 861 + SPV_OPERAND_TYPE_ID, // 862 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 863 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 864 + SPV_OPERAND_TYPE_VARIABLE_ID, // 865 SPV_OPERAND_TYPE_ID, // 866 SPV_OPERAND_TYPE_ID, // 867 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 868 + SPV_OPERAND_TYPE_ID, // 868 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 869 - SPV_OPERAND_TYPE_ID, // 870 - SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 871 - SPV_OPERAND_TYPE_DEBUG_OPERATION, // 872 - SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 873 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 870 + SPV_OPERAND_TYPE_ID, // 871 + SPV_OPERAND_TYPE_ID, // 872 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 873 SPV_OPERAND_TYPE_ID, // 874 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 875 + SPV_OPERAND_TYPE_ID, // 875 SPV_OPERAND_TYPE_ID, // 876 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 877 - SPV_OPERAND_TYPE_ID, // 878 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 879 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 880 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 881 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 882 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 877 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 878 + SPV_OPERAND_TYPE_ID, // 879 + SPV_OPERAND_TYPE_ID, // 880 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 881 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 882 SPV_OPERAND_TYPE_ID, // 883 - SPV_OPERAND_TYPE_ID, // 884 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 884 SPV_OPERAND_TYPE_ID, // 885 - SPV_OPERAND_TYPE_ID, // 886 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 887 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 886 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 887 SPV_OPERAND_TYPE_ID, // 888 - SPV_OPERAND_TYPE_ID, // 889 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 889 SPV_OPERAND_TYPE_ID, // 890 - SPV_OPERAND_TYPE_ID, // 891 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 891 SPV_OPERAND_TYPE_ID, // 892 SPV_OPERAND_TYPE_ID, // 893 - SPV_OPERAND_TYPE_ID, // 894 - SPV_OPERAND_TYPE_ID, // 895 - SPV_OPERAND_TYPE_VARIABLE_ID, // 896 - SPV_OPERAND_TYPE_ID, // 897 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 894 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 895 + SPV_OPERAND_TYPE_ID, // 896 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 897 SPV_OPERAND_TYPE_ID, // 898 SPV_OPERAND_TYPE_ID, // 899 SPV_OPERAND_TYPE_ID, // 900 - SPV_OPERAND_TYPE_ID, // 901 - SPV_OPERAND_TYPE_ID, // 902 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 901 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 902 SPV_OPERAND_TYPE_ID, // 903 - SPV_OPERAND_TYPE_ID, // 904 - SPV_OPERAND_TYPE_ID, // 905 - SPV_OPERAND_TYPE_VARIABLE_ID, // 906 + SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 904 + SPV_OPERAND_TYPE_DEBUG_OPERATION, // 905 + SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 906 SPV_OPERAND_TYPE_ID, // 907 - SPV_OPERAND_TYPE_ID, // 908 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 908 SPV_OPERAND_TYPE_ID, // 909 - SPV_OPERAND_TYPE_ID, // 910 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 910 SPV_OPERAND_TYPE_ID, // 911 - SPV_OPERAND_TYPE_ID, // 912 - SPV_OPERAND_TYPE_ID, // 913 - SPV_OPERAND_TYPE_ID, // 914 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 912 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 913 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 914 SPV_OPERAND_TYPE_OPTIONAL_ID, // 915 SPV_OPERAND_TYPE_ID, // 916 SPV_OPERAND_TYPE_ID, // 917 SPV_OPERAND_TYPE_ID, // 918 SPV_OPERAND_TYPE_ID, // 919 - SPV_OPERAND_TYPE_VARIABLE_ID, // 920 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 920 SPV_OPERAND_TYPE_ID, // 921 SPV_OPERAND_TYPE_ID, // 922 SPV_OPERAND_TYPE_ID, // 923 @@ -9701,31 +10256,31 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 926 SPV_OPERAND_TYPE_ID, // 927 SPV_OPERAND_TYPE_ID, // 928 - SPV_OPERAND_TYPE_ID, // 929 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 930 + SPV_OPERAND_TYPE_VARIABLE_ID, // 929 + SPV_OPERAND_TYPE_ID, // 930 SPV_OPERAND_TYPE_ID, // 931 SPV_OPERAND_TYPE_ID, // 932 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 933 + SPV_OPERAND_TYPE_ID, // 933 SPV_OPERAND_TYPE_ID, // 934 SPV_OPERAND_TYPE_ID, // 935 SPV_OPERAND_TYPE_ID, // 936 SPV_OPERAND_TYPE_ID, // 937 SPV_OPERAND_TYPE_ID, // 938 - SPV_OPERAND_TYPE_ID, // 939 + SPV_OPERAND_TYPE_VARIABLE_ID, // 939 SPV_OPERAND_TYPE_ID, // 940 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 941 + SPV_OPERAND_TYPE_ID, // 941 SPV_OPERAND_TYPE_ID, // 942 SPV_OPERAND_TYPE_ID, // 943 SPV_OPERAND_TYPE_ID, // 944 - SPV_OPERAND_TYPE_VARIABLE_ID, // 945 + SPV_OPERAND_TYPE_ID, // 945 SPV_OPERAND_TYPE_ID, // 946 SPV_OPERAND_TYPE_ID, // 947 - SPV_OPERAND_TYPE_ID, // 948 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 948 SPV_OPERAND_TYPE_ID, // 949 SPV_OPERAND_TYPE_ID, // 950 SPV_OPERAND_TYPE_ID, // 951 SPV_OPERAND_TYPE_ID, // 952 - SPV_OPERAND_TYPE_ID, // 953 + SPV_OPERAND_TYPE_VARIABLE_ID, // 953 SPV_OPERAND_TYPE_ID, // 954 SPV_OPERAND_TYPE_ID, // 955 SPV_OPERAND_TYPE_ID, // 956 @@ -9735,10 +10290,10 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 960 SPV_OPERAND_TYPE_ID, // 961 SPV_OPERAND_TYPE_ID, // 962 - SPV_OPERAND_TYPE_ID, // 963 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 963 SPV_OPERAND_TYPE_ID, // 964 SPV_OPERAND_TYPE_ID, // 965 - SPV_OPERAND_TYPE_ID, // 966 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 966 SPV_OPERAND_TYPE_ID, // 967 SPV_OPERAND_TYPE_ID, // 968 SPV_OPERAND_TYPE_ID, // 969 @@ -9746,11 +10301,11 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 971 SPV_OPERAND_TYPE_ID, // 972 SPV_OPERAND_TYPE_ID, // 973 - SPV_OPERAND_TYPE_ID, // 974 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 974 SPV_OPERAND_TYPE_ID, // 975 SPV_OPERAND_TYPE_ID, // 976 SPV_OPERAND_TYPE_ID, // 977 - SPV_OPERAND_TYPE_ID, // 978 + SPV_OPERAND_TYPE_VARIABLE_ID, // 978 SPV_OPERAND_TYPE_ID, // 979 SPV_OPERAND_TYPE_ID, // 980 SPV_OPERAND_TYPE_ID, // 981 @@ -9785,104 +10340,137 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 1010 SPV_OPERAND_TYPE_ID, // 1011 SPV_OPERAND_TYPE_ID, // 1012 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1013 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1014 + SPV_OPERAND_TYPE_ID, // 1013 + SPV_OPERAND_TYPE_ID, // 1014 SPV_OPERAND_TYPE_ID, // 1015 - SPV_OPERAND_TYPE_SOURCE_LANGUAGE, // 1016 + SPV_OPERAND_TYPE_ID, // 1016 SPV_OPERAND_TYPE_ID, // 1017 SPV_OPERAND_TYPE_ID, // 1018 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 1019 + SPV_OPERAND_TYPE_ID, // 1019 SPV_OPERAND_TYPE_ID, // 1020 - SPV_OPERAND_TYPE_STORAGE_CLASS, // 1021 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1022 + SPV_OPERAND_TYPE_ID, // 1021 + SPV_OPERAND_TYPE_ID, // 1022 SPV_OPERAND_TYPE_ID, // 1023 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER, // 1024 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1025 + SPV_OPERAND_TYPE_ID, // 1024 + SPV_OPERAND_TYPE_ID, // 1025 SPV_OPERAND_TYPE_ID, // 1026 - SPV_OPERAND_TYPE_VARIABLE_ID, // 1027 + SPV_OPERAND_TYPE_ID, // 1027 SPV_OPERAND_TYPE_ID, // 1028 SPV_OPERAND_TYPE_ID, // 1029 SPV_OPERAND_TYPE_ID, // 1030 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1031 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1032 + SPV_OPERAND_TYPE_ID, // 1031 + SPV_OPERAND_TYPE_ID, // 1032 SPV_OPERAND_TYPE_ID, // 1033 SPV_OPERAND_TYPE_ID, // 1034 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1035 - SPV_OPERAND_TYPE_VARIABLE_ID, // 1036 + SPV_OPERAND_TYPE_ID, // 1035 + SPV_OPERAND_TYPE_ID, // 1036 SPV_OPERAND_TYPE_ID, // 1037 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE, // 1038 + SPV_OPERAND_TYPE_ID, // 1038 SPV_OPERAND_TYPE_ID, // 1039 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1040 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1041 + SPV_OPERAND_TYPE_ID, // 1040 + SPV_OPERAND_TYPE_ID, // 1041 SPV_OPERAND_TYPE_ID, // 1042 SPV_OPERAND_TYPE_ID, // 1043 SPV_OPERAND_TYPE_ID, // 1044 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1045 - SPV_OPERAND_TYPE_VARIABLE_ID, // 1046 - SPV_OPERAND_TYPE_ID, // 1047 + SPV_OPERAND_TYPE_ID, // 1045 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1046 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1047 SPV_OPERAND_TYPE_ID, // 1048 - SPV_OPERAND_TYPE_ID, // 1049 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1050 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1051 - SPV_OPERAND_TYPE_ID, // 1052 + SPV_OPERAND_TYPE_SOURCE_LANGUAGE, // 1049 + SPV_OPERAND_TYPE_ID, // 1050 + SPV_OPERAND_TYPE_ID, // 1051 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 1052 SPV_OPERAND_TYPE_ID, // 1053 - SPV_OPERAND_TYPE_ID, // 1054 + SPV_OPERAND_TYPE_STORAGE_CLASS, // 1054 SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1055 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 1056 - SPV_OPERAND_TYPE_ID, // 1057 - SPV_OPERAND_TYPE_ID, // 1058 + SPV_OPERAND_TYPE_ID, // 1056 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER, // 1057 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1058 SPV_OPERAND_TYPE_ID, // 1059 - SPV_OPERAND_TYPE_ID, // 1060 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1061 + SPV_OPERAND_TYPE_VARIABLE_ID, // 1060 + SPV_OPERAND_TYPE_ID, // 1061 SPV_OPERAND_TYPE_ID, // 1062 SPV_OPERAND_TYPE_ID, // 1063 - SPV_OPERAND_TYPE_ID, // 1064 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1064 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1065 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1066 + SPV_OPERAND_TYPE_ID, // 1066 SPV_OPERAND_TYPE_ID, // 1067 - SPV_OPERAND_TYPE_ID, // 1068 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1069 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1068 + SPV_OPERAND_TYPE_VARIABLE_ID, // 1069 SPV_OPERAND_TYPE_ID, // 1070 - SPV_OPERAND_TYPE_ID, // 1071 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE, // 1071 SPV_OPERAND_TYPE_ID, // 1072 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1073 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1074 SPV_OPERAND_TYPE_ID, // 1075 SPV_OPERAND_TYPE_ID, // 1076 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1077 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1078 - SPV_OPERAND_TYPE_ID, // 1079 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 1080 + SPV_OPERAND_TYPE_ID, // 1077 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1078 + SPV_OPERAND_TYPE_VARIABLE_ID, // 1079 + SPV_OPERAND_TYPE_ID, // 1080 SPV_OPERAND_TYPE_ID, // 1081 SPV_OPERAND_TYPE_ID, // 1082 - SPV_OPERAND_TYPE_ID, // 1083 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1083 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1084 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1085 + SPV_OPERAND_TYPE_ID, // 1085 SPV_OPERAND_TYPE_ID, // 1086 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1087 - SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 1088 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION, // 1089 - SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 1090 + SPV_OPERAND_TYPE_ID, // 1087 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1088 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 1089 + SPV_OPERAND_TYPE_ID, // 1090 SPV_OPERAND_TYPE_ID, // 1091 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY, // 1092 + SPV_OPERAND_TYPE_ID, // 1092 SPV_OPERAND_TYPE_ID, // 1093 - SPV_OPERAND_TYPE_ID, // 1094 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1095 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1096 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1094 + SPV_OPERAND_TYPE_ID, // 1095 + SPV_OPERAND_TYPE_ID, // 1096 SPV_OPERAND_TYPE_ID, // 1097 - SPV_OPERAND_TYPE_ID, // 1098 - SPV_OPERAND_TYPE_ID, // 1099 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1098 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1099 SPV_OPERAND_TYPE_ID, // 1100 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1101 - SPV_OPERAND_TYPE_ID, // 1102 + SPV_OPERAND_TYPE_ID, // 1101 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1102 SPV_OPERAND_TYPE_ID, // 1103 SPV_OPERAND_TYPE_ID, // 1104 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1105 - SPV_OPERAND_TYPE_ID, // 1106 - SPV_OPERAND_TYPE_ID, // 1107 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1108 + SPV_OPERAND_TYPE_ID, // 1105 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1106 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1107 + SPV_OPERAND_TYPE_ID, // 1108 SPV_OPERAND_TYPE_ID, // 1109 - SPV_OPERAND_TYPE_ID, // 1110 - SPV_OPERAND_TYPE_ID, // 1111 - SPV_OPERAND_TYPE_FP_ROUNDING_MODE, // 1112 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1110 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1111 + SPV_OPERAND_TYPE_ID, // 1112 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 1113 + SPV_OPERAND_TYPE_ID, // 1114 + SPV_OPERAND_TYPE_ID, // 1115 + SPV_OPERAND_TYPE_ID, // 1116 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1117 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1118 + SPV_OPERAND_TYPE_ID, // 1119 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1120 + SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 1121 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION, // 1122 + SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 1123 + SPV_OPERAND_TYPE_ID, // 1124 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY, // 1125 + SPV_OPERAND_TYPE_ID, // 1126 + SPV_OPERAND_TYPE_ID, // 1127 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1128 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1129 + SPV_OPERAND_TYPE_ID, // 1130 + SPV_OPERAND_TYPE_ID, // 1131 + SPV_OPERAND_TYPE_ID, // 1132 + SPV_OPERAND_TYPE_ID, // 1133 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1134 + SPV_OPERAND_TYPE_ID, // 1135 + SPV_OPERAND_TYPE_ID, // 1136 + SPV_OPERAND_TYPE_ID, // 1137 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1138 + SPV_OPERAND_TYPE_ID, // 1139 + SPV_OPERAND_TYPE_ID, // 1140 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1141 + SPV_OPERAND_TYPE_ID, // 1142 + SPV_OPERAND_TYPE_ID, // 1143 + SPV_OPERAND_TYPE_ID, // 1144 + SPV_OPERAND_TYPE_FP_ROUNDING_MODE, // 1145 }; diff --git a/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_header.inc b/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_header.inc index ee68efc..0091b11 100644 --- a/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_header.inc +++ b/libs/bgfx/3rdparty/spirv-tools/include/generated/core_tables_header.inc @@ -30,6 +30,26 @@ enum class PrintingClass : uint32_t { }; enum Extension : uint32_t { + kSPV_ALTERA_arbitrary_precision_fixed_point, + kSPV_ALTERA_arbitrary_precision_floating_point, + kSPV_ALTERA_arbitrary_precision_integers, + kSPV_ALTERA_blocking_pipes, + kSPV_ALTERA_fpga_argument_interfaces, + kSPV_ALTERA_fpga_buffer_location, + kSPV_ALTERA_fpga_cluster_attributes, + kSPV_ALTERA_fpga_dsp_control, + kSPV_ALTERA_fpga_invocation_pipelining_attributes, + kSPV_ALTERA_fpga_latency_control, + kSPV_ALTERA_fpga_loop_controls, + kSPV_ALTERA_fpga_memory_accesses, + kSPV_ALTERA_fpga_memory_attributes, + kSPV_ALTERA_fpga_reg, + kSPV_ALTERA_global_variable_fpga_decorations, + kSPV_ALTERA_io_pipes, + kSPV_ALTERA_loop_fuse, + kSPV_ALTERA_runtime_aligned, + kSPV_ALTERA_task_sequence, + kSPV_ALTERA_usm_storage_classes, kSPV_AMDX_shader_enqueue, kSPV_AMD_gcn_shader, kSPV_AMD_gpu_shader_half_float, @@ -59,10 +79,12 @@ enum Extension : uint32_t { kSPV_EXT_physical_storage_buffer, kSPV_EXT_relaxed_printf_string_address_space, kSPV_EXT_replicated_composites, + kSPV_EXT_shader_64bit_indexing, kSPV_EXT_shader_atomic_float16_add, kSPV_EXT_shader_atomic_float_add, kSPV_EXT_shader_atomic_float_min_max, kSPV_EXT_shader_image_int64, + kSPV_EXT_shader_invocation_reorder, kSPV_EXT_shader_stencil_export, kSPV_EXT_shader_tile_image, kSPV_EXT_shader_viewport_index_layer, diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opcode.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opcode.cpp index a8b4102..08e5b10 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opcode.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opcode.cpp @@ -267,6 +267,7 @@ int32_t spvOpcodeGeneratesType(spv::Op op) { // spv::Op::OpTypeAccelerationStructureNV case spv::Op::OpTypeRayQueryKHR: case spv::Op::OpTypeHitObjectNV: + case spv::Op::OpTypeHitObjectEXT: case spv::Op::OpTypeUntypedPointerKHR: case spv::Op::OpTypeNodePayloadArrayAMDX: case spv::Op::OpTypeTensorLayoutNV: diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp index 795f8c3..51dc68e 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp @@ -305,7 +305,7 @@ Pass::Status AggressiveDCEPass::ProcessDebugInformation( NonSemanticShaderDebugInfo100DebugValue) { uint32_t id = inst->GetSingleWordInOperand(kDebugValueValue); auto def = get_def_use_mgr()->GetDef(id); - if (!live_insts_.Set(def->unique_id())) { + if (!IsLive(def)) { AddToWorklist(inst); uint32_t undef_id = Type2Undef(def->type_id()); if (undef_id == 0) { @@ -1123,6 +1123,7 @@ void AggressiveDCEPass::InitExtensions() { "SPV_NV_shader_invocation_reorder", "SPV_NV_cluster_acceleration_structure", "SPV_NV_linear_swept_spheres", + "SPV_KHR_maximal_reconvergence", }); } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/amd_ext_to_khr.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/amd_ext_to_khr.cpp index 5cdf26a..7ad2f98 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/amd_ext_to_khr.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/amd_ext_to_khr.cpp @@ -76,6 +76,7 @@ bool ReplaceTrinaryMinMax(IRContext* ctx, Instruction* inst, Instruction* temp = ir_builder.AddNaryExtendedInstruction( inst->type_id(), glsl405_ext_inst_id, opcode, {op1, op2}); + if (temp == nullptr) return false; Instruction::OperandList new_operands; new_operands.push_back({SPV_OPERAND_TYPE_ID, {glsl405_ext_inst_id}}); @@ -114,9 +115,12 @@ bool ReplaceTrinaryMid(IRContext* ctx, Instruction* inst, Instruction* min = ir_builder.AddNaryExtendedInstruction( inst->type_id(), glsl405_ext_inst_id, static_cast(min_opcode), {op2, op3}); + if (min == nullptr) return false; + Instruction* max = ir_builder.AddNaryExtendedInstruction( inst->type_id(), glsl405_ext_inst_id, static_cast(max_opcode), {op2, op3}); + if (max == nullptr) return false; Instruction::OperandList new_operands; new_operands.push_back({SPV_OPERAND_TYPE_ID, {glsl405_ext_inst_id}}); @@ -226,16 +230,20 @@ bool ReplaceSwizzleInvocations(IRContext* ctx, Instruction* inst, // Get the subgroup invocation id. uint32_t var_id = ctx->GetBuiltinInputVarId( uint32_t(spv::BuiltIn::SubgroupLocalInvocationId)); - assert(var_id != 0 && "Could not get SubgroupLocalInvocationId variable."); + if (var_id == 0) return false; Instruction* var_inst = ctx->get_def_use_mgr()->GetDef(var_id); + if (var_inst == nullptr) return false; Instruction* var_ptr_type = ctx->get_def_use_mgr()->GetDef(var_inst->type_id()); + if (var_ptr_type == nullptr) return false; uint32_t uint_type_id = var_ptr_type->GetSingleWordInOperand(1); + if (uint_type_id == 0) return false; - // TODO(1841): Handle id overflow. Instruction* id = ir_builder.AddLoad(uint_type_id, var_id); + if (id == nullptr) return false; uint32_t quad_mask = ir_builder.GetUintConstantId(3); + if (quad_mask == 0) return false; // This gives the offset in the group of 4 of this invocation. Instruction* quad_idx = ir_builder.AddBinaryOp( @@ -262,26 +270,41 @@ bool ReplaceSwizzleInvocations(IRContext* ctx, Instruction* inst, // Do the group operations uint32_t uint_max_id = ir_builder.GetUintConstantId(0xFFFFFFFF); + if (uint_max_id == 0) return false; uint32_t subgroup_scope = ir_builder.GetUintConstantId(uint32_t(spv::Scope::Subgroup)); + if (subgroup_scope == 0) return false; + const auto* vec_type = type_mgr->GetUIntVectorType(4); + if (vec_type == nullptr) return false; const auto* ballot_value_const = const_mgr->GetConstant( - type_mgr->GetUIntVectorType(4), - {uint_max_id, uint_max_id, uint_max_id, uint_max_id}); + vec_type, {uint_max_id, uint_max_id, uint_max_id, uint_max_id}); + if (ballot_value_const == nullptr) return false; Instruction* ballot_value = const_mgr->GetDefiningInstruction(ballot_value_const); - // TODO(1841): Handle id overflow. + if (ballot_value == nullptr) return false; + uint32_t bool_type_id = type_mgr->GetBoolTypeId(); + if (bool_type_id == 0) return false; Instruction* is_active = ir_builder.AddNaryOp( - type_mgr->GetBoolTypeId(), spv::Op::OpGroupNonUniformBallotBitExtract, + bool_type_id, spv::Op::OpGroupNonUniformBallotBitExtract, {subgroup_scope, ballot_value->result_id(), target_inv->result_id()}); - // TODO(1841): Handle id overflow. + if (is_active == nullptr) return false; Instruction* shuffle = ir_builder.AddNaryOp(inst->type_id(), spv::Op::OpGroupNonUniformShuffle, {subgroup_scope, data_id, target_inv->result_id()}); + if (shuffle == nullptr) return false; // Create the null constant to use in the select. - const auto* null = const_mgr->GetConstant(type_mgr->GetType(inst->type_id()), - std::vector()); + const auto* result_type = type_mgr->GetType(inst->type_id()); + if (result_type == nullptr) return false; + const auto* null = + const_mgr->GetConstant(result_type, std::vector()); + if (null == nullptr) { + return false; + } Instruction* null_inst = const_mgr->GetDefiningInstruction(null); + if (null_inst == nullptr) { + return false; + } // Build the select. inst->SetOpcode(spv::Op::OpSelect); @@ -346,30 +369,38 @@ bool ReplaceSwizzleInvocationsMasked( uint32_t data_id = inst->GetSingleWordInOperand(2); Instruction* mask_inst = def_use_mgr->GetDef(inst->GetSingleWordInOperand(3)); + if (mask_inst == nullptr) return false; assert(mask_inst->opcode() == spv::Op::OpConstantComposite && "The mask is suppose to be a vector constant."); assert(mask_inst->NumInOperands() == 3 && "The mask is suppose to have 3 components."); uint32_t uint_x = mask_inst->GetSingleWordInOperand(0); + if (uint_x == 0) return false; uint32_t uint_y = mask_inst->GetSingleWordInOperand(1); + if (uint_y == 0) return false; uint32_t uint_z = mask_inst->GetSingleWordInOperand(2); + if (uint_z == 0) return false; // Get the subgroup invocation id. uint32_t var_id = ctx->GetBuiltinInputVarId( uint32_t(spv::BuiltIn::SubgroupLocalInvocationId)); + if (var_id == 0) return false; ctx->AddExtension("SPV_KHR_shader_ballot"); - assert(var_id != 0 && "Could not get SubgroupLocalInvocationId variable."); Instruction* var_inst = ctx->get_def_use_mgr()->GetDef(var_id); + if (var_inst == nullptr) return false; Instruction* var_ptr_type = ctx->get_def_use_mgr()->GetDef(var_inst->type_id()); + if (var_ptr_type == nullptr) return false; uint32_t uint_type_id = var_ptr_type->GetSingleWordInOperand(1); + if (uint_type_id == 0) return false; - // TODO(1841): Handle id overflow. Instruction* id = ir_builder.AddLoad(uint_type_id, var_id); + if (id == nullptr) return false; // Do the bitwise operations. uint32_t mask_extended = ir_builder.GetUintConstantId(0xFFFFFFE0); + if (mask_extended == 0) return false; Instruction* and_mask = ir_builder.AddBinaryOp( uint_type_id, spv::Op::OpBitwiseOr, uint_x, mask_extended); if (and_mask == nullptr) return false; @@ -386,26 +417,37 @@ bool ReplaceSwizzleInvocationsMasked( // Do the group operations uint32_t uint_max_id = ir_builder.GetUintConstantId(0xFFFFFFFF); + if (uint_max_id == 0) return false; uint32_t subgroup_scope = ir_builder.GetUintConstantId(uint32_t(spv::Scope::Subgroup)); + if (subgroup_scope == 0) return false; + const auto* vec_type = type_mgr->GetUIntVectorType(4); + if (vec_type == nullptr) return false; const auto* ballot_value_const = const_mgr->GetConstant( - type_mgr->GetUIntVectorType(4), - {uint_max_id, uint_max_id, uint_max_id, uint_max_id}); + vec_type, {uint_max_id, uint_max_id, uint_max_id, uint_max_id}); + if (ballot_value_const == nullptr) return false; Instruction* ballot_value = const_mgr->GetDefiningInstruction(ballot_value_const); - // TODO(1841): Handle id overflow. + if (ballot_value == nullptr) return false; + uint32_t bool_type_id = type_mgr->GetBoolTypeId(); + if (bool_type_id == 0) return false; Instruction* is_active = ir_builder.AddNaryOp( - type_mgr->GetBoolTypeId(), spv::Op::OpGroupNonUniformBallotBitExtract, + bool_type_id, spv::Op::OpGroupNonUniformBallotBitExtract, {subgroup_scope, ballot_value->result_id(), target_inv->result_id()}); - // TODO(1841): Handle id overflow. + if (is_active == nullptr) return false; Instruction* shuffle = ir_builder.AddNaryOp(inst->type_id(), spv::Op::OpGroupNonUniformShuffle, {subgroup_scope, data_id, target_inv->result_id()}); + if (shuffle == nullptr) return false; // Create the null constant to use in the select. - const auto* null = const_mgr->GetConstant(type_mgr->GetType(inst->type_id()), - std::vector()); + const auto* result_type = type_mgr->GetType(inst->type_id()); + if (result_type == nullptr) return false; + const auto* null = + const_mgr->GetConstant(result_type, std::vector()); + if (null == nullptr) return false; Instruction* null_inst = const_mgr->GetDefiningInstruction(null); + if (null_inst == nullptr) return false; // Build the select. inst->SetOpcode(spv::Op::OpSelect); @@ -439,21 +481,24 @@ bool ReplaceWriteInvocation(IRContext* ctx, Instruction* inst, const std::vector&) { uint32_t var_id = ctx->GetBuiltinInputVarId( uint32_t(spv::BuiltIn::SubgroupLocalInvocationId)); - ctx->AddCapability(spv::Capability::SubgroupBallotKHR); - ctx->AddExtension("SPV_KHR_shader_ballot"); - assert(var_id != 0 && "Could not get SubgroupLocalInvocationId variable."); + if (var_id == 0) return false; Instruction* var_inst = ctx->get_def_use_mgr()->GetDef(var_id); + if (var_inst == nullptr) return false; Instruction* var_ptr_type = ctx->get_def_use_mgr()->GetDef(var_inst->type_id()); + if (var_ptr_type == nullptr) return false; + ctx->AddCapability(spv::Capability::SubgroupBallotKHR); + ctx->AddExtension("SPV_KHR_shader_ballot"); InstructionBuilder ir_builder( ctx, inst, IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping); - // TODO(1841): Handle id overflow. Instruction* t = ir_builder.AddLoad(var_ptr_type->GetSingleWordInOperand(1), var_id); + if (t == nullptr) return false; analysis::Bool bool_type; uint32_t bool_type_id = ctx->get_type_mgr()->GetTypeInstruction(&bool_type); + if (bool_type_id == 0) return false; Instruction* cmp = ir_builder.AddBinaryOp(bool_type_id, spv::Op::OpIEqual, t->result_id(), inst->GetSingleWordInOperand(4)); @@ -500,7 +545,8 @@ bool ReplaceMbcnt(IRContext* context, Instruction* inst, uint32_t var_id = context->GetBuiltinInputVarId(uint32_t(spv::BuiltIn::SubgroupLtMask)); - assert(var_id != 0 && "Could not get SubgroupLtMask variable."); + if (var_id == 0) return false; + context->AddCapability(spv::Capability::GroupNonUniformBallot); Instruction* var_inst = def_use_mgr->GetDef(var_id); Instruction* var_ptr_type = def_use_mgr->GetDef(var_inst->type_id()); @@ -513,6 +559,7 @@ bool ReplaceMbcnt(IRContext* context, Instruction* inst, analysis::Vector temp_type(GetUIntType(context), 2); const analysis::Type* shuffle_type = context->get_type_mgr()->GetRegisteredType(&temp_type); + if (shuffle_type == nullptr) return false; uint32_t shuffle_type_id = type_mgr->GetTypeInstruction(shuffle_type); uint32_t mask_id = inst->GetSingleWordInOperand(2); @@ -526,10 +573,13 @@ bool ReplaceMbcnt(IRContext* context, Instruction* inst, context, inst, IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping); Instruction* load = ir_builder.AddLoad(var_type->result_id(), var_id); + if (load == nullptr) return false; Instruction* shuffle = ir_builder.AddVectorShuffle( shuffle_type_id, load->result_id(), load->result_id(), {0, 1}); + if (shuffle == nullptr) return false; Instruction* bitcast = ir_builder.AddUnaryOp( mask_inst->type_id(), spv::Op::OpBitcast, shuffle->result_id()); + if (bitcast == nullptr) return false; Instruction* t = ir_builder.AddBinaryOp(mask_inst->type_id(), spv::Op::OpBitwiseAnd, bitcast->result_id(), mask_id); @@ -588,9 +638,13 @@ bool ReplaceCubeFaceCoord(IRContext* ctx, Instruction* inst, analysis::ConstantManager* const_mgr = ctx->get_constant_mgr(); uint32_t float_type_id = type_mgr->GetFloatTypeId(); + if (float_type_id == 0) return false; const analysis::Type* v2_float_type = type_mgr->GetFloatVectorType(2); + if (v2_float_type == nullptr) return false; uint32_t v2_float_type_id = type_mgr->GetId(v2_float_type); + if (v2_float_type_id == 0) return false; uint32_t bool_id = type_mgr->GetBoolTypeId(); + if (bool_id == 0) return false; InstructionBuilder ir_builder( ctx, inst, @@ -604,23 +658,29 @@ bool ReplaceCubeFaceCoord(IRContext* ctx, Instruction* inst, glsl405_ext_inst_id = ctx->get_feature_mgr()->GetExtInstImportId_GLSLstd450(); } + if (glsl405_ext_inst_id == 0) return false; // Get the constants that will be used. uint32_t f0_const_id = const_mgr->GetFloatConstId(0.0); + if (f0_const_id == 0) return false; uint32_t f2_const_id = const_mgr->GetFloatConstId(2.0); + if (f2_const_id == 0) return false; uint32_t f0_5_const_id = const_mgr->GetFloatConstId(0.5); + if (f0_5_const_id == 0) return false; const analysis::Constant* vec_const = const_mgr->GetConstant(v2_float_type, {f0_5_const_id, f0_5_const_id}); - uint32_t vec_const_id = - const_mgr->GetDefiningInstruction(vec_const)->result_id(); + if (vec_const == nullptr) return false; + Instruction* vec_const_inst = const_mgr->GetDefiningInstruction(vec_const); + if (vec_const_inst == nullptr) return false; + uint32_t vec_const_id = vec_const_inst->result_id(); // Extract the input values. - // TODO(1841): Handle id overflow. Instruction* x = ir_builder.AddCompositeExtract(float_type_id, input_id, {0}); - // TODO(1841): Handle id overflow. + if (x == nullptr) return false; Instruction* y = ir_builder.AddCompositeExtract(float_type_id, input_id, {1}); - // TODO(1-841): Handle id overflow. + if (y == nullptr) return false; Instruction* z = ir_builder.AddCompositeExtract(float_type_id, input_id, {2}); + if (z == nullptr) return false; // Negate the input values. Instruction* nx = @@ -629,14 +689,20 @@ bool ReplaceCubeFaceCoord(IRContext* ctx, Instruction* inst, ir_builder.AddUnaryOp(float_type_id, spv::Op::OpFNegate, y->result_id()); Instruction* nz = ir_builder.AddUnaryOp(float_type_id, spv::Op::OpFNegate, z->result_id()); + if (nx == nullptr) return false; + if (ny == nullptr) return false; + if (nz == nullptr) return false; // Get the abolsute values of the inputs. Instruction* ax = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FAbs, {x->result_id()}); + if (ax == nullptr) return false; Instruction* ay = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FAbs, {y->result_id()}); + if (ay == nullptr) return false; Instruction* az = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FAbs, {z->result_id()}); + if (az == nullptr) return false; // Find which values are negative. Used in later computations. Instruction* is_z_neg = ir_builder.AddBinaryOp( @@ -653,9 +719,11 @@ bool ReplaceCubeFaceCoord(IRContext* ctx, Instruction* inst, Instruction* amax_x_y = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FMax, {ax->result_id(), ay->result_id()}); + if (amax_x_y == nullptr) return false; Instruction* amax = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FMax, {az->result_id(), amax_x_y->result_id()}); + if (amax == nullptr) return false; Instruction* cubema = ir_builder.AddBinaryOp(float_type_id, spv::Op::OpFMul, f2_const_id, amax->result_id()); if (cubema == nullptr) return false; @@ -667,6 +735,7 @@ bool ReplaceCubeFaceCoord(IRContext* ctx, Instruction* inst, if (is_z_max == nullptr) return false; Instruction* not_is_z_max = ir_builder.AddUnaryOp( bool_id, spv::Op::OpLogicalNot, is_z_max->result_id()); + if (not_is_z_max == nullptr) return false; Instruction* y_gr_x = ir_builder.AddBinaryOp(bool_id, spv::Op::OpFOrdGreaterThanEqual, ay->result_id(), ax->result_id()); @@ -677,35 +746,37 @@ bool ReplaceCubeFaceCoord(IRContext* ctx, Instruction* inst, if (is_y_max == nullptr) return false; // Select the correct value for cubesc. - // TODO(1841): Handle id overflow. Instruction* cubesc_case_1 = ir_builder.AddSelect( float_type_id, is_z_neg->result_id(), nx->result_id(), x->result_id()); - // TODO(1841): Handle id overflow. + if (cubesc_case_1 == nullptr) return false; Instruction* cubesc_case_2 = ir_builder.AddSelect( float_type_id, is_x_neg->result_id(), z->result_id(), nz->result_id()); + if (cubesc_case_2 == nullptr) return false; Instruction* sel = - // TODO(1841): Handle id overflow. ir_builder.AddSelect(float_type_id, is_y_max->result_id(), x->result_id(), cubesc_case_2->result_id()); + if (sel == nullptr) return false; Instruction* cubesc = - // TODO(1841): Handle id overflow. ir_builder.AddSelect(float_type_id, is_z_max->result_id(), cubesc_case_1->result_id(), sel->result_id()); + if (cubesc == nullptr) return false; // Select the correct value for cubetc. - // TODO(1841): Handle id overflow. Instruction* cubetc_case_1 = ir_builder.AddSelect( float_type_id, is_y_neg->result_id(), nz->result_id(), z->result_id()); + if (cubetc_case_1 == nullptr) return false; Instruction* cubetc = - // TODO(1841): Handle id overflow. ir_builder.AddSelect(float_type_id, is_y_max->result_id(), cubetc_case_1->result_id(), ny->result_id()); + if (cubetc == nullptr) return false; // Do the division Instruction* cube = ir_builder.AddCompositeConstruct( v2_float_type_id, {cubesc->result_id(), cubetc->result_id()}); + if (cube == nullptr) return false; Instruction* denom = ir_builder.AddCompositeConstruct( v2_float_type_id, {cubema->result_id(), cubema->result_id()}); + if (denom == nullptr) return false; Instruction* div = ir_builder.AddBinaryOp( v2_float_type_id, spv::Op::OpFDiv, cube->result_id(), denom->result_id()); if (div == nullptr) return false; @@ -756,7 +827,9 @@ bool ReplaceCubeFaceIndex(IRContext* ctx, Instruction* inst, analysis::ConstantManager* const_mgr = ctx->get_constant_mgr(); uint32_t float_type_id = type_mgr->GetFloatTypeId(); + if (float_type_id == 0) return false; uint32_t bool_id = type_mgr->GetBoolTypeId(); + if (bool_id == 0) return false; InstructionBuilder ir_builder( ctx, inst, @@ -773,27 +846,37 @@ bool ReplaceCubeFaceIndex(IRContext* ctx, Instruction* inst, // Get the constants that will be used. uint32_t f0_const_id = const_mgr->GetFloatConstId(0.0); + if (f0_const_id == 0) return false; uint32_t f1_const_id = const_mgr->GetFloatConstId(1.0); + if (f1_const_id == 0) return false; uint32_t f2_const_id = const_mgr->GetFloatConstId(2.0); + if (f2_const_id == 0) return false; uint32_t f3_const_id = const_mgr->GetFloatConstId(3.0); + if (f3_const_id == 0) return false; uint32_t f4_const_id = const_mgr->GetFloatConstId(4.0); + if (f4_const_id == 0) return false; uint32_t f5_const_id = const_mgr->GetFloatConstId(5.0); + if (f5_const_id == 0) return false; // Extract the input values. - // TODO(1841): Handle id overflow. Instruction* x = ir_builder.AddCompositeExtract(float_type_id, input_id, {0}); - // TODO(1841): Handle id overflow. + if (x == nullptr) return false; Instruction* y = ir_builder.AddCompositeExtract(float_type_id, input_id, {1}); + if (y == nullptr) return false; // TODO(1-841): Handle id overflow. Instruction* z = ir_builder.AddCompositeExtract(float_type_id, input_id, {2}); + if (z == nullptr) return false; // Get the absolute values of the inputs. Instruction* ax = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FAbs, {x->result_id()}); + if (ax == nullptr) return false; Instruction* ay = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FAbs, {y->result_id()}); + if (ay == nullptr) return false; Instruction* az = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FAbs, {z->result_id()}); + if (az == nullptr) return false; // Find which values are negative. Used in later computations. Instruction* is_z_neg = ir_builder.AddBinaryOp( @@ -810,6 +893,7 @@ bool ReplaceCubeFaceIndex(IRContext* ctx, Instruction* inst, Instruction* amax_x_y = ir_builder.AddNaryExtendedInstruction( float_type_id, glsl405_ext_inst_id, GLSLstd450FMax, {ax->result_id(), ay->result_id()}); + if (amax_x_y == nullptr) return false; Instruction* is_z_max = ir_builder.AddBinaryOp(bool_id, spv::Op::OpFOrdGreaterThanEqual, az->result_id(), amax_x_y->result_id()); @@ -820,21 +904,21 @@ bool ReplaceCubeFaceIndex(IRContext* ctx, Instruction* inst, if (y_gr_x == nullptr) return false; // Get the value for each case. - // TODO(1841): Handle id overflow. Instruction* case_z = ir_builder.AddSelect( float_type_id, is_z_neg->result_id(), f5_const_id, f4_const_id); - // TODO(1841): Handle id overflow. + if (case_z == nullptr) return false; Instruction* case_y = ir_builder.AddSelect( float_type_id, is_y_neg->result_id(), f3_const_id, f2_const_id); - // TODO(1841): Handle id overflow. + if (case_y == nullptr) return false; Instruction* case_x = ir_builder.AddSelect( float_type_id, is_x_neg->result_id(), f1_const_id, f0_const_id); + if (case_x == nullptr) return false; // Select the correct case. Instruction* sel = - // TODO(1841): Handle id overflow. ir_builder.AddSelect(float_type_id, y_gr_x->result_id(), case_y->result_id(), case_x->result_id()); + if (sel == nullptr) return false; // Get the final result by adding 0.5 to |div|. inst->SetOpcode(spv::Op::OpSelect); @@ -974,11 +1058,18 @@ Pass::Status AmdExtensionToKhrPass::Process() { std::unique_ptr(new AmdExtFoldingRules(context())), MakeUnique(context())); for (Function& func : *get_module()) { - func.ForEachInst([&changed, &folder](Instruction* inst) { - if (folder.FoldInstruction(inst)) { - changed = true; - } - }); + bool failed = + !func.WhileEachInst([&changed, &folder, this](Instruction* inst) { + if (folder.FoldInstruction(inst)) { + changed = true; + return true; + } else if (context()->id_overflow()) { + return false; + } + return true; + }); + + if (failed) return Status::Failure; } // Now that instruction that require the extensions have been removed, we can diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/constants.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/constants.cpp index 00682d0..e51bae1 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/constants.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/constants.cpp @@ -462,7 +462,9 @@ const Constant* ConstantManager::GetNumericVectorConstantWithWords( uint32_t ConstantManager::GetFloatConstId(float val) { const Constant* c = GetFloatConst(val); - return GetDefiningInstruction(c)->result_id(); + Instruction* inst = GetDefiningInstruction(c); + if (inst == nullptr) return 0; + return inst->result_id(); } const Constant* ConstantManager::GetFloatConst(float val) { @@ -474,7 +476,9 @@ const Constant* ConstantManager::GetFloatConst(float val) { uint32_t ConstantManager::GetDoubleConstId(double val) { const Constant* c = GetDoubleConst(val); - return GetDefiningInstruction(c)->result_id(); + Instruction* inst = GetDefiningInstruction(c); + if (inst == nullptr) return 0; + return inst->result_id(); } const Constant* ConstantManager::GetDoubleConst(double val) { diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/folding_rules.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/folding_rules.cpp index ee2f24e..6690381 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/folding_rules.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/folding_rules.cpp @@ -194,7 +194,7 @@ std::vector GetWordsFromNumericScalarOrVectorConstant( uint32_t compacted_word = 0; for (int32_t i = static_cast(words.size()) - 1; i >= 0; --i) { compacted_word <<= 8; - compacted_word |= words[i]; + compacted_word |= (words[i] & 0xFF); } return {compacted_word}; } else if (ElementWidth(c->type()) == 16) { @@ -205,7 +205,7 @@ std::vector GetWordsFromNumericScalarOrVectorConstant( for (uint32_t i = 0; i < words.size(); i += 2) { uint32_t word1 = words[i]; uint32_t word2 = (i + 1 < words.size()) ? words[i + 1] : 0; - uint32_t compacted_word = (word2 << 16) | word1; + uint32_t compacted_word = (word2 << 16) | (word1 & 0xFFFF); compacted_words.push_back(compacted_word); } return compacted_words; @@ -2819,6 +2819,230 @@ FoldingRule RedundantSUMod() { }; } +// Utility function for applying |callback| to |input1| and |input2|. +// If they are vectors it applies element wise. +// The constants |input1| and |input2| must be integers or a vector of integers. +template +void ForEachIntegerConstantPair(analysis::ConstantManager* const_mgr, + const analysis::Constant* input1, + const analysis::Constant* input2, + Callback&& callback) { + assert(input1 && input2); + + auto Dispatch = [&callback](const analysis::Constant* lhs, + const analysis::Constant* rhs) { + assert(lhs->type()->AsInteger()); + const analysis::Integer* type = lhs->type()->AsInteger(); + uint32_t width = type->AsInteger()->width(); + assert(width == 32 || width == 64); + if (width == 32) { + callback(lhs->GetU32(), rhs->GetU32()); + } else { + callback(lhs->GetU64(), rhs->GetU64()); + } + }; + + const analysis::Type* type = input1->type(); + if (const analysis::Vector* vector_type = type->AsVector()) { + const analysis::Type* ele_type = vector_type->element_type(); + assert(ele_type->AsInteger()); + for (uint32_t i = 0; i != vector_type->element_count(); ++i) { + const analysis::Constant* input1_comp = nullptr; + if (const analysis::VectorConstant* input1_vector = + input1->AsVectorConstant()) { + input1_comp = input1_vector->GetComponents()[i]; + } else { + assert(input1->AsNullConstant()); + input1_comp = const_mgr->GetConstant(ele_type, {}); + } + + const analysis::Constant* input2_comp = nullptr; + if (const analysis::VectorConstant* input2_vector = + input2->AsVectorConstant()) { + input2_comp = input2_vector->GetComponents()[i]; + } else { + assert(input2->AsNullConstant()); + input2_comp = const_mgr->GetConstant(ele_type, {}); + } + + assert(ele_type->AsInteger()); + Dispatch(input1_comp, input2_comp); + } + + } else { + assert(type->AsInteger()); + Dispatch(input1, input2); + } +} + +// Folds redundant xor and or ops that are part of an and. +// Cases handled: +// 0b1110 & (a | 0b0001) = a & 0b1110 +// 0b1110 & (a ^ 0b0001) = a & 0b1110 +// 0b0110 & (a | 0b1110) = 0b0110 +FoldingRule RedundantAndOrXor() { + return [](IRContext* context, Instruction* inst, + const std::vector& constants) { + assert(inst->opcode() == spv::Op::OpBitwiseAnd && "Wrong opcode."); + const analysis::Type* type = + context->get_type_mgr()->GetType(inst->type_id()); + uint32_t width = ElementWidth(type); + if ((width != 32) && (width != 64)) return false; + + analysis::ConstantManager* const_mgr = context->get_constant_mgr(); + const analysis::Constant* const_input1 = ConstInput(constants); + if (!const_input1) return false; + Instruction* other_inst = NonConstInput(context, constants[0], inst); + + if (other_inst->opcode() == spv::Op::OpBitwiseOr || + other_inst->opcode() == spv::Op::OpBitwiseXor) { + std::vector other_constants = + const_mgr->GetOperandConstants(other_inst); + const analysis::Constant* const_input2 = ConstInput(other_constants); + if (!const_input2) return false; + + bool can_convert_to_const = other_inst->opcode() == spv::Op::OpBitwiseOr; + bool can_remove_inner = true; + + ForEachIntegerConstantPair( + const_mgr, const_input1, const_input2, + [&can_remove_inner, &can_convert_to_const](auto lhs, auto rhs) { + // Only convert to const if 'and' is a subset of 'or' + can_convert_to_const = can_convert_to_const && ((lhs & rhs) == lhs); + // Only remove 'xor'/'or' if no bits intersect with 'and' + can_remove_inner = can_remove_inner && ((lhs & rhs) == 0); + }); + + if (can_convert_to_const) { + Instruction* const_inst = + const_mgr->GetDefiningInstruction(const_input1); + inst->SetOpcode(spv::Op::OpCopyObject); + inst->SetInOperands({{SPV_OPERAND_TYPE_ID, {const_inst->result_id()}}}); + return true; + } else if (can_remove_inner) { + Instruction* non_const_input = + NonConstInput(context, other_constants[0], other_inst); + Instruction* const_inst = + const_mgr->GetDefiningInstruction(const_input1); + inst->SetInOperands( + {{SPV_OPERAND_TYPE_ID, {non_const_input->result_id()}}, + {SPV_OPERAND_TYPE_ID, {const_inst->result_id()}}}); + return true; + } + } + return false; + }; +} + +// Folds redundant add and sub ops that are part of an and. +// Cases handled: +// 1 & (b + 2) = b & 1 +// 1 & (b - 2) = b & 1 +FoldingRule RedundantAndAddSub() { + return [](IRContext* context, Instruction* inst, + const std::vector& constants) { + assert(inst->opcode() == spv::Op::OpBitwiseAnd && "Wrong opcode."); + const analysis::Type* type = + context->get_type_mgr()->GetType(inst->type_id()); + uint32_t width = ElementWidth(type); + if ((width != 32) && (width != 64)) return false; + + analysis::ConstantManager* const_mgr = context->get_constant_mgr(); + const analysis::Constant* const_input1 = ConstInput(constants); + if (!const_input1) return false; + Instruction* other_inst = NonConstInput(context, constants[0], inst); + + if (other_inst->opcode() != spv::Op::OpIAdd && + other_inst->opcode() != spv::Op::OpISub) { + return false; + } + std::vector other_constants = + const_mgr->GetOperandConstants(other_inst); + const analysis::Constant* const_input2 = ConstInput(other_constants); + if (!const_input2) return false; + + // Only valid for subtraction if const is on the right + if ((other_inst->opcode() == spv::Op::OpISub) && other_constants[0]) { + return false; + } + + bool can_remove_inner = true; + ForEachIntegerConstantPair(const_mgr, const_input1, const_input2, + [&can_remove_inner](auto and_op, auto add_op) { + if (can_remove_inner) { + // Only valid if no bits from the +/- could + // affect bits from the & operation. + can_remove_inner = + utils::LSB(add_op) > and_op; + } + }); + + if (can_remove_inner) { + Instruction* non_const_input = + NonConstInput(context, other_constants[0], other_inst); + Instruction* const_inst = const_mgr->GetDefiningInstruction(const_input1); + inst->SetInOperands( + {{SPV_OPERAND_TYPE_ID, {non_const_input->result_id()}}, + {SPV_OPERAND_TYPE_ID, {const_inst->result_id()}}}); + return true; + } + return false; + }; +} + +// Folds redundant shift ops that are part of an and. +// Cases handled: +// 1 & (b << 1) = 0 +// 0x80000000 & (b >> 1) = 0 +FoldingRule RedundantAndShift() { + return [](IRContext* context, Instruction* inst, + const std::vector& constants) { + assert(inst->opcode() == spv::Op::OpBitwiseAnd && "Wrong opcode."); + const analysis::Type* type = + context->get_type_mgr()->GetType(inst->type_id()); + uint32_t width = ElementWidth(type); + if ((width != 32) && (width != 64)) return false; + + analysis::ConstantManager* const_mgr = context->get_constant_mgr(); + const analysis::Constant* const_input1 = ConstInput(constants); + if (!const_input1) return false; + Instruction* other_inst = NonConstInput(context, constants[0], inst); + + spv::Op other_op = other_inst->opcode(); + if (other_op == spv::Op::OpShiftLeftLogical || + other_op == spv::Op::OpShiftRightLogical) { + std::vector other_constants = + const_mgr->GetOperandConstants(other_inst); + + // Only valid if const is on the right + if (other_constants[0]) { + return false; + } + const analysis::Constant* const_input2 = other_constants[1]; + if (!const_input2) return false; + + bool can_convert_to_zero = true; + ForEachIntegerConstantPair( + const_mgr, const_input1, const_input2, + [&can_convert_to_zero, other_op](auto lhs, auto rhs) { + if (other_op == spv::Op::OpShiftRightLogical) { + can_convert_to_zero = can_convert_to_zero && (lhs << rhs) == 0; + } else { + can_convert_to_zero = can_convert_to_zero && (lhs >> rhs) == 0; + } + }); + + if (can_convert_to_zero) { + auto zero_id = context->get_constant_mgr()->GetNullConstId(type); + inst->SetOpcode(spv::Op::OpCopyObject); + inst->SetInOperands({{SPV_OPERAND_TYPE_ID, {zero_id}}}); + return true; + } + } + return false; + }; +} + // This rule look for a dot with a constant vector containing a single 1 and // the rest 0s. This is the same as doing an extract. FoldingRule DotProductDoingExtract() { @@ -3231,6 +3455,10 @@ void FoldingRules::AddFoldingRules() { rules_[spv::Op::OpISub].push_back(MergeSubAddArithmetic()); rules_[spv::Op::OpISub].push_back(MergeSubSubArithmetic()); + rules_[spv::Op::OpBitwiseAnd].push_back(RedundantAndOrXor()); + rules_[spv::Op::OpBitwiseAnd].push_back(RedundantAndAddSub()); + rules_[spv::Op::OpBitwiseAnd].push_back(RedundantAndShift()); + rules_[spv::Op::OpPhi].push_back(RedundantPhi()); rules_[spv::Op::OpSNegate].push_back(MergeNegateArithmetic()); diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/ir_context.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/ir_context.cpp index 73d6eea..2ce9e85 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/ir_context.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/ir_context.cpp @@ -557,6 +557,7 @@ void IRContext::AddCombinatorsForCapability(uint32_t capability) { (uint32_t)spv::Op::OpTypeAccelerationStructureKHR, (uint32_t)spv::Op::OpTypeRayQueryKHR, (uint32_t)spv::Op::OpTypeHitObjectNV, + (uint32_t)spv::Op::OpTypeHitObjectEXT, (uint32_t)spv::Op::OpTypeArray, (uint32_t)spv::Op::OpTypeRuntimeArray, (uint32_t)spv::Op::OpTypeNodePayloadArrayAMDX, @@ -927,11 +928,13 @@ uint32_t IRContext::GetBuiltinInputVarId(uint32_t builtin) { return 0; } } + if (reg_type == nullptr) return 0; // Error + uint32_t type_id = type_mgr->GetTypeInstruction(reg_type); uint32_t varTyPtrId = type_mgr->FindPointerToType(type_id, spv::StorageClass::Input); - // TODO(1841): Handle id overflow. var_id = TakeNextId(); + if (var_id == 0) return 0; // Error std::unique_ptr newVarOp( new Instruction(this, spv::Op::OpVariable, varTyPtrId, var_id, {{spv_operand_type_t::SPV_OPERAND_TYPE_LITERAL_INTEGER, diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/local_access_chain_convert_pass.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/local_access_chain_convert_pass.cpp index ae473ca..dfe391f 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/local_access_chain_convert_pass.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/local_access_chain_convert_pass.cpp @@ -467,6 +467,7 @@ void LocalAccessChainConvertPass::InitExtensions() { "SPV_NV_shader_invocation_reorder", "SPV_NV_cluster_acceleration_structure", "SPV_NV_linear_swept_spheres", + "SPV_KHR_maximal_reconvergence", }); } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_block_elim_pass.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_block_elim_pass.cpp index 1995470..ed21f6d 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_block_elim_pass.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_block_elim_pass.cpp @@ -304,6 +304,7 @@ void LocalSingleBlockLoadStoreElimPass::InitExtensions() { "SPV_NV_shader_invocation_reorder", "SPV_NV_cluster_acceleration_structure", "SPV_NV_linear_swept_spheres", + "SPV_KHR_maximal_reconvergence", }); } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_store_elim_pass.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_store_elim_pass.cpp index 6f28e54..a103765 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_store_elim_pass.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/local_single_store_elim_pass.cpp @@ -156,6 +156,7 @@ void LocalSingleStoreElimPass::InitExtensionAllowList() { "SPV_NV_shader_invocation_reorder", "SPV_NV_cluster_acceleration_structure", "SPV_NV_linear_swept_spheres", + "SPV_KHR_maximal_reconvergence", }); } bool LocalSingleStoreElimPass::ProcessVariable(Instruction* var_inst) { diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.cpp index 5caec41..b0064b4 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.cpp @@ -930,13 +930,13 @@ LoopDescriptor::Status LoopDescriptor::CreatePreHeaderBlocksIfMissing() { for (auto& loop : *this) { if (!loop.GetPreHeaderBlock()) { if (!loop.GetOrCreatePreHeaderBlock()) { - return Status::kFailure; + return Status::Failure; } modified = true; } } - return modified ? Status::kSuccessWithChange : Status::kSuccessWithoutChange; + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } // Add and remove loops which have been marked for addition and removal to diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.h b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.h index f0775f0..bd93bfa 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_descriptor.h @@ -28,6 +28,7 @@ #include "source/opt/dominator_analysis.h" #include "source/opt/module.h" #include "source/opt/tree_iterator.h" +#include "source/util/status.h" namespace spvtools { namespace opt { @@ -426,7 +427,7 @@ class LoopDescriptor { using const_pre_iterator = TreeDFIterator; // The status of processing a module. - enum class Status { kSuccessWithChange, kSuccessWithoutChange, kFailure }; + using Status = utils::Status; // Creates a loop object for all loops found in |f|. LoopDescriptor(IRContext* context, const Function* f); diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_fusion_pass.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_fusion_pass.cpp index 67dddc0..c8e74c8 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_fusion_pass.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_fusion_pass.cpp @@ -41,8 +41,8 @@ Pass::Status LoopFusionPass::ProcessFunction(Function* function) { // sure to return Status::SuccessWithChange in that case. bool modified = false; auto status = ld.CreatePreHeaderBlocksIfMissing(); - if (status == LoopDescriptor::Status::kFailure) return Status::Failure; - modified = status == LoopDescriptor::Status::kSuccessWithChange; + if (status == LoopDescriptor::Status::Failure) return Status::Failure; + modified = status == LoopDescriptor::Status::SuccessWithChange; // TODO(tremmelg): Could the only loop that |loop| could possibly be fused be // picked out so don't have to check every loop diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_unroller.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_unroller.cpp index 468b2ae..8765b16 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_unroller.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/loop_unroller.cpp @@ -938,6 +938,11 @@ bool LoopUnrollerUtilsImpl::AssignNewResultIds(BasicBlock* basic_block) { inst.SetResultId(new_id); def_use_mgr->AnalyzeInstDef(&inst); + // All decorations that can apply to an instruction in a function body + // modify the behaviour of the instruction, and should be on the + // new instruction to keep the same results. + context_->get_decoration_mgr()->CloneDecorations(old_id, new_id); + // Save the mapping of old_id -> new_id. state_.new_inst[old_id] = inst.result_id(); // Check if this instruction is the induction variable. diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/pass.h b/libs/bgfx/3rdparty/spirv-tools/source/opt/pass.h index 3e6c4d0..73773e3 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/pass.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/pass.h @@ -25,6 +25,7 @@ #include "source/opt/def_use_manager.h" #include "source/opt/ir_context.h" #include "source/opt/module.h" +#include "source/util/status.h" #include "spirv-tools/libspirv.hpp" #include "types.h" @@ -46,11 +47,7 @@ class Pass { // // The numbers for the cases are assigned to make sure that Failure & anything // is Failure, SuccessWithChange & any success is SuccessWithChange. - enum class Status { - Failure = 0x00, - SuccessWithChange = 0x10, - SuccessWithoutChange = 0x11, - }; + using Status = utils::Status; using ProcessFunction = std::function; diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp index 338320d..b5d3d65 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp @@ -142,6 +142,7 @@ Instruction* SplitCombinedImageSamplerPass::GetSamplerType() { analysis::Sampler s; uint32_t sampler_type_id = type_mgr_->GetTypeInstruction(&s); sampler_type_ = def_use_mgr_->GetDef(sampler_type_id); + if (sampler_type_ == nullptr) return nullptr; assert(first_sampled_image_type_); sampler_type_->InsertBefore(first_sampled_image_type_); RegisterNewGlobal(sampler_type_->result_id()); @@ -169,6 +170,7 @@ std::pair SplitCombinedImageSamplerPass::SplitType( auto* image_type = def_use_mgr_->GetDef(combined_kind_type.GetSingleWordInOperand(0)); auto* sampler_type = GetSamplerType(); + if (!sampler_type) return {nullptr, nullptr}; type_remap_[combined_kind_type.result_id()] = {&combined_kind_type, image_type, sampler_type}; return {image_type, sampler_type}; @@ -187,7 +189,9 @@ std::pair SplitCombinedImageSamplerPass::SplitType( // this defensively. if (image_pointee && sampler_pointee) { auto* ptr_image = MakeUniformConstantPointer(image_pointee); + if (!ptr_image) return {nullptr, nullptr}; auto* ptr_sampler = MakeUniformConstantPointer(sampler_pointee); + if (!ptr_sampler) return {nullptr, nullptr}; type_remap_[combined_kind_type.result_id()] = { &combined_kind_type, ptr_image, ptr_sampler}; return {ptr_image, ptr_sampler}; @@ -207,6 +211,7 @@ std::pair SplitCombinedImageSamplerPass::SplitType( analysis::Array array_image_ty(image_ty, array_ty->length_info()); const uint32_t array_image_ty_id = type_mgr_->GetTypeInstruction(&array_image_ty); + if (array_image_ty_id == 0) return {nullptr, nullptr}; auto* array_image_ty_inst = def_use_mgr_->GetDef(array_image_ty_id); if (!IsKnownGlobal(array_image_ty_id)) { array_image_ty_inst->InsertBefore(&combined_kind_type); @@ -214,11 +219,14 @@ std::pair SplitCombinedImageSamplerPass::SplitType( // GetTypeInstruction also updated the def-use manager. } + auto* sampler_ty_inst = GetSamplerType(); + if (!sampler_ty_inst) return {nullptr, nullptr}; analysis::Array sampler_array_ty( - type_mgr_->GetType(GetSamplerType()->result_id()), + type_mgr_->GetType(sampler_ty_inst->result_id()), array_ty->length_info()); const uint32_t array_sampler_ty_id = type_mgr_->GetTypeInstruction(&sampler_array_ty); + if (array_sampler_ty_id == 0) return {nullptr, nullptr}; auto* array_sampler_ty_inst = def_use_mgr_->GetDef(array_sampler_ty_id); if (!IsKnownGlobal(array_sampler_ty_id)) { array_sampler_ty_inst->InsertBefore(&combined_kind_type); @@ -240,6 +248,7 @@ std::pair SplitCombinedImageSamplerPass::SplitType( analysis::RuntimeArray array_image_ty(image_ty); const uint32_t array_image_ty_id = type_mgr_->GetTypeInstruction(&array_image_ty); + if (array_image_ty_id == 0) return {nullptr, nullptr}; auto* array_image_ty_inst = def_use_mgr_->GetDef(array_image_ty_id); if (!IsKnownGlobal(array_image_ty_id)) { array_image_ty_inst->InsertBefore(&combined_kind_type); @@ -247,10 +256,13 @@ std::pair SplitCombinedImageSamplerPass::SplitType( // GetTypeInstruction also updated the def-use manager. } + auto* sampler_ty_inst = GetSamplerType(); + if (!sampler_ty_inst) return {nullptr, nullptr}; analysis::RuntimeArray sampler_array_ty( - type_mgr_->GetType(GetSamplerType()->result_id())); + type_mgr_->GetType(sampler_ty_inst->result_id())); const uint32_t array_sampler_ty_id = type_mgr_->GetTypeInstruction(&sampler_array_ty); + if (array_sampler_ty_id == 0) return {nullptr, nullptr}; auto* array_sampler_ty_inst = def_use_mgr_->GetDef(array_sampler_ty_id); if (!IsKnownGlobal(array_sampler_ty_id)) { array_sampler_ty_inst->InsertBefore(&combined_kind_type); @@ -273,14 +285,14 @@ spv_result_t SplitCombinedImageSamplerPass::RemapVar( // Create an image variable, and a sampler variable. auto* combined_var_type = def_use_mgr_->GetDef(combined_var->type_id()); auto [ptr_image_ty, ptr_sampler_ty] = SplitType(*combined_var_type); - assert(ptr_image_ty); - assert(ptr_sampler_ty); - // TODO(1841): Handle id overflow. + if (!ptr_image_ty || !ptr_sampler_ty) return SPV_ERROR_INTERNAL; Instruction* sampler_var = builder.AddVariable( ptr_sampler_ty->result_id(), SpvStorageClassUniformConstant); - // TODO(1841): Handle id overflow. + if (sampler_var == nullptr) return SPV_ERROR_INTERNAL; Instruction* image_var = builder.AddVariable(ptr_image_ty->result_id(), SpvStorageClassUniformConstant); + if (image_var == nullptr) return SPV_ERROR_INTERNAL; + modified_ = true; return RemapUses(combined_var, image_var, sampler_var); } @@ -356,12 +368,12 @@ spv_result_t SplitCombinedImageSamplerPass::RemapUses( // Create loads for the image part and sampler part. builder.SetInsertPoint(load); - // TODO(1841): Handle id overflow. auto* image = builder.AddLoad(PointeeTypeId(use.image_part), use.image_part->result_id()); - // TODO(1841): Handle id overflow. + if (!image) return SPV_ERROR_INTERNAL; auto* sampler = builder.AddLoad(PointeeTypeId(use.sampler_part), use.sampler_part->result_id()); + if (!sampler) return SPV_ERROR_INTERNAL; // Move decorations, such as RelaxedPrecision. auto* deco_mgr = context()->get_decoration_mgr(); @@ -372,6 +384,7 @@ spv_result_t SplitCombinedImageSamplerPass::RemapUses( // Create a sampled image from the loads of the two parts. auto* sampled_image = builder.AddSampledImage( load->type_id(), image->result_id(), sampler->result_id()); + if (!sampled_image) return SPV_ERROR_INTERNAL; // Replace the original sampled image value with the new one. std::unordered_set users; def_use_mgr_->ForEachUse( @@ -463,14 +476,18 @@ spv_result_t SplitCombinedImageSamplerPass::RemapUses( auto [result_image_part_ty, result_sampler_part_ty] = SplitType(*def_use_mgr_->GetDef(original_access_chain->type_id())); - // TODO(1841): Handle id overflow. + if (!result_image_part_ty || !result_sampler_part_ty) + return Fail() << "failed to split type for access chain"; auto* result_image_part = builder.AddOpcodeAccessChain( use.user->opcode(), result_image_part_ty->result_id(), use.image_part->result_id(), indices); - // TODO(1841): Handle id overflow. + if (!result_image_part) + return Fail() << "failed to create access chain for image part"; auto* result_sampler_part = builder.AddOpcodeAccessChain( use.user->opcode(), result_sampler_part_ty->result_id(), use.sampler_part->result_id(), indices); + if (!result_sampler_part) + return Fail() << "failed to create access chain for sampler part"; // Remap uses of the original access chain. add_remap(original_access_chain, result_image_part, @@ -521,8 +538,7 @@ spv_result_t SplitCombinedImageSamplerPass::RemapFunctions() { if (combined_types_.find(param_ty_id) != combined_types_.end()) { auto* param_type = def_use_mgr_->GetDef(param_ty_id); auto [image_type, sampler_type] = SplitType(*param_type); - assert(image_type); - assert(sampler_type); + if (!image_type || !sampler_type) return SPV_ERROR_INTERNAL; // The image and sampler types must already exist, so there is no // need to move them to the right spot. new_params.push_back(type_mgr_->GetType(image_type->result_id())); @@ -579,6 +595,11 @@ spv_result_t SplitCombinedImageSamplerPass::RemapFunctions() { auto* combined_inst = param.release(); auto* combined_type = def_use_mgr_->GetDef(combined_inst->type_id()); auto [image_type, sampler_type] = SplitType(*combined_type); + if (!image_type || !sampler_type) { + error = true; + return; + } + uint32_t image_param_id = context()->TakeNextId(); if (image_param_id == 0) { error = true; @@ -621,6 +642,7 @@ Instruction* SplitCombinedImageSamplerPass::MakeUniformConstantPointer( Instruction* pointee) { uint32_t ptr_id = type_mgr_->FindPointerToType( pointee->result_id(), spv::StorageClass::UniformConstant); + if (ptr_id == 0) return nullptr; auto* ptr = def_use_mgr_->GetDef(ptr_id); if (!IsKnownGlobal(ptr_id)) { // The pointer type was created at the end. Put it right after the diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.cpp index 43e82cf..21c5df6 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.cpp @@ -237,6 +237,7 @@ uint32_t TypeManager::GetTypeInstruction(const Type* type) { DefineParameterlessCase(AccelerationStructureNV); DefineParameterlessCase(RayQueryKHR); DefineParameterlessCase(HitObjectNV); + DefineParameterlessCase(HitObjectEXT); #undef DefineParameterlessCase case Type::kInteger: typeInst = MakeUnique( @@ -654,6 +655,7 @@ Type* TypeManager::RebuildType(uint32_t type_id, const Type& type) { DefineNoSubtypeCase(AccelerationStructureNV); DefineNoSubtypeCase(RayQueryKHR); DefineNoSubtypeCase(HitObjectNV); + DefineNoSubtypeCase(HitObjectEXT); #undef DefineNoSubtypeCase case Type::kVector: { const Vector* vec_ty = type.AsVector(); @@ -1082,6 +1084,9 @@ Type* TypeManager::RecordIfTypeDefinition(const Instruction& inst) { case spv::Op::OpTypeHitObjectNV: type = new HitObjectNV(); break; + case spv::Op::OpTypeHitObjectEXT: + type = new HitObjectEXT(); + break; case spv::Op::OpTypeTensorLayoutNV: type = new TensorLayoutNV(inst.GetSingleWordInOperand(0), inst.GetSingleWordInOperand(1)); diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.h b/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.h index d1e6fc1..cadc7c2 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/type_manager.h @@ -203,7 +203,11 @@ class TypeManager { return GetRegisteredType(&bool_type); } - uint32_t GetBoolTypeId() { return GetTypeInstruction(GetBoolType()); } + uint32_t GetBoolTypeId() { + Type* bool_type = GetBoolType(); + if (bool_type == nullptr) return 0; + return GetTypeInstruction(bool_type); + } Type* GetVoidType() { Void void_type; diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/types.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/types.cpp index f0dc1c6..b6fa015 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/types.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/types.cpp @@ -135,6 +135,7 @@ std::unique_ptr Type::Clone() const { DeclareKindCase(CooperativeVectorNV); DeclareKindCase(RayQueryKHR); DeclareKindCase(HitObjectNV); + DeclareKindCase(HitObjectEXT); DeclareKindCase(TensorARM); DeclareKindCase(GraphARM); #undef DeclareKindCase @@ -187,6 +188,7 @@ bool Type::operator==(const Type& other) const { DeclareKindCase(CooperativeVectorNV); DeclareKindCase(RayQueryKHR); DeclareKindCase(HitObjectNV); + DeclareKindCase(HitObjectEXT); DeclareKindCase(TensorLayoutNV); DeclareKindCase(TensorViewNV); DeclareKindCase(TensorARM); @@ -249,6 +251,7 @@ size_t Type::ComputeHashValue(size_t hash, SeenTypes* seen) const { DeclareKindCase(CooperativeVectorNV); DeclareKindCase(RayQueryKHR); DeclareKindCase(HitObjectNV); + DeclareKindCase(HitObjectEXT); DeclareKindCase(TensorLayoutNV); DeclareKindCase(TensorViewNV); DeclareKindCase(TensorARM); diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/types.h b/libs/bgfx/3rdparty/spirv-tools/source/opt/types.h index 2dd6c75..4fa3e66 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/types.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/types.h @@ -67,6 +67,7 @@ class CooperativeMatrixKHR; class CooperativeVectorNV; class RayQueryKHR; class HitObjectNV; +class HitObjectEXT; class TensorLayoutNV; class TensorViewNV; class TensorARM; @@ -114,6 +115,7 @@ class Type { kCooperativeVectorNV, kRayQueryKHR, kHitObjectNV, + kHitObjectEXT, kTensorLayoutNV, kTensorViewNV, kTensorARM, @@ -222,6 +224,7 @@ class Type { DeclareCastMethod(CooperativeVectorNV) DeclareCastMethod(RayQueryKHR) DeclareCastMethod(HitObjectNV) + DeclareCastMethod(HitObjectEXT) DeclareCastMethod(TensorLayoutNV) DeclareCastMethod(TensorViewNV) DeclareCastMethod(TensorARM) @@ -862,6 +865,7 @@ DefineParameterlessType(NamedBarrier, named_barrier); DefineParameterlessType(AccelerationStructureNV, accelerationStructureNV); DefineParameterlessType(RayQueryKHR, rayQueryKHR); DefineParameterlessType(HitObjectNV, hitObjectNV); +DefineParameterlessType(HitObjectEXT, hitObjectEXT); #undef DefineParameterlessType } // namespace analysis diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.cpp b/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.cpp index 9f6863a..8c33ab7 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.cpp @@ -38,6 +38,45 @@ uint32_t ValueNumberTable::GetValueNumber(uint32_t id) const { return GetValueNumber(context()->get_def_use_mgr()->GetDef(id)); } +bool ValueNumberTable::IsReadOnlyLoad(Instruction* inst) { + if (!inst->IsLoad()) { + return false; + } + + Instruction* address_def = inst->GetBaseAddress(); + if (!address_def) { + return false; + } + + auto cached_result = read_only_variable_cache_.find(address_def->result_id()); + if (cached_result != read_only_variable_cache_.end()) { + return cached_result->second; + } + + bool is_read_only = IsReadOnlyVariable(address_def); + read_only_variable_cache_[address_def->result_id()] = is_read_only; + return is_read_only; +} + +bool ValueNumberTable::IsReadOnlyVariable(Instruction* address_def) { + if (address_def->opcode() == spv::Op::OpVariable) { + if (address_def->IsReadOnlyPointer()) { + return true; + } + } + + if (address_def->opcode() == spv::Op::OpLoad) { + const analysis::Type* address_type = + context()->get_type_mgr()->GetType(address_def->type_id()); + if (address_type->AsSampledImage() != nullptr) { + const auto* image_type = + address_type->AsSampledImage()->image_type()->AsImage(); + return image_type->sampled() == 1; + } + } + return false; +} + uint32_t ValueNumberTable::AssignValueNumber(Instruction* inst) { // If it already has a value return that. uint32_t value = GetValueNumber(inst); @@ -88,7 +127,7 @@ uint32_t ValueNumberTable::AssignValueNumber(Instruction* inst) { // Note that this test will also handle volatile loads because they are not // read only. However, if this is ever relaxed because we analyze stores, we // will have to add a new case for volatile loads. - if (inst->IsLoad() && !inst->IsReadOnlyLoad()) { + if (inst->IsLoad() && !IsReadOnlyLoad(inst)) { return assign_new_number(inst); } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.h b/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.h index 39129ff..c7c909b 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/opt/value_number_table.h @@ -70,6 +70,14 @@ class ValueNumberTable { // Assigns a value number to every result id in the module. void BuildDominatorTreeValueNumberTable(); + // Returns true if |inst| is a load from read-only memory. This is a cached + // version of |Instruction::IsReadOnlyLoad| that is local to this pass. + bool IsReadOnlyLoad(Instruction* inst); + + // Returns true if the variable pointed to by |address_def| is read-only. + // This is the part of |IsReadOnlyLoad| that is cached. + bool IsReadOnlyVariable(Instruction* address_def); + // Returns the new value number. uint32_t TakeNextValueNumber() { return next_value_number_++; } @@ -81,6 +89,10 @@ class ValueNumberTable { std::unordered_map instruction_to_value_; std::unordered_map id_to_value_; + // A cache for the results of |IsReadOnlyVariable|. The key is the base + // variable of a load. + std::unordered_map read_only_variable_cache_; + IRContext* context_; uint32_t next_value_number_; }; diff --git a/libs/bgfx/3rdparty/spirv-tools/source/util/bitutils.h b/libs/bgfx/3rdparty/spirv-tools/source/util/bitutils.h index 2763bc2..dbf6a9c 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/util/bitutils.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/util/bitutils.h @@ -206,6 +206,23 @@ T ZeroExtendValue(T value, uint32_t number_of_bits) { return utils::ClearHighBits(value, bit_width - number_of_bits); } +// Returns the the least significant bit from |value|. +template +constexpr T LSB(T value) { + static_assert(std::is_integral::value, "LSB requires integer type"); + if constexpr (std::is_unsigned_v) { + // Prevent warnings about doing a -x on unsigned values. + return value & (~value + 1); + } else { + return value & -value; + } +} + +static_assert(LSB(UINT32_MAX) == uint32_t(0x00000001), "LSB failed"); +static_assert(LSB(0x10001000) == uint32_t(0x00001000), "LSB failed"); +static_assert(LSB(0x10000000) == uint32_t(0x10000000), "LSB failed"); +static_assert(LSB(-1) == int32_t(0x00000001), "LSB failed"); + } // namespace utils } // namespace spvtools diff --git a/libs/bgfx/3rdparty/spirv-tools/source/util/status.h b/libs/bgfx/3rdparty/spirv-tools/source/util/status.h new file mode 100644 index 0000000..3799d38 --- /dev/null +++ b/libs/bgfx/3rdparty/spirv-tools/source/util/status.h @@ -0,0 +1,31 @@ +// Copyright (c) 2025 Google LLC +// +// 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 SOURCE_UTIL_STATUS_H_ +#define SOURCE_UTIL_STATUS_H_ + +namespace spvtools { +namespace utils { + +// The result of processing a module. +enum class Status { + Failure = 0x0, + SuccessWithChange = 0x10, + SuccessWithoutChange = 0x11 +}; + +} // namespace utils +} // namespace spvtools + +#endif // SOURCE_UTIL_STATUS_H_ diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate.cpp index 90bb480..27bb5cb 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate.cpp @@ -399,6 +399,7 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( if (auto error = RayQueryPass(*vstate, &instruction)) return error; if (auto error = RayTracingPass(*vstate, &instruction)) return error; if (auto error = RayReorderNVPass(*vstate, &instruction)) return error; + if (auto error = RayReorderEXTPass(*vstate, &instruction)) return error; if (auto error = MeshShadingPass(*vstate, &instruction)) return error; if (auto error = TensorLayoutPass(*vstate, &instruction)) return error; if (auto error = TensorPass(*vstate, &instruction)) return error; @@ -430,6 +431,7 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( if (auto error = ValidateQCOMImageProcessingTextureUsages(*vstate, &inst)) return error; } + if (auto error = ValidateLogicalPointers(*vstate)) return error; return SPV_SUCCESS; } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate.h b/libs/bgfx/3rdparty/spirv-tools/source/val/validate.h index 7c6faa1..b21972e 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate.h +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate.h @@ -220,6 +220,9 @@ spv_result_t RayTracingPass(ValidationState_t& _, const Instruction* inst); /// Validates correctness of shader execution reorder instructions. spv_result_t RayReorderNVPass(ValidationState_t& _, const Instruction* inst); +/// Validates correctness of shader execution reorder EXT instructions. +spv_result_t RayReorderEXTPass(ValidationState_t& _, const Instruction* inst); + /// Validates correctness of mesh shading instructions. spv_result_t MeshShadingPass(ValidationState_t& _, const Instruction* inst); @@ -259,6 +262,9 @@ spv_result_t ValidateSmallTypeUses(ValidationState_t& _, spv_result_t ValidateQCOMImageProcessingTextureUsages(ValidationState_t& _, const Instruction* inst); +/// Validates logical pointer restrictions. +spv_result_t ValidateLogicalPointers(ValidationState_t& _); + /// @brief Validate the ID's within a SPIR-V binary /// /// @param[in] pInstructions array of instructions diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_annotation.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_annotation.cpp index 2545f2f..8ef9eef 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_annotation.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_annotation.cpp @@ -217,6 +217,7 @@ spv_result_t ValidateDecorationTarget(ValidationState_t& _, spv::Decoration dec, sc != spv::StorageClass::IncomingCallableDataKHR && sc != spv::StorageClass::ShaderRecordBufferKHR && sc != spv::StorageClass::HitObjectAttributeNV && + sc != spv::StorageClass::HitObjectAttributeEXT && sc != spv::StorageClass::TileImageEXT) { return _.diag(SPV_ERROR_INVALID_ID, target) << _.VkErrorID(6672) << _.SpvDecorationString(dec) diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_arithmetics.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_arithmetics.cpp index 38281be..eb30274 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_arithmetics.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_arithmetics.cpp @@ -36,7 +36,8 @@ spv_result_t ArithmeticsPass(ValidationState_t& _, const Instruction* inst) { case spv::Op::OpFDiv: case spv::Op::OpFRem: case spv::Op::OpFMod: - case spv::Op::OpFNegate: { + case spv::Op::OpFNegate: + case spv::Op::OpFmaKHR: { bool supportsCoopMat = (opcode != spv::Op::OpFMul && opcode != spv::Op::OpFRem && opcode != spv::Op::OpFMod); diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_builtins.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_builtins.cpp index ba02047..c8586a7 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_builtins.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_builtins.cpp @@ -123,7 +123,7 @@ typedef enum VUIDError_ { VUIDErrorMax, } VUIDError; -const static uint32_t NumVUIDBuiltins = 40; +const static uint32_t NumVUIDBuiltins = 41; typedef struct { spv::BuiltIn builtIn; @@ -170,6 +170,7 @@ std::array builtinVUIDInfo = {{ {spv::BuiltIn::CullMaskKHR, {6735, 6736, 6737}}, {spv::BuiltIn::BaryCoordKHR, {4154, 4155, 4156}}, {spv::BuiltIn::BaryCoordNoPerspKHR, {4160, 4161, 4162}}, + {spv::BuiltIn::LocalInvocationIndex, {4284, 4285, 4286}}, {spv::BuiltIn::PrimitivePointIndicesEXT, {7041, 7043, 7044}}, {spv::BuiltIn::PrimitiveLineIndicesEXT, {7047, 7049, 7050}}, {spv::BuiltIn::PrimitiveTriangleIndicesEXT, {7053, 7055, 7056}}, @@ -2829,14 +2830,69 @@ spv_result_t BuiltInsValidator::ValidateVertexIdAtDefinition( spv_result_t BuiltInsValidator::ValidateLocalInvocationIndexAtDefinition( const Decoration& decoration, const Instruction& inst) { + if (spvIsVulkanEnv(_.context()->target_env)) { + if (spv_result_t error = ValidateI32( + decoration, inst, + [this, &inst](const std::string& message) -> spv_result_t { + uint32_t vuid = GetVUIDForBuiltin( + spv::BuiltIn::LocalInvocationIndex, VUIDErrorType); + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(vuid) + << "According to the Vulkan spec BuiltIn " + "LocalInvocationIndex variable needs to be a 32-bit " + "int scalar. " + << message; + })) { + return error; + } + } + // Seed at reference checks with this built-in. return ValidateLocalInvocationIndexAtReference(decoration, inst, inst, inst); } spv_result_t BuiltInsValidator::ValidateLocalInvocationIndexAtReference( const Decoration& decoration, const Instruction& built_in_inst, - const Instruction&, + const Instruction& referenced_inst, const Instruction& referenced_from_inst) { + if (spvIsVulkanEnv(_.context()->target_env)) { + const spv::StorageClass storage_class = + GetStorageClass(referenced_from_inst); + if (storage_class != spv::StorageClass::Max && + storage_class != spv::StorageClass::Input) { + uint32_t vuid = GetVUIDForBuiltin(spv::BuiltIn::LocalInvocationIndex, + VUIDErrorStorageClass); + return _.diag(SPV_ERROR_INVALID_DATA, &referenced_from_inst) + << _.VkErrorID(vuid) + << "Vulkan spec allows BuiltIn LocalInvocationIndex to be only " + "used for variables with Input storage class. " + << GetReferenceDesc(decoration, built_in_inst, referenced_inst, + referenced_from_inst) + << " " << GetStorageClassDesc(referenced_from_inst); + } + + for (const spv::ExecutionModel execution_model : execution_models_) { + bool has_vulkan_model = + execution_model == spv::ExecutionModel::GLCompute || + execution_model == spv::ExecutionModel::TaskNV || + execution_model == spv::ExecutionModel::MeshNV || + execution_model == spv::ExecutionModel::TaskEXT || + execution_model == spv::ExecutionModel::MeshEXT; + + if (spvIsVulkanEnv(_.context()->target_env) && !has_vulkan_model) { + uint32_t vuid = GetVUIDForBuiltin(spv::BuiltIn::LocalInvocationIndex, + VUIDErrorExecutionModel); + return _.diag(SPV_ERROR_INVALID_DATA, &referenced_from_inst) + << _.VkErrorID(vuid) + << "Vulkan spec allows BuiltIn LocalInvocationIndex to be used " + "only with GLCompute, MeshNV, TaskNV, MeshEXT or" + << " TaskEXT execution model. " + << GetReferenceDesc(decoration, built_in_inst, referenced_inst, + referenced_from_inst, execution_model); + } + } + } + if (function_id_ == 0) { // Propagate this rule to all dependant ids in the global scope. id_to_at_reference_checks_[referenced_from_inst.id()].push_back( diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_composites.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_composites.cpp index 68636f3..f12dd1c 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_composites.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_composites.cpp @@ -532,8 +532,7 @@ spv_result_t ValidateVectorShuffle(ValidationState_t& _, if (!resultType || resultType->opcode() != spv::Op::OpTypeVector) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "The Result Type of OpVectorShuffle must be" - << " OpTypeVector. Found Op" - << spvOpcodeString(static_cast(resultType->opcode())) + << " OpTypeVector. Found Op" << spvOpcodeString(resultType->opcode()) << "."; } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_extensions.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_extensions.cpp index b26d817..4cd8f82 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_extensions.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_extensions.cpp @@ -13,6 +13,7 @@ // limitations under the License. // Validates correctness of extension SPIR-V instructions. +#include #include #include #include @@ -1087,6 +1088,7 @@ spv_result_t ValidateExtension(ValidationState_t& _, const Instruction* inst) { ExtensionToString(kSPV_KHR_workgroup_memory_explicit_layout) || extension == ExtensionToString(kSPV_EXT_mesh_shader) || extension == ExtensionToString(kSPV_NV_shader_invocation_reorder) || + extension == ExtensionToString(kSPV_EXT_shader_invocation_reorder) || extension == ExtensionToString(kSPV_NV_cluster_acceleration_structure) || extension == ExtensionToString(kSPV_NV_linear_swept_spheres) || @@ -3753,12 +3755,26 @@ spv_result_t ValidateExtInstDebugInfo100(ValidationState_t& _, }, inst, 12)) { auto* operand = _.FindDef(inst->word(12)); - if (operand->opcode() != spv::Op::OpVariable && - operand->opcode() != spv::Op::OpConstant) { + std::initializer_list allowed_opcodes = { + spv::Op::OpVariable, + spv::Op::OpConstantTrue, + spv::Op::OpConstantFalse, + spv::Op::OpConstant, + spv::Op::OpConstantComposite, + spv::Op::OpConstantSampler, + spv::Op::OpConstantNull, + spv::Op::OpSpecConstantTrue, + spv::Op::OpSpecConstantFalse, + spv::Op::OpSpecConstant, + spv::Op::OpSpecConstantComposite, + spv::Op::OpSpecConstantOp}; + if (std::find(allowed_opcodes.begin(), allowed_opcodes.end(), + operand->opcode()) == allowed_opcodes.end()) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << GetExtInstName(_, inst) << ": " << "expected operand Variable must be a result id of " - "OpVariable or OpConstant or DebugInfoNone"; + "OpVariable, OpConstant variant, OpSpecConstant variant " + "or DebugInfoNone"; } } if (num_words == 15) { diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_function.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_function.cpp index 265cbbd..d84d40a 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_function.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_function.cpp @@ -170,6 +170,34 @@ spv_result_t ValidateFunctionCall(ValidationState_t& _, << "s type does not match Function " << _.getIdName(return_type->id()) << "s return type."; } + if (!_.options()->relax_logical_pointer && + (_.addressing_model() == spv::AddressingModel::Logical || + _.addressing_model() == spv::AddressingModel::PhysicalStorageBuffer64)) { + if (return_type->opcode() == spv::Op::OpTypePointer || + return_type->opcode() == spv::Op::OpTypeUntypedPointerKHR) { + const auto sc = return_type->GetOperandAs(1); + if (sc != spv::StorageClass::PhysicalStorageBuffer) { + if (!_.HasCapability(spv::Capability::VariablePointersStorageBuffer) && + sc == spv::StorageClass::StorageBuffer) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing, functions may only return a " + "storage buffer pointer if the " + "VariablePointersStorageBuffer capability is declared"; + } else if (!_.HasCapability(spv::Capability::VariablePointers) && + sc == spv::StorageClass::Workgroup) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing, functions may only return a " + "workgroup pointer if the VariablePointers capability is " + "declared"; + } else if (sc != spv::StorageClass::StorageBuffer && + sc != spv::StorageClass::Workgroup) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing, functions may not return a pointer " + "in this storage class"; + } + } + } + } const auto function_type_id = function->GetOperandAs(3); const auto function_type = _.FindDef(function_type_id); @@ -216,51 +244,59 @@ spv_result_t ValidateFunctionCall(ValidationState_t& _, } } - if (_.addressing_model() == spv::AddressingModel::Logical) { + if (_.addressing_model() == spv::AddressingModel::Logical || + _.addressing_model() == spv::AddressingModel::PhysicalStorageBuffer64) { if ((parameter_type->opcode() == spv::Op::OpTypePointer || parameter_type->opcode() == spv::Op::OpTypeUntypedPointerKHR) && !_.options()->relax_logical_pointer) { spv::StorageClass sc = parameter_type->GetOperandAs(1u); - // Validate which storage classes can be pointer operands. - switch (sc) { - case spv::StorageClass::UniformConstant: - case spv::StorageClass::Function: - case spv::StorageClass::Private: - case spv::StorageClass::Workgroup: - case spv::StorageClass::AtomicCounter: - // These are always allowed. - break; - case spv::StorageClass::StorageBuffer: - if (!_.features().variable_pointers) { + if (sc != spv::StorageClass::PhysicalStorageBuffer) { + // Validate which storage classes can be pointer operands. + switch (sc) { + case spv::StorageClass::UniformConstant: + case spv::StorageClass::Function: + case spv::StorageClass::Private: + case spv::StorageClass::Workgroup: + case spv::StorageClass::AtomicCounter: + // SPV_EXT_tile_image + case spv::StorageClass::TileImageEXT: + // SPV_KHR_ray_tracing + case spv::StorageClass::ShaderRecordBufferKHR: + // These are always allowed. + break; + case spv::StorageClass::StorageBuffer: + if (!_.features().variable_pointers) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "StorageBuffer pointer operand " + << _.getIdName(argument_id) + << " requires a variable pointers capability"; + } + break; + default: return _.diag(SPV_ERROR_INVALID_ID, inst) - << "StorageBuffer pointer operand " - << _.getIdName(argument_id) - << " requires a variable pointers capability"; - } - break; - default: - return _.diag(SPV_ERROR_INVALID_ID, inst) - << "Invalid storage class for pointer operand " - << _.getIdName(argument_id); - } + << "Invalid storage class for pointer operand " + << _.getIdName(argument_id); + } - // Validate memory object declaration requirements. - if (argument->opcode() != spv::Op::OpVariable && - argument->opcode() != spv::Op::OpUntypedVariableKHR && - argument->opcode() != spv::Op::OpFunctionParameter) { - const bool ssbo_vptr = - _.HasCapability(spv::Capability::VariablePointersStorageBuffer) && - sc == spv::StorageClass::StorageBuffer; - const bool wg_vptr = - _.HasCapability(spv::Capability::VariablePointers) && - sc == spv::StorageClass::Workgroup; - const bool uc_ptr = sc == spv::StorageClass::UniformConstant; - if (!_.options()->before_hlsl_legalization && !ssbo_vptr && - !wg_vptr && !uc_ptr) { - return _.diag(SPV_ERROR_INVALID_ID, inst) - << "Pointer operand " << _.getIdName(argument_id) - << " must be a memory object declaration"; + // Validate memory object declaration requirements. + if (argument->opcode() != spv::Op::OpVariable && + argument->opcode() != spv::Op::OpUntypedVariableKHR && + argument->opcode() != spv::Op::OpFunctionParameter) { + const bool ssbo_vptr = + _.HasCapability( + spv::Capability::VariablePointersStorageBuffer) && + sc == spv::StorageClass::StorageBuffer; + const bool wg_vptr = + _.HasCapability(spv::Capability::VariablePointers) && + sc == spv::StorageClass::Workgroup; + const bool uc_ptr = sc == spv::StorageClass::UniformConstant; + if (!_.options()->before_hlsl_legalization && !ssbo_vptr && + !wg_vptr && !uc_ptr) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "Pointer operand " << _.getIdName(argument_id) + << " must be a memory object declaration"; + } } } } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_image.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_image.cpp index 58f22f2..e756a9e 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_image.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_image.cpp @@ -1100,7 +1100,7 @@ spv_result_t ValidateSampledImage(ValidationState_t& _, << "Result from OpSampledImage instruction must not appear " "as " "operands of Op" - << spvOpcodeString(static_cast(consumer_opcode)) << "." + << spvOpcodeString(consumer_opcode) << "." << " Found result " << _.getIdName(inst->id()) << " as an operand of " << _.getIdName(consumer_instr->id()) << "."; @@ -1110,12 +1110,11 @@ spv_result_t ValidateSampledImage(ValidationState_t& _, return _.diag(SPV_ERROR_INVALID_ID, inst) << "Result from OpSampledImage instruction must not appear " "as operand for Op" - << spvOpcodeString(static_cast(consumer_opcode)) + << spvOpcodeString(consumer_opcode) << ", since it is not specified as taking an " - << "OpTypeSampledImage." - << " Found result " << _.getIdName(inst->id()) - << " as an operand of " << _.getIdName(consumer_instr->id()) - << "."; + << "OpTypeSampledImage." << " Found result " + << _.getIdName(inst->id()) << " as an operand of " + << _.getIdName(consumer_instr->id()) << "."; } } } diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_logical_pointers.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_logical_pointers.cpp new file mode 100644 index 0000000..1528701 --- /dev/null +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_logical_pointers.cpp @@ -0,0 +1,1010 @@ +// Copyright (c) 2025 Google LLC. +// +// 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. + +#include +#include +#include + +#include "source/opcode.h" +#include "source/val/validate.h" +#include "source/val/validation_state.h" + +namespace spvtools { +namespace val { +namespace { + +// Returns true if inst is a logical pointer. +bool IsLogicalPointer(const ValidationState_t& _, const Instruction* inst) { + if (!_.IsPointerType(inst->type_id())) { + return false; + } + + // Physical storage buffer pointers are not logical pointers. + auto type_inst = _.FindDef(inst->type_id()); + auto sc = type_inst->GetOperandAs(1); + if (sc == spv::StorageClass::PhysicalStorageBuffer) { + return false; + } + + return true; +} + +// Returns true if inst is a variable pointer. +// Caches the result in variable_pointers. +bool IsVariablePointer(const ValidationState_t& _, + std::unordered_map& variable_pointers, + const Instruction* inst) { + const auto iter = variable_pointers.find(inst->id()); + if (iter != variable_pointers.end()) { + return iter->second; + } + + bool is_var_ptr = false; + switch (inst->opcode()) { + case spv::Op::OpPtrAccessChain: + case spv::Op::OpUntypedPtrAccessChainKHR: + case spv::Op::OpUntypedInBoundsPtrAccessChainKHR: + case spv::Op::OpLoad: + case spv::Op::OpSelect: + case spv::Op::OpPhi: + case spv::Op::OpFunctionCall: + case spv::Op::OpConstantNull: + is_var_ptr = true; + break; + case spv::Op::OpFunctionParameter: + // Special case: skip to function calls. + if (IsLogicalPointer(_, inst)) { + auto func = inst->function(); + auto func_inst = _.FindDef(func->id()); + + const auto param_inst_num = inst - &_.ordered_instructions()[0]; + uint32_t param_index = 0; + uint32_t inst_index = 1; + while (_.ordered_instructions()[param_inst_num - inst_index].opcode() != + spv::Op::OpFunction) { + if (_.ordered_instructions()[param_inst_num - inst_index].opcode() == + spv::Op::OpFunctionParameter) { + param_index++; + } + ++inst_index; + } + + for (const auto& use_pair : func_inst->uses()) { + const auto use_inst = use_pair.first; + if (use_inst->opcode() == spv::Op::OpFunctionCall) { + const auto arg_id = + use_inst->GetOperandAs(3 + param_index); + const auto arg_inst = _.FindDef(arg_id); + is_var_ptr |= IsVariablePointer(_, variable_pointers, arg_inst); + } + } + } + break; + default: { + for (uint32_t i = 0; i < inst->operands().size(); ++i) { + if (inst->operands()[i].type != SPV_OPERAND_TYPE_ID) { + continue; + } + + auto op_inst = _.FindDef(inst->GetOperandAs(i)); + if (IsLogicalPointer(_, op_inst)) { + is_var_ptr |= IsVariablePointer(_, variable_pointers, op_inst); + } + } + break; + } + } + variable_pointers[inst->id()] = is_var_ptr; + return is_var_ptr; +} + +spv_result_t ValidateLogicalPointerOperands(ValidationState_t& _, + const Instruction* inst) { + bool has_pointer_operand = false; + spv::StorageClass sc = spv::StorageClass::Function; + for (uint32_t i = 0; i < inst->operands().size(); ++i) { + if (inst->operands()[i].type != SPV_OPERAND_TYPE_ID) { + continue; + } + + auto op_inst = _.FindDef(inst->GetOperandAs(i)); + if (IsLogicalPointer(_, op_inst)) { + has_pointer_operand = true; + + // Assume that there are not mixed storage classes in the instruction. + // This is not true for OpCopyMemory and OpCopyMemorySized, but they allow + // all storage classes. + auto type_inst = _.FindDef(op_inst->type_id()); + sc = type_inst->GetOperandAs(1); + break; + } + } + + if (!has_pointer_operand) { + return SPV_SUCCESS; + } + + switch (inst->opcode()) { + // The following instructions allow logical pointer operands in all cases + // without capabilities. + case spv::Op::OpLoad: + case spv::Op::OpStore: + case spv::Op::OpAccessChain: + case spv::Op::OpInBoundsAccessChain: + case spv::Op::OpFunctionCall: + case spv::Op::OpImageTexelPointer: + case spv::Op::OpCopyMemory: + case spv::Op::OpCopyObject: + case spv::Op::OpArrayLength: + case spv::Op::OpExtInst: + // Core spec bugs + case spv::Op::OpDecorate: + case spv::Op::OpDecorateId: + case spv::Op::OpGroupDecorate: + case spv::Op::OpEntryPoint: + case spv::Op::OpName: + case spv::Op::OpDecorateString: + // SPV_KHR_untyped_pointers + case spv::Op::OpUntypedArrayLengthKHR: + case spv::Op::OpUntypedAccessChainKHR: + case spv::Op::OpUntypedInBoundsAccessChainKHR: + case spv::Op::OpCopyMemorySized: + // Cooperative matrix KHR/NV + case spv::Op::OpCooperativeMatrixLoadKHR: + case spv::Op::OpCooperativeMatrixLoadNV: + case spv::Op::OpCooperativeMatrixStoreKHR: + case spv::Op::OpCooperativeMatrixStoreNV: + // SPV_KHR_ray_tracing + case spv::Op::OpTraceRayKHR: + case spv::Op::OpExecuteCallableKHR: + // SPV_KHR_ray_query + case spv::Op::OpRayQueryConfirmIntersectionKHR: + case spv::Op::OpRayQueryInitializeKHR: + case spv::Op::OpRayQueryTerminateKHR: + case spv::Op::OpRayQueryGenerateIntersectionKHR: + case spv::Op::OpRayQueryProceedKHR: + case spv::Op::OpRayQueryGetIntersectionTypeKHR: + case spv::Op::OpRayQueryGetRayTMinKHR: + case spv::Op::OpRayQueryGetRayFlagsKHR: + case spv::Op::OpRayQueryGetIntersectionTKHR: + case spv::Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: + case spv::Op::OpRayQueryGetIntersectionInstanceIdKHR: + case spv::Op:: + OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: + case spv::Op::OpRayQueryGetIntersectionGeometryIndexKHR: + case spv::Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: + case spv::Op::OpRayQueryGetIntersectionBarycentricsKHR: + case spv::Op::OpRayQueryGetIntersectionFrontFaceKHR: + case spv::Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: + case spv::Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: + case spv::Op::OpRayQueryGetIntersectionObjectRayOriginKHR: + case spv::Op::OpRayQueryGetWorldRayDirectionKHR: + case spv::Op::OpRayQueryGetWorldRayOriginKHR: + case spv::Op::OpRayQueryGetIntersectionObjectToWorldKHR: + case spv::Op::OpRayQueryGetIntersectionWorldToObjectKHR: + // SPV_KHR_ray_tracing_position_fetch + case spv::Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: + // SPV_NV_cluster_acceleration_structure + case spv::Op::OpRayQueryGetClusterIdNV: + case spv::Op::OpHitObjectGetClusterIdNV: + // SPV_NV_ray_tracing_motion_blur + case spv::Op::OpTraceMotionNV: + case spv::Op::OpTraceRayMotionNV: + // SPV_NV_linear_swept_spheres + case spv::Op::OpRayQueryGetIntersectionSpherePositionNV: + case spv::Op::OpRayQueryGetIntersectionSphereRadiusNV: + case spv::Op::OpRayQueryGetIntersectionLSSPositionsNV: + case spv::Op::OpRayQueryGetIntersectionLSSRadiiNV: + case spv::Op::OpRayQueryGetIntersectionLSSHitValueNV: + case spv::Op::OpRayQueryIsSphereHitNV: + case spv::Op::OpRayQueryIsLSSHitNV: + case spv::Op::OpHitObjectGetSpherePositionNV: + case spv::Op::OpHitObjectGetSphereRadiusNV: + case spv::Op::OpHitObjectGetLSSPositionsNV: + case spv::Op::OpHitObjectGetLSSRadiiNV: + case spv::Op::OpHitObjectIsSphereHitNV: + case spv::Op::OpHitObjectIsLSSHitNV: + // SPV_NV_shader_invocation_reorder + case spv::Op::OpReorderThreadWithHitObjectNV: + case spv::Op::OpHitObjectTraceRayNV: + case spv::Op::OpHitObjectTraceRayMotionNV: + case spv::Op::OpHitObjectRecordHitNV: + case spv::Op::OpHitObjectRecordHitMotionNV: + case spv::Op::OpHitObjectRecordHitWithIndexNV: + case spv::Op::OpHitObjectRecordHitWithIndexMotionNV: + case spv::Op::OpHitObjectRecordMissNV: + case spv::Op::OpHitObjectRecordMissMotionNV: + case spv::Op::OpHitObjectRecordEmptyNV: + case spv::Op::OpHitObjectExecuteShaderNV: + case spv::Op::OpHitObjectGetCurrentTimeNV: + case spv::Op::OpHitObjectGetAttributesNV: + case spv::Op::OpHitObjectGetHitKindNV: + case spv::Op::OpHitObjectGetPrimitiveIndexNV: + case spv::Op::OpHitObjectGetGeometryIndexNV: + case spv::Op::OpHitObjectGetInstanceIdNV: + case spv::Op::OpHitObjectGetInstanceCustomIndexNV: + case spv::Op::OpHitObjectGetObjectRayOriginNV: + case spv::Op::OpHitObjectGetObjectRayDirectionNV: + case spv::Op::OpHitObjectGetWorldRayDirectionNV: + case spv::Op::OpHitObjectGetWorldRayOriginNV: + case spv::Op::OpHitObjectGetObjectToWorldNV: + case spv::Op::OpHitObjectGetWorldToObjectNV: + case spv::Op::OpHitObjectGetRayTMaxNV: + case spv::Op::OpHitObjectGetRayTMinNV: + case spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV: + case spv::Op::OpHitObjectGetShaderRecordBufferHandleNV: + case spv::Op::OpHitObjectIsEmptyNV: + case spv::Op::OpHitObjectIsHitNV: + case spv::Op::OpHitObjectIsMissNV: + // SPV_EXT_shader_invocation_reorder + case spv::Op::OpHitObjectRecordFromQueryEXT: + case spv::Op::OpHitObjectRecordMissEXT: + case spv::Op::OpHitObjectRecordMissMotionEXT: + case spv::Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: + case spv::Op::OpHitObjectGetRayFlagsEXT: + case spv::Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: + case spv::Op::OpHitObjectReorderExecuteShaderEXT: + case spv::Op::OpHitObjectTraceReorderExecuteEXT: + case spv::Op::OpHitObjectTraceMotionReorderExecuteEXT: + case spv::Op::OpReorderThreadWithHintEXT: + case spv::Op::OpReorderThreadWithHitObjectEXT: + case spv::Op::OpHitObjectTraceRayEXT: + case spv::Op::OpHitObjectTraceRayMotionEXT: + case spv::Op::OpHitObjectRecordEmptyEXT: + case spv::Op::OpHitObjectExecuteShaderEXT: + case spv::Op::OpHitObjectGetCurrentTimeEXT: + case spv::Op::OpHitObjectGetAttributesEXT: + case spv::Op::OpHitObjectGetHitKindEXT: + case spv::Op::OpHitObjectGetPrimitiveIndexEXT: + case spv::Op::OpHitObjectGetGeometryIndexEXT: + case spv::Op::OpHitObjectGetInstanceIdEXT: + case spv::Op::OpHitObjectGetInstanceCustomIndexEXT: + case spv::Op::OpHitObjectGetObjectRayOriginEXT: + case spv::Op::OpHitObjectGetObjectRayDirectionEXT: + case spv::Op::OpHitObjectGetWorldRayDirectionEXT: + case spv::Op::OpHitObjectGetWorldRayOriginEXT: + case spv::Op::OpHitObjectGetObjectToWorldEXT: + case spv::Op::OpHitObjectGetWorldToObjectEXT: + case spv::Op::OpHitObjectGetRayTMaxEXT: + case spv::Op::OpHitObjectGetRayTMinEXT: + case spv::Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: + case spv::Op::OpHitObjectGetShaderRecordBufferHandleEXT: + case spv::Op::OpHitObjectIsEmptyEXT: + case spv::Op::OpHitObjectIsHitEXT: + case spv::Op::OpHitObjectIsMissEXT: + // SPV_NV_raw_access_chains + case spv::Op::OpRawAccessChainNV: + // SPV_NV_cooperative_matrix2 + case spv::Op::OpCooperativeMatrixLoadTensorNV: + case spv::Op::OpCooperativeMatrixStoreTensorNV: + // SPV_NV_cooperative_vector + case spv::Op::OpCooperativeVectorLoadNV: + case spv::Op::OpCooperativeVectorStoreNV: + case spv::Op::OpCooperativeVectorMatrixMulNV: + case spv::Op::OpCooperativeVectorMatrixMulAddNV: + case spv::Op::OpCooperativeVectorOuterProductAccumulateNV: + case spv::Op::OpCooperativeVectorReduceSumAccumulateNV: + // SPV_EXT_mesh_shader + case spv::Op::OpEmitMeshTasksEXT: + // SPV_AMD_shader_enqueue (spec bugs) + case spv::Op::OpEnqueueNodePayloadsAMDX: + case spv::Op::OpNodePayloadArrayLengthAMDX: + case spv::Op::OpIsNodePayloadValidAMDX: + case spv::Op::OpFinishWritingNodePayloadAMDX: + // SPV_ARM_graph + case spv::Op::OpGraphEntryPointARM: + return SPV_SUCCESS; + // The following cases require a variable pointer capability. Since all + // instructions are for variable pointers, the storage class and capability + // are also checked. + case spv::Op::OpReturnValue: + case spv::Op::OpPtrAccessChain: + case spv::Op::OpPtrEqual: + case spv::Op::OpPtrNotEqual: + case spv::Op::OpPtrDiff: + // Core spec bugs + case spv::Op::OpSelect: + case spv::Op::OpPhi: + case spv::Op::OpVariable: + // SPV_KHR_untyped_pointers + case spv::Op::OpUntypedPtrAccessChainKHR: + if ((_.HasCapability(spv::Capability::VariablePointersStorageBuffer) && + sc == spv::StorageClass ::StorageBuffer) || + (_.HasCapability(spv::Capability::VariablePointers) && + sc == spv::StorageClass::Workgroup)) { + return SPV_SUCCESS; + } + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Instruction may only have a logical pointer operand in the " + "StorageBuffer or Workgroup storage classes with appropriate " + "variable pointers capability"; + default: + if (spvOpcodeIsAtomicOp(inst->opcode())) { + return SPV_SUCCESS; + } + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Instruction may not have a logical pointer operand"; + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateLogicalPointerReturns(ValidationState_t& _, + const Instruction* inst) { + if (!IsLogicalPointer(_, inst)) { + return SPV_SUCCESS; + } + + const auto type_inst = _.FindDef(inst->type_id()); + const auto sc = type_inst->GetOperandAs(1u); + + switch (inst->opcode()) { + // Core spec without an variable pointer capability. + case spv::Op::OpVariable: + case spv::Op::OpAccessChain: + case spv::Op::OpInBoundsAccessChain: + case spv::Op::OpFunctionParameter: + case spv::Op::OpImageTexelPointer: + case spv::Op::OpCopyObject: + // Core spec bugs + case spv::Op::OpUndef: + // SPV_KHR_untyped_pointers + case spv::Op::OpUntypedAccessChainKHR: + case spv::Op::OpUntypedInBoundsAccessChainKHR: + case spv::Op::OpUntypedVariableKHR: + // SPV_NV_raw_access_chains + case spv::Op::OpRawAccessChainNV: + // SPV_AMD_shader_enqueue (spec bugs) + case spv::Op::OpAllocateNodePayloadsAMDX: + return SPV_SUCCESS; + // Core spec with variable pointer capability. Check storage classes since + // variable pointers can only be in certain storage classes. + case spv::Op::OpSelect: + case spv::Op::OpPhi: + case spv::Op::OpFunctionCall: + case spv::Op::OpPtrAccessChain: + case spv::Op::OpLoad: + case spv::Op::OpConstantNull: + case spv::Op::OpFunction: + // SPV_KHR_untyped_pointers + case spv::Op::OpUntypedPtrAccessChainKHR: + if ((_.HasCapability(spv::Capability::VariablePointersStorageBuffer) && + sc == spv::StorageClass ::StorageBuffer) || + (_.HasCapability(spv::Capability::VariablePointers) && + sc == spv::StorageClass::Workgroup)) { + return SPV_SUCCESS; + } + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Instruction may only return a logical pointer in the " + "StorageBuffer or Workgroup storage classes with appropriate " + "variable pointers capability"; + default: + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Instruction may not return a logical pointer"; + } + + return SPV_SUCCESS; +} + +spv_result_t IsBlockArray(ValidationState_t& _, const Instruction* type) { + if (type->opcode() == spv::Op::OpTypeArray || + type->opcode() == spv::Op::OpTypeRuntimeArray) { + const auto element_type = _.FindDef(type->GetOperandAs(1)); + if (element_type->opcode() == spv::Op::OpTypeStruct && + (_.HasDecoration(element_type->id(), spv::Decoration::Block) || + _.HasDecoration(element_type->id(), spv::Decoration::BufferBlock))) { + return SPV_ERROR_INVALID_DATA; + } + } + return SPV_SUCCESS; +} + +spv_result_t CheckMatrixElementTyped(ValidationState_t& _, + const Instruction* inst) { + switch (inst->opcode()) { + case spv::Op::OpAccessChain: + case spv::Op::OpInBoundsAccessChain: + case spv::Op::OpPtrAccessChain: { + // Get the type of the base operand. + uint32_t start_index = + inst->opcode() == spv::Op::OpPtrAccessChain ? 4 : 3; + const auto access_type_id = _.GetOperandTypeId(inst, 2); + auto access_type = _.FindDef(access_type_id); + access_type = _.FindDef(access_type->GetOperandAs(2)); + + // If the base operand is a matrix, then it was definitely pointing to a + // sub-component. + if (access_type->opcode() == spv::Op::OpTypeMatrix) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to a column or a " + "component of a column of a matrix"; + } + + // Otherwise, step through the indices to see if we pass a matrix. + for (uint32_t i = start_index; i < inst->operands().size(); ++i) { + const auto index = inst->GetOperandAs(i); + if (access_type->opcode() == spv::Op::OpTypeStruct) { + uint64_t val = 0; + _.EvalConstantValUint64(index, &val); + access_type = _.FindDef(access_type->GetOperandAs( + 1 + static_cast(val))); + } else { + access_type = _.FindDef(_.GetComponentType(access_type->id())); + } + + if (access_type->opcode() == spv::Op::OpTypeMatrix) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to a column or a " + "component of a column of a matrix"; + } + } + break; + } + default: + break; + } + return SPV_SUCCESS; +} + +spv_result_t CheckMatrixElementUntyped(ValidationState_t& _, + const Instruction* inst) { + switch (inst->opcode()) { + case spv::Op::OpAccessChain: + case spv::Op::OpInBoundsAccessChain: + case spv::Op::OpPtrAccessChain: + case spv::Op::OpUntypedAccessChainKHR: + case spv::Op::OpUntypedInBoundsAccessChainKHR: + case spv::Op::OpUntypedPtrAccessChainKHR: { + const bool untyped = spvOpcodeGeneratesUntypedPointer(inst->opcode()); + uint32_t start_index; + Instruction* access_type = nullptr; + if (untyped) { + // Get the type of the base operand. + start_index = + inst->opcode() == spv::Op::OpUntypedPtrAccessChainKHR ? 5 : 4; + const auto access_type_id = inst->GetOperandAs(2); + access_type = _.FindDef(access_type_id); + } else { + start_index = inst->opcode() == spv::Op::OpPtrAccessChain ? 4 : 3; + const auto access_type_id = _.GetOperandTypeId(inst, 2); + access_type = _.FindDef(access_type_id); + access_type = _.FindDef(access_type->GetOperandAs(2)); + } + + // If the base operand is a matrix, then it was definitely pointing to a + // sub-component. + if (access_type->opcode() == spv::Op::OpTypeMatrix) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to a column or a " + "component of a column of a matrix."; + } + + // Otherwise, step through the indices to see if we pass a matrix. + for (uint32_t i = start_index; i < inst->operands().size(); ++i) { + const auto index = inst->GetOperandAs(i); + if (access_type->opcode() == spv::Op::OpTypeStruct) { + uint64_t val = 0; + _.EvalConstantValUint64(index, &val); + access_type = _.FindDef(access_type->GetOperandAs( + 1 + static_cast(val))); + } else { + access_type = _.FindDef(_.GetComponentType(access_type->id())); + } + + if (access_type->opcode() == spv::Op::OpTypeMatrix) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to a column or a " + "component of a column of a matrix."; + } + } + break; + } + default: + break; + } + return SPV_SUCCESS; +} + +// Traces the variable pointer inst backwards. +// checker is called on each visited instruction. +spv_result_t TraceVariablePointers( + ValidationState_t& _, const Instruction* inst, + const std::function& + checker) { + std::vector stack; + std::unordered_set seen; + stack.push_back(inst); + while (!stack.empty()) { + const Instruction* trace_inst = stack.back(); + stack.pop_back(); + + if (!seen.insert(trace_inst).second) { + continue; + } + + if (auto error = checker(_, trace_inst)) { + return error; + } + + const auto untyped = spvOpcodeGeneratesUntypedPointer(trace_inst->opcode()); + switch (trace_inst->opcode()) { + case spv::Op::OpAccessChain: + case spv::Op::OpInBoundsAccessChain: + case spv::Op::OpPtrAccessChain: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(2))); + break; + case spv::Op::OpUntypedAccessChainKHR: + case spv::Op::OpUntypedInBoundsAccessChainKHR: + case spv::Op::OpUntypedPtrAccessChainKHR: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(3))); + break; + case spv::Op::OpPhi: + for (uint32_t i = 2; i < trace_inst->operands().size(); i += 2) { + stack.push_back(_.FindDef(trace_inst->GetOperandAs(i))); + } + break; + case spv::Op::OpSelect: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(3))); + stack.push_back(_.FindDef(trace_inst->GetOperandAs(4))); + break; + case spv::Op::OpFunctionParameter: { + // Jump to function calls + auto func = trace_inst->function(); + auto func_inst = _.FindDef(func->id()); + + const auto param_inst_num = trace_inst - &_.ordered_instructions()[0]; + uint32_t param_index = 0; + uint32_t inst_index = 1; + while (_.ordered_instructions()[param_inst_num - inst_index].opcode() != + spv::Op::OpFunction) { + if (_.ordered_instructions()[param_inst_num - inst_index].opcode() == + spv::Op::OpFunctionParameter) { + param_index++; + } + ++inst_index; + } + + for (const auto& use_pair : func_inst->uses()) { + const auto use_inst = use_pair.first; + if (use_inst->opcode() == spv::Op::OpFunctionCall) { + const auto arg_id = + use_inst->GetOperandAs(3 + param_index); + const auto arg_inst = _.FindDef(arg_id); + stack.push_back(arg_inst); + } + } + break; + } + case spv::Op::OpFunctionCall: { + // Jump to return values. + const auto* func = _.function(trace_inst->GetOperandAs(2)); + for (auto* bb : func->ordered_blocks()) { + const auto* terminator = bb->terminator(); + if (terminator->opcode() == spv::Op::OpReturnValue) { + stack.push_back(terminator); + } + } + break; + } + case spv::Op::OpReturnValue: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(0))); + break; + case spv::Op::OpCopyObject: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(2))); + break; + case spv::Op::OpLoad: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(2))); + break; + case spv::Op::OpStore: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(0))); + break; + case spv::Op::OpVariable: + case spv::Op::OpUntypedVariableKHR: { + const auto sc = trace_inst->GetOperandAs(2); + if (sc == spv::StorageClass::Function || + sc == spv::StorageClass::Private) { + // Add the initializer + const uint32_t init_operand = untyped ? 4 : 3; + if (trace_inst->operands().size() > init_operand) { + stack.push_back( + _.FindDef(trace_inst->GetOperandAs(init_operand))); + } + // Jump to stores + std::vector> store_stack( + trace_inst->uses()); + std::unordered_set store_seen; + while (!store_stack.empty()) { + const auto& use = store_stack.back(); + store_stack.pop_back(); + + if (!store_seen.insert(use.first).second) { + continue; + } + + // If the use is a store pointer, trace the store object. + // Note: use.second is a word index. + if (use.first->opcode() == spv::Op::OpStore && use.second == 1) { + stack.push_back(_.FindDef(use.first->GetOperandAs(1))); + } else { + // Most likely a gep so keep tracing. + for (auto& next_use : use.first->uses()) { + store_stack.push_back(next_use); + } + } + } + } + break; + } + default: + break; + } + } + + return SPV_SUCCESS; +} + +// Traces the variable pointer inst backwards, but only unmodified pointers. +// checker is called on each visited instruction. +spv_result_t TraceUnmodifiedVariablePointers( + ValidationState_t& _, const Instruction* inst, + const std::function& + checker) { + std::vector stack; + std::unordered_set seen; + stack.push_back(inst); + while (!stack.empty()) { + const Instruction* trace_inst = stack.back(); + stack.pop_back(); + + if (!seen.insert(trace_inst).second) { + continue; + } + + if (auto error = checker(_, trace_inst)) { + return error; + } + + const auto untyped = spvOpcodeGeneratesUntypedPointer(trace_inst->opcode()); + switch (trace_inst->opcode()) { + case spv::Op::OpAccessChain: + case spv::Op::OpInBoundsAccessChain: + if (trace_inst->operands().size() == 2) { + stack.push_back(_.FindDef(trace_inst->GetOperandAs(2))); + } + break; + case spv::Op::OpUntypedAccessChainKHR: + case spv::Op::OpUntypedInBoundsAccessChainKHR: + case spv::Op::OpUntypedPtrAccessChainKHR: + if (trace_inst->operands().size() == 3) { + stack.push_back(_.FindDef(trace_inst->GetOperandAs(3))); + } + break; + case spv::Op::OpPhi: + for (uint32_t i = 2; i < trace_inst->operands().size(); i += 2) { + stack.push_back(_.FindDef(trace_inst->GetOperandAs(i))); + } + break; + case spv::Op::OpSelect: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(3))); + stack.push_back(_.FindDef(trace_inst->GetOperandAs(4))); + break; + case spv::Op::OpFunctionParameter: { + // Jump to function calls + auto func = trace_inst->function(); + auto func_inst = _.FindDef(func->id()); + + const auto param_inst_num = trace_inst - &_.ordered_instructions()[0]; + uint32_t param_index = 0; + uint32_t inst_index = 1; + while (_.ordered_instructions()[param_inst_num - inst_index].opcode() != + spv::Op::OpFunction) { + if (_.ordered_instructions()[param_inst_num - inst_index].opcode() == + spv::Op::OpFunctionParameter) { + param_index++; + } + ++inst_index; + } + + for (const auto& use_pair : func_inst->uses()) { + const auto use_inst = use_pair.first; + if (use_inst->opcode() == spv::Op::OpFunctionCall) { + const auto arg_id = + use_inst->GetOperandAs(3 + param_index); + const auto arg_inst = _.FindDef(arg_id); + stack.push_back(arg_inst); + } + } + break; + } + case spv::Op::OpFunctionCall: { + // Jump to return values. + const auto* func = _.function(trace_inst->GetOperandAs(2)); + for (auto* bb : func->ordered_blocks()) { + const auto* terminator = bb->terminator(); + if (terminator->opcode() == spv::Op::OpReturnValue) { + stack.push_back(terminator); + } + } + break; + } + case spv::Op::OpReturnValue: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(0))); + break; + case spv::Op::OpCopyObject: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(2))); + break; + case spv::Op::OpLoad: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(2))); + break; + case spv::Op::OpStore: + stack.push_back(_.FindDef(trace_inst->GetOperandAs(0))); + break; + case spv::Op::OpVariable: + case spv::Op::OpUntypedVariableKHR: { + const auto sc = trace_inst->GetOperandAs(2); + if (sc == spv::StorageClass::Function || + sc == spv::StorageClass::Private) { + // Add the initializer + const uint32_t init_operand = untyped ? 4 : 3; + if (trace_inst->operands().size() > init_operand) { + stack.push_back( + _.FindDef(trace_inst->GetOperandAs(init_operand))); + } + // Jump to stores + std::vector> store_stack( + trace_inst->uses()); + std::unordered_set store_seen; + while (!store_stack.empty()) { + const auto& use = store_stack.back(); + store_stack.pop_back(); + + if (!store_seen.insert(use.first).second) { + continue; + } + + // If the use is a store pointer, trace the store object. + // Note: use.second is a word index. + if (use.first->opcode() == spv::Op::OpStore && use.second == 1) { + stack.push_back(_.FindDef(use.first->GetOperandAs(1))); + } else { + // Most likely a gep so keep tracing. + for (auto& next_use : use.first->uses()) { + store_stack.push_back(next_use); + } + } + } + } + break; + } + default: + break; + } + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateVariablePointers( + ValidationState_t& _, std::unordered_map& variable_pointers, + const Instruction* inst) { + // Variable pointers cannot be operands to array length. + if (inst->opcode() == spv::Op::OpArrayLength || + inst->opcode() == spv::Op::OpUntypedArrayLengthKHR) { + const auto ptr_index = inst->opcode() == spv::Op::OpArrayLength ? 2 : 3; + const auto ptr_id = inst->GetOperandAs(ptr_index); + const auto ptr_inst = _.FindDef(ptr_id); + if (IsVariablePointer(_, variable_pointers, ptr_inst)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Pointer operand must not be a variable pointer"; + } + return SPV_SUCCESS; + } + + // Check untyped loads and stores of variable pointers for matrix types. + // Neither instruction would be a variable pointer in a such a case. + if (inst->opcode() == spv::Op::OpLoad) { + const auto pointer = _.FindDef(inst->GetOperandAs(2)); + const auto pointer_type = _.FindDef(pointer->type_id()); + if (pointer_type->opcode() == spv::Op::OpTypeUntypedPointerKHR && + IsVariablePointer(_, variable_pointers, pointer)) { + const auto data_type = _.FindDef(inst->type_id()); + if (_.ContainsType( + data_type->id(), + [](const Instruction* type_inst) { + return type_inst->opcode() == spv::Op::OpTypeMatrix; + }, + /* traverse_all_types = */ false)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to an object that is or " + "contains a matrix"; + } + } + } else if (inst->opcode() == spv::Op::OpStore) { + const auto pointer = _.FindDef(inst->GetOperandAs(0)); + const auto pointer_type = _.FindDef(pointer->type_id()); + if (pointer_type->opcode() == spv::Op::OpTypeUntypedPointerKHR && + IsVariablePointer(_, variable_pointers, pointer)) { + const auto data_type_id = _.GetOperandTypeId(inst, 1); + const auto data_type = _.FindDef(data_type_id); + if (_.ContainsType( + data_type->id(), + [](const Instruction* type_inst) { + return type_inst->opcode() == spv::Op::OpTypeMatrix; + }, + /* traverse_all_types = */ false)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to an object that is or " + "contains a matrix"; + } + } + } + + if (!IsLogicalPointer(_, inst) || + !IsVariablePointer(_, variable_pointers, inst)) { + return SPV_SUCCESS; + } + + const auto result_type = _.FindDef(inst->type_id()); + const auto untyped = + result_type->opcode() == spv::Op::OpTypeUntypedPointerKHR; + + // Pointers must be selected from the same buffer unless the VariablePointers + // capability is declared. + if (!_.HasCapability(spv::Capability::VariablePointers) && + (inst->opcode() == spv::Op::OpSelect || + inst->opcode() == spv::Op::OpPhi)) { + std::unordered_set sources; + const auto checker = [&sources, &inst]( + ValidationState_t& vstate, + const Instruction* check_inst) -> spv_result_t { + switch (check_inst->opcode()) { + case spv::Op::OpVariable: + case spv::Op::OpUntypedVariableKHR: + if (check_inst->GetOperandAs(2) == + spv::StorageClass::StorageBuffer || + check_inst->GetOperandAs(2) == + spv::StorageClass::Workgroup) { + sources.insert(check_inst); + } + if (sources.size() > 1) { + return vstate.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointers must point into the same structure " + "(or OpConstantNull)"; + } + break; + default: + break; + } + return SPV_SUCCESS; + }; + if (auto error = TraceVariablePointers(_, inst, checker)) { + return error; + } + } + + // Variable pointers must not: + // * point to array of Block- or BufferBlock-decorated structs + // * point to an object that is or contains a matrix + // * point to a column, or component in a column, of a matrix + if (untyped) { + if (auto error = + TraceVariablePointers(_, inst, CheckMatrixElementUntyped)) { + return error; + } + + // Block arrays can only really appear as the top most type so only look at + // unmodified pointers to determine if one is used. + const auto num_operands = inst->operands().size(); + if (!(num_operands == 3 && + (inst->opcode() == spv::Op::OpUntypedAccessChainKHR || + inst->opcode() == spv::Op::OpUntypedInBoundsAccessChainKHR || + inst->opcode() == spv::Op::OpUntypedPtrAccessChainKHR))) { + const auto checker = [&inst]( + ValidationState_t& vstate, + const Instruction* check_inst) -> spv_result_t { + bool fail = false; + if (check_inst->opcode() == spv::Op::OpUntypedVariableKHR) { + if (check_inst->operands().size() > 3) { + const auto type = + vstate.FindDef(check_inst->GetOperandAs(3)); + fail = IsBlockArray(vstate, type); + } + } else if (check_inst->opcode() == spv::Op::OpVariable) { + const auto res_type = vstate.FindDef(check_inst->type_id()); + const auto pointee_type = + vstate.FindDef(res_type->GetOperandAs(2)); + fail = IsBlockArray(vstate, pointee_type); + } + + if (fail) { + return vstate.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to an array of Block- or " + "BufferBlock-decorated structs"; + } + return SPV_SUCCESS; + }; + + if (auto error = TraceUnmodifiedVariablePointers(_, inst, checker)) { + return error; + } + } + } else { + const auto pointee_type = _.FindDef(result_type->GetOperandAs(2)); + if (IsBlockArray(_, pointee_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to an array of Block- or " + "BufferBlock-decorated structs"; + } else if (_.ContainsType( + pointee_type->id(), + [](const Instruction* type_inst) { + return type_inst->opcode() == spv::Op::OpTypeMatrix; + }, + /* traverse_all_types = */ false)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Variable pointer must not point to an object that is or " + "contains a matrix"; + } else if (_.IsFloatScalarOrVectorType(pointee_type->id())) { + // Pointing to a column or component in a column is trickier to detect. + // Trace backwards and check encountered access chains to determine if + // this pointer is pointing into a matrix. + if (auto error = + TraceVariablePointers(_, inst, CheckMatrixElementTyped)) { + return error; + } + } + } + + return SPV_SUCCESS; +} + +} // namespace + +spv_result_t ValidateLogicalPointers(ValidationState_t& _) { + // Only the following addressing models have logical pointers. + if (_.addressing_model() != spv::AddressingModel::Logical && + _.addressing_model() != spv::AddressingModel::PhysicalStorageBuffer64) { + return SPV_SUCCESS; + } + + if (_.options()->relax_logical_pointer) { + return SPV_SUCCESS; + } + + // Cache all variable pointers + std::unordered_map variable_pointers; + for (auto& inst : _.ordered_instructions()) { + if (!IsLogicalPointer(_, &inst)) { + continue; + } + + IsVariablePointer(_, variable_pointers, &inst); + } + + for (auto& inst : _.ordered_instructions()) { + if (auto error = ValidateLogicalPointerOperands(_, &inst)) { + return error; + } + if (auto error = ValidateLogicalPointerReturns(_, &inst)) { + return error; + } + if (auto error = ValidateVariablePointers(_, variable_pointers, &inst)) { + return error; + } + } + + return SPV_SUCCESS; +} + +} // namespace val +} // namespace spvtools diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_memory.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_memory.cpp index a4d8e8b..9372f5c 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_memory.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_memory.cpp @@ -515,6 +515,7 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) { storage_class != spv::StorageClass::IncomingCallableDataKHR && storage_class != spv::StorageClass::TaskPayloadWorkgroupEXT && storage_class != spv::StorageClass::HitObjectAttributeNV && + storage_class != spv::StorageClass::HitObjectAttributeEXT && storage_class != spv::StorageClass::NodePayloadAMDX) { bool storage_input_or_output = storage_class == spv::StorageClass::Input || storage_class == spv::StorageClass::Output; @@ -586,20 +587,38 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) { const auto pointee = untyped_pointer ? value_id == 0 ? nullptr : _.FindDef(value_id) : _.FindDef(result_type->word(3)); - if (_.addressing_model() == spv::AddressingModel::Logical && + if ((_.addressing_model() == spv::AddressingModel::Logical || + _.addressing_model() == spv::AddressingModel::PhysicalStorageBuffer64) && !_.options()->relax_logical_pointer) { - // VariablePointersStorageBuffer is implied by VariablePointers. - if (pointee && pointee->opcode() == spv::Op::OpTypePointer) { - if (!_.HasCapability(spv::Capability::VariablePointersStorageBuffer)) { - return _.diag(SPV_ERROR_INVALID_ID, inst) - << "In Logical addressing, variables may not allocate a pointer " - << "type"; - } else if (storage_class != spv::StorageClass::Function && - storage_class != spv::StorageClass::Private) { - return _.diag(SPV_ERROR_INVALID_ID, inst) - << "In Logical addressing with variable pointers, variables " - << "that allocate pointers must be in Function or Private " - << "storage classes"; + if (pointee && (pointee->opcode() == spv::Op::OpTypePointer || + pointee->opcode() == spv::Op::OpTypeUntypedPointerKHR)) { + const auto sc = pointee->GetOperandAs(1u); + if (sc != spv::StorageClass::PhysicalStorageBuffer) { + if (sc != spv::StorageClass::StorageBuffer && + sc != spv::StorageClass::Workgroup) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing, variables can only allocate a " + "pointer to the StorageBuffer or Workgroup storage classes"; + } else if (!_.HasCapability( + spv::Capability::VariablePointersStorageBuffer) && + sc == spv::StorageClass::StorageBuffer) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing, variables can only allocate a " + "storage buffer pointer if the " + "VariablePointersStorageBuffer capability is declared"; + } else if (!_.HasCapability(spv::Capability::VariablePointers) && + sc == spv::StorageClass::Workgroup) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing, variables can only allocate a " + "workgroup pointer if the VariablePointers capability is " + "declared"; + } else if (storage_class != spv::StorageClass::Function && + storage_class != spv::StorageClass::Private) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "In Logical addressing with variable pointers, variables " + << "that allocate pointers must be in Function or Private " + << "storage classes"; + } } } } @@ -738,6 +757,11 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) { << "OpVariable, " << _.getIdName(inst->id()) << ", initializer are not allowed for HitObjectAttributeNV"; } + if (storage_class == spv::StorageClass::HitObjectAttributeEXT) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "OpVariable, " << _.getIdName(inst->id()) + << ", initializer are not allowed for HitObjectAttributeEXT"; + } } if (storage_class == spv::StorageClass::PhysicalStorageBuffer) { @@ -776,8 +800,7 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) { // If an OpStruct has an OpTypeRuntimeArray somewhere within it, then it // must either have the storage class StorageBuffer and be decorated - // with Block, or it must be in the Uniform storage class and be decorated - // as BufferBlock. + // with Block, or it must be in the Uniform storage class if (value_type && value_type->opcode() == spv::Op::OpTypeStruct) { if (DoesStructContainRTA(_, value_type)) { if (storage_class == spv::StorageClass::StorageBuffer || @@ -791,13 +814,14 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) { "PhysicalStorageBuffer."; } } else if (storage_class == spv::StorageClass::Uniform) { - if (!_.HasDecoration(value_id, spv::Decoration::BufferBlock)) { - return _.diag(SPV_ERROR_INVALID_ID, inst) - << _.VkErrorID(4680) - << "For Vulkan, an OpTypeStruct variable containing an " - << "OpTypeRuntimeArray must be decorated with BufferBlock " - << "if it has storage class Uniform."; - } + // BufferBlock Uniform were always allowed. + // + // Block Uniform use to be invalid, but Vulkan added + // VK_EXT_shader_uniform_buffer_unsized_array and now this is + // validated at runtime + // + // The uniform must have either the Block or BufferBlock decoration + // (see VUID-StandaloneSpirv-Uniform-06676) } else { return _.diag(SPV_ERROR_INVALID_ID, inst) << _.VkErrorID(4680) @@ -1299,7 +1323,7 @@ spv_result_t ValidateCopyMemoryMemoryAccess(ValidationState_t& _, } } else { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(static_cast(inst->opcode())) + << spvOpcodeString(inst->opcode()) << " with two memory access operands requires SPIR-V 1.4 or " "later"; } @@ -1551,9 +1575,7 @@ spv_result_t ValidateCopyMemory(ValidationState_t& _, const Instruction* inst) { spv_result_t ValidateAccessChain(ValidationState_t& _, const Instruction* inst) { - std::string instr_name = - "Op" + std::string(spvOpcodeString(static_cast(inst->opcode()))); - + const spv::Op opcode = inst->opcode(); const bool untyped_pointer = spvOpcodeGeneratesUntypedPointer(inst->opcode()); // The result type must be OpTypePointer for regular access chains and an @@ -1563,19 +1585,17 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, if (!result_type || spv::Op::OpTypeUntypedPointerKHR != result_type->opcode()) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must be OpTypeUntypedPointerKHR. Found Op" - << spvOpcodeString(static_cast(result_type->opcode())) - << "."; + << spvOpcodeString(result_type->opcode()) << "."; } } else { if (!result_type || spv::Op::OpTypePointer != result_type->opcode()) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must be OpTypePointer. Found Op" - << spvOpcodeString(static_cast(result_type->opcode())) - << "."; + << spvOpcodeString(result_type->opcode()) << "."; } } @@ -1653,8 +1673,8 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, (untyped_pointer && spv::Op::OpTypeUntypedPointerKHR == base_type->opcode()))) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "The Base " << _.getIdName(base_id) << " in " << instr_name - << " instruction must be a pointer."; + << "The Base " << _.getIdName(base_id) << " in Op" + << spvOpcodeString(opcode) << " instruction must be a pointer."; } // The result pointer storage class and base pointer storage class must match. @@ -1664,8 +1684,8 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, if (result_type_storage_class != base_type_storage_class) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "The result pointer storage class and base " - "pointer storage class in " - << instr_name << " do not match."; + "pointer storage class in Op" + << spvOpcodeString(opcode) << " do not match."; } // The type pointed to by OpTypePointer (word 3) must be a composite type. @@ -1689,8 +1709,9 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, _.options()->universal_limits_.max_access_chain_indexes; if (num_indexes > num_indexes_limit) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "The number of indexes in " << instr_name << " may not exceed " - << num_indexes_limit << ". Found " << num_indexes << " indexes."; + << "The number of indexes in Op" << spvOpcodeString(opcode) + << " may not exceed " << num_indexes_limit << ". Found " + << num_indexes << " indexes."; } // Indexes walk the type hierarchy to the desired depth, potentially down to // scalar granularity. The first index in Indexes will select the top-level @@ -1714,9 +1735,29 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, auto index_type = _.FindDef(cur_word_instr->type_id()); if (!index_type || spv::Op::OpTypeInt != index_type->opcode()) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "Indexes passed to " << instr_name + << "Indexes passed to Op" << spvOpcodeString(opcode) << " must be of type integer."; } + + // Logical pointer restrictions: any constant index with a signed integer + // type must not have its sign bit set. + if (!_.options()->relax_logical_pointer && + (_.addressing_model() == spv::AddressingModel::Logical || + _.addressing_model() == + spv::AddressingModel::PhysicalStorageBuffer64) && + result_type_storage_class != + static_cast(spv::StorageClass::PhysicalStorageBuffer)) { + if (index_type->GetOperandAs(2) == 1) { + int64_t val = 0; + if (_.EvalConstantValInt64(cur_word, &val)) { + if (val < 0) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "Index at word " << i << " may not have a negative value"; + } + } + } + } + switch (type_pointee->opcode()) { case spv::Op::OpTypeMatrix: case spv::Op::OpTypeVector: @@ -1738,8 +1779,8 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, int64_t cur_index; if (!_.EvalConstantValInt64(cur_word, &cur_index)) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "The passed to " << instr_name << " to index " - << _.getIdName(cur_word) + << "The passed to Op" << spvOpcodeString(opcode) + << " to index " << _.getIdName(cur_word) << " into a " "structure must be an OpConstant."; } @@ -1750,8 +1791,8 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, static_cast(type_pointee->words().size() - 2); if (cur_index >= num_struct_members || cur_index < 0) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "Index " << _.getIdName(cur_word) - << " is out of bounds: " << instr_name << " cannot find index " + << "Index " << _.getIdName(cur_word) << " is out of bounds: Op" + << spvOpcodeString(opcode) << " cannot find index " << cur_index << " into the structure " << _.getIdName(type_pointee->id()) << ". This structure has " << num_struct_members << " members. Largest valid index is " @@ -1766,7 +1807,7 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, default: { // Give an error. reached non-composite type while indexes still remain. return _.diag(SPV_ERROR_INVALID_ID, inst) - << instr_name + << "Op" << spvOpcodeString(opcode) << " reached non-composite type while indexes " "still remain to be traversed."; } @@ -1782,14 +1823,12 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, // The type being pointed to should be the same as the result type. if (type_pointee->id() != result_type_pointee->id()) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << instr_name << " result type (Op" - << spvOpcodeString( - static_cast(result_type_pointee->opcode())) + << "Op" << spvOpcodeString(opcode) << " result type (Op" + << spvOpcodeString(result_type_pointee->opcode()) << ") does not match the type that results from indexing into the " "base " " (Op" - << spvOpcodeString(static_cast(type_pointee->opcode())) - << ")."; + << spvOpcodeString(type_pointee->opcode()) << ")."; } } @@ -1798,13 +1837,12 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, spv_result_t ValidateRawAccessChain(ValidationState_t& _, const Instruction* inst) { - std::string instr_name = "Op" + std::string(spvOpcodeString(inst->opcode())); - + const spv::Op opcode = inst->opcode(); // The result type must be OpTypePointer. const auto result_type = _.FindDef(inst->type_id()); if (spv::Op::OpTypePointer != result_type->opcode()) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must be OpTypePointer. Found Op" << spvOpcodeString(result_type->opcode()) << '.'; } @@ -1815,7 +1853,7 @@ spv_result_t ValidateRawAccessChain(ValidationState_t& _, storage_class != spv::StorageClass::PhysicalStorageBuffer && storage_class != spv::StorageClass::Uniform) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must point to a storage class of " "StorageBuffer, PhysicalStorageBuffer, or Uniform."; @@ -1828,7 +1866,7 @@ spv_result_t ValidateRawAccessChain(ValidationState_t& _, result_type_pointee->opcode() == spv::Op::OpTypeMatrix || result_type_pointee->opcode() == spv::Op::OpTypeStruct) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must not point to " "OpTypeArray, OpTypeMatrix, or OpTypeStruct."; @@ -1838,7 +1876,7 @@ spv_result_t ValidateRawAccessChain(ValidationState_t& _, const auto stride = _.FindDef(inst->GetOperandAs(3)); if (stride->opcode() != spv::Op::OpConstant) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The Stride of " << instr_name << " " + << "The Stride of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must be OpConstant. Found Op" << spvOpcodeString(stride->opcode()) << '.'; } @@ -1846,7 +1884,7 @@ spv_result_t ValidateRawAccessChain(ValidationState_t& _, const auto stride_type = _.FindDef(stride->type_id()); if (stride_type->opcode() != spv::Op::OpTypeInt) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The type of Stride of " << instr_name << " " + << "The type of Stride of Op" << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) << " must be OpTypeInt. Found Op" << spvOpcodeString(stride_type->opcode()) << '.'; } @@ -1858,16 +1896,17 @@ spv_result_t ValidateRawAccessChain(ValidationState_t& _, const auto value_type = _.FindDef(value->type_id()); if (value_type->opcode() != spv::Op::OpTypeInt) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The type of " << name << " of " << instr_name << " " - << _.getIdName(inst->id()) << " must be OpTypeInt. Found Op" + << "The type of " << name << " of Op" << spvOpcodeString(opcode) + << " " << _.getIdName(inst->id()) + << " must be OpTypeInt. Found Op" << spvOpcodeString(value_type->opcode()) << '.'; } const auto width = value_type->GetOperandAs(1); if (width != 32) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The integer width of " << name << " of " << instr_name - << " " << _.getIdName(inst->id()) << " must be 32. Found " - << width << '.'; + << "The integer width of " << name << " of Op" + << spvOpcodeString(opcode) << " " << _.getIdName(inst->id()) + << " must be 32. Found " << width << '.'; } return SPV_SUCCESS; }; @@ -1918,15 +1957,6 @@ spv_result_t ValidateRawAccessChain(ValidationState_t& _, spv_result_t ValidatePtrAccessChain(ValidationState_t& _, const Instruction* inst) { - if (_.addressing_model() == spv::AddressingModel::Logical && - inst->opcode() == spv::Op::OpPtrAccessChain) { - if (!_.features().variable_pointers) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Generating variable pointers requires capability " - << "VariablePointers or VariablePointersStorageBuffer"; - } - } - // Need to call first, will make sure Base is a valid ID if (auto error = ValidateAccessChain(_, inst)) return error; @@ -2006,18 +2036,20 @@ spv_result_t ValidatePtrAccessChain(ValidationState_t& _, spv_result_t ValidateArrayLength(ValidationState_t& state, const Instruction* inst) { - std::string instr_name = - "Op" + std::string(spvOpcodeString(static_cast(inst->opcode()))); + const spv::Op opcode = inst->opcode(); - // Result type must be a 32-bit unsigned int. + // Result type must be a 32- or 64-bit unsigned int. + // 64-bit requires CapabilityShader64BitIndexingEXT or a pipeline/shader + // flag and is validated in VVL. auto result_type = state.FindDef(inst->type_id()); if (result_type->opcode() != spv::Op::OpTypeInt || - result_type->GetOperandAs(1) != 32 || + !(result_type->GetOperandAs(1) == 32 || + result_type->GetOperandAs(1) == 64) || result_type->GetOperandAs(2) != 0) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << state.getIdName(inst->id()) - << " must be OpTypeInt with width 32 and signedness 0."; + << " must be OpTypeInt with width 32 or 64 and signedness 0."; } const bool untyped = inst->opcode() == spv::Op::OpUntypedArrayLengthKHR; @@ -2030,8 +2062,8 @@ spv_result_t ValidateArrayLength(ValidationState_t& state, } } else if (pointer_ty->opcode() != spv::Op::OpTypePointer) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The Structure's type in " << instr_name << " " - << state.getIdName(inst->id()) + << "The Structure's type in Op" << spvOpcodeString(opcode) + << " " << state.getIdName(inst->id()) << " must be a pointer to an OpTypeStruct."; } @@ -2044,8 +2076,8 @@ spv_result_t ValidateArrayLength(ValidationState_t& state, if (structure_type->opcode() != spv::Op::OpTypeStruct) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The Structure's type in " << instr_name << " " - << state.getIdName(inst->id()) + << "The Structure's type in Op" << spvOpcodeString(opcode) + << " " << state.getIdName(inst->id()) << " must be a pointer to an OpTypeStruct."; } @@ -2054,8 +2086,9 @@ spv_result_t ValidateArrayLength(ValidationState_t& state, state.FindDef(structure_type->GetOperandAs(num_of_members)); if (last_member->opcode() != spv::Op::OpTypeRuntimeArray) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The Structure's last member in " << instr_name << " " - << state.getIdName(inst->id()) << " must be an OpTypeRuntimeArray."; + << "The Structure's last member in Op" << spvOpcodeString(opcode) + << " " << state.getIdName(inst->id()) + << " must be an OpTypeRuntimeArray."; } // The array member must the index of the last element (the run time @@ -2063,25 +2096,35 @@ spv_result_t ValidateArrayLength(ValidationState_t& state, const auto index = untyped ? 4 : 3; if (inst->GetOperandAs(index) != num_of_members - 1) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The array member in " << instr_name << " " + << "The array member in Op" << spvOpcodeString(opcode) << " " << state.getIdName(inst->id()) << " must be the last member of the struct."; } + + if (spvIsVulkanEnv(state.context()->target_env)) { + const auto storage_class = pointer_ty->GetOperandAs(1); + if (storage_class == spv::StorageClass::Uniform && + state.HasDecoration(structure_type->id(), spv::Decoration::Block)) { + return state.diag(SPV_ERROR_INVALID_ID, inst) + << state.VkErrorID(11805) << "Op" << spvOpcodeString(opcode) + << " must not be used on the OpTypeRuntimeArray inside a Uniform " + "block"; + } + } + return SPV_SUCCESS; } spv_result_t ValidateCooperativeMatrixLengthNV(ValidationState_t& state, const Instruction* inst) { - std::string instr_name = - "Op" + std::string(spvOpcodeString(static_cast(inst->opcode()))); - + const spv::Op opcode = inst->opcode(); // Result type must be a 32-bit unsigned int. auto result_type = state.FindDef(inst->type_id()); if (result_type->opcode() != spv::Op::OpTypeInt || result_type->GetOperandAs(1) != 32 || result_type->GetOperandAs(2) != 0) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The Result Type of " << instr_name << " " + << "The Result Type of Op" << spvOpcodeString(opcode) << " " << state.getIdName(inst->id()) << " must be OpTypeInt with width 32 and signedness 0."; } @@ -2091,12 +2134,12 @@ spv_result_t ValidateCooperativeMatrixLengthNV(ValidationState_t& state, auto type = state.FindDef(type_id); if (isKhr && type->opcode() != spv::Op::OpTypeCooperativeMatrixKHR) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The type in " << instr_name << " " + << "The type in Op" << spvOpcodeString(opcode) << " " << state.getIdName(type_id) << " must be OpTypeCooperativeMatrixKHR."; } else if (!isKhr && type->opcode() != spv::Op::OpTypeCooperativeMatrixNV) { return state.diag(SPV_ERROR_INVALID_ID, inst) - << "The type in " << instr_name << " " + << "The type in Op" << spvOpcodeString(opcode) << " " << state.getIdName(type_id) << " must be OpTypeCooperativeMatrixNV."; } return SPV_SUCCESS; @@ -2299,23 +2342,96 @@ spv_result_t ValidateCooperativeMatrixLoadStoreKHR(ValidationState_t& _, } bool stride_required = false; + bool layout_requires_constant_stride = false; uint64_t layout; if (_.EvalConstantValUint64(layout_id, &layout)) { + const bool is_arm_layout = + (layout == + (uint64_t)spv::CooperativeMatrixLayout::RowBlockedInterleavedARM) || + (layout == + (uint64_t)spv::CooperativeMatrixLayout::ColumnBlockedInterleavedARM); + + if (is_arm_layout) { + if (!_.HasCapability(spv::Capability::CooperativeMatrixLayoutsARM)) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "Using the RowBlockedInterleavedARM or " + "ColumnBlockedInterleavedARM MemoryLayout requires the " + "CooperativeMatrixLayoutsARM capability be declared"; + } + } + stride_required = (layout == (uint64_t)spv::CooperativeMatrixLayout::RowMajorKHR) || - (layout == (uint64_t)spv::CooperativeMatrixLayout::ColumnMajorKHR); + (layout == (uint64_t)spv::CooperativeMatrixLayout::ColumnMajorKHR) || + is_arm_layout; + layout_requires_constant_stride = is_arm_layout; } const auto stride_index = (inst->opcode() == spv::Op::OpCooperativeMatrixLoadKHR) ? 4u : 3u; if (inst->operands().size() > stride_index) { const auto stride_id = inst->GetOperandAs(stride_index); - const auto stride = _.FindDef(stride_id); - if (!stride || !_.IsIntScalarType(stride->type_id())) { + const auto stride_inst = _.FindDef(stride_id); + if (!stride_inst || !_.IsIntScalarType(stride_inst->type_id())) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "Stride operand " << _.getIdName(stride_id) << " must be a scalar integer type."; } + // Check SPV_ARM_cooperative_matrix_layouts constraints + if (layout_requires_constant_stride && + !spvOpcodeIsConstant(stride_inst->opcode())) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "MemoryLayout " << layout + << " requires Stride come from a constant instruction."; + } + if (layout_requires_constant_stride) { + uint64_t stride; + if (_.EvalConstantValUint64(stride_id, &stride)) { + if ((layout == + (uint64_t) + spv::CooperativeMatrixLayout::RowBlockedInterleavedARM) || + (layout == + (uint64_t) + spv::CooperativeMatrixLayout::ColumnBlockedInterleavedARM)) { + if ((stride != 1) && (stride != 2) && (stride != 4)) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "MemoryLayout " << layout + << " requires Stride be 1, 2, or 4."; + } + } + const uint32_t elty_id = matrix_type->GetOperandAs(1); + const uint32_t rows_id = matrix_type->GetOperandAs(3); + const uint32_t cols_id = matrix_type->GetOperandAs(4); + uint64_t rows = 0, cols = 0; + _.EvalConstantValUint64(rows_id, &rows); + _.EvalConstantValUint64(cols_id, &cols); + uint32_t sizeof_component_in_bytes = _.GetBitWidth(elty_id) / 8; + uint64_t rows_required_multiple = 4; + uint64_t cols_required_multiple = 16 / sizeof_component_in_bytes; + + if (layout == + (uint64_t)spv::CooperativeMatrixLayout::RowBlockedInterleavedARM) { + cols_required_multiple *= stride; + } + if (layout == + (uint64_t) + spv::CooperativeMatrixLayout::ColumnBlockedInterleavedARM) { + rows_required_multiple *= stride; + } + if ((rows != 0) && (rows % rows_required_multiple != 0)) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "MemoryLayout " << layout << " with a Stride of " << stride + << " requires that the number of rows be a multiple of " + << rows_required_multiple; + } + if ((cols != 0) && (cols % cols_required_multiple != 0)) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "MemoryLayout " << layout << " with a Stride of " << stride + << " requires that the number of columns be a multiple of " + << cols_required_multiple; + } + } + } } else if (stride_required) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "MemoryLayout " << layout << " requires a Stride."; @@ -2561,6 +2677,23 @@ spv_result_t ValidateInt32Operand(ValidationState_t& _, const Instruction* inst, return SPV_SUCCESS; } +spv_result_t ValidateInt32Or64Operand(ValidationState_t& _, + const Instruction* inst, + uint32_t operand_index, + const char* opcode_name, + const char* operand_name) { + const auto type_id = + _.FindDef(inst->GetOperandAs(operand_index))->type_id(); + if (!_.IsIntScalarType(type_id) || + !(_.GetBitWidth(type_id) == 32 || _.GetBitWidth(type_id) == 64)) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << opcode_name << " " << operand_name << " type " + << _.getIdName(type_id) << " is not a 32 or 64 bit integer."; + } + + return SPV_SUCCESS; +} + spv_result_t ValidateCooperativeVectorPointer(ValidationState_t& _, const Instruction* inst, const char* opname, @@ -2651,11 +2784,19 @@ spv_result_t ValidateCooperativeVectorLoadStoreNV(ValidationState_t& _, const auto pointer_index = (inst->opcode() == spv::Op::OpCooperativeVectorLoadNV) ? 2u : 0u; + const auto offset_index = + (inst->opcode() == spv::Op::OpCooperativeVectorLoadNV) ? 3u : 1u; + if (auto error = ValidateCooperativeVectorPointer(_, inst, opname, pointer_index)) { return error; } + if (auto error = + ValidateInt32Or64Operand(_, inst, offset_index, opname, "Offset")) { + return error; + } + const auto memory_access_index = (inst->opcode() == spv::Op::OpCooperativeVectorLoadNV) ? 4u : 3u; if (inst->operands().size() > memory_access_index) { @@ -2705,7 +2846,8 @@ spv_result_t ValidateCooperativeVectorOuterProductNV(ValidationState_t& _, << _.getIdName(b_component_type_id) << " do not match."; } - if (auto error = ValidateInt32Operand(_, inst, 1, opcode_name, "Offset")) { + if (auto error = + ValidateInt32Or64Operand(_, inst, 1, opcode_name, "Offset")) { return error; } @@ -2748,7 +2890,8 @@ spv_result_t ValidateCooperativeVectorReduceSumNV(ValidationState_t& _, << " is not a cooperative vector type."; } - if (auto error = ValidateInt32Operand(_, inst, 1, opcode_name, "Offset")) { + if (auto error = + ValidateInt32Or64Operand(_, inst, 1, opcode_name, "Offset")) { return error; } @@ -2781,8 +2924,10 @@ spv_result_t ValidateCooperativeVectorMatrixMulNV(ValidationState_t& _, const auto input_index = 2u; const auto input_interpretation_index = 3u; const auto matrix_index = 4u; + const auto matrix_offset_index = 5u; const auto matrix_interpretation_index = 6u; const auto bias_index = 7u; + const auto bias_offset_index = 8u; const auto bias_interpretation_index = 9u; const auto m_index = 7u + bias_offset; const auto k_index = 8u + bias_offset; @@ -2930,15 +3075,33 @@ spv_result_t ValidateCooperativeVectorMatrixMulNV(ValidationState_t& _, return error; } + if (auto error = ValidateInt32Or64Operand(_, inst, matrix_offset_index, + opcode_name, "MatrixOffset")) { + return error; + } + if (has_bias) { + if (auto error = ValidateInt32Or64Operand(_, inst, bias_offset_index, + opcode_name, "BiasOffset")) { + return error; + } + } + return SPV_SUCCESS; } spv_result_t ValidatePtrComparison(ValidationState_t& _, const Instruction* inst) { - if (_.addressing_model() == spv::AddressingModel::Logical && + const auto op1 = _.FindDef(inst->GetOperandAs(2u)); + const auto op2 = _.FindDef(inst->GetOperandAs(3u)); + const auto op1_type = _.FindDef(op1->type_id()); + const auto op2_type = _.FindDef(op2->type_id()); + spv::StorageClass sc = op1_type->GetOperandAs(1u); + if ((_.addressing_model() == spv::AddressingModel::Logical || + _.addressing_model() == spv::AddressingModel::PhysicalStorageBuffer64) && + sc != spv::StorageClass::PhysicalStorageBuffer && !_.features().variable_pointers) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "Instruction cannot for logical addressing model be used without " + << "Instruction on logical pointers cannot be used without " "a variable pointers capability"; } @@ -2955,10 +3118,6 @@ spv_result_t ValidatePtrComparison(ValidationState_t& _, } } - const auto op1 = _.FindDef(inst->GetOperandAs(2u)); - const auto op2 = _.FindDef(inst->GetOperandAs(3u)); - const auto op1_type = _.FindDef(op1->type_id()); - const auto op2_type = _.FindDef(op2->type_id()); if (!op1_type || (op1_type->opcode() != spv::Op::OpTypePointer && op1_type->opcode() != spv::Op::OpTypeUntypedPointerKHR)) { return _.diag(SPV_ERROR_INVALID_ID, inst) @@ -2993,7 +3152,6 @@ spv_result_t ValidatePtrComparison(ValidationState_t& _, } } - spv::StorageClass sc = op1_type->GetOperandAs(1u); if (_.addressing_model() == spv::AddressingModel::Logical) { if (sc != spv::StorageClass::Workgroup && sc != spv::StorageClass::StorageBuffer) { diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp index 0de4943..f2b43b6 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp @@ -315,9 +315,7 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { } if (!ok) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << (_.HasCapability(spv::Capability::TileShadingQCOM) - ? _.VkErrorID(10685) - : _.VkErrorID(6426)) + << _.VkErrorID(10685) << "In the Vulkan environment, GLCompute execution model " "entry points require either the " << (_.HasCapability(spv::Capability::TileShadingQCOM) diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_ray_tracing_reorder.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_ray_tracing_reorder.cpp index 3685a76..f189b44 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validate_ray_tracing_reorder.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validate_ray_tracing_reorder.cpp @@ -12,7 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Validates ray tracing instructions from SPV_NV_shader_execution_reorder +// Validates ray tracing instructions from SPV_NV_shader_invocation_reorder and +// SPV_EXT_shader_invocation_reorder #include "source/opcode.h" #include "source/val/instruction.h" @@ -37,18 +38,29 @@ uint32_t GetArrayLength(ValidationState_t& _, const Instruction* array_type) { return array_length; } +spv_result_t ValidateRayQueryPointer(ValidationState_t& _, + const Instruction* inst, + uint32_t ray_query_index) { + const uint32_t ray_query_id = inst->GetOperandAs(ray_query_index); + auto variable = _.FindDef(ray_query_id); + auto pointer = _.FindDef(variable->GetOperandAs(0)); + if (!pointer || pointer->opcode() != spv::Op::OpTypePointer) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Query must be a pointer"; + } + auto type = _.FindDef(pointer->GetOperandAs(2)); + if (!type || type->opcode() != spv::Op::OpTypeRayQueryKHR) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Query must be a pointer to OpTypeRayQueryKHR"; + } + return SPV_SUCCESS; +} + spv_result_t ValidateHitObjectPointer(ValidationState_t& _, const Instruction* inst, uint32_t hit_object_index) { const uint32_t hit_object_id = inst->GetOperandAs(hit_object_index); auto variable = _.FindDef(hit_object_id); - const auto var_opcode = variable->opcode(); - if (!variable || (var_opcode != spv::Op::OpVariable && - var_opcode != spv::Op::OpFunctionParameter && - var_opcode != spv::Op::OpAccessChain)) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Hit Object must be a memory object declaration"; - } auto pointer = _.FindDef(variable->GetOperandAs(0)); if (!pointer || pointer->opcode() != spv::Op::OpTypePointer) { return _.diag(SPV_ERROR_INVALID_DATA, inst) @@ -62,6 +74,24 @@ spv_result_t ValidateHitObjectPointer(ValidationState_t& _, return SPV_SUCCESS; } +spv_result_t ValidateHitObjectPointerEXT(ValidationState_t& _, + const Instruction* inst, + uint32_t hit_object_index) { + const uint32_t hit_object_id = inst->GetOperandAs(hit_object_index); + auto variable = _.FindDef(hit_object_id); + auto pointer = _.FindDef(variable->GetOperandAs(0)); + if (!pointer || pointer->opcode() != spv::Op::OpTypePointer) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hit Object must be a pointer"; + } + auto type = _.FindDef(pointer->GetOperandAs(2)); + if (!type || type->opcode() != spv::Op::OpTypeHitObjectEXT) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Type must be OpTypeHitObjectEXT"; + } + return SPV_SUCCESS; +} + spv_result_t ValidateHitObjectInstructionCommonParameters( ValidationState_t& _, const Instruction* inst, uint32_t acceleration_struct_index, uint32_t instance_id_index, @@ -247,8 +277,10 @@ spv_result_t ValidateHitObjectInstructionCommonParameters( auto variable = _.FindDef(hit_object_attr_id); const auto var_opcode = variable->opcode(); if (!variable || var_opcode != spv::Op::OpVariable || - (variable->GetOperandAs(2)) != - spv::StorageClass::HitObjectAttributeNV) { + !((variable->GetOperandAs(2) == + spv::StorageClass::HitObjectAttributeNV) || + (variable->GetOperandAs(2) == + spv::StorageClass::HitObjectAttributeEXT))) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "Hit Object Attributes id must be a OpVariable of storage " "class HitObjectAttributeNV"; @@ -728,5 +760,651 @@ spv_result_t RayReorderNVPass(ValidationState_t& _, const Instruction* inst) { } return SPV_SUCCESS; } + +spv_result_t RayReorderEXTPass(ValidationState_t& _, const Instruction* inst) { + const spv::Op opcode = inst->opcode(); + const uint32_t result_type = inst->type_id(); + + auto RegisterOpcodeForValidModel = [](ValidationState_t& vs, + const Instruction* rtinst) { + std::string opcode_name = spvOpcodeString(rtinst->opcode()); + vs.function(rtinst->function()->id()) + ->RegisterExecutionModelLimitation( + [opcode_name](spv::ExecutionModel model, std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR && + model != spv::ExecutionModel::ClosestHitKHR && + model != spv::ExecutionModel::MissKHR) { + if (message) { + *message = opcode_name + + " requires RayGenerationKHR, ClosestHitKHR and " + "MissKHR execution models"; + } + return false; + } + return true; + }); + return; + }; + + switch (opcode) { + case spv::Op::OpHitObjectIsMissEXT: + case spv::Op::OpHitObjectIsHitEXT: + case spv::Op::OpHitObjectIsEmptyEXT: { + RegisterOpcodeForValidModel(_, inst); + if (!_.IsBoolScalarType(result_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "expected Result Type to be bool scalar type"; + } + + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + break; + } + + case spv::Op::OpHitObjectGetShaderRecordBufferHandleEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + + if (!_.IsIntVectorType(result_type) || + (_.GetDimension(result_type) != 2) || + (_.GetBitWidth(result_type) != 32)) + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Expected 32-bit integer type 2-component vector as Result " + "Type: " + << spvOpcodeString(opcode); + break; + } + + case spv::Op::OpHitObjectGetHitKindEXT: + case spv::Op::OpHitObjectGetPrimitiveIndexEXT: + case spv::Op::OpHitObjectGetGeometryIndexEXT: + case spv::Op::OpHitObjectGetInstanceIdEXT: + case spv::Op::OpHitObjectGetInstanceCustomIndexEXT: + case spv::Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: + case spv::Op::OpHitObjectGetRayFlagsEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + + if (!_.IsIntScalarType(result_type) || _.GetBitWidth(result_type) != 32) + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Expected 32-bit integer type scalar as Result Type: " + << spvOpcodeString(opcode); + break; + } + + case spv::Op::OpHitObjectGetCurrentTimeEXT: + case spv::Op::OpHitObjectGetRayTMaxEXT: + case spv::Op::OpHitObjectGetRayTMinEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + + if (!_.IsFloatScalarType(result_type) || _.GetBitWidth(result_type) != 32) + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Expected 32-bit floating-point type scalar as Result Type: " + << spvOpcodeString(opcode); + break; + } + + case spv::Op::OpHitObjectGetObjectToWorldEXT: + case spv::Op::OpHitObjectGetWorldToObjectEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + + uint32_t num_rows = 0; + uint32_t num_cols = 0; + uint32_t col_type = 0; + uint32_t component_type = 0; + + if (!_.GetMatrixTypeInfo(result_type, &num_rows, &num_cols, &col_type, + &component_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "expected matrix type as Result Type: " + << spvOpcodeString(opcode); + } + + if (num_cols != 4) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "expected Result Type matrix to have a Column Count of 4" + << spvOpcodeString(opcode); + } + + if (!_.IsFloatScalarType(component_type) || + _.GetBitWidth(result_type) != 32 || num_rows != 3) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "expected Result Type matrix to have a Column Type of " + "3-component 32-bit float vectors: " + << spvOpcodeString(opcode); + } + break; + } + + case spv::Op::OpHitObjectGetObjectRayOriginEXT: + case spv::Op::OpHitObjectGetObjectRayDirectionEXT: + case spv::Op::OpHitObjectGetWorldRayDirectionEXT: + case spv::Op::OpHitObjectGetWorldRayOriginEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + + if (!_.IsFloatVectorType(result_type) || + (_.GetDimension(result_type) != 3) || + (_.GetBitWidth(result_type) != 32)) + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Expected 32-bit floating-point type 3-component vector as " + "Result Type: " + << spvOpcodeString(opcode); + break; + } + + case spv::Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 2)) return error; + + auto result_id = _.FindDef(result_type); + if ((result_id->opcode() != spv::Op::OpTypeArray) || + (GetArrayLength(_, result_id) != 3) || + !_.IsFloatVectorType(_.GetComponentType(result_type)) || + _.GetDimension(_.GetComponentType(result_type)) != 3 || + _.GetBitWidth(_.GetComponentType(result_type)) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Expected 3 element array of 32-bit 3 component float " + "vectors as Result Type: " + << spvOpcodeString(opcode); + } + break; + } + + case spv::Op::OpHitObjectGetAttributesEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + const uint32_t hit_object_attr_id = inst->GetOperandAs(1); + auto variable = _.FindDef(hit_object_attr_id); + const auto var_opcode = variable->opcode(); + if (!variable || var_opcode != spv::Op::OpVariable || + variable->GetOperandAs(2) != + spv::StorageClass::HitObjectAttributeEXT) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hit Object Attributes id must be a OpVariable of storage " + "class HitObjectAttributeEXT"; + } + break; + } + + case spv::Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + const uint32_t sbt_index_id = _.GetOperandTypeId(inst, 1); + if (!_.IsIntScalarType(sbt_index_id) || + _.GetBitWidth(sbt_index_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "SBT Index must be a 32-bit integer scalar"; + } + break; + } + + case spv::Op::OpHitObjectExecuteShaderEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + const uint32_t payload_id = inst->GetOperandAs(1); + auto variable = _.FindDef(payload_id); + const auto var_opcode = variable->opcode(); + if (!variable || var_opcode != spv::Op::OpVariable || + (variable->GetOperandAs(2) != + spv::StorageClass::RayPayloadKHR && + variable->GetOperandAs(2) != + spv::StorageClass::IncomingRayPayloadKHR)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Payload must be a OpVariable of storage " + "class RayPayloadKHR or IncomingRayPayloadKHR"; + } + break; + } + + case spv::Op::OpHitObjectRecordEmptyEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + break; + } + + case spv::Op::OpHitObjectRecordFromQueryEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + if (auto error = ValidateRayQueryPointer(_, inst, 1)) return error; + + if (!_.HasCapability(spv::Capability::RayQueryKHR)) + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(opcode) + << ": requires RayQueryKHR capability"; + + // Validate SBT Record Index (operand 2) + const uint32_t sbt_record_index_id = _.GetOperandTypeId(inst, 2); + if (!_.IsIntScalarType(sbt_record_index_id) || + _.GetBitWidth(sbt_record_index_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "SBT Record Index must be a 32-bit integer scalar"; + } + + // Validate Hit Object Attributes (operand 3) + const uint32_t hit_object_attr_id = inst->GetOperandAs(3); + auto attr_variable = _.FindDef(hit_object_attr_id); + const auto attr_var_opcode = attr_variable->opcode(); + if (!attr_variable || attr_var_opcode != spv::Op::OpVariable || + attr_variable->GetOperandAs(2) != + spv::StorageClass::HitObjectAttributeEXT) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hit Object Attributes id must be a OpVariable of storage " + "class HitObjectAttributeEXT"; + } + break; + } + + case spv::Op::OpHitObjectRecordMissEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + // Ray Flags (operand 1) + const uint32_t ray_flags_id = _.GetOperandTypeId(inst, 1); + if (!_.IsIntScalarType(ray_flags_id) || + _.GetBitWidth(ray_flags_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Flags must be a 32-bit int scalar"; + } + + // Miss Index (operand 2) + const uint32_t miss_index = _.GetOperandTypeId(inst, 2); + if (!_.IsUnsignedIntScalarType(miss_index) || + _.GetBitWidth(miss_index) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Miss Index must be a 32-bit unsigned int scalar"; + } + + // Ray Origin (operand 3) + const uint32_t ray_origin = _.GetOperandTypeId(inst, 3); + if (!_.IsFloatVectorType(ray_origin) || _.GetDimension(ray_origin) != 3 || + _.GetBitWidth(ray_origin) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Origin must be a 32-bit float 3-component vector"; + } + + // Ray TMin (operand 4) + const uint32_t ray_tmin = _.GetOperandTypeId(inst, 4); + if (!_.IsFloatScalarType(ray_tmin) || _.GetBitWidth(ray_tmin) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray TMin must be a 32-bit float scalar"; + } + + // Ray Direction (operand 5) + const uint32_t ray_direction = _.GetOperandTypeId(inst, 5); + if (!_.IsFloatVectorType(ray_direction) || + _.GetDimension(ray_direction) != 3 || + _.GetBitWidth(ray_direction) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Direction must be a 32-bit float 3-component vector"; + } + + // Ray TMax (operand 6) + const uint32_t ray_tmax = _.GetOperandTypeId(inst, 6); + if (!_.IsFloatScalarType(ray_tmax) || _.GetBitWidth(ray_tmax) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray TMax must be a 32-bit float scalar"; + } + break; + } + + case spv::Op::OpHitObjectRecordMissMotionEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + // Ray Flags (operand 1) + const uint32_t ray_flags_id = _.GetOperandTypeId(inst, 1); + if (!_.IsIntScalarType(ray_flags_id) || + _.GetBitWidth(ray_flags_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Flags must be a 32-bit int scalar"; + } + + // Miss Index (operand 2) + const uint32_t miss_index = _.GetOperandTypeId(inst, 2); + if (!_.IsUnsignedIntScalarType(miss_index) || + _.GetBitWidth(miss_index) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Miss Index must be a 32-bit unsigned int scalar"; + } + + // Ray Origin (operand 3) + const uint32_t ray_origin = _.GetOperandTypeId(inst, 3); + if (!_.IsFloatVectorType(ray_origin) || _.GetDimension(ray_origin) != 3 || + _.GetBitWidth(ray_origin) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Origin must be a 32-bit float 3-component vector"; + } + + // Ray TMin (operand 4) + const uint32_t ray_tmin = _.GetOperandTypeId(inst, 4); + if (!_.IsFloatScalarType(ray_tmin) || _.GetBitWidth(ray_tmin) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray TMin must be a 32-bit float scalar"; + } + + // Ray Direction (operand 5) + const uint32_t ray_direction = _.GetOperandTypeId(inst, 5); + if (!_.IsFloatVectorType(ray_direction) || + _.GetDimension(ray_direction) != 3 || + _.GetBitWidth(ray_direction) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray Direction must be a 32-bit float 3-component vector"; + } + + // Ray TMax (operand 6) + const uint32_t ray_tmax = _.GetOperandTypeId(inst, 6); + if (!_.IsFloatScalarType(ray_tmax) || _.GetBitWidth(ray_tmax) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Ray TMax must be a 32-bit float scalar"; + } + + // Current Time (operand 7) + const uint32_t current_time_id = _.GetOperandTypeId(inst, 7); + if (!_.IsFloatScalarType(current_time_id) || + _.GetBitWidth(current_time_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Current Time must be a 32-bit float scalar"; + } + break; + } + + case spv::Op::OpReorderThreadWithHintEXT: { + std::string opcode_name = spvOpcodeString(inst->opcode()); + _.function(inst->function()->id()) + ->RegisterExecutionModelLimitation( + [opcode_name](spv::ExecutionModel model, std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR) { + if (message) { + *message = opcode_name + + " requires RayGenerationKHR execution model"; + } + return false; + } + return true; + }); + + const uint32_t hint_id = _.GetOperandTypeId(inst, 0); + if (!_.IsIntScalarType(hint_id) || _.GetBitWidth(hint_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint must be a 32-bit int scalar"; + } + + const uint32_t bits_id = _.GetOperandTypeId(inst, 1); + if (!_.IsIntScalarType(bits_id) || _.GetBitWidth(bits_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Bits must be a 32-bit int scalar"; + } + break; + } + + case spv::Op::OpReorderThreadWithHitObjectEXT: { + std::string opcode_name = spvOpcodeString(inst->opcode()); + _.function(inst->function()->id()) + ->RegisterExecutionModelLimitation( + [opcode_name](spv::ExecutionModel model, std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR) { + if (message) { + *message = opcode_name + + " requires RayGenerationKHR execution model"; + } + return false; + } + return true; + }); + + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + if (inst->operands().size() > 1) { + if (inst->operands().size() != 3) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint and Bits are optional together i.e " + << " Either both Hint and Bits should be provided or neither."; + } + + // Validate the optional operands Hint and Bits + const uint32_t hint_id = _.GetOperandTypeId(inst, 1); + if (!_.IsIntScalarType(hint_id) || _.GetBitWidth(hint_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint must be a 32-bit int scalar"; + } + const uint32_t bits_id = _.GetOperandTypeId(inst, 2); + if (!_.IsIntScalarType(bits_id) || _.GetBitWidth(bits_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Bits must be a 32-bit int scalar"; + } + } + break; + } + + case spv::Op::OpHitObjectTraceRayEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + if (auto error = ValidateHitObjectInstructionCommonParameters( + _, inst, 1 /* Acceleration Struct */, + KRayParamInvalidId /* Instance Id */, + KRayParamInvalidId /* Primitive Id */, + KRayParamInvalidId /* Geometry Index */, 2 /* Ray Flags */, + 3 /* Cull Mask */, KRayParamInvalidId /* Hit Kind*/, + KRayParamInvalidId /* SBT index */, 4 /* SBT Offset */, + 5 /* SBT Stride */, KRayParamInvalidId /* SBT Record Offset */, + KRayParamInvalidId /* SBT Record Stride */, 6 /* Miss Index */, + 7 /* Ray Origin */, 8 /* Ray TMin */, 9 /* Ray Direction */, + 10 /* Ray TMax */, 11 /* Payload */, + KRayParamInvalidId /* Hit Object Attribute */)) + return error; + break; + } + + case spv::Op::OpHitObjectTraceRayMotionEXT: { + RegisterOpcodeForValidModel(_, inst); + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + if (auto error = ValidateHitObjectInstructionCommonParameters( + _, inst, 1 /* Acceleration Struct */, + KRayParamInvalidId /* Instance Id */, + KRayParamInvalidId /* Primitive Id */, + KRayParamInvalidId /* Geometry Index */, 2 /* Ray Flags */, + 3 /* Cull Mask */, KRayParamInvalidId /* Hit Kind*/, + KRayParamInvalidId /* SBT index */, 4 /* SBT Offset */, + 5 /* SBT Stride */, KRayParamInvalidId /* SBT Record Offset */, + KRayParamInvalidId /* SBT Record Stride */, 6 /* Miss Index */, + 7 /* Ray Origin */, 8 /* Ray TMin */, 9 /* Ray Direction */, + 10 /* Ray TMax */, 12 /* Payload */, + KRayParamInvalidId /* Hit Object Attribute */)) + return error; + + // Current Time (operand 11) + const uint32_t current_time_id = _.GetOperandTypeId(inst, 11); + if (!_.IsFloatScalarType(current_time_id) || + _.GetBitWidth(current_time_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Current Time must be a 32-bit float scalar"; + } + break; + } + + case spv::Op::OpHitObjectReorderExecuteShaderEXT: { + std::string opcode_name = spvOpcodeString(inst->opcode()); + _.function(inst->function()->id()) + ->RegisterExecutionModelLimitation( + [opcode_name](spv::ExecutionModel model, std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR) { + if (message) { + *message = opcode_name + + " requires RayGenerationKHR execution model"; + } + return false; + } + return true; + }); + + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + // Validate Payload (operand 1) + const uint32_t payload_id = inst->GetOperandAs(1); + auto variable = _.FindDef(payload_id); + const auto var_opcode = variable->opcode(); + if (!variable || var_opcode != spv::Op::OpVariable || + (variable->GetOperandAs(2) != + spv::StorageClass::RayPayloadKHR && + variable->GetOperandAs(2) != + spv::StorageClass::IncomingRayPayloadKHR)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Payload must be a OpVariable of storage " + "class RayPayloadKHR or IncomingRayPayloadKHR"; + } + + // Check for optional Hint and Bits (operands 2 and 3) + if (inst->operands().size() > 2) { + if (inst->operands().size() != 4) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint and Bits are optional together i.e " + << " Either both Hint and Bits should be provided or neither."; + } + + // Validate optional Hint and Bits + const uint32_t hint_id = _.GetOperandTypeId(inst, 2); + if (!_.IsIntScalarType(hint_id) || _.GetBitWidth(hint_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint must be a 32-bit int scalar"; + } + const uint32_t bits_id = _.GetOperandTypeId(inst, 3); + if (!_.IsIntScalarType(bits_id) || _.GetBitWidth(bits_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Bits must be a 32-bit int scalar"; + } + } + break; + } + + case spv::Op::OpHitObjectTraceReorderExecuteEXT: { + std::string opcode_name = spvOpcodeString(inst->opcode()); + _.function(inst->function()->id()) + ->RegisterExecutionModelLimitation( + [opcode_name](spv::ExecutionModel model, std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR) { + if (message) { + *message = opcode_name + + " requires RayGenerationKHR execution model"; + } + return false; + } + return true; + }); + + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + // Validate base trace ray parameters (operands 1-11) + if (auto error = ValidateHitObjectInstructionCommonParameters( + _, inst, 1 /* Acceleration Struct */, + KRayParamInvalidId /* Instance Id */, + KRayParamInvalidId /* Primitive Id */, + KRayParamInvalidId /* Geometry Index */, 2 /* Ray Flags */, + 3 /* Cull Mask */, KRayParamInvalidId /* Hit Kind*/, + KRayParamInvalidId /* SBT index */, 4 /* SBT Offset */, + 5 /* SBT Stride */, KRayParamInvalidId /* SBT Record Offset */, + KRayParamInvalidId /* SBT Record Stride */, 6 /* Miss Index */, + 7 /* Ray Origin */, 8 /* Ray TMin */, 9 /* Ray Direction */, + 10 /* Ray TMax */, 11 /* Payload */, + KRayParamInvalidId /* Hit Object Attribute */)) + return error; + + // Check for optional Hint and Bits (operands 12 and 13) + if (inst->operands().size() > 12) { + if (inst->operands().size() != 14) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint and Bits are optional together i.e " + << " Either both Hint and Bits should be provided or neither."; + } + + // Validate optional Hint and Bits + const uint32_t hint_id = _.GetOperandTypeId(inst, 12); + if (!_.IsIntScalarType(hint_id) || _.GetBitWidth(hint_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint must be a 32-bit int scalar"; + } + const uint32_t bits_id = _.GetOperandTypeId(inst, 13); + if (!_.IsIntScalarType(bits_id) || _.GetBitWidth(bits_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Bits must be a 32-bit int scalar"; + } + } + break; + } + + case spv::Op::OpHitObjectTraceMotionReorderExecuteEXT: { + std::string opcode_name = spvOpcodeString(inst->opcode()); + _.function(inst->function()->id()) + ->RegisterExecutionModelLimitation( + [opcode_name](spv::ExecutionModel model, std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR) { + if (message) { + *message = opcode_name + + " requires RayGenerationKHR execution model"; + } + return false; + } + return true; + }); + + if (auto error = ValidateHitObjectPointerEXT(_, inst, 0)) return error; + + // Validate base trace ray parameters (operands 1-12) + if (auto error = ValidateHitObjectInstructionCommonParameters( + _, inst, 1 /* Acceleration Struct */, + KRayParamInvalidId /* Instance Id */, + KRayParamInvalidId /* Primitive Id */, + KRayParamInvalidId /* Geometry Index */, 2 /* Ray Flags */, + 3 /* Cull Mask */, KRayParamInvalidId /* Hit Kind*/, + KRayParamInvalidId /* SBT index */, 4 /* SBT Offset */, + 5 /* SBT Stride */, KRayParamInvalidId /* SBT Record Offset */, + KRayParamInvalidId /* SBT Record Stride */, 6 /* Miss Index */, + 7 /* Ray Origin */, 8 /* Ray TMin */, 9 /* Ray Direction */, + 10 /* Ray TMax */, 12 /* Payload */, + KRayParamInvalidId /* Hit Object Attribute */)) + return error; + + // Current Time (operand 11) + const uint32_t current_time_id = _.GetOperandTypeId(inst, 11); + if (!_.IsFloatScalarType(current_time_id) || + _.GetBitWidth(current_time_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Current Time must be a 32-bit float scalar"; + } + + // Check for optional Hint and Bits (operands 13 and 14) + if (inst->operands().size() > 13) { + if (inst->operands().size() != 15) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint and Bits are optional together i.e " + << " Either both Hint and Bits should be provided or neither."; + } + + // Validate optional Hint and Bits + const uint32_t hint_id = _.GetOperandTypeId(inst, 13); + if (!_.IsIntScalarType(hint_id) || _.GetBitWidth(hint_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Hint must be a 32-bit int scalar"; + } + const uint32_t bits_id = _.GetOperandTypeId(inst, 14); + if (!_.IsIntScalarType(bits_id) || _.GetBitWidth(bits_id) != 32) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Bits must be a 32-bit int scalar"; + } + } + break; + } + + default: + break; + } + return SPV_SUCCESS; +} } // namespace val } // namespace spvtools diff --git a/libs/bgfx/3rdparty/spirv-tools/source/val/validation_state.cpp b/libs/bgfx/3rdparty/spirv-tools/source/val/validation_state.cpp index e7d7a0b..bc9d835 100644 --- a/libs/bgfx/3rdparty/spirv-tools/source/val/validation_state.cpp +++ b/libs/bgfx/3rdparty/spirv-tools/source/val/validation_state.cpp @@ -859,6 +859,22 @@ void ValidationState_t::RegisterStorageClassConsumer( } return true; }); + } else if (storage_class == spv::StorageClass::HitObjectAttributeEXT) { + function(consumer->function()->id()) + ->RegisterExecutionModelLimitation([](spv::ExecutionModel model, + std::string* message) { + if (model != spv::ExecutionModel::RayGenerationKHR && + model != spv::ExecutionModel::ClosestHitKHR && + model != spv::ExecutionModel::MissKHR) { + if (message) { + *message = + "HitObjectAttributeEXT Storage Class is limited to " + "RayGenerationKHR, ClosestHitKHR or MissKHR execution model"; + } + return false; + } + return true; + }); } } @@ -2032,6 +2048,7 @@ bool ValidationState_t::IsValidStorageClass( case spv::StorageClass::ShaderRecordBufferKHR: case spv::StorageClass::TaskPayloadWorkgroupEXT: case spv::StorageClass::HitObjectAttributeNV: + case spv::StorageClass::HitObjectAttributeEXT: case spv::StorageClass::TileImageEXT: case spv::StorageClass::NodePayloadAMDX: case spv::StorageClass::TileAttachmentQCOM: @@ -2254,6 +2271,12 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-LocalInvocationId-LocalInvocationId-04282); case 4283: return VUID_WRAP(VUID-LocalInvocationId-LocalInvocationId-04283); + case 4284: + return VUID_WRAP(VUID-LocalInvocationIndex-LocalInvocationIndex-04284); + case 4285: + return VUID_WRAP(VUID-LocalInvocationIndex-LocalInvocationIndex-04285); + case 4286: + return VUID_WRAP(VUID-LocalInvocationIndex-LocalInvocationIndex-04286); case 4293: return VUID_WRAP(VUID-NumSubgroups-NumSubgroups-04293); case 4294: @@ -2538,8 +2561,6 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-OpTypeRuntimeArray-04680); case 4682: return VUID_WRAP(VUID-StandaloneSpirv-OpControlBarrier-04682); - case 6426: - return VUID_WRAP(VUID-StandaloneSpirv-LocalSize-06426); // formally 04683 case 4685: return VUID_WRAP(VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685); case 4686: @@ -2752,7 +2773,7 @@ std::string ValidationState_t::VkErrorID(uint32_t id, case 10684: return VUID_WRAP(VUID-StandaloneSpirv-None-10684); case 10685: - return VUID_WRAP(VUID-StandaloneSpirv-None-10685); + return VUID_WRAP(VUID-StandaloneSpirv-None-10685); // formally 04683/06426 case 10824: // This use to be a standalone, but maintenance9 will set allow_vulkan_32_bit_bitwise now return VUID_WRAP(VUID-RuntimeSpirv-None-10824); @@ -2790,6 +2811,8 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-TessLevelInner-10880); case 11167: return VUID_WRAP(VUID-StandaloneSpirv-OpUntypedVariableKHR-11167); + case 11805: + return VUID_WRAP(VUID-StandaloneSpirv-OpArrayLength-11805); default: return ""; // unknown id } diff --git a/src/bgfx.zig b/libs/bgfx/bindings/zig/bgfx.zig similarity index 71% rename from src/bgfx.zig rename to libs/bgfx/bindings/zig/bgfx.zig index b35ae19..b518b4f 100644 --- a/src/bgfx.zig +++ b/libs/bgfx/bindings/zig/bgfx.zig @@ -1,830 +1,840 @@ // Copyright 2011-2025 Branimir Karadzic. All rights reserved. // License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE + // // AUTO GENERATED! DO NOT EDIT! // + const std = @import("std"); pub const ViewId = u16; pub const StateFlags = u64; /// Enable R write. -pub const StateFlags_WriteR: StateFlags = 0x0000000000000001; +pub const StateFlags_WriteR: StateFlags = 0x0000000000000001; /// Enable G write. -pub const StateFlags_WriteG: StateFlags = 0x0000000000000002; +pub const StateFlags_WriteG: StateFlags = 0x0000000000000002; /// Enable B write. -pub const StateFlags_WriteB: StateFlags = 0x0000000000000004; +pub const StateFlags_WriteB: StateFlags = 0x0000000000000004; /// Enable alpha write. -pub const StateFlags_WriteA: StateFlags = 0x0000000000000008; +pub const StateFlags_WriteA: StateFlags = 0x0000000000000008; /// Enable depth write. -pub const StateFlags_WriteZ: StateFlags = 0x0000004000000000; +pub const StateFlags_WriteZ: StateFlags = 0x0000004000000000; /// Enable RGB write. -pub const StateFlags_WriteRgb: StateFlags = 0x0000000000000007; +pub const StateFlags_WriteRgb: StateFlags = 0x0000000000000007; /// Write all channels mask. -pub const StateFlags_WriteMask: StateFlags = 0x000000400000000f; +pub const StateFlags_WriteMask: StateFlags = 0x000000400000000f; /// Enable depth test, less. -pub const StateFlags_DepthTestLess: StateFlags = 0x0000000000000010; +pub const StateFlags_DepthTestLess: StateFlags = 0x0000000000000010; /// Enable depth test, less or equal. -pub const StateFlags_DepthTestLequal: StateFlags = 0x0000000000000020; +pub const StateFlags_DepthTestLequal: StateFlags = 0x0000000000000020; /// Enable depth test, equal. -pub const StateFlags_DepthTestEqual: StateFlags = 0x0000000000000030; +pub const StateFlags_DepthTestEqual: StateFlags = 0x0000000000000030; /// Enable depth test, greater or equal. -pub const StateFlags_DepthTestGequal: StateFlags = 0x0000000000000040; +pub const StateFlags_DepthTestGequal: StateFlags = 0x0000000000000040; /// Enable depth test, greater. -pub const StateFlags_DepthTestGreater: StateFlags = 0x0000000000000050; +pub const StateFlags_DepthTestGreater: StateFlags = 0x0000000000000050; /// Enable depth test, not equal. -pub const StateFlags_DepthTestNotequal: StateFlags = 0x0000000000000060; +pub const StateFlags_DepthTestNotequal: StateFlags = 0x0000000000000060; /// Enable depth test, never. -pub const StateFlags_DepthTestNever: StateFlags = 0x0000000000000070; +pub const StateFlags_DepthTestNever: StateFlags = 0x0000000000000070; /// Enable depth test, always. -pub const StateFlags_DepthTestAlways: StateFlags = 0x0000000000000080; -pub const StateFlags_DepthTestShift: StateFlags = 4; -pub const StateFlags_DepthTestMask: StateFlags = 0x00000000000000f0; +pub const StateFlags_DepthTestAlways: StateFlags = 0x0000000000000080; +pub const StateFlags_DepthTestShift: StateFlags = 4; +pub const StateFlags_DepthTestMask: StateFlags = 0x00000000000000f0; /// 0, 0, 0, 0 -pub const StateFlags_BlendZero: StateFlags = 0x0000000000001000; +pub const StateFlags_BlendZero: StateFlags = 0x0000000000001000; /// 1, 1, 1, 1 -pub const StateFlags_BlendOne: StateFlags = 0x0000000000002000; +pub const StateFlags_BlendOne: StateFlags = 0x0000000000002000; /// Rs, Gs, Bs, As -pub const StateFlags_BlendSrcColor: StateFlags = 0x0000000000003000; +pub const StateFlags_BlendSrcColor: StateFlags = 0x0000000000003000; /// 1-Rs, 1-Gs, 1-Bs, 1-As -pub const StateFlags_BlendInvSrcColor: StateFlags = 0x0000000000004000; +pub const StateFlags_BlendInvSrcColor: StateFlags = 0x0000000000004000; /// As, As, As, As -pub const StateFlags_BlendSrcAlpha: StateFlags = 0x0000000000005000; +pub const StateFlags_BlendSrcAlpha: StateFlags = 0x0000000000005000; /// 1-As, 1-As, 1-As, 1-As -pub const StateFlags_BlendInvSrcAlpha: StateFlags = 0x0000000000006000; +pub const StateFlags_BlendInvSrcAlpha: StateFlags = 0x0000000000006000; /// Ad, Ad, Ad, Ad -pub const StateFlags_BlendDstAlpha: StateFlags = 0x0000000000007000; +pub const StateFlags_BlendDstAlpha: StateFlags = 0x0000000000007000; /// 1-Ad, 1-Ad, 1-Ad ,1-Ad -pub const StateFlags_BlendInvDstAlpha: StateFlags = 0x0000000000008000; +pub const StateFlags_BlendInvDstAlpha: StateFlags = 0x0000000000008000; /// Rd, Gd, Bd, Ad -pub const StateFlags_BlendDstColor: StateFlags = 0x0000000000009000; +pub const StateFlags_BlendDstColor: StateFlags = 0x0000000000009000; /// 1-Rd, 1-Gd, 1-Bd, 1-Ad -pub const StateFlags_BlendInvDstColor: StateFlags = 0x000000000000a000; +pub const StateFlags_BlendInvDstColor: StateFlags = 0x000000000000a000; /// f, f, f, 1; f = min(As, 1-Ad) -pub const StateFlags_BlendSrcAlphaSat: StateFlags = 0x000000000000b000; +pub const StateFlags_BlendSrcAlphaSat: StateFlags = 0x000000000000b000; /// Blend factor -pub const StateFlags_BlendFactor: StateFlags = 0x000000000000c000; +pub const StateFlags_BlendFactor: StateFlags = 0x000000000000c000; /// 1-Blend factor -pub const StateFlags_BlendInvFactor: StateFlags = 0x000000000000d000; -pub const StateFlags_BlendShift: StateFlags = 12; -pub const StateFlags_BlendMask: StateFlags = 0x000000000ffff000; +pub const StateFlags_BlendInvFactor: StateFlags = 0x000000000000d000; +pub const StateFlags_BlendShift: StateFlags = 12; +pub const StateFlags_BlendMask: StateFlags = 0x000000000ffff000; /// Blend add: src + dst. -pub const StateFlags_BlendEquationAdd: StateFlags = 0x0000000000000000; +pub const StateFlags_BlendEquationAdd: StateFlags = 0x0000000000000000; /// Blend subtract: src - dst. -pub const StateFlags_BlendEquationSub: StateFlags = 0x0000000010000000; +pub const StateFlags_BlendEquationSub: StateFlags = 0x0000000010000000; /// Blend reverse subtract: dst - src. -pub const StateFlags_BlendEquationRevsub: StateFlags = 0x0000000020000000; +pub const StateFlags_BlendEquationRevsub: StateFlags = 0x0000000020000000; /// Blend min: min(src, dst). -pub const StateFlags_BlendEquationMin: StateFlags = 0x0000000030000000; +pub const StateFlags_BlendEquationMin: StateFlags = 0x0000000030000000; /// Blend max: max(src, dst). -pub const StateFlags_BlendEquationMax: StateFlags = 0x0000000040000000; -pub const StateFlags_BlendEquationShift: StateFlags = 28; -pub const StateFlags_BlendEquationMask: StateFlags = 0x00000003f0000000; +pub const StateFlags_BlendEquationMax: StateFlags = 0x0000000040000000; +pub const StateFlags_BlendEquationShift: StateFlags = 28; +pub const StateFlags_BlendEquationMask: StateFlags = 0x00000003f0000000; /// Cull clockwise triangles. -pub const StateFlags_CullCw: StateFlags = 0x0000001000000000; +pub const StateFlags_CullCw: StateFlags = 0x0000001000000000; /// Cull counter-clockwise triangles. -pub const StateFlags_CullCcw: StateFlags = 0x0000002000000000; -pub const StateFlags_CullShift: StateFlags = 36; -pub const StateFlags_CullMask: StateFlags = 0x0000003000000000; -pub const StateFlags_AlphaRefShift: StateFlags = 40; -pub const StateFlags_AlphaRefMask: StateFlags = 0x0000ff0000000000; +pub const StateFlags_CullCcw: StateFlags = 0x0000002000000000; +pub const StateFlags_CullShift: StateFlags = 36; +pub const StateFlags_CullMask: StateFlags = 0x0000003000000000; +pub const StateFlags_AlphaRefShift: StateFlags = 40; +pub const StateFlags_AlphaRefMask: StateFlags = 0x0000ff0000000000; /// Tristrip. -pub const StateFlags_PtTristrip: StateFlags = 0x0001000000000000; +pub const StateFlags_PtTristrip: StateFlags = 0x0001000000000000; /// Lines. -pub const StateFlags_PtLines: StateFlags = 0x0002000000000000; +pub const StateFlags_PtLines: StateFlags = 0x0002000000000000; /// Line strip. -pub const StateFlags_PtLinestrip: StateFlags = 0x0003000000000000; +pub const StateFlags_PtLinestrip: StateFlags = 0x0003000000000000; /// Points. -pub const StateFlags_PtPoints: StateFlags = 0x0004000000000000; -pub const StateFlags_PtShift: StateFlags = 48; -pub const StateFlags_PtMask: StateFlags = 0x0007000000000000; -pub const StateFlags_PointSizeShift: StateFlags = 52; -pub const StateFlags_PointSizeMask: StateFlags = 0x00f0000000000000; +pub const StateFlags_PtPoints: StateFlags = 0x0004000000000000; +pub const StateFlags_PtShift: StateFlags = 48; +pub const StateFlags_PtMask: StateFlags = 0x0007000000000000; +pub const StateFlags_PointSizeShift: StateFlags = 52; +pub const StateFlags_PointSizeMask: StateFlags = 0x00f0000000000000; /// Enable MSAA rasterization. -pub const StateFlags_Msaa: StateFlags = 0x0100000000000000; +pub const StateFlags_Msaa: StateFlags = 0x0100000000000000; /// Enable line AA rasterization. -pub const StateFlags_Lineaa: StateFlags = 0x0200000000000000; +pub const StateFlags_Lineaa: StateFlags = 0x0200000000000000; /// Enable conservative rasterization. -pub const StateFlags_ConservativeRaster: StateFlags = 0x0400000000000000; +pub const StateFlags_ConservativeRaster: StateFlags = 0x0400000000000000; /// No state. -pub const StateFlags_None: StateFlags = 0x0000000000000000; +pub const StateFlags_None: StateFlags = 0x0000000000000000; /// Front counter-clockwise (default is clockwise). -pub const StateFlags_FrontCcw: StateFlags = 0x0000008000000000; +pub const StateFlags_FrontCcw: StateFlags = 0x0000008000000000; /// Enable blend independent. -pub const StateFlags_BlendIndependent: StateFlags = 0x0000000400000000; +pub const StateFlags_BlendIndependent: StateFlags = 0x0000000400000000; /// Enable alpha to coverage. -pub const StateFlags_BlendAlphaToCoverage: StateFlags = 0x0000000800000000; +pub const StateFlags_BlendAlphaToCoverage: StateFlags = 0x0000000800000000; /// Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise /// culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored). -pub const StateFlags_Default: StateFlags = 0x010000500000001f; -pub const StateFlags_Mask: StateFlags = 0xffffffffffffffff; -pub const StateFlags_ReservedShift: StateFlags = 61; -pub const StateFlags_ReservedMask: StateFlags = 0xe000000000000000; +pub const StateFlags_Default: StateFlags = 0x010000500000001f; +pub const StateFlags_Mask: StateFlags = 0xffffffffffffffff; +pub const StateFlags_ReservedShift: StateFlags = 61; +pub const StateFlags_ReservedMask: StateFlags = 0xe000000000000000; pub const StencilFlags = u32; -pub const StencilFlags_FuncRefShift: StencilFlags = 0; -pub const StencilFlags_FuncRefMask: StencilFlags = 0x000000ff; -pub const StencilFlags_FuncRmaskShift: StencilFlags = 8; -pub const StencilFlags_FuncRmaskMask: StencilFlags = 0x0000ff00; -pub const StencilFlags_None: StencilFlags = 0x00000000; -pub const StencilFlags_Mask: StencilFlags = 0xffffffff; -pub const StencilFlags_Default: StencilFlags = 0x00000000; +pub const StencilFlags_FuncRefShift: StencilFlags = 0; +pub const StencilFlags_FuncRefMask: StencilFlags = 0x000000ff; +pub const StencilFlags_FuncRmaskShift: StencilFlags = 8; +pub const StencilFlags_FuncRmaskMask: StencilFlags = 0x0000ff00; +pub const StencilFlags_None: StencilFlags = 0x00000000; +pub const StencilFlags_Mask: StencilFlags = 0xffffffff; +pub const StencilFlags_Default: StencilFlags = 0x00000000; /// Enable stencil test, less. -pub const StencilFlags_TestLess: StencilFlags = 0x00010000; +pub const StencilFlags_TestLess: StencilFlags = 0x00010000; /// Enable stencil test, less or equal. -pub const StencilFlags_TestLequal: StencilFlags = 0x00020000; +pub const StencilFlags_TestLequal: StencilFlags = 0x00020000; /// Enable stencil test, equal. -pub const StencilFlags_TestEqual: StencilFlags = 0x00030000; +pub const StencilFlags_TestEqual: StencilFlags = 0x00030000; /// Enable stencil test, greater or equal. -pub const StencilFlags_TestGequal: StencilFlags = 0x00040000; +pub const StencilFlags_TestGequal: StencilFlags = 0x00040000; /// Enable stencil test, greater. -pub const StencilFlags_TestGreater: StencilFlags = 0x00050000; +pub const StencilFlags_TestGreater: StencilFlags = 0x00050000; /// Enable stencil test, not equal. -pub const StencilFlags_TestNotequal: StencilFlags = 0x00060000; +pub const StencilFlags_TestNotequal: StencilFlags = 0x00060000; /// Enable stencil test, never. -pub const StencilFlags_TestNever: StencilFlags = 0x00070000; +pub const StencilFlags_TestNever: StencilFlags = 0x00070000; /// Enable stencil test, always. -pub const StencilFlags_TestAlways: StencilFlags = 0x00080000; -pub const StencilFlags_TestShift: StencilFlags = 16; -pub const StencilFlags_TestMask: StencilFlags = 0x000f0000; +pub const StencilFlags_TestAlways: StencilFlags = 0x00080000; +pub const StencilFlags_TestShift: StencilFlags = 16; +pub const StencilFlags_TestMask: StencilFlags = 0x000f0000; /// Zero. -pub const StencilFlags_OpFailSZero: StencilFlags = 0x00000000; +pub const StencilFlags_OpFailSZero: StencilFlags = 0x00000000; /// Keep. -pub const StencilFlags_OpFailSKeep: StencilFlags = 0x00100000; +pub const StencilFlags_OpFailSKeep: StencilFlags = 0x00100000; /// Replace. -pub const StencilFlags_OpFailSReplace: StencilFlags = 0x00200000; +pub const StencilFlags_OpFailSReplace: StencilFlags = 0x00200000; /// Increment and wrap. -pub const StencilFlags_OpFailSIncr: StencilFlags = 0x00300000; +pub const StencilFlags_OpFailSIncr: StencilFlags = 0x00300000; /// Increment and clamp. -pub const StencilFlags_OpFailSIncrsat: StencilFlags = 0x00400000; +pub const StencilFlags_OpFailSIncrsat: StencilFlags = 0x00400000; /// Decrement and wrap. -pub const StencilFlags_OpFailSDecr: StencilFlags = 0x00500000; +pub const StencilFlags_OpFailSDecr: StencilFlags = 0x00500000; /// Decrement and clamp. -pub const StencilFlags_OpFailSDecrsat: StencilFlags = 0x00600000; +pub const StencilFlags_OpFailSDecrsat: StencilFlags = 0x00600000; /// Invert. -pub const StencilFlags_OpFailSInvert: StencilFlags = 0x00700000; -pub const StencilFlags_OpFailSShift: StencilFlags = 20; -pub const StencilFlags_OpFailSMask: StencilFlags = 0x00f00000; +pub const StencilFlags_OpFailSInvert: StencilFlags = 0x00700000; +pub const StencilFlags_OpFailSShift: StencilFlags = 20; +pub const StencilFlags_OpFailSMask: StencilFlags = 0x00f00000; /// Zero. -pub const StencilFlags_OpFailZZero: StencilFlags = 0x00000000; +pub const StencilFlags_OpFailZZero: StencilFlags = 0x00000000; /// Keep. -pub const StencilFlags_OpFailZKeep: StencilFlags = 0x01000000; +pub const StencilFlags_OpFailZKeep: StencilFlags = 0x01000000; /// Replace. -pub const StencilFlags_OpFailZReplace: StencilFlags = 0x02000000; +pub const StencilFlags_OpFailZReplace: StencilFlags = 0x02000000; /// Increment and wrap. -pub const StencilFlags_OpFailZIncr: StencilFlags = 0x03000000; +pub const StencilFlags_OpFailZIncr: StencilFlags = 0x03000000; /// Increment and clamp. -pub const StencilFlags_OpFailZIncrsat: StencilFlags = 0x04000000; +pub const StencilFlags_OpFailZIncrsat: StencilFlags = 0x04000000; /// Decrement and wrap. -pub const StencilFlags_OpFailZDecr: StencilFlags = 0x05000000; +pub const StencilFlags_OpFailZDecr: StencilFlags = 0x05000000; /// Decrement and clamp. -pub const StencilFlags_OpFailZDecrsat: StencilFlags = 0x06000000; +pub const StencilFlags_OpFailZDecrsat: StencilFlags = 0x06000000; /// Invert. -pub const StencilFlags_OpFailZInvert: StencilFlags = 0x07000000; -pub const StencilFlags_OpFailZShift: StencilFlags = 24; -pub const StencilFlags_OpFailZMask: StencilFlags = 0x0f000000; +pub const StencilFlags_OpFailZInvert: StencilFlags = 0x07000000; +pub const StencilFlags_OpFailZShift: StencilFlags = 24; +pub const StencilFlags_OpFailZMask: StencilFlags = 0x0f000000; /// Zero. -pub const StencilFlags_OpPassZZero: StencilFlags = 0x00000000; +pub const StencilFlags_OpPassZZero: StencilFlags = 0x00000000; /// Keep. -pub const StencilFlags_OpPassZKeep: StencilFlags = 0x10000000; +pub const StencilFlags_OpPassZKeep: StencilFlags = 0x10000000; /// Replace. -pub const StencilFlags_OpPassZReplace: StencilFlags = 0x20000000; +pub const StencilFlags_OpPassZReplace: StencilFlags = 0x20000000; /// Increment and wrap. -pub const StencilFlags_OpPassZIncr: StencilFlags = 0x30000000; +pub const StencilFlags_OpPassZIncr: StencilFlags = 0x30000000; /// Increment and clamp. -pub const StencilFlags_OpPassZIncrsat: StencilFlags = 0x40000000; +pub const StencilFlags_OpPassZIncrsat: StencilFlags = 0x40000000; /// Decrement and wrap. -pub const StencilFlags_OpPassZDecr: StencilFlags = 0x50000000; +pub const StencilFlags_OpPassZDecr: StencilFlags = 0x50000000; /// Decrement and clamp. -pub const StencilFlags_OpPassZDecrsat: StencilFlags = 0x60000000; +pub const StencilFlags_OpPassZDecrsat: StencilFlags = 0x60000000; /// Invert. -pub const StencilFlags_OpPassZInvert: StencilFlags = 0x70000000; -pub const StencilFlags_OpPassZShift: StencilFlags = 28; -pub const StencilFlags_OpPassZMask: StencilFlags = 0xf0000000; +pub const StencilFlags_OpPassZInvert: StencilFlags = 0x70000000; +pub const StencilFlags_OpPassZShift: StencilFlags = 28; +pub const StencilFlags_OpPassZMask: StencilFlags = 0xf0000000; pub const ClearFlags = u16; /// No clear flags. -pub const ClearFlags_None: ClearFlags = 0x0000; +pub const ClearFlags_None: ClearFlags = 0x0000; /// Clear color. -pub const ClearFlags_Color: ClearFlags = 0x0001; +pub const ClearFlags_Color: ClearFlags = 0x0001; /// Clear depth. -pub const ClearFlags_Depth: ClearFlags = 0x0002; +pub const ClearFlags_Depth: ClearFlags = 0x0002; /// Clear stencil. -pub const ClearFlags_Stencil: ClearFlags = 0x0004; +pub const ClearFlags_Stencil: ClearFlags = 0x0004; /// Discard frame buffer attachment 0. -pub const ClearFlags_DiscardColor0: ClearFlags = 0x0008; +pub const ClearFlags_DiscardColor0: ClearFlags = 0x0008; /// Discard frame buffer attachment 1. -pub const ClearFlags_DiscardColor1: ClearFlags = 0x0010; +pub const ClearFlags_DiscardColor1: ClearFlags = 0x0010; /// Discard frame buffer attachment 2. -pub const ClearFlags_DiscardColor2: ClearFlags = 0x0020; +pub const ClearFlags_DiscardColor2: ClearFlags = 0x0020; /// Discard frame buffer attachment 3. -pub const ClearFlags_DiscardColor3: ClearFlags = 0x0040; +pub const ClearFlags_DiscardColor3: ClearFlags = 0x0040; /// Discard frame buffer attachment 4. -pub const ClearFlags_DiscardColor4: ClearFlags = 0x0080; +pub const ClearFlags_DiscardColor4: ClearFlags = 0x0080; /// Discard frame buffer attachment 5. -pub const ClearFlags_DiscardColor5: ClearFlags = 0x0100; +pub const ClearFlags_DiscardColor5: ClearFlags = 0x0100; /// Discard frame buffer attachment 6. -pub const ClearFlags_DiscardColor6: ClearFlags = 0x0200; +pub const ClearFlags_DiscardColor6: ClearFlags = 0x0200; /// Discard frame buffer attachment 7. -pub const ClearFlags_DiscardColor7: ClearFlags = 0x0400; +pub const ClearFlags_DiscardColor7: ClearFlags = 0x0400; /// Discard frame buffer depth attachment. -pub const ClearFlags_DiscardDepth: ClearFlags = 0x0800; +pub const ClearFlags_DiscardDepth: ClearFlags = 0x0800; /// Discard frame buffer stencil attachment. -pub const ClearFlags_DiscardStencil: ClearFlags = 0x1000; -pub const ClearFlags_DiscardColorMask: ClearFlags = 0x07f8; -pub const ClearFlags_DiscardMask: ClearFlags = 0x1ff8; +pub const ClearFlags_DiscardStencil: ClearFlags = 0x1000; +pub const ClearFlags_DiscardColorMask: ClearFlags = 0x07f8; +pub const ClearFlags_DiscardMask: ClearFlags = 0x1ff8; pub const DiscardFlags = u32; /// Preserve everything. -pub const DiscardFlags_None: DiscardFlags = 0x00000000; +pub const DiscardFlags_None: DiscardFlags = 0x00000000; /// Discard texture sampler and buffer bindings. -pub const DiscardFlags_Bindings: DiscardFlags = 0x00000001; +pub const DiscardFlags_Bindings: DiscardFlags = 0x00000001; /// Discard index buffer. -pub const DiscardFlags_IndexBuffer: DiscardFlags = 0x00000002; +pub const DiscardFlags_IndexBuffer: DiscardFlags = 0x00000002; /// Discard instance data. -pub const DiscardFlags_InstanceData: DiscardFlags = 0x00000004; +pub const DiscardFlags_InstanceData: DiscardFlags = 0x00000004; /// Discard state and uniform bindings. -pub const DiscardFlags_State: DiscardFlags = 0x00000008; +pub const DiscardFlags_State: DiscardFlags = 0x00000008; /// Discard transform. -pub const DiscardFlags_Transform: DiscardFlags = 0x00000010; +pub const DiscardFlags_Transform: DiscardFlags = 0x00000010; /// Discard vertex streams. -pub const DiscardFlags_VertexStreams: DiscardFlags = 0x00000020; +pub const DiscardFlags_VertexStreams: DiscardFlags = 0x00000020; /// Discard all states. -pub const DiscardFlags_All: DiscardFlags = 0x000000ff; +pub const DiscardFlags_All: DiscardFlags = 0x000000ff; pub const DebugFlags = u32; /// No debug. -pub const DebugFlags_None: DebugFlags = 0x00000000; +pub const DebugFlags_None: DebugFlags = 0x00000000; /// Enable wireframe for all primitives. -pub const DebugFlags_Wireframe: DebugFlags = 0x00000001; +pub const DebugFlags_Wireframe: DebugFlags = 0x00000001; /// Enable infinitely fast hardware test. No draw calls will be submitted to driver. /// It's useful when profiling to quickly assess bottleneck between CPU and GPU. -pub const DebugFlags_Ifh: DebugFlags = 0x00000002; +pub const DebugFlags_Ifh: DebugFlags = 0x00000002; /// Enable statistics display. -pub const DebugFlags_Stats: DebugFlags = 0x00000004; +pub const DebugFlags_Stats: DebugFlags = 0x00000004; /// Enable debug text display. -pub const DebugFlags_Text: DebugFlags = 0x00000008; +pub const DebugFlags_Text: DebugFlags = 0x00000008; /// Enable profiler. This causes per-view statistics to be collected, available through `bgfx::Stats::ViewStats`. This is unrelated to the profiler functions in `bgfx::CallbackI`. -pub const DebugFlags_Profiler: DebugFlags = 0x00000010; +pub const DebugFlags_Profiler: DebugFlags = 0x00000010; pub const BufferFlags = u16; /// 1 x 8-bit value -pub const BufferFlags_ComputeFormat8x1: BufferFlags = 0x0001; +pub const BufferFlags_ComputeFormat8x1: BufferFlags = 0x0001; /// 2 x 8-bit values -pub const BufferFlags_ComputeFormat8x2: BufferFlags = 0x0002; +pub const BufferFlags_ComputeFormat8x2: BufferFlags = 0x0002; /// 4 x 8-bit values -pub const BufferFlags_ComputeFormat8x4: BufferFlags = 0x0003; +pub const BufferFlags_ComputeFormat8x4: BufferFlags = 0x0003; /// 1 x 16-bit value -pub const BufferFlags_ComputeFormat16x1: BufferFlags = 0x0004; +pub const BufferFlags_ComputeFormat16x1: BufferFlags = 0x0004; /// 2 x 16-bit values -pub const BufferFlags_ComputeFormat16x2: BufferFlags = 0x0005; +pub const BufferFlags_ComputeFormat16x2: BufferFlags = 0x0005; /// 4 x 16-bit values -pub const BufferFlags_ComputeFormat16x4: BufferFlags = 0x0006; +pub const BufferFlags_ComputeFormat16x4: BufferFlags = 0x0006; /// 1 x 32-bit value -pub const BufferFlags_ComputeFormat32x1: BufferFlags = 0x0007; +pub const BufferFlags_ComputeFormat32x1: BufferFlags = 0x0007; /// 2 x 32-bit values -pub const BufferFlags_ComputeFormat32x2: BufferFlags = 0x0008; +pub const BufferFlags_ComputeFormat32x2: BufferFlags = 0x0008; /// 4 x 32-bit values -pub const BufferFlags_ComputeFormat32x4: BufferFlags = 0x0009; -pub const BufferFlags_ComputeFormatShift: BufferFlags = 0; -pub const BufferFlags_ComputeFormatMask: BufferFlags = 0x000f; +pub const BufferFlags_ComputeFormat32x4: BufferFlags = 0x0009; +pub const BufferFlags_ComputeFormatShift: BufferFlags = 0; +pub const BufferFlags_ComputeFormatMask: BufferFlags = 0x000f; /// Type `int`. -pub const BufferFlags_ComputeTypeInt: BufferFlags = 0x0010; +pub const BufferFlags_ComputeTypeInt: BufferFlags = 0x0010; /// Type `uint`. -pub const BufferFlags_ComputeTypeUint: BufferFlags = 0x0020; +pub const BufferFlags_ComputeTypeUint: BufferFlags = 0x0020; /// Type `float`. -pub const BufferFlags_ComputeTypeFloat: BufferFlags = 0x0030; -pub const BufferFlags_ComputeTypeShift: BufferFlags = 4; -pub const BufferFlags_ComputeTypeMask: BufferFlags = 0x0030; -pub const BufferFlags_None: BufferFlags = 0x0000; +pub const BufferFlags_ComputeTypeFloat: BufferFlags = 0x0030; +pub const BufferFlags_ComputeTypeShift: BufferFlags = 4; +pub const BufferFlags_ComputeTypeMask: BufferFlags = 0x0030; +pub const BufferFlags_None: BufferFlags = 0x0000; /// Buffer will be read by shader. -pub const BufferFlags_ComputeRead: BufferFlags = 0x0100; +pub const BufferFlags_ComputeRead: BufferFlags = 0x0100; /// Buffer will be used for writing. -pub const BufferFlags_ComputeWrite: BufferFlags = 0x0200; +pub const BufferFlags_ComputeWrite: BufferFlags = 0x0200; /// Buffer will be used for storing draw indirect commands. -pub const BufferFlags_DrawIndirect: BufferFlags = 0x0400; +pub const BufferFlags_DrawIndirect: BufferFlags = 0x0400; /// Allow dynamic index/vertex buffer resize during update. -pub const BufferFlags_AllowResize: BufferFlags = 0x0800; +pub const BufferFlags_AllowResize: BufferFlags = 0x0800; /// Index buffer contains 32-bit indices. -pub const BufferFlags_Index32: BufferFlags = 0x1000; -pub const BufferFlags_ComputeReadWrite: BufferFlags = 0x0300; +pub const BufferFlags_Index32: BufferFlags = 0x1000; +pub const BufferFlags_ComputeReadWrite: BufferFlags = 0x0300; pub const TextureFlags = u64; -pub const TextureFlags_None: TextureFlags = 0x0000000000000000; +pub const TextureFlags_None: TextureFlags = 0x0000000000000000; /// Texture will be used for MSAA sampling. -pub const TextureFlags_MsaaSample: TextureFlags = 0x0000000800000000; +pub const TextureFlags_MsaaSample: TextureFlags = 0x0000000800000000; /// Render target no MSAA. -pub const TextureFlags_Rt: TextureFlags = 0x0000001000000000; +pub const TextureFlags_Rt: TextureFlags = 0x0000001000000000; /// Texture will be used for compute write. -pub const TextureFlags_ComputeWrite: TextureFlags = 0x0000100000000000; +pub const TextureFlags_ComputeWrite: TextureFlags = 0x0000100000000000; /// Sample texture as sRGB. -pub const TextureFlags_Srgb: TextureFlags = 0x0000200000000000; +pub const TextureFlags_Srgb: TextureFlags = 0x0000200000000000; /// Texture will be used as blit destination. -pub const TextureFlags_BlitDst: TextureFlags = 0x0000400000000000; +pub const TextureFlags_BlitDst: TextureFlags = 0x0000400000000000; /// Texture will be used for read back from GPU. -pub const TextureFlags_ReadBack: TextureFlags = 0x0000800000000000; +pub const TextureFlags_ReadBack: TextureFlags = 0x0000800000000000; /// Render target MSAAx2 mode. -pub const TextureFlags_RtMsaaX2: TextureFlags = 0x0000002000000000; +pub const TextureFlags_RtMsaaX2: TextureFlags = 0x0000002000000000; /// Render target MSAAx4 mode. -pub const TextureFlags_RtMsaaX4: TextureFlags = 0x0000003000000000; +pub const TextureFlags_RtMsaaX4: TextureFlags = 0x0000003000000000; /// Render target MSAAx8 mode. -pub const TextureFlags_RtMsaaX8: TextureFlags = 0x0000004000000000; +pub const TextureFlags_RtMsaaX8: TextureFlags = 0x0000004000000000; /// Render target MSAAx16 mode. -pub const TextureFlags_RtMsaaX16: TextureFlags = 0x0000005000000000; -pub const TextureFlags_RtMsaaShift: TextureFlags = 36; -pub const TextureFlags_RtMsaaMask: TextureFlags = 0x0000007000000000; +pub const TextureFlags_RtMsaaX16: TextureFlags = 0x0000005000000000; +pub const TextureFlags_RtMsaaShift: TextureFlags = 36; +pub const TextureFlags_RtMsaaMask: TextureFlags = 0x0000007000000000; /// Render target will be used for writing -pub const TextureFlags_RtWriteOnly: TextureFlags = 0x0000008000000000; -pub const TextureFlags_RtShift: TextureFlags = 36; -pub const TextureFlags_RtMask: TextureFlags = 0x000000f000000000; +pub const TextureFlags_RtWriteOnly: TextureFlags = 0x0000008000000000; +pub const TextureFlags_RtShift: TextureFlags = 36; +pub const TextureFlags_RtMask: TextureFlags = 0x000000f000000000; pub const SamplerFlags = u32; /// Wrap U mode: Mirror -pub const SamplerFlags_UMirror: SamplerFlags = 0x00000001; +pub const SamplerFlags_UMirror: SamplerFlags = 0x00000001; /// Wrap U mode: Clamp -pub const SamplerFlags_UClamp: SamplerFlags = 0x00000002; +pub const SamplerFlags_UClamp: SamplerFlags = 0x00000002; /// Wrap U mode: Border -pub const SamplerFlags_UBorder: SamplerFlags = 0x00000003; -pub const SamplerFlags_UShift: SamplerFlags = 0; -pub const SamplerFlags_UMask: SamplerFlags = 0x00000003; +pub const SamplerFlags_UBorder: SamplerFlags = 0x00000003; +pub const SamplerFlags_UShift: SamplerFlags = 0; +pub const SamplerFlags_UMask: SamplerFlags = 0x00000003; /// Wrap V mode: Mirror -pub const SamplerFlags_VMirror: SamplerFlags = 0x00000004; +pub const SamplerFlags_VMirror: SamplerFlags = 0x00000004; /// Wrap V mode: Clamp -pub const SamplerFlags_VClamp: SamplerFlags = 0x00000008; +pub const SamplerFlags_VClamp: SamplerFlags = 0x00000008; /// Wrap V mode: Border -pub const SamplerFlags_VBorder: SamplerFlags = 0x0000000c; -pub const SamplerFlags_VShift: SamplerFlags = 2; -pub const SamplerFlags_VMask: SamplerFlags = 0x0000000c; +pub const SamplerFlags_VBorder: SamplerFlags = 0x0000000c; +pub const SamplerFlags_VShift: SamplerFlags = 2; +pub const SamplerFlags_VMask: SamplerFlags = 0x0000000c; /// Wrap W mode: Mirror -pub const SamplerFlags_WMirror: SamplerFlags = 0x00000010; +pub const SamplerFlags_WMirror: SamplerFlags = 0x00000010; /// Wrap W mode: Clamp -pub const SamplerFlags_WClamp: SamplerFlags = 0x00000020; +pub const SamplerFlags_WClamp: SamplerFlags = 0x00000020; /// Wrap W mode: Border -pub const SamplerFlags_WBorder: SamplerFlags = 0x00000030; -pub const SamplerFlags_WShift: SamplerFlags = 4; -pub const SamplerFlags_WMask: SamplerFlags = 0x00000030; +pub const SamplerFlags_WBorder: SamplerFlags = 0x00000030; +pub const SamplerFlags_WShift: SamplerFlags = 4; +pub const SamplerFlags_WMask: SamplerFlags = 0x00000030; /// Min sampling mode: Point -pub const SamplerFlags_MinPoint: SamplerFlags = 0x00000040; +pub const SamplerFlags_MinPoint: SamplerFlags = 0x00000040; /// Min sampling mode: Anisotropic -pub const SamplerFlags_MinAnisotropic: SamplerFlags = 0x00000080; -pub const SamplerFlags_MinShift: SamplerFlags = 6; -pub const SamplerFlags_MinMask: SamplerFlags = 0x000000c0; +pub const SamplerFlags_MinAnisotropic: SamplerFlags = 0x00000080; +pub const SamplerFlags_MinShift: SamplerFlags = 6; +pub const SamplerFlags_MinMask: SamplerFlags = 0x000000c0; /// Mag sampling mode: Point -pub const SamplerFlags_MagPoint: SamplerFlags = 0x00000100; +pub const SamplerFlags_MagPoint: SamplerFlags = 0x00000100; /// Mag sampling mode: Anisotropic -pub const SamplerFlags_MagAnisotropic: SamplerFlags = 0x00000200; -pub const SamplerFlags_MagShift: SamplerFlags = 8; -pub const SamplerFlags_MagMask: SamplerFlags = 0x00000300; +pub const SamplerFlags_MagAnisotropic: SamplerFlags = 0x00000200; +pub const SamplerFlags_MagShift: SamplerFlags = 8; +pub const SamplerFlags_MagMask: SamplerFlags = 0x00000300; /// Mip sampling mode: Point -pub const SamplerFlags_MipPoint: SamplerFlags = 0x00000400; -pub const SamplerFlags_MipShift: SamplerFlags = 10; -pub const SamplerFlags_MipMask: SamplerFlags = 0x00000400; +pub const SamplerFlags_MipPoint: SamplerFlags = 0x00000400; +pub const SamplerFlags_MipShift: SamplerFlags = 10; +pub const SamplerFlags_MipMask: SamplerFlags = 0x00000400; /// Compare when sampling depth texture: less. -pub const SamplerFlags_CompareLess: SamplerFlags = 0x00010000; +pub const SamplerFlags_CompareLess: SamplerFlags = 0x00010000; /// Compare when sampling depth texture: less or equal. -pub const SamplerFlags_CompareLequal: SamplerFlags = 0x00020000; +pub const SamplerFlags_CompareLequal: SamplerFlags = 0x00020000; /// Compare when sampling depth texture: equal. -pub const SamplerFlags_CompareEqual: SamplerFlags = 0x00030000; +pub const SamplerFlags_CompareEqual: SamplerFlags = 0x00030000; /// Compare when sampling depth texture: greater or equal. -pub const SamplerFlags_CompareGequal: SamplerFlags = 0x00040000; +pub const SamplerFlags_CompareGequal: SamplerFlags = 0x00040000; /// Compare when sampling depth texture: greater. -pub const SamplerFlags_CompareGreater: SamplerFlags = 0x00050000; +pub const SamplerFlags_CompareGreater: SamplerFlags = 0x00050000; /// Compare when sampling depth texture: not equal. -pub const SamplerFlags_CompareNotequal: SamplerFlags = 0x00060000; +pub const SamplerFlags_CompareNotequal: SamplerFlags = 0x00060000; /// Compare when sampling depth texture: never. -pub const SamplerFlags_CompareNever: SamplerFlags = 0x00070000; +pub const SamplerFlags_CompareNever: SamplerFlags = 0x00070000; /// Compare when sampling depth texture: always. -pub const SamplerFlags_CompareAlways: SamplerFlags = 0x00080000; -pub const SamplerFlags_CompareShift: SamplerFlags = 16; -pub const SamplerFlags_CompareMask: SamplerFlags = 0x000f0000; -pub const SamplerFlags_BorderColorShift: SamplerFlags = 24; -pub const SamplerFlags_BorderColorMask: SamplerFlags = 0x0f000000; -pub const SamplerFlags_ReservedShift: SamplerFlags = 28; -pub const SamplerFlags_ReservedMask: SamplerFlags = 0xf0000000; -pub const SamplerFlags_None: SamplerFlags = 0x00000000; +pub const SamplerFlags_CompareAlways: SamplerFlags = 0x00080000; +pub const SamplerFlags_CompareShift: SamplerFlags = 16; +pub const SamplerFlags_CompareMask: SamplerFlags = 0x000f0000; +pub const SamplerFlags_BorderColorShift: SamplerFlags = 24; +pub const SamplerFlags_BorderColorMask: SamplerFlags = 0x0f000000; +pub const SamplerFlags_ReservedShift: SamplerFlags = 28; +pub const SamplerFlags_ReservedMask: SamplerFlags = 0xf0000000; +pub const SamplerFlags_None: SamplerFlags = 0x00000000; /// Sample stencil instead of depth. -pub const SamplerFlags_SampleStencil: SamplerFlags = 0x00100000; -pub const SamplerFlags_Point: SamplerFlags = 0x00000540; -pub const SamplerFlags_UvwMirror: SamplerFlags = 0x00000015; -pub const SamplerFlags_UvwClamp: SamplerFlags = 0x0000002a; -pub const SamplerFlags_UvwBorder: SamplerFlags = 0x0000003f; -pub const SamplerFlags_BitsMask: SamplerFlags = 0x000f07ff; +pub const SamplerFlags_SampleStencil: SamplerFlags = 0x00100000; +pub const SamplerFlags_Point: SamplerFlags = 0x00000540; +pub const SamplerFlags_UvwMirror: SamplerFlags = 0x00000015; +pub const SamplerFlags_UvwClamp: SamplerFlags = 0x0000002a; +pub const SamplerFlags_UvwBorder: SamplerFlags = 0x0000003f; +pub const SamplerFlags_BitsMask: SamplerFlags = 0x000f07ff; pub const ResetFlags = u32; /// Enable 2x MSAA. -pub const ResetFlags_MsaaX2: ResetFlags = 0x00000010; +pub const ResetFlags_MsaaX2: ResetFlags = 0x00000010; /// Enable 4x MSAA. -pub const ResetFlags_MsaaX4: ResetFlags = 0x00000020; +pub const ResetFlags_MsaaX4: ResetFlags = 0x00000020; /// Enable 8x MSAA. -pub const ResetFlags_MsaaX8: ResetFlags = 0x00000030; +pub const ResetFlags_MsaaX8: ResetFlags = 0x00000030; /// Enable 16x MSAA. -pub const ResetFlags_MsaaX16: ResetFlags = 0x00000040; -pub const ResetFlags_MsaaShift: ResetFlags = 4; -pub const ResetFlags_MsaaMask: ResetFlags = 0x00000070; +pub const ResetFlags_MsaaX16: ResetFlags = 0x00000040; +pub const ResetFlags_MsaaShift: ResetFlags = 4; +pub const ResetFlags_MsaaMask: ResetFlags = 0x00000070; /// No reset flags. -pub const ResetFlags_None: ResetFlags = 0x00000000; +pub const ResetFlags_None: ResetFlags = 0x00000000; /// Not supported yet. -pub const ResetFlags_Fullscreen: ResetFlags = 0x00000001; +pub const ResetFlags_Fullscreen: ResetFlags = 0x00000001; /// Enable V-Sync. -pub const ResetFlags_Vsync: ResetFlags = 0x00000080; +pub const ResetFlags_Vsync: ResetFlags = 0x00000080; /// Turn on/off max anisotropy. -pub const ResetFlags_Maxanisotropy: ResetFlags = 0x00000100; +pub const ResetFlags_Maxanisotropy: ResetFlags = 0x00000100; /// Begin screen capture. -pub const ResetFlags_Capture: ResetFlags = 0x00000200; +pub const ResetFlags_Capture: ResetFlags = 0x00000200; /// Flush rendering after submitting to GPU. -pub const ResetFlags_FlushAfterRender: ResetFlags = 0x00002000; +pub const ResetFlags_FlushAfterRender: ResetFlags = 0x00002000; /// This flag specifies where flip occurs. Default behaviour is that flip occurs /// before rendering new frame. This flag only has effect when `BGFX_CONFIG_MULTITHREADED=0`. -pub const ResetFlags_FlipAfterRender: ResetFlags = 0x00004000; +pub const ResetFlags_FlipAfterRender: ResetFlags = 0x00004000; /// Enable sRGB backbuffer. -pub const ResetFlags_SrgbBackbuffer: ResetFlags = 0x00008000; +pub const ResetFlags_SrgbBackbuffer: ResetFlags = 0x00008000; /// Enable HDR10 rendering. -pub const ResetFlags_Hdr10: ResetFlags = 0x00010000; +pub const ResetFlags_Hdr10: ResetFlags = 0x00010000; /// Enable HiDPI rendering. -pub const ResetFlags_Hidpi: ResetFlags = 0x00020000; +pub const ResetFlags_Hidpi: ResetFlags = 0x00020000; /// Enable depth clamp. -pub const ResetFlags_DepthClamp: ResetFlags = 0x00040000; +pub const ResetFlags_DepthClamp: ResetFlags = 0x00040000; /// Suspend rendering. -pub const ResetFlags_Suspend: ResetFlags = 0x00080000; +pub const ResetFlags_Suspend: ResetFlags = 0x00080000; /// Transparent backbuffer. Availability depends on: `BGFX_CAPS_TRANSPARENT_BACKBUFFER`. -pub const ResetFlags_TransparentBackbuffer: ResetFlags = 0x00100000; -pub const ResetFlags_FullscreenShift: ResetFlags = 0; -pub const ResetFlags_FullscreenMask: ResetFlags = 0x00000001; -pub const ResetFlags_ReservedShift: ResetFlags = 31; -pub const ResetFlags_ReservedMask: ResetFlags = 0x80000000; +pub const ResetFlags_TransparentBackbuffer: ResetFlags = 0x00100000; +pub const ResetFlags_FullscreenShift: ResetFlags = 0; +pub const ResetFlags_FullscreenMask: ResetFlags = 0x00000001; +pub const ResetFlags_ReservedShift: ResetFlags = 31; +pub const ResetFlags_ReservedMask: ResetFlags = 0x80000000; pub const CapsFlags = u64; /// Alpha to coverage is supported. -pub const CapsFlags_AlphaToCoverage: CapsFlags = 0x0000000000000001; +pub const CapsFlags_AlphaToCoverage: CapsFlags = 0x0000000000000001; /// Blend independent is supported. -pub const CapsFlags_BlendIndependent: CapsFlags = 0x0000000000000002; +pub const CapsFlags_BlendIndependent: CapsFlags = 0x0000000000000002; /// Compute shaders are supported. -pub const CapsFlags_Compute: CapsFlags = 0x0000000000000004; +pub const CapsFlags_Compute: CapsFlags = 0x0000000000000004; /// Conservative rasterization is supported. -pub const CapsFlags_ConservativeRaster: CapsFlags = 0x0000000000000008; +pub const CapsFlags_ConservativeRaster: CapsFlags = 0x0000000000000008; /// Draw indirect is supported. -pub const CapsFlags_DrawIndirect: CapsFlags = 0x0000000000000010; +pub const CapsFlags_DrawIndirect: CapsFlags = 0x0000000000000010; /// Draw indirect with indirect count is supported. -pub const CapsFlags_DrawIndirectCount: CapsFlags = 0x0000000000000020; +pub const CapsFlags_DrawIndirectCount: CapsFlags = 0x0000000000000020; /// Fragment depth is available in fragment shader. -pub const CapsFlags_FragmentDepth: CapsFlags = 0x0000000000000040; +pub const CapsFlags_FragmentDepth: CapsFlags = 0x0000000000000040; /// Fragment ordering is available in fragment shader. -pub const CapsFlags_FragmentOrdering: CapsFlags = 0x0000000000000080; +pub const CapsFlags_FragmentOrdering: CapsFlags = 0x0000000000000080; /// Graphics debugger is present. -pub const CapsFlags_GraphicsDebugger: CapsFlags = 0x0000000000000100; +pub const CapsFlags_GraphicsDebugger: CapsFlags = 0x0000000000000100; /// HDR10 rendering is supported. -pub const CapsFlags_Hdr10: CapsFlags = 0x0000000000000200; +pub const CapsFlags_Hdr10: CapsFlags = 0x0000000000000200; /// HiDPI rendering is supported. -pub const CapsFlags_Hidpi: CapsFlags = 0x0000000000000400; +pub const CapsFlags_Hidpi: CapsFlags = 0x0000000000000400; /// Image Read/Write is supported. -pub const CapsFlags_ImageRw: CapsFlags = 0x0000000000000800; +pub const CapsFlags_ImageRw: CapsFlags = 0x0000000000000800; /// 32-bit indices are supported. -pub const CapsFlags_Index32: CapsFlags = 0x0000000000001000; +pub const CapsFlags_Index32: CapsFlags = 0x0000000000001000; /// Instancing is supported. -pub const CapsFlags_Instancing: CapsFlags = 0x0000000000002000; +pub const CapsFlags_Instancing: CapsFlags = 0x0000000000002000; /// Occlusion query is supported. -pub const CapsFlags_OcclusionQuery: CapsFlags = 0x0000000000004000; +pub const CapsFlags_OcclusionQuery: CapsFlags = 0x0000000000004000; /// PrimitiveID is available in fragment shader. -pub const CapsFlags_PrimitiveId: CapsFlags = 0x0000000000008000; +pub const CapsFlags_PrimitiveId: CapsFlags = 0x0000000000008000; /// Renderer is on separate thread. -pub const CapsFlags_RendererMultithreaded: CapsFlags = 0x0000000000010000; +pub const CapsFlags_RendererMultithreaded: CapsFlags = 0x0000000000010000; /// Multiple windows are supported. -pub const CapsFlags_SwapChain: CapsFlags = 0x0000000000020000; +pub const CapsFlags_SwapChain: CapsFlags = 0x0000000000020000; /// Texture blit is supported. -pub const CapsFlags_TextureBlit: CapsFlags = 0x0000000000040000; +pub const CapsFlags_TextureBlit: CapsFlags = 0x0000000000040000; /// Texture compare less equal mode is supported. -pub const CapsFlags_TextureCompareLequal: CapsFlags = 0x0000000000080000; +pub const CapsFlags_TextureCompareLequal: CapsFlags = 0x0000000000080000; pub const CapsFlags_TextureCompareReserved: CapsFlags = 0x0000000000100000; /// Cubemap texture array is supported. -pub const CapsFlags_TextureCubeArray: CapsFlags = 0x0000000000200000; +pub const CapsFlags_TextureCubeArray: CapsFlags = 0x0000000000200000; /// CPU direct access to GPU texture memory. -pub const CapsFlags_TextureDirectAccess: CapsFlags = 0x0000000000400000; +pub const CapsFlags_TextureDirectAccess: CapsFlags = 0x0000000000400000; /// Read-back texture is supported. -pub const CapsFlags_TextureReadBack: CapsFlags = 0x0000000000800000; +pub const CapsFlags_TextureReadBack: CapsFlags = 0x0000000000800000; /// 2D texture array is supported. -pub const CapsFlags_Texture2DArray: CapsFlags = 0x0000000001000000; +pub const CapsFlags_Texture2DArray: CapsFlags = 0x0000000001000000; /// 3D textures are supported. -pub const CapsFlags_Texture3D: CapsFlags = 0x0000000002000000; +pub const CapsFlags_Texture3D: CapsFlags = 0x0000000002000000; /// Transparent back buffer supported. -pub const CapsFlags_TransparentBackbuffer: CapsFlags = 0x0000000004000000; +pub const CapsFlags_TransparentBackbuffer: CapsFlags = 0x0000000004000000; /// Variable Rate Shading -pub const CapsFlags_VariableRateShading: CapsFlags = 0x0000000008000000; +pub const CapsFlags_VariableRateShading: CapsFlags = 0x0000000008000000; /// Vertex attribute half-float is supported. -pub const CapsFlags_VertexAttribHalf: CapsFlags = 0x0000000010000000; +pub const CapsFlags_VertexAttribHalf: CapsFlags = 0x0000000010000000; /// Vertex attribute 10_10_10_2 is supported. -pub const CapsFlags_VertexAttribUint10: CapsFlags = 0x0000000020000000; +pub const CapsFlags_VertexAttribUint10: CapsFlags = 0x0000000020000000; /// Rendering with VertexID only is supported. -pub const CapsFlags_VertexId: CapsFlags = 0x0000000040000000; +pub const CapsFlags_VertexId: CapsFlags = 0x0000000040000000; /// Viewport layer is available in vertex shader. -pub const CapsFlags_ViewportLayerArray: CapsFlags = 0x0000000080000000; +pub const CapsFlags_ViewportLayerArray: CapsFlags = 0x0000000080000000; /// All texture compare modes are supported. -pub const CapsFlags_TextureCompareAll: CapsFlags = 0x0000000000180000; +pub const CapsFlags_TextureCompareAll: CapsFlags = 0x0000000000180000; pub const CapsFormatFlags = u32; /// Texture format is not supported. -pub const CapsFormatFlags_TextureNone: CapsFormatFlags = 0x00000000; +pub const CapsFormatFlags_TextureNone: CapsFormatFlags = 0x00000000; /// Texture format is supported. -pub const CapsFormatFlags_Texture2D: CapsFormatFlags = 0x00000001; +pub const CapsFormatFlags_Texture2D: CapsFormatFlags = 0x00000001; /// Texture as sRGB format is supported. -pub const CapsFormatFlags_Texture2DSrgb: CapsFormatFlags = 0x00000002; +pub const CapsFormatFlags_Texture2DSrgb: CapsFormatFlags = 0x00000002; /// Texture format is emulated. -pub const CapsFormatFlags_Texture2DEmulated: CapsFormatFlags = 0x00000004; +pub const CapsFormatFlags_Texture2DEmulated: CapsFormatFlags = 0x00000004; /// Texture format is supported. -pub const CapsFormatFlags_Texture3D: CapsFormatFlags = 0x00000008; +pub const CapsFormatFlags_Texture3D: CapsFormatFlags = 0x00000008; /// Texture as sRGB format is supported. -pub const CapsFormatFlags_Texture3DSrgb: CapsFormatFlags = 0x00000010; +pub const CapsFormatFlags_Texture3DSrgb: CapsFormatFlags = 0x00000010; /// Texture format is emulated. -pub const CapsFormatFlags_Texture3DEmulated: CapsFormatFlags = 0x00000020; +pub const CapsFormatFlags_Texture3DEmulated: CapsFormatFlags = 0x00000020; /// Texture format is supported. -pub const CapsFormatFlags_TextureCube: CapsFormatFlags = 0x00000040; +pub const CapsFormatFlags_TextureCube: CapsFormatFlags = 0x00000040; /// Texture as sRGB format is supported. -pub const CapsFormatFlags_TextureCubeSrgb: CapsFormatFlags = 0x00000080; +pub const CapsFormatFlags_TextureCubeSrgb: CapsFormatFlags = 0x00000080; /// Texture format is emulated. -pub const CapsFormatFlags_TextureCubeEmulated: CapsFormatFlags = 0x00000100; +pub const CapsFormatFlags_TextureCubeEmulated: CapsFormatFlags = 0x00000100; /// Texture format can be used from vertex shader. -pub const CapsFormatFlags_TextureVertex: CapsFormatFlags = 0x00000200; +pub const CapsFormatFlags_TextureVertex: CapsFormatFlags = 0x00000200; /// Texture format can be used as image and read from. -pub const CapsFormatFlags_TextureImageRead: CapsFormatFlags = 0x00000400; +pub const CapsFormatFlags_TextureImageRead: CapsFormatFlags = 0x00000400; /// Texture format can be used as image and written to. -pub const CapsFormatFlags_TextureImageWrite: CapsFormatFlags = 0x00000800; +pub const CapsFormatFlags_TextureImageWrite: CapsFormatFlags = 0x00000800; /// Texture format can be used as frame buffer. -pub const CapsFormatFlags_TextureFramebuffer: CapsFormatFlags = 0x00001000; +pub const CapsFormatFlags_TextureFramebuffer: CapsFormatFlags = 0x00001000; /// Texture format can be used as MSAA frame buffer. pub const CapsFormatFlags_TextureFramebufferMsaa: CapsFormatFlags = 0x00002000; /// Texture can be sampled as MSAA. -pub const CapsFormatFlags_TextureMsaa: CapsFormatFlags = 0x00004000; +pub const CapsFormatFlags_TextureMsaa: CapsFormatFlags = 0x00004000; /// Texture format supports auto-generated mips. -pub const CapsFormatFlags_TextureMipAutogen: CapsFormatFlags = 0x00008000; +pub const CapsFormatFlags_TextureMipAutogen: CapsFormatFlags = 0x00008000; pub const ResolveFlags = u32; /// No resolve flags. -pub const ResolveFlags_None: ResolveFlags = 0x00000000; +pub const ResolveFlags_None: ResolveFlags = 0x00000000; /// Auto-generate mip maps on resolve. -pub const ResolveFlags_AutoGenMips: ResolveFlags = 0x00000001; +pub const ResolveFlags_AutoGenMips: ResolveFlags = 0x00000001; pub const PciIdFlags = u16; /// Autoselect adapter. -pub const PciIdFlags_None: PciIdFlags = 0x0000; +pub const PciIdFlags_None: PciIdFlags = 0x0000; /// Software rasterizer. -pub const PciIdFlags_SoftwareRasterizer: PciIdFlags = 0x0001; +pub const PciIdFlags_SoftwareRasterizer: PciIdFlags = 0x0001; /// AMD adapter. -pub const PciIdFlags_Amd: PciIdFlags = 0x1002; +pub const PciIdFlags_Amd: PciIdFlags = 0x1002; /// Apple adapter. -pub const PciIdFlags_Apple: PciIdFlags = 0x106b; +pub const PciIdFlags_Apple: PciIdFlags = 0x106b; /// Intel adapter. -pub const PciIdFlags_Intel: PciIdFlags = 0x8086; +pub const PciIdFlags_Intel: PciIdFlags = 0x8086; /// nVidia adapter. -pub const PciIdFlags_Nvidia: PciIdFlags = 0x10de; +pub const PciIdFlags_Nvidia: PciIdFlags = 0x10de; /// Microsoft adapter. -pub const PciIdFlags_Microsoft: PciIdFlags = 0x1414; +pub const PciIdFlags_Microsoft: PciIdFlags = 0x1414; /// ARM adapter. -pub const PciIdFlags_Arm: PciIdFlags = 0x13b5; +pub const PciIdFlags_Arm: PciIdFlags = 0x13b5; pub const CubeMapFlags = u32; /// Cubemap +x. -pub const CubeMapFlags_PositiveX: CubeMapFlags = 0x00000000; +pub const CubeMapFlags_PositiveX: CubeMapFlags = 0x00000000; /// Cubemap -x. -pub const CubeMapFlags_NegativeX: CubeMapFlags = 0x00000001; +pub const CubeMapFlags_NegativeX: CubeMapFlags = 0x00000001; /// Cubemap +y. -pub const CubeMapFlags_PositiveY: CubeMapFlags = 0x00000002; +pub const CubeMapFlags_PositiveY: CubeMapFlags = 0x00000002; /// Cubemap -y. -pub const CubeMapFlags_NegativeY: CubeMapFlags = 0x00000003; +pub const CubeMapFlags_NegativeY: CubeMapFlags = 0x00000003; /// Cubemap +z. -pub const CubeMapFlags_PositiveZ: CubeMapFlags = 0x00000004; +pub const CubeMapFlags_PositiveZ: CubeMapFlags = 0x00000004; /// Cubemap -z. -pub const CubeMapFlags_NegativeZ: CubeMapFlags = 0x00000005; +pub const CubeMapFlags_NegativeZ: CubeMapFlags = 0x00000005; + +pub const Fatal = enum(c_int) { + DebugCheck, + InvalidShader, + UnableToInitialize, + UnableToCreateTexture, + DeviceLost, -pub const Fatal = enum(c_int) { DebugCheck, InvalidShader, UnableToInitialize, UnableToCreateTexture, DeviceLost, Count }; + Count +}; pub const RendererType = enum(c_int) { /// No rendering. @@ -857,7 +867,7 @@ pub const RendererType = enum(c_int) { /// Vulkan Vulkan, - Count, + Count }; pub const Access = enum(c_int) { @@ -870,7 +880,7 @@ pub const Access = enum(c_int) { /// Read and write. ReadWrite, - Count, + Count }; pub const Attrib = enum(c_int) { @@ -928,7 +938,7 @@ pub const Attrib = enum(c_int) { /// a_texcoord7 TexCoord7, - Count, + Count }; pub const AttribType = enum(c_int) { @@ -947,7 +957,7 @@ pub const AttribType = enum(c_int) { /// Float Float, - Count, + Count }; pub const TextureFormat = enum(c_int) { @@ -1131,7 +1141,7 @@ pub const TextureFormat = enum(c_int) { D32F, D0S8, - Count, + Count }; pub const UniformType = enum(c_int) { @@ -1150,7 +1160,7 @@ pub const UniformType = enum(c_int) { /// 4x4 matrix. Mat4, - Count, + Count }; pub const UniformFreq = enum(c_int) { @@ -1163,7 +1173,7 @@ pub const UniformFreq = enum(c_int) { /// Changing per frame. Frame, - Count, + Count }; pub const BackbufferRatio = enum(c_int) { @@ -1185,7 +1195,7 @@ pub const BackbufferRatio = enum(c_int) { /// Double size of backbuffer. Double, - Count, + Count }; pub const OcclusionQueryResult = enum(c_int) { @@ -1198,7 +1208,7 @@ pub const OcclusionQueryResult = enum(c_int) { /// Query result is not available yet. NoResult, - Count, + Count }; pub const Topology = enum(c_int) { @@ -1217,7 +1227,7 @@ pub const Topology = enum(c_int) { /// Point list. PointList, - Count, + Count }; pub const TopologyConvert = enum(c_int) { @@ -1236,10 +1246,25 @@ pub const TopologyConvert = enum(c_int) { /// Convert line strip to line list. LineStripToLineList, - Count, + Count }; -pub const TopologySort = enum(c_int) { DirectionFrontToBackMin, DirectionFrontToBackAvg, DirectionFrontToBackMax, DirectionBackToFrontMin, DirectionBackToFrontAvg, DirectionBackToFrontMax, DistanceFrontToBackMin, DistanceFrontToBackAvg, DistanceFrontToBackMax, DistanceBackToFrontMin, DistanceBackToFrontAvg, DistanceBackToFrontMax, Count }; +pub const TopologySort = enum(c_int) { + DirectionFrontToBackMin, + DirectionFrontToBackAvg, + DirectionFrontToBackMax, + DirectionBackToFrontMin, + DirectionBackToFrontAvg, + DirectionBackToFrontMax, + DistanceFrontToBackMin, + DistanceFrontToBackAvg, + DistanceFrontToBackMax, + DistanceBackToFrontMin, + DistanceBackToFrontAvg, + DistanceBackToFrontMax, + + Count +}; pub const ViewMode = enum(c_int) { /// Default sort order. @@ -1254,7 +1279,7 @@ pub const ViewMode = enum(c_int) { /// Sort draw call depth in descending order. DepthDescending, - Count, + Count }; pub const ShadingRate = enum(c_int) { @@ -1279,7 +1304,7 @@ pub const ShadingRate = enum(c_int) { /// 4x4 Rate4x4, - Count, + Count }; pub const NativeWindowHandleType = enum(c_int) { @@ -1289,7 +1314,7 @@ pub const NativeWindowHandleType = enum(c_int) { /// Wayland. Wayland, - Count, + Count }; pub const RenderFrame = enum(c_int) { @@ -1305,7 +1330,7 @@ pub const RenderFrame = enum(c_int) { /// Renderer context is getting destroyed. Exiting, - Count, + Count }; pub const Caps = extern struct { @@ -1342,42 +1367,42 @@ pub const Caps = extern struct { minUniformBufferSize: u32, }; - rendererType: RendererType, - supported: u64, - vendorId: u16, - deviceId: u16, - homogeneousDepth: bool, - originBottomLeft: bool, - numGPUs: u8, - gpu: [4]GPU, - limits: Limits, - formats: [100]u16, -}; + rendererType: RendererType, + supported: u64, + vendorId: u16, + deviceId: u16, + homogeneousDepth: bool, + originBottomLeft: bool, + numGPUs: u8, + gpu: [4]GPU, + limits: Limits, + formats: [100]u16, + }; -pub const InternalData = extern struct { - caps: [*c]const Caps, - context: ?*anyopaque, -}; + pub const InternalData = extern struct { + caps: [*c]const Caps, + context: ?*anyopaque, + }; -pub const PlatformData = extern struct { - ndt: ?*anyopaque, - nwh: ?*anyopaque, - context: ?*anyopaque, - backBuffer: ?*anyopaque, - backBufferDS: ?*anyopaque, - type: NativeWindowHandleType, -}; + pub const PlatformData = extern struct { + ndt: ?*anyopaque, + nwh: ?*anyopaque, + context: ?*anyopaque, + backBuffer: ?*anyopaque, + backBufferDS: ?*anyopaque, + type: NativeWindowHandleType, + }; -pub const Resolution = extern struct { - formatColor: TextureFormat, - formatDepthStencil: TextureFormat, - width: u32, - height: u32, - reset: u32, - numBackBuffers: u8, - maxFrameLatency: u8, - debugTextScale: u8, -}; + pub const Resolution = extern struct { + formatColor: TextureFormat, + formatDepthStencil: TextureFormat, + width: u32, + height: u32, + reset: u32, + numBackBuffers: u8, + maxFrameLatency: u8, + debugTextScale: u8, + }; pub const Init = extern struct { pub const Limits = extern struct { @@ -1388,524 +1413,524 @@ pub const Init = extern struct { minUniformBufferSize: u32, }; - type: RendererType, - vendorId: u16, - deviceId: u16, - capabilities: u64, - debug: bool, - profile: bool, - platformData: PlatformData, - resolution: Resolution, - limits: Limits, - callback: ?*anyopaque, - allocator: ?*anyopaque, -}; + type: RendererType, + vendorId: u16, + deviceId: u16, + capabilities: u64, + debug: bool, + profile: bool, + platformData: PlatformData, + resolution: Resolution, + limits: Limits, + callback: ?*anyopaque, + allocator: ?*anyopaque, + }; -pub const Memory = extern struct { - data: [*c]u8, - size: u32, -}; + pub const Memory = extern struct { + data: [*c]u8, + size: u32, + }; -pub const TransientIndexBuffer = extern struct { - data: [*c]u8, - size: u32, - startIndex: u32, - handle: IndexBufferHandle, - isIndex16: bool, -}; + pub const TransientIndexBuffer = extern struct { + data: [*c]u8, + size: u32, + startIndex: u32, + handle: IndexBufferHandle, + isIndex16: bool, + }; -pub const TransientVertexBuffer = extern struct { - data: [*c]u8, - size: u32, - startVertex: u32, - stride: u16, - handle: VertexBufferHandle, - layoutHandle: VertexLayoutHandle, -}; + pub const TransientVertexBuffer = extern struct { + data: [*c]u8, + size: u32, + startVertex: u32, + stride: u16, + handle: VertexBufferHandle, + layoutHandle: VertexLayoutHandle, + }; -pub const InstanceDataBuffer = extern struct { - data: [*c]u8, - size: u32, - offset: u32, - num: u32, - stride: u16, - handle: VertexBufferHandle, -}; + pub const InstanceDataBuffer = extern struct { + data: [*c]u8, + size: u32, + offset: u32, + num: u32, + stride: u16, + handle: VertexBufferHandle, + }; -pub const TextureInfo = extern struct { - format: TextureFormat, - storageSize: u32, - width: u16, - height: u16, - depth: u16, - numLayers: u16, - numMips: u8, - bitsPerPixel: u8, - cubeMap: bool, -}; + pub const TextureInfo = extern struct { + format: TextureFormat, + storageSize: u32, + width: u16, + height: u16, + depth: u16, + numLayers: u16, + numMips: u8, + bitsPerPixel: u8, + cubeMap: bool, + }; -pub const UniformInfo = extern struct { - name: [256]u8, - type: UniformType, - num: u16, -}; + pub const UniformInfo = extern struct { + name: [256]u8, + type: UniformType, + num: u16, + }; -pub const Attachment = extern struct { - access: Access, - handle: TextureHandle, - mip: u16, - layer: u16, - numLayers: u16, - resolve: u8, - /// Init attachment. - /// Render target texture handle. - /// Access. See `Access::Enum`. - /// Cubemap side or depth layer/slice to use. - /// Number of texture layer/slice(s) in array to use. - /// Mip level. - /// Resolve flags. See: `BGFX_RESOLVE_*` - pub inline fn init(self: *Attachment, _handle: TextureHandle, _access: Access, _layer: u16, _numLayers: u16, _mip: u16, _resolve: u8) void { - return bgfx_attachment_init(self, _handle, _access, _layer, _numLayers, _mip, _resolve); - } -}; + pub const Attachment = extern struct { + access: Access, + handle: TextureHandle, + mip: u16, + layer: u16, + numLayers: u16, + resolve: u8, + /// Init attachment. + /// Render target texture handle. + /// Access. See `Access::Enum`. + /// Cubemap side or depth layer/slice to use. + /// Number of texture layer/slice(s) in array to use. + /// Mip level. + /// Resolve flags. See: `BGFX_RESOLVE_*` + pub inline fn init(self: *Attachment, _handle: TextureHandle, _access: Access, _layer: u16, _numLayers: u16, _mip: u16, _resolve: u8) void { + return bgfx_attachment_init(self, _handle, _access, _layer, _numLayers, _mip, _resolve); + } + }; -pub const Transform = extern struct { - data: [*c]f32, - num: u16, -}; + pub const Transform = extern struct { + data: [*c]f32, + num: u16, + }; -pub const ViewStats = extern struct { - name: [256]u8, - view: ViewId, - cpuTimeBegin: i64, - cpuTimeEnd: i64, - gpuTimeBegin: i64, - gpuTimeEnd: i64, - gpuFrameNum: u32, -}; + pub const ViewStats = extern struct { + name: [256]u8, + view: ViewId, + cpuTimeBegin: i64, + cpuTimeEnd: i64, + gpuTimeBegin: i64, + gpuTimeEnd: i64, + gpuFrameNum: u32, + }; -pub const EncoderStats = extern struct { - cpuTimeBegin: i64, - cpuTimeEnd: i64, -}; + pub const EncoderStats = extern struct { + cpuTimeBegin: i64, + cpuTimeEnd: i64, + }; -pub const Stats = extern struct { - cpuTimeFrame: i64, - cpuTimeBegin: i64, - cpuTimeEnd: i64, - cpuTimerFreq: i64, - gpuTimeBegin: i64, - gpuTimeEnd: i64, - gpuTimerFreq: i64, - waitRender: i64, - waitSubmit: i64, - numDraw: u32, - numCompute: u32, - numBlit: u32, - maxGpuLatency: u32, - gpuFrameNum: u32, - numDynamicIndexBuffers: u16, - numDynamicVertexBuffers: u16, - numFrameBuffers: u16, - numIndexBuffers: u16, - numOcclusionQueries: u16, - numPrograms: u16, - numShaders: u16, - numTextures: u16, - numUniforms: u16, - numVertexBuffers: u16, - numVertexLayouts: u16, - textureMemoryUsed: i64, - rtMemoryUsed: i64, - transientVbUsed: i32, - transientIbUsed: i32, - numPrims: [5]u32, - gpuMemoryMax: i64, - gpuMemoryUsed: i64, - width: u16, - height: u16, - textWidth: u16, - textHeight: u16, - numViews: u16, - viewStats: [*c]ViewStats, - numEncoders: u8, - encoderStats: [*c]EncoderStats, -}; + pub const Stats = extern struct { + cpuTimeFrame: i64, + cpuTimeBegin: i64, + cpuTimeEnd: i64, + cpuTimerFreq: i64, + gpuTimeBegin: i64, + gpuTimeEnd: i64, + gpuTimerFreq: i64, + waitRender: i64, + waitSubmit: i64, + numDraw: u32, + numCompute: u32, + numBlit: u32, + maxGpuLatency: u32, + gpuFrameNum: u32, + numDynamicIndexBuffers: u16, + numDynamicVertexBuffers: u16, + numFrameBuffers: u16, + numIndexBuffers: u16, + numOcclusionQueries: u16, + numPrograms: u16, + numShaders: u16, + numTextures: u16, + numUniforms: u16, + numVertexBuffers: u16, + numVertexLayouts: u16, + textureMemoryUsed: i64, + rtMemoryUsed: i64, + transientVbUsed: i32, + transientIbUsed: i32, + numPrims: [5]u32, + gpuMemoryMax: i64, + gpuMemoryUsed: i64, + width: u16, + height: u16, + textWidth: u16, + textHeight: u16, + numViews: u16, + viewStats: [*c]ViewStats, + numEncoders: u8, + encoderStats: [*c]EncoderStats, + }; -pub const VertexLayout = extern struct { - hash: u32, - stride: u16, - offset: [18]u16, - attributes: [18]u16, - /// Start VertexLayout. - /// Renderer backend type. See: `bgfx::RendererType` - pub inline fn begin(self: *VertexLayout, _rendererType: RendererType) *VertexLayout { - return bgfx_vertex_layout_begin(self, _rendererType); - } - /// Add attribute to VertexLayout. - /// @remarks Must be called between begin/end. - /// Attribute semantics. See: `bgfx::Attrib` - /// Number of elements 1, 2, 3 or 4. - /// Element type. - /// When using fixed point AttribType (f.e. Uint8) value will be normalized for vertex shader usage. When normalized is set to true, AttribType::Uint8 value in range 0-255 will be in range 0.0-1.0 in vertex shader. - /// Packaging rule for vertexPack, vertexUnpack, and vertexConvert for AttribType::Uint8 and AttribType::Int16. Unpacking code must be implemented inside vertex shader. - pub inline fn add(self: *VertexLayout, _attrib: Attrib, _num: u8, _type: AttribType, _normalized: bool, _asInt: bool) *VertexLayout { - return bgfx_vertex_layout_add(self, _attrib, _num, _type, _normalized, _asInt); - } - /// Decode attribute. - /// Attribute semantics. See: `bgfx::Attrib` - /// Number of elements. - /// Element type. - /// Attribute is normalized. - /// Attribute is packed as int. - pub inline fn decode(self: *const VertexLayout, _attrib: Attrib, _num: [*c]u8, _type: [*c]AttribType, _normalized: [*c]bool, _asInt: [*c]bool) void { - return bgfx_vertex_layout_decode(self, _attrib, _num, _type, _normalized, _asInt); - } - /// Skip `_num` bytes in vertex stream. - /// Number of bytes to skip. - pub inline fn skip(self: *VertexLayout, _num: u8) *VertexLayout { - return bgfx_vertex_layout_skip(self, _num); - } - /// End VertexLayout. - pub inline fn end(self: *VertexLayout) void { - return bgfx_vertex_layout_end(self); - } -}; + pub const VertexLayout = extern struct { + hash: u32, + stride: u16, + offset: [18]u16, + attributes: [18]u16, + /// Start VertexLayout. + /// Renderer backend type. See: `bgfx::RendererType` + pub inline fn begin(self: *VertexLayout, _rendererType: RendererType) *VertexLayout { + return bgfx_vertex_layout_begin(self, _rendererType); + } + /// Add attribute to VertexLayout. + /// @remarks Must be called between begin/end. + /// Attribute semantics. See: `bgfx::Attrib` + /// Number of elements 1, 2, 3 or 4. + /// Element type. + /// When using fixed point AttribType (f.e. Uint8) value will be normalized for vertex shader usage. When normalized is set to true, AttribType::Uint8 value in range 0-255 will be in range 0.0-1.0 in vertex shader. + /// Packaging rule for vertexPack, vertexUnpack, and vertexConvert for AttribType::Uint8 and AttribType::Int16. Unpacking code must be implemented inside vertex shader. + pub inline fn add(self: *VertexLayout, _attrib: Attrib, _num: u8, _type: AttribType, _normalized: bool, _asInt: bool) *VertexLayout { + return bgfx_vertex_layout_add(self, _attrib, _num, _type, _normalized, _asInt); + } + /// Decode attribute. + /// Attribute semantics. See: `bgfx::Attrib` + /// Number of elements. + /// Element type. + /// Attribute is normalized. + /// Attribute is packed as int. + pub inline fn decode(self: *const VertexLayout, _attrib: Attrib, _num: [*c]u8 , _type: [*c]AttribType, _normalized: [*c]bool, _asInt: [*c]bool) void { + return bgfx_vertex_layout_decode(self, _attrib, _num, _type, _normalized, _asInt); + } + /// Skip `_num` bytes in vertex stream. + /// Number of bytes to skip. + pub inline fn skip(self: *VertexLayout, _num: u8) *VertexLayout { + return bgfx_vertex_layout_skip(self, _num); + } + /// End VertexLayout. + pub inline fn end(self: *VertexLayout) void { + return bgfx_vertex_layout_end(self); + } + }; -pub const Encoder = opaque { - /// Sets a debug marker. This allows you to group graphics calls together for easy browsing in - /// graphics debugging tools. - /// Marker name. - /// Marker name length (if length is INT32_MAX, it's expected that _name is zero terminated string. - pub inline fn setMarker(self: ?*Encoder, _name: [*c]const u8, _len: i32) void { - return bgfx_encoder_set_marker(self, _name, _len); - } - /// Set render states for draw primitive. - /// @remarks - /// 1. To set up more complex states use: - /// `BGFX_STATE_ALPHA_REF(_ref)`, - /// `BGFX_STATE_POINT_SIZE(_size)`, - /// `BGFX_STATE_BLEND_FUNC(_src, _dst)`, - /// `BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA)`, - /// `BGFX_STATE_BLEND_EQUATION(_equation)`, - /// `BGFX_STATE_BLEND_EQUATION_SEPARATE(_equationRGB, _equationA)` - /// 2. `BGFX_STATE_BLEND_EQUATION_ADD` is set when no other blend - /// equation is specified. - /// State flags. Default state for primitive type is triangles. See: `BGFX_STATE_DEFAULT`. - `BGFX_STATE_DEPTH_TEST_*` - Depth test function. - `BGFX_STATE_BLEND_*` - See remark 1 about BGFX_STATE_BLEND_FUNC. - `BGFX_STATE_BLEND_EQUATION_*` - See remark 2. - `BGFX_STATE_CULL_*` - Backface culling mode. - `BGFX_STATE_WRITE_*` - Enable R, G, B, A or Z write. - `BGFX_STATE_MSAA` - Enable hardware multisample antialiasing. - `BGFX_STATE_PT_[TRISTRIP/LINES/POINTS]` - Primitive type. - /// Sets blend factor used by `BGFX_STATE_BLEND_FACTOR` and `BGFX_STATE_BLEND_INV_FACTOR` blend modes. - pub inline fn setState(self: ?*Encoder, _state: u64, _rgba: u32) void { - return bgfx_encoder_set_state(self, _state, _rgba); - } - /// Set condition for rendering. - /// Occlusion query handle. - /// Render if occlusion query is visible. - pub inline fn setCondition(self: ?*Encoder, _handle: OcclusionQueryHandle, _visible: bool) void { - return bgfx_encoder_set_condition(self, _handle, _visible); - } - /// Set stencil test state. - /// Front stencil state. - /// Back stencil state. If back is set to `BGFX_STENCIL_NONE` _fstencil is applied to both front and back facing primitives. - pub inline fn setStencil(self: ?*Encoder, _fstencil: u32, _bstencil: u32) void { - return bgfx_encoder_set_stencil(self, _fstencil, _bstencil); - } - /// Set scissor for draw primitive. - /// @remark - /// To scissor for all primitives in view see `bgfx::setViewScissor`. - /// Position x from the left corner of the window. - /// Position y from the top corner of the window. - /// Width of view scissor region. - /// Height of view scissor region. - pub inline fn setScissor(self: ?*Encoder, _x: u16, _y: u16, _width: u16, _height: u16) u16 { - return bgfx_encoder_set_scissor(self, _x, _y, _width, _height); - } - /// Set scissor from cache for draw primitive. - /// @remark - /// To scissor for all primitives in view see `bgfx::setViewScissor`. - /// Index in scissor cache. - pub inline fn setScissorCached(self: ?*Encoder, _cache: u16) void { - return bgfx_encoder_set_scissor_cached(self, _cache); - } - /// Set model matrix for draw primitive. If it is not called, - /// the model will be rendered with an identity model matrix. - /// Pointer to first matrix in array. - /// Number of matrices in array. - pub inline fn setTransform(self: ?*Encoder, _mtx: ?*const anyopaque, _num: u16) u32 { - return bgfx_encoder_set_transform(self, _mtx, _num); - } - /// Set model matrix from matrix cache for draw primitive. - /// Index in matrix cache. - /// Number of matrices from cache. - pub inline fn setTransformCached(self: ?*Encoder, _cache: u32, _num: u16) void { - return bgfx_encoder_set_transform_cached(self, _cache, _num); - } - /// Reserve matrices in internal matrix cache. - /// @attention Pointer returned can be modified until `bgfx::frame` is called. - /// Pointer to `Transform` structure. - /// Number of matrices. - pub inline fn allocTransform(self: ?*Encoder, _transform: [*c]Transform, _num: u16) u32 { - return bgfx_encoder_alloc_transform(self, _transform, _num); - } - /// Set shader uniform parameter for draw primitive. - /// Uniform. - /// Pointer to uniform data. - /// Number of elements. Passing `UINT16_MAX` will use the _num passed on uniform creation. - pub inline fn setUniform(self: ?*Encoder, _handle: UniformHandle, _value: ?*const anyopaque, _num: u16) void { - return bgfx_encoder_set_uniform(self, _handle, _value, _num); - } - /// Set index buffer for draw primitive. - /// Index buffer. - /// First index to render. - /// Number of indices to render. - pub inline fn setIndexBuffer(self: ?*Encoder, _handle: IndexBufferHandle, _firstIndex: u32, _numIndices: u32) void { - return bgfx_encoder_set_index_buffer(self, _handle, _firstIndex, _numIndices); - } - /// Set index buffer for draw primitive. - /// Dynamic index buffer. - /// First index to render. - /// Number of indices to render. - pub inline fn setDynamicIndexBuffer(self: ?*Encoder, _handle: DynamicIndexBufferHandle, _firstIndex: u32, _numIndices: u32) void { - return bgfx_encoder_set_dynamic_index_buffer(self, _handle, _firstIndex, _numIndices); - } - /// Set index buffer for draw primitive. - /// Transient index buffer. - /// First index to render. - /// Number of indices to render. - pub inline fn setTransientIndexBuffer(self: ?*Encoder, _tib: [*c]const TransientIndexBuffer, _firstIndex: u32, _numIndices: u32) void { - return bgfx_encoder_set_transient_index_buffer(self, _tib, _firstIndex, _numIndices); - } - /// Set vertex buffer for draw primitive. - /// Vertex stream. - /// Vertex buffer. - /// First vertex to render. - /// Number of vertices to render. - pub inline fn setVertexBuffer(self: ?*Encoder, _stream: u8, _handle: VertexBufferHandle, _startVertex: u32, _numVertices: u32) void { - return bgfx_encoder_set_vertex_buffer(self, _stream, _handle, _startVertex, _numVertices); - } - /// Set vertex buffer for draw primitive. - /// Vertex stream. - /// Vertex buffer. - /// First vertex to render. - /// Number of vertices to render. - /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. - pub inline fn setVertexBufferWithLayout(self: ?*Encoder, _stream: u8, _handle: VertexBufferHandle, _startVertex: u32, _numVertices: u32, _layoutHandle: VertexLayoutHandle) void { - return bgfx_encoder_set_vertex_buffer_with_layout(self, _stream, _handle, _startVertex, _numVertices, _layoutHandle); - } - /// Set vertex buffer for draw primitive. - /// Vertex stream. - /// Dynamic vertex buffer. - /// First vertex to render. - /// Number of vertices to render. - pub inline fn setDynamicVertexBuffer(self: ?*Encoder, _stream: u8, _handle: DynamicVertexBufferHandle, _startVertex: u32, _numVertices: u32) void { - return bgfx_encoder_set_dynamic_vertex_buffer(self, _stream, _handle, _startVertex, _numVertices); - } - pub inline fn setDynamicVertexBufferWithLayout(self: ?*Encoder, _stream: u8, _handle: DynamicVertexBufferHandle, _startVertex: u32, _numVertices: u32, _layoutHandle: VertexLayoutHandle) void { - return bgfx_encoder_set_dynamic_vertex_buffer_with_layout(self, _stream, _handle, _startVertex, _numVertices, _layoutHandle); - } - /// Set vertex buffer for draw primitive. - /// Vertex stream. - /// Transient vertex buffer. - /// First vertex to render. - /// Number of vertices to render. - pub inline fn setTransientVertexBuffer(self: ?*Encoder, _stream: u8, _tvb: [*c]const TransientVertexBuffer, _startVertex: u32, _numVertices: u32) void { - return bgfx_encoder_set_transient_vertex_buffer(self, _stream, _tvb, _startVertex, _numVertices); - } - /// Set vertex buffer for draw primitive. - /// Vertex stream. - /// Transient vertex buffer. - /// First vertex to render. - /// Number of vertices to render. - /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. - pub inline fn setTransientVertexBufferWithLayout(self: ?*Encoder, _stream: u8, _tvb: [*c]const TransientVertexBuffer, _startVertex: u32, _numVertices: u32, _layoutHandle: VertexLayoutHandle) void { - return bgfx_encoder_set_transient_vertex_buffer_with_layout(self, _stream, _tvb, _startVertex, _numVertices, _layoutHandle); - } - /// Set number of vertices for auto generated vertices use in conjunction - /// with gl_VertexID. - /// @attention Availability depends on: `BGFX_CAPS_VERTEX_ID`. - /// Number of vertices. - pub inline fn setVertexCount(self: ?*Encoder, _numVertices: u32) void { - return bgfx_encoder_set_vertex_count(self, _numVertices); - } - /// Set instance data buffer for draw primitive. - /// Transient instance data buffer. - /// First instance data. - /// Number of data instances. - pub inline fn setInstanceDataBuffer(self: ?*Encoder, _idb: [*c]const InstanceDataBuffer, _start: u32, _num: u32) void { - return bgfx_encoder_set_instance_data_buffer(self, _idb, _start, _num); - } - /// Set instance data buffer for draw primitive. - /// Vertex buffer. - /// First instance data. - /// Number of data instances. - pub inline fn setInstanceDataFromVertexBuffer(self: ?*Encoder, _handle: VertexBufferHandle, _startVertex: u32, _num: u32) void { - return bgfx_encoder_set_instance_data_from_vertex_buffer(self, _handle, _startVertex, _num); - } - /// Set instance data buffer for draw primitive. - /// Dynamic vertex buffer. - /// First instance data. - /// Number of data instances. - pub inline fn setInstanceDataFromDynamicVertexBuffer(self: ?*Encoder, _handle: DynamicVertexBufferHandle, _startVertex: u32, _num: u32) void { - return bgfx_encoder_set_instance_data_from_dynamic_vertex_buffer(self, _handle, _startVertex, _num); - } - /// Set number of instances for auto generated instances use in conjunction - /// with gl_InstanceID. - /// @attention Availability depends on: `BGFX_CAPS_VERTEX_ID`. - /// Number of instances. - pub inline fn setInstanceCount(self: ?*Encoder, _numInstances: u32) void { - return bgfx_encoder_set_instance_count(self, _numInstances); - } - /// Set texture stage for draw primitive. - /// Texture unit. - /// Program sampler. - /// Texture handle. - /// Texture sampling mode. Default value UINT32_MAX uses texture sampling settings from the texture. - `BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP]` - Mirror or clamp to edge wrap mode. - `BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC]` - Point or anisotropic sampling. - pub inline fn setTexture(self: ?*Encoder, _stage: u8, _sampler: UniformHandle, _handle: TextureHandle, _flags: u32) void { - return bgfx_encoder_set_texture(self, _stage, _sampler, _handle, _flags); - } - /// Submit an empty primitive for rendering. Uniforms and draw state - /// will be applied but no geometry will be submitted. Useful in cases - /// when no other draw/compute primitive is submitted to view, but it's - /// desired to execute clear view. - /// @remark - /// These empty draw calls will sort before ordinary draw calls. - /// View id. - pub inline fn touch(self: ?*Encoder, _id: ViewId) void { - return bgfx_encoder_touch(self, _id); - } - /// Submit primitive for rendering. - /// View id. - /// Program. - /// Depth for sorting. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn submit(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _depth: u32, _flags: u8) void { - return bgfx_encoder_submit(self, _id, _program, _depth, _flags); - } - /// Submit primitive with occlusion query for rendering. - /// View id. - /// Program. - /// Occlusion query. - /// Depth for sorting. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn submitOcclusionQuery(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _occlusionQuery: OcclusionQueryHandle, _depth: u32, _flags: u8) void { - return bgfx_encoder_submit_occlusion_query(self, _id, _program, _occlusionQuery, _depth, _flags); - } - /// Submit primitive for rendering with index and instance data info from - /// indirect buffer. - /// @attention Availability depends on: `BGFX_CAPS_DRAW_INDIRECT`. - /// View id. - /// Program. - /// Indirect buffer. - /// First element in indirect buffer. - /// Number of draws. - /// Depth for sorting. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn submitIndirect(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _indirectHandle: IndirectBufferHandle, _start: u32, _num: u32, _depth: u32, _flags: u8) void { - return bgfx_encoder_submit_indirect(self, _id, _program, _indirectHandle, _start, _num, _depth, _flags); - } - /// Submit primitive for rendering with index and instance data info and - /// draw count from indirect buffers. - /// @attention Availability depends on: `BGFX_CAPS_DRAW_INDIRECT_COUNT`. - /// View id. - /// Program. - /// Indirect buffer. - /// First element in indirect buffer. - /// Buffer for number of draws. Must be created with `BGFX_BUFFER_INDEX32` and `BGFX_BUFFER_DRAW_INDIRECT`. - /// Element in number buffer. - /// Max number of draws. - /// Depth for sorting. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn submitIndirectCount(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _indirectHandle: IndirectBufferHandle, _start: u32, _numHandle: IndexBufferHandle, _numIndex: u32, _numMax: u32, _depth: u32, _flags: u8) void { - return bgfx_encoder_submit_indirect_count(self, _id, _program, _indirectHandle, _start, _numHandle, _numIndex, _numMax, _depth, _flags); - } - /// Set compute index buffer. - /// Compute stage. - /// Index buffer handle. - /// Buffer access. See `Access::Enum`. - pub inline fn setComputeIndexBuffer(self: ?*Encoder, _stage: u8, _handle: IndexBufferHandle, _access: Access) void { - return bgfx_encoder_set_compute_index_buffer(self, _stage, _handle, _access); - } - /// Set compute vertex buffer. - /// Compute stage. - /// Vertex buffer handle. - /// Buffer access. See `Access::Enum`. - pub inline fn setComputeVertexBuffer(self: ?*Encoder, _stage: u8, _handle: VertexBufferHandle, _access: Access) void { - return bgfx_encoder_set_compute_vertex_buffer(self, _stage, _handle, _access); - } - /// Set compute dynamic index buffer. - /// Compute stage. - /// Dynamic index buffer handle. - /// Buffer access. See `Access::Enum`. - pub inline fn setComputeDynamicIndexBuffer(self: ?*Encoder, _stage: u8, _handle: DynamicIndexBufferHandle, _access: Access) void { - return bgfx_encoder_set_compute_dynamic_index_buffer(self, _stage, _handle, _access); - } - /// Set compute dynamic vertex buffer. - /// Compute stage. - /// Dynamic vertex buffer handle. - /// Buffer access. See `Access::Enum`. - pub inline fn setComputeDynamicVertexBuffer(self: ?*Encoder, _stage: u8, _handle: DynamicVertexBufferHandle, _access: Access) void { - return bgfx_encoder_set_compute_dynamic_vertex_buffer(self, _stage, _handle, _access); - } - /// Set compute indirect buffer. - /// Compute stage. - /// Indirect buffer handle. - /// Buffer access. See `Access::Enum`. - pub inline fn setComputeIndirectBuffer(self: ?*Encoder, _stage: u8, _handle: IndirectBufferHandle, _access: Access) void { - return bgfx_encoder_set_compute_indirect_buffer(self, _stage, _handle, _access); - } - /// Set compute image from texture. - /// Compute stage. - /// Texture handle. - /// Mip level. - /// Image access. See `Access::Enum`. - /// Texture format. See: `TextureFormat::Enum`. - pub inline fn setImage(self: ?*Encoder, _stage: u8, _handle: TextureHandle, _mip: u8, _access: Access, _format: TextureFormat) void { - return bgfx_encoder_set_image(self, _stage, _handle, _mip, _access, _format); - } - /// Dispatch compute. - /// View id. - /// Compute program. - /// Number of groups X. - /// Number of groups Y. - /// Number of groups Z. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn dispatch(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _numX: u32, _numY: u32, _numZ: u32, _flags: u8) void { - return bgfx_encoder_dispatch(self, _id, _program, _numX, _numY, _numZ, _flags); - } - /// Dispatch compute indirect. - /// View id. - /// Compute program. - /// Indirect buffer. - /// First element in indirect buffer. - /// Number of dispatches. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn dispatchIndirect(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _indirectHandle: IndirectBufferHandle, _start: u32, _num: u32, _flags: u8) void { - return bgfx_encoder_dispatch_indirect(self, _id, _program, _indirectHandle, _start, _num, _flags); - } - /// Discard previously set state for draw or compute call. - /// Discard or preserve states. See `BGFX_DISCARD_*`. - pub inline fn discard(self: ?*Encoder, _flags: u8) void { - return bgfx_encoder_discard(self, _flags); - } - /// Blit 2D texture region between two 2D textures. - /// @attention Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. - /// @attention Availability depends on: `BGFX_CAPS_TEXTURE_BLIT`. - /// View id. - /// Destination texture handle. - /// Destination texture mip level. - /// Destination texture X position. - /// Destination texture Y position. - /// If texture is 2D this argument should be 0. If destination texture is cube this argument represents destination texture cube face. For 3D texture this argument represents destination texture Z position. - /// Source texture handle. - /// Source texture mip level. - /// Source texture X position. - /// Source texture Y position. - /// If texture is 2D this argument should be 0. If source texture is cube this argument represents source texture cube face. For 3D texture this argument represents source texture Z position. - /// Width of region. - /// Height of region. - /// If texture is 3D this argument represents depth of region, otherwise it's unused. - pub inline fn blit(self: ?*Encoder, _id: ViewId, _dst: TextureHandle, _dstMip: u8, _dstX: u16, _dstY: u16, _dstZ: u16, _src: TextureHandle, _srcMip: u8, _srcX: u16, _srcY: u16, _srcZ: u16, _width: u16, _height: u16, _depth: u16) void { - return bgfx_encoder_blit(self, _id, _dst, _dstMip, _dstX, _dstY, _dstZ, _src, _srcMip, _srcX, _srcY, _srcZ, _width, _height, _depth); - } -}; + pub const Encoder = opaque { + /// Sets a debug marker. This allows you to group graphics calls together for easy browsing in + /// graphics debugging tools. + /// Marker name. + /// Marker name length (if length is INT32_MAX, it's expected that _name is zero terminated string. + pub inline fn setMarker(self: ?*Encoder, _name: [*c]const u8, _len: i32) void { + return bgfx_encoder_set_marker(self, _name, _len); + } + /// Set render states for draw primitive. + /// @remarks + /// 1. To set up more complex states use: + /// `BGFX_STATE_ALPHA_REF(_ref)`, + /// `BGFX_STATE_POINT_SIZE(_size)`, + /// `BGFX_STATE_BLEND_FUNC(_src, _dst)`, + /// `BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA)`, + /// `BGFX_STATE_BLEND_EQUATION(_equation)`, + /// `BGFX_STATE_BLEND_EQUATION_SEPARATE(_equationRGB, _equationA)` + /// 2. `BGFX_STATE_BLEND_EQUATION_ADD` is set when no other blend + /// equation is specified. + /// State flags. Default state for primitive type is triangles. See: `BGFX_STATE_DEFAULT`. - `BGFX_STATE_DEPTH_TEST_*` - Depth test function. - `BGFX_STATE_BLEND_*` - See remark 1 about BGFX_STATE_BLEND_FUNC. - `BGFX_STATE_BLEND_EQUATION_*` - See remark 2. - `BGFX_STATE_CULL_*` - Backface culling mode. - `BGFX_STATE_WRITE_*` - Enable R, G, B, A or Z write. - `BGFX_STATE_MSAA` - Enable hardware multisample antialiasing. - `BGFX_STATE_PT_[TRISTRIP/LINES/POINTS]` - Primitive type. + /// Sets blend factor used by `BGFX_STATE_BLEND_FACTOR` and `BGFX_STATE_BLEND_INV_FACTOR` blend modes. + pub inline fn setState(self: ?*Encoder, _state: u64, _rgba: u32) void { + return bgfx_encoder_set_state(self, _state, _rgba); + } + /// Set condition for rendering. + /// Occlusion query handle. + /// Render if occlusion query is visible. + pub inline fn setCondition(self: ?*Encoder, _handle: OcclusionQueryHandle, _visible: bool) void { + return bgfx_encoder_set_condition(self, _handle, _visible); + } + /// Set stencil test state. + /// Front stencil state. + /// Back stencil state. If back is set to `BGFX_STENCIL_NONE` _fstencil is applied to both front and back facing primitives. + pub inline fn setStencil(self: ?*Encoder, _fstencil: u32, _bstencil: u32) void { + return bgfx_encoder_set_stencil(self, _fstencil, _bstencil); + } + /// Set scissor for draw primitive. + /// @remark + /// To scissor for all primitives in view see `bgfx::setViewScissor`. + /// Position x from the left corner of the window. + /// Position y from the top corner of the window. + /// Width of view scissor region. + /// Height of view scissor region. + pub inline fn setScissor(self: ?*Encoder, _x: u16, _y: u16, _width: u16, _height: u16) u16 { + return bgfx_encoder_set_scissor(self, _x, _y, _width, _height); + } + /// Set scissor from cache for draw primitive. + /// @remark + /// To scissor for all primitives in view see `bgfx::setViewScissor`. + /// Index in scissor cache. + pub inline fn setScissorCached(self: ?*Encoder, _cache: u16) void { + return bgfx_encoder_set_scissor_cached(self, _cache); + } + /// Set model matrix for draw primitive. If it is not called, + /// the model will be rendered with an identity model matrix. + /// Pointer to first matrix in array. + /// Number of matrices in array. + pub inline fn setTransform(self: ?*Encoder, _mtx: ?*const anyopaque, _num: u16) u32 { + return bgfx_encoder_set_transform(self, _mtx, _num); + } + /// Set model matrix from matrix cache for draw primitive. + /// Index in matrix cache. + /// Number of matrices from cache. + pub inline fn setTransformCached(self: ?*Encoder, _cache: u32, _num: u16) void { + return bgfx_encoder_set_transform_cached(self, _cache, _num); + } + /// Reserve matrices in internal matrix cache. + /// @attention Pointer returned can be modified until `bgfx::frame` is called. + /// Pointer to `Transform` structure. + /// Number of matrices. + pub inline fn allocTransform(self: ?*Encoder, _transform: [*c]Transform, _num: u16) u32 { + return bgfx_encoder_alloc_transform(self, _transform, _num); + } + /// Set shader uniform parameter for draw primitive. + /// Uniform. + /// Pointer to uniform data. + /// Number of elements. Passing `UINT16_MAX` will use the _num passed on uniform creation. + pub inline fn setUniform(self: ?*Encoder, _handle: UniformHandle, _value: ?*const anyopaque, _num: u16) void { + return bgfx_encoder_set_uniform(self, _handle, _value, _num); + } + /// Set index buffer for draw primitive. + /// Index buffer. + /// First index to render. + /// Number of indices to render. + pub inline fn setIndexBuffer(self: ?*Encoder, _handle: IndexBufferHandle, _firstIndex: u32, _numIndices: u32) void { + return bgfx_encoder_set_index_buffer(self, _handle, _firstIndex, _numIndices); + } + /// Set index buffer for draw primitive. + /// Dynamic index buffer. + /// First index to render. + /// Number of indices to render. + pub inline fn setDynamicIndexBuffer(self: ?*Encoder, _handle: DynamicIndexBufferHandle, _firstIndex: u32, _numIndices: u32) void { + return bgfx_encoder_set_dynamic_index_buffer(self, _handle, _firstIndex, _numIndices); + } + /// Set index buffer for draw primitive. + /// Transient index buffer. + /// First index to render. + /// Number of indices to render. + pub inline fn setTransientIndexBuffer(self: ?*Encoder, _tib: [*c]const TransientIndexBuffer, _firstIndex: u32, _numIndices: u32) void { + return bgfx_encoder_set_transient_index_buffer(self, _tib, _firstIndex, _numIndices); + } + /// Set vertex buffer for draw primitive. + /// Vertex stream. + /// Vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + pub inline fn setVertexBuffer(self: ?*Encoder, _stream: u8, _handle: VertexBufferHandle, _startVertex: u32, _numVertices: u32) void { + return bgfx_encoder_set_vertex_buffer(self, _stream, _handle, _startVertex, _numVertices); + } + /// Set vertex buffer for draw primitive. + /// Vertex stream. + /// Vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. + pub inline fn setVertexBufferWithLayout(self: ?*Encoder, _stream: u8, _handle: VertexBufferHandle, _startVertex: u32, _numVertices: u32, _layoutHandle: VertexLayoutHandle) void { + return bgfx_encoder_set_vertex_buffer_with_layout(self, _stream, _handle, _startVertex, _numVertices, _layoutHandle); + } + /// Set vertex buffer for draw primitive. + /// Vertex stream. + /// Dynamic vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + pub inline fn setDynamicVertexBuffer(self: ?*Encoder, _stream: u8, _handle: DynamicVertexBufferHandle, _startVertex: u32, _numVertices: u32) void { + return bgfx_encoder_set_dynamic_vertex_buffer(self, _stream, _handle, _startVertex, _numVertices); + } + pub inline fn setDynamicVertexBufferWithLayout(self: ?*Encoder, _stream: u8, _handle: DynamicVertexBufferHandle, _startVertex: u32, _numVertices: u32, _layoutHandle: VertexLayoutHandle) void { + return bgfx_encoder_set_dynamic_vertex_buffer_with_layout(self, _stream, _handle, _startVertex, _numVertices, _layoutHandle); + } + /// Set vertex buffer for draw primitive. + /// Vertex stream. + /// Transient vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + pub inline fn setTransientVertexBuffer(self: ?*Encoder, _stream: u8, _tvb: [*c]const TransientVertexBuffer, _startVertex: u32, _numVertices: u32) void { + return bgfx_encoder_set_transient_vertex_buffer(self, _stream, _tvb, _startVertex, _numVertices); + } + /// Set vertex buffer for draw primitive. + /// Vertex stream. + /// Transient vertex buffer. + /// First vertex to render. + /// Number of vertices to render. + /// Vertex layout for aliasing vertex buffer. If invalid handle is used, vertex layout used for creation of vertex buffer will be used. + pub inline fn setTransientVertexBufferWithLayout(self: ?*Encoder, _stream: u8, _tvb: [*c]const TransientVertexBuffer, _startVertex: u32, _numVertices: u32, _layoutHandle: VertexLayoutHandle) void { + return bgfx_encoder_set_transient_vertex_buffer_with_layout(self, _stream, _tvb, _startVertex, _numVertices, _layoutHandle); + } + /// Set number of vertices for auto generated vertices use in conjunction + /// with gl_VertexID. + /// @attention Availability depends on: `BGFX_CAPS_VERTEX_ID`. + /// Number of vertices. + pub inline fn setVertexCount(self: ?*Encoder, _numVertices: u32) void { + return bgfx_encoder_set_vertex_count(self, _numVertices); + } + /// Set instance data buffer for draw primitive. + /// Transient instance data buffer. + /// First instance data. + /// Number of data instances. + pub inline fn setInstanceDataBuffer(self: ?*Encoder, _idb: [*c]const InstanceDataBuffer, _start: u32, _num: u32) void { + return bgfx_encoder_set_instance_data_buffer(self, _idb, _start, _num); + } + /// Set instance data buffer for draw primitive. + /// Vertex buffer. + /// First instance data. + /// Number of data instances. + pub inline fn setInstanceDataFromVertexBuffer(self: ?*Encoder, _handle: VertexBufferHandle, _startVertex: u32, _num: u32) void { + return bgfx_encoder_set_instance_data_from_vertex_buffer(self, _handle, _startVertex, _num); + } + /// Set instance data buffer for draw primitive. + /// Dynamic vertex buffer. + /// First instance data. + /// Number of data instances. + pub inline fn setInstanceDataFromDynamicVertexBuffer(self: ?*Encoder, _handle: DynamicVertexBufferHandle, _startVertex: u32, _num: u32) void { + return bgfx_encoder_set_instance_data_from_dynamic_vertex_buffer(self, _handle, _startVertex, _num); + } + /// Set number of instances for auto generated instances use in conjunction + /// with gl_InstanceID. + /// @attention Availability depends on: `BGFX_CAPS_VERTEX_ID`. + /// Number of instances. + pub inline fn setInstanceCount(self: ?*Encoder, _numInstances: u32) void { + return bgfx_encoder_set_instance_count(self, _numInstances); + } + /// Set texture stage for draw primitive. + /// Texture unit. + /// Program sampler. + /// Texture handle. + /// Texture sampling mode. Default value UINT32_MAX uses texture sampling settings from the texture. - `BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP]` - Mirror or clamp to edge wrap mode. - `BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC]` - Point or anisotropic sampling. + pub inline fn setTexture(self: ?*Encoder, _stage: u8, _sampler: UniformHandle, _handle: TextureHandle, _flags: u32) void { + return bgfx_encoder_set_texture(self, _stage, _sampler, _handle, _flags); + } + /// Submit an empty primitive for rendering. Uniforms and draw state + /// will be applied but no geometry will be submitted. Useful in cases + /// when no other draw/compute primitive is submitted to view, but it's + /// desired to execute clear view. + /// @remark + /// These empty draw calls will sort before ordinary draw calls. + /// View id. + pub inline fn touch(self: ?*Encoder, _id: ViewId) void { + return bgfx_encoder_touch(self, _id); + } + /// Submit primitive for rendering. + /// View id. + /// Program. + /// Depth for sorting. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn submit(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _depth: u32, _flags: u8) void { + return bgfx_encoder_submit(self, _id, _program, _depth, _flags); + } + /// Submit primitive with occlusion query for rendering. + /// View id. + /// Program. + /// Occlusion query. + /// Depth for sorting. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn submitOcclusionQuery(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _occlusionQuery: OcclusionQueryHandle, _depth: u32, _flags: u8) void { + return bgfx_encoder_submit_occlusion_query(self, _id, _program, _occlusionQuery, _depth, _flags); + } + /// Submit primitive for rendering with index and instance data info from + /// indirect buffer. + /// @attention Availability depends on: `BGFX_CAPS_DRAW_INDIRECT`. + /// View id. + /// Program. + /// Indirect buffer. + /// First element in indirect buffer. + /// Number of draws. + /// Depth for sorting. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn submitIndirect(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _indirectHandle: IndirectBufferHandle, _start: u32, _num: u32, _depth: u32, _flags: u8) void { + return bgfx_encoder_submit_indirect(self, _id, _program, _indirectHandle, _start, _num, _depth, _flags); + } + /// Submit primitive for rendering with index and instance data info and + /// draw count from indirect buffers. + /// @attention Availability depends on: `BGFX_CAPS_DRAW_INDIRECT_COUNT`. + /// View id. + /// Program. + /// Indirect buffer. + /// First element in indirect buffer. + /// Buffer for number of draws. Must be created with `BGFX_BUFFER_INDEX32` and `BGFX_BUFFER_DRAW_INDIRECT`. + /// Element in number buffer. + /// Max number of draws. + /// Depth for sorting. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn submitIndirectCount(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _indirectHandle: IndirectBufferHandle, _start: u32, _numHandle: IndexBufferHandle, _numIndex: u32, _numMax: u32, _depth: u32, _flags: u8) void { + return bgfx_encoder_submit_indirect_count(self, _id, _program, _indirectHandle, _start, _numHandle, _numIndex, _numMax, _depth, _flags); + } + /// Set compute index buffer. + /// Compute stage. + /// Index buffer handle. + /// Buffer access. See `Access::Enum`. + pub inline fn setComputeIndexBuffer(self: ?*Encoder, _stage: u8, _handle: IndexBufferHandle, _access: Access) void { + return bgfx_encoder_set_compute_index_buffer(self, _stage, _handle, _access); + } + /// Set compute vertex buffer. + /// Compute stage. + /// Vertex buffer handle. + /// Buffer access. See `Access::Enum`. + pub inline fn setComputeVertexBuffer(self: ?*Encoder, _stage: u8, _handle: VertexBufferHandle, _access: Access) void { + return bgfx_encoder_set_compute_vertex_buffer(self, _stage, _handle, _access); + } + /// Set compute dynamic index buffer. + /// Compute stage. + /// Dynamic index buffer handle. + /// Buffer access. See `Access::Enum`. + pub inline fn setComputeDynamicIndexBuffer(self: ?*Encoder, _stage: u8, _handle: DynamicIndexBufferHandle, _access: Access) void { + return bgfx_encoder_set_compute_dynamic_index_buffer(self, _stage, _handle, _access); + } + /// Set compute dynamic vertex buffer. + /// Compute stage. + /// Dynamic vertex buffer handle. + /// Buffer access. See `Access::Enum`. + pub inline fn setComputeDynamicVertexBuffer(self: ?*Encoder, _stage: u8, _handle: DynamicVertexBufferHandle, _access: Access) void { + return bgfx_encoder_set_compute_dynamic_vertex_buffer(self, _stage, _handle, _access); + } + /// Set compute indirect buffer. + /// Compute stage. + /// Indirect buffer handle. + /// Buffer access. See `Access::Enum`. + pub inline fn setComputeIndirectBuffer(self: ?*Encoder, _stage: u8, _handle: IndirectBufferHandle, _access: Access) void { + return bgfx_encoder_set_compute_indirect_buffer(self, _stage, _handle, _access); + } + /// Set compute image from texture. + /// Compute stage. + /// Texture handle. + /// Mip level. + /// Image access. See `Access::Enum`. + /// Texture format. See: `TextureFormat::Enum`. + pub inline fn setImage(self: ?*Encoder, _stage: u8, _handle: TextureHandle, _mip: u8, _access: Access, _format: TextureFormat) void { + return bgfx_encoder_set_image(self, _stage, _handle, _mip, _access, _format); + } + /// Dispatch compute. + /// View id. + /// Compute program. + /// Number of groups X. + /// Number of groups Y. + /// Number of groups Z. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn dispatch(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _numX: u32, _numY: u32, _numZ: u32, _flags: u8) void { + return bgfx_encoder_dispatch(self, _id, _program, _numX, _numY, _numZ, _flags); + } + /// Dispatch compute indirect. + /// View id. + /// Compute program. + /// Indirect buffer. + /// First element in indirect buffer. + /// Number of dispatches. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn dispatchIndirect(self: ?*Encoder, _id: ViewId, _program: ProgramHandle, _indirectHandle: IndirectBufferHandle, _start: u32, _num: u32, _flags: u8) void { + return bgfx_encoder_dispatch_indirect(self, _id, _program, _indirectHandle, _start, _num, _flags); + } + /// Discard previously set state for draw or compute call. + /// Discard or preserve states. See `BGFX_DISCARD_*`. + pub inline fn discard(self: ?*Encoder, _flags: u8) void { + return bgfx_encoder_discard(self, _flags); + } + /// Blit 2D texture region between two 2D textures. + /// @attention Destination texture must be created with `BGFX_TEXTURE_BLIT_DST` flag. + /// @attention Availability depends on: `BGFX_CAPS_TEXTURE_BLIT`. + /// View id. + /// Destination texture handle. + /// Destination texture mip level. + /// Destination texture X position. + /// Destination texture Y position. + /// If texture is 2D this argument should be 0. If destination texture is cube this argument represents destination texture cube face. For 3D texture this argument represents destination texture Z position. + /// Source texture handle. + /// Source texture mip level. + /// Source texture X position. + /// Source texture Y position. + /// If texture is 2D this argument should be 0. If source texture is cube this argument represents source texture cube face. For 3D texture this argument represents source texture Z position. + /// Width of region. + /// Height of region. + /// If texture is 3D this argument represents depth of region, otherwise it's unused. + pub inline fn blit(self: ?*Encoder, _id: ViewId, _dst: TextureHandle, _dstMip: u8, _dstX: u16, _dstY: u16, _dstZ: u16, _src: TextureHandle, _srcMip: u8, _srcX: u16, _srcY: u16, _srcZ: u16, _width: u16, _height: u16, _depth: u16) void { + return bgfx_encoder_blit(self, _id, _dst, _dstMip, _dstX, _dstY, _dstZ, _src, _srcMip, _srcX, _srcY, _srcZ, _width, _height, _depth); + } + }; pub const DynamicIndexBufferHandle = extern struct { idx: c_ushort, @@ -1955,6 +1980,7 @@ pub const VertexLayoutHandle = extern struct { idx: c_ushort, }; + /// Init attachment. /// Render target texture handle. /// Access. See `Access::Enum`. @@ -1983,7 +2009,7 @@ extern fn bgfx_vertex_layout_add(self: [*c]VertexLayout, _attrib: Attrib, _num: /// Element type. /// Attribute is normalized. /// Attribute is packed as int. -extern fn bgfx_vertex_layout_decode(self: [*c]const VertexLayout, _attrib: Attrib, _num: [*c]u8, _type: [*c]AttribType, _normalized: [*c]bool, _asInt: [*c]bool) void; +extern fn bgfx_vertex_layout_decode(self: [*c]const VertexLayout, _attrib: Attrib, _num: [*c]u8 , _type: [*c]AttribType, _normalized: [*c]bool, _asInt: [*c]bool) void; /// Skip `_num` bytes in vertex stream. /// Number of bytes to skip. @@ -3819,3 +3845,5 @@ pub inline fn blit(_id: ViewId, _dst: TextureHandle, _dstMip: u8, _dstX: u16, _d return bgfx_blit(_id, _dst, _dstMip, _dstX, _dstY, _dstZ, _src, _srcMip, _srcX, _srcY, _srcZ, _width, _height, _depth); } extern fn bgfx_blit(_id: ViewId, _dst: TextureHandle, _dstMip: u8, _dstX: u16, _dstY: u16, _dstZ: u16, _src: TextureHandle, _srcMip: u8, _srcX: u16, _srcY: u16, _srcZ: u16, _width: u16, _height: u16, _depth: u16) void; + + diff --git a/libs/bgfx/examples/common/shaderlib.sh b/libs/bgfx/examples/common/shaderlib.sh new file mode 100644 index 0000000..c0c17de --- /dev/null +++ b/libs/bgfx/examples/common/shaderlib.sh @@ -0,0 +1,431 @@ +/* + * Copyright 2011-2025 Branimir Karadzic. All rights reserved. + * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE + */ + +#ifndef __SHADERLIB_SH__ +#define __SHADERLIB_SH__ + +vec4 encodeRE8(float _r) +{ + float exponent = ceil(log2(_r) ); + return vec4(_r / exp2(exponent) + , 0.0 + , 0.0 + , (exponent + 128.0) / 255.0 + ); +} + +float decodeRE8(vec4 _re8) +{ + float exponent = _re8.w * 255.0 - 128.0; + return _re8.x * exp2(exponent); +} + +vec4 encodeRGBE8(vec3 _rgb) +{ + vec4 rgbe8; + float maxComponent = max(max(_rgb.x, _rgb.y), _rgb.z); + float exponent = ceil(log2(maxComponent) ); + rgbe8.xyz = _rgb / exp2(exponent); + rgbe8.w = (exponent + 128.0) / 255.0; + return rgbe8; +} + +vec3 decodeRGBE8(vec4 _rgbe8) +{ + float exponent = _rgbe8.w * 255.0 - 128.0; + vec3 rgb = _rgbe8.xyz * exp2(exponent); + return rgb; +} + +vec3 encodeNormalUint(vec3 _normal) +{ + return _normal * 0.5 + 0.5; +} + +vec3 decodeNormalUint(vec3 _encodedNormal) +{ + return _encodedNormal * 2.0 - 1.0; +} + +vec2 encodeNormalSphereMap(vec3 _normal) +{ + return normalize(_normal.xy) * sqrt(_normal.z * 0.5 + 0.5); +} + +vec3 decodeNormalSphereMap(vec2 _encodedNormal) +{ + float zz = dot(_encodedNormal, _encodedNormal) * 2.0 - 1.0; + return vec3(normalize(_encodedNormal.xy) * sqrt(1.0 - zz*zz), zz); +} + +vec2 octahedronWrap(vec2 _val) +{ + // Reference(s): + // - Octahedron normal vector encoding + // https://web.archive.org/web/20191027010600/https://knarkowicz.wordpress.com/2014/04/16/octahedron-normal-vector-encoding/comment-page-1/ + return (1.0 - abs(_val.yx) ) + * mix(vec2_splat(-1.0), vec2_splat(1.0), vec2(greaterThanEqual(_val.xy, vec2_splat(0.0) ) ) ); +} + +vec2 encodeNormalOctahedron(vec3 _normal) +{ + _normal /= abs(_normal.x) + abs(_normal.y) + abs(_normal.z); + _normal.xy = _normal.z >= 0.0 ? _normal.xy : octahedronWrap(_normal.xy); + _normal.xy = _normal.xy * 0.5 + 0.5; + return _normal.xy; +} + +vec3 decodeNormalOctahedron(vec2 _encodedNormal) +{ + _encodedNormal = _encodedNormal * 2.0 - 1.0; + + vec3 normal; + normal.z = 1.0 - abs(_encodedNormal.x) - abs(_encodedNormal.y); + normal.xy = normal.z >= 0.0 ? _encodedNormal.xy : octahedronWrap(_encodedNormal.xy); + return normalize(normal); +} + +vec3 convertRGB2XYZ(vec3 _rgb) +{ + // Reference(s): + // - RGB/XYZ Matrices + // https://web.archive.org/web/20191027010220/http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + vec3 xyz; + xyz.x = dot(vec3(0.4124564, 0.3575761, 0.1804375), _rgb); + xyz.y = dot(vec3(0.2126729, 0.7151522, 0.0721750), _rgb); + xyz.z = dot(vec3(0.0193339, 0.1191920, 0.9503041), _rgb); + return xyz; +} + +vec3 convertXYZ2RGB(vec3 _xyz) +{ + vec3 rgb; + rgb.x = dot(vec3( 3.2404542, -1.5371385, -0.4985314), _xyz); + rgb.y = dot(vec3(-0.9692660, 1.8760108, 0.0415560), _xyz); + rgb.z = dot(vec3( 0.0556434, -0.2040259, 1.0572252), _xyz); + return rgb; +} + +vec3 convertXYZ2Yxy(vec3 _xyz) +{ + // Reference(s): + // - XYZ to xyY + // https://web.archive.org/web/20191027010144/http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_xyY.html + float inv = 1.0/dot(_xyz, vec3(1.0, 1.0, 1.0) ); + return vec3(_xyz.y, _xyz.x*inv, _xyz.y*inv); +} + +vec3 convertYxy2XYZ(vec3 _Yxy) +{ + // Reference(s): + // - xyY to XYZ + // https://web.archive.org/web/20191027010036/http://www.brucelindbloom.com/index.html?Eqn_xyY_to_XYZ.html + vec3 xyz; + xyz.x = _Yxy.x*_Yxy.y/_Yxy.z; + xyz.y = _Yxy.x; + xyz.z = _Yxy.x*(1.0 - _Yxy.y - _Yxy.z)/_Yxy.z; + return xyz; +} + +vec3 convertRGB2Yxy(vec3 _rgb) +{ + return convertXYZ2Yxy(convertRGB2XYZ(_rgb) ); +} + +vec3 convertYxy2RGB(vec3 _Yxy) +{ + return convertXYZ2RGB(convertYxy2XYZ(_Yxy) ); +} + +vec3 convertRGB2Yuv(vec3 _rgb) +{ + vec3 yuv; + yuv.x = dot(_rgb, vec3(0.299, 0.587, 0.114) ); + yuv.y = (_rgb.x - yuv.x)*0.713 + 0.5; + yuv.z = (_rgb.z - yuv.x)*0.564 + 0.5; + return yuv; +} + +vec3 convertYuv2RGB(vec3 _yuv) +{ + vec3 rgb; + rgb.x = _yuv.x + 1.403*(_yuv.y-0.5); + rgb.y = _yuv.x - 0.344*(_yuv.y-0.5) - 0.714*(_yuv.z-0.5); + rgb.z = _yuv.x + 1.773*(_yuv.z-0.5); + return rgb; +} + +vec3 convertRGB2YIQ(vec3 _rgb) +{ + vec3 yiq; + yiq.x = dot(vec3(0.299, 0.587, 0.114 ), _rgb); + yiq.y = dot(vec3(0.595716, -0.274453, -0.321263), _rgb); + yiq.z = dot(vec3(0.211456, -0.522591, 0.311135), _rgb); + return yiq; +} + +vec3 convertYIQ2RGB(vec3 _yiq) +{ + vec3 rgb; + rgb.x = dot(vec3(1.0, 0.9563, 0.6210), _yiq); + rgb.y = dot(vec3(1.0, -0.2721, -0.6474), _yiq); + rgb.z = dot(vec3(1.0, -1.1070, 1.7046), _yiq); + return rgb; +} + +vec3 toLinear(vec3 _rgb) +{ + return pow(abs(_rgb), vec3_splat(2.2) ); +} + +vec4 toLinear(vec4 _rgba) +{ + return vec4(toLinear(_rgba.xyz), _rgba.w); +} + +vec3 toLinearAccurate(vec3 _rgb) +{ + vec3 lo = _rgb / 12.92; + vec3 hi = pow( (_rgb + 0.055) / 1.055, vec3_splat(2.4) ); + vec3 rgb = mix(hi, lo, vec3(lessThanEqual(_rgb, vec3_splat(0.04045) ) ) ); + return rgb; +} + +vec4 toLinearAccurate(vec4 _rgba) +{ + return vec4(toLinearAccurate(_rgba.xyz), _rgba.w); +} + +float toGamma(float _r) +{ + return pow(abs(_r), 1.0/2.2); +} + +vec3 toGamma(vec3 _rgb) +{ + return pow(abs(_rgb), vec3_splat(1.0/2.2) ); +} + +vec4 toGamma(vec4 _rgba) +{ + return vec4(toGamma(_rgba.xyz), _rgba.w); +} + +vec3 toGammaAccurate(vec3 _rgb) +{ + vec3 lo = _rgb * 12.92; + vec3 hi = pow(abs(_rgb), vec3_splat(1.0/2.4) ) * 1.055 - 0.055; + vec3 rgb = mix(hi, lo, vec3(lessThanEqual(_rgb, vec3_splat(0.0031308) ) ) ); + return rgb; +} + +vec4 toGammaAccurate(vec4 _rgba) +{ + return vec4(toGammaAccurate(_rgba.xyz), _rgba.w); +} + +vec3 toReinhard(vec3 _rgb) +{ + return toGamma(_rgb/(_rgb+vec3_splat(1.0) ) ); +} + +vec4 toReinhard(vec4 _rgba) +{ + return vec4(toReinhard(_rgba.xyz), _rgba.w); +} + +vec3 toFilmic(vec3 _rgb) +{ + _rgb = max(vec3_splat(0.0), _rgb - 0.004); + _rgb = (_rgb*(6.2*_rgb + 0.5) ) / (_rgb*(6.2*_rgb + 1.7) + 0.06); + return _rgb; +} + +vec4 toFilmic(vec4 _rgba) +{ + return vec4(toFilmic(_rgba.xyz), _rgba.w); +} + +vec3 toAcesFilmic(vec3 _rgb) +{ + // Reference(s): + // - ACES Filmic Tone Mapping Curve + // https://web.archive.org/web/20191027010704/https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + float aa = 2.51f; + float bb = 0.03f; + float cc = 2.43f; + float dd = 0.59f; + float ee = 0.14f; + return saturate( (_rgb*(aa*_rgb + bb) )/(_rgb*(cc*_rgb + dd) + ee) ); +} + +vec4 toAcesFilmic(vec4 _rgba) +{ + return vec4(toAcesFilmic(_rgba.xyz), _rgba.w); +} + +vec3 luma(vec3 _rgb) +{ + float yy = dot(vec3(0.2126729, 0.7151522, 0.0721750), _rgb); + return vec3_splat(yy); +} + +vec4 luma(vec4 _rgba) +{ + return vec4(luma(_rgba.xyz), _rgba.w); +} + +vec3 conSatBri(vec3 _rgb, vec3 _csb) +{ + vec3 rgb = _rgb * _csb.z; + rgb = mix(luma(rgb), rgb, _csb.y); + rgb = mix(vec3_splat(0.5), rgb, _csb.x); + return rgb; +} + +vec4 conSatBri(vec4 _rgba, vec3 _csb) +{ + return vec4(conSatBri(_rgba.xyz, _csb), _rgba.w); +} + +vec3 posterize(vec3 _rgb, float _numColors) +{ + return floor(_rgb*_numColors) / _numColors; +} + +vec4 posterize(vec4 _rgba, float _numColors) +{ + return vec4(posterize(_rgba.xyz, _numColors), _rgba.w); +} + +vec3 sepia(vec3 _rgb) +{ + vec3 color; + color.x = dot(_rgb, vec3(0.393, 0.769, 0.189) ); + color.y = dot(_rgb, vec3(0.349, 0.686, 0.168) ); + color.z = dot(_rgb, vec3(0.272, 0.534, 0.131) ); + return color; +} + +vec4 sepia(vec4 _rgba) +{ + return vec4(sepia(_rgba.xyz), _rgba.w); +} + +vec3 blendOverlay(vec3 _base, vec3 _blend) +{ + vec3 lt = 2.0 * _base * _blend; + vec3 gte = 1.0 - 2.0 * (1.0 - _base) * (1.0 - _blend); + return mix(lt, gte, step(vec3_splat(0.5), _base) ); +} + +vec4 blendOverlay(vec4 _base, vec4 _blend) +{ + return vec4(blendOverlay(_base.xyz, _blend.xyz), _base.w); +} + +vec3 adjustHue(vec3 _rgb, float _hue) +{ + vec3 yiq = convertRGB2YIQ(_rgb); + float angle = _hue + atan2(yiq.z, yiq.y); + float len = length(yiq.yz); + return convertYIQ2RGB(vec3(yiq.x, len*cos(angle), len*sin(angle) ) ); +} + +vec4 packFloatToRgba(float _value) +{ + const vec4 shift = vec4(256 * 256 * 256, 256 * 256, 256, 1.0); + const vec4 mask = vec4(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0); + vec4 comp = fract(_value * shift); + comp -= comp.xxyz * mask; + return comp; +} + +float unpackRgbaToFloat(vec4 _rgba) +{ + const vec4 shift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0); + return dot(_rgba, shift); +} + +vec2 packHalfFloat(float _value) +{ + const vec2 shift = vec2(256, 1.0); + const vec2 mask = vec2(0, 1.0 / 256.0); + vec2 comp = fract(_value * shift); + comp -= comp.xx * mask; + return comp; +} + +float unpackHalfFloat(vec2 _rg) +{ + const vec2 shift = vec2(1.0 / 256.0, 1.0); + return dot(_rg, shift); +} + +float random(vec2 _uv) +{ + return fract(sin(dot(_uv.xy, vec2(12.9898, 78.233) ) ) * 43758.5453); +} + +vec3 fixCubeLookup(vec3 _v, float _lod, float _topLevelCubeSize) +{ + // Reference(s): + // - Seamless cube-map filtering + // https://web.archive.org/web/20190411181934/http://the-witness.net/news/2012/02/seamless-cube-map-filtering/ + float ax = abs(_v.x); + float ay = abs(_v.y); + float az = abs(_v.z); + float vmax = max(max(ax, ay), az); + float scale = 1.0 - exp2(_lod) / _topLevelCubeSize; + if (ax != vmax) { _v.x *= scale; } + if (ay != vmax) { _v.y *= scale; } + if (az != vmax) { _v.z *= scale; } + return _v; +} + +vec2 texture2DBc5(sampler2D _sampler, vec2 _uv) +{ +#if BGFX_SHADER_LANGUAGE_HLSL && BGFX_SHADER_LANGUAGE_HLSL <= 300 + return texture2D(_sampler, _uv).yx; +#else + return texture2D(_sampler, _uv).xy; +#endif +} + +mat3 cofactor(mat4 _m) +{ + // Reference: + // Cofactor of matrix. Use to transform normals. The code assumes the last column of _m is [0,0,0,1]. + // https://www.shadertoy.com/view/3s33zj + // https://github.com/graphitemaster/normals_revisited + return mat3( + _m[1][1]*_m[2][2]-_m[1][2]*_m[2][1], + _m[1][2]*_m[2][0]-_m[1][0]*_m[2][2], + _m[1][0]*_m[2][1]-_m[1][1]*_m[2][0], + _m[0][2]*_m[2][1]-_m[0][1]*_m[2][2], + _m[0][0]*_m[2][2]-_m[0][2]*_m[2][0], + _m[0][1]*_m[2][0]-_m[0][0]*_m[2][1], + _m[0][1]*_m[1][2]-_m[0][2]*_m[1][1], + _m[0][2]*_m[1][0]-_m[0][0]*_m[1][2], + _m[0][0]*_m[1][1]-_m[0][1]*_m[1][0] + ); +} + +float toClipSpaceDepth(float _depthTextureZ) +{ +#if BGFX_SHADER_LANGUAGE_GLSL + return _depthTextureZ * 2.0 - 1.0; +#else + return _depthTextureZ; +#endif // BGFX_SHADER_LANGUAGE_GLSL +} + +vec3 clipToWorld(mat4 _invViewProj, vec3 _clipPos) +{ + vec4 wpos = mul(_invViewProj, vec4(_clipPos, 1.0) ); + return wpos.xyz / wpos.w; +} + +#endif // __SHADERLIB_SH__ diff --git a/libs/bgfx/src/bgfx.cpp b/libs/bgfx/src/bgfx.cpp index 8b39c3b..a26d7f6 100644 --- a/libs/bgfx/src/bgfx.cpp +++ b/libs/bgfx/src/bgfx.cpp @@ -69,10 +69,99 @@ namespace bgfx } #endif // BGFX_CONFIG_USE_TINYSTL + struct Superluminal + { + struct SuppressTailCallOptimization + { + int64_t SuppressTailCall[3]; + }; + + typedef void (*SuperluminalBeginEventtFn)(const char* _inID, const char* _inData, uint32_t _inColor); + typedef SuppressTailCallOptimization(*SuperluminalEndEventFn)(); + + static void stubSuperluminalBeginEvent(const char* _inID, const char* _inData, uint32_t _inColor) + { + BX_UNUSED(_inID, _inData, _inColor); + } + + static SuppressTailCallOptimization stubSuperluminalEndEvent() + { + return {}; + } + + bool init() + { + if (!BX_ENABLED(BGFX_CONFIG_PROFILER) ) + { + return false; + } + + const char* superluminalDllName = "PerformanceAPI.dll"; + superluminalDll = bx::dlopen(superluminalDllName); + + if (NULL != superluminalDll) + { + void* funcPtrs[11]; + + typedef int (*PerformanceAPI_GetAPI)(int32_t _version, void** _funcPtrs); + + constexpr int32_t version = 0x30000; + + PerformanceAPI_GetAPI getApi = bx::dlsym(superluminalDll, "PerformanceAPI_GetAPI"); + if (NULL == getApi) + { + BX_TRACE("Failed to obtain Superluminal's %s GetAPI function!", superluminalDllName); + bx::dlclose(superluminalDll); + return false; + } + + if (getApi(version, funcPtrs) ) + { + BX_TRACE("Superluminal's PerformanceAPI.dll is loaded!"); + beginEvent = (SuperluminalBeginEventtFn)funcPtrs[2]; + endEvent = (SuperluminalEndEventFn )funcPtrs[6]; + return true; + } + + BX_TRACE("Failed to obtain Superluminal's %s GetAPI function!", superluminalDllName); + bx::dlclose(superluminalDll); + } + else + { + BX_TRACE("Failed to load Superluminal's %s!", superluminalDllName); + } + + return false; + } + + void shutdown() + { + if (NULL != superluminalDll) + { + bx::dlclose(superluminalDll); + superluminalDll = NULL; + beginEvent = stubSuperluminalBeginEvent; + endEvent = stubSuperluminalEndEvent; + } + } + + void* superluminalDll = NULL; + SuperluminalBeginEventtFn beginEvent = stubSuperluminalBeginEvent; + SuperluminalEndEventFn endEvent = stubSuperluminalEndEvent; + }; + struct CallbackStub : public CallbackI { + Superluminal m_superluminal; + + CallbackStub() + { + m_superluminal.init(); + } + virtual ~CallbackStub() { + m_superluminal.shutdown(); } virtual void fatal(const char* _filePath, uint16_t _line, Fatal::Enum _code, const char* _str) override @@ -108,16 +197,19 @@ namespace bgfx bx::debugOutput(out); } - virtual void profilerBegin(const char* /*_name*/, uint32_t /*_abgr*/, const char* /*_filePath*/, uint16_t /*_line*/) override + virtual void profilerBegin(const char* _name, uint32_t _abgr, const char* /*_filePath*/, uint16_t /*_line*/) override { + m_superluminal.beginEvent(" ", _name, _abgr); } - virtual void profilerBeginLiteral(const char* /*_name*/, uint32_t /*_abgr*/, const char* /*_filePath*/, uint16_t /*_line*/) override + virtual void profilerBeginLiteral(const char* _name, uint32_t _abgr, const char* /*_filePath*/, uint16_t /*_line*/) override { + m_superluminal.beginEvent(_name, NULL, _abgr); } virtual void profilerEnd() override { + m_superluminal.endEvent(); } virtual uint32_t cacheReadSize(uint64_t /*_id*/) override @@ -1380,7 +1472,7 @@ namespace bgfx void Frame::sort() { - BGFX_PROFILER_SCOPE("bgfx/Sort", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/Sort", kColorSubmit); ViewId viewRemap[BGFX_CONFIG_MAX_VIEWS]; for (uint32_t ii = 0; ii < BGFX_CONFIG_MAX_VIEWS; ++ii) @@ -2322,7 +2414,7 @@ namespace bgfx uint32_t frameNum = m_submit->m_frameNum; - BGFX_PROFILER_SCOPE("bgfx/API thread frame", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/API thread frame", kColorSubmit); // wait for render thread to finish renderSemWait(); frameNoRenderWait(); @@ -2441,7 +2533,7 @@ namespace bgfx RenderFrame::Enum Context::renderFrame(int32_t _msecs) { - BGFX_PROFILER_SCOPE("bgfx::renderFrame", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx::renderFrame", kColorSubmit); #if BX_PLATFORM_OSX || BX_PLATFORM_IOS || BX_PLATFORM_VISIONOS NSAutoreleasePoolScope pool; @@ -2449,27 +2541,27 @@ namespace bgfx if (!m_flipAfterRender) { - BGFX_PROFILER_SCOPE("bgfx/flip", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/flip", kColorSubmit); flip(); } if (apiSemWait(_msecs) ) { { - BGFX_PROFILER_SCOPE("bgfx/Exec commands pre", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/Exec commands pre", kColorResource); rendererExecCommands(m_render->m_cmdPre); } if (m_rendererInitialized) { { - BGFX_PROFILER_SCOPE("bgfx/Render submit", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/Render submit", kColorSubmit); m_renderCtx->submit(m_render, m_clearQuad, m_textVideoMemBlitter); m_flipped = false; } { - BGFX_PROFILER_SCOPE("bgfx/Screenshot", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/Screenshot", kColorResource); for (uint8_t ii = 0, num = m_render->m_numScreenShots; ii < num; ++ii) { const ScreenShot& screenShot = m_render->m_screenShot[ii]; @@ -2479,7 +2571,7 @@ namespace bgfx } { - BGFX_PROFILER_SCOPE("bgfx/Exec commands post", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/Exec commands post", kColorResource); rendererExecCommands(m_render->m_cmdPost); } @@ -2487,7 +2579,7 @@ namespace bgfx if (m_flipAfterRender) { - BGFX_PROFILER_SCOPE("bgfx/flip", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/flip", kColorSubmit); flip(); } } @@ -2543,7 +2635,7 @@ namespace bgfx void Context::flushTextureUpdateBatch(CommandBuffer& _cmdbuf) { - BGFX_PROFILER_SCOPE("flushTextureUpdateBatch", 0xff2040ff); + BGFX_PROFILER_SCOPE("flushTextureUpdateBatch", kColorResource); if (m_textureUpdateBatch.sort() ) { const uint32_t pos = _cmdbuf.m_pos; @@ -2954,7 +3046,7 @@ namespace bgfx case CommandBuffer::CreateIndexBuffer: { - BGFX_PROFILER_SCOPE("CreateIndexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateIndexBuffer", kColorResource); IndexBufferHandle handle; _cmdbuf.read(handle); @@ -2973,7 +3065,7 @@ namespace bgfx case CommandBuffer::DestroyIndexBuffer: { - BGFX_PROFILER_SCOPE("DestroyIndexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyIndexBuffer", kColorResource); IndexBufferHandle handle; _cmdbuf.read(handle); @@ -2984,7 +3076,7 @@ namespace bgfx case CommandBuffer::CreateVertexLayout: { - BGFX_PROFILER_SCOPE("CreateVertexLayout", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateVertexLayout", kColorResource); VertexLayoutHandle handle; _cmdbuf.read(handle); @@ -2998,7 +3090,7 @@ namespace bgfx case CommandBuffer::DestroyVertexLayout: { - BGFX_PROFILER_SCOPE("DestroyVertexLayout", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyVertexLayout", kColorResource); VertexLayoutHandle handle; _cmdbuf.read(handle); @@ -3009,7 +3101,7 @@ namespace bgfx case CommandBuffer::CreateVertexBuffer: { - BGFX_PROFILER_SCOPE("CreateVertexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateVertexBuffer", kColorResource); VertexBufferHandle handle; _cmdbuf.read(handle); @@ -3031,7 +3123,7 @@ namespace bgfx case CommandBuffer::DestroyVertexBuffer: { - BGFX_PROFILER_SCOPE("DestroyVertexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyVertexBuffer", kColorResource); VertexBufferHandle handle; _cmdbuf.read(handle); @@ -3042,7 +3134,7 @@ namespace bgfx case CommandBuffer::CreateDynamicIndexBuffer: { - BGFX_PROFILER_SCOPE("CreateDynamicIndexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateDynamicIndexBuffer", kColorResource); IndexBufferHandle handle; _cmdbuf.read(handle); @@ -3059,7 +3151,7 @@ namespace bgfx case CommandBuffer::UpdateDynamicIndexBuffer: { - BGFX_PROFILER_SCOPE("UpdateDynamicIndexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("UpdateDynamicIndexBuffer", kColorResource); IndexBufferHandle handle; _cmdbuf.read(handle); @@ -3081,7 +3173,7 @@ namespace bgfx case CommandBuffer::DestroyDynamicIndexBuffer: { - BGFX_PROFILER_SCOPE("DestroyDynamicIndexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyDynamicIndexBuffer", kColorResource); IndexBufferHandle handle; _cmdbuf.read(handle); @@ -3092,7 +3184,7 @@ namespace bgfx case CommandBuffer::CreateDynamicVertexBuffer: { - BGFX_PROFILER_SCOPE("CreateDynamicVertexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateDynamicVertexBuffer", kColorResource); VertexBufferHandle handle; _cmdbuf.read(handle); @@ -3109,7 +3201,7 @@ namespace bgfx case CommandBuffer::UpdateDynamicVertexBuffer: { - BGFX_PROFILER_SCOPE("UpdateDynamicVertexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("UpdateDynamicVertexBuffer", kColorResource); VertexBufferHandle handle; _cmdbuf.read(handle); @@ -3131,7 +3223,7 @@ namespace bgfx case CommandBuffer::DestroyDynamicVertexBuffer: { - BGFX_PROFILER_SCOPE("DestroyDynamicVertexBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyDynamicVertexBuffer", kColorResource); VertexBufferHandle handle; _cmdbuf.read(handle); @@ -3142,7 +3234,7 @@ namespace bgfx case CommandBuffer::CreateShader: { - BGFX_PROFILER_SCOPE("CreateShader", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateShader", kColorResource); ShaderHandle handle; _cmdbuf.read(handle); @@ -3158,7 +3250,7 @@ namespace bgfx case CommandBuffer::DestroyShader: { - BGFX_PROFILER_SCOPE("DestroyShader", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyShader", kColorResource); ShaderHandle handle; _cmdbuf.read(handle); @@ -3169,7 +3261,7 @@ namespace bgfx case CommandBuffer::CreateProgram: { - BGFX_PROFILER_SCOPE("CreateProgram", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateProgram", kColorResource); ProgramHandle handle; _cmdbuf.read(handle); @@ -3186,7 +3278,7 @@ namespace bgfx case CommandBuffer::DestroyProgram: { - BGFX_PROFILER_SCOPE("DestroyProgram", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyProgram", kColorResource); ProgramHandle handle; _cmdbuf.read(handle); @@ -3197,7 +3289,7 @@ namespace bgfx case CommandBuffer::CreateTexture: { - BGFX_PROFILER_SCOPE("CreateTexture", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateTexture", kColorResource); TextureHandle handle; _cmdbuf.read(handle); @@ -3240,7 +3332,7 @@ namespace bgfx case CommandBuffer::UpdateTexture: { - BGFX_PROFILER_SCOPE("UpdateTexture", 0xff2040ff); + BGFX_PROFILER_SCOPE("UpdateTexture", kColorResource); if (m_textureUpdateBatch.isFull() ) { @@ -3275,7 +3367,7 @@ namespace bgfx case CommandBuffer::ReadTexture: { - BGFX_PROFILER_SCOPE("ReadTexture", 0xff2040ff); + BGFX_PROFILER_SCOPE("ReadTexture", kColorResource); TextureHandle handle; _cmdbuf.read(handle); @@ -3292,7 +3384,7 @@ namespace bgfx case CommandBuffer::ResizeTexture: { - BGFX_PROFILER_SCOPE("ResizeTexture", 0xff2040ff); + BGFX_PROFILER_SCOPE("ResizeTexture", kColorResource); TextureHandle handle; _cmdbuf.read(handle); @@ -3315,7 +3407,7 @@ namespace bgfx case CommandBuffer::DestroyTexture: { - BGFX_PROFILER_SCOPE("DestroyTexture", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyTexture", kColorResource); TextureHandle handle; _cmdbuf.read(handle); @@ -3326,7 +3418,7 @@ namespace bgfx case CommandBuffer::CreateFrameBuffer: { - BGFX_PROFILER_SCOPE("CreateFrameBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateFrameBuffer", kColorResource); FrameBufferHandle handle; _cmdbuf.read(handle); @@ -3368,7 +3460,7 @@ namespace bgfx case CommandBuffer::DestroyFrameBuffer: { - BGFX_PROFILER_SCOPE("DestroyFrameBuffer", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyFrameBuffer", kColorResource); FrameBufferHandle handle; _cmdbuf.read(handle); @@ -3379,7 +3471,7 @@ namespace bgfx case CommandBuffer::CreateUniform: { - BGFX_PROFILER_SCOPE("CreateUniform", 0xff2040ff); + BGFX_PROFILER_SCOPE("CreateUniform", kColorResource); UniformHandle handle; _cmdbuf.read(handle); @@ -3401,7 +3493,7 @@ namespace bgfx case CommandBuffer::DestroyUniform: { - BGFX_PROFILER_SCOPE("DestroyUniform", 0xff2040ff); + BGFX_PROFILER_SCOPE("DestroyUniform", kColorResource); UniformHandle handle; _cmdbuf.read(handle); @@ -3412,7 +3504,7 @@ namespace bgfx case CommandBuffer::UpdateViewName: { - BGFX_PROFILER_SCOPE("UpdateViewName", 0xff2040ff); + BGFX_PROFILER_SCOPE("UpdateViewName", kColorResource); ViewId id; _cmdbuf.read(id); @@ -3428,7 +3520,7 @@ namespace bgfx case CommandBuffer::InvalidateOcclusionQuery: { - BGFX_PROFILER_SCOPE("InvalidateOcclusionQuery", 0xff2040ff); + BGFX_PROFILER_SCOPE("InvalidateOcclusionQuery", kColorResource); OcclusionQueryHandle handle; _cmdbuf.read(handle); @@ -3439,7 +3531,7 @@ namespace bgfx case CommandBuffer::SetName: { - BGFX_PROFILER_SCOPE("SetName", 0xff2040ff); + BGFX_PROFILER_SCOPE("SetName", kColorResource); Handle handle; _cmdbuf.read(handle); diff --git a/libs/bgfx/src/bgfx_p.h b/libs/bgfx/src/bgfx_p.h index e80b38b..55e4eca 100644 --- a/libs/bgfx/src/bgfx_p.h +++ b/libs/bgfx/src/bgfx_p.h @@ -287,6 +287,27 @@ namespace bgfx { constexpr uint32_t kChunkMagicTex = BX_MAKEFOURCC('T', 'E', 'X', 0x0); + inline constexpr uint32_t toAbgr8(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a = 0xff) + { + return 0 + | (uint32_t(_r) << 24) + | (uint32_t(_g) << 16) + | (uint32_t(_b) << 8) + | (uint32_t(_a)) + ; + } + + // Palette: + // https://colorkit.co/color-palette-generator/a8e6cf-dcedc1-ffd3b6-76b4bd-bdeaee-8874a3-ff0000-ff8b94/ + constexpr uint32_t kColorFrame = toAbgr8(0xa8, 0xe6, 0xcf); + constexpr uint32_t kColorSubmit = toAbgr8(0xdc, 0xed, 0xc1); + constexpr uint32_t kColorView = toAbgr8(0xff, 0xd3, 0xb6); + constexpr uint32_t kColorDraw = toAbgr8(0x76, 0xb4, 0xbd); + constexpr uint32_t kColorCompute = toAbgr8(0xbd, 0xea, 0xee); + constexpr uint32_t kColorResource = toAbgr8(0x88, 0x74, 0xa3); + constexpr uint32_t kColorMarker = toAbgr8(0xff, 0x00, 0x00); + constexpr uint32_t kColorWait = toAbgr8(0xff, 0x8b, 0x94); + extern InternalData g_internalData; extern PlatformData g_platformData; extern bool g_platformDataChangedSinceReset; @@ -2157,8 +2178,8 @@ namespace bgfx { using KeyT = uint64_t; - static constexpr uint8_t kViewShift = sizeof(KeyT)*8-kSortKeyViewNumBits; - static constexpr KeyT kViewMask = KeyT(BGFX_CONFIG_MAX_VIEWS-1)<m_uniformBuffer[m_uniformIdx]); @@ -3305,6 +3328,7 @@ namespace bgfx , "Truncated uniform update. %d (max: %d)" , _num, uniform.m_num ); + BX_UNUSED(freq); UniformCacheKey key = { @@ -3613,7 +3637,7 @@ namespace bgfx BX_TRACE("render thread exit"); return bx::kExitSuccess; } -#endif +#endif // BX_CONFIG_SUPPORTS_THREADING // game thread bool init(const Init& _init); @@ -5690,7 +5714,7 @@ namespace bgfx return true; } - BGFX_PROFILER_SCOPE("bgfx/API thread wait", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/API thread wait", kColorWait); int64_t start = bx::getHPCounter(); bool ok = m_apiSem.wait(_msecs); if (ok) @@ -5715,7 +5739,7 @@ namespace bgfx { if (!m_singleThreaded) { - BGFX_PROFILER_SCOPE("bgfx/Render thread wait", 0xff2040ff); + BGFX_PROFILER_SCOPE("bgfx/Render thread wait", kColorWait); int64_t start = bx::getHPCounter(); bool ok = m_renderSem.wait(); BX_ASSERT(ok, "Semaphore wait failed."); BX_UNUSED(ok); diff --git a/libs/bgfx/src/renderer.h b/libs/bgfx/src/renderer.h index 743e90d..0d7527a 100644 --- a/libs/bgfx/src/renderer.h +++ b/libs/bgfx/src/renderer.h @@ -10,23 +10,6 @@ namespace bgfx { - inline constexpr uint32_t toAbgr8(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a = 0xff) - { - return 0 - | (uint32_t(_r)<<24) - | (uint32_t(_g)<<16) - | (uint32_t(_b)<< 8) - | (uint32_t(_a) ) - ; - } - - constexpr uint32_t kColorFrame = toAbgr8(0xff, 0xd7, 0xc9); - constexpr uint32_t kColorView = toAbgr8(0xe4, 0xb4, 0x8e); - constexpr uint32_t kColorDraw = toAbgr8(0xc6, 0xe5, 0xb9); - constexpr uint32_t kColorCompute = toAbgr8(0xa7, 0xdb, 0xd8); - constexpr uint32_t kColorMarker = toAbgr8(0xff, 0x00, 0x00); - constexpr uint32_t kColorResource = toAbgr8(0xff, 0x40, 0x20); - struct BlitState { BlitState(const Frame* _frame) diff --git a/libs/bgfx/src/renderer_d3d11.cpp b/libs/bgfx/src/renderer_d3d11.cpp index a3b34a5..d322f32 100644 --- a/libs/bgfx/src/renderer_d3d11.cpp +++ b/libs/bgfx/src/renderer_d3d11.cpp @@ -5406,7 +5406,7 @@ namespace bgfx { namespace d3d11 bool TimerQueryD3D11::update() { - if (0 != m_control.available() ) + if (0 != m_control.getNumUsed() ) { Query& query = m_query[m_control.m_read]; @@ -5498,7 +5498,7 @@ namespace bgfx { namespace d3d11 { ID3D11DeviceContext* deviceCtx = s_renderD3D11->m_deviceCtx; - while (0 != m_control.available() ) + while (0 != m_control.getNumUsed() ) { Query& query = m_query[m_control.m_read]; @@ -5522,7 +5522,7 @@ namespace bgfx { namespace d3d11 { const uint32_t size = m_control.m_size; - for (uint32_t ii = 0, num = m_control.available(); ii < num; ++ii) + for (uint32_t ii = 0, num = m_control.getNumUsed(); ii < num; ++ii) { Query& query = m_query[(m_control.m_read + ii) % size]; if (query.m_handle.idx == _handle.idx) @@ -6667,7 +6667,7 @@ namespace bgfx { namespace d3d11 tvm.printf(10, pos++, 0x8b, " DIB size: %7d ", _render->m_iboffset); pos++; - tvm.printf(10, pos++, 0x8b, " Occlusion queries: %3d ", m_occlusionQuery.m_control.available() ); + tvm.printf(10, pos++, 0x8b, " Occlusion queries: %3d ", m_occlusionQuery.m_control.getNumUsed() ); pos++; tvm.printf(10, pos++, 0x8b, " State cache: "); diff --git a/libs/bgfx/src/renderer_d3d12.cpp b/libs/bgfx/src/renderer_d3d12.cpp index 5bb209b..5f29b18 100644 --- a/libs/bgfx/src/renderer_d3d12.cpp +++ b/libs/bgfx/src/renderer_d3d12.cpp @@ -4201,7 +4201,7 @@ namespace bgfx { namespace d3d12 void CommandQueueD3D12::finish(uint64_t _waitFence, bool _finishAll) { - while (0 < m_control.available() ) + while (0 < m_control.getNumUsed() ) { consume(); @@ -4212,12 +4212,12 @@ namespace bgfx { namespace d3d12 } } - BX_ASSERT(0 == m_control.available(), ""); + BX_ASSERT(0 == m_control.getNumUsed(), ""); } bool CommandQueueD3D12::tryFinish(uint64_t _waitFence) { - if (0 < m_control.available() ) + if (0 < m_control.getNumUsed() ) { if (consume(0) && _waitFence <= m_completedFence) @@ -6245,7 +6245,7 @@ namespace bgfx { namespace d3d12 bool TimerQueryD3D12::update() { - if (0 != m_control.available() ) + if (0 != m_control.getNumUsed() ) { uint32_t idx = m_control.m_read; Query& query = m_query[idx]; @@ -6346,7 +6346,7 @@ namespace bgfx { namespace d3d12 { const uint32_t size = m_control.m_size; - for (uint32_t ii = 0, num = m_control.available(); ii < num; ++ii) + for (uint32_t ii = 0, num = m_control.getNumUsed(); ii < num; ++ii) { OcclusionQueryHandle& handle = m_handle[(m_control.m_read + ii) % size]; if (handle.idx == _handle.idx) @@ -7369,7 +7369,7 @@ namespace bgfx { namespace d3d12 maxGpuLatency = bx::uint32_imax(maxGpuLatency, result.m_pending-1); } - maxGpuLatency = bx::uint32_imax(maxGpuLatency, m_gpuTimer.m_control.available()-1); + maxGpuLatency = bx::uint32_imax(maxGpuLatency, m_gpuTimer.m_control.getNumUsed()-1); const int64_t timerFreq = bx::getHPFrequency(); @@ -7558,7 +7558,7 @@ namespace bgfx { namespace d3d12 , m_pipelineStateCache.getCount() , m_samplerStateCache.getCount() , bindLru.getCount() - , m_cmd.m_control.available() + , m_cmd.m_control.getNumUsed() ); pos++; diff --git a/libs/bgfx/src/renderer_gl.cpp b/libs/bgfx/src/renderer_gl.cpp index f2554e6..1f14995 100644 --- a/libs/bgfx/src/renderer_gl.cpp +++ b/libs/bgfx/src/renderer_gl.cpp @@ -3761,7 +3761,7 @@ namespace bgfx { namespace gl ? m_maxAnisotropyDefault : 0.0f ; - + if (m_maxAnisotropy != maxAnisotropy) { m_maxAnisotropy = maxAnisotropy; @@ -7366,7 +7366,7 @@ namespace bgfx { namespace gl void OcclusionQueryGL::resolve(Frame* _render, bool _wait) { - while (0 != m_control.available() ) + while (0 != m_control.getNumUsed() ) { Query& query = m_query[m_control.m_read]; @@ -7396,7 +7396,7 @@ namespace bgfx { namespace gl { const uint32_t size = m_control.m_size; - for (uint32_t ii = 0, num = m_control.available(); ii < num; ++ii) + for (uint32_t ii = 0, num = m_control.getNumUsed(); ii < num; ++ii) { Query& query = m_query[(m_control.m_read + ii) % size]; if (query.m_handle.idx == _handle.idx) diff --git a/libs/bgfx/src/renderer_gl.h b/libs/bgfx/src/renderer_gl.h index 6847db8..676ff3a 100644 --- a/libs/bgfx/src/renderer_gl.h +++ b/libs/bgfx/src/renderer_gl.h @@ -1645,7 +1645,7 @@ namespace bgfx { namespace gl bool update() { - if (0 != m_control.available() ) + if (0 != m_control.getNumUsed() ) { Query& query = m_query[m_control.m_read]; diff --git a/libs/bgfx/src/renderer_mtl.mm b/libs/bgfx/src/renderer_mtl.mm index 4f9c442..807bd9d 100644 --- a/libs/bgfx/src/renderer_mtl.mm +++ b/libs/bgfx/src/renderer_mtl.mm @@ -3174,8 +3174,6 @@ void writeString(bx::WriterI* _writer, const char* _str) m_ptrStencil = s_renderMtl->m_device.newTextureWithDescriptor(desc); } - MTL_RELEASE(desc, 0); - uint8_t* temp = NULL; if (convert) { @@ -3252,6 +3250,8 @@ void writeString(bx::WriterI* _writer, const char* _str) depth >>= 1; } } + + MTL_RELEASE(desc, 0); if (NULL != temp) { @@ -3994,7 +3994,7 @@ static void setTimestamp(void* _data) bool TimerQueryMtl::get() { - if (0 != m_control.available() ) + if (0 != m_control.getNumUsed() ) { uint32_t offset = m_control.m_read; m_begin = m_result[offset].m_begin; @@ -4044,7 +4044,7 @@ static void setTimestamp(void* _data) { BX_UNUSED(_wait); - while (0 != m_control.available() ) + while (0 != m_control.getNumUsed() ) { Query& query = m_query[m_control.m_read]; @@ -4062,7 +4062,7 @@ static void setTimestamp(void* _data) { const uint32_t size = m_control.m_size; - for (uint32_t ii = 0, num = m_control.available(); ii < num; ++ii) + for (uint32_t ii = 0, num = m_control.getNumUsed(); ii < num; ++ii) { Query& query = m_query[(m_control.m_read + ii) % size]; if (query.m_handle.idx == _handle.idx) @@ -5280,7 +5280,7 @@ static void setTimestamp(void* _data) } while (m_gpuTimer.get() ); - maxGpuLatency = bx::uint32_imax(maxGpuLatency, m_gpuTimer.m_control.available()-1); + maxGpuLatency = bx::uint32_imax(maxGpuLatency, m_gpuTimer.m_control.getNumUsed()-1); const int64_t timerFreq = bx::getHPFrequency(); diff --git a/libs/bgfx/src/renderer_vk.cpp b/libs/bgfx/src/renderer_vk.cpp index 63de6f5..ba34971 100644 --- a/libs/bgfx/src/renderer_vk.cpp +++ b/libs/bgfx/src/renderer_vk.cpp @@ -894,8 +894,6 @@ VK_IMPORT_DEVICE VKENUM(VK_INCOMPLETE); VKENUM(VK_ERROR_OUT_OF_HOST_MEMORY); VKENUM(VK_ERROR_OUT_OF_DEVICE_MEMORY); - VKENUM(VK_ERROR_OUT_OF_POOL_MEMORY); - VKENUM(VK_ERROR_FRAGMENTED_POOL); VKENUM(VK_ERROR_INITIALIZATION_FAILED); VKENUM(VK_ERROR_DEVICE_LOST); VKENUM(VK_ERROR_MEMORY_MAP_FAILED); @@ -905,12 +903,20 @@ VK_IMPORT_DEVICE VKENUM(VK_ERROR_INCOMPATIBLE_DRIVER); VKENUM(VK_ERROR_TOO_MANY_OBJECTS); VKENUM(VK_ERROR_FORMAT_NOT_SUPPORTED); + VKENUM(VK_ERROR_FRAGMENTED_POOL); + VKENUM(VK_ERROR_UNKNOWN); + VKENUM(VK_ERROR_VALIDATION_FAILED); + VKENUM(VK_ERROR_OUT_OF_POOL_MEMORY); + VKENUM(VK_ERROR_INVALID_EXTERNAL_HANDLE); + VKENUM(VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS); + VKENUM(VK_ERROR_FRAGMENTATION); + VKENUM(VK_PIPELINE_COMPILE_REQUIRED); + VKENUM(VK_ERROR_NOT_PERMITTED); VKENUM(VK_ERROR_SURFACE_LOST_KHR); VKENUM(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR); VKENUM(VK_SUBOPTIMAL_KHR); VKENUM(VK_ERROR_OUT_OF_DATE_KHR); VKENUM(VK_ERROR_INCOMPATIBLE_DISPLAY_KHR); - VKENUM(VK_ERROR_VALIDATION_FAILED_EXT); #undef VKENUM default: break; } @@ -922,26 +928,26 @@ VK_IMPORT_DEVICE template constexpr VkObjectType getType(); - template<> VkObjectType getType() { return VK_OBJECT_TYPE_BUFFER; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_COMMAND_POOL; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_DESCRIPTOR_POOL; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_DESCRIPTOR_SET; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_DEVICE_MEMORY; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_FENCE; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_FRAMEBUFFER; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_IMAGE; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_IMAGE_VIEW; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_PIPELINE; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_PIPELINE_CACHE; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_PIPELINE_LAYOUT; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_QUERY_POOL; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_RENDER_PASS; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_SAMPLER; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_SEMAPHORE; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_SHADER_MODULE; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_SURFACE_KHR; } - template<> VkObjectType getType() { return VK_OBJECT_TYPE_SWAPCHAIN_KHR; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_BUFFER; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_COMMAND_POOL; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_DESCRIPTOR_POOL; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_DESCRIPTOR_SET; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_DEVICE_MEMORY; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_FENCE; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_FRAMEBUFFER; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_IMAGE; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_IMAGE_VIEW; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_PIPELINE; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_PIPELINE_CACHE; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_PIPELINE_LAYOUT; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_QUERY_POOL; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_RENDER_PASS; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_SAMPLER; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_SEMAPHORE; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_SHADER_MODULE; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_SURFACE_KHR; } + template<> constexpr VkObjectType getType() { return VK_OBJECT_TYPE_SWAPCHAIN_KHR; } template static BX_NO_INLINE void setDebugObjectName(VkDevice _device, Ty _object, const char* _format, ...) @@ -963,7 +969,7 @@ VK_IMPORT_DEVICE ni.objectHandle = uint64_t(_object.vk); ni.pObjectName = temp; - VK_CHECK(vkSetDebugUtilsObjectNameEXT(_device, &ni) ); + VK_CHECK_W(vkSetDebugUtilsObjectNameEXT(_device, &ni) ); } } @@ -2082,14 +2088,7 @@ VK_IMPORT_DEVICE } { - const uint32_t size = 128; - const uint32_t count = BGFX_CONFIG_MAX_DRAW_CALLS; - - for (uint32_t ii = 0; ii < m_maxFrameLatency; ++ii) - { - BX_TRACE("Create scratch buffer %d", ii); - m_scratchBuffer[ii].createUniform(size, count); - } + m_uniformScratchBuffer.createUniform(2<<20, m_maxFrameLatency*2); for (uint32_t ii = 0; ii < m_maxFrameLatency; ++ii) { @@ -2159,9 +2158,10 @@ VK_IMPORT_DEVICE [[fallthrough]]; case ErrorState::DescriptorCreated: + m_uniformScratchBuffer.destroy(); + for (uint32_t ii = 0; ii < m_maxFrameLatency; ++ii) { - m_scratchBuffer[ii].destroy(); m_scratchStagingBuffer[ii].destroy(); vkDestroy(m_descriptorPool[ii]); } @@ -2222,10 +2222,7 @@ VK_IMPORT_DEVICE m_samplerBorderColorCache.invalidate(); m_imageViewCache.invalidate(); - for (uint32_t ii = 0; ii < m_maxFrameLatency; ++ii) - { - m_scratchBuffer[ii].destroy(); - } + m_uniformScratchBuffer.destroy(); for (uint32_t ii = 0; ii < m_maxFrameLatency; ++ii) { @@ -2742,8 +2739,10 @@ VK_IMPORT_DEVICE commit(*vcb); } - ScratchBufferVK& scratchBuffer = m_scratchBuffer[m_cmd.m_currentFrameInFlight]; - const uint32_t bufferOffset = scratchBuffer.write(m_vsScratch, program.m_vsh->m_size); + ChunkedScratchBufferVK& uniformScratchBuffer = m_uniformScratchBuffer; + + ChunkedScratchBufferOffset sbo; + uniformScratchBuffer.write(sbo, m_vsScratch, program.m_vsh->m_size); const TextureVK& texture = m_textures[_blitter.m_texture.idx]; @@ -2753,7 +2752,7 @@ VK_IMPORT_DEVICE bind.m_bind[0].m_idx = _blitter.m_texture.idx; bind.m_bind[0].m_samplerFlags = (uint32_t)(texture.m_flags & BGFX_SAMPLER_BITS_MASK); - const VkDescriptorSet descriptorSet = getDescriptorSet(program, bind, scratchBuffer, NULL); + const VkDescriptorSet descriptorSet = getDescriptorSet(program, bind, sbo.buffer, NULL); vkCmdBindDescriptorSets( m_commandBuffer @@ -2763,7 +2762,7 @@ VK_IMPORT_DEVICE , 1 , &descriptorSet , 1 - , &bufferOffset + , sbo.offsets ); const VertexBufferVK& vb = m_vertexBuffers[_blitter.m_vb->handle.idx]; @@ -3927,7 +3926,7 @@ VK_IMPORT_DEVICE return pipeline; } - VkDescriptorSet getDescriptorSet(const ProgramVK& program, const RenderBind& renderBind, const ScratchBufferVK& scratchBuffer, const float _palette[][4]) + VkDescriptorSet getDescriptorSet(const ProgramVK& _program, const RenderBind& _renderBind, VkBuffer _uniformBuffer, const float _palette[][4]) { VkDescriptorSet descriptorSet; @@ -3936,7 +3935,7 @@ VK_IMPORT_DEVICE dsai.pNext = NULL; dsai.descriptorPool = m_descriptorPool[m_cmd.m_currentFrameInFlight]; dsai.descriptorSetCount = 1; - dsai.pSetLayouts = &program.m_descriptorSetLayout; + dsai.pSetLayouts = &_program.m_descriptorSetLayout; VK_CHECK(vkAllocateDescriptorSets(m_device, &dsai, &descriptorSet) ); @@ -3952,8 +3951,8 @@ VK_IMPORT_DEVICE for (uint32_t stage = 0; stage < BGFX_CONFIG_MAX_TEXTURE_SAMPLERS; ++stage) { - const Binding& bind = renderBind.m_bind[stage]; - const BindInfo& bindInfo = program.m_bindInfo[stage]; + const Binding& bind = _renderBind.m_bind[stage]; + const BindInfo& bindInfo = _program.m_bindInfo[stage]; if (kInvalidHandle != bind.m_idx && isValid(bindInfo.uniformHandle) ) @@ -3983,7 +3982,7 @@ VK_IMPORT_DEVICE VkImageViewType type = texture.m_type; if (UINT32_MAX != bindInfo.index) { - type = program.m_textures[bindInfo.index].type; + type = _program.m_textures[bindInfo.index].type; } else if (type == VK_IMAGE_VIEW_TYPE_CUBE || type == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY) @@ -4052,7 +4051,7 @@ VK_IMPORT_DEVICE const VkImageViewType type = UINT32_MAX == bindInfo.index ? texture.m_type - : program.m_textures[bindInfo.index].type + : _program.m_textures[bindInfo.index].type ; BX_ASSERT( @@ -4101,19 +4100,19 @@ VK_IMPORT_DEVICE } } - const uint32_t vsize = program.m_vsh->m_size; - const uint32_t fsize = NULL != program.m_fsh ? program.m_fsh->m_size : 0; + const uint32_t vsSize = _program.m_vsh->m_size; + const uint32_t fsSize = NULL != _program.m_fsh ? _program.m_fsh->m_size : 0; - if (vsize > 0) + if (0 < vsSize) { - bufferInfo[bufferCount].buffer = scratchBuffer.m_buffer; + bufferInfo[bufferCount].buffer = _uniformBuffer; bufferInfo[bufferCount].offset = 0; - bufferInfo[bufferCount].range = vsize; + bufferInfo[bufferCount].range = vsSize; wds[wdsCount].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; wds[wdsCount].pNext = NULL; wds[wdsCount].dstSet = descriptorSet; - wds[wdsCount].dstBinding = program.m_vsh->m_uniformBinding; + wds[wdsCount].dstBinding = _program.m_vsh->m_uniformBinding; wds[wdsCount].dstArrayElement = 0; wds[wdsCount].descriptorCount = 1; wds[wdsCount].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; @@ -4124,16 +4123,16 @@ VK_IMPORT_DEVICE ++bufferCount; } - if (fsize > 0) + if (0 < fsSize) { - bufferInfo[bufferCount].buffer = scratchBuffer.m_buffer; + bufferInfo[bufferCount].buffer = _uniformBuffer; bufferInfo[bufferCount].offset = 0; - bufferInfo[bufferCount].range = fsize; + bufferInfo[bufferCount].range = fsSize; wds[wdsCount].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; wds[wdsCount].pNext = NULL; wds[wdsCount].dstSet = descriptorSet; - wds[wdsCount].dstBinding = program.m_fsh->m_uniformBinding; + wds[wdsCount].dstBinding = _program.m_fsh->m_uniformBinding; wds[wdsCount].dstArrayElement = 0; wds[wdsCount].descriptorCount = 1; wds[wdsCount].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; @@ -4593,7 +4592,7 @@ VK_IMPORT_DEVICE BGFX_PROFILER_SCOPE("RendererContextVK::allocFromScratchStagingBuffer", kColorResource); StagingBufferVK result; - ScratchBufferVK &scratch = m_scratchStagingBuffer[m_cmd.m_currentFrameInFlight]; + StagingScratchBufferVK& scratch = m_scratchStagingBuffer[m_cmd.m_currentFrameInFlight]; if (_size <= BGFX_CONFIG_MAX_STAGING_SCRATCH_BUFFER_SIZE) { @@ -4665,8 +4664,8 @@ VK_IMPORT_DEVICE MemoryLruVK m_memoryLru; - ScratchBufferVK m_scratchBuffer[BGFX_CONFIG_MAX_FRAME_LATENCY]; - ScratchBufferVK m_scratchStagingBuffer[BGFX_CONFIG_MAX_FRAME_LATENCY]; + ChunkedScratchBufferVK m_uniformScratchBuffer; + StagingScratchBufferVK m_scratchStagingBuffer[BGFX_CONFIG_MAX_FRAME_LATENCY]; uint32_t m_maxFrameLatency; CommandQueueVK m_cmd; @@ -4802,31 +4801,33 @@ VK_DESTROY s_renderVK->release(_obj); } - void MemoryLruVK::recycle(DeviceMemoryAllocationVK &_alloc) + void MemoryLruVK::recycle(DeviceMemoryAllocationVK& _alloc) { if (MAX_ENTRIES == lru.getNumHandles() ) { // Evict LRU uint16_t handle = lru.getBack(); - DeviceMemoryAllocationVK &alloc = entries[handle]; + DeviceMemoryAllocationVK& alloc = entries[handle]; totalSizeCached -= alloc.size; release(alloc.mem); // Touch slot and overwrite lru.touch(handle); alloc = _alloc; - } else + } + else { uint16_t handle = lru.alloc(); entries[handle] = _alloc; } + totalSizeCached += _alloc.size; while (totalSizeCached > BGFX_CONFIG_CACHED_DEVICE_MEMORY_ALLOCATIONS_SIZE) { BX_ASSERT(lru.getNumHandles() > 0, "Memory badly counted."); uint16_t handle = lru.getBack(); - DeviceMemoryAllocationVK &alloc = entries[handle]; + DeviceMemoryAllocationVK& alloc = entries[handle]; totalSizeCached -= alloc.size; release(alloc.mem); lru.free(handle); @@ -4838,25 +4839,33 @@ VK_DESTROY BGFX_PROFILER_SCOPE("MemoryLruVK::find", kColorResource); // Find best fit. uint16_t slot; + { - int16_t bestIdx = MAX_ENTRIES; + int16_t bestIdx = MAX_ENTRIES; uint32_t bestWaste = 0xffff'ffff; + slot = lru.getFront(); + while (UINT16_MAX != slot) { - DeviceMemoryAllocationVK &alloc = entries[slot]; + DeviceMemoryAllocationVK& alloc = entries[slot]; + if (alloc.memoryTypeIndex == _memoryTypeIndex) { // 50% waste allowed, otherwise we'll just allocate a new one. // This is to prevent we trash this cache of useful allocations // with a handful of tiny allocations. - if (alloc.size >= _size && _size * 2 >= alloc.size) + + if (alloc.size >= _size + && alloc.size <= _size * 2) { - uint32_t waste = bx::narrowCast(alloc.size - _size); + const uint32_t waste = bx::narrowCast(alloc.size - _size); + if (waste < bestWaste) { bestIdx = slot; bestWaste = waste; + if (waste == 0) { break; @@ -4864,8 +4873,10 @@ VK_DESTROY } } } + slot = lru.getNext(slot); } + slot = bestIdx; } @@ -4874,37 +4885,40 @@ VK_DESTROY *_alloc = entries[slot]; lru.free(slot); totalSizeCached -= _alloc->size; + return true; - } else { - return false; } + + return false; } void MemoryLruVK::evictAll() { uint16_t slot = lru.getFront(); + while (slot != UINT16_MAX) { release(entries[slot].mem); slot = lru.getNext(slot); } + lru.reset(); totalSizeCached = 0; } - void ScratchBufferVK::create(uint32_t _size, uint32_t _count, VkBufferUsageFlags usage, uint32_t _align) + void StagingScratchBufferVK::create(uint32_t _size, uint32_t _count, VkBufferUsageFlags usage, uint32_t _align) { const VkAllocationCallbacks* allocatorCb = s_renderVK->m_allocatorCb; const VkDevice device = s_renderVK->m_device; const uint32_t entrySize = bx::strideAlign(_size, _align); - const uint32_t totalSize = entrySize * _count; + const uint32_t chunkSize = entrySize * _count; VkBufferCreateInfo bci; bci.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; bci.pNext = NULL; bci.flags = 0; - bci.size = totalSize; + bci.size = chunkSize; bci.usage = usage; bci.sharingMode = VK_SHARING_MODE_EXCLUSIVE; bci.queueFamilyIndexCount = 0; @@ -4934,7 +4948,7 @@ VK_DESTROY } m_size = (uint32_t)mr.size; - m_pos = 0; + m_chunkPos = 0; m_align = _align; VK_CHECK(vkBindBufferMemory(device, m_buffer, m_deviceMem.mem, m_deviceMem.offset) ); @@ -4942,7 +4956,7 @@ VK_DESTROY VK_CHECK(vkMapMemory(device, m_deviceMem.mem, m_deviceMem.offset, m_size, 0, (void**)&m_data) ); } - void ScratchBufferVK::createUniform(uint32_t _size, uint32_t _count) + void StagingScratchBufferVK::createUniform(uint32_t _size, uint32_t _count) { const VkPhysicalDeviceLimits& deviceLimits = s_renderVK->m_deviceProperties.properties.limits; const uint32_t align = uint32_t(deviceLimits.minUniformBufferOffsetAlignment); @@ -4950,7 +4964,7 @@ VK_DESTROY create(_size, _count, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, align); } - void ScratchBufferVK::createStaging(uint32_t _size) + void StagingScratchBufferVK::createStaging(uint32_t _size) { const VkPhysicalDeviceLimits& deviceLimits = s_renderVK->m_deviceProperties.properties.limits; const uint32_t align = uint32_t(deviceLimits.optimalBufferCopyOffsetAlignment); @@ -4958,7 +4972,7 @@ VK_DESTROY create(_size, 1, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, align); } - void ScratchBufferVK::destroy() + void StagingScratchBufferVK::destroy() { vkUnmapMemory(s_renderVK->m_device, m_deviceMem.mem); @@ -4966,42 +4980,40 @@ VK_DESTROY s_renderVK->recycleMemory(m_deviceMem); } - - uint32_t ScratchBufferVK::alloc(uint32_t _size, uint32_t _minAlign) + uint32_t StagingScratchBufferVK::alloc(uint32_t _size, uint32_t _minAlign) { const uint32_t align = bx::uint32_lcm(m_align, _minAlign); - const uint32_t dstOffset = bx::strideAlign(m_pos, align); + const uint32_t offset = bx::strideAlign(m_chunkPos, align); - if (dstOffset + _size <= m_size) + if (offset + _size <= m_size) { - m_pos = dstOffset + _size; - return dstOffset; + m_chunkPos = offset + _size; + return offset; } return UINT32_MAX; } - uint32_t ScratchBufferVK::write(const void* _data, uint32_t _size, uint32_t _minAlign) + uint32_t StagingScratchBufferVK::write(const void* _data, uint32_t _size, uint32_t _minAlign) { - uint32_t dstOffset = alloc(_size, _minAlign); - BX_ASSERT(dstOffset != UINT32_MAX, "Not enough space on ScratchBuffer left to allocate %u bytes with alignment %u.", _size, _minAlign); + uint32_t offset = alloc(_size, _minAlign); + BX_ASSERT(offset != UINT32_MAX, "Not enough space on ScratchBuffer left to allocate %u bytes with alignment %u.", _size, _minAlign); if (_size > 0) { - bx::memCopy(&m_data[dstOffset], _data, _size); + bx::memCopy(&m_data[offset], _data, _size); } - return dstOffset; + return offset; } - - void ScratchBufferVK::flush(bool _reset) + void StagingScratchBufferVK::flush(bool _reset) { const VkPhysicalDeviceLimits& deviceLimits = s_renderVK->m_deviceProperties.properties.limits; VkDevice device = s_renderVK->m_device; const uint32_t align = uint32_t(deviceLimits.nonCoherentAtomSize); - const uint32_t size = bx::min(bx::strideAlign(m_pos, align), m_size); + const uint32_t size = bx::min(bx::strideAlign(m_chunkPos, align), m_size); VkMappedMemoryRange range; range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; @@ -5013,10 +5025,223 @@ VK_DESTROY if (_reset) { - m_pos = 0; + m_chunkPos = 0; } } + void ChunkedScratchBufferVK::create(uint32_t _chunkSize, uint32_t _numChunks, VkBufferUsageFlags usage, uint32_t _align) + { + const uint32_t chunkSize = bx::alignUp(_chunkSize, 1<<20); + + m_chunkPos = 0; + m_chunkSize = chunkSize; + m_align = _align; + m_usage = usage; + + m_chunkControl.m_size = 0; + m_chunkControl.reset(); + + bx::memSet(m_consume, 0, sizeof(m_consume) ); + m_totalUsed = 0; + + for (uint32_t ii = 0; ii < _numChunks; ++ii) + { + addChunk(); + } + } + + void ChunkedScratchBufferVK::createUniform(uint32_t _chunkSize, uint32_t _numChunks) + { + const VkPhysicalDeviceLimits& deviceLimits = s_renderVK->m_deviceProperties.properties.limits; + const uint32_t align = uint32_t(deviceLimits.minUniformBufferOffsetAlignment); + + create(_chunkSize, _numChunks, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, align); + } + + void ChunkedScratchBufferVK::destroy() + { + for (Chunk& sbc : m_chunks) + { + vkUnmapMemory(s_renderVK->m_device, sbc.deviceMem.mem); + + s_renderVK->release(sbc.buffer); + s_renderVK->recycleMemory(sbc.deviceMem); + } + } + + void ChunkedScratchBufferVK::addChunk(uint32_t _at) + { + const VkAllocationCallbacks* allocatorCb = s_renderVK->m_allocatorCb; + const VkDevice device = s_renderVK->m_device; + + Chunk sbc; + + VkBufferCreateInfo bci = + { + .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, + .pNext = NULL, + .flags = 0, + .size = m_chunkSize, + .usage = m_usage, + .sharingMode = VK_SHARING_MODE_EXCLUSIVE, + .queueFamilyIndexCount = 0, + .pQueueFamilyIndices = NULL, + }; + + VK_CHECK(vkCreateBuffer( + device + , &bci + , allocatorCb + , &sbc.buffer + ) ); + + VkMemoryRequirements mr; + vkGetBufferMemoryRequirements( + device + , sbc.buffer + , &mr + ); + + VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + VkResult result = s_renderVK->allocateMemory(&mr, flags, &sbc.deviceMem, true); + + if (VK_SUCCESS != result) + { + flags &= ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + VK_CHECK(s_renderVK->allocateMemory(&mr, flags, &sbc.deviceMem, true) ); + } + + m_chunkSize = bx::narrowCast(mr.size); + + VK_CHECK(vkBindBufferMemory(device, sbc.buffer, sbc.deviceMem.mem, sbc.deviceMem.offset) ); + + VK_CHECK(vkMapMemory(device, sbc.deviceMem.mem, sbc.deviceMem.offset, m_chunkSize, 0, (void**)&sbc.data) ); + + const uint32_t lastChunk = bx::max(uint32_t(m_chunks.size()-1), 1); + const uint32_t at = UINT32_MAX == _at ? lastChunk : _at; + const uint32_t chunkIndex = at % bx::max(m_chunks.size(), 1); + + m_chunkControl.resize(m_chunkSize); + + m_chunks.insert(&m_chunks[chunkIndex], sbc); + } + + ChunkedScratchBufferAlloc ChunkedScratchBufferVK::alloc(uint32_t _size) + { + BX_ASSERT(_size < m_chunkSize, "Size can't be larger than chunk size (size: %d, chunk size: %d)!", _size, m_chunkSize); + + uint32_t offset = m_chunkPos; + uint32_t nextOffset = offset + _size; + uint32_t chunkIdx = m_chunkControl.m_write/m_chunkSize; + + if (nextOffset >= m_chunkSize) + { + const uint32_t total = m_chunkSize - m_chunkPos + _size; + uint32_t reserved = m_chunkControl.reserve(total, true); + + if (total != reserved) + { + addChunk(chunkIdx + 1); + reserved = m_chunkControl.reserve(total, true); + BX_ASSERT(total == reserved, "Failed to reserve chunk memory after adding chunk."); + } + + m_chunkPos = 0; + offset = 0; + nextOffset = _size; + chunkIdx = m_chunkControl.m_write/m_chunkSize; + } + else + { + const uint32_t size = m_chunkControl.reserve(_size, true); + BX_ASSERT(size == _size, "Failed to reserve chunk memory."); + BX_UNUSED(size); + } + + m_chunkPos = nextOffset; + + return { .offset = offset, .chunkIdx = chunkIdx }; + } + + void ChunkedScratchBufferVK::write(ChunkedScratchBufferOffset& _outSbo, const void* _vsData, uint32_t _vsSize, const void* _fsData, uint32_t _fsSize) + { + const uint32_t vsSize = bx::strideAlign(_vsSize, m_align); + const uint32_t fsSize = bx::strideAlign(_fsSize, m_align); + const uint32_t size = vsSize + fsSize; + + const ChunkedScratchBufferAlloc sba = alloc(size); + + const uint32_t offset0 = sba.offset; + const uint32_t offset1 = offset0 + vsSize; + + const Chunk& sbc = m_chunks[sba.chunkIdx]; + + _outSbo.buffer = sbc.buffer; + _outSbo.offsets[0] = offset0; + _outSbo.offsets[1] = offset1; + + bx::memCopy(&sbc.data[offset0], _vsData, _vsSize); + bx::memCopy(&sbc.data[offset1], _fsData, _fsSize); + } + + void ChunkedScratchBufferVK::begin() + { + BX_ASSERT(0 == m_chunkPos, ""); + const uint32_t numConsumed = m_consume[s_renderVK->m_cmd.m_currentFrameInFlight]; + m_chunkControl.consume(numConsumed); + } + + void ChunkedScratchBufferVK::end() + { + uint32_t numFlush = m_chunkControl.getNumReserved(); + + if (0 != m_chunkPos) + { +retry: + const uint32_t remainder = m_chunkSize - m_chunkPos; + const uint32_t rem = m_chunkControl.reserve(remainder, true); + + if (rem != remainder) + { + const uint32_t chunkIdx = m_chunkControl.m_write/m_chunkSize; + addChunk(chunkIdx + 1); + goto retry; + } + + m_chunkPos = 0; + } + + const VkPhysicalDeviceLimits& deviceLimits = s_renderVK->m_deviceProperties.properties.limits; + const uint32_t align = uint32_t(deviceLimits.nonCoherentAtomSize); + + VkDevice device = s_renderVK->m_device; + + const uint32_t numReserved = m_chunkControl.getNumReserved(); + BX_ASSERT(0 == numReserved % m_chunkSize, "Number of reserved must always be aligned to chunk size!"); + + const uint32_t first = m_chunkControl.m_current / m_chunkSize; + + for (uint32_t ii = first, end = numReserved / m_chunkSize + first; ii < end; ++ii) + { + const Chunk& chunk = m_chunks[ii % m_chunks.size()]; + + VkMappedMemoryRange range; + range.sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE; + range.pNext = NULL; + range.memory = chunk.deviceMem.mem; + range.offset = chunk.deviceMem.offset; + range.size = bx::alignUp(bx::min(numFlush, m_chunkSize), align); + VK_CHECK(vkFlushMappedMemoryRanges(device, 1, &range) ); + + m_chunkControl.commit(m_chunkSize); + numFlush -= m_chunkSize; + } + + m_consume[s_renderVK->m_cmd.m_currentFrameInFlight] = numReserved; + + m_totalUsed = m_chunkControl.getNumUsed(); + } + void BufferVK::create(VkCommandBuffer _commandBuffer, uint32_t _size, void* _data, uint16_t _flags, bool _vertex, uint32_t _stride) { BX_UNUSED(_stride); @@ -5768,7 +5993,7 @@ VK_DESTROY bool TimerQueryVK::update() { - if (0 != m_control.available() ) + if (0 != m_control.getNumUsed() ) { uint32_t idx = m_control.m_read; Query& query = m_query[idx]; @@ -5885,7 +6110,7 @@ VK_DESTROY { BGFX_PROFILER_SCOPE("OcclusionQueryVK::flush", kColorFrame); - if (0 < m_control.available() ) + if (0 < m_control.getNumUsed() ) { VkCommandBuffer commandBuffer = s_renderVK->m_commandBuffer; @@ -5893,7 +6118,7 @@ VK_DESTROY // need to copy each result individually because VK_QUERY_RESULT_WAIT_BIT causes // vkWaitForFences to hang indefinitely if we copy all results (including unavailable ones) - for (uint32_t ii = 0, num = m_control.available(); ii < num; ++ii) + for (uint32_t ii = 0, num = m_control.getNumUsed(); ii < num; ++ii) { const OcclusionQueryHandle& handle = m_handle[(m_control.m_read + ii) % size]; if (isValid(handle) ) @@ -5926,7 +6151,7 @@ VK_DESTROY void OcclusionQueryVK::resolve(Frame* _render) { - while (0 != m_control.available() ) + while (0 != m_control.getNumUsed() ) { OcclusionQueryHandle handle = m_handle[m_control.m_read]; if (isValid(handle) ) @@ -5941,7 +6166,7 @@ VK_DESTROY { const uint32_t size = m_control.m_size; - for (uint32_t ii = 0, num = m_control.available(); ii < num; ++ii) + for (uint32_t ii = 0, num = m_control.getNumUsed(); ii < num; ++ii) { OcclusionQueryHandle& handle = m_handle[(m_control.m_read + ii) % size]; if (handle.idx == _handle.idx) @@ -7970,7 +8195,7 @@ VK_DESTROY if (VK_NULL_HANDLE != m_backBufferFence[m_backBufferColorIdx]) { - BGFX_PROFILER_SCOPE("vkWaitForFences", kColorFrame); + BGFX_PROFILER_SCOPE("vkWaitForFences", kColorWait); VK_CHECK(vkWaitForFences( device @@ -8422,7 +8647,7 @@ VK_DESTROY } } - VkResult CommandQueueVK::alloc(VkCommandBuffer* _commandBuffer) + VkResult CommandQueueVK::alloc(VkCommandBuffer* _outCommandBuffer) { BGFX_PROFILER_SCOPE("CommandQueueVK::alloc", kColorResource); @@ -8434,7 +8659,7 @@ VK_DESTROY CommandList& commandList = m_commandList[m_currentFrameInFlight]; { - BGFX_PROFILER_SCOPE("vkWaitForFences", kColorFrame); + BGFX_PROFILER_SCOPE("vkWaitForFences", kColorWait); result = vkWaitForFences(device, 1, &commandList.m_fence, VK_TRUE, UINT64_MAX); } @@ -8471,9 +8696,9 @@ VK_DESTROY m_currentFence = commandList.m_fence; } - if (NULL != _commandBuffer) + if (NULL != _outCommandBuffer) { - *_commandBuffer = m_activeCommandBuffer; + *_outCommandBuffer = m_activeCommandBuffer; } return result; @@ -8539,7 +8764,8 @@ VK_DESTROY if (_wait) { - BGFX_PROFILER_SCOPE("vkWaitForFences", kColorDraw); + BGFX_PROFILER_SCOPE("vkWaitForFences", kColorWait); + VK_CHECK(vkWaitForFences(device, 1, &m_completedFence, VK_TRUE, UINT64_MAX) ); } @@ -8588,7 +8814,7 @@ VK_DESTROY m_consumeIndex = (m_consumeIndex + 1) % s_renderVK->m_maxFrameLatency; - for (DeviceMemoryAllocationVK &alloc : m_recycleAllocs[m_consumeIndex]) + for (DeviceMemoryAllocationVK& alloc : m_recycleAllocs[m_consumeIndex]) { s_renderVK->m_memoryLru.recycle(alloc); } @@ -8619,7 +8845,6 @@ VK_DESTROY } } - m_release[m_consumeIndex].clear(); } @@ -8847,8 +9072,10 @@ VK_DESTROY VkDescriptorPool& descriptorPool = m_descriptorPool[m_cmd.m_currentFrameInFlight]; vkResetDescriptorPool(m_device, descriptorPool, 0); - ScratchBufferVK& scratchBuffer = m_scratchBuffer[m_cmd.m_currentFrameInFlight]; - ScratchBufferVK& scratchStagingBuffer = m_scratchStagingBuffer[m_cmd.m_currentFrameInFlight]; + ChunkedScratchBufferVK& uniformScratchBuffer = m_uniformScratchBuffer; + uniformScratchBuffer.begin(); + + StagingScratchBufferVK& stagingScratchBuffer = m_scratchStagingBuffer[m_cmd.m_currentFrameInFlight]; setMemoryBarrier( m_commandBuffer @@ -9199,17 +9426,18 @@ VK_DESTROY if (VK_NULL_HANDLE != program.m_descriptorSetLayout) { - const uint32_t vsize = program.m_vsh->m_size; - uint32_t numOffset = 0; - uint32_t offset = 0; + ChunkedScratchBufferOffset sbo; + + const uint32_t vsSize = program.m_vsh->m_size; + uint32_t numOffsets = 0; if (constantsChanged || hasPredefined) { - if (vsize > 0) + if (vsSize > 0) { - offset = scratchBuffer.write(m_vsScratch, vsize); - ++numOffset; + uniformScratchBuffer.write(sbo, m_vsScratch, vsSize); + numOffsets = 1; } } @@ -9217,7 +9445,8 @@ VK_DESTROY hash.begin(); hash.add(program.m_descriptorSetLayout); hash.add(renderBind.m_bind, sizeof(renderBind.m_bind) ); - hash.add(vsize); + hash.add(sbo.buffer); + hash.add(vsSize); hash.add(0); const uint32_t bindHash = hash.end(); @@ -9228,7 +9457,7 @@ VK_DESTROY currentDescriptorSet = getDescriptorSet( program , renderBind - , scratchBuffer + , sbo.buffer , _render->m_colorPalette ); @@ -9242,8 +9471,8 @@ VK_DESTROY , 0 , 1 , ¤tDescriptorSet - , numOffset - , &offset + , numOffsets + , sbo.offsets ); } @@ -9486,31 +9715,28 @@ VK_DESTROY if (VK_NULL_HANDLE != program.m_descriptorSetLayout) { - const uint32_t vsize = program.m_vsh->m_size; - const uint32_t fsize = NULL != program.m_fsh ? program.m_fsh->m_size : 0; - uint32_t numOffset = 0; - uint32_t offsets[2] = { 0, 0 }; + ChunkedScratchBufferOffset sbo; - if (constantsChanged - || hasPredefined) - { - if (vsize > 0) - { - offsets[numOffset++] = scratchBuffer.write(m_vsScratch, vsize); - } + const uint32_t vsSize = program.m_vsh->m_size; + const uint32_t fsSize = NULL != program.m_fsh ? program.m_fsh->m_size : 0; + uint32_t numOffsets = 0; - if (fsize > 0) - { - offsets[numOffset++] = scratchBuffer.write(m_fsScratch, fsize); - } + if (true + && (constantsChanged || hasPredefined) + && (0 < vsSize || 0 < fsSize) + ) + { + uniformScratchBuffer.write(sbo, m_vsScratch, vsSize, m_fsScratch, fsSize); + numOffsets = (0 < vsSize) + (0 < fsSize); } bx::HashMurmur2A hash; hash.begin(); hash.add(program.m_descriptorSetLayout); hash.add(renderBind.m_bind, sizeof(renderBind.m_bind) ); - hash.add(vsize); - hash.add(fsize); + hash.add(sbo.buffer); + hash.add(vsSize); + hash.add(fsSize); const uint32_t bindHash = hash.end(); if (currentBindHash != bindHash) @@ -9520,9 +9746,9 @@ VK_DESTROY currentDescriptorSet = getDescriptorSet( program , renderBind - , scratchBuffer + , sbo.buffer , _render->m_colorPalette - ); + ); descriptorSetCount++; } @@ -9534,8 +9760,8 @@ VK_DESTROY , 0 , 1 , ¤tDescriptorSet - , numOffset - , offsets + , numOffsets + , sbo.offsets ); } @@ -9748,7 +9974,7 @@ VK_DESTROY maxGpuLatency = bx::uint32_imax(maxGpuLatency, result.m_pending-1); } - maxGpuLatency = bx::uint32_imax(maxGpuLatency, m_gpuTimer.m_control.available()-1); + maxGpuLatency = bx::uint32_imax(maxGpuLatency, m_gpuTimer.m_control.getNumUsed()-1); const int64_t timerFreq = bx::getHPFrequency(); @@ -9904,7 +10130,7 @@ VK_DESTROY tvm.printf(10, pos++, 0x8b, " DIB size: %7d ", _render->m_iboffset); pos++; - tvm.printf(10, pos++, 0x8b, " Occlusion queries: %3d ", m_occlusionQuery.m_control.available() ); + tvm.printf(10, pos++, 0x8b, " Occlusion queries: %3d ", m_occlusionQuery.m_control.getNumUsed() ); pos++; tvm.printf(10, pos++, 0x8b, " State cache: "); @@ -9916,6 +10142,17 @@ VK_DESTROY ); pos++; + { + char strUsed[64]; + bx::prettify(strUsed, sizeof(strUsed), m_uniformScratchBuffer.m_totalUsed); + + char strTotal[64]; + bx::prettify(strTotal, sizeof(strTotal), m_uniformScratchBuffer.m_chunkControl.m_size); + + tvm.printf(10, pos++, 0x8b, "Uniform scratch size: %s / %s.", strUsed, strTotal); + } + + pos++; double captureMs = double(captureElapsed)*toMs; tvm.printf(10, pos++, 0x8b, " Capture: %7.4f [ms] ", captureMs); @@ -9946,14 +10183,11 @@ VK_DESTROY m_presentElapsed = 0; - { - BGFX_PROFILER_SCOPE("scratchBuffer::flush", kColorResource); - scratchBuffer.flush(); - } + uniformScratchBuffer.end(); { - BGFX_PROFILER_SCOPE("scratchStagingBuffer::flush", kColorResource); - scratchStagingBuffer.flush(); + BGFX_PROFILER_SCOPE("stagingScratchBuffer::flush", kColorResource); + stagingScratchBuffer.flush(); } for (uint16_t ii = 0; ii < m_numWindows; ++ii) diff --git a/libs/bgfx/src/renderer_vk.h b/libs/bgfx/src/renderer_vk.h index e0a9082..f6c687f 100644 --- a/libs/bgfx/src/renderer_vk.h +++ b/libs/bgfx/src/renderer_vk.h @@ -245,17 +245,19 @@ VK_DESTROY_FUNC(ShaderModule); \ VK_DESTROY_FUNC(SwapchainKHR); \ -#define _VK_CHECK(_check, _call) \ - BX_MACRO_BLOCK_BEGIN \ - /*BX_TRACE(#_call);*/ \ - VkResult vkresult = _call; \ - _check(VK_SUCCESS == vkresult, #_call "; VK error 0x%x: %s", vkresult, getName(vkresult) ); \ +#define _VK_CHECK(_check, _call) \ + BX_MACRO_BLOCK_BEGIN \ + /*BX_TRACE(#_call);*/ \ + VkResult vkresult = _call; \ + _check(VK_SUCCESS == vkresult, #_call "; VK error %d: %s", vkresult, getName(vkresult) ); \ BX_MACRO_BLOCK_END #if BGFX_CONFIG_DEBUG -# define VK_CHECK(_call) _VK_CHECK(BX_ASSERT, _call) +# define VK_CHECK(_call) _VK_CHECK(BX_ASSERT, _call) +# define VK_CHECK_W(_call) _VK_CHECK(BX_WARN, _call) #else -# define VK_CHECK(_call) _call +# define VK_CHECK(_call) _call +# define VK_CHECK_W(_call) _call #endif // BGFX_CONFIG_DEBUG #if BGFX_CONFIG_DEBUG_ANNOTATION @@ -427,14 +429,13 @@ VK_DESTROY_FUNC(DescriptorSet); bool m_isFromScratch; }; - class ScratchBufferVK + struct StagingScratchBufferVK { - public: - ScratchBufferVK() + StagingScratchBufferVK() { } - ~ScratchBufferVK() + ~StagingScratchBufferVK() { } @@ -442,7 +443,7 @@ VK_DESTROY_FUNC(DescriptorSet); void createUniform(uint32_t _size, uint32_t _count); void createStaging(uint32_t _size); void destroy(); - uint32_t alloc(uint32_t _size, uint32_t _minAlign = 1); + uint32_t alloc(uint32_t _size, uint32_t _minAlign); uint32_t write(const void* _data, uint32_t _size, uint32_t _minAlign = 1); void flush(bool _reset = true); @@ -451,8 +452,60 @@ VK_DESTROY_FUNC(DescriptorSet); uint8_t* m_data; uint32_t m_size; - uint32_t m_pos; + uint32_t m_chunkPos; + uint32_t m_align; + }; + + struct ChunkedScratchBufferOffset + { + VkBuffer buffer; + uint32_t offsets[2]; + }; + + struct ChunkedScratchBufferAlloc + { + uint32_t offset; + uint32_t chunkIdx; + }; + + struct ChunkedScratchBufferVK + { + ChunkedScratchBufferVK() + : m_chunkControl(0) + { + } + + void create(uint32_t _chunkSize, uint32_t _numChunks, VkBufferUsageFlags usage, uint32_t _align); + void createUniform(uint32_t _chunkSize, uint32_t _numChunks); + void destroy(); + + void addChunk(uint32_t _at = UINT32_MAX); + ChunkedScratchBufferAlloc alloc(uint32_t _size); + + void write(ChunkedScratchBufferOffset& _outSbo, const void* _vsData, uint32_t _vsSize, const void* _fsData = NULL, uint32_t _fsSize = 0); + + void begin(); + void end(); + + struct Chunk + { + VkBuffer buffer; + DeviceMemoryAllocationVK deviceMem; + uint8_t* data; + }; + + using ScratchBufferChunksArray = stl::vector; + + ScratchBufferChunksArray m_chunks; + bx::RingBufferControl m_chunkControl; + + uint32_t m_chunkPos; + uint32_t m_chunkSize; uint32_t m_align; + VkBufferUsageFlags m_usage; + + uint32_t m_consume[BGFX_CONFIG_MAX_FRAME_LATENCY]; + uint32_t m_totalUsed; }; struct BufferVK @@ -884,7 +937,7 @@ VK_DESTROY_FUNC(DescriptorSet); VkResult reset(); void shutdown(); - VkResult alloc(VkCommandBuffer* _commandBuffer); + VkResult alloc(VkCommandBuffer* _outCommandBuffer); void addWaitSemaphore(VkSemaphore _semaphore, VkPipelineStageFlags _waitFlags = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT); void addSignalSemaphore(VkSemaphore _semaphore); void kick(bool _wait = false); @@ -932,7 +985,6 @@ VK_DESTROY_FUNC(DescriptorSet); ResourceArray m_release[BGFX_CONFIG_MAX_FRAME_LATENCY]; stl::vector m_recycleAllocs[BGFX_CONFIG_MAX_FRAME_LATENCY]; - private: template void destroy(uint64_t _handle) diff --git a/libs/bx/include/bx/inline/bx.inl b/libs/bx/include/bx/inline/bx.inl index 6f06e34..e5f1214 100644 --- a/libs/bx/include/bx/inline/bx.inl +++ b/libs/bx/include/bx/inline/bx.inl @@ -171,6 +171,13 @@ namespace bx return __builtin_bit_cast(Ty, _from); } + template + inline constexpr bool narrowCastTest(Ty* _out, const FromT& _from) + { + *_out = static_cast(_from); + return static_cast(*_out) == _from; + } + template inline Ty narrowCast(const FromT& _from, Location _location) { diff --git a/libs/bx/include/bx/inline/ringbuffer.inl b/libs/bx/include/bx/inline/ringbuffer.inl index 309d612..623f8fe 100644 --- a/libs/bx/include/bx/inline/ringbuffer.inl +++ b/libs/bx/include/bx/inline/ringbuffer.inl @@ -10,7 +10,7 @@ namespace bx { inline RingBufferControl::RingBufferControl(uint32_t _size) - : m_size(_size) + : m_size(max(_size, 2) ) , m_current(0) , m_write(0) , m_read(0) @@ -21,11 +21,45 @@ namespace bx { } - inline uint32_t RingBufferControl::available() const + inline bool RingBufferControl::isEmpty() const + { + return m_read == m_write; + } + + inline uint32_t RingBufferControl::getSize() const + { + return m_size; + } + + inline uint32_t RingBufferControl::getNumEmpty() const + { + return m_size - distance(m_read, m_write) - 1; + } + + inline uint32_t RingBufferControl::getNumUsed() const { return distance(m_read, m_current); } + inline uint32_t RingBufferControl::getNumReserved() const + { + return distance(m_current, m_write); + } + + inline void RingBufferControl::resize(int32_t _size) + { + _size = 0 > _size + // can shrink only by number of empty slots. + ? bx::max(_size, -int32_t(getNumEmpty() ) ) + : _size + ; + + m_size += _size; + + m_current += m_current >= m_write ? _size : 0; + m_read += m_read >= m_write ? _size : 0; + } + inline uint32_t RingBufferControl::consume(uint32_t _size) { const uint32_t maxSize = distance(m_read, m_current); @@ -80,7 +114,7 @@ namespace bx } inline SpScRingBufferControl::SpScRingBufferControl(uint32_t _size) - : m_size(_size) + : m_size(max(_size, 2) ) , m_current(0) , m_write(0) , m_read(0) @@ -91,11 +125,45 @@ namespace bx { } - inline uint32_t SpScRingBufferControl::available() const + inline bool SpScRingBufferControl::isEmpty() const + { + return m_read == m_write; + } + + inline uint32_t SpScRingBufferControl::getSize() const + { + return m_size; + } + + inline uint32_t SpScRingBufferControl::getNumEmpty() const + { + return m_size - distance(m_read, m_write) - 1; + } + + inline uint32_t SpScRingBufferControl::getNumUsed() const { return distance(m_read, m_current); } + inline uint32_t SpScRingBufferControl::getNumReserved() const + { + return distance(m_current, m_write); + } + + inline void SpScRingBufferControl::resize(int32_t _size) + { + _size = 0 > _size + // can shrink only by number of empty slots. + ? bx::max(_size, -int32_t(getNumEmpty() ) ) + : _size + ; + + m_size += _size; + + m_current += m_current >= m_write ? _size : 0; + m_read += m_read >= m_write ? _size : 0; + } + inline uint32_t SpScRingBufferControl::consume(uint32_t _size) { const uint32_t maxSize = distance(m_read, m_current); @@ -108,13 +176,13 @@ namespace bx return size; } - inline uint32_t SpScRingBufferControl::reserve(uint32_t _size) + inline uint32_t SpScRingBufferControl::reserve(uint32_t _size, bool _mustSucceed) { const uint32_t dist = distance(m_write, m_read)-1; const uint32_t maxSize = uint32_sels(dist, m_size-1, dist); const uint32_t sizeNoSign = uint32_and(_size, 0x7fffffff); const uint32_t test = uint32_sub(sizeNoSign, maxSize); - const uint32_t size = uint32_sels(test, _size, maxSize); + const uint32_t size = uint32_sels(test, _size, _mustSucceed ? 0 : maxSize); const uint32_t advance = uint32_add(m_write, size); const uint32_t write = uint32_mod(advance, m_size); m_write = write; @@ -161,7 +229,7 @@ namespace bx , m_size(_size) , m_buffer(_buffer) { - BX_ASSERT(_control.available() >= _size, "%d >= %d", _control.available(), _size); + BX_ASSERT(_control.getNumUsed() >= _size, "%d >= %d", _control.getNumUsed(), _size); } template diff --git a/libs/bx/include/bx/inline/string.inl b/libs/bx/include/bx/inline/string.inl index c526a56..c4a1207 100644 --- a/libs/bx/include/bx/inline/string.inl +++ b/libs/bx/include/bx/inline/string.inl @@ -44,8 +44,8 @@ namespace bx } template - inline constexpr StringLiteral::StringLiteral(const char (&str)[SizeT]) - : m_ptr(str) + inline constexpr StringLiteral::StringLiteral(const char (&_str)[SizeT]) + : m_ptr(_str) , m_len(SizeT - 1) { BX_ASSERT('\0' == m_ptr[SizeT - 1], "Must be 0 terminated."); @@ -61,20 +61,21 @@ namespace bx return m_ptr; } - inline void StringLiteral::clear() + inline constexpr void StringLiteral::clear() { m_ptr = ""; m_len = 0; } - inline bool StringLiteral::isEmpty() const + inline constexpr bool StringLiteral::isEmpty() const { return 0 == m_len; } - inline StringView::StringView() + inline constexpr StringView::StringView() { - clear(); + m_ptr = ""; + m_len = 0; } inline constexpr StringView::StringView(const StringLiteral& _str) @@ -84,49 +85,49 @@ namespace bx { } - inline StringView::StringView(const StringView& _rhs) + inline constexpr StringView::StringView(const StringView& _rhs) { set(_rhs); } - inline StringView::StringView(const StringView& _rhs, int32_t _start, int32_t _len) + inline constexpr StringView::StringView(const StringView& _rhs, int32_t _start, int32_t _len) { set(_rhs, _start, _len); } - inline StringView& StringView::operator=(const char* _rhs) + inline constexpr StringView& StringView::operator=(const char* _rhs) { set(_rhs); return *this; } - inline StringView& StringView::operator=(const StringView& _rhs) + inline constexpr StringView& StringView::operator=(const StringView& _rhs) { set(_rhs); return *this; } - inline StringView::StringView(const char* _ptr) + inline constexpr StringView::StringView(const char* _ptr) { set(_ptr, INT32_MAX); } - inline StringView::StringView(const char* _ptr, int32_t _len) + inline constexpr StringView::StringView(const char* _ptr, int32_t _len) { set(_ptr, _len); } - inline StringView::StringView(const char* _ptr, const char* _term) + inline constexpr StringView::StringView(const char* _ptr, const char* _term) { set(_ptr, _term); } - inline void StringView::set(const char* _ptr) + inline constexpr void StringView::set(const char* _ptr) { set(_ptr, INT32_MAX); } - inline void StringView::set(const char* _ptr, int32_t _len) + inline constexpr void StringView::set(const char* _ptr, int32_t _len) { clear(); @@ -138,68 +139,99 @@ namespace bx } } - inline void StringView::set(const char* _ptr, const char* _term) + inline constexpr void StringView::set(const char* _ptr, const char* _term) { set(_ptr, int32_t(_term-_ptr) ); } - inline void StringView::set(const StringView& _str) + inline constexpr void StringView::set(const StringView& _str) { set(_str, 0, INT32_MAX); } - inline void StringView::set(const StringView& _str, int32_t _start, int32_t _len) + inline constexpr void StringView::set(const StringView& _str, int32_t _start, int32_t _len) { const int32_t start = min(_start, _str.m_len); const int32_t len = clamp(_str.m_len - start, 0, min(_len, _str.m_len) ); set(_str.m_ptr + start, len); } - inline void StringView::clear() + inline constexpr void StringView::clear() { m_ptr = ""; m_len = 0; m_0terminated = true; } - inline const char* StringView::getPtr() const + inline constexpr const char* StringView::getPtr() const { return m_ptr; } - inline const char* StringView::getTerm() const + inline constexpr const char* StringView::getTerm() const { return m_ptr + m_len; } - inline bool StringView::isEmpty() const + inline constexpr bool StringView::isEmpty() const { return 0 == m_len; } - inline int32_t StringView::getLength() const + inline constexpr int32_t StringView::getLength() const { return m_len; } - inline bool StringView::is0Terminated() const + inline constexpr bool StringView::is0Terminated() const { return m_0terminated; } - inline bool operator==(const StringView& _lhs, const StringView& _rhs) + inline constexpr bool operator==(const StringView& _lhs, const StringView& _rhs) { - return 0 == strCmp(_lhs, _rhs); + const int32_t len = _lhs.getLength(); + + if (len != _rhs.getLength() ) + { + return false; + } + + if (0 == len) + { + return true; + } + + const char* lhs = _lhs.getPtr(); + const char* rhs = _rhs.getPtr(); + + if constexpr (!isConstantEvaluated() ) + { + // note: comparison of addresses of literals has unspecified value + if (lhs == rhs) + { + return true; + } + } + + for (int32_t ii = 0, num = len-1 + ; ii < num && *lhs == *rhs + ; ++ii, ++lhs, ++rhs + ) + { + } + + return *lhs == *rhs; } - inline bool overlap(const StringView& _a, const StringView& _b) + inline constexpr bool overlap(const StringView& _a, const StringView& _b) { return _a.getTerm() > _b.getPtr() && _b.getTerm() > _a.getPtr() ; } - inline bool contain(const StringView& _a, const StringView& _b) + inline constexpr bool contain(const StringView& _a, const StringView& _b) { return _a.getPtr() <= _b.getPtr() && _a.getTerm() >= _b.getTerm() @@ -207,76 +239,76 @@ namespace bx } template - inline FixedStringT::FixedStringT() + inline constexpr FixedStringT::FixedStringT() : m_len(0) { } template - inline FixedStringT::FixedStringT(const char* _str) + inline constexpr FixedStringT::FixedStringT(const char* _str) : FixedStringT() { set(_str); } template - inline FixedStringT::FixedStringT(const StringView& _str) + inline constexpr FixedStringT::FixedStringT(const StringView& _str) : FixedStringT() { set(_str); } template - inline FixedStringT::~FixedStringT() + inline constexpr FixedStringT::~FixedStringT() { } template - inline void FixedStringT::set(const char* _str) + inline constexpr void FixedStringT::set(const char* _str) { set(StringView(_str) ); } template - inline void FixedStringT::set(const StringView& _str) + inline constexpr void FixedStringT::set(const StringView& _str) { int32_t copied = strCopy(m_storage, MaxCapacityT, _str); m_len = copied; } template - inline void FixedStringT::append(const StringView& _str) + inline constexpr void FixedStringT::append(const StringView& _str) { m_len += strCopy(&m_storage[m_len], MaxCapacityT-m_len, _str); } template - inline void FixedStringT::clear() + inline constexpr void FixedStringT::clear() { m_len = 0; m_storage[0] = '\0'; } template - inline bool FixedStringT::isEmpty() const + inline constexpr bool FixedStringT::isEmpty() const { return 0 == m_len; } template - inline int32_t FixedStringT::getLength() const + inline constexpr int32_t FixedStringT::getLength() const { return m_len; } template - inline const char* FixedStringT::getCPtr() const + inline constexpr const char* FixedStringT::getCPtr() const { return m_storage; } template - inline FixedStringT::operator StringView() const + inline constexpr FixedStringT::operator StringView() const { return StringView(m_storage, m_len); } @@ -438,11 +470,23 @@ namespace bx return m_line; } - inline int32_t strLen(const StringView& _str, int32_t _max) + inline constexpr int32_t strLen(const StringView& _str, int32_t _max) { return min(_str.getLength(), _max); } + inline constexpr int32_t strLen(const char* _str, int32_t _max) + { + if (NULL == _str) + { + return 0; + } + + const char* ptr = _str; + for (; 0 < _max && *ptr != '\0'; ++ptr, --_max) {}; + return int32_t(ptr - _str); + } + inline bool hasPrefix(const StringView& _str, const StringView& _prefix) { const int32_t len = _prefix.getLength(); @@ -479,4 +523,76 @@ namespace bx return _str; } + inline bool fromString(int8_t* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(uint8_t* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(int16_t* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(uint16_t* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(int32_t* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(uint32_t* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(long* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(unsigned long* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + + inline bool fromString(unsigned long long* _out, const StringView& _str) + { + long long tmp; + fromString(&tmp, _str); + + return narrowCastTest(_out, tmp); + } + } // namespace bx diff --git a/libs/bx/include/bx/platform.h b/libs/bx/include/bx/platform.h index b43e02e..09dd523 100644 --- a/libs/bx/include/bx/platform.h +++ b/libs/bx/include/bx/platform.h @@ -452,9 +452,9 @@ #if defined(__cplusplus) -static_assert(__cplusplus >= BX_LANGUAGE_CPP17, "\n\n" +static_assert(__cplusplus >= BX_LANGUAGE_CPP20, "\n\n" "\t** IMPORTANT! **\n\n" - "\tC++17 standard support is required to build.\n" + "\tC++20 standard support is required to build.\n" "\t\n"); // https://releases.llvm.org/ diff --git a/libs/bx/include/bx/readerwriter.h b/libs/bx/include/bx/readerwriter.h index 9848cb3..b78d81c 100644 --- a/libs/bx/include/bx/readerwriter.h +++ b/libs/bx/include/bx/readerwriter.h @@ -282,6 +282,14 @@ namespace bx /// Write C string. int32_t write(WriterI* _writer, const char* _str, Error* _err); + /// + template + inline int32_t write(WriterI* _writer, const Ty& _value, Error* _err); + + /// + template<> + int32_t write(WriterI* _writer, const StringView& _str, Error* _err); + /// Write formatted string. int32_t write(WriterI* _writer, const StringView& _format, va_list _argList, Error* _err); diff --git a/libs/bx/include/bx/ringbuffer.h b/libs/bx/include/bx/ringbuffer.h index fc9a3f6..11299a7 100644 --- a/libs/bx/include/bx/ringbuffer.h +++ b/libs/bx/include/bx/ringbuffer.h @@ -12,6 +12,13 @@ namespace bx { + /// Ring buffer control structure. Tracking "read", "write", and "current" head. + /// + /// This is not container, and data control represents is user defined. Read/write/current are + /// just indices. + /// + /// @notice One slot is always reseved. When creating ring buffer of N slots, N-1 slots can be + /// used. /// class RingBufferControl { @@ -21,36 +28,102 @@ namespace bx ); public: + /// Constructor. + /// + /// @param[in] _size Maximum number of slots. /// RingBufferControl(uint32_t _size); - /// + /// Destructor. ~RingBufferControl(); + /// Returns 'true' if ring buffer is empty. + /// + /// @returns Returns 'true' if ring buffer is empty. + /// + bool isEmpty() const; + + /// Returns total size of ring buffer. + /// + /// @returns Total size of ring buffer. + /// + uint32_t getSize() const; + + /// Returns number of empty slots. + /// + /// @returns Number of empty slots. + /// + uint32_t getNumEmpty() const; + + /// Returns number of used slots. + /// + /// @returns Number of used slots. + /// + uint32_t getNumUsed() const; + + /// Returns number of reserved slots. + /// + /// @returns Number of reserved slots. + /// + uint32_t getNumReserved() const; + + /// Resize ring buffer. Resize happens at write head, read and current head will be moved + /// forward or backward if write head is behind them. /// - uint32_t available() const; + /// @param[in] _size Amount to resize. Value can be positive when growing size or negative + /// when shrinking size of buffer. + /// + void resize(int32_t _size); + /// Consume slots, makes slots free to be reserved. Moves "read" head forward. + /// + /// @returns Number of reserved slots reserved. /// uint32_t consume(uint32_t _size); // consumer only + /// Reserve slots, makes slots non-free, but ready to be used yet. Moves "write" head forward. + /// + /// @param[in] _size Number of slots. + /// @param[in] _mustSucceed If argument is true it will not reseve any slots unless `_size` + /// of slots is reseved. + /// + /// @returns Number of reserved slots reserved. /// uint32_t reserve(uint32_t _size, bool _mustSucceed = false); // producer only + /// Commit slots, makes slots used, and ready to be consumed. Moves "current" head forward. + /// + /// @param[in] _size Number of commited slots. /// uint32_t commit(uint32_t _size); // producer only + /// Calculate distance between two slots. Function takes wrapping into account. + /// + /// @param[in] _from From. + /// @param[in] _to To. + /// + /// @returns Distance between slots. /// uint32_t distance(uint32_t _from, uint32_t _to) const; // both + /// Invalidate ring buffer. /// void reset(); - const uint32_t m_size; - uint32_t m_current; - uint32_t m_write; - uint32_t m_read; + uint32_t m_size; //!< Size of ring buffer. + uint32_t m_current; //!< Currently operated area start. + uint32_t m_write; //!< Write head. + uint32_t m_read; //!< Read head. }; + /// Lock-less single producer, single consumer ring buffer control structure. Tracking "read", + /// "write", and "current" head. + /// + /// This is not container, and data control represents is user defined. Read/write/current are + /// just indices. + /// + /// @notice One slot is always reseved. When creating ring buffer of N slots, N-1 slots can be + /// used. /// class SpScRingBufferControl { @@ -60,34 +133,92 @@ namespace bx ); public: + /// Constructor. + /// + /// @param[in] _size Maximum number of slots. /// SpScRingBufferControl(uint32_t _size); - /// + /// Destructor. ~SpScRingBufferControl(); + /// Returns 'true' if ring buffer is empty. + /// + /// @returns Returns 'true' if ring buffer is empty. + /// + bool isEmpty() const; + + /// Returns total size of ring buffer. /// - uint32_t available() const; + /// @returns Total size of ring buffer. + /// + uint32_t getSize() const; + /// Returns number of empty slots. + /// + /// @returns Number of empty slots. + /// + uint32_t getNumEmpty() const; + + /// Returns number of used slots. + /// + /// @returns Number of used slots. + /// + uint32_t getNumUsed() const; + + /// Returns number of reserved slots. + /// + /// @returns Number of reserved slots. + /// + uint32_t getNumReserved() const; + + /// Resize ring buffer. Resize happens at write head, read and current head will be moved + /// forward or backward if write head is behind them. + /// + /// @param[in] _size Amount to resize. Value can be positive when growing size or negative + /// when shrinking size of buffer. + /// + void resize(int32_t _size); + + /// Consume slots, makes slots free to be reserved. Moves "read" head forward. + /// + /// @returns Number of reserved slots reserved. /// uint32_t consume(uint32_t _size); // consumer only + /// Reserve slots, makes slots non-free, but ready to be used yet. Moves "write" head forward. + /// + /// @param[in] _size Number of slots. + /// @param[in] _mustSucceed If argument is true it will not reseve any slots unless `_size` + /// of slots is reseved. + /// + /// @returns Number of reserved slots reserved. /// - uint32_t reserve(uint32_t _size); // producer only + uint32_t reserve(uint32_t _size, bool _mustSucceed = false); // producer only + /// Commit slots, makes slots used, and ready to be consumed. Moves "current" head forward. + /// + /// @param[in] _size Number of commited slots. /// uint32_t commit(uint32_t _size); // producer only + /// Calculate distance between two slots. Function takes wrapping into account. + /// + /// @param[in] _from From. + /// @param[in] _to To. + /// + /// @returns Distance between slots. /// uint32_t distance(uint32_t _from, uint32_t _to) const; // both + /// Invalidate ring buffer. /// void reset(); - const uint32_t m_size; - uint32_t m_current; - uint32_t m_write; - uint32_t m_read; + uint32_t m_size; //!< Size of ring buffer. + uint32_t m_current; //!< Currently operated area start. + uint32_t m_write; //!< Write head. + uint32_t m_read; //!< Read head. }; /// diff --git a/libs/bx/include/bx/string.h b/libs/bx/include/bx/string.h index 9452806..e3f40b8 100644 --- a/libs/bx/include/bx/string.h +++ b/libs/bx/include/bx/string.h @@ -32,7 +32,7 @@ namespace bx /// Construct string literal from C-style string literal. /// template - constexpr StringLiteral(const char (&str)[SizeT]); + constexpr StringLiteral(const char (&_str)[SizeT]); /// Returns string length. /// @@ -43,11 +43,11 @@ namespace bx constexpr const char* getCPtr() const; /// - void clear(); + constexpr void clear(); /// Returns `true` if string is empty. /// - bool isEmpty() const; + constexpr bool isEmpty() const; private: const char* m_ptr; @@ -61,75 +61,75 @@ namespace bx public: /// Construct default/empty string view. /// - StringView(); + constexpr StringView(); /// Construct string view from string literal. /// constexpr StringView(const StringLiteral& _str); /// - StringView(const StringView& _rhs); + constexpr StringView(const StringView& _rhs); /// - StringView(const StringView& _rhs, int32_t _start, int32_t _len); + constexpr StringView(const StringView& _rhs, int32_t _start, int32_t _len); /// - StringView& operator=(const char* _rhs); + constexpr StringView& operator=(const char* _rhs); /// - StringView& operator=(const StringView& _rhs); + constexpr StringView& operator=(const StringView& _rhs); /// - StringView(const char* _ptr); + constexpr StringView(const char* _ptr); /// - StringView(const char* _ptr, int32_t _len); + constexpr StringView(const char* _ptr, int32_t _len); /// - StringView(const char* _ptr, const char* _term); + constexpr StringView(const char* _ptr, const char* _term); /// - void set(const char* _ptr); + constexpr void set(const char* _ptr); /// - void set(const char* _ptr, int32_t _len); + constexpr void set(const char* _ptr, int32_t _len); /// - void set(const char* _ptr, const char* _term); + constexpr void set(const char* _ptr, const char* _term); /// - void set(const StringView& _str); + constexpr void set(const StringView& _str); /// - void set(const StringView& _str, int32_t _start, int32_t _len); + constexpr void set(const StringView& _str, int32_t _start, int32_t _len); /// - void clear(); + constexpr void clear(); /// Returns pointer to non-terminated string. /// /// @attention Use of this pointer in standard C/C++ functions is not safe. You must use it /// in conjunction with `getTerm()` or getLength()`. /// - const char* getPtr() const; + constexpr const char* getPtr() const; /// Returns pointer past last character in string view. /// /// @attention Dereferencing this pointer is not safe. /// - const char* getTerm() const; + constexpr const char* getTerm() const; /// Returns `true` if string is empty. /// - bool isEmpty() const; + constexpr bool isEmpty() const; /// Returns string length. /// - int32_t getLength() const; + constexpr int32_t getLength() const; /// Returns `true` if string is zero terminated. /// - bool is0Terminated() const; + constexpr bool is0Terminated() const; protected: const char* m_ptr; @@ -138,13 +138,13 @@ namespace bx }; /// Compare two string views. - bool operator==(const StringView& _lhs, const StringView& _rhs); + constexpr bool operator==(const StringView& _lhs, const StringView& _rhs); /// Returns true if two string views overlap. - bool overlap(const StringView& _a, const StringView& _b); + constexpr bool overlap(const StringView& _a, const StringView& _b); /// Returns true if string view `_a` contains string view `_b`. - bool contain(const StringView& _a, const StringView& _b); + constexpr bool contain(const StringView& _a, const StringView& _b); /// Fixed capacity string. /// @@ -153,44 +153,44 @@ namespace bx { public: /// - FixedStringT(); + constexpr FixedStringT(); /// - FixedStringT(const char* _str); + constexpr FixedStringT(const char* _str); /// - FixedStringT(const StringView& _str); + constexpr FixedStringT(const StringView& _str); /// - ~FixedStringT(); + constexpr ~FixedStringT(); /// - void set(const char* _str); + constexpr void set(const char* _str); /// - void set(const StringView& _str); + constexpr void set(const StringView& _str); /// - void append(const StringView& _str); + constexpr void append(const StringView& _str); /// - void clear(); + constexpr void clear(); /// Returns `true` if string is empty. /// - bool isEmpty() const; + constexpr bool isEmpty() const; /// Returns string length. /// - int32_t getLength() const; + constexpr int32_t getLength() const; /// Returns zero-terminated C string pointer. /// - const char* getCPtr() const; + constexpr const char* getCPtr() const; /// Implicitly converts FixedStringT to StringView. /// - operator StringView() const; + constexpr operator StringView() const; private: char m_storage[MaxCapacityT]; @@ -342,10 +342,10 @@ namespace bx int32_t strCmpV(const StringView& _lhs, const StringView& _rhs, int32_t _max = INT32_MAX); /// Get string length. - int32_t strLen(const char* _str, int32_t _max = INT32_MAX); + constexpr int32_t strLen(const char* _str, int32_t _max = INT32_MAX); /// Get string length. - int32_t strLen(const StringView& _str, int32_t _max = INT32_MAX); + constexpr int32_t strLen(const StringView& _str, int32_t _max = INT32_MAX); /// Copy _num characters from string _src to _dst buffer of maximum _dstSize capacity /// including zero terminator. Copy will be terminated with '\0'. @@ -480,12 +480,36 @@ namespace bx /// Converts string to double value. bool fromString(double* _out, const StringView& _str); + /// Converts string to 8-bit integer value. + bool fromString(int8_t* _out, const StringView& _str); + + /// Converts string to 8-bit unsigned integer value. + bool fromString(uint8_t* _out, const StringView& _str); + + /// Converts string to 8-bit integer value. + bool fromString(int16_t* _out, const StringView& _str); + + /// Converts string to 8-bit unsigned integer value. + bool fromString(uint16_t* _out, const StringView& _str); + /// Converts string to 32-bit integer value. bool fromString(int32_t* _out, const StringView& _str); /// Converts string to 32-bit unsigned integer value. bool fromString(uint32_t* _out, const StringView& _str); + /// Converts string to + bool fromString(long* _out, const StringView& _str); + + /// Converts string to + bool fromString(unsigned long* _out, const StringView& _str); + + /// Converts string to 64-bit long long value. + bool fromString(long long* _out, const StringView& _str); + + /// Converts string to 64-bit unsigned long long value. + bool fromString(unsigned long long* _out, const StringView& _str); + /// class LineReader { diff --git a/libs/bx/src/debug.cpp b/libs/bx/src/debug.cpp index b557ffd..a721364 100644 --- a/libs/bx/src/debug.cpp +++ b/libs/bx/src/debug.cpp @@ -735,21 +735,21 @@ namespace bx if (NULL != m_imageHlpDll) { - m_symInitialize = dlsym(m_imageHlpDll, "SymInitialize"); - m_symCleanup = dlsym(m_imageHlpDll, "SymCleanup"); - m_symFromAddr = dlsym(m_imageHlpDll, "SymFromAddr"); - m_symSetOptions = dlsym(m_imageHlpDll, "SymSetOptions"); - m_symGetLineFromAddr = dlsym(m_imageHlpDll, BX_ARCH_32BIT ? "SymGetLineFromAddr" : "SymGetLineFromAddr64"); + auto symInitialize = dlsym(m_imageHlpDll, "SymInitialize"); + auto symSetOptions = dlsym(m_imageHlpDll, "SymSetOptions"); + auto symCleanup = dlsym(m_imageHlpDll, "SymCleanup"); + auto symFromAddr = dlsym(m_imageHlpDll, "SymFromAddr"); + auto symGetLineFromAddr = dlsym(m_imageHlpDll, BX_ARCH_32BIT ? "SymGetLineFromAddr" : "SymGetLineFromAddr64"); if (true - && NULL != m_symInitialize - && NULL != m_symCleanup - && NULL != m_symFromAddr - && NULL != m_symSetOptions - && NULL != m_symGetLineFromAddr + && NULL != symInitialize + && NULL != symSetOptions + && NULL != symCleanup + && NULL != symFromAddr + && NULL != symGetLineFromAddr ) { - m_symSetOptions(kSymOptUndName | kSymOptDeferredLoads | kSymOptLoadLines); + symSetOptions(kSymOptUndName | kSymOptDeferredLoads | kSymOptLoadLines); char symCache[1024] = "SRV*"; uint32_t len = BX_COUNTOF(symCache) - 4; @@ -763,11 +763,23 @@ namespace bx symCache[0] = '\0'; } - if (!m_symInitialize(kCurrentProcess, symCache, true) ) + if (symInitialize(kCurrentProcess, symCache, true) ) { + m_symCleanup = symCleanup; + m_symFromAddr = symFromAddr; + m_symGetLineFromAddr = symGetLineFromAddr; + } + else + { + BX_TRACE("Failed to initialize debug symbols!"); cleanup(); } } + else + { + BX_TRACE("Failed to obtain debug symbols functions!"); + cleanup(); + } } } @@ -812,25 +824,26 @@ namespace bx void cleanup() { - m_symCleanup(kCurrentProcess); - - m_symInitialize = NULL; - m_symCleanup = NULL; - m_symFromAddr = NULL; - m_symSetOptions = NULL; - m_symGetLineFromAddr = NULL; + if (NULL != m_imageHlpDll) + { + if (NULL != m_symCleanup) + { + m_symCleanup(kCurrentProcess); + } - dlclose(m_imageHlpDll); + m_symCleanup = NULL; + m_symFromAddr = NULL; + m_symGetLineFromAddr = NULL; - m_imageHlpDll = NULL; + dlclose(m_imageHlpDll); + m_imageHlpDll = NULL; + } } void* m_imageHlpDll = NULL; - SymInitializeFn m_symInitialize = NULL; SymCleanupFn m_symCleanup = NULL; SymFromAddrFn m_symFromAddr = NULL; - SymSetOptionsFn m_symSetOptions = NULL; SymGetLineFromAddrFn m_symGetLineFromAddr = NULL; }; diff --git a/libs/bx/src/dtoa.cpp b/libs/bx/src/dtoa.cpp index b148d34..efff72c 100644 --- a/libs/bx/src/dtoa.cpp +++ b/libs/bx/src/dtoa.cpp @@ -1093,7 +1093,7 @@ namespace bx return true; } - bool fromString(int32_t* _out, const StringView& _str) + bool fromString(long long* _out, const StringView& _str) { StringView str = strLTrimSpace(_str); @@ -1113,7 +1113,7 @@ namespace bx break; } - int32_t result = 0; + long long result = 0; for (ch = *ptr++; isNumeric(ch) && ptr <= term; ch = *ptr++) { @@ -1125,10 +1125,4 @@ namespace bx return true; } - bool fromString(uint32_t* _out, const StringView& _str) - { - fromString( (int32_t*)_out, _str); - return true; - } - } // namespace bx diff --git a/libs/bx/src/string.cpp b/libs/bx/src/string.cpp index 1bb2fa1..0a83dac 100644 --- a/libs/bx/src/string.cpp +++ b/libs/bx/src/string.cpp @@ -165,7 +165,7 @@ namespace bx typedef char (*CharFn)(char _ch); - inline char toNoop(char _ch) + inline constexpr char toNoop(char _ch) { return _ch; } @@ -290,18 +290,6 @@ namespace bx ); } - int32_t strLen(const char* _str, int32_t _max) - { - if (NULL == _str) - { - return 0; - } - - const char* ptr = _str; - for (; 0 < _max && *ptr != '\0'; ++ptr, --_max) {}; - return int32_t(ptr - _str); - } - inline int32_t strCopy(char* _dst, int32_t _dstSize, const char* _src, int32_t _num) { BX_ASSERT(NULL != _dst, "_dst can't be NULL!"); diff --git a/libs/bx/src/thread.cpp b/libs/bx/src/thread.cpp index 1545031..f3a31a7 100644 --- a/libs/bx/src/thread.cpp +++ b/libs/bx/src/thread.cpp @@ -225,6 +225,12 @@ namespace bx void Thread::setThreadName(const char* _name) { + if (NULL == _name + || 0 == strLen(_name) ) + { + return; + } + ThreadInternal* ti = (ThreadInternal*)m_internal; BX_UNUSED(ti); #if BX_CRT_NONE @@ -248,6 +254,7 @@ namespace bx uint32_t size = length*sizeof(wchar_t); wchar_t* name = (wchar_t*)BX_STACK_ALLOC(size); mbstowcs(name, _name, size-2); + name[size-2] = 0; SetThreadDescription(ti->m_handle, name); } # if BX_COMPILER_MSVC diff --git a/shaders/bgfx_compute.sh b/shaders/bgfx_compute.sh index adcd560..f1bb34f 100644 --- a/shaders/bgfx_compute.sh +++ b/shaders/bgfx_compute.sh @@ -79,18 +79,27 @@ #define COMP_r32ui uint #define COMP_rg32ui uint2 #define COMP_rgba32ui uint4 +#define COMP_r16ui uint +#define COMP_rg16ui uint2 +#define COMP_rgba16ui uint4 #define COMP_r32f float #define COMP_r16f float #define COMP_rg16f float2 #define COMP_rgba16f float4 #if BGFX_SHADER_LANGUAGE_HLSL -# define COMP_rgba8 unorm float4 -# define COMP_rg8 unorm float2 -# define COMP_r8 unorm float +# define COMP_rgba8 unorm float4 +# define COMP_rg8 unorm float2 +# define COMP_r8 unorm float +# define COMP_rgba16 unorm float4 +# define COMP_rg16 unorm float2 +# define COMP_r16 unorm float #else -# define COMP_rgba8 float4 -# define COMP_rg8 float2 -# define COMP_r8 float +# define COMP_rgba8 float4 +# define COMP_rg8 float2 +# define COMP_r8 float +# define COMP_rgba16 float4 +# define COMP_rg16 float2 +# define COMP_r16 float #endif // BGFX_SHADER_LANGUAGE_HLSL #define COMP_rgba32f float4 diff --git a/src/backend_bgfx.zig b/src/backend_bgfx.zig index d49eac3..50ccb41 100644 --- a/src/backend_bgfx.zig +++ b/src/backend_bgfx.zig @@ -1,4 +1,4 @@ -const bgfx = @import("bgfx.zig"); +const bgfx = @import("bgfx"); pub fn init() void { ImGui_ImplBgfx_Init(); diff --git a/src/callbacks.zig b/src/callbacks.zig index beda40d..cd0273e 100644 --- a/src/callbacks.zig +++ b/src/callbacks.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const bgfx = @import("bgfx.zig"); +const bgfx = @import("bgfx"); const builtin = @import("builtin"); const log = std.log.scoped(.bgfx); diff --git a/src/debugdraw.zig b/src/debugdraw.zig index 778de66..53b4e77 100644 --- a/src/debugdraw.zig +++ b/src/debugdraw.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const bgfx = @import("bgfx.zig"); +const bgfx = @import("bgfx"); pub const Axis = enum(c_int) { X, diff --git a/src/shaderc.zig b/src/shaderc.zig index 03e176b..4883a16 100644 --- a/src/shaderc.zig +++ b/src/shaderc.zig @@ -1,7 +1,7 @@ const std = @import("std"); const builtin = @import("builtin"); -const bgfx = @import("bgfx.zig"); +const bgfx = @import("bgfx"); const ArgsList = std.ArrayList([]const u8); diff --git a/src/zbgfx.zig b/src/zbgfx.zig index 20fc0d7..9f41104 100644 --- a/src/zbgfx.zig +++ b/src/zbgfx.zig @@ -1,6 +1,6 @@ const std = @import("std"); -pub const bgfx = @import("bgfx.zig"); +pub const bgfx = @import("bgfx"); pub const build = @import("build_step.zig"); pub const callbacks = @import("callbacks.zig"); pub const shaderc = @import("shaderc.zig");