enum class PrintingClass : uint32_t {
  kAnnotation,
  kArithmetic,
  kAtomic,
  kBarrier,
  kBit,
  kComposite,
  kConstant_Creation,
  kControl_Flow,
  kConversion,
  kDebug,
  kDerivative,
  kDevice_Side_Enqueue,
  kExtension,
  kFunction,
  kGraph,
  kGroup,
  kImage,
  kMemory,
  kMiscellaneous,
  kMode_Setting,
  kNon_Uniform,
  kPipe,
  kPrimitive,
  kRelational_and_Logical,
  kReserved,
  kTensor,
  kType_Declaration,
  k_exclude,
};

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,
  kSPV_AMD_gpu_shader_half_float_fetch,
  kSPV_AMD_gpu_shader_int16,
  kSPV_AMD_shader_ballot,
  kSPV_AMD_shader_early_and_late_fragment_tests,
  kSPV_AMD_shader_explicit_vertex_parameter,
  kSPV_AMD_shader_fragment_mask,
  kSPV_AMD_shader_image_load_store_lod,
  kSPV_AMD_shader_trinary_minmax,
  kSPV_AMD_texture_gather_bias_lod,
  kSPV_AMD_weak_linkage,
  kSPV_ARM_cooperative_matrix_layouts,
  kSPV_ARM_core_builtins,
  kSPV_ARM_graph,
  kSPV_ARM_tensors,
  kSPV_EXT_arithmetic_fence,
  kSPV_EXT_demote_to_helper_invocation,
  kSPV_EXT_descriptor_heap,
  kSPV_EXT_descriptor_indexing,
  kSPV_EXT_float8,
  kSPV_EXT_fragment_fully_covered,
  kSPV_EXT_fragment_invocation_density,
  kSPV_EXT_fragment_shader_interlock,
  kSPV_EXT_long_vector,
  kSPV_EXT_mesh_shader,
  kSPV_EXT_ocp_microscaling_types,
  kSPV_EXT_opacity_micromap,
  kSPV_EXT_optnone,
  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_subgroup_partitioned,
  kSPV_EXT_shader_tile_image,
  kSPV_EXT_shader_viewport_index_layer,
  kSPV_EXT_split_barrier,
  kSPV_GOOGLE_decorate_string,
  kSPV_GOOGLE_hlsl_functionality1,
  kSPV_GOOGLE_user_type,
  kSPV_INTEL_2d_block_io,
  kSPV_INTEL_arbitrary_precision_fixed_point,
  kSPV_INTEL_arbitrary_precision_floating_point,
  kSPV_INTEL_arbitrary_precision_integers,
  kSPV_INTEL_bfloat16_conversion,
  kSPV_INTEL_bindless_images,
  kSPV_INTEL_blocking_pipes,
  kSPV_INTEL_cache_controls,
  kSPV_INTEL_debug_module,
  kSPV_INTEL_device_side_avc_motion_estimation,
  kSPV_INTEL_float_controls2,
  kSPV_INTEL_fp_fast_math_mode,
  kSPV_INTEL_fp_max_error,
  kSPV_INTEL_fpga_argument_interfaces,
  kSPV_INTEL_fpga_buffer_location,
  kSPV_INTEL_fpga_cluster_attributes,
  kSPV_INTEL_fpga_dsp_control,
  kSPV_INTEL_fpga_invocation_pipelining_attributes,
  kSPV_INTEL_fpga_latency_control,
  kSPV_INTEL_fpga_loop_controls,
  kSPV_INTEL_fpga_memory_accesses,
  kSPV_INTEL_fpga_memory_attributes,
  kSPV_INTEL_fpga_reg,
  kSPV_INTEL_function_pointers,
  kSPV_INTEL_function_variants,
  kSPV_INTEL_global_variable_fpga_decorations,
  kSPV_INTEL_global_variable_host_access,
  kSPV_INTEL_inline_assembly,
  kSPV_INTEL_int4,
  kSPV_INTEL_io_pipes,
  kSPV_INTEL_kernel_attributes,
  kSPV_INTEL_long_composites,
  kSPV_INTEL_loop_fuse,
  kSPV_INTEL_masked_gather_scatter,
  kSPV_INTEL_maximum_registers,
  kSPV_INTEL_media_block_io,
  kSPV_INTEL_memory_access_aliasing,
  kSPV_INTEL_optnone,
  kSPV_INTEL_predicated_io,
  kSPV_INTEL_rounded_divide_sqrt,
  kSPV_INTEL_runtime_aligned,
  kSPV_INTEL_shader_integer_functions2,
  kSPV_INTEL_split_barrier,
  kSPV_INTEL_subgroup_buffer_prefetch,
  kSPV_INTEL_subgroup_matrix_multiply_accumulate,
  kSPV_INTEL_subgroups,
  kSPV_INTEL_task_sequence,
  kSPV_INTEL_tensor_float32_conversion,
  kSPV_INTEL_ternary_bitwise_function,
  kSPV_INTEL_unstructured_loop_controls,
  kSPV_INTEL_usm_storage_classes,
  kSPV_INTEL_variable_length_array,
  kSPV_INTEL_vector_compute,
  kSPV_KHR_16bit_storage,
  kSPV_KHR_8bit_storage,
  kSPV_KHR_abort,
  kSPV_KHR_bfloat16,
  kSPV_KHR_bit_instructions,
  kSPV_KHR_compute_shader_derivatives,
  kSPV_KHR_constant_data,
  kSPV_KHR_cooperative_matrix,
  kSPV_KHR_device_group,
  kSPV_KHR_expect_assume,
  kSPV_KHR_float_controls,
  kSPV_KHR_float_controls2,
  kSPV_KHR_fma,
  kSPV_KHR_fragment_shader_barycentric,
  kSPV_KHR_fragment_shading_rate,
  kSPV_KHR_integer_dot_product,
  kSPV_KHR_linkonce_odr,
  kSPV_KHR_maximal_reconvergence,
  kSPV_KHR_multiview,
  kSPV_KHR_no_integer_wrap_decoration,
  kSPV_KHR_non_semantic_info,
  kSPV_KHR_opacity_micromap,
  kSPV_KHR_physical_storage_buffer,
  kSPV_KHR_poison_freeze,
  kSPV_KHR_post_depth_coverage,
  kSPV_KHR_quad_control,
  kSPV_KHR_ray_cull_mask,
  kSPV_KHR_ray_query,
  kSPV_KHR_ray_tracing,
  kSPV_KHR_ray_tracing_position_fetch,
  kSPV_KHR_relaxed_extended_instruction,
  kSPV_KHR_shader_atomic_counter_ops,
  kSPV_KHR_shader_ballot,
  kSPV_KHR_shader_clock,
  kSPV_KHR_shader_draw_parameters,
  kSPV_KHR_storage_buffer_storage_class,
  kSPV_KHR_subgroup_rotate,
  kSPV_KHR_subgroup_uniform_control_flow,
  kSPV_KHR_subgroup_vote,
  kSPV_KHR_terminate_invocation,
  kSPV_KHR_uniform_group_instructions,
  kSPV_KHR_untyped_pointers,
  kSPV_KHR_variable_pointers,
  kSPV_KHR_vulkan_memory_model,
  kSPV_KHR_workgroup_memory_explicit_layout,
  kSPV_NVX_multiview_per_view_attributes,
  kSPV_NV_bindless_texture,
  kSPV_NV_cluster_acceleration_structure,
  kSPV_NV_compute_shader_derivatives,
  kSPV_NV_cooperative_matrix,
  kSPV_NV_cooperative_matrix2,
  kSPV_NV_cooperative_matrix_decode_vector,
  kSPV_NV_cooperative_vector,
  kSPV_NV_displacement_micromap,
  kSPV_NV_fragment_shader_barycentric,
  kSPV_NV_geometry_shader_passthrough,
  kSPV_NV_linear_swept_spheres,
  kSPV_NV_mesh_shader,
  kSPV_NV_push_constant_bank,
  kSPV_NV_raw_access_chains,
  kSPV_NV_ray_tracing,
  kSPV_NV_ray_tracing_motion_blur,
  kSPV_NV_sample_mask_override_coverage,
  kSPV_NV_shader_atomic_fp16_vector,
  kSPV_NV_shader_image_footprint,
  kSPV_NV_shader_invocation_reorder,
  kSPV_NV_shader_sm_builtins,
  kSPV_NV_shader_subgroup_partitioned,
  kSPV_NV_shading_rate,
  kSPV_NV_stereo_view_rendering,
  kSPV_NV_tensor_addressing,
  kSPV_NV_viewport_array2,
  kSPV_QCOM_cooperative_matrix_conversion,
  kSPV_QCOM_image_processing,
  kSPV_QCOM_image_processing2,
  kSPV_QCOM_image_processing3,
  kSPV_QCOM_multiple_wait_queues,
  kSPV_QCOM_tile_shading,
  kSPV_SAMSUNG_intrinsic,
  kSPV_VALIDATOR_ignore_type_decl_unique,
  kSPV_VALVE_mixed_float_dot_product,
};
