diff --git a/3rdparty/spirv-tools/include/generated/build-version.inc b/3rdparty/spirv-tools/include/generated/build-version.inc index acbd6d50e..06f285745 100644 --- a/3rdparty/spirv-tools/include/generated/build-version.inc +++ b/3rdparty/spirv-tools/include/generated/build-version.inc @@ -1 +1 @@ -"v2025.2", "SPIRV-Tools v2025.2 v2025.2.rc2-58-g007a1f89" +"v2025.3", "SPIRV-Tools v2025.3 v2025.3.rc1-110-g8fbe2387" diff --git a/3rdparty/spirv-tools/include/generated/core_tables_body.inc b/3rdparty/spirv-tools/include/generated/core_tables_body.inc index 7de02d5fa..d65264668 100644 --- a/3rdparty/spirv-tools/include/generated/core_tables_body.inc +++ b/3rdparty/spirv-tools/include/generated/core_tables_body.inc @@ -15,149 +15,152 @@ IndexRange ExtensionToIndexRange(Extension extension) { 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_tensors: return IR(426, 16); - case Extension::kSPV_EXT_arithmetic_fence: return IR(442, 25); - case Extension::kSPV_EXT_demote_to_helper_invocation: return IR(467, 36); - case Extension::kSPV_EXT_descriptor_indexing: return IR(503, 28); - case Extension::kSPV_EXT_float8: return IR(531, 15); - case Extension::kSPV_EXT_fragment_fully_covered: return IR(546, 31); - case Extension::kSPV_EXT_fragment_invocation_density: return IR(577, 36); - case Extension::kSPV_EXT_fragment_shader_interlock: return IR(613, 34); - case Extension::kSPV_EXT_mesh_shader: return IR(647, 20); - case Extension::kSPV_EXT_opacity_micromap: return IR(667, 25); - case Extension::kSPV_EXT_optnone: return IR(692, 16); - case Extension::kSPV_EXT_physical_storage_buffer: return IR(708, 32); - case Extension::kSPV_EXT_relaxed_printf_string_address_space: return IR(740, 44); - case Extension::kSPV_EXT_replicated_composites: return IR(784, 30); - case Extension::kSPV_EXT_shader_atomic_float16_add: return IR(814, 34); - case Extension::kSPV_EXT_shader_atomic_float_add: return IR(848, 32); - case Extension::kSPV_EXT_shader_atomic_float_min_max: return IR(880, 36); - case Extension::kSPV_EXT_shader_image_int64: return IR(916, 27); - case Extension::kSPV_EXT_shader_stencil_export: return IR(943, 30); - case Extension::kSPV_EXT_shader_tile_image: return IR(973, 26); - case Extension::kSPV_EXT_shader_viewport_index_layer: return IR(999, 36); - case Extension::kSPV_GOOGLE_decorate_string: return IR(1035, 27); - case Extension::kSPV_GOOGLE_hlsl_functionality1: return IR(1062, 31); - case Extension::kSPV_GOOGLE_user_type: return IR(1093, 21); - case Extension::kSPV_INTEL_2d_block_io: return IR(1114, 22); - case Extension::kSPV_INTEL_arbitrary_precision_fixed_point: return IR(1136, 42); - case Extension::kSPV_INTEL_arbitrary_precision_floating_point: return IR(1178, 45); - case Extension::kSPV_INTEL_arbitrary_precision_integers: return IR(1223, 39); - case Extension::kSPV_INTEL_bfloat16_conversion: return IR(1262, 30); - case Extension::kSPV_INTEL_bindless_images: return IR(1292, 26); - case Extension::kSPV_INTEL_blocking_pipes: return IR(1318, 25); - case Extension::kSPV_INTEL_cache_controls: return IR(1343, 25); - case Extension::kSPV_INTEL_debug_module: return IR(1368, 23); - case Extension::kSPV_INTEL_device_side_avc_motion_estimation: return IR(1391, 44); - case Extension::kSPV_INTEL_float_controls2: return IR(1435, 26); - case Extension::kSPV_INTEL_fp_fast_math_mode: return IR(1461, 28); - case Extension::kSPV_INTEL_fp_max_error: return IR(1489, 23); - case Extension::kSPV_INTEL_fpga_argument_interfaces: return IR(1512, 35); - case Extension::kSPV_INTEL_fpga_buffer_location: return IR(1547, 31); - case Extension::kSPV_INTEL_fpga_cluster_attributes: return IR(1578, 34); - case Extension::kSPV_INTEL_fpga_dsp_control: return IR(1612, 27); - case Extension::kSPV_INTEL_fpga_invocation_pipelining_attributes: return IR(1639, 48); - case Extension::kSPV_INTEL_fpga_latency_control: return IR(1687, 31); - case Extension::kSPV_INTEL_fpga_loop_controls: return IR(1718, 29); - case Extension::kSPV_INTEL_fpga_memory_accesses: return IR(1747, 31); - case Extension::kSPV_INTEL_fpga_memory_attributes: return IR(1778, 33); - case Extension::kSPV_INTEL_fpga_reg: return IR(1811, 19); - case Extension::kSPV_INTEL_function_pointers: return IR(1830, 28); - case Extension::kSPV_INTEL_global_variable_fpga_decorations: return IR(1858, 43); - case Extension::kSPV_INTEL_global_variable_host_access: return IR(1901, 38); - case Extension::kSPV_INTEL_inline_assembly: return IR(1939, 26); - case Extension::kSPV_INTEL_int4: return IR(1965, 15); - case Extension::kSPV_INTEL_io_pipes: return IR(1980, 19); - case Extension::kSPV_INTEL_kernel_attributes: return IR(1999, 28); - case Extension::kSPV_INTEL_long_composites: return IR(2027, 26); - case Extension::kSPV_INTEL_loop_fuse: return IR(2053, 20); - case Extension::kSPV_INTEL_masked_gather_scatter: return IR(2073, 32); - case Extension::kSPV_INTEL_maximum_registers: return IR(2105, 28); - case Extension::kSPV_INTEL_media_block_io: return IR(2133, 25); - case Extension::kSPV_INTEL_memory_access_aliasing: return IR(2158, 33); - case Extension::kSPV_INTEL_optnone: return IR(2191, 18); - case Extension::kSPV_INTEL_runtime_aligned: return IR(2209, 26); - case Extension::kSPV_INTEL_shader_integer_functions2: return IR(2235, 36); - case Extension::kSPV_INTEL_split_barrier: return IR(2271, 24); - case Extension::kSPV_INTEL_subgroup_buffer_prefetch: return IR(2295, 35); - case Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate: return IR(2330, 46); - case Extension::kSPV_INTEL_subgroups: return IR(2376, 20); - case Extension::kSPV_INTEL_task_sequence: return IR(2396, 24); - case Extension::kSPV_INTEL_tensor_float32_conversion: return IR(2420, 36); - case Extension::kSPV_INTEL_ternary_bitwise_function: return IR(2456, 35); - case Extension::kSPV_INTEL_unstructured_loop_controls: return IR(2491, 37); - case Extension::kSPV_INTEL_usm_storage_classes: return IR(2528, 30); - case Extension::kSPV_INTEL_variable_length_array: return IR(2558, 32); - case Extension::kSPV_INTEL_vector_compute: return IR(2590, 25); - case Extension::kSPV_KHR_16bit_storage: return IR(2615, 22); - case Extension::kSPV_KHR_8bit_storage: return IR(2637, 21); - case Extension::kSPV_KHR_bfloat16: return IR(2658, 17); - case Extension::kSPV_KHR_bit_instructions: return IR(2675, 25); - case Extension::kSPV_KHR_compute_shader_derivatives: return IR(2700, 35); - case Extension::kSPV_KHR_cooperative_matrix: return IR(2735, 27); - case Extension::kSPV_KHR_device_group: return IR(2762, 21); - case Extension::kSPV_KHR_expect_assume: return IR(2783, 22); - case Extension::kSPV_KHR_float_controls: return IR(2805, 23); - case Extension::kSPV_KHR_float_controls2: return IR(2828, 24); - case Extension::kSPV_KHR_fragment_shader_barycentric: return IR(2852, 36); - case Extension::kSPV_KHR_fragment_shading_rate: return IR(2888, 30); - case Extension::kSPV_KHR_integer_dot_product: return IR(2918, 28); - case Extension::kSPV_KHR_linkonce_odr: return IR(2946, 21); - case Extension::kSPV_KHR_maximal_reconvergence: return IR(2967, 30); - case Extension::kSPV_KHR_multiview: return IR(2997, 18); - case Extension::kSPV_KHR_no_integer_wrap_decoration: return IR(3015, 35); - case Extension::kSPV_KHR_non_semantic_info: return IR(3050, 26); - case Extension::kSPV_KHR_physical_storage_buffer: return IR(3076, 32); - case Extension::kSPV_KHR_post_depth_coverage: return IR(3108, 28); - case Extension::kSPV_KHR_quad_control: return IR(3136, 21); - case Extension::kSPV_KHR_ray_cull_mask: return IR(3157, 22); - case Extension::kSPV_KHR_ray_query: return IR(3179, 18); - case Extension::kSPV_KHR_ray_tracing: return IR(3197, 20); - case Extension::kSPV_KHR_ray_tracing_position_fetch: return IR(3217, 35); - case Extension::kSPV_KHR_relaxed_extended_instruction: return IR(3252, 37); - case Extension::kSPV_KHR_shader_atomic_counter_ops: return IR(3289, 34); - case Extension::kSPV_KHR_shader_ballot: return IR(3323, 22); - case Extension::kSPV_KHR_shader_clock: return IR(3345, 21); - case Extension::kSPV_KHR_shader_draw_parameters: return IR(3366, 31); - case Extension::kSPV_KHR_storage_buffer_storage_class: return IR(3397, 37); - case Extension::kSPV_KHR_subgroup_rotate: return IR(3434, 24); - case Extension::kSPV_KHR_subgroup_uniform_control_flow: return IR(3458, 38); - case Extension::kSPV_KHR_subgroup_vote: return IR(3496, 22); - case Extension::kSPV_KHR_terminate_invocation: return IR(3518, 29); - case Extension::kSPV_KHR_uniform_group_instructions: return IR(3547, 35); - case Extension::kSPV_KHR_untyped_pointers: return IR(3582, 25); - case Extension::kSPV_KHR_variable_pointers: return IR(3607, 26); - case Extension::kSPV_KHR_vulkan_memory_model: return IR(3633, 28); - case Extension::kSPV_KHR_workgroup_memory_explicit_layout: return IR(3661, 41); - case Extension::kSPV_NVX_multiview_per_view_attributes: return IR(3702, 38); - case Extension::kSPV_NV_bindless_texture: return IR(3740, 24); - case Extension::kSPV_NV_cluster_acceleration_structure: return IR(3764, 38); - case Extension::kSPV_NV_compute_shader_derivatives: return IR(3802, 34); - case Extension::kSPV_NV_cooperative_matrix: return IR(3836, 26); - case Extension::kSPV_NV_cooperative_matrix2: return IR(3862, 27); - case Extension::kSPV_NV_cooperative_vector: return IR(3889, 26); - case Extension::kSPV_NV_displacement_micromap: return IR(3915, 29); - case Extension::kSPV_NV_fragment_shader_barycentric: return IR(3944, 35); - case Extension::kSPV_NV_geometry_shader_passthrough: return IR(3979, 35); - case Extension::kSPV_NV_linear_swept_spheres: return IR(4014, 28); - case Extension::kSPV_NV_mesh_shader: return IR(4042, 19); - case Extension::kSPV_NV_raw_access_chains: return IR(4061, 25); - case Extension::kSPV_NV_ray_tracing: return IR(4086, 19); - case Extension::kSPV_NV_ray_tracing_motion_blur: return IR(4105, 31); - case Extension::kSPV_NV_sample_mask_override_coverage: return IR(4136, 37); - case Extension::kSPV_NV_shader_atomic_fp16_vector: return IR(4173, 33); - case Extension::kSPV_NV_shader_image_footprint: return IR(4206, 30); - case Extension::kSPV_NV_shader_invocation_reorder: return IR(4236, 33); - case Extension::kSPV_NV_shader_sm_builtins: return IR(4269, 26); - case Extension::kSPV_NV_shader_subgroup_partitioned: return IR(4295, 35); - case Extension::kSPV_NV_shading_rate: return IR(4330, 20); - case Extension::kSPV_NV_stereo_view_rendering: return IR(4350, 29); - case Extension::kSPV_NV_tensor_addressing: return IR(4379, 25); - case Extension::kSPV_NV_viewport_array2: return IR(4404, 23); - case Extension::kSPV_QCOM_image_processing: return IR(4427, 26); - case Extension::kSPV_QCOM_image_processing2: return IR(4453, 27); - case Extension::kSPV_QCOM_tile_shading: return IR(4480, 22); - case Extension::kSPV_VALIDATOR_ignore_type_decl_unique: return IR(4502, 38); + 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_fragment_shader_barycentric: return IR(2894, 36); + case Extension::kSPV_KHR_fragment_shading_rate: return IR(2930, 30); + case Extension::kSPV_KHR_integer_dot_product: return IR(2960, 28); + case Extension::kSPV_KHR_linkonce_odr: return IR(2988, 21); + case Extension::kSPV_KHR_maximal_reconvergence: return IR(3009, 30); + case Extension::kSPV_KHR_multiview: return IR(3039, 18); + case Extension::kSPV_KHR_no_integer_wrap_decoration: return IR(3057, 35); + case Extension::kSPV_KHR_non_semantic_info: return IR(3092, 26); + case Extension::kSPV_KHR_physical_storage_buffer: return IR(3118, 32); + case Extension::kSPV_KHR_post_depth_coverage: return IR(3150, 28); + case Extension::kSPV_KHR_quad_control: return IR(3178, 21); + case Extension::kSPV_KHR_ray_cull_mask: return IR(3199, 22); + case Extension::kSPV_KHR_ray_query: return IR(3221, 18); + case Extension::kSPV_KHR_ray_tracing: return IR(3239, 20); + case Extension::kSPV_KHR_ray_tracing_position_fetch: return IR(3259, 35); + case Extension::kSPV_KHR_relaxed_extended_instruction: return IR(3294, 37); + case Extension::kSPV_KHR_shader_atomic_counter_ops: return IR(3331, 34); + case Extension::kSPV_KHR_shader_ballot: return IR(3365, 22); + case Extension::kSPV_KHR_shader_clock: return IR(3387, 21); + case Extension::kSPV_KHR_shader_draw_parameters: return IR(3408, 31); + case Extension::kSPV_KHR_storage_buffer_storage_class: return IR(3439, 37); + case Extension::kSPV_KHR_subgroup_rotate: return IR(3476, 24); + case Extension::kSPV_KHR_subgroup_uniform_control_flow: return IR(3500, 38); + case Extension::kSPV_KHR_subgroup_vote: return IR(3538, 22); + case Extension::kSPV_KHR_terminate_invocation: return IR(3560, 29); + case Extension::kSPV_KHR_uniform_group_instructions: return IR(3589, 35); + case Extension::kSPV_KHR_untyped_pointers: return IR(3624, 25); + case Extension::kSPV_KHR_variable_pointers: return IR(3649, 26); + case Extension::kSPV_KHR_vulkan_memory_model: return IR(3675, 28); + case Extension::kSPV_KHR_workgroup_memory_explicit_layout: return IR(3703, 41); + case Extension::kSPV_NVX_multiview_per_view_attributes: return IR(3744, 38); + case Extension::kSPV_NV_bindless_texture: return IR(3782, 24); + case Extension::kSPV_NV_cluster_acceleration_structure: return IR(3806, 38); + case Extension::kSPV_NV_compute_shader_derivatives: return IR(3844, 34); + case Extension::kSPV_NV_cooperative_matrix: return IR(3878, 26); + case Extension::kSPV_NV_cooperative_matrix2: return IR(3904, 27); + case Extension::kSPV_NV_cooperative_vector: return IR(3931, 26); + case Extension::kSPV_NV_displacement_micromap: return IR(3957, 29); + case Extension::kSPV_NV_fragment_shader_barycentric: return IR(3986, 35); + case Extension::kSPV_NV_geometry_shader_passthrough: return IR(4021, 35); + case Extension::kSPV_NV_linear_swept_spheres: return IR(4056, 28); + case Extension::kSPV_NV_mesh_shader: return IR(4084, 19); + case Extension::kSPV_NV_raw_access_chains: return IR(4103, 25); + case Extension::kSPV_NV_ray_tracing: return IR(4128, 19); + case Extension::kSPV_NV_ray_tracing_motion_blur: return IR(4147, 31); + case Extension::kSPV_NV_sample_mask_override_coverage: return IR(4178, 37); + case Extension::kSPV_NV_shader_atomic_fp16_vector: return IR(4215, 33); + case Extension::kSPV_NV_shader_image_footprint: return IR(4248, 30); + case Extension::kSPV_NV_shader_invocation_reorder: return IR(4278, 33); + case Extension::kSPV_NV_shader_sm_builtins: return IR(4311, 26); + case Extension::kSPV_NV_shader_subgroup_partitioned: return IR(4337, 35); + case Extension::kSPV_NV_shading_rate: return IR(4372, 20); + case Extension::kSPV_NV_stereo_view_rendering: return IR(4392, 29); + case Extension::kSPV_NV_tensor_addressing: return IR(4421, 25); + case Extension::kSPV_NV_viewport_array2: return IR(4446, 23); + case Extension::kSPV_QCOM_cooperative_matrix_conversion: return IR(4469, 39); + case Extension::kSPV_QCOM_image_processing: return IR(4508, 26); + case Extension::kSPV_QCOM_image_processing2: return IR(4534, 27); + case Extension::kSPV_QCOM_tile_shading: return IR(4561, 22); + case Extension::kSPV_VALIDATOR_ignore_type_decl_unique: return IR(4583, 38); default: break; } return {}; @@ -167,7 +170,7 @@ IndexRange ExtensionToIndexRange(Extension extension) { // The fields in order are: // name, indexing into kStrings // enum value -static const std::array kExtensionNames{{ +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)}, @@ -182,149 +185,152 @@ static const std::array kExtensionNames{{ {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, 16), static_cast(kSPV_ARM_tensors)}, - {IR(442, 25), static_cast(kSPV_EXT_arithmetic_fence)}, - {IR(467, 36), static_cast(kSPV_EXT_demote_to_helper_invocation)}, - {IR(503, 28), static_cast(kSPV_EXT_descriptor_indexing)}, - {IR(531, 15), static_cast(kSPV_EXT_float8)}, - {IR(546, 31), static_cast(kSPV_EXT_fragment_fully_covered)}, - {IR(577, 36), static_cast(kSPV_EXT_fragment_invocation_density)}, - {IR(613, 34), static_cast(kSPV_EXT_fragment_shader_interlock)}, - {IR(647, 20), static_cast(kSPV_EXT_mesh_shader)}, - {IR(667, 25), static_cast(kSPV_EXT_opacity_micromap)}, - {IR(692, 16), static_cast(kSPV_EXT_optnone)}, - {IR(708, 32), static_cast(kSPV_EXT_physical_storage_buffer)}, - {IR(740, 44), static_cast(kSPV_EXT_relaxed_printf_string_address_space)}, - {IR(784, 30), static_cast(kSPV_EXT_replicated_composites)}, - {IR(814, 34), static_cast(kSPV_EXT_shader_atomic_float16_add)}, - {IR(848, 32), static_cast(kSPV_EXT_shader_atomic_float_add)}, - {IR(880, 36), static_cast(kSPV_EXT_shader_atomic_float_min_max)}, - {IR(916, 27), static_cast(kSPV_EXT_shader_image_int64)}, - {IR(943, 30), static_cast(kSPV_EXT_shader_stencil_export)}, - {IR(973, 26), static_cast(kSPV_EXT_shader_tile_image)}, - {IR(999, 36), static_cast(kSPV_EXT_shader_viewport_index_layer)}, - {IR(1035, 27), static_cast(kSPV_GOOGLE_decorate_string)}, - {IR(1062, 31), static_cast(kSPV_GOOGLE_hlsl_functionality1)}, - {IR(1093, 21), static_cast(kSPV_GOOGLE_user_type)}, - {IR(1114, 22), static_cast(kSPV_INTEL_2d_block_io)}, - {IR(1136, 42), static_cast(kSPV_INTEL_arbitrary_precision_fixed_point)}, - {IR(1178, 45), static_cast(kSPV_INTEL_arbitrary_precision_floating_point)}, - {IR(1223, 39), static_cast(kSPV_INTEL_arbitrary_precision_integers)}, - {IR(1262, 30), static_cast(kSPV_INTEL_bfloat16_conversion)}, - {IR(1292, 26), static_cast(kSPV_INTEL_bindless_images)}, - {IR(1318, 25), static_cast(kSPV_INTEL_blocking_pipes)}, - {IR(1343, 25), static_cast(kSPV_INTEL_cache_controls)}, - {IR(1368, 23), static_cast(kSPV_INTEL_debug_module)}, - {IR(1391, 44), static_cast(kSPV_INTEL_device_side_avc_motion_estimation)}, - {IR(1435, 26), static_cast(kSPV_INTEL_float_controls2)}, - {IR(1461, 28), static_cast(kSPV_INTEL_fp_fast_math_mode)}, - {IR(1489, 23), static_cast(kSPV_INTEL_fp_max_error)}, - {IR(1512, 35), static_cast(kSPV_INTEL_fpga_argument_interfaces)}, - {IR(1547, 31), static_cast(kSPV_INTEL_fpga_buffer_location)}, - {IR(1578, 34), static_cast(kSPV_INTEL_fpga_cluster_attributes)}, - {IR(1612, 27), static_cast(kSPV_INTEL_fpga_dsp_control)}, - {IR(1639, 48), static_cast(kSPV_INTEL_fpga_invocation_pipelining_attributes)}, - {IR(1687, 31), static_cast(kSPV_INTEL_fpga_latency_control)}, - {IR(1718, 29), static_cast(kSPV_INTEL_fpga_loop_controls)}, - {IR(1747, 31), static_cast(kSPV_INTEL_fpga_memory_accesses)}, - {IR(1778, 33), static_cast(kSPV_INTEL_fpga_memory_attributes)}, - {IR(1811, 19), static_cast(kSPV_INTEL_fpga_reg)}, - {IR(1830, 28), static_cast(kSPV_INTEL_function_pointers)}, - {IR(1858, 43), static_cast(kSPV_INTEL_global_variable_fpga_decorations)}, - {IR(1901, 38), static_cast(kSPV_INTEL_global_variable_host_access)}, - {IR(1939, 26), static_cast(kSPV_INTEL_inline_assembly)}, - {IR(1965, 15), static_cast(kSPV_INTEL_int4)}, - {IR(1980, 19), static_cast(kSPV_INTEL_io_pipes)}, - {IR(1999, 28), static_cast(kSPV_INTEL_kernel_attributes)}, - {IR(2027, 26), static_cast(kSPV_INTEL_long_composites)}, - {IR(2053, 20), static_cast(kSPV_INTEL_loop_fuse)}, - {IR(2073, 32), static_cast(kSPV_INTEL_masked_gather_scatter)}, - {IR(2105, 28), static_cast(kSPV_INTEL_maximum_registers)}, - {IR(2133, 25), static_cast(kSPV_INTEL_media_block_io)}, - {IR(2158, 33), static_cast(kSPV_INTEL_memory_access_aliasing)}, - {IR(2191, 18), static_cast(kSPV_INTEL_optnone)}, - {IR(2209, 26), static_cast(kSPV_INTEL_runtime_aligned)}, - {IR(2235, 36), static_cast(kSPV_INTEL_shader_integer_functions2)}, - {IR(2271, 24), static_cast(kSPV_INTEL_split_barrier)}, - {IR(2295, 35), static_cast(kSPV_INTEL_subgroup_buffer_prefetch)}, - {IR(2330, 46), static_cast(kSPV_INTEL_subgroup_matrix_multiply_accumulate)}, - {IR(2376, 20), static_cast(kSPV_INTEL_subgroups)}, - {IR(2396, 24), static_cast(kSPV_INTEL_task_sequence)}, - {IR(2420, 36), static_cast(kSPV_INTEL_tensor_float32_conversion)}, - {IR(2456, 35), static_cast(kSPV_INTEL_ternary_bitwise_function)}, - {IR(2491, 37), static_cast(kSPV_INTEL_unstructured_loop_controls)}, - {IR(2528, 30), static_cast(kSPV_INTEL_usm_storage_classes)}, - {IR(2558, 32), static_cast(kSPV_INTEL_variable_length_array)}, - {IR(2590, 25), static_cast(kSPV_INTEL_vector_compute)}, - {IR(2615, 22), static_cast(kSPV_KHR_16bit_storage)}, - {IR(2637, 21), static_cast(kSPV_KHR_8bit_storage)}, - {IR(2658, 17), static_cast(kSPV_KHR_bfloat16)}, - {IR(2675, 25), static_cast(kSPV_KHR_bit_instructions)}, - {IR(2700, 35), static_cast(kSPV_KHR_compute_shader_derivatives)}, - {IR(2735, 27), static_cast(kSPV_KHR_cooperative_matrix)}, - {IR(2762, 21), static_cast(kSPV_KHR_device_group)}, - {IR(2783, 22), static_cast(kSPV_KHR_expect_assume)}, - {IR(2805, 23), static_cast(kSPV_KHR_float_controls)}, - {IR(2828, 24), static_cast(kSPV_KHR_float_controls2)}, - {IR(2852, 36), static_cast(kSPV_KHR_fragment_shader_barycentric)}, - {IR(2888, 30), static_cast(kSPV_KHR_fragment_shading_rate)}, - {IR(2918, 28), static_cast(kSPV_KHR_integer_dot_product)}, - {IR(2946, 21), static_cast(kSPV_KHR_linkonce_odr)}, - {IR(2967, 30), static_cast(kSPV_KHR_maximal_reconvergence)}, - {IR(2997, 18), static_cast(kSPV_KHR_multiview)}, - {IR(3015, 35), static_cast(kSPV_KHR_no_integer_wrap_decoration)}, - {IR(3050, 26), static_cast(kSPV_KHR_non_semantic_info)}, - {IR(3076, 32), static_cast(kSPV_KHR_physical_storage_buffer)}, - {IR(3108, 28), static_cast(kSPV_KHR_post_depth_coverage)}, - {IR(3136, 21), static_cast(kSPV_KHR_quad_control)}, - {IR(3157, 22), static_cast(kSPV_KHR_ray_cull_mask)}, - {IR(3179, 18), static_cast(kSPV_KHR_ray_query)}, - {IR(3197, 20), static_cast(kSPV_KHR_ray_tracing)}, - {IR(3217, 35), static_cast(kSPV_KHR_ray_tracing_position_fetch)}, - {IR(3252, 37), static_cast(kSPV_KHR_relaxed_extended_instruction)}, - {IR(3289, 34), static_cast(kSPV_KHR_shader_atomic_counter_ops)}, - {IR(3323, 22), static_cast(kSPV_KHR_shader_ballot)}, - {IR(3345, 21), static_cast(kSPV_KHR_shader_clock)}, - {IR(3366, 31), static_cast(kSPV_KHR_shader_draw_parameters)}, - {IR(3397, 37), static_cast(kSPV_KHR_storage_buffer_storage_class)}, - {IR(3434, 24), static_cast(kSPV_KHR_subgroup_rotate)}, - {IR(3458, 38), static_cast(kSPV_KHR_subgroup_uniform_control_flow)}, - {IR(3496, 22), static_cast(kSPV_KHR_subgroup_vote)}, - {IR(3518, 29), static_cast(kSPV_KHR_terminate_invocation)}, - {IR(3547, 35), static_cast(kSPV_KHR_uniform_group_instructions)}, - {IR(3582, 25), static_cast(kSPV_KHR_untyped_pointers)}, - {IR(3607, 26), static_cast(kSPV_KHR_variable_pointers)}, - {IR(3633, 28), static_cast(kSPV_KHR_vulkan_memory_model)}, - {IR(3661, 41), static_cast(kSPV_KHR_workgroup_memory_explicit_layout)}, - {IR(3702, 38), static_cast(kSPV_NVX_multiview_per_view_attributes)}, - {IR(3740, 24), static_cast(kSPV_NV_bindless_texture)}, - {IR(3764, 38), static_cast(kSPV_NV_cluster_acceleration_structure)}, - {IR(3802, 34), static_cast(kSPV_NV_compute_shader_derivatives)}, - {IR(3836, 26), static_cast(kSPV_NV_cooperative_matrix)}, - {IR(3862, 27), static_cast(kSPV_NV_cooperative_matrix2)}, - {IR(3889, 26), static_cast(kSPV_NV_cooperative_vector)}, - {IR(3915, 29), static_cast(kSPV_NV_displacement_micromap)}, - {IR(3944, 35), static_cast(kSPV_NV_fragment_shader_barycentric)}, - {IR(3979, 35), static_cast(kSPV_NV_geometry_shader_passthrough)}, - {IR(4014, 28), static_cast(kSPV_NV_linear_swept_spheres)}, - {IR(4042, 19), static_cast(kSPV_NV_mesh_shader)}, - {IR(4061, 25), static_cast(kSPV_NV_raw_access_chains)}, - {IR(4086, 19), static_cast(kSPV_NV_ray_tracing)}, - {IR(4105, 31), static_cast(kSPV_NV_ray_tracing_motion_blur)}, - {IR(4136, 37), static_cast(kSPV_NV_sample_mask_override_coverage)}, - {IR(4173, 33), static_cast(kSPV_NV_shader_atomic_fp16_vector)}, - {IR(4206, 30), static_cast(kSPV_NV_shader_image_footprint)}, - {IR(4236, 33), static_cast(kSPV_NV_shader_invocation_reorder)}, - {IR(4269, 26), static_cast(kSPV_NV_shader_sm_builtins)}, - {IR(4295, 35), static_cast(kSPV_NV_shader_subgroup_partitioned)}, - {IR(4330, 20), static_cast(kSPV_NV_shading_rate)}, - {IR(4350, 29), static_cast(kSPV_NV_stereo_view_rendering)}, - {IR(4379, 25), static_cast(kSPV_NV_tensor_addressing)}, - {IR(4404, 23), static_cast(kSPV_NV_viewport_array2)}, - {IR(4427, 26), static_cast(kSPV_QCOM_image_processing)}, - {IR(4453, 27), static_cast(kSPV_QCOM_image_processing2)}, - {IR(4480, 22), static_cast(kSPV_QCOM_tile_shading)}, - {IR(4502, 38), static_cast(kSPV_VALIDATOR_ignore_type_decl_unique)}, + {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, 36), static_cast(kSPV_KHR_fragment_shader_barycentric)}, + {IR(2930, 30), static_cast(kSPV_KHR_fragment_shading_rate)}, + {IR(2960, 28), static_cast(kSPV_KHR_integer_dot_product)}, + {IR(2988, 21), static_cast(kSPV_KHR_linkonce_odr)}, + {IR(3009, 30), static_cast(kSPV_KHR_maximal_reconvergence)}, + {IR(3039, 18), static_cast(kSPV_KHR_multiview)}, + {IR(3057, 35), static_cast(kSPV_KHR_no_integer_wrap_decoration)}, + {IR(3092, 26), static_cast(kSPV_KHR_non_semantic_info)}, + {IR(3118, 32), static_cast(kSPV_KHR_physical_storage_buffer)}, + {IR(3150, 28), static_cast(kSPV_KHR_post_depth_coverage)}, + {IR(3178, 21), static_cast(kSPV_KHR_quad_control)}, + {IR(3199, 22), static_cast(kSPV_KHR_ray_cull_mask)}, + {IR(3221, 18), static_cast(kSPV_KHR_ray_query)}, + {IR(3239, 20), static_cast(kSPV_KHR_ray_tracing)}, + {IR(3259, 35), static_cast(kSPV_KHR_ray_tracing_position_fetch)}, + {IR(3294, 37), static_cast(kSPV_KHR_relaxed_extended_instruction)}, + {IR(3331, 34), static_cast(kSPV_KHR_shader_atomic_counter_ops)}, + {IR(3365, 22), static_cast(kSPV_KHR_shader_ballot)}, + {IR(3387, 21), static_cast(kSPV_KHR_shader_clock)}, + {IR(3408, 31), static_cast(kSPV_KHR_shader_draw_parameters)}, + {IR(3439, 37), static_cast(kSPV_KHR_storage_buffer_storage_class)}, + {IR(3476, 24), static_cast(kSPV_KHR_subgroup_rotate)}, + {IR(3500, 38), static_cast(kSPV_KHR_subgroup_uniform_control_flow)}, + {IR(3538, 22), static_cast(kSPV_KHR_subgroup_vote)}, + {IR(3560, 29), static_cast(kSPV_KHR_terminate_invocation)}, + {IR(3589, 35), static_cast(kSPV_KHR_uniform_group_instructions)}, + {IR(3624, 25), static_cast(kSPV_KHR_untyped_pointers)}, + {IR(3649, 26), static_cast(kSPV_KHR_variable_pointers)}, + {IR(3675, 28), static_cast(kSPV_KHR_vulkan_memory_model)}, + {IR(3703, 41), static_cast(kSPV_KHR_workgroup_memory_explicit_layout)}, + {IR(3744, 38), static_cast(kSPV_NVX_multiview_per_view_attributes)}, + {IR(3782, 24), static_cast(kSPV_NV_bindless_texture)}, + {IR(3806, 38), static_cast(kSPV_NV_cluster_acceleration_structure)}, + {IR(3844, 34), static_cast(kSPV_NV_compute_shader_derivatives)}, + {IR(3878, 26), static_cast(kSPV_NV_cooperative_matrix)}, + {IR(3904, 27), static_cast(kSPV_NV_cooperative_matrix2)}, + {IR(3931, 26), static_cast(kSPV_NV_cooperative_vector)}, + {IR(3957, 29), static_cast(kSPV_NV_displacement_micromap)}, + {IR(3986, 35), static_cast(kSPV_NV_fragment_shader_barycentric)}, + {IR(4021, 35), static_cast(kSPV_NV_geometry_shader_passthrough)}, + {IR(4056, 28), static_cast(kSPV_NV_linear_swept_spheres)}, + {IR(4084, 19), static_cast(kSPV_NV_mesh_shader)}, + {IR(4103, 25), static_cast(kSPV_NV_raw_access_chains)}, + {IR(4128, 19), static_cast(kSPV_NV_ray_tracing)}, + {IR(4147, 31), static_cast(kSPV_NV_ray_tracing_motion_blur)}, + {IR(4178, 37), static_cast(kSPV_NV_sample_mask_override_coverage)}, + {IR(4215, 33), static_cast(kSPV_NV_shader_atomic_fp16_vector)}, + {IR(4248, 30), static_cast(kSPV_NV_shader_image_footprint)}, + {IR(4278, 33), static_cast(kSPV_NV_shader_invocation_reorder)}, + {IR(4311, 26), static_cast(kSPV_NV_shader_sm_builtins)}, + {IR(4337, 35), static_cast(kSPV_NV_shader_subgroup_partitioned)}, + {IR(4372, 20), static_cast(kSPV_NV_shading_rate)}, + {IR(4392, 29), static_cast(kSPV_NV_stereo_view_rendering)}, + {IR(4421, 25), static_cast(kSPV_NV_tensor_addressing)}, + {IR(4446, 23), static_cast(kSPV_NV_viewport_array2)}, + {IR(4469, 39), static_cast(kSPV_QCOM_cooperative_matrix_conversion)}, + {IR(4508, 26), static_cast(kSPV_QCOM_image_processing)}, + {IR(4534, 27), static_cast(kSPV_QCOM_image_processing2)}, + {IR(4561, 22), static_cast(kSPV_QCOM_tile_shading)}, + {IR(4583, 38), static_cast(kSPV_VALIDATOR_ignore_type_decl_unique)}, }}; // Operand descriptions, ordered by (operand kind, operand enum value). @@ -337,1189 +343,1195 @@ 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(4540, 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(4556, 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(4566, 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(4576, 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(4584, 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(4605, 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(4616, 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(4698, 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(4714, 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(4724, 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(4737, 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(4750, 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(4759, 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(4770, 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(4860, 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(4873, 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(4919, 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(4967, 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(4982, 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(4997, 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(5007, 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(5021, 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(5031, 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(5042, 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(5054, 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(5081, 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(5096, 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(5107, 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(5117, 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(5134, 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(5148, 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(5162, 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(5174, 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(5192, 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(5211, 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(5232, 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(5240, 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(5251, 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(5273, 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(5286, 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(5301, 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(5348, 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(5364, 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(5377, 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(5398, 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(5409, 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(5435, 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(5447, 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(5461, 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(5487, 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(5500, 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(5513, 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(5523, 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(5536, 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(5591, 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(5624, 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(5657, 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(5690, 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(5723, 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(5749, 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(5762, 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(5772, 24)/* PrimitiveShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4438,IR(0, 0),IR(5819, 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(5843, 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(5863, 15)/* ShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4492,IR(0, 0),IR(5878, 15)/* TileOffsetQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4493,IR(0, 0),IR(5909, 18)/* TileDimensionQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4494,IR(0, 0),IR(5927, 18)/* TileApronSizeQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4992,IR(0, 0),IR(5945, 20)/* BaryCoordNoPerspAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4993,IR(0, 0),IR(5965, 28)/* BaryCoordNoPerspCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4994,IR(0, 0),IR(5993, 26)/* BaryCoordNoPerspSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4995,IR(0, 0),IR(6019, 19)/* BaryCoordSmoothAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4996,IR(0, 0),IR(6038, 27)/* BaryCoordSmoothCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4997,IR(0, 0),IR(6065, 25)/* BaryCoordSmoothSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {4998,IR(0, 0),IR(6090, 22)/* BaryCoordPullModelAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5014,IR(0, 0),IR(6112, 18)/* FragStencilRefEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5021,IR(0, 0),IR(6147, 29)/* RemainingRecursionLevelsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5073,IR(0, 0),IR(6194, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5253,IR(0, 0),IR(6210, 15)/* ViewportMaskNV */,IR(0, 0),IR(44, 2),IR(12, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5257,IR(0, 0),IR(6246, 20)/* SecondaryPositionNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5258,IR(0, 0),IR(6285, 24)/* SecondaryViewportMaskNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5261,IR(0, 0),IR(6309, 18)/* PositionPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5262,IR(0, 0),IR(6347, 22)/* ViewportMaskPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5264,IR(0, 0),IR(6369, 16)/* FullyCoveredEXT */,IR(0, 0),IR(49, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5274,IR(0, 0),IR(6409, 12)/* TaskCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5275,IR(0, 0),IR(6421, 17)/* PrimitiveCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5276,IR(0, 0),IR(6438, 19)/* PrimitiveIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5277,IR(0, 0),IR(6457, 22)/* ClipDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5278,IR(0, 0),IR(6479, 22)/* CullDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5279,IR(0, 0),IR(6501, 15)/* LayerPerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5280,IR(0, 0),IR(6516, 16)/* MeshViewCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5281,IR(0, 0),IR(6532, 18)/* MeshViewIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5286,IR(0, 0),IR(6550, 13)/* BaryCoordKHR */,IR(6, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5287,IR(0, 0),IR(6598, 20)/* BaryCoordNoPerspKHR */,IR(7, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5292,IR(0, 0),IR(6637, 12)/* FragSizeEXT */,IR(8, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5293,IR(0, 0),IR(6683, 23)/* FragInvocationCountEXT */,IR(9, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5294,IR(0, 0),IR(6728, 25)/* PrimitivePointIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5295,IR(0, 0),IR(6753, 24)/* PrimitiveLineIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5296,IR(0, 0),IR(6777, 28)/* PrimitiveTriangleIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5299,IR(0, 0),IR(6805, 17)/* CullPrimitiveEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5319,IR(0, 0),IR(6822, 12)/* LaunchIdKHR */,IR(10, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5320,IR(0, 0),IR(6845, 14)/* LaunchSizeKHR */,IR(11, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5321,IR(0, 0),IR(6872, 18)/* WorldRayOriginKHR */,IR(12, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5322,IR(0, 0),IR(6907, 21)/* WorldRayDirectionKHR */,IR(13, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5323,IR(0, 0),IR(6948, 19)/* ObjectRayOriginKHR */,IR(14, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5324,IR(0, 0),IR(6985, 22)/* ObjectRayDirectionKHR */,IR(15, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5325,IR(0, 0),IR(7028, 11)/* RayTminKHR */,IR(16, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5326,IR(0, 0),IR(7049, 11)/* RayTmaxKHR */,IR(17, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5327,IR(0, 0),IR(7070, 23)/* InstanceCustomIndexKHR */,IR(18, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5330,IR(0, 0),IR(7115, 17)/* ObjectToWorldKHR */,IR(19, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5331,IR(0, 0),IR(7148, 17)/* WorldToObjectKHR */,IR(20, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5332,IR(0, 0),IR(7181, 7)/* HitTNV */,IR(0, 0),IR(56, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5333,IR(0, 0),IR(7188, 11)/* HitKindKHR */,IR(21, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5334,IR(0, 0),IR(7209, 17)/* CurrentRayTimeNV */,IR(0, 0),IR(57, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5335,IR(0, 0),IR(7249, 30)/* HitTriangleVertexPositionsKHR */,IR(0, 0),IR(58, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5337,IR(0, 0),IR(7306, 34)/* HitMicroTriangleVertexPositionsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5344,IR(0, 0),IR(7373, 37)/* HitMicroTriangleVertexBarycentricsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5351,IR(0, 0),IR(7410, 20)/* IncomingRayFlagsKHR */,IR(22, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5352,IR(0, 0),IR(7449, 20)/* RayGeometryIndexKHR */,IR(0, 0),IR(60, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5359,IR(0, 0),IR(7469, 14)/* HitIsSphereNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5360,IR(0, 0),IR(7511, 11)/* HitIsLSSNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5361,IR(0, 0),IR(7561, 20)/* HitSpherePositionNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5374,IR(0, 0),IR(7581, 13)/* WarpsPerSMNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5375,IR(0, 0),IR(7613, 10)/* SMCountNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5376,IR(0, 0),IR(7623, 9)/* WarpIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5377,IR(0, 0),IR(7632, 7)/* SMIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5396,IR(0, 0),IR(7639, 18)/* HitLSSPositionsNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5405,IR(0, 0),IR(7657, 34)/* HitKindFrontFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5406,IR(0, 0),IR(7691, 33)/* HitKindBackFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5420,IR(0, 0),IR(7724, 18)/* HitSphereRadiusNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5421,IR(0, 0),IR(7742, 14)/* HitLSSRadiiNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {5436,IR(0, 0),IR(7756, 12)/* ClusterIDNV */,IR(0, 0),IR(64, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {6021,IR(0, 0),IR(7809, 12)/* CullMaskKHR */,IR(0, 0),IR(65, 1),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN - {0,IR(0, 0),IR(7836, 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(4707, 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(4782, 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(4791, 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(4595, 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(7843, 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(4549, 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(7851, 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(7860, 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(7874, 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(7882, 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(7890, 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(7896, 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(7909, 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(7920, 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(7935, 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(7947, 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(7953, 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(7960, 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(7974, 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(7989, 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(8003, 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(8009, 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(8031, 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(8049, 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(8069, 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(8093, 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(8127, 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(8160, 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(8194, 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(4724, 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(4737, 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(8227, 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(5063, 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(8259, 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(8269, 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(8281, 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(8296, 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(8301, 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(8317, 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(8333, 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(8340, 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(8350, 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(8242, 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(8358, 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(8372, 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(8384, 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(8397, 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(8425, 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(8436, 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(8454, 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(8476, 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(8494, 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(8510, 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(8540, 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(4933, 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(8571, 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(8588, 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(8601, 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(5314, 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(8613, 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(8633, 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(5569, 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(8659, 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(8682, 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(8713, 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(8738, 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(4879, 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(4947, 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(8758, 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(5471, 16)/* CoreBuiltinsARM */,IR(0, 0),IR(1, 0),IR(34, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4166,IR(0, 0),IR(8776, 28)/* TileImageColorReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4167,IR(0, 0),IR(8804, 28)/* TileImageDepthReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4168,IR(0, 0),IR(8832, 30)/* TileImageStencilReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4174,IR(0, 0),IR(8862, 11)/* TensorsARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4175,IR(0, 0),IR(8873, 37)/* StorageTensorArrayDynamicIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4176,IR(0, 0),IR(8910, 40)/* StorageTensorArrayNonUniformIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4201,IR(0, 0),IR(8950, 28)/* CooperativeMatrixLayoutsARM */,IR(0, 0),IR(1, 0),IR(37, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4212,IR(0, 0),IR(8978, 10)/* Float8EXT */,IR(0, 0),IR(1, 0),IR(38, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4213,IR(0, 0),IR(8988, 27)/* Float8CooperativeMatrixEXT */,IR(0, 0),IR(1, 0),IR(38, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4422,IR(0, 0),IR(5796, 23)/* FragmentShadingRateKHR */,IR(0, 0),IR(3, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4423,IR(0, 0),IR(5330, 18)/* SubgroupBallotKHR */,IR(0, 0),IR(1, 0),IR(2, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4427,IR(0, 0),IR(5734, 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(9015, 33)/* WorkgroupMemoryExplicitLayoutKHR */,IR(0, 0),IR(3, 1),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4429,IR(0, 0),IR(9048, 43)/* WorkgroupMemoryExplicitLayout8BitAccessKHR */,IR(0, 0),IR(77, 1),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4430,IR(0, 0),IR(9091, 44)/* WorkgroupMemoryExplicitLayout16BitAccessKHR */,IR(0, 0),IR(77, 1),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4431,IR(0, 0),IR(9135, 16)/* SubgroupVoteKHR */,IR(0, 0),IR(1, 0),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4433,IR(0, 0),IR(9151, 25)/* StorageBuffer16BitAccess */,IR(23, 1),IR(1, 0),IR(41, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4434,IR(0, 0),IR(9204, 35)/* UniformAndStorageBuffer16BitAccess */,IR(24, 1),IR(78, 1),IR(41, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4435,IR(0, 0),IR(9256, 22)/* StoragePushConstant16 */,IR(0, 0),IR(1, 0),IR(41, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4436,IR(0, 0),IR(9278, 21)/* StorageInputOutput16 */,IR(0, 0),IR(1, 0),IR(41, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4437,IR(0, 0),IR(5831, 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(5853, 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(9299, 30)/* VariablePointersStorageBuffer */,IR(0, 0),IR(3, 1),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4442,IR(0, 0),IR(9329, 17)/* VariablePointers */,IR(0, 0),IR(79, 1),IR(42, 1),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4445,IR(0, 0),IR(9346, 17)/* AtomicStorageOps */,IR(0, 0),IR(80, 1),IR(43, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4447,IR(0, 0),IR(9363, 28)/* SampleMaskPostDepthCoverage */,IR(0, 0),IR(1, 0),IR(44, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4448,IR(0, 0),IR(9391, 24)/* StorageBuffer8BitAccess */,IR(0, 0),IR(1, 0),IR(45, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4449,IR(0, 0),IR(9415, 34)/* UniformAndStorageBuffer8BitAccess */,IR(0, 0),IR(81, 1),IR(45, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4450,IR(0, 0),IR(9449, 21)/* StoragePushConstant8 */,IR(0, 0),IR(1, 0),IR(45, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4464,IR(0, 0),IR(9470, 15)/* DenormPreserve */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4465,IR(0, 0),IR(9485, 18)/* DenormFlushToZero */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4466,IR(0, 0),IR(9503, 25)/* SignedZeroInfNanPreserve */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4467,IR(0, 0),IR(9528, 16)/* RoundingModeRTE */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4468,IR(0, 0),IR(9544, 16)/* RoundingModeRTZ */,IR(0, 0),IR(1, 0),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4471,IR(0, 0),IR(9560, 23)/* RayQueryProvisionalKHR */,IR(0, 0),IR(3, 1),IR(47, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4472,IR(0, 0),IR(9583, 12)/* RayQueryKHR */,IR(0, 0),IR(3, 1),IR(47, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4473,IR(0, 0),IR(9595, 19)/* UntypedPointersKHR */,IR(0, 0),IR(1, 0),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4478,IR(0, 0),IR(9614, 32)/* RayTraversalPrimitiveCullingKHR */,IR(0, 0),IR(82, 2),IR(49, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4479,IR(0, 0),IR(4817, 14)/* RayTracingKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4484,IR(0, 0),IR(9646, 26)/* TextureSampleWeightedQCOM */,IR(0, 0),IR(1, 0),IR(51, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4485,IR(0, 0),IR(9672, 21)/* TextureBoxFilterQCOM */,IR(0, 0),IR(1, 0),IR(51, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4486,IR(0, 0),IR(9693, 22)/* TextureBlockMatchQCOM */,IR(0, 0),IR(1, 0),IR(51, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4495,IR(0, 0),IR(5893, 16)/* TileShadingQCOM */,IR(0, 0),IR(3, 1),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {4498,IR(0, 0),IR(9715, 23)/* TextureBlockMatch2QCOM */,IR(0, 0),IR(1, 0),IR(53, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5008,IR(0, 0),IR(9738, 16)/* Float16ImageAMD */,IR(0, 0),IR(3, 1),IR(54, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5009,IR(0, 0),IR(9754, 22)/* ImageGatherBiasLodAMD */,IR(0, 0),IR(3, 1),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5010,IR(0, 0),IR(9776, 16)/* FragmentMaskAMD */,IR(0, 0),IR(3, 1),IR(56, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5013,IR(0, 0),IR(6130, 17)/* StencilExportEXT */,IR(0, 0),IR(3, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5015,IR(0, 0),IR(9792, 21)/* ImageReadWriteLodAMD */,IR(0, 0),IR(3, 1),IR(57, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5016,IR(0, 0),IR(9813, 14)/* Int64ImageEXT */,IR(0, 0),IR(3, 1),IR(58, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5055,IR(0, 0),IR(9827, 15)/* ShaderClockKHR */,IR(0, 0),IR(1, 0),IR(59, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5067,IR(0, 0),IR(6176, 18)/* ShaderEnqueueAMDX */,IR(0, 0),IR(3, 1),IR(60, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5087,IR(0, 0),IR(9842, 15)/* QuadControlKHR */,IR(0, 0),IR(1, 0),IR(61, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5112,IR(0, 0),IR(9857, 14)/* Int4TypeINTEL */,IR(0, 0),IR(1, 0),IR(62, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5114,IR(0, 0),IR(9871, 27)/* Int4CooperativeMatrixINTEL */,IR(0, 0),IR(84, 2),IR(62, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5116,IR(0, 0),IR(9919, 16)/* BFloat16TypeKHR */,IR(0, 0),IR(1, 0),IR(63, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5117,IR(0, 0),IR(9935, 22)/* BFloat16DotProductKHR */,IR(0, 0),IR(86, 1),IR(63, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5118,IR(0, 0),IR(9957, 29)/* BFloat16CooperativeMatrixKHR */,IR(0, 0),IR(87, 2),IR(63, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5249,IR(0, 0),IR(9986, 29)/* SampleMaskOverrideCoverageNV */,IR(0, 0),IR(25, 1),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5251,IR(0, 0),IR(10015, 28)/* GeometryShaderPassthroughNV */,IR(0, 0),IR(69, 1),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5254,IR(0, 0),IR(4891, 28)/* ShaderViewportIndexLayerEXT */,IR(25, 1),IR(89, 1),IR(66, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5255,IR(0, 0),IR(6225, 21)/* ShaderViewportMaskNV */,IR(0, 0),IR(90, 1),IR(68, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5259,IR(0, 0),IR(6266, 19)/* ShaderStereoViewNV */,IR(0, 0),IR(91, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5260,IR(0, 0),IR(6327, 20)/* PerViewAttributesNV */,IR(0, 0),IR(40, 1),IR(69, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5265,IR(0, 0),IR(6385, 24)/* FragmentFullyCoveredEXT */,IR(0, 0),IR(3, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5266,IR(0, 0),IR(4831, 14)/* MeshShadingNV */,IR(0, 0),IR(3, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5282,IR(0, 0),IR(10070, 17)/* ImageFootprintNV */,IR(0, 0),IR(1, 0),IR(70, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5283,IR(0, 0),IR(4845, 15)/* MeshShadingEXT */,IR(0, 0),IR(3, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5284,IR(0, 0),IR(6575, 23)/* FragmentBarycentricKHR */,IR(26, 1),IR(1, 0),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5288,IR(0, 0),IR(10109, 31)/* ComputeDerivativeGroupQuadsKHR */,IR(27, 1),IR(3, 1),IR(71, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5291,IR(0, 0),IR(6664, 19)/* FragmentDensityEXT */,IR(28, 1),IR(3, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5297,IR(0, 0),IR(10184, 29)/* GroupNonUniformPartitionedNV */,IR(0, 0),IR(1, 0),IR(73, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5301,IR(0, 0),IR(10213, 17)/* ShaderNonUniform */,IR(29, 1),IR(3, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5302,IR(0, 0),IR(10250, 23)/* RuntimeDescriptorArray */,IR(30, 1),IR(3, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5303,IR(0, 0),IR(10299, 36)/* InputAttachmentArrayDynamicIndexing */,IR(31, 1),IR(92, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5304,IR(0, 0),IR(10374, 39)/* UniformTexelBufferArrayDynamicIndexing */,IR(32, 1),IR(73, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5305,IR(0, 0),IR(10455, 39)/* StorageTexelBufferArrayDynamicIndexing */,IR(33, 1),IR(93, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5306,IR(0, 0),IR(10536, 37)/* UniformBufferArrayNonUniformIndexing */,IR(34, 1),IR(94, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5307,IR(0, 0),IR(10613, 36)/* SampledImageArrayNonUniformIndexing */,IR(35, 1),IR(94, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5308,IR(0, 0),IR(10688, 37)/* StorageBufferArrayNonUniformIndexing */,IR(36, 1),IR(94, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5309,IR(0, 0),IR(10765, 36)/* StorageImageArrayNonUniformIndexing */,IR(37, 1),IR(94, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5310,IR(0, 0),IR(10840, 39)/* InputAttachmentArrayNonUniformIndexing */,IR(38, 1),IR(95, 2),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5311,IR(0, 0),IR(10921, 42)/* UniformTexelBufferArrayNonUniformIndexing */,IR(39, 1),IR(97, 2),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5312,IR(0, 0),IR(11008, 42)/* StorageTexelBufferArrayNonUniformIndexing */,IR(40, 1),IR(99, 2),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5336,IR(0, 0),IR(7279, 27)/* RayTracingPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5340,IR(0, 0),IR(4804, 13)/* RayTracingNV */,IR(0, 0),IR(3, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5341,IR(0, 0),IR(7226, 23)/* RayTracingMotionBlurNV */,IR(0, 0),IR(3, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5345,IR(0, 0),IR(11095, 18)/* VulkanMemoryModel */,IR(41, 1),IR(1, 0),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5346,IR(0, 0),IR(11134, 29)/* VulkanMemoryModelDeviceScope */,IR(42, 1),IR(1, 0),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5347,IR(0, 0),IR(4667, 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(11229, 32)/* ComputeDerivativeGroupLinearKHR */,IR(44, 1),IR(3, 1),IR(71, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5353,IR(0, 0),IR(11292, 25)/* RayTracingProvisionalKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5357,IR(0, 0),IR(11317, 20)/* CooperativeMatrixNV */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5363,IR(0, 0),IR(11337, 33)/* FragmentShaderSampleInterlockEXT */,IR(0, 0),IR(3, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5372,IR(0, 0),IR(11370, 38)/* FragmentShaderShadingRateInterlockEXT */,IR(0, 0),IR(3, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5373,IR(0, 0),IR(7594, 19)/* ShaderSMBuiltinsNV */,IR(0, 0),IR(3, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5378,IR(0, 0),IR(11408, 32)/* FragmentShaderPixelInterlockEXT */,IR(0, 0),IR(3, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5379,IR(0, 0),IR(11440, 25)/* DemoteToHelperInvocation */,IR(45, 1),IR(3, 1),IR(79, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5380,IR(0, 0),IR(11493, 23)/* DisplacementMicromapNV */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5381,IR(0, 0),IR(11516, 29)/* RayTracingOpacityMicromapEXT */,IR(0, 0),IR(3, 1),IR(81, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5383,IR(0, 0),IR(11545, 26)/* ShaderInvocationReorderNV */,IR(0, 0),IR(60, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5390,IR(0, 0),IR(11571, 18)/* BindlessTextureNV */,IR(0, 0),IR(1, 0),IR(83, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5391,IR(0, 0),IR(11589, 25)/* RayQueryPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5394,IR(0, 0),IR(11614, 20)/* CooperativeVectorNV */,IR(0, 0),IR(1, 0),IR(84, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5404,IR(0, 0),IR(11634, 22)/* AtomicFloat16VectorNV */,IR(0, 0),IR(1, 0),IR(85, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5409,IR(0, 0),IR(7340, 33)/* RayTracingDisplacementMicromapNV */,IR(0, 0),IR(60, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5414,IR(0, 0),IR(11656, 18)/* RawAccessChainsNV */,IR(0, 0),IR(1, 0),IR(86, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5418,IR(0, 0),IR(7483, 28)/* RayTracingSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5419,IR(0, 0),IR(7522, 39)/* RayTracingLinearSweptSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5430,IR(0, 0),IR(11674, 30)/* CooperativeMatrixReductionsNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5431,IR(0, 0),IR(11704, 31)/* CooperativeMatrixConversionsNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5432,IR(0, 0),IR(11735, 40)/* CooperativeMatrixPerElementOperationsNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5433,IR(0, 0),IR(11775, 36)/* CooperativeMatrixTensorAddressingNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5434,IR(0, 0),IR(11811, 30)/* CooperativeMatrixBlockLoadsNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5435,IR(0, 0),IR(11841, 28)/* CooperativeVectorTrainingNV */,IR(0, 0),IR(1, 0),IR(84, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5437,IR(0, 0),IR(7768, 41)/* RayTracingClusterAccelerationStructureNV */,IR(0, 0),IR(60, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5439,IR(0, 0),IR(11869, 19)/* TensorAddressingNV */,IR(0, 0),IR(1, 0),IR(88, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5568,IR(0, 0),IR(11888, 21)/* SubgroupShuffleINTEL */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5569,IR(0, 0),IR(11909, 27)/* SubgroupBufferBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5570,IR(0, 0),IR(11936, 26)/* SubgroupImageBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5579,IR(0, 0),IR(11962, 31)/* SubgroupImageMediaBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(90, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5582,IR(0, 0),IR(11993, 21)/* RoundToInfinityINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5583,IR(0, 0),IR(12014, 23)/* FloatingPointModeINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5584,IR(0, 0),IR(12037, 23)/* IntegerFunctions2INTEL */,IR(0, 0),IR(1, 0),IR(92, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5603,IR(0, 0),IR(12060, 22)/* FunctionPointersINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5604,IR(0, 0),IR(12082, 24)/* IndirectReferencesINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5606,IR(0, 0),IR(12106, 9)/* AsmINTEL */,IR(0, 0),IR(1, 0),IR(94, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5612,IR(0, 0),IR(12115, 23)/* AtomicFloat32MinMaxEXT */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5613,IR(0, 0),IR(12138, 23)/* AtomicFloat64MinMaxEXT */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5616,IR(0, 0),IR(12161, 23)/* AtomicFloat16MinMaxEXT */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5617,IR(0, 0),IR(12184, 19)/* VectorComputeINTEL */,IR(0, 0),IR(101, 1),IR(96, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5619,IR(0, 0),IR(12203, 15)/* VectorAnyINTEL */,IR(0, 0),IR(1, 0),IR(96, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5629,IR(0, 0),IR(12218, 16)/* ExpectAssumeKHR */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5696,IR(0, 0),IR(12234, 33)/* SubgroupAvcMotionEstimationINTEL */,IR(0, 0),IR(1, 0),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5697,IR(0, 0),IR(12267, 38)/* SubgroupAvcMotionEstimationIntraINTEL */,IR(0, 0),IR(1, 0),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5698,IR(0, 0),IR(12305, 39)/* SubgroupAvcMotionEstimationChromaINTEL */,IR(0, 0),IR(1, 0),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5817,IR(0, 0),IR(12344, 25)/* VariableLengthArrayINTEL */,IR(0, 0),IR(1, 0),IR(99, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5821,IR(0, 0),IR(12369, 26)/* FunctionFloatControlINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5824,IR(0, 0),IR(12395, 26)/* FPGAMemoryAttributesINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5837,IR(0, 0),IR(12421, 20)/* FPFastMathModeINTEL */,IR(0, 0),IR(0, 1),IR(101, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5844,IR(0, 0),IR(12441, 32)/* ArbitraryPrecisionIntegersINTEL */,IR(0, 0),IR(1, 0),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5845,IR(0, 0),IR(12473, 37)/* ArbitraryPrecisionFloatingPointINTEL */,IR(0, 0),IR(1, 0),IR(103, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5886,IR(0, 0),IR(12510, 30)/* UnstructuredLoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(104, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5888,IR(0, 0),IR(12540, 22)/* FPGALoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(105, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5892,IR(0, 0),IR(12562, 22)/* KernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5897,IR(0, 0),IR(12584, 26)/* FPGAKernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5898,IR(0, 0),IR(12610, 24)/* FPGAMemoryAccessesINTEL */,IR(0, 0),IR(1, 0),IR(107, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5904,IR(0, 0),IR(12634, 27)/* FPGAClusterAttributesINTEL */,IR(0, 0),IR(1, 0),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5906,IR(0, 0),IR(12661, 14)/* LoopFuseINTEL */,IR(0, 0),IR(1, 0),IR(109, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5908,IR(0, 0),IR(12675, 20)/* FPGADSPControlINTEL */,IR(0, 0),IR(1, 0),IR(110, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5910,IR(0, 0),IR(12695, 26)/* MemoryAccessAliasingINTEL */,IR(0, 0),IR(1, 0),IR(111, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5916,IR(0, 0),IR(12721, 40)/* FPGAInvocationPipeliningAttributesINTEL */,IR(0, 0),IR(1, 0),IR(112, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5920,IR(0, 0),IR(12761, 24)/* FPGABufferLocationINTEL */,IR(0, 0),IR(1, 0),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5922,IR(0, 0),IR(12785, 34)/* ArbitraryPrecisionFixedPointINTEL */,IR(0, 0),IR(1, 0),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5935,IR(0, 0),IR(12819, 23)/* USMStorageClassesINTEL */,IR(0, 0),IR(1, 0),IR(115, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5939,IR(0, 0),IR(12842, 29)/* RuntimeAlignedAttributeINTEL */,IR(0, 0),IR(1, 0),IR(116, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5943,IR(0, 0),IR(12871, 13)/* IOPipesINTEL */,IR(0, 0),IR(1, 0),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5945,IR(0, 0),IR(12884, 19)/* BlockingPipesINTEL */,IR(0, 0),IR(1, 0),IR(118, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {5948,IR(0, 0),IR(12903, 13)/* FPGARegINTEL */,IR(0, 0),IR(1, 0),IR(119, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6016,IR(0, 0),IR(12916, 19)/* DotProductInputAll */,IR(46, 1),IR(1, 0),IR(120, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6017,IR(0, 0),IR(12957, 22)/* DotProductInput4x8Bit */,IR(47, 1),IR(102, 1),IR(120, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6018,IR(0, 0),IR(13004, 28)/* DotProductInput4x8BitPacked */,IR(48, 1),IR(1, 0),IR(120, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6019,IR(0, 0),IR(13063, 11)/* DotProduct */,IR(49, 1),IR(1, 0),IR(120, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6020,IR(0, 0),IR(7821, 15)/* RayCullMaskKHR */,IR(0, 0),IR(1, 0),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6022,IR(0, 0),IR(9898, 21)/* CooperativeMatrixKHR */,IR(0, 0),IR(1, 0),IR(121, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6024,IR(0, 0),IR(13088, 24)/* ReplicatedCompositesEXT */,IR(0, 0),IR(1, 0),IR(122, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6025,IR(0, 0),IR(13112, 16)/* BitInstructions */,IR(0, 0),IR(1, 0),IR(123, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6026,IR(0, 0),IR(13128, 25)/* GroupNonUniformRotateKHR */,IR(0, 0),IR(76, 1),IR(124, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6029,IR(0, 0),IR(13153, 15)/* FloatControls2 */,IR(0, 0),IR(1, 0),IR(125, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6033,IR(0, 0),IR(13168, 20)/* AtomicFloat32AddEXT */,IR(0, 0),IR(1, 0),IR(126, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6034,IR(0, 0),IR(13188, 20)/* AtomicFloat64AddEXT */,IR(0, 0),IR(1, 0),IR(126, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6089,IR(0, 0),IR(13208, 20)/* LongCompositesINTEL */,IR(0, 0),IR(1, 0),IR(127, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6094,IR(0, 0),IR(13228, 11)/* OptNoneEXT */,IR(50, 1),IR(1, 0),IR(128, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6095,IR(0, 0),IR(13252, 20)/* AtomicFloat16AddEXT */,IR(0, 0),IR(1, 0),IR(130, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6114,IR(0, 0),IR(13272, 21)/* DebugInfoModuleINTEL */,IR(0, 0),IR(1, 0),IR(131, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6115,IR(0, 0),IR(13293, 24)/* BFloat16ConversionINTEL */,IR(0, 0),IR(1, 0),IR(132, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6141,IR(0, 0),IR(13317, 18)/* SplitBarrierINTEL */,IR(0, 0),IR(1, 0),IR(133, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6144,IR(0, 0),IR(13335, 19)/* ArithmeticFenceEXT */,IR(0, 0),IR(1, 0),IR(134, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6150,IR(0, 0),IR(13354, 29)/* FPGAClusterAttributesV2INTEL */,IR(0, 0),IR(103, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6161,IR(0, 0),IR(13383, 28)/* FPGAKernelAttributesv2INTEL */,IR(0, 0),IR(104, 1),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6162,IR(0, 0),IR(13411, 18)/* TaskSequenceINTEL */,IR(0, 0),IR(1, 0),IR(135, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6169,IR(0, 0),IR(13429, 16)/* FPMaxErrorINTEL */,IR(0, 0),IR(1, 0),IR(136, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6171,IR(0, 0),IR(13445, 24)/* FPGALatencyControlINTEL */,IR(0, 0),IR(1, 0),IR(137, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6174,IR(0, 0),IR(13469, 28)/* FPGAArgumentInterfacesINTEL */,IR(0, 0),IR(1, 0),IR(138, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6187,IR(0, 0),IR(13497, 30)/* GlobalVariableHostAccessINTEL */,IR(0, 0),IR(1, 0),IR(139, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6189,IR(0, 0),IR(13527, 35)/* GlobalVariableFPGADecorationsINTEL */,IR(0, 0),IR(1, 0),IR(140, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6220,IR(0, 0),IR(13562, 28)/* SubgroupBufferPrefetchINTEL */,IR(0, 0),IR(1, 0),IR(141, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6228,IR(0, 0),IR(13590, 23)/* Subgroup2DBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(142, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6229,IR(0, 0),IR(13613, 30)/* Subgroup2DBlockTransformINTEL */,IR(0, 0),IR(105, 1),IR(142, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6230,IR(0, 0),IR(13643, 30)/* Subgroup2DBlockTransposeINTEL */,IR(0, 0),IR(105, 1),IR(142, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6236,IR(0, 0),IR(13673, 38)/* SubgroupMatrixMultiplyAccumulateINTEL */,IR(0, 0),IR(1, 0),IR(143, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6241,IR(0, 0),IR(13711, 28)/* TernaryBitwiseFunctionINTEL */,IR(0, 0),IR(1, 0),IR(144, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6400,IR(0, 0),IR(13739, 26)/* GroupUniformArithmeticKHR */,IR(0, 0),IR(1, 0),IR(145, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6425,IR(0, 0),IR(13765, 27)/* TensorFloat32RoundingINTEL */,IR(0, 0),IR(1, 0),IR(146, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6427,IR(0, 0),IR(13792, 25)/* MaskedGatherScatterINTEL */,IR(0, 0),IR(1, 0),IR(147, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6441,IR(0, 0),IR(13817, 19)/* CacheControlsINTEL */,IR(0, 0),IR(1, 0),IR(148, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6460,IR(0, 0),IR(13836, 20)/* RegisterLimitsINTEL */,IR(0, 0),IR(1, 0),IR(149, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {6528,IR(0, 0),IR(13856, 20)/* BindlessImagesINTEL */,IR(0, 0),IR(1, 0),IR(150, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY - {0,IR(0, 0),IR(13876, 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(13888, 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(13896, 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(13904, 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(13910, 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(13917, 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(13928, 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(13937, 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(13950, 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(13956, 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(13966, 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(13972, 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(13987, 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(14007, 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(14012, 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(14028, 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(14042, 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(14055, 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(14067, 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(14084, 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(14096, 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(14111, 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(14124, 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(14139, 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(14157, 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(14174, 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(14195, 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(14215, 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(14235, 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(14251, 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(14267, 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(14287, 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(14311, 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(14317, 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(14322, 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(14361, 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(14372, 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(14381, 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(14386, 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(14393, 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(14404, 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(14411, 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(14420, 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(14430, 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(14443, 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(14456, 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(14467, 10)/* Float16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1,IR(0, 0),IR(14477, 10)/* Float32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {2,IR(0, 0),IR(14487, 10)/* Float64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {3,IR(0, 0),IR(14497, 13)/* SignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {4,IR(0, 0),IR(14510, 14)/* SignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {5,IR(0, 0),IR(14524, 14)/* SignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {6,IR(0, 0),IR(14538, 14)/* SignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {7,IR(0, 0),IR(14552, 15)/* UnsignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {8,IR(0, 0),IR(14567, 16)/* UnsignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {9,IR(0, 0),IR(14583, 16)/* UnsignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {10,IR(0, 0),IR(14599, 16)/* UnsignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491000,IR(0, 0),IR(14615, 19)/* SignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491001,IR(0, 0),IR(14634, 21)/* UnsignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491002,IR(0, 0),IR(14655, 12)/* FloatE4M3NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {1000491003,IR(0, 0),IR(14667, 12)/* FloatE5M2NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE - {0,IR(0, 0),IR(14679, 12)/* RowMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {1,IR(0, 0),IR(14691, 15)/* ColumnMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {4202,IR(0, 0),IR(14706, 25)/* RowBlockedInterleavedARM */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {4203,IR(0, 0),IR(14731, 28)/* ColumnBlockedInterleavedARM */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {0,IR(0, 0),IR(14759, 8)/* NoneKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {1,IR(0, 0),IR(14767, 27)/* MatrixASignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {2,IR(0, 0),IR(14794, 27)/* MatrixBSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {4,IR(0, 0),IR(14821, 27)/* MatrixCSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {8,IR(0, 0),IR(14848, 32)/* MatrixResultSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {16,IR(0, 0),IR(14880, 26)/* SaturatingAccumulationKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {1,IR(0, 0),IR(14906, 4)/* Row */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {2,IR(0, 0),IR(14910, 7)/* Column */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {4,IR(0, 0),IR(14917, 4)/* 2x2 */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {0,IR(0, 0),IR(14921, 11)/* MatrixAKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {1,IR(0, 0),IR(14932, 11)/* MatrixBKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {2,IR(0, 0),IR(14943, 21)/* MatrixAccumulatorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {0,IR(0, 0),IR(14964, 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(14975, 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(14989, 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(15010, 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(13876, 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(13888, 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(13896, 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(13904, 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(13910, 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(13917, 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(13928, 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(13937, 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(13950, 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(13956, 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(13966, 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(14007, 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(14012, 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(14028, 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(14042, 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(14055, 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(14067, 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(14084, 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(14096, 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(14111, 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(14124, 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(14139, 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(14157, 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(14174, 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(14195, 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(14215, 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(14235, 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(14311, 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(14317, 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(14322, 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(14361, 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(14372, 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(14381, 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(14386, 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(14393, 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(14404, 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(14420, 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(14430, 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(14443, 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(15028, 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(15045, 7)/* SpecId */,IR(0, 0),IR(106, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {2,IR(0, 0),IR(15052, 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(15058, 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(15070, 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(15079, 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(15088, 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(15100, 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(15113, 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(15124, 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(15135, 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(15169, 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(15177, 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(15191, 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(15196, 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(15202, 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(15211, 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(15218, 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(15228, 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(15237, 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(15245, 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(15254, 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(15263, 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(15272, 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(15284, 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(15296, 8)/* Uniform */,IR(0, 0),IR(108, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {27,IR(4, 1),IR(15330, 10)/* UniformId */,IR(0, 0),IR(108, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {28,IR(0, 0),IR(15340, 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(15360, 7)/* Stream */,IR(0, 0),IR(110, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {30,IR(0, 1),IR(15367, 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(15376, 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(15386, 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(15392, 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(15400, 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(15414, 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(15421, 10)/* XfbBuffer */,IR(0, 0),IR(111, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {37,IR(0, 1),IR(15431, 10)/* XfbStride */,IR(0, 0),IR(111, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {38,IR(5, 1),IR(15487, 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(15535, 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(15585, 15)/* FPFastMathMode */,IR(0, 0),IR(112, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {41,IR(8, 2),IR(15662, 18)/* LinkageAttributes */,IR(0, 0),IR(114, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {42,IR(0, 0),IR(15680, 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(15694, 21)/* InputAttachmentIndex */,IR(0, 0),IR(92, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {44,IR(0, 1),IR(15715, 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(15725, 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(15759, 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(15771, 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(15787, 44)/* SaturatedToLargestFloat8NormalConversionEXT */,IR(0, 0),IR(115, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4469,IR(0, 0),IR(15831, 13)/* NoSignedWrap */,IR(0, 0),IR(1, 0),IR(151, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4470,IR(0, 0),IR(15844, 15)/* NoUnsignedWrap */,IR(0, 0),IR(1, 0),IR(151, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4487,IR(0, 0),IR(15859, 18)/* WeightTextureQCOM */,IR(0, 0),IR(1, 0),IR(51, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4488,IR(0, 0),IR(15877, 22)/* BlockMatchTextureQCOM */,IR(0, 0),IR(1, 0),IR(51, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4499,IR(0, 0),IR(15899, 22)/* BlockMatchSamplerQCOM */,IR(0, 0),IR(1, 0),IR(53, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {4999,IR(0, 0),IR(15921, 18)/* ExplicitInterpAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5019,IR(10, 1),IR(15939, 32)/* NodeSharesPayloadLimitsWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5020,IR(10, 1),IR(15971, 20)/* NodeMaxPayloadsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5078,IR(0, 0),IR(15991, 23)/* TrackFinishWritingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5091,IR(10, 1),IR(16014, 20)/* PayloadNodeNameAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5098,IR(10, 1),IR(16034, 25)/* PayloadNodeBaseIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5099,IR(0, 0),IR(16059, 27)/* PayloadNodeSparseArrayAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5100,IR(10, 1),IR(16086, 25)/* PayloadNodeArraySizeAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5105,IR(0, 0),IR(16111, 28)/* PayloadDispatchIndirectAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5248,IR(0, 0),IR(16139, 19)/* OverrideCoverageNV */,IR(0, 0),IR(116, 1),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5250,IR(0, 0),IR(16158, 14)/* PassthroughNV */,IR(0, 0),IR(117, 1),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5252,IR(0, 0),IR(16172, 19)/* ViewportRelativeNV */,IR(0, 0),IR(91, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5256,IR(0, 1),IR(16191, 28)/* SecondaryViewportRelativeNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5271,IR(0, 0),IR(16219, 16)/* PerPrimitiveEXT */,IR(51, 1),IR(118, 2),IR(152, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5272,IR(0, 0),IR(16250, 10)/* PerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5273,IR(0, 0),IR(16260, 10)/* PerTaskNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5285,IR(0, 0),IR(16270, 13)/* PerVertexKHR */,IR(52, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5300,IR(0, 0),IR(16295, 11)/* NonUniform */,IR(53, 1),IR(94, 1),IR(74, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5355,IR(0, 0),IR(16320, 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(16355, 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(16388, 30)/* HitObjectShaderRecordBufferNV */,IR(0, 0),IR(120, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5398,IR(0, 0),IR(16418, 18)/* BindlessSamplerNV */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5399,IR(0, 0),IR(16436, 16)/* BindlessImageNV */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5400,IR(0, 0),IR(16452, 15)/* BoundSamplerNV */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5401,IR(0, 0),IR(16467, 13)/* BoundImageNV */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5599,IR(0, 1),IR(16480, 14)/* SIMTCallINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5602,IR(0, 0),IR(16494, 26)/* ReferencedIndirectlyINTEL */,IR(0, 0),IR(123, 1),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5607,IR(11, 1),IR(16520, 13)/* ClobberINTEL */,IR(0, 0),IR(124, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5608,IR(0, 0),IR(16533, 17)/* SideEffectsINTEL */,IR(0, 0),IR(124, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5624,IR(0, 0),IR(16550, 27)/* VectorComputeVariableINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5625,IR(0, 1),IR(16577, 21)/* FuncParamIOKindINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5626,IR(0, 0),IR(16598, 27)/* VectorComputeFunctionINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5627,IR(0, 0),IR(16625, 15)/* StackCallINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5628,IR(0, 1),IR(16640, 26)/* GlobalVariableOffsetINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5634,IR(10, 1),IR(16666, 14)/* CounterBuffer */,IR(56, 1),IR(1, 0),IR(154, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5635,IR(11, 1),IR(16704, 13)/* UserSemantic */,IR(57, 1),IR(1, 0),IR(154, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5636,IR(11, 1),IR(16736, 15)/* UserTypeGOOGLE */,IR(0, 0),IR(1, 0),IR(155, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5822,IR(12, 2),IR(16751, 26)/* FunctionRoundingModeINTEL */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5823,IR(14, 2),IR(16808, 24)/* FunctionDenormModeINTEL */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5825,IR(0, 0),IR(16832, 14)/* RegisterINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5826,IR(11, 1),IR(16846, 12)/* MemoryINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5827,IR(0, 1),IR(16858, 14)/* NumbanksINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5828,IR(0, 1),IR(16872, 15)/* BankwidthINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5829,IR(0, 1),IR(16887, 22)/* MaxPrivateCopiesINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5830,IR(0, 0),IR(16909, 16)/* SinglepumpINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5831,IR(0, 0),IR(16925, 16)/* DoublepumpINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5832,IR(0, 1),IR(16941, 19)/* MaxReplicatesINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5833,IR(0, 0),IR(16960, 20)/* SimpleDualPortINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5834,IR(16, 2),IR(16980, 11)/* MergeINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5835,IR(18, 1),IR(17033, 14)/* BankBitsINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5836,IR(0, 1),IR(17047, 20)/* ForcePow2DepthINTEL */,IR(0, 0),IR(126, 1),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5883,IR(0, 1),IR(17067, 16)/* StridesizeINTEL */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5884,IR(0, 1),IR(17083, 14)/* WordsizeINTEL */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5885,IR(0, 0),IR(17097, 18)/* TrueDualPortINTEL */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5899,IR(0, 0),IR(17115, 19)/* BurstCoalesceINTEL */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5900,IR(0, 1),IR(17134, 15)/* CacheSizeINTEL */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5901,IR(0, 0),IR(17149, 28)/* DontStaticallyCoalesceINTEL */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5902,IR(0, 1),IR(17177, 14)/* PrefetchINTEL */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5905,IR(0, 0),IR(17191, 17)/* StallEnableINTEL */,IR(0, 0),IR(103, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5907,IR(0, 0),IR(17208, 25)/* FuseLoopsInFunctionINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5909,IR(1, 2),IR(17233, 19)/* MathOpDSPModeINTEL */,IR(0, 0),IR(129, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5914,IR(10, 1),IR(17252, 16)/* AliasScopeINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5915,IR(10, 1),IR(17268, 13)/* NoAliasINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5917,IR(0, 1),IR(17281, 24)/* InitiationIntervalINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5918,IR(0, 1),IR(17305, 20)/* MaxConcurrencyINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5919,IR(0, 1),IR(17325, 20)/* PipelineEnableINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5921,IR(0, 1),IR(17345, 20)/* BufferLocationINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {5944,IR(0, 1),IR(17365, 19)/* IOPipeStorageINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6080,IR(19, 2),IR(17418, 31)/* FunctionFloatingPointModeINTEL */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6085,IR(0, 0),IR(17449, 25)/* SingleElementVectorINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6087,IR(0, 0),IR(17474, 35)/* VectorComputeCallableFunctionINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6140,IR(0, 0),IR(17509, 18)/* MediaBlockIOINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6151,IR(0, 0),IR(17527, 15)/* StallFreeINTEL */,IR(0, 0),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6170,IR(21, 1),IR(17573, 26)/* FPMaxErrorDecorationINTEL */,IR(0, 0),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6172,IR(0, 1),IR(17599, 25)/* LatencyControlLabelINTEL */,IR(0, 0),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6173,IR(22, 3),IR(17624, 30)/* LatencyControlConstraintINTEL */,IR(0, 0),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6175,IR(0, 0),IR(17654, 27)/* ConduitKernelArgumentINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6176,IR(0, 0),IR(17681, 31)/* RegisterMapKernelArgumentINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6177,IR(0, 1),IR(17712, 33)/* MMHostInterfaceAddressWidthINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6178,IR(0, 1),IR(17745, 30)/* MMHostInterfaceDataWidthINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6179,IR(0, 1),IR(17775, 28)/* MMHostInterfaceLatencyINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6180,IR(25, 1),IR(17837, 34)/* MMHostInterfaceReadWriteModeINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6181,IR(0, 1),IR(17871, 29)/* MMHostInterfaceMaxBurstINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6182,IR(0, 1),IR(17900, 32)/* MMHostInterfaceWaitRequestINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6183,IR(0, 0),IR(17932, 26)/* StableKernelArgumentINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6188,IR(26, 2),IR(17997, 16)/* HostAccessINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6190,IR(28, 1),IR(18060, 14)/* InitModeINTEL */,IR(0, 0),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6191,IR(0, 1),IR(18074, 28)/* ImplementInRegisterMapINTEL */,IR(0, 0),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6442,IR(29, 2),IR(18138, 22)/* CacheControlLoadINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {6443,IR(31, 2),IR(18197, 23)/* CacheControlStoreINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION - {0,IR(0, 0),IR(18220, 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(18223, 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(18226, 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(18229, 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(18234, 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(18239, 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(18246, 12)/* SubpassData */,IR(0, 0),IR(92, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {4173,IR(0, 0),IR(18258, 17)/* TileImageDataEXT */,IR(0, 0),IR(141, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY - {0,IR(0, 1),IR(18275, 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(18287, 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(18300, 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(18322, 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(18343, 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(18357, 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(18372, 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(18391, 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(18407, 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(18423, 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(18442, 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(18452, 4)/* Xfb */,IR(0, 0),IR(111, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {12,IR(0, 0),IR(18456, 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(18471, 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(18484, 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(18494, 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(18509, 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(18519, 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(18533, 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(18545, 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(18556, 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(18576, 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(18586, 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(18610, 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(18616, 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(18625, 15)/* OutputVertices */,IR(0, 0),IR(142, 4),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {27,IR(0, 0),IR(18640, 13)/* OutputPoints */,IR(0, 0),IR(146, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {28,IR(0, 0),IR(18653, 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(18669, 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(18689, 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(18701, 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(18716, 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(18728, 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(5301, 13)/* SubgroupSize */,IR(0, 0),IR(149, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {36,IR(0, 1),IR(18738, 22)/* SubgroupsPerWorkgroup */,IR(0, 0),IR(149, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,1),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {37,IR(10, 1),IR(18760, 24)/* SubgroupsPerWorkgroupId */,IR(0, 0),IR(149, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,2),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {38,IR(33, 3),IR(18784, 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(18796, 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(18812, 34)/* NonCoherentColorAttachmentReadEXT */,IR(0, 0),IR(141, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4170,IR(0, 0),IR(18846, 34)/* NonCoherentDepthAttachmentReadEXT */,IR(0, 0),IR(150, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4171,IR(0, 0),IR(18880, 36)/* NonCoherentStencilAttachmentReadEXT */,IR(0, 0),IR(151, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4421,IR(0, 0),IR(18916, 30)/* SubgroupUniformControlFlowKHR */,IR(0, 0),IR(3, 1),IR(156, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4446,IR(0, 0),IR(18946, 18)/* PostDepthCoverage */,IR(0, 0),IR(152, 1),IR(44, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4459,IR(0, 1),IR(9470, 15)/* DenormPreserve */,IR(0, 0),IR(153, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4460,IR(0, 1),IR(9485, 18)/* DenormFlushToZero */,IR(0, 0),IR(154, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4461,IR(0, 1),IR(9503, 25)/* SignedZeroInfNanPreserve */,IR(0, 0),IR(155, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4462,IR(0, 1),IR(9528, 16)/* RoundingModeRTE */,IR(0, 0),IR(156, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4463,IR(0, 1),IR(9544, 16)/* RoundingModeRTZ */,IR(0, 0),IR(157, 1),IR(46, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4489,IR(0, 0),IR(18964, 34)/* NonCoherentTileAttachmentReadQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {4490,IR(22, 3),IR(18998, 20)/* TileShadingRateQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5017,IR(0, 0),IR(19018, 29)/* EarlyAndLateFragmentTestsAMD */,IR(0, 0),IR(3, 1),IR(157, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5027,IR(0, 0),IR(19047, 23)/* StencilRefReplacingEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5069,IR(0, 0),IR(19070, 15)/* CoalescingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5070,IR(10, 1),IR(19085, 15)/* IsApiEntryAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5071,IR(10, 1),IR(19100, 21)/* MaxNodeRecursionAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5072,IR(33, 3),IR(19121, 24)/* StaticNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5073,IR(10, 1),IR(6194, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5077,IR(33, 3),IR(19145, 21)/* MaxNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5079,IR(0, 0),IR(19166, 28)/* StencilRefUnchangedFrontAMD */,IR(0, 0),IR(42, 1),IR(158, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5080,IR(0, 0),IR(19194, 26)/* StencilRefGreaterFrontAMD */,IR(0, 0),IR(42, 1),IR(158, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5081,IR(0, 0),IR(19220, 23)/* StencilRefLessFrontAMD */,IR(0, 0),IR(42, 1),IR(158, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5082,IR(0, 0),IR(19243, 27)/* StencilRefUnchangedBackAMD */,IR(0, 0),IR(42, 1),IR(158, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5083,IR(0, 0),IR(19270, 25)/* StencilRefGreaterBackAMD */,IR(0, 0),IR(42, 1),IR(158, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5084,IR(0, 0),IR(19295, 22)/* StencilRefLessBackAMD */,IR(0, 0),IR(42, 1),IR(158, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5088,IR(0, 0),IR(19317, 19)/* QuadDerivativesKHR */,IR(0, 0),IR(158, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5089,IR(0, 0),IR(19336, 20)/* RequireFullQuadsKHR */,IR(0, 0),IR(158, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5102,IR(36, 2),IR(19356, 20)/* SharesInputWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5269,IR(0, 0),IR(19376, 15)/* OutputLinesEXT */,IR(58, 1),IR(118, 2),IR(152, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5270,IR(0, 1),IR(19405, 20)/* OutputPrimitivesEXT */,IR(59, 1),IR(118, 2),IR(152, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5289,IR(0, 0),IR(19444, 24)/* DerivativeGroupQuadsKHR */,IR(60, 1),IR(159, 2),IR(71, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5290,IR(0, 0),IR(19491, 25)/* DerivativeGroupLinearKHR */,IR(61, 1),IR(161, 2),IR(71, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5298,IR(0, 0),IR(19540, 19)/* OutputTrianglesEXT */,IR(62, 1),IR(118, 2),IR(152, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5366,IR(0, 0),IR(19577, 25)/* PixelInterlockOrderedEXT */,IR(0, 0),IR(163, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5367,IR(0, 0),IR(19602, 27)/* PixelInterlockUnorderedEXT */,IR(0, 0),IR(163, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5368,IR(0, 0),IR(19629, 26)/* SampleInterlockOrderedEXT */,IR(0, 0),IR(164, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5369,IR(0, 0),IR(19655, 28)/* SampleInterlockUnorderedEXT */,IR(0, 0),IR(164, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5370,IR(0, 0),IR(19683, 31)/* ShadingRateInterlockOrderedEXT */,IR(0, 0),IR(165, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5371,IR(0, 0),IR(19714, 33)/* ShadingRateInterlockUnorderedEXT */,IR(0, 0),IR(165, 1),IR(78, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5618,IR(0, 1),IR(19747, 27)/* SharedLocalMemorySizeINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5620,IR(0, 1),IR(19774, 21)/* RoundingModeRTPINTEL */,IR(0, 0),IR(166, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5621,IR(0, 1),IR(19795, 21)/* RoundingModeRTNINTEL */,IR(0, 0),IR(166, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5622,IR(0, 1),IR(19816, 26)/* FloatingPointModeALTINTEL */,IR(0, 0),IR(166, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5623,IR(0, 1),IR(19842, 27)/* FloatingPointModeIEEEINTEL */,IR(0, 0),IR(166, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5893,IR(22, 3),IR(19869, 22)/* MaxWorkgroupSizeINTEL */,IR(0, 0),IR(167, 1),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5894,IR(0, 1),IR(19891, 16)/* MaxWorkDimINTEL */,IR(0, 0),IR(167, 1),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5895,IR(0, 0),IR(19907, 20)/* NoGlobalOffsetINTEL */,IR(0, 0),IR(167, 1),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5896,IR(0, 1),IR(19927, 22)/* NumSIMDWorkitemsINTEL */,IR(0, 0),IR(104, 1),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {5903,IR(0, 1),IR(19949, 28)/* SchedulerTargetFmaxMhzINTEL */,IR(0, 0),IR(104, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6023,IR(0, 0),IR(19977, 24)/* MaximallyReconvergesKHR */,IR(0, 0),IR(3, 1),IR(160, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6028,IR(36, 2),IR(20001, 18)/* FPFastMathDefault */,IR(0, 0),IR(168, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6154,IR(0, 1),IR(20019, 24)/* StreamingInterfaceINTEL */,IR(0, 0),IR(104, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6160,IR(0, 1),IR(20043, 26)/* RegisterMapInterfaceINTEL */,IR(0, 0),IR(169, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6417,IR(0, 1),IR(20069, 23)/* NamedBarrierCountINTEL */,IR(0, 0),IR(122, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6461,IR(0, 1),IR(20092, 22)/* MaximumRegistersINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6462,IR(10, 1),IR(20114, 24)/* MaximumRegistersIdINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {6463,IR(38, 1),IR(20189, 27)/* NamedMaximumRegistersINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE - {0,IR(0, 0),IR(20216, 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(20223, 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(20243, 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(4782, 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(14411, 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(20266, 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(4549, 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(20276, 7)/* TaskNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5268,IR(0, 0),IR(20283, 7)/* MeshNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5313,IR(0, 0),IR(20290, 17)/* RayGenerationKHR */,IR(63, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5314,IR(0, 0),IR(20323, 16)/* IntersectionKHR */,IR(64, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5315,IR(0, 0),IR(20354, 10)/* AnyHitKHR */,IR(65, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5316,IR(0, 0),IR(20373, 14)/* ClosestHitKHR */,IR(66, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5317,IR(0, 0),IR(20400, 8)/* MissKHR */,IR(67, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5318,IR(0, 0),IR(20415, 12)/* CallableKHR */,IR(68, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5364,IR(0, 0),IR(20438, 8)/* TaskEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {5365,IR(0, 0),IR(20446, 8)/* MeshEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL - {0,IR(0, 0),IR(20454, 9)/* Preserve */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE - {1,IR(0, 0),IR(20463, 12)/* FlushToZero */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE - {0,IR(0, 0),IR(20475, 12)/* BFloat16KHR */,IR(0, 0),IR(86, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING - {4214,IR(0, 0),IR(20487, 14)/* Float8E4M3EXT */,IR(0, 0),IR(115, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING - {4215,IR(0, 0),IR(20501, 14)/* Float8E5M2EXT */,IR(0, 0),IR(115, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING - {0,IR(0, 0),IR(20515, 5)/* IEEE */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE - {1,IR(0, 0),IR(20520, 4)/* ALT */,IR(0, 0),IR(125, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE - {0,IR(0, 0),IR(14007, 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(20524, 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(20531, 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(20538, 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(20542, 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(20553, 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(20558, 14)/* AllowContract */,IR(69, 1),IR(171, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {131072,IR(0, 0),IR(20595, 13)/* AllowReassoc */,IR(70, 1),IR(171, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {262144,IR(0, 0),IR(20626, 15)/* AllowTransform */,IR(0, 0),IR(168, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {0,IR(0, 0),IR(20641, 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(20645, 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(20649, 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(20653, 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(20657, 16)/* Vertical2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {2,IR(0, 0),IR(20673, 16)/* Vertical4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {4,IR(0, 0),IR(20689, 18)/* Horizontal2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {8,IR(0, 0),IR(20707, 18)/* Horizontal4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {0,IR(0, 0),IR(14007, 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(20725, 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(20732, 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(20743, 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(20748, 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(13228, 11)/* OptNoneEXT */,IR(50, 1),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL - {0,IR(0, 0),IR(20754, 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(20759, 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(20764, 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(20770, 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(20775, 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(20783, 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(20793, 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(20801, 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(20813, 20)/* RuntimeAlignedINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {0,IR(0, 0),IR(20833, 7)/* Reduce */,IR(0, 0),IR(175, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {1,IR(0, 0),IR(20840, 14)/* InclusiveScan */,IR(0, 0),IR(175, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {2,IR(0, 0),IR(20854, 14)/* ExclusiveScan */,IR(0, 0),IR(175, 3),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {3,IR(0, 0),IR(20868, 16)/* ClusteredReduce */,IR(0, 0),IR(178, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {6,IR(0, 0),IR(20884, 20)/* PartitionedReduceNV */,IR(0, 0),IR(179, 1),IR(73, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {7,IR(0, 0),IR(20904, 27)/* PartitionedInclusiveScanNV */,IR(0, 0),IR(179, 1),IR(73, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {8,IR(0, 0),IR(20931, 27)/* PartitionedExclusiveScanNV */,IR(0, 0),IR(179, 1),IR(73, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION - {0,IR(0, 0),IR(20958, 10)/* NoneINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {1,IR(0, 0),IR(20968, 10)/* ReadINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {2,IR(0, 0),IR(20978, 11)/* WriteINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {3,IR(0, 0),IR(20989, 15)/* ReadWriteINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {0,IR(0, 0),IR(14007, 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(21004, 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(21009, 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(21013, 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(21018, 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(15414, 7)/* Offset */,IR(0, 0),IR(180, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {32,IR(10, 1),IR(21030, 13)/* ConstOffsets */,IR(0, 0),IR(180, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {64,IR(10, 1),IR(15211, 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(8333, 7)/* MinLod */,IR(0, 0),IR(181, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {256,IR(4, 1),IR(21043, 19)/* MakeTexelAvailable */,IR(71, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {512,IR(4, 1),IR(21084, 17)/* MakeTexelVisible */,IR(72, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {1024,IR(0, 0),IR(21121, 16)/* NonPrivateTexel */,IR(73, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {2048,IR(0, 0),IR(21156, 14)/* VolatileTexel */,IR(74, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_IMAGE - {4096,IR(0, 0),IR(21187, 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(21198, 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(21209, 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(21221, 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(21229, 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(21239, 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(21250, 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(21260, 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(21271, 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(21285, 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(21299, 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(21314, 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(21325, 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(21337, 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(21349, 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(21362, 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(21376, 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(21390, 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(13904, 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(21400, 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(21411, 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(21428, 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(21444, 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(21464, 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(21484, 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(21504, 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(21523, 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(21542, 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(21561, 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(21577, 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(21593, 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(21595, 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(21597, 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(21600, 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(21603, 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(21607, 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(21612, 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(21617, 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(21622, 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(21632, 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(21642, 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(21645, 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(21649, 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(21654, 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(21660, 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(21673, 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(21678, 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(21684, 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(21690, 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(21696, 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(21701, 27)/* InitOnDeviceReprogramINTEL */,IR(0, 0),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {1,IR(0, 0),IR(21728, 23)/* InitOnDeviceResetINTEL */,IR(0, 0),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {0,IR(0, 0),IR(21751, 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(21758, 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(21769, 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(14007, 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(21783, 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(14007, 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(21795, 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(21808, 7)/* Export */,IR(0, 0),IR(114, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE - {1,IR(0, 0),IR(21815, 7)/* Import */,IR(0, 0),IR(114, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE - {2,IR(0, 0),IR(21822, 12)/* LinkOnceODR */,IR(0, 0),IR(114, 1),IR(161, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE - {0,IR(0, 0),IR(21834, 14)/* UncachedINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {1,IR(0, 0),IR(21848, 12)/* CachedINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {2,IR(0, 0),IR(21860, 15)/* StreamingINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {3,IR(0, 0),IR(21875, 25)/* InvalidateAfterReadINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {4,IR(0, 0),IR(21900, 17)/* ConstCachedINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {0,IR(0, 0),IR(14007, 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(21917, 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(21924, 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(21935, 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(21954, 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(21971, 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(21985, 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(21999, 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(22017, 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(22027, 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(17281, 24)/* InitiationIntervalINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {131072,IR(0, 1),IR(17305, 20)/* MaxConcurrencyINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {262144,IR(0, 1),IR(22040, 21)/* DependencyArrayINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {524288,IR(0, 1),IR(17325, 20)/* PipelineEnableINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {1048576,IR(0, 1),IR(22061, 18)/* LoopCoalesceINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {2097152,IR(0, 1),IR(22079, 21)/* MaxInterleavingINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {4194304,IR(0, 1),IR(22100, 26)/* SpeculatedIterationsINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {8388608,IR(0, 0),IR(22126, 14)/* NoFusionINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {16777216,IR(0, 1),IR(22140, 15)/* LoopCountINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {33554432,IR(0, 1),IR(22155, 26)/* MaxReinvocationDelayINTEL */,IR(0, 0),IR(183, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL - {0,IR(0, 0),IR(14007, 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(22181, 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(22210, 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(22239, 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(22260, 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(22286, 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(22309, 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(22332, 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(22355, 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(22378, 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(22395, 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(22412, 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(22438, 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(22464, 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(22491, 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(14007, 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(15245, 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(22518, 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(21209, 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(22526, 21)/* MakePointerAvailable */,IR(75, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {16,IR(4, 1),IR(22571, 19)/* MakePointerVisible */,IR(76, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {32,IR(0, 0),IR(22612, 18)/* NonPrivatePointer */,IR(77, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {65536,IR(10, 1),IR(22651, 20)/* AliasScopeINTELMask */,IR(0, 0),IR(130, 1),IR(111, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {131072,IR(10, 1),IR(22671, 17)/* NoAliasINTELMask */,IR(0, 0),IR(130, 1),IR(111, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS - {0,IR(0, 0),IR(22688, 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(22695, 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(22703, 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(22710, 7)/* Vulkan */,IR(78, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_MODEL - {0,IR(0, 0),IR(22727, 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(22735, 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(22743, 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(22751, 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(22766, 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(22789, 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(22803, 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(22818, 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(22834, 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(22855, 20)/* AtomicCounterMemory */,IR(0, 0),IR(80, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {2048,IR(0, 0),IR(22875, 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(22887, 13)/* OutputMemory */,IR(80, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {8192,IR(0, 0),IR(22916, 14)/* MakeAvailable */,IR(81, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {16384,IR(0, 0),IR(22947, 12)/* MakeVisible */,IR(82, 1),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {32768,IR(0, 0),IR(15245, 9)/* Volatile */,IR(0, 0),IR(182, 1),IR(76, 1),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {0,IR(0, 0),IR(22974, 10)/* AutoINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS - {0,IR(0, 0),IR(22984, 5)/* WRAP */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {1,IR(0, 0),IR(22989, 4)/* SAT */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {2,IR(0, 0),IR(22993, 9)/* SAT_ZERO */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {3,IR(0, 0),IR(23002, 8)/* SAT_SYM */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES - {0,IR(0, 0),IR(23010, 25)/* PackedVectorFormat4x8Bit */,IR(83, 1),IR(1, 0),IR(120, 1),SPV_SPIRV_VERSION_WORD(1,6),0xffffffffu}, // SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT - {0,IR(0, 0),IR(23063, 4)/* TRN */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {1,IR(0, 0),IR(23067, 9)/* TRN_ZERO */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {2,IR(0, 0),IR(23076, 4)/* RND */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {3,IR(0, 0),IR(23080, 9)/* RND_ZERO */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {4,IR(0, 0),IR(23089, 8)/* RND_INF */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {5,IR(0, 0),IR(23097, 12)/* RND_MIN_INF */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {6,IR(0, 0),IR(23109, 9)/* RND_CONV */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {7,IR(0, 0),IR(23118, 13)/* RND_CONV_ODD */,IR(0, 0),IR(184, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES - {0,IR(0, 0),IR(14007, 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(23131, 25)/* RobustnessPerComponentNV */,IR(0, 0),IR(185, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {2,IR(0, 0),IR(23156, 23)/* RobustnessPerElementNV */,IR(0, 0),IR(185, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {0,IR(0, 0),IR(14759, 8)/* NoneKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {1,IR(0, 0),IR(23179, 10)/* OpaqueKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {2,IR(0, 0),IR(23189, 12)/* NoOpaqueKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {4,IR(0, 0),IR(23201, 23)/* TerminateOnFirstHitKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {8,IR(0, 0),IR(23224, 24)/* SkipClosestHitShaderKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {16,IR(0, 0),IR(23248, 27)/* CullBackFacingTrianglesKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {32,IR(0, 0),IR(23275, 28)/* CullFrontFacingTrianglesKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {64,IR(0, 0),IR(23303, 14)/* CullOpaqueKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {128,IR(0, 0),IR(23317, 16)/* CullNoOpaqueKHR */,IR(0, 0),IR(82, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {256,IR(0, 0),IR(23333, 17)/* SkipTrianglesKHR */,IR(84, 1),IR(186, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {512,IR(0, 0),IR(23374, 13)/* SkipAABBsKHR */,IR(0, 0),IR(186, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {1024,IR(0, 0),IR(23387, 30)/* ForceOpacityMicromap2StateEXT */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS - {0,IR(0, 0),IR(23417, 41)/* RayQueryCandidateIntersectionTriangleKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {1,IR(0, 0),IR(23458, 37)/* RayQueryCandidateIntersectionAABBKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {0,IR(0, 0),IR(23495, 37)/* RayQueryCommittedIntersectionNoneKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {1,IR(0, 0),IR(23532, 41)/* RayQueryCommittedIntersectionTriangleKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {2,IR(0, 0),IR(23573, 42)/* RayQueryCommittedIntersectionGeneratedKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {0,IR(0, 0),IR(23615, 33)/* RayQueryCandidateIntersectionKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {1,IR(0, 0),IR(23648, 33)/* RayQueryCommittedIntersectionKHR */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {0,IR(0, 0),IR(14007, 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(23681, 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(23693, 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(23699, 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(23706, 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(23721, 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(23729, 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(23736, 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(23744, 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(23752, 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(23760, 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(23765, 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(23771, 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(23782, 6)/* Rg32f */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {7,IR(0, 0),IR(23788, 6)/* Rg16f */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {8,IR(0, 0),IR(23794, 13)/* R11fG11fB10f */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {9,IR(0, 0),IR(23807, 5)/* R16f */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {10,IR(0, 0),IR(23812, 7)/* Rgba16 */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {11,IR(0, 0),IR(23819, 8)/* Rgb10A2 */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {12,IR(0, 0),IR(23827, 5)/* Rg16 */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {13,IR(0, 0),IR(23832, 4)/* Rg8 */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {14,IR(0, 0),IR(23836, 4)/* R16 */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {15,IR(0, 0),IR(23840, 3)/* R8 */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {16,IR(0, 0),IR(23843, 12)/* Rgba16Snorm */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {17,IR(0, 0),IR(23855, 10)/* Rg16Snorm */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {18,IR(0, 0),IR(23865, 9)/* Rg8Snorm */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {19,IR(0, 0),IR(23874, 9)/* R16Snorm */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {20,IR(0, 0),IR(23883, 8)/* R8Snorm */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {21,IR(0, 0),IR(23891, 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(23899, 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(23907, 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(23914, 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(23919, 6)/* Rg32i */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {26,IR(0, 0),IR(23925, 6)/* Rg16i */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {27,IR(0, 0),IR(23931, 5)/* Rg8i */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {28,IR(0, 0),IR(23936, 5)/* R16i */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {29,IR(0, 0),IR(23941, 4)/* R8i */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {30,IR(0, 0),IR(23945, 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(23954, 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(23963, 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(23971, 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(23977, 10)/* Rgb10a2ui */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {35,IR(0, 0),IR(23987, 7)/* Rg32ui */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {36,IR(0, 0),IR(23994, 7)/* Rg16ui */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {37,IR(0, 0),IR(24001, 6)/* Rg8ui */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {38,IR(0, 0),IR(24007, 6)/* R16ui */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {39,IR(0, 0),IR(24013, 5)/* R8ui */,IR(0, 0),IR(189, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {40,IR(0, 0),IR(24018, 6)/* R64ui */,IR(0, 0),IR(190, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {41,IR(0, 0),IR(24024, 5)/* R64i */,IR(0, 0),IR(190, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {0,IR(0, 0),IR(24029, 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(24041, 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(24048, 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(24058, 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(24067, 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(24078, 12)/* QueueFamily */,IR(85, 1),IR(182, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,5),0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {6,IR(0, 0),IR(24105, 14)/* ShaderCallKHR */,IR(0, 0),IR(60, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID - {0,IR(0, 0),IR(14007, 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(24119, 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(24127, 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(24139, 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(13876, 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(13888, 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(13896, 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(13904, 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(13910, 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(13917, 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(13928, 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(13937, 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(13950, 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(13956, 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(13966, 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(13972, 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(13987, 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(14007, 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(14012, 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(14028, 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(14042, 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(14055, 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(14067, 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(14084, 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(14096, 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(14111, 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(14124, 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(14139, 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(14157, 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(14174, 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(14195, 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(14215, 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(14235, 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(14251, 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(14267, 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(14287, 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(24168, 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(14311, 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(14317, 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(14322, 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(14361, 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(14372, 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(14381, 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(14386, 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(14393, 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(14404, 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(14411, 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(14420, 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(14430, 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(14443, 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(14456, 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(23736, 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(24194, 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(24199, 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(24204, 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(24213, 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(24224, 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(24229, 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(24244, 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(24249, 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(24256, 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(24261, 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(24266, 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(24272, 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(24276, 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(24281, 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(24297, 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(15296, 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(24303, 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(24048, 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(24310, 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(24325, 8)/* Private */,IR(0, 0),IR(191, 2),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {7,IR(0, 0),IR(24333, 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(24342, 8)/* Generic */,IR(0, 0),IR(193, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {9,IR(0, 0),IR(24350, 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(24363, 14)/* AtomicCounter */,IR(0, 0),IR(80, 1),IR(0, 0),SPV_SPIRV_VERSION_WORD(1,0),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {11,IR(0, 0),IR(24377, 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(24383, 14)/* StorageBuffer */,IR(0, 0),IR(3, 1),IR(162, 2),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {4172,IR(0, 0),IR(24397, 13)/* TileImageEXT */,IR(0, 0),IR(141, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {4491,IR(0, 0),IR(24410, 19)/* TileAttachmentQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5068,IR(0, 0),IR(24429, 16)/* NodePayloadAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5328,IR(0, 0),IR(24445, 16)/* CallableDataKHR */,IR(86, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5329,IR(0, 0),IR(24476, 24)/* IncomingCallableDataKHR */,IR(87, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5338,IR(0, 0),IR(24523, 14)/* RayPayloadKHR */,IR(88, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5339,IR(0, 0),IR(24550, 16)/* HitAttributeKHR */,IR(89, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5342,IR(0, 0),IR(24581, 22)/* IncomingRayPayloadKHR */,IR(90, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5343,IR(0, 0),IR(24624, 22)/* ShaderRecordBufferKHR */,IR(91, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5349,IR(0, 0),IR(24667, 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(24714, 21)/* HitObjectAttributeNV */,IR(0, 0),IR(120, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5402,IR(0, 0),IR(24735, 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(24759, 17)/* CodeSectionINTEL */,IR(0, 0),IR(194, 1),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5936,IR(0, 0),IR(24776, 16)/* DeviceOnlyINTEL */,IR(0, 0),IR(195, 1),IR(115, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {5937,IR(0, 0),IR(24792, 14)/* HostOnlyINTEL */,IR(0, 0),IR(195, 1),IR(115, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS - {0,IR(0, 0),IR(21834, 14)/* UncachedINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {1,IR(0, 0),IR(24806, 18)/* WriteThroughINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {2,IR(0, 0),IR(24824, 15)/* WriteBackINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {3,IR(0, 0),IR(21860, 15)/* StreamingINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {0,IR(0, 0),IR(14007, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {1,IR(10, 1),IR(24839, 11)/* TensorView */,IR(0, 0),IR(196, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {2,IR(10, 1),IR(24850, 11)/* DecodeFunc */,IR(0, 0),IR(197, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {0,IR(0, 0),IR(24861, 10)/* Undefined */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {1,IR(0, 0),IR(15254, 9)/* Constant */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {2,IR(0, 0),IR(23681, 12)/* ClampToEdge */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {3,IR(0, 0),IR(23699, 7)/* Repeat */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {4,IR(0, 0),IR(23706, 15)/* RepeatMirrored */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {0,IR(0, 0),IR(24871, 8)/* NoneARM */,IR(0, 0),IR(198, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {1,IR(0, 0),IR(24879, 15)/* NontemporalARM */,IR(0, 0),IR(198, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {2,IR(10, 1),IR(24894, 20)/* OutOfBoundsValueARM */,IR(0, 0),IR(198, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {4,IR(10, 1),IR(24914, 24)/* MakeElementAvailableARM */,IR(0, 0),IR(198, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {8,IR(10, 1),IR(24938, 22)/* MakeElementVisibleARM */,IR(0, 0),IR(198, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS - {16,IR(0, 0),IR(24960, 21)/* NonPrivateElementARM */,IR(0, 0),IR(198, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS +static const std::array kOperandsByValue{{ + {0,IR(0, 0),IR(4621, 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(4637, 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(4647, 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(4657, 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(4665, 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(4686, 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(4697, 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(4779, 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(4795, 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(4805, 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(4818, 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(4831, 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(4840, 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(4851, 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(4941, 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(4954, 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(5000, 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(5048, 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(5063, 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(5078, 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(5088, 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(5102, 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(5112, 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(5123, 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(5135, 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(5162, 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(5177, 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(5188, 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(5198, 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(5215, 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(5229, 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(5243, 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(5255, 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(5273, 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(5292, 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(5313, 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(5321, 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(5332, 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(5354, 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(5367, 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(5382, 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(5429, 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(5445, 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(5458, 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(5479, 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(5490, 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(5516, 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(5528, 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(5542, 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(5568, 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(5581, 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(5594, 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(5604, 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(5617, 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(5672, 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(5705, 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(5738, 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(5771, 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(5804, 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(5830, 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(5843, 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(5853, 24)/* PrimitiveShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4438,IR(0, 0),IR(5900, 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(5924, 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(5944, 15)/* ShadingRateKHR */,IR(0, 0),IR(38, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4492,IR(0, 0),IR(5959, 15)/* TileOffsetQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4493,IR(0, 0),IR(5990, 18)/* TileDimensionQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4494,IR(0, 0),IR(6008, 18)/* TileApronSizeQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4992,IR(0, 0),IR(6026, 20)/* BaryCoordNoPerspAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4993,IR(0, 0),IR(6046, 28)/* BaryCoordNoPerspCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4994,IR(0, 0),IR(6074, 26)/* BaryCoordNoPerspSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4995,IR(0, 0),IR(6100, 19)/* BaryCoordSmoothAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4996,IR(0, 0),IR(6119, 27)/* BaryCoordSmoothCentroidAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4997,IR(0, 0),IR(6146, 25)/* BaryCoordSmoothSampleAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {4998,IR(0, 0),IR(6171, 22)/* BaryCoordPullModelAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5014,IR(0, 0),IR(6193, 18)/* FragStencilRefEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5021,IR(0, 0),IR(6228, 29)/* RemainingRecursionLevelsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5073,IR(0, 0),IR(6275, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5253,IR(0, 0),IR(6291, 15)/* ViewportMaskNV */,IR(0, 0),IR(44, 2),IR(12, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5257,IR(0, 0),IR(6327, 20)/* SecondaryPositionNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5258,IR(0, 0),IR(6366, 24)/* SecondaryViewportMaskNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5261,IR(0, 0),IR(6390, 18)/* PositionPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5262,IR(0, 0),IR(6428, 22)/* ViewportMaskPerViewNV */,IR(0, 0),IR(47, 2),IR(15, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5264,IR(0, 0),IR(6450, 16)/* FullyCoveredEXT */,IR(0, 0),IR(49, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5274,IR(0, 0),IR(6490, 12)/* TaskCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5275,IR(0, 0),IR(6502, 17)/* PrimitiveCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5276,IR(0, 0),IR(6519, 19)/* PrimitiveIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5277,IR(0, 0),IR(6538, 22)/* ClipDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5278,IR(0, 0),IR(6560, 22)/* CullDistancePerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5279,IR(0, 0),IR(6582, 15)/* LayerPerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5280,IR(0, 0),IR(6597, 16)/* MeshViewCountNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5281,IR(0, 0),IR(6613, 18)/* MeshViewIndicesNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5286,IR(0, 0),IR(6631, 13)/* BaryCoordKHR */,IR(6, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5287,IR(0, 0),IR(6679, 20)/* BaryCoordNoPerspKHR */,IR(7, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5292,IR(0, 0),IR(6718, 12)/* FragSizeEXT */,IR(8, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5293,IR(0, 0),IR(6764, 23)/* FragInvocationCountEXT */,IR(9, 1),IR(52, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5294,IR(0, 0),IR(6809, 25)/* PrimitivePointIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5295,IR(0, 0),IR(6834, 24)/* PrimitiveLineIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5296,IR(0, 0),IR(6858, 28)/* PrimitiveTriangleIndicesEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5299,IR(0, 0),IR(6886, 17)/* CullPrimitiveEXT */,IR(0, 0),IR(53, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5319,IR(0, 0),IR(6903, 12)/* LaunchIdKHR */,IR(10, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5320,IR(0, 0),IR(6926, 14)/* LaunchSizeKHR */,IR(11, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5321,IR(0, 0),IR(6953, 18)/* WorldRayOriginKHR */,IR(12, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5322,IR(0, 0),IR(6988, 21)/* WorldRayDirectionKHR */,IR(13, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5323,IR(0, 0),IR(7029, 19)/* ObjectRayOriginKHR */,IR(14, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5324,IR(0, 0),IR(7066, 22)/* ObjectRayDirectionKHR */,IR(15, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5325,IR(0, 0),IR(7109, 11)/* RayTminKHR */,IR(16, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5326,IR(0, 0),IR(7130, 11)/* RayTmaxKHR */,IR(17, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5327,IR(0, 0),IR(7151, 23)/* InstanceCustomIndexKHR */,IR(18, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5330,IR(0, 0),IR(7196, 17)/* ObjectToWorldKHR */,IR(19, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5331,IR(0, 0),IR(7229, 17)/* WorldToObjectKHR */,IR(20, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5332,IR(0, 0),IR(7262, 7)/* HitTNV */,IR(0, 0),IR(56, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5333,IR(0, 0),IR(7269, 11)/* HitKindKHR */,IR(21, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5334,IR(0, 0),IR(7290, 17)/* CurrentRayTimeNV */,IR(0, 0),IR(57, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5335,IR(0, 0),IR(7330, 30)/* HitTriangleVertexPositionsKHR */,IR(0, 0),IR(58, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5337,IR(0, 0),IR(7387, 34)/* HitMicroTriangleVertexPositionsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5344,IR(0, 0),IR(7454, 37)/* HitMicroTriangleVertexBarycentricsNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5351,IR(0, 0),IR(7491, 20)/* IncomingRayFlagsKHR */,IR(22, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5352,IR(0, 0),IR(7530, 20)/* RayGeometryIndexKHR */,IR(0, 0),IR(60, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5359,IR(0, 0),IR(7550, 14)/* HitIsSphereNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5360,IR(0, 0),IR(7592, 11)/* HitIsLSSNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5361,IR(0, 0),IR(7642, 20)/* HitSpherePositionNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5374,IR(0, 0),IR(7662, 13)/* WarpsPerSMNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5375,IR(0, 0),IR(7694, 10)/* SMCountNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5376,IR(0, 0),IR(7704, 9)/* WarpIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5377,IR(0, 0),IR(7713, 7)/* SMIDNV */,IR(0, 0),IR(63, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5396,IR(0, 0),IR(7720, 18)/* HitLSSPositionsNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5405,IR(0, 0),IR(7738, 34)/* HitKindFrontFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5406,IR(0, 0),IR(7772, 33)/* HitKindBackFacingMicroTriangleNV */,IR(0, 0),IR(59, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5420,IR(0, 0),IR(7805, 18)/* HitSphereRadiusNV */,IR(0, 0),IR(61, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5421,IR(0, 0),IR(7823, 14)/* HitLSSRadiiNV */,IR(0, 0),IR(62, 1),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {5436,IR(0, 0),IR(7837, 12)/* ClusterIDNV */,IR(0, 0),IR(64, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {6021,IR(0, 0),IR(7890, 12)/* CullMaskKHR */,IR(0, 0),IR(65, 1),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_BUILT_IN + {0,IR(0, 0),IR(7917, 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(4788, 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(4863, 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(4872, 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(4676, 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(7924, 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(4630, 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(7932, 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(7941, 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(7955, 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(7963, 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(7971, 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(7977, 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(7990, 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(8001, 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(8016, 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(8028, 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(8034, 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(8041, 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(8055, 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(8070, 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(8084, 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(8090, 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(8112, 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(8130, 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(8150, 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(8174, 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(8208, 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(8241, 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(8275, 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(4805, 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(4818, 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(8308, 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(5144, 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(8340, 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(8350, 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(8362, 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(8377, 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(8382, 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(8398, 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(8414, 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(8421, 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(8431, 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(8323, 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(8439, 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(8453, 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(8465, 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(8478, 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(8506, 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(8517, 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(8535, 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(8557, 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(8575, 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(8591, 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(8621, 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(5014, 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(8652, 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(8669, 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(8682, 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(5395, 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(8694, 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(8714, 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(5650, 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(8740, 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(8763, 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(8794, 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(8819, 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(4960, 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(5028, 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(8839, 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(5552, 16)/* CoreBuiltinsARM */,IR(0, 0),IR(1, 0),IR(34, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4166,IR(0, 0),IR(8857, 28)/* TileImageColorReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4167,IR(0, 0),IR(8885, 28)/* TileImageDepthReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4168,IR(0, 0),IR(8913, 30)/* TileImageStencilReadAccessEXT */,IR(0, 0),IR(1, 0),IR(35, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4174,IR(0, 0),IR(8943, 11)/* TensorsARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4175,IR(0, 0),IR(8954, 37)/* StorageTensorArrayDynamicIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4176,IR(0, 0),IR(8991, 40)/* StorageTensorArrayNonUniformIndexingARM */,IR(0, 0),IR(1, 0),IR(36, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4191,IR(0, 0),IR(9031, 9)/* GraphARM */,IR(0, 0),IR(1, 0),IR(37, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4201,IR(0, 0),IR(9040, 28)/* CooperativeMatrixLayoutsARM */,IR(0, 0),IR(1, 0),IR(38, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4212,IR(0, 0),IR(9068, 10)/* Float8EXT */,IR(0, 0),IR(1, 0),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4213,IR(0, 0),IR(9078, 27)/* Float8CooperativeMatrixEXT */,IR(0, 0),IR(77, 2),IR(39, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4422,IR(0, 0),IR(5877, 23)/* FragmentShadingRateKHR */,IR(0, 0),IR(3, 1),IR(7, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4423,IR(0, 0),IR(5411, 18)/* SubgroupBallotKHR */,IR(0, 0),IR(1, 0),IR(2, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4427,IR(0, 0),IR(5815, 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(9126, 33)/* WorkgroupMemoryExplicitLayoutKHR */,IR(0, 0),IR(3, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4429,IR(0, 0),IR(9159, 43)/* WorkgroupMemoryExplicitLayout8BitAccessKHR */,IR(0, 0),IR(79, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4430,IR(0, 0),IR(9202, 44)/* WorkgroupMemoryExplicitLayout16BitAccessKHR */,IR(0, 0),IR(79, 1),IR(40, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4431,IR(0, 0),IR(9246, 16)/* SubgroupVoteKHR */,IR(0, 0),IR(1, 0),IR(41, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4433,IR(0, 0),IR(9262, 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(9315, 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(9367, 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(9389, 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(5912, 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(5934, 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(9410, 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(9440, 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(9457, 17)/* AtomicStorageOps */,IR(0, 0),IR(82, 1),IR(44, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4447,IR(0, 0),IR(9474, 28)/* SampleMaskPostDepthCoverage */,IR(0, 0),IR(1, 0),IR(45, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4448,IR(0, 0),IR(9502, 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(9526, 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(9560, 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(9581, 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(9596, 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(9614, 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(9639, 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(9655, 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(9671, 23)/* RayQueryProvisionalKHR */,IR(0, 0),IR(3, 1),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4472,IR(0, 0),IR(9694, 12)/* RayQueryKHR */,IR(0, 0),IR(3, 1),IR(48, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4473,IR(0, 0),IR(9706, 19)/* UntypedPointersKHR */,IR(0, 0),IR(1, 0),IR(49, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4478,IR(0, 0),IR(9725, 32)/* RayTraversalPrimitiveCullingKHR */,IR(0, 0),IR(84, 2),IR(50, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4479,IR(0, 0),IR(4898, 14)/* RayTracingKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4484,IR(0, 0),IR(9757, 26)/* TextureSampleWeightedQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4485,IR(0, 0),IR(9783, 21)/* TextureBoxFilterQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4486,IR(0, 0),IR(9804, 22)/* TextureBlockMatchQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4495,IR(0, 0),IR(5974, 16)/* TileShadingQCOM */,IR(0, 0),IR(3, 1),IR(53, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4496,IR(0, 0),IR(9826, 32)/* CooperativeMatrixConversionQCOM */,IR(0, 0),IR(86, 1),IR(54, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {4498,IR(0, 0),IR(9858, 23)/* TextureBlockMatch2QCOM */,IR(0, 0),IR(1, 0),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5008,IR(0, 0),IR(9881, 16)/* Float16ImageAMD */,IR(0, 0),IR(3, 1),IR(56, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5009,IR(0, 0),IR(9897, 22)/* ImageGatherBiasLodAMD */,IR(0, 0),IR(3, 1),IR(57, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5010,IR(0, 0),IR(9919, 16)/* FragmentMaskAMD */,IR(0, 0),IR(3, 1),IR(58, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5013,IR(0, 0),IR(6211, 17)/* StencilExportEXT */,IR(0, 0),IR(3, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5015,IR(0, 0),IR(9935, 21)/* ImageReadWriteLodAMD */,IR(0, 0),IR(3, 1),IR(59, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5016,IR(0, 0),IR(9956, 14)/* Int64ImageEXT */,IR(0, 0),IR(3, 1),IR(60, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5055,IR(0, 0),IR(9970, 15)/* ShaderClockKHR */,IR(0, 0),IR(1, 0),IR(61, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5067,IR(0, 0),IR(6257, 18)/* ShaderEnqueueAMDX */,IR(0, 0),IR(3, 1),IR(62, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5087,IR(0, 0),IR(9985, 15)/* QuadControlKHR */,IR(0, 0),IR(1, 0),IR(63, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5112,IR(0, 0),IR(10000, 14)/* Int4TypeINTEL */,IR(0, 0),IR(1, 0),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5114,IR(0, 0),IR(10014, 27)/* Int4CooperativeMatrixINTEL */,IR(0, 0),IR(87, 2),IR(64, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5116,IR(0, 0),IR(10041, 16)/* BFloat16TypeKHR */,IR(0, 0),IR(1, 0),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5117,IR(0, 0),IR(10057, 22)/* BFloat16DotProductKHR */,IR(0, 0),IR(89, 1),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5118,IR(0, 0),IR(10079, 29)/* BFloat16CooperativeMatrixKHR */,IR(0, 0),IR(90, 2),IR(65, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5249,IR(0, 0),IR(10108, 29)/* SampleMaskOverrideCoverageNV */,IR(0, 0),IR(25, 1),IR(66, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5251,IR(0, 0),IR(10137, 28)/* GeometryShaderPassthroughNV */,IR(0, 0),IR(69, 1),IR(67, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5254,IR(0, 0),IR(4972, 28)/* ShaderViewportIndexLayerEXT */,IR(25, 1),IR(92, 1),IR(68, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5255,IR(0, 0),IR(6306, 21)/* ShaderViewportMaskNV */,IR(0, 0),IR(93, 1),IR(70, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5259,IR(0, 0),IR(6347, 19)/* ShaderStereoViewNV */,IR(0, 0),IR(94, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5260,IR(0, 0),IR(6408, 20)/* PerViewAttributesNV */,IR(0, 0),IR(40, 1),IR(71, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5265,IR(0, 0),IR(6466, 24)/* FragmentFullyCoveredEXT */,IR(0, 0),IR(3, 1),IR(17, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5266,IR(0, 0),IR(4912, 14)/* MeshShadingNV */,IR(0, 0),IR(3, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5282,IR(0, 0),IR(10192, 17)/* ImageFootprintNV */,IR(0, 0),IR(1, 0),IR(72, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5283,IR(0, 0),IR(4926, 15)/* MeshShadingEXT */,IR(0, 0),IR(3, 1),IR(23, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5284,IR(0, 0),IR(6656, 23)/* FragmentBarycentricKHR */,IR(26, 1),IR(1, 0),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5288,IR(0, 0),IR(10231, 31)/* ComputeDerivativeGroupQuadsKHR */,IR(27, 1),IR(3, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5291,IR(0, 0),IR(6745, 19)/* FragmentDensityEXT */,IR(28, 1),IR(3, 1),IR(21, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5297,IR(0, 0),IR(10306, 29)/* GroupNonUniformPartitionedNV */,IR(0, 0),IR(1, 0),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5301,IR(0, 0),IR(10335, 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(10372, 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(10421, 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(10496, 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(10577, 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(10658, 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(10735, 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(10810, 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(10887, 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(10962, 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(11043, 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(11130, 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(7360, 27)/* RayTracingPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5340,IR(0, 0),IR(4885, 13)/* RayTracingNV */,IR(0, 0),IR(3, 1),IR(26, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5341,IR(0, 0),IR(7307, 23)/* RayTracingMotionBlurNV */,IR(0, 0),IR(3, 1),IR(27, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5345,IR(0, 0),IR(11217, 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(11256, 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(4748, 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(11351, 32)/* ComputeDerivativeGroupLinearKHR */,IR(44, 1),IR(3, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5353,IR(0, 0),IR(11414, 25)/* RayTracingProvisionalKHR */,IR(0, 0),IR(3, 1),IR(28, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5357,IR(0, 0),IR(11439, 20)/* CooperativeMatrixNV */,IR(0, 0),IR(3, 1),IR(79, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5363,IR(0, 0),IR(11459, 33)/* FragmentShaderSampleInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5372,IR(0, 0),IR(11492, 38)/* FragmentShaderShadingRateInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5373,IR(0, 0),IR(7675, 19)/* ShaderSMBuiltinsNV */,IR(0, 0),IR(3, 1),IR(30, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5378,IR(0, 0),IR(11530, 32)/* FragmentShaderPixelInterlockEXT */,IR(0, 0),IR(3, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5379,IR(0, 0),IR(11562, 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(11615, 23)/* DisplacementMicromapNV */,IR(0, 0),IR(3, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5381,IR(0, 0),IR(11638, 29)/* RayTracingOpacityMicromapEXT */,IR(0, 0),IR(3, 1),IR(83, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5383,IR(0, 0),IR(11667, 26)/* ShaderInvocationReorderNV */,IR(0, 0),IR(60, 1),IR(84, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5390,IR(0, 0),IR(11693, 18)/* BindlessTextureNV */,IR(0, 0),IR(1, 0),IR(85, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5391,IR(0, 0),IR(11711, 25)/* RayQueryPositionFetchKHR */,IR(0, 0),IR(3, 1),IR(77, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5394,IR(0, 0),IR(11736, 20)/* CooperativeVectorNV */,IR(0, 0),IR(1, 0),IR(86, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5404,IR(0, 0),IR(11756, 22)/* AtomicFloat16VectorNV */,IR(0, 0),IR(1, 0),IR(87, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5409,IR(0, 0),IR(7421, 33)/* RayTracingDisplacementMicromapNV */,IR(0, 0),IR(60, 1),IR(82, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5414,IR(0, 0),IR(11778, 18)/* RawAccessChainsNV */,IR(0, 0),IR(1, 0),IR(88, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5418,IR(0, 0),IR(7564, 28)/* RayTracingSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5419,IR(0, 0),IR(7603, 39)/* RayTracingLinearSweptSpheresGeometryNV */,IR(0, 0),IR(1, 0),IR(29, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5430,IR(0, 0),IR(11796, 30)/* CooperativeMatrixReductionsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5431,IR(0, 0),IR(11826, 31)/* CooperativeMatrixConversionsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5432,IR(0, 0),IR(11857, 40)/* CooperativeMatrixPerElementOperationsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5433,IR(0, 0),IR(11897, 36)/* CooperativeMatrixTensorAddressingNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5434,IR(0, 0),IR(11933, 30)/* CooperativeMatrixBlockLoadsNV */,IR(0, 0),IR(1, 0),IR(89, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5435,IR(0, 0),IR(11963, 28)/* CooperativeVectorTrainingNV */,IR(0, 0),IR(1, 0),IR(86, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5437,IR(0, 0),IR(7849, 41)/* RayTracingClusterAccelerationStructureNV */,IR(0, 0),IR(60, 1),IR(31, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5439,IR(0, 0),IR(11991, 19)/* TensorAddressingNV */,IR(0, 0),IR(1, 0),IR(90, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5568,IR(0, 0),IR(12010, 21)/* SubgroupShuffleINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5569,IR(0, 0),IR(12031, 27)/* SubgroupBufferBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5570,IR(0, 0),IR(12058, 26)/* SubgroupImageBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(91, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5579,IR(0, 0),IR(12084, 31)/* SubgroupImageMediaBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(92, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5582,IR(0, 0),IR(12115, 21)/* RoundToInfinityINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5583,IR(0, 0),IR(12136, 23)/* FloatingPointModeINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5584,IR(0, 0),IR(12159, 23)/* IntegerFunctions2INTEL */,IR(0, 0),IR(1, 0),IR(94, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5603,IR(0, 0),IR(12182, 22)/* FunctionPointersINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5604,IR(0, 0),IR(12204, 24)/* IndirectReferencesINTEL */,IR(0, 0),IR(1, 0),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5606,IR(0, 0),IR(12228, 9)/* AsmINTEL */,IR(0, 0),IR(1, 0),IR(96, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5612,IR(0, 0),IR(12237, 23)/* AtomicFloat32MinMaxEXT */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5613,IR(0, 0),IR(12260, 23)/* AtomicFloat64MinMaxEXT */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5616,IR(0, 0),IR(12283, 23)/* AtomicFloat16MinMaxEXT */,IR(0, 0),IR(1, 0),IR(97, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5617,IR(0, 0),IR(12306, 19)/* VectorComputeINTEL */,IR(0, 0),IR(104, 1),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5619,IR(0, 0),IR(12325, 15)/* VectorAnyINTEL */,IR(0, 0),IR(1, 0),IR(98, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5629,IR(0, 0),IR(12340, 16)/* ExpectAssumeKHR */,IR(0, 0),IR(1, 0),IR(99, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5696,IR(0, 0),IR(12356, 33)/* SubgroupAvcMotionEstimationINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5697,IR(0, 0),IR(12389, 38)/* SubgroupAvcMotionEstimationIntraINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5698,IR(0, 0),IR(12427, 39)/* SubgroupAvcMotionEstimationChromaINTEL */,IR(0, 0),IR(1, 0),IR(100, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5817,IR(0, 0),IR(12466, 25)/* VariableLengthArrayINTEL */,IR(0, 0),IR(1, 0),IR(101, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5821,IR(0, 0),IR(12491, 26)/* FunctionFloatControlINTEL */,IR(0, 0),IR(1, 0),IR(93, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5824,IR(0, 0),IR(12517, 26)/* FPGAMemoryAttributesINTEL */,IR(0, 0),IR(1, 0),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5837,IR(0, 0),IR(12543, 20)/* FPFastMathModeINTEL */,IR(0, 0),IR(0, 1),IR(103, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5844,IR(0, 0),IR(12563, 32)/* ArbitraryPrecisionIntegersINTEL */,IR(0, 0),IR(1, 0),IR(104, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5845,IR(0, 0),IR(12595, 37)/* ArbitraryPrecisionFloatingPointINTEL */,IR(0, 0),IR(1, 0),IR(105, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5886,IR(0, 0),IR(12632, 30)/* UnstructuredLoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(106, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5888,IR(0, 0),IR(12662, 22)/* FPGALoopControlsINTEL */,IR(0, 0),IR(1, 0),IR(107, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5892,IR(0, 0),IR(12684, 22)/* KernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5897,IR(0, 0),IR(12706, 26)/* FPGAKernelAttributesINTEL */,IR(0, 0),IR(1, 0),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5898,IR(0, 0),IR(12732, 24)/* FPGAMemoryAccessesINTEL */,IR(0, 0),IR(1, 0),IR(109, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5904,IR(0, 0),IR(12756, 27)/* FPGAClusterAttributesINTEL */,IR(0, 0),IR(1, 0),IR(110, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5906,IR(0, 0),IR(12783, 14)/* LoopFuseINTEL */,IR(0, 0),IR(1, 0),IR(111, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5908,IR(0, 0),IR(12797, 20)/* FPGADSPControlINTEL */,IR(0, 0),IR(1, 0),IR(112, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5910,IR(0, 0),IR(12817, 26)/* MemoryAccessAliasingINTEL */,IR(0, 0),IR(1, 0),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5916,IR(0, 0),IR(12843, 40)/* FPGAInvocationPipeliningAttributesINTEL */,IR(0, 0),IR(1, 0),IR(114, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5920,IR(0, 0),IR(12883, 24)/* FPGABufferLocationINTEL */,IR(0, 0),IR(1, 0),IR(115, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5922,IR(0, 0),IR(12907, 34)/* ArbitraryPrecisionFixedPointINTEL */,IR(0, 0),IR(1, 0),IR(116, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5935,IR(0, 0),IR(12941, 23)/* USMStorageClassesINTEL */,IR(0, 0),IR(1, 0),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5939,IR(0, 0),IR(12964, 29)/* RuntimeAlignedAttributeINTEL */,IR(0, 0),IR(1, 0),IR(118, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5943,IR(0, 0),IR(12993, 13)/* IOPipesINTEL */,IR(0, 0),IR(1, 0),IR(119, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5945,IR(0, 0),IR(13006, 19)/* BlockingPipesINTEL */,IR(0, 0),IR(1, 0),IR(120, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {5948,IR(0, 0),IR(13025, 13)/* FPGARegINTEL */,IR(0, 0),IR(1, 0),IR(121, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6016,IR(0, 0),IR(13038, 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(13079, 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(13126, 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(13185, 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(7902, 15)/* RayCullMaskKHR */,IR(0, 0),IR(1, 0),IR(32, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6022,IR(0, 0),IR(9105, 21)/* CooperativeMatrixKHR */,IR(0, 0),IR(1, 0),IR(123, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6024,IR(0, 0),IR(13210, 24)/* ReplicatedCompositesEXT */,IR(0, 0),IR(1, 0),IR(124, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6025,IR(0, 0),IR(13234, 16)/* BitInstructions */,IR(0, 0),IR(1, 0),IR(125, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6026,IR(0, 0),IR(13250, 25)/* GroupNonUniformRotateKHR */,IR(0, 0),IR(76, 1),IR(126, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6029,IR(0, 0),IR(13275, 15)/* FloatControls2 */,IR(0, 0),IR(1, 0),IR(127, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6033,IR(0, 0),IR(13290, 20)/* AtomicFloat32AddEXT */,IR(0, 0),IR(1, 0),IR(128, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6034,IR(0, 0),IR(13310, 20)/* AtomicFloat64AddEXT */,IR(0, 0),IR(1, 0),IR(128, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6089,IR(0, 0),IR(13330, 20)/* LongCompositesINTEL */,IR(0, 0),IR(1, 0),IR(129, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6094,IR(0, 0),IR(13350, 11)/* OptNoneEXT */,IR(50, 1),IR(1, 0),IR(130, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6095,IR(0, 0),IR(13374, 20)/* AtomicFloat16AddEXT */,IR(0, 0),IR(1, 0),IR(132, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6114,IR(0, 0),IR(13394, 21)/* DebugInfoModuleINTEL */,IR(0, 0),IR(1, 0),IR(133, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6115,IR(0, 0),IR(13415, 24)/* BFloat16ConversionINTEL */,IR(0, 0),IR(1, 0),IR(134, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6141,IR(0, 0),IR(13439, 18)/* SplitBarrierINTEL */,IR(0, 0),IR(1, 0),IR(135, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6144,IR(0, 0),IR(13457, 19)/* ArithmeticFenceEXT */,IR(0, 0),IR(1, 0),IR(136, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6150,IR(0, 0),IR(13476, 29)/* FPGAClusterAttributesV2INTEL */,IR(0, 0),IR(106, 1),IR(110, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6161,IR(0, 0),IR(13505, 28)/* FPGAKernelAttributesv2INTEL */,IR(0, 0),IR(107, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6162,IR(0, 0),IR(13533, 18)/* TaskSequenceINTEL */,IR(0, 0),IR(1, 0),IR(137, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6169,IR(0, 0),IR(13551, 16)/* FPMaxErrorINTEL */,IR(0, 0),IR(1, 0),IR(138, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6171,IR(0, 0),IR(13567, 24)/* FPGALatencyControlINTEL */,IR(0, 0),IR(1, 0),IR(139, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6174,IR(0, 0),IR(13591, 28)/* FPGAArgumentInterfacesINTEL */,IR(0, 0),IR(1, 0),IR(140, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6187,IR(0, 0),IR(13619, 30)/* GlobalVariableHostAccessINTEL */,IR(0, 0),IR(1, 0),IR(141, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6189,IR(0, 0),IR(13649, 35)/* GlobalVariableFPGADecorationsINTEL */,IR(0, 0),IR(1, 0),IR(142, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6220,IR(0, 0),IR(13684, 28)/* SubgroupBufferPrefetchINTEL */,IR(0, 0),IR(1, 0),IR(143, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6228,IR(0, 0),IR(13712, 23)/* Subgroup2DBlockIOINTEL */,IR(0, 0),IR(1, 0),IR(144, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6229,IR(0, 0),IR(13735, 30)/* Subgroup2DBlockTransformINTEL */,IR(0, 0),IR(108, 1),IR(144, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6230,IR(0, 0),IR(13765, 30)/* Subgroup2DBlockTransposeINTEL */,IR(0, 0),IR(108, 1),IR(144, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6236,IR(0, 0),IR(13795, 38)/* SubgroupMatrixMultiplyAccumulateINTEL */,IR(0, 0),IR(1, 0),IR(145, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6241,IR(0, 0),IR(13833, 28)/* TernaryBitwiseFunctionINTEL */,IR(0, 0),IR(1, 0),IR(146, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6243,IR(0, 0),IR(13861, 32)/* UntypedVariableLengthArrayINTEL */,IR(0, 0),IR(109, 2),IR(101, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6245,IR(0, 0),IR(13893, 21)/* SpecConditionalINTEL */,IR(0, 0),IR(1, 0),IR(147, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6246,IR(0, 0),IR(13914, 22)/* FunctionVariantsINTEL */,IR(0, 0),IR(111, 1),IR(147, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6400,IR(0, 0),IR(13936, 26)/* GroupUniformArithmeticKHR */,IR(0, 0),IR(1, 0),IR(148, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6425,IR(0, 0),IR(13962, 27)/* TensorFloat32RoundingINTEL */,IR(0, 0),IR(1, 0),IR(149, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6427,IR(0, 0),IR(13989, 25)/* MaskedGatherScatterINTEL */,IR(0, 0),IR(1, 0),IR(150, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6441,IR(0, 0),IR(14014, 19)/* CacheControlsINTEL */,IR(0, 0),IR(1, 0),IR(151, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6460,IR(0, 0),IR(14033, 20)/* RegisterLimitsINTEL */,IR(0, 0),IR(1, 0),IR(152, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {6528,IR(0, 0),IR(14053, 20)/* BindlessImagesINTEL */,IR(0, 0),IR(1, 0),IR(153, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_CAPABILITY + {0,IR(0, 0),IR(14073, 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(14085, 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(14093, 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(14101, 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(14107, 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(14114, 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(14125, 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(14134, 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(14147, 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(14153, 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(14163, 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(14169, 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(14184, 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(14204, 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(14209, 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(14225, 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(14239, 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(14252, 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(14264, 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(14281, 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(14293, 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(14308, 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(14321, 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(14336, 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(14354, 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(14371, 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(14392, 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(14412, 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(14432, 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(14448, 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(14464, 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(14484, 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(14508, 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(14514, 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(14519, 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(14558, 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(14569, 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(14578, 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(14583, 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(14590, 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(14601, 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(14608, 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(14617, 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(14627, 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(14640, 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(14653, 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(14664, 10)/* Float16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1,IR(0, 0),IR(14674, 10)/* Float32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {2,IR(0, 0),IR(14684, 10)/* Float64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {3,IR(0, 0),IR(14694, 13)/* SignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {4,IR(0, 0),IR(14707, 14)/* SignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {5,IR(0, 0),IR(14721, 14)/* SignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {6,IR(0, 0),IR(14735, 14)/* SignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {7,IR(0, 0),IR(14749, 15)/* UnsignedInt8NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {8,IR(0, 0),IR(14764, 16)/* UnsignedInt16NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {9,IR(0, 0),IR(14780, 16)/* UnsignedInt32NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {10,IR(0, 0),IR(14796, 16)/* UnsignedInt64NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491000,IR(0, 0),IR(14812, 19)/* SignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491001,IR(0, 0),IR(14831, 21)/* UnsignedInt8PackedNV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491002,IR(0, 0),IR(14852, 12)/* FloatE4M3NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {1000491003,IR(0, 0),IR(14864, 12)/* FloatE5M2NV */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COMPONENT_TYPE + {0,IR(0, 0),IR(14876, 12)/* RowMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {1,IR(0, 0),IR(14888, 15)/* ColumnMajorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {4202,IR(0, 0),IR(14903, 25)/* RowBlockedInterleavedARM */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {4203,IR(0, 0),IR(14928, 28)/* ColumnBlockedInterleavedARM */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {0,IR(0, 0),IR(14956, 8)/* NoneKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {1,IR(0, 0),IR(14964, 27)/* MatrixASignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {2,IR(0, 0),IR(14991, 27)/* MatrixBSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {4,IR(0, 0),IR(15018, 27)/* MatrixCSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {8,IR(0, 0),IR(15045, 32)/* MatrixResultSignedComponentsKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {16,IR(0, 0),IR(15077, 26)/* SaturatingAccumulationKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {1,IR(0, 0),IR(15103, 4)/* Row */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {2,IR(0, 0),IR(15107, 7)/* Column */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {4,IR(0, 0),IR(15114, 4)/* 2x2 */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {0,IR(0, 0),IR(15118, 11)/* MatrixAKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {1,IR(0, 0),IR(15129, 11)/* MatrixBKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {2,IR(0, 0),IR(15140, 21)/* MatrixAccumulatorKHR */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {0,IR(0, 0),IR(15161, 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(15172, 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(15186, 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(15207, 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(14073, 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(14085, 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(14093, 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(14101, 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(14107, 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(14114, 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(14125, 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(14134, 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(14147, 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(14153, 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(14163, 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(14204, 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(14209, 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(14225, 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(14239, 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(14252, 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(14264, 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(14281, 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(14293, 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(14308, 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(14321, 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(14336, 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(14354, 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(14371, 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(14392, 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(14412, 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(14432, 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(14508, 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(14514, 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(14519, 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(14558, 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(14569, 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(14578, 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(14583, 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(14590, 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(14601, 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(14617, 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(14627, 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(14640, 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(15225, 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(15242, 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(15249, 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(15255, 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(15267, 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(15276, 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(15285, 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(15297, 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(15310, 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(15321, 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(15332, 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(15366, 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(15374, 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(15388, 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(15393, 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(15399, 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(15408, 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(15415, 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(15425, 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(15434, 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(15442, 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(15451, 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(15460, 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(15469, 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(15481, 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(15493, 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(15527, 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(15537, 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(15557, 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(15564, 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(15573, 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(15583, 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(15589, 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(15597, 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(15611, 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(15618, 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(15628, 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(15684, 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(15732, 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(15782, 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(15859, 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(15877, 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(15891, 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(15912, 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(15922, 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(15956, 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(15968, 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(15984, 44)/* SaturatedToLargestFloat8NormalConversionEXT */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4469,IR(0, 0),IR(16028, 13)/* NoSignedWrap */,IR(0, 0),IR(1, 0),IR(154, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4470,IR(0, 0),IR(16041, 15)/* NoUnsignedWrap */,IR(0, 0),IR(1, 0),IR(154, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4487,IR(0, 0),IR(16056, 18)/* WeightTextureQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4488,IR(0, 0),IR(16074, 22)/* BlockMatchTextureQCOM */,IR(0, 0),IR(1, 0),IR(52, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4499,IR(0, 0),IR(16096, 22)/* BlockMatchSamplerQCOM */,IR(0, 0),IR(1, 0),IR(55, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {4999,IR(0, 0),IR(16118, 18)/* ExplicitInterpAMD */,IR(0, 0),IR(1, 0),IR(10, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5019,IR(10, 1),IR(16136, 32)/* NodeSharesPayloadLimitsWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5020,IR(10, 1),IR(16168, 20)/* NodeMaxPayloadsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5078,IR(0, 0),IR(16188, 23)/* TrackFinishWritingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5091,IR(10, 1),IR(16211, 20)/* PayloadNodeNameAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5098,IR(10, 1),IR(16231, 25)/* PayloadNodeBaseIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5099,IR(0, 0),IR(16256, 27)/* PayloadNodeSparseArrayAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5100,IR(10, 1),IR(16283, 25)/* PayloadNodeArraySizeAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5105,IR(0, 0),IR(16308, 28)/* PayloadDispatchIndirectAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5248,IR(0, 0),IR(16336, 19)/* OverrideCoverageNV */,IR(0, 0),IR(122, 1),IR(66, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5250,IR(0, 0),IR(16355, 14)/* PassthroughNV */,IR(0, 0),IR(123, 1),IR(67, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5252,IR(0, 0),IR(16369, 19)/* ViewportRelativeNV */,IR(0, 0),IR(94, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5256,IR(0, 1),IR(16388, 28)/* SecondaryViewportRelativeNV */,IR(0, 0),IR(46, 1),IR(14, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5271,IR(0, 0),IR(16416, 16)/* PerPrimitiveEXT */,IR(51, 1),IR(124, 2),IR(155, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5272,IR(0, 0),IR(16447, 10)/* PerViewNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5273,IR(0, 0),IR(16457, 10)/* PerTaskNV */,IR(0, 0),IR(50, 1),IR(18, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5285,IR(0, 0),IR(16467, 13)/* PerVertexKHR */,IR(52, 1),IR(51, 1),IR(19, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5300,IR(0, 0),IR(16492, 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(16517, 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(16552, 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(16585, 30)/* HitObjectShaderRecordBufferNV */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5398,IR(0, 0),IR(16615, 18)/* BindlessSamplerNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5399,IR(0, 0),IR(16633, 16)/* BindlessImageNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5400,IR(0, 0),IR(16649, 15)/* BoundSamplerNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5401,IR(0, 0),IR(16664, 13)/* BoundImageNV */,IR(0, 0),IR(127, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5599,IR(0, 1),IR(16677, 14)/* SIMTCallINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5602,IR(0, 0),IR(16691, 26)/* ReferencedIndirectlyINTEL */,IR(0, 0),IR(129, 1),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5607,IR(11, 1),IR(16717, 13)/* ClobberINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5608,IR(0, 0),IR(16730, 17)/* SideEffectsINTEL */,IR(0, 0),IR(130, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5624,IR(0, 0),IR(16747, 27)/* VectorComputeVariableINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5625,IR(0, 1),IR(16774, 21)/* FuncParamIOKindINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5626,IR(0, 0),IR(16795, 27)/* VectorComputeFunctionINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5627,IR(0, 0),IR(16822, 15)/* StackCallINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5628,IR(0, 1),IR(16837, 26)/* GlobalVariableOffsetINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5634,IR(10, 1),IR(16863, 14)/* CounterBuffer */,IR(56, 1),IR(1, 0),IR(157, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5635,IR(11, 1),IR(16901, 13)/* UserSemantic */,IR(57, 1),IR(1, 0),IR(157, 1),SPV_SPIRV_VERSION_WORD(1,4),0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5636,IR(11, 1),IR(16933, 15)/* UserTypeGOOGLE */,IR(0, 0),IR(1, 0),IR(158, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5822,IR(12, 2),IR(16948, 26)/* FunctionRoundingModeINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5823,IR(14, 2),IR(17005, 24)/* FunctionDenormModeINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5825,IR(0, 0),IR(17029, 14)/* RegisterINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5826,IR(11, 1),IR(17043, 12)/* MemoryINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5827,IR(0, 1),IR(17055, 14)/* NumbanksINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5828,IR(0, 1),IR(17069, 15)/* BankwidthINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5829,IR(0, 1),IR(17084, 22)/* MaxPrivateCopiesINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5830,IR(0, 0),IR(17106, 16)/* SinglepumpINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5831,IR(0, 0),IR(17122, 16)/* DoublepumpINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5832,IR(0, 1),IR(17138, 19)/* MaxReplicatesINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5833,IR(0, 0),IR(17157, 20)/* SimpleDualPortINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5834,IR(16, 2),IR(17177, 11)/* MergeINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5835,IR(18, 1),IR(17230, 14)/* BankBitsINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5836,IR(0, 1),IR(17244, 20)/* ForcePow2DepthINTEL */,IR(0, 0),IR(132, 1),IR(102, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5883,IR(0, 1),IR(17264, 16)/* StridesizeINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5884,IR(0, 1),IR(17280, 14)/* WordsizeINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5885,IR(0, 0),IR(17294, 18)/* TrueDualPortINTEL */,IR(0, 0),IR(132, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5899,IR(0, 0),IR(17312, 19)/* BurstCoalesceINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5900,IR(0, 1),IR(17331, 15)/* CacheSizeINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5901,IR(0, 0),IR(17346, 28)/* DontStaticallyCoalesceINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5902,IR(0, 1),IR(17374, 14)/* PrefetchINTEL */,IR(0, 0),IR(133, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5905,IR(0, 0),IR(17388, 17)/* StallEnableINTEL */,IR(0, 0),IR(106, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5907,IR(0, 0),IR(17405, 25)/* FuseLoopsInFunctionINTEL */,IR(0, 0),IR(134, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5909,IR(1, 2),IR(17430, 19)/* MathOpDSPModeINTEL */,IR(0, 0),IR(135, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5914,IR(10, 1),IR(17449, 16)/* AliasScopeINTEL */,IR(0, 0),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5915,IR(10, 1),IR(17465, 13)/* NoAliasINTEL */,IR(0, 0),IR(136, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5917,IR(0, 1),IR(17478, 24)/* InitiationIntervalINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5918,IR(0, 1),IR(17502, 20)/* MaxConcurrencyINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5919,IR(0, 1),IR(17522, 20)/* PipelineEnableINTEL */,IR(0, 0),IR(137, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5921,IR(0, 1),IR(17542, 20)/* BufferLocationINTEL */,IR(0, 0),IR(138, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {5944,IR(0, 1),IR(17562, 19)/* IOPipeStorageINTEL */,IR(0, 0),IR(139, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6080,IR(19, 2),IR(17615, 31)/* FunctionFloatingPointModeINTEL */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6085,IR(0, 0),IR(17646, 25)/* SingleElementVectorINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6087,IR(0, 0),IR(17671, 35)/* VectorComputeCallableFunctionINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6140,IR(0, 0),IR(17706, 18)/* MediaBlockIOINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6151,IR(0, 0),IR(17724, 15)/* StallFreeINTEL */,IR(0, 0),IR(140, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6170,IR(21, 1),IR(17770, 26)/* FPMaxErrorDecorationINTEL */,IR(0, 0),IR(141, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6172,IR(0, 1),IR(17796, 25)/* LatencyControlLabelINTEL */,IR(0, 0),IR(142, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6173,IR(22, 3),IR(17821, 30)/* LatencyControlConstraintINTEL */,IR(0, 0),IR(142, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6175,IR(0, 0),IR(17851, 27)/* ConduitKernelArgumentINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6176,IR(0, 0),IR(17878, 31)/* RegisterMapKernelArgumentINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6177,IR(0, 1),IR(17909, 33)/* MMHostInterfaceAddressWidthINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6178,IR(0, 1),IR(17942, 30)/* MMHostInterfaceDataWidthINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6179,IR(0, 1),IR(17972, 28)/* MMHostInterfaceLatencyINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6180,IR(25, 1),IR(18034, 34)/* MMHostInterfaceReadWriteModeINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6181,IR(0, 1),IR(18068, 29)/* MMHostInterfaceMaxBurstINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6182,IR(0, 1),IR(18097, 32)/* MMHostInterfaceWaitRequestINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6183,IR(0, 0),IR(18129, 26)/* StableKernelArgumentINTEL */,IR(0, 0),IR(143, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6188,IR(26, 2),IR(18194, 16)/* HostAccessINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6190,IR(28, 1),IR(18257, 14)/* InitModeINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6191,IR(0, 1),IR(18271, 28)/* ImplementInRegisterMapINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6247,IR(10, 1),IR(18299, 17)/* ConditionalINTEL */,IR(0, 0),IR(111, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6442,IR(29, 2),IR(18352, 22)/* CacheControlLoadINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {6443,IR(31, 2),IR(18411, 23)/* CacheControlStoreINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DECORATION + {0,IR(0, 0),IR(18434, 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(18437, 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(18440, 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(18443, 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(18448, 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(18453, 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(18460, 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(18472, 17)/* TileImageDataEXT */,IR(0, 0),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_DIMENSIONALITY + {0,IR(0, 1),IR(18489, 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(18501, 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(18514, 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(18536, 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(18557, 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(18571, 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(18586, 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(18605, 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(18621, 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(18637, 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(18656, 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(18666, 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(18670, 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(18685, 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(18698, 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(18708, 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(18723, 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(18733, 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(18747, 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(18759, 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(18770, 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(18790, 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(18800, 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(18824, 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(18830, 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(18839, 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(18854, 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(18867, 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(18883, 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(18903, 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(18915, 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(18930, 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(18942, 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(5382, 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(18952, 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(18974, 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(18998, 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(19010, 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(19026, 34)/* NonCoherentColorAttachmentReadEXT */,IR(0, 0),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4170,IR(0, 0),IR(19060, 34)/* NonCoherentDepthAttachmentReadEXT */,IR(0, 0),IR(156, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4171,IR(0, 0),IR(19094, 36)/* NonCoherentStencilAttachmentReadEXT */,IR(0, 0),IR(157, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4421,IR(0, 0),IR(19130, 30)/* SubgroupUniformControlFlowKHR */,IR(0, 0),IR(3, 1),IR(159, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4446,IR(0, 0),IR(19160, 18)/* PostDepthCoverage */,IR(0, 0),IR(158, 1),IR(45, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4459,IR(0, 1),IR(9581, 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(9596, 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(9614, 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(9639, 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(9655, 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(19178, 34)/* NonCoherentTileAttachmentReadQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {4490,IR(22, 3),IR(19212, 20)/* TileShadingRateQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5017,IR(0, 0),IR(19232, 29)/* EarlyAndLateFragmentTestsAMD */,IR(0, 0),IR(3, 1),IR(160, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5027,IR(0, 0),IR(19261, 23)/* StencilRefReplacingEXT */,IR(0, 0),IR(42, 1),IR(11, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5069,IR(0, 0),IR(19284, 15)/* CoalescingAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5070,IR(10, 1),IR(19299, 15)/* IsApiEntryAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5071,IR(10, 1),IR(19314, 21)/* MaxNodeRecursionAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5072,IR(33, 3),IR(19335, 24)/* StaticNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5073,IR(10, 1),IR(6275, 16)/* ShaderIndexAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5077,IR(33, 3),IR(19359, 21)/* MaxNumWorkgroupsAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5079,IR(0, 0),IR(19380, 28)/* StencilRefUnchangedFrontAMD */,IR(0, 0),IR(42, 1),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5080,IR(0, 0),IR(19408, 26)/* StencilRefGreaterFrontAMD */,IR(0, 0),IR(42, 1),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5081,IR(0, 0),IR(19434, 23)/* StencilRefLessFrontAMD */,IR(0, 0),IR(42, 1),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5082,IR(0, 0),IR(19457, 27)/* StencilRefUnchangedBackAMD */,IR(0, 0),IR(42, 1),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5083,IR(0, 0),IR(19484, 25)/* StencilRefGreaterBackAMD */,IR(0, 0),IR(42, 1),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5084,IR(0, 0),IR(19509, 22)/* StencilRefLessBackAMD */,IR(0, 0),IR(42, 1),IR(161, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5088,IR(0, 0),IR(19531, 19)/* QuadDerivativesKHR */,IR(0, 0),IR(164, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5089,IR(0, 0),IR(19550, 20)/* RequireFullQuadsKHR */,IR(0, 0),IR(164, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5102,IR(36, 2),IR(19570, 20)/* SharesInputWithAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5269,IR(0, 0),IR(19590, 15)/* OutputLinesEXT */,IR(58, 1),IR(124, 2),IR(155, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5270,IR(0, 1),IR(19619, 20)/* OutputPrimitivesEXT */,IR(59, 1),IR(124, 2),IR(155, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5289,IR(0, 0),IR(19658, 24)/* DerivativeGroupQuadsKHR */,IR(60, 1),IR(165, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5290,IR(0, 0),IR(19705, 25)/* DerivativeGroupLinearKHR */,IR(61, 1),IR(166, 1),IR(73, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5298,IR(0, 0),IR(19754, 19)/* OutputTrianglesEXT */,IR(62, 1),IR(124, 2),IR(155, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5366,IR(0, 0),IR(19791, 25)/* PixelInterlockOrderedEXT */,IR(0, 0),IR(167, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5367,IR(0, 0),IR(19816, 27)/* PixelInterlockUnorderedEXT */,IR(0, 0),IR(167, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5368,IR(0, 0),IR(19843, 26)/* SampleInterlockOrderedEXT */,IR(0, 0),IR(168, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5369,IR(0, 0),IR(19869, 28)/* SampleInterlockUnorderedEXT */,IR(0, 0),IR(168, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5370,IR(0, 0),IR(19897, 31)/* ShadingRateInterlockOrderedEXT */,IR(0, 0),IR(169, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5371,IR(0, 0),IR(19928, 33)/* ShadingRateInterlockUnorderedEXT */,IR(0, 0),IR(169, 1),IR(80, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5618,IR(0, 1),IR(19961, 27)/* SharedLocalMemorySizeINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5620,IR(0, 1),IR(19988, 21)/* RoundingModeRTPINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5621,IR(0, 1),IR(20009, 21)/* RoundingModeRTNINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5622,IR(0, 1),IR(20030, 26)/* FloatingPointModeALTINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5623,IR(0, 1),IR(20056, 27)/* FloatingPointModeIEEEINTEL */,IR(0, 0),IR(170, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5893,IR(22, 3),IR(20083, 22)/* MaxWorkgroupSizeINTEL */,IR(0, 0),IR(171, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5894,IR(0, 1),IR(20105, 16)/* MaxWorkDimINTEL */,IR(0, 0),IR(171, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5895,IR(0, 0),IR(20121, 20)/* NoGlobalOffsetINTEL */,IR(0, 0),IR(171, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5896,IR(0, 1),IR(20141, 22)/* NumSIMDWorkitemsINTEL */,IR(0, 0),IR(107, 1),IR(108, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {5903,IR(0, 1),IR(20163, 28)/* SchedulerTargetFmaxMhzINTEL */,IR(0, 0),IR(107, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6023,IR(0, 0),IR(20191, 24)/* MaximallyReconvergesKHR */,IR(0, 0),IR(3, 1),IR(163, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6028,IR(36, 2),IR(20215, 18)/* FPFastMathDefault */,IR(0, 0),IR(172, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6154,IR(0, 1),IR(20233, 24)/* StreamingInterfaceINTEL */,IR(0, 0),IR(107, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6160,IR(0, 1),IR(20257, 26)/* RegisterMapInterfaceINTEL */,IR(0, 0),IR(173, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6417,IR(0, 1),IR(20283, 23)/* NamedBarrierCountINTEL */,IR(0, 0),IR(128, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6461,IR(0, 1),IR(20306, 22)/* MaximumRegistersINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6462,IR(10, 1),IR(20328, 24)/* MaximumRegistersIdINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {6463,IR(38, 1),IR(20403, 27)/* NamedMaximumRegistersINTEL */,IR(0, 0),IR(174, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODE + {0,IR(0, 0),IR(20430, 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(20437, 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(20457, 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(4863, 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(14608, 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(20480, 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(4630, 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(20490, 7)/* TaskNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5268,IR(0, 0),IR(20497, 7)/* MeshNV */,IR(0, 0),IR(50, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5313,IR(0, 0),IR(20504, 17)/* RayGenerationKHR */,IR(63, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5314,IR(0, 0),IR(20537, 16)/* IntersectionKHR */,IR(64, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5315,IR(0, 0),IR(20568, 10)/* AnyHitKHR */,IR(65, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5316,IR(0, 0),IR(20587, 14)/* ClosestHitKHR */,IR(66, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5317,IR(0, 0),IR(20614, 8)/* MissKHR */,IR(67, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5318,IR(0, 0),IR(20629, 12)/* CallableKHR */,IR(68, 1),IR(54, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5364,IR(0, 0),IR(20652, 8)/* TaskEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {5365,IR(0, 0),IR(20660, 8)/* MeshEXT */,IR(0, 0),IR(53, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_EXECUTION_MODEL + {0,IR(0, 0),IR(20668, 9)/* Preserve */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE + {1,IR(0, 0),IR(20677, 12)/* FlushToZero */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPDENORM_MODE + {0,IR(0, 0),IR(20689, 12)/* BFloat16KHR */,IR(0, 0),IR(89, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING + {4214,IR(0, 0),IR(20701, 14)/* Float8E4M3EXT */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING + {4215,IR(0, 0),IR(20715, 14)/* Float8E5M2EXT */,IR(0, 0),IR(121, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPENCODING + {0,IR(0, 0),IR(20729, 5)/* IEEE */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE + {1,IR(0, 0),IR(20734, 4)/* ALT */,IR(0, 0),IR(131, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FPOPERATION_MODE + {0,IR(0, 0),IR(14204, 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(20738, 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(20745, 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(20752, 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(20756, 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(20767, 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(20772, 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(20809, 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(20840, 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(20855, 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(20859, 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(20863, 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(20867, 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(20871, 16)/* Vertical2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {2,IR(0, 0),IR(20887, 16)/* Vertical4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {4,IR(0, 0),IR(20903, 18)/* Horizontal2Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {8,IR(0, 0),IR(20921, 18)/* Horizontal4Pixels */,IR(0, 0),IR(38, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {0,IR(0, 0),IR(14204, 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(20939, 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(20946, 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(20957, 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(20962, 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(13350, 11)/* OptNoneEXT */,IR(50, 1),IR(177, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_FUNCTION_CONTROL + {0,IR(0, 0),IR(20968, 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(20973, 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(20978, 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(20984, 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(20989, 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(20997, 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(21007, 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(21015, 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(21027, 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(21047, 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(21054, 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(21068, 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(21082, 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(21098, 20)/* PartitionedReduceNV */,IR(0, 0),IR(183, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {7,IR(0, 0),IR(21118, 27)/* PartitionedInclusiveScanNV */,IR(0, 0),IR(183, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {8,IR(0, 0),IR(21145, 27)/* PartitionedExclusiveScanNV */,IR(0, 0),IR(183, 1),IR(75, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_GROUP_OPERATION + {0,IR(0, 0),IR(21172, 10)/* NoneINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {1,IR(0, 0),IR(21182, 10)/* ReadINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {2,IR(0, 0),IR(21192, 11)/* WriteINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {3,IR(0, 0),IR(21203, 15)/* ReadWriteINTEL */,IR(0, 0),IR(144, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {0,IR(0, 0),IR(14204, 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(21218, 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(21223, 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(21227, 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(21232, 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(15611, 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(21244, 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(15408, 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(8414, 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(21257, 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(21298, 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(21335, 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(21370, 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(21401, 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(21412, 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(21423, 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(21435, 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(21443, 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(21453, 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(21464, 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(21474, 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(21485, 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(21499, 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(21513, 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(21528, 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(21539, 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(21551, 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(21563, 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(21576, 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(21590, 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(21604, 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(14101, 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(21614, 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(21625, 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(21642, 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(21658, 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(21678, 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(21698, 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(21718, 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(21737, 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(21756, 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(21775, 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(21791, 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(21807, 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(21809, 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(21811, 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(21814, 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(21817, 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(21821, 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(21826, 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(21831, 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(21836, 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(21846, 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(21856, 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(21859, 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(21863, 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(21868, 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(21874, 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(21887, 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(21892, 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(21898, 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(21904, 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(21910, 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(21915, 27)/* InitOnDeviceReprogramINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {1,IR(0, 0),IR(21942, 23)/* InitOnDeviceResetINTEL */,IR(0, 0),IR(145, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {0,IR(0, 0),IR(21965, 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(21972, 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(21983, 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(14204, 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(21997, 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(14204, 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(22009, 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(22022, 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(22029, 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(22036, 12)/* LinkOnceODR */,IR(0, 0),IR(120, 1),IR(164, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LINKAGE_TYPE + {0,IR(0, 0),IR(22048, 14)/* UncachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {1,IR(0, 0),IR(22062, 12)/* CachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {2,IR(0, 0),IR(22074, 15)/* StreamingINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {3,IR(0, 0),IR(22089, 25)/* InvalidateAfterReadINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {4,IR(0, 0),IR(22114, 17)/* ConstCachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {0,IR(0, 0),IR(14204, 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(22131, 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(22138, 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(22149, 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(22168, 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(22185, 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(22199, 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(22213, 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(22231, 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(22241, 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(17478, 24)/* InitiationIntervalINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {131072,IR(0, 1),IR(17502, 20)/* MaxConcurrencyINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {262144,IR(0, 1),IR(22254, 21)/* DependencyArrayINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {524288,IR(0, 1),IR(17522, 20)/* PipelineEnableINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {1048576,IR(0, 1),IR(22275, 18)/* LoopCoalesceINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {2097152,IR(0, 1),IR(22293, 21)/* MaxInterleavingINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {4194304,IR(0, 1),IR(22314, 26)/* SpeculatedIterationsINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {8388608,IR(0, 0),IR(22340, 14)/* NoFusionINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {16777216,IR(0, 1),IR(22354, 15)/* LoopCountINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {33554432,IR(0, 1),IR(22369, 26)/* MaxReinvocationDelayINTEL */,IR(0, 0),IR(187, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_LOOP_CONTROL + {0,IR(0, 0),IR(14204, 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(22395, 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(22424, 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(22453, 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(22474, 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(22500, 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(22523, 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(22546, 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(22569, 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(22592, 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(22609, 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(22626, 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(22652, 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(22678, 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(22705, 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(14204, 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(15442, 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(22732, 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(21423, 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(22740, 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(22785, 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(22826, 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(22865, 20)/* AliasScopeINTELMask */,IR(0, 0),IR(136, 1),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {131072,IR(10, 1),IR(22885, 17)/* NoAliasINTELMask */,IR(0, 0),IR(136, 1),IR(113, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_MEMORY_ACCESS + {0,IR(0, 0),IR(22902, 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(22909, 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(22917, 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(22924, 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(22941, 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(22949, 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(22957, 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(22965, 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(22980, 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(23003, 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(23017, 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(23032, 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(23048, 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(23069, 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(23089, 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(23101, 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(23130, 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(23161, 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(15442, 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(23188, 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(23198, 5)/* WRAP */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {1,IR(0, 0),IR(23203, 4)/* SAT */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {2,IR(0, 0),IR(23207, 9)/* SAT_ZERO */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {3,IR(0, 0),IR(23216, 8)/* SAT_SYM */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_OVERFLOW_MODES + {0,IR(0, 0),IR(23224, 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(23277, 4)/* TRN */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {1,IR(0, 0),IR(23281, 9)/* TRN_ZERO */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {2,IR(0, 0),IR(23290, 4)/* RND */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {3,IR(0, 0),IR(23294, 9)/* RND_ZERO */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {4,IR(0, 0),IR(23303, 8)/* RND_INF */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {5,IR(0, 0),IR(23311, 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(23323, 9)/* RND_CONV */,IR(0, 0),IR(188, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_QUANTIZATION_MODES + {7,IR(0, 0),IR(23332, 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(14204, 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(23345, 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(23370, 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(14956, 8)/* NoneKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {1,IR(0, 0),IR(23393, 10)/* OpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {2,IR(0, 0),IR(23403, 12)/* NoOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {4,IR(0, 0),IR(23415, 23)/* TerminateOnFirstHitKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {8,IR(0, 0),IR(23438, 24)/* SkipClosestHitShaderKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {16,IR(0, 0),IR(23462, 27)/* CullBackFacingTrianglesKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {32,IR(0, 0),IR(23489, 28)/* CullFrontFacingTrianglesKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {64,IR(0, 0),IR(23517, 14)/* CullOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {128,IR(0, 0),IR(23531, 16)/* CullNoOpaqueKHR */,IR(0, 0),IR(84, 2),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {256,IR(0, 0),IR(23547, 17)/* SkipTrianglesKHR */,IR(84, 1),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {512,IR(0, 0),IR(23588, 13)/* SkipAABBsKHR */,IR(0, 0),IR(190, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {1024,IR(0, 0),IR(23601, 30)/* ForceOpacityMicromap2StateEXT */,IR(0, 0),IR(191, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_FLAGS + {0,IR(0, 0),IR(23631, 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(23672, 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(23709, 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(23746, 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(23787, 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(23829, 33)/* RayQueryCandidateIntersectionKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {1,IR(0, 0),IR(23862, 33)/* RayQueryCommittedIntersectionKHR */,IR(0, 0),IR(192, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {0,IR(0, 0),IR(14204, 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(23895, 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(23907, 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(23913, 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(23920, 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(23935, 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(23943, 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(23950, 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(23958, 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(23966, 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(23974, 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(23979, 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(23985, 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(23996, 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(24002, 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(24008, 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(24021, 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(24026, 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(24033, 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(24041, 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(24046, 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(24050, 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(24054, 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(24057, 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(24069, 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(24079, 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(24088, 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(24097, 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(24105, 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(24113, 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(24121, 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(24128, 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(24133, 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(24139, 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(24145, 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(24150, 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(24155, 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(24159, 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(24168, 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(24177, 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(24185, 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(24191, 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(24201, 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(24208, 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(24215, 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(24221, 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(24227, 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(24232, 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(24238, 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(24243, 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(24255, 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(24262, 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(24272, 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(24281, 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(24292, 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(24319, 14)/* ShaderCallKHR */,IR(0, 0),IR(60, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_SCOPE_ID + {0,IR(0, 0),IR(14204, 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(24333, 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(24341, 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(24353, 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(14073, 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(14085, 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(14093, 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(14101, 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(14107, 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(14114, 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(14125, 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(14134, 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(14147, 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(14153, 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(14163, 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(14169, 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(14184, 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(14204, 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(14209, 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(14225, 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(14239, 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(14252, 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(14264, 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(14281, 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(14293, 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(14308, 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(14321, 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(14336, 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(14354, 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(14371, 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(14392, 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(14412, 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(14432, 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(14448, 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(14464, 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(14484, 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(24382, 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(14508, 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(14514, 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(14519, 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(14558, 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(14569, 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(14578, 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(14583, 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(14590, 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(14601, 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(14608, 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(14617, 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(14627, 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(14640, 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(14653, 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(23950, 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(24408, 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(24413, 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(24418, 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(24427, 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(24438, 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(24443, 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(24458, 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(24463, 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(24470, 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(24475, 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(24480, 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(24486, 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(24490, 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(24495, 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(24511, 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(15493, 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(24517, 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(24262, 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(24524, 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(24539, 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(24547, 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(24556, 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(24564, 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(24577, 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(24591, 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(24597, 14)/* StorageBuffer */,IR(0, 0),IR(3, 1),IR(165, 2),SPV_SPIRV_VERSION_WORD(1,3),0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {4172,IR(0, 0),IR(24611, 13)/* TileImageEXT */,IR(0, 0),IR(147, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {4491,IR(0, 0),IR(24624, 19)/* TileAttachmentQCOM */,IR(0, 0),IR(41, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5068,IR(0, 0),IR(24643, 16)/* NodePayloadAMDX */,IR(0, 0),IR(43, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5328,IR(0, 0),IR(24659, 16)/* CallableDataKHR */,IR(86, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5329,IR(0, 0),IR(24690, 24)/* IncomingCallableDataKHR */,IR(87, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5338,IR(0, 0),IR(24737, 14)/* RayPayloadKHR */,IR(88, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5339,IR(0, 0),IR(24764, 16)/* HitAttributeKHR */,IR(89, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5342,IR(0, 0),IR(24795, 22)/* IncomingRayPayloadKHR */,IR(90, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5343,IR(0, 0),IR(24838, 22)/* ShaderRecordBufferKHR */,IR(91, 1),IR(54, 2),IR(24, 2),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5349,IR(0, 0),IR(24881, 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(24928, 21)/* HitObjectAttributeNV */,IR(0, 0),IR(126, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5402,IR(0, 0),IR(24949, 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(24973, 17)/* CodeSectionINTEL */,IR(0, 0),IR(198, 1),IR(95, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5936,IR(0, 0),IR(24990, 16)/* DeviceOnlyINTEL */,IR(0, 0),IR(199, 1),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {5937,IR(0, 0),IR(25006, 14)/* HostOnlyINTEL */,IR(0, 0),IR(199, 1),IR(117, 1),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORAGE_CLASS + {0,IR(0, 0),IR(22048, 14)/* UncachedINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {1,IR(0, 0),IR(25020, 18)/* WriteThroughINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {2,IR(0, 0),IR(25038, 15)/* WriteBackINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {3,IR(0, 0),IR(22074, 15)/* StreamingINTEL */,IR(0, 0),IR(146, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {0,IR(0, 0),IR(14204, 5)/* None */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {1,IR(10, 1),IR(25053, 11)/* TensorView */,IR(0, 0),IR(200, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {2,IR(10, 1),IR(25064, 11)/* DecodeFunc */,IR(0, 0),IR(201, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {0,IR(0, 0),IR(25075, 10)/* Undefined */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {1,IR(0, 0),IR(15451, 9)/* Constant */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {2,IR(0, 0),IR(23895, 12)/* ClampToEdge */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {3,IR(0, 0),IR(23913, 7)/* Repeat */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {4,IR(0, 0),IR(23920, 15)/* RepeatMirrored */,IR(0, 0),IR(1, 0),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {0,IR(0, 0),IR(25085, 8)/* NoneARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {1,IR(0, 0),IR(25093, 15)/* NontemporalARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {2,IR(10, 1),IR(25108, 20)/* OutOfBoundsValueARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {4,IR(10, 1),IR(25128, 24)/* MakeElementAvailableARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {8,IR(10, 1),IR(25152, 22)/* MakeElementVisibleARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS + {16,IR(0, 0),IR(25174, 21)/* NonPrivateElementARM */,IR(0, 0),IR(202, 1),IR(0, 0),0xffffffffu,0xffffffffu}, // SPV_OPERAND_TYPE_TENSOR_OPERANDS }}; // Maps an operand kind to possible operands for that kind. @@ -1532,88 +1544,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, 269); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(402, 8); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(410, 3); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(413, 2); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(415, 19); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(434, 10); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(444, 4); - case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(448, 15); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(463, 4); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(467, 6); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(473, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(476, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(479, 4); - case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(483, 8); - case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(491, 3); - case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(494, 16); - case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(510, 9); - case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(519, 3); - case SPV_OPERAND_TYPE_DECORATION: return IR(522, 143); - case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(665, 8); - case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(673, 96); - case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(769, 17); - case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(786, 2); - case SPV_OPERAND_TYPE_FPENCODING: return IR(788, 3); - case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(791, 2); - case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(793, 9); - case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(802, 4); - case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(806, 4); - case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(810, 6); - case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(816, 9); - case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(825, 7); - case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(832, 4); - case SPV_OPERAND_TYPE_IMAGE: return IR(836, 17); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(853, 26); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(879, 20); - case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(899, 2); - case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(901, 3); - case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(904, 2); - case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(906, 2); - case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(908, 3); - case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(911, 5); - case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(916, 20); - case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(936, 15); - case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(951, 9); - case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(960, 4); - case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(964, 15); - case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(979, 1); - case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(980, 4); - case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(984, 1); - case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(985, 8); - case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(993, 3); - case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(996, 12); - case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1008, 2); - case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1010, 3); - case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1013, 2); - case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1015, 5); - case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1020, 2); - case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1022, 42); - case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1064, 7); - case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1071, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1074, 1); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1075, 8); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1083, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1086, 2); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1088, 20); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1108, 10); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1118, 4); - case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1122, 14); - case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1136, 28); - case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1164, 4); - case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1168, 3); - case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1171, 5); - case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1176, 6); - case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(836, 17); + case SPV_OPERAND_TYPE_CAPABILITY: return IR(133, 274); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(407, 8); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(415, 3); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(418, 2); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(420, 19); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(439, 10); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(449, 4); + case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(453, 15); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(468, 4); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(472, 6); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(478, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(481, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(484, 4); + case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(488, 8); + case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(496, 3); + case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(499, 16); + case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(515, 9); + case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(524, 3); + case SPV_OPERAND_TYPE_DECORATION: return IR(527, 144); + case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(671, 8); + case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(679, 96); + case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(775, 17); + case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(792, 2); + case SPV_OPERAND_TYPE_FPENCODING: return IR(794, 3); + case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(797, 2); + case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(799, 9); + case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(808, 4); + case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(812, 4); + case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(816, 6); + case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(822, 9); + case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(831, 7); + case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(838, 4); + case SPV_OPERAND_TYPE_IMAGE: return IR(842, 17); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(859, 26); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(885, 20); + case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(905, 2); + case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(907, 3); + case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(910, 2); + case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(912, 2); + case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(914, 3); + case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(917, 5); + case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(922, 20); + case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(942, 15); + case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(957, 9); + case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(966, 4); + case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(970, 15); + case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(985, 1); + case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(986, 4); + case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(990, 1); + case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(991, 8); + case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(999, 3); + case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1002, 12); + case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1014, 2); + case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1016, 3); + case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1019, 2); + case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1021, 5); + case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1026, 2); + case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1028, 42); + case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1070, 7); + case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1077, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1080, 1); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1081, 8); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1089, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1092, 2); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1094, 20); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1114, 10); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1124, 4); + case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1128, 14); + case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1142, 28); + case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1170, 4); + case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1174, 3); + case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1177, 5); + case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1182, 6); + case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(842, 17); case SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER: return IR(0, 3); - case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(951, 9); - case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(984, 1); - case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(467, 6); - case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(936, 15); - case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(993, 3); - case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(788, 3); - case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1176, 6); + case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(957, 9); + case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(990, 1); + case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(472, 6); + case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(942, 15); + case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(999, 3); + case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(794, 3); + case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1182, 6); + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return IR(133, 274); default: break; } return IR(0,0); @@ -1623,1283 +1636,1289 @@ 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(4540, 9), 0}, // 0 ReadOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {IR(4566, 10), 2}, // 1 ReadWrite in SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {IR(4556, 10), 1}, // 2 WriteOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER - {IR(4576, 8), 3}, // 3 Logical in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4584, 11), 4}, // 4 Physical32 in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4605, 11), 5}, // 5 Physical64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4616, 24), 6}, // 6 PhysicalStorageBuffer64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(4640, 27), 6}, // 7 PhysicalStorageBuffer64EXT in SPV_OPERAND_TYPE_ADDRESSING_MODEL - {IR(6550, 13), 92}, // 8 BaryCoordKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6563, 12), 92}, // 9 BaryCoordNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5945, 20), 68}, // 10 BaryCoordNoPerspAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(5965, 28), 69}, // 11 BaryCoordNoPerspCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6598, 20), 93}, // 12 BaryCoordNoPerspKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6618, 19), 93}, // 13 BaryCoordNoPerspNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5993, 26), 70}, // 14 BaryCoordNoPerspSampleAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6090, 22), 74}, // 15 BaryCoordPullModelAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6019, 19), 71}, // 16 BaryCoordSmoothAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6038, 27), 72}, // 17 BaryCoordSmoothCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(6065, 25), 73}, // 18 BaryCoordSmoothSampleAMD in SPV_OPERAND_TYPE_BUILT_IN - {IR(5749, 13), 59}, // 19 BaseInstance in SPV_OPERAND_TYPE_BUILT_IN - {IR(5723, 11), 58}, // 20 BaseVertex in SPV_OPERAND_TYPE_BUILT_IN - {IR(4724, 13), 9}, // 21 ClipDistance in SPV_OPERAND_TYPE_BUILT_IN - {IR(6457, 22), 87}, // 22 ClipDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7756, 12), 131}, // 23 ClusterIDNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5487, 13), 49}, // 24 CoreCountARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5461, 10), 48}, // 25 CoreIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5500, 13), 50}, // 26 CoreMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(4737, 13), 10}, // 27 CullDistance in SPV_OPERAND_TYPE_BUILT_IN - {IR(6479, 22), 88}, // 28 CullDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7809, 12), 132}, // 29 CullMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6805, 17), 99}, // 30 CullPrimitiveEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(7209, 17), 113}, // 31 CurrentRayTimeNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5819, 12), 62}, // 32 DeviceIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5762, 10), 60}, // 33 DrawIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5251, 22), 37}, // 34 EnqueuedWorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(5021, 10), 21}, // 35 FragCoord in SPV_OPERAND_TYPE_BUILT_IN - {IR(5107, 10), 27}, // 36 FragDepth in SPV_OPERAND_TYPE_BUILT_IN - {IR(6683, 23), 95}, // 37 FragInvocationCountEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6637, 12), 94}, // 38 FragSizeEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6112, 18), 75}, // 39 FragStencilRefEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6649, 15), 94}, // 40 FragmentSizeNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5042, 12), 23}, // 41 FrontFacing in SPV_OPERAND_TYPE_BUILT_IN - {IR(6369, 16), 83}, // 42 FullyCoveredEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(5192, 19), 33}, // 43 GlobalInvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5286, 15), 39}, // 44 GlobalLinearId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5273, 13), 38}, // 45 GlobalOffset in SPV_OPERAND_TYPE_BUILT_IN - {IR(5240, 11), 36}, // 46 GlobalSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(5117, 17), 28}, // 47 HelperInvocation in SPV_OPERAND_TYPE_BUILT_IN - {IR(7511, 11), 120}, // 48 HitIsLSSNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7469, 14), 119}, // 49 HitIsSphereNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7691, 33), 128}, // 50 HitKindBackFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7657, 34), 127}, // 51 HitKindFrontFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7188, 11), 112}, // 52 HitKindKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7199, 10), 112}, // 53 HitKindNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7639, 18), 126}, // 54 HitLSSPositionsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7742, 14), 130}, // 55 HitLSSRadiiNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7373, 37), 116}, // 56 HitMicroTriangleVertexBarycentricsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7306, 34), 115}, // 57 HitMicroTriangleVertexPositionsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7561, 20), 121}, // 58 HitSpherePositionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7724, 18), 129}, // 59 HitSphereRadiusNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7181, 7), 111}, // 60 HitTNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7249, 30), 114}, // 61 HitTriangleVertexPositionsKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7410, 20), 117}, // 62 IncomingRayFlagsKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7430, 19), 117}, // 63 IncomingRayFlagsNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7070, 23), 108}, // 64 InstanceCustomIndexKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7093, 22), 108}, // 65 InstanceCustomIndexNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4759, 11), 12}, // 66 InstanceId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5447, 14), 47}, // 67 InstanceIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(4860, 13), 14}, // 68 InvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(6706, 22), 95}, // 69 InvocationsPerPixelNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6822, 12), 100}, // 70 LaunchIdKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6834, 11), 100}, // 71 LaunchIdNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6845, 14), 101}, // 72 LaunchSizeKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6859, 13), 101}, // 73 LaunchSizeNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4873, 6), 15}, // 74 Layer in SPV_OPERAND_TYPE_BUILT_IN - {IR(6501, 15), 89}, // 75 LayerPerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5174, 18), 32}, // 76 LocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5211, 21), 34}, // 77 LocalInvocationIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(6516, 16), 90}, // 78 MeshViewCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6532, 18), 91}, // 79 MeshViewIndicesNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5377, 21), 43}, // 80 NumEnqueuedSubgroups in SPV_OPERAND_TYPE_BUILT_IN - {IR(5364, 13), 42}, // 81 NumSubgroups in SPV_OPERAND_TYPE_BUILT_IN - {IR(5134, 14), 29}, // 82 NumWorkgroups in SPV_OPERAND_TYPE_BUILT_IN - {IR(6985, 22), 105}, // 83 ObjectRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7007, 21), 105}, // 84 ObjectRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6948, 19), 104}, // 85 ObjectRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6967, 18), 104}, // 86 ObjectRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7115, 17), 109}, // 87 ObjectToWorldKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7132, 16), 109}, // 88 ObjectToWorldNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5007, 14), 20}, // 89 PatchVertices in SPV_OPERAND_TYPE_BUILT_IN - {IR(5031, 11), 22}, // 90 PointCoord in SPV_OPERAND_TYPE_BUILT_IN - {IR(4714, 10), 8}, // 91 PointSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(4698, 9), 7}, // 92 Position in SPV_OPERAND_TYPE_BUILT_IN - {IR(6309, 18), 81}, // 93 PositionPerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6421, 17), 85}, // 94 PrimitiveCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4770, 12), 13}, // 95 PrimitiveId in SPV_OPERAND_TYPE_BUILT_IN - {IR(6438, 19), 86}, // 96 PrimitiveIndicesNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6753, 24), 97}, // 97 PrimitiveLineIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(6728, 25), 96}, // 98 PrimitivePointIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(5772, 24), 61}, // 99 PrimitiveShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6777, 28), 98}, // 100 PrimitiveTriangleIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN - {IR(7449, 20), 118}, // 101 RayGeometryIndexKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7049, 11), 107}, // 102 RayTmaxKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7060, 10), 107}, // 103 RayTmaxNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7028, 11), 106}, // 104 RayTminKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7039, 10), 106}, // 105 RayTminNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6147, 29), 76}, // 106 RemainingRecursionLevelsAMDX in SPV_OPERAND_TYPE_BUILT_IN - {IR(7613, 10), 123}, // 107 SMCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7632, 7), 125}, // 108 SMIDNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5054, 9), 24}, // 109 SampleId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5096, 11), 26}, // 110 SampleMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5081, 15), 25}, // 111 SamplePosition in SPV_OPERAND_TYPE_BUILT_IN - {IR(6246, 20), 79}, // 112 SecondaryPositionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6285, 24), 80}, // 113 SecondaryViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6194, 16), 77}, // 114 ShaderIndexAMDX in SPV_OPERAND_TYPE_BUILT_IN - {IR(5863, 15), 64}, // 115 ShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5536, 15), 53}, // 116 SubgroupEqMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5551, 18), 53}, // 117 SubgroupEqMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5591, 15), 54}, // 118 SubgroupGeMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5606, 18), 54}, // 119 SubgroupGeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5624, 15), 55}, // 120 SubgroupGtMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5639, 18), 55}, // 121 SubgroupGtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5398, 11), 44}, // 122 SubgroupId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5657, 15), 56}, // 123 SubgroupLeMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5672, 18), 56}, // 124 SubgroupLeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5409, 26), 45}, // 125 SubgroupLocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5690, 15), 57}, // 126 SubgroupLtMask in SPV_OPERAND_TYPE_BUILT_IN - {IR(5705, 18), 57}, // 127 SubgroupLtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(5348, 16), 41}, // 128 SubgroupMaxSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(5301, 13), 40}, // 129 SubgroupSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(6409, 12), 84}, // 130 TaskCountNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4997, 10), 19}, // 131 TessCoord in SPV_OPERAND_TYPE_BUILT_IN - {IR(4982, 15), 18}, // 132 TessLevelInner in SPV_OPERAND_TYPE_BUILT_IN - {IR(4967, 15), 17}, // 133 TessLevelOuter in SPV_OPERAND_TYPE_BUILT_IN - {IR(5927, 18), 67}, // 134 TileApronSizeQCOM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5909, 18), 66}, // 135 TileDimensionQCOM in SPV_OPERAND_TYPE_BUILT_IN - {IR(5878, 15), 65}, // 136 TileOffsetQCOM in SPV_OPERAND_TYPE_BUILT_IN - {IR(4750, 9), 11}, // 137 VertexId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5435, 12), 46}, // 138 VertexIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(5843, 10), 63}, // 139 ViewIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(4919, 14), 16}, // 140 ViewportIndex in SPV_OPERAND_TYPE_BUILT_IN - {IR(6210, 15), 78}, // 141 ViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6347, 22), 82}, // 142 ViewportMaskPerViewNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5513, 10), 51}, // 143 WarpIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(7623, 9), 124}, // 144 WarpIDNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5523, 13), 52}, // 145 WarpMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN - {IR(7581, 13), 122}, // 146 WarpsPerSMNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(5232, 8), 35}, // 147 WorkDim in SPV_OPERAND_TYPE_BUILT_IN - {IR(5162, 12), 31}, // 148 WorkgroupId in SPV_OPERAND_TYPE_BUILT_IN - {IR(5148, 14), 30}, // 149 WorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN - {IR(6907, 21), 103}, // 150 WorldRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6928, 20), 103}, // 151 WorldRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(6872, 18), 102}, // 152 WorldRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(6890, 17), 102}, // 153 WorldRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(7148, 17), 110}, // 154 WorldToObjectKHR in SPV_OPERAND_TYPE_BUILT_IN - {IR(7165, 16), 110}, // 155 WorldToObjectNV in SPV_OPERAND_TYPE_BUILT_IN - {IR(4595, 10), 137}, // 156 Addresses in SPV_OPERAND_TYPE_CAPABILITY - {IR(12785, 34), 357}, // 157 ArbitraryPrecisionFixedPointINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12473, 37), 345}, // 158 ArbitraryPrecisionFloatingPointINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12441, 32), 344}, // 159 ArbitraryPrecisionIntegersINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13335, 19), 381}, // 160 ArithmeticFenceEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12106, 9), 330}, // 161 AsmINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13252, 20), 377}, // 162 AtomicFloat16AddEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12161, 23), 333}, // 163 AtomicFloat16MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11634, 22), 308}, // 164 AtomicFloat16VectorNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13168, 20), 373}, // 165 AtomicFloat32AddEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12115, 23), 331}, // 166 AtomicFloat32MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(13188, 20), 374}, // 167 AtomicFloat64AddEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12138, 23), 332}, // 168 AtomicFloat64MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(7989, 14), 153}, // 169 AtomicStorage in SPV_OPERAND_TYPE_CAPABILITY - {IR(9346, 17), 228}, // 170 AtomicStorageOps in SPV_OPERAND_TYPE_CAPABILITY - {IR(13293, 24), 379}, // 171 BFloat16ConversionINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9957, 29), 261}, // 172 BFloat16CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9935, 22), 260}, // 173 BFloat16DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9919, 16), 259}, // 174 BFloat16TypeKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13856, 20), 401}, // 175 BindlessImagesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11571, 18), 305}, // 176 BindlessTextureNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13112, 16), 370}, // 177 BitInstructions in SPV_OPERAND_TYPE_CAPABILITY - {IR(12884, 19), 361}, // 178 BlockingPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13817, 19), 399}, // 179 CacheControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(4724, 13), 163}, // 180 ClipDistance in SPV_OPERAND_TYPE_CAPABILITY - {IR(11229, 32), 294}, // 181 ComputeDerivativeGroupLinearKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11261, 31), 294}, // 182 ComputeDerivativeGroupLinearNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(10109, 31), 273}, // 183 ComputeDerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(10140, 30), 273}, // 184 ComputeDerivativeGroupQuadsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11811, 30), 317}, // 185 CooperativeMatrixBlockLoadsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11704, 31), 314}, // 186 CooperativeMatrixConversionsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9898, 21), 368}, // 187 CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(8950, 28), 210}, // 188 CooperativeMatrixLayoutsARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(11317, 20), 296}, // 189 CooperativeMatrixNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11735, 40), 315}, // 190 CooperativeMatrixPerElementOperationsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11674, 30), 313}, // 191 CooperativeMatrixReductionsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11775, 36), 316}, // 192 CooperativeMatrixTensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11614, 20), 307}, // 193 CooperativeVectorNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11841, 28), 318}, // 194 CooperativeVectorTrainingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(5471, 16), 203}, // 195 CoreBuiltinsARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(4737, 13), 164}, // 196 CullDistance in SPV_OPERAND_TYPE_CAPABILITY - {IR(13272, 21), 378}, // 197 DebugInfoModuleINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11440, 25), 301}, // 198 DemoteToHelperInvocation in SPV_OPERAND_TYPE_CAPABILITY - {IR(11465, 28), 301}, // 199 DemoteToHelperInvocationEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9485, 18), 234}, // 200 DenormFlushToZero in SPV_OPERAND_TYPE_CAPABILITY - {IR(9470, 15), 233}, // 201 DenormPreserve in SPV_OPERAND_TYPE_CAPABILITY - {IR(8436, 18), 182}, // 202 DerivativeControl in SPV_OPERAND_TYPE_CAPABILITY - {IR(7960, 14), 151}, // 203 DeviceEnqueue in SPV_OPERAND_TYPE_CAPABILITY - {IR(5831, 12), 224}, // 204 DeviceGroup in SPV_OPERAND_TYPE_CAPABILITY - {IR(11493, 23), 302}, // 205 DisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13063, 11), 366}, // 206 DotProduct in SPV_OPERAND_TYPE_CAPABILITY - {IR(12957, 22), 364}, // 207 DotProductInput4x8Bit in SPV_OPERAND_TYPE_CAPABILITY - {IR(12979, 25), 364}, // 208 DotProductInput4x8BitKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13004, 28), 365}, // 209 DotProductInput4x8BitPacked in SPV_OPERAND_TYPE_CAPABILITY - {IR(13032, 31), 365}, // 210 DotProductInput4x8BitPackedKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12916, 19), 363}, // 211 DotProductInputAll in SPV_OPERAND_TYPE_CAPABILITY - {IR(12935, 22), 363}, // 212 DotProductInputAllKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13074, 14), 366}, // 213 DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(5734, 15), 215}, // 214 DrawParameters in SPV_OPERAND_TYPE_CAPABILITY - {IR(12218, 16), 336}, // 215 ExpectAssumeKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12421, 20), 343}, // 216 FPFastMathModeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13469, 28), 387}, // 217 FPGAArgumentInterfacesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12761, 24), 356}, // 218 FPGABufferLocationINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12634, 27), 351}, // 219 FPGAClusterAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13354, 29), 382}, // 220 FPGAClusterAttributesV2INTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12675, 20), 353}, // 221 FPGADSPControlINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12721, 40), 355}, // 222 FPGAInvocationPipeliningAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12584, 26), 349}, // 223 FPGAKernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13383, 28), 383}, // 224 FPGAKernelAttributesv2INTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13445, 24), 386}, // 225 FPGALatencyControlINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12540, 22), 347}, // 226 FPGALoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12610, 24), 350}, // 227 FPGAMemoryAccessesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12395, 26), 342}, // 228 FPGAMemoryAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12903, 13), 362}, // 229 FPGARegINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13429, 16), 385}, // 230 FPMaxErrorINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7874, 8), 142}, // 231 Float16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(7860, 14), 141}, // 232 Float16Buffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(9738, 16), 248}, // 233 Float16ImageAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(7882, 8), 143}, // 234 Float64 in SPV_OPERAND_TYPE_CAPABILITY - {IR(8988, 27), 212}, // 235 Float8CooperativeMatrixEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8978, 10), 211}, // 236 Float8EXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(13153, 15), 372}, // 237 FloatControls2 in SPV_OPERAND_TYPE_CAPABILITY - {IR(12014, 23), 326}, // 238 FloatingPointModeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(6575, 23), 272}, // 239 FragmentBarycentricKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(10087, 22), 272}, // 240 FragmentBarycentricNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(6664, 19), 274}, // 241 FragmentDensityEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(6385, 24), 268}, // 242 FragmentFullyCoveredEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9776, 16), 250}, // 243 FragmentMaskAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(11408, 32), 300}, // 244 FragmentShaderPixelInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11337, 33), 297}, // 245 FragmentShaderSampleInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11370, 38), 298}, // 246 FragmentShaderShadingRateInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(5796, 23), 213}, // 247 FragmentShadingRateKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12369, 26), 341}, // 248 FunctionFloatControlINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12060, 22), 328}, // 249 FunctionPointersINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8281, 15), 169}, // 250 GenericPointer in SPV_OPERAND_TYPE_CAPABILITY - {IR(4782, 9), 135}, // 251 Geometry in SPV_OPERAND_TYPE_CAPABILITY - {IR(8031, 18), 156}, // 252 GeometryPointSize in SPV_OPERAND_TYPE_CAPABILITY - {IR(10015, 28), 263}, // 253 GeometryShaderPassthroughNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(8494, 16), 185}, // 254 GeometryStreams in SPV_OPERAND_TYPE_CAPABILITY - {IR(13527, 35), 389}, // 255 GlobalVariableFPGADecorationsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13497, 30), 388}, // 256 GlobalVariableHostAccessINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(5314, 16), 192}, // 257 GroupNonUniform in SPV_OPERAND_TYPE_CAPABILITY - {IR(8633, 26), 194}, // 258 GroupNonUniformArithmetic in SPV_OPERAND_TYPE_CAPABILITY - {IR(5569, 22), 195}, // 259 GroupNonUniformBallot in SPV_OPERAND_TYPE_CAPABILITY - {IR(8713, 25), 198}, // 260 GroupNonUniformClustered in SPV_OPERAND_TYPE_CAPABILITY - {IR(10184, 29), 275}, // 261 GroupNonUniformPartitionedNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(8738, 20), 199}, // 262 GroupNonUniformQuad in SPV_OPERAND_TYPE_CAPABILITY - {IR(13128, 25), 371}, // 263 GroupNonUniformRotateKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(8659, 23), 196}, // 264 GroupNonUniformShuffle in SPV_OPERAND_TYPE_CAPABILITY - {IR(8682, 31), 197}, // 265 GroupNonUniformShuffleRelative in SPV_OPERAND_TYPE_CAPABILITY - {IR(8613, 20), 193}, // 266 GroupNonUniformVote in SPV_OPERAND_TYPE_CAPABILITY - {IR(13739, 26), 396}, // 267 GroupUniformArithmeticKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7953, 7), 150}, // 268 Groups in SPV_OPERAND_TYPE_CAPABILITY - {IR(12871, 13), 360}, // 269 IOPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8350, 8), 175}, // 270 Image1D in SPV_OPERAND_TYPE_CAPABILITY - {IR(7909, 11), 146}, // 271 ImageBasic in SPV_OPERAND_TYPE_CAPABILITY - {IR(8372, 12), 178}, // 272 ImageBuffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(8227, 15), 165}, // 273 ImageCubeArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(10070, 17), 270}, // 274 ImageFootprintNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9754, 22), 249}, // 275 ImageGatherBiasLodAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(8049, 20), 157}, // 276 ImageGatherExtended in SPV_OPERAND_TYPE_CAPABILITY - {IR(8384, 13), 179}, // 277 ImageMSArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(7935, 12), 148}, // 278 ImageMipmap in SPV_OPERAND_TYPE_CAPABILITY - {IR(8425, 11), 181}, // 279 ImageQuery in SPV_OPERAND_TYPE_CAPABILITY - {IR(7920, 15), 147}, // 280 ImageReadWrite in SPV_OPERAND_TYPE_CAPABILITY - {IR(9792, 21), 252}, // 281 ImageReadWriteLodAMD in SPV_OPERAND_TYPE_CAPABILITY - {IR(8259, 10), 167}, // 282 ImageRect in SPV_OPERAND_TYPE_CAPABILITY - {IR(12082, 24), 329}, // 283 IndirectReferencesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8301, 16), 171}, // 284 InputAttachment in SPV_OPERAND_TYPE_CAPABILITY - {IR(10299, 36), 278}, // 285 InputAttachmentArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10335, 39), 278}, // 286 InputAttachmentArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(10840, 39), 285}, // 287 InputAttachmentArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10879, 42), 285}, // 288 InputAttachmentArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8003, 6), 154}, // 289 Int16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9871, 27), 258}, // 290 Int4CooperativeMatrixINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9857, 14), 257}, // 291 Int4TypeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7890, 6), 144}, // 292 Int64 in SPV_OPERAND_TYPE_CAPABILITY - {IR(7896, 13), 145}, // 293 Int64Atomics in SPV_OPERAND_TYPE_CAPABILITY - {IR(9813, 14), 253}, // 294 Int64ImageEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8296, 5), 170}, // 295 Int8 in SPV_OPERAND_TYPE_CAPABILITY - {IR(12037, 23), 327}, // 296 IntegerFunctions2INTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8454, 22), 183}, // 297 InterpolationFunction in SPV_OPERAND_TYPE_CAPABILITY - {IR(4549, 7), 139}, // 298 Kernel in SPV_OPERAND_TYPE_CAPABILITY - {IR(12562, 22), 348}, // 299 KernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7843, 8), 138}, // 300 Linkage in SPV_OPERAND_TYPE_CAPABILITY - {IR(7974, 15), 152}, // 301 LiteralSampler in SPV_OPERAND_TYPE_CAPABILITY - {IR(13208, 20), 375}, // 302 LongCompositesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12661, 14), 352}, // 303 LoopFuseINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13792, 25), 398}, // 304 MaskedGatherScatterINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(7836, 7), 133}, // 305 Matrix in SPV_OPERAND_TYPE_CAPABILITY - {IR(12695, 26), 354}, // 306 MemoryAccessAliasingINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(4845, 15), 271}, // 307 MeshShadingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(4831, 14), 269}, // 308 MeshShadingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(8333, 7), 173}, // 309 MinLod in SPV_OPERAND_TYPE_CAPABILITY - {IR(5853, 10), 225}, // 310 MultiView in SPV_OPERAND_TYPE_CAPABILITY - {IR(4933, 14), 188}, // 311 MultiViewport in SPV_OPERAND_TYPE_CAPABILITY - {IR(8588, 13), 190}, // 312 NamedBarrier in SPV_OPERAND_TYPE_CAPABILITY - {IR(13228, 11), 376}, // 313 OptNoneEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(13239, 13), 376}, // 314 OptNoneINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(6327, 20), 267}, // 315 PerViewAttributesNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4667, 31), 293}, // 316 PhysicalStorageBufferAddresses in SPV_OPERAND_TYPE_CAPABILITY - {IR(11195, 34), 293}, // 317 PhysicalStorageBufferAddressesEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8601, 12), 191}, // 318 PipeStorage in SPV_OPERAND_TYPE_CAPABILITY - {IR(7947, 6), 149}, // 319 Pipes in SPV_OPERAND_TYPE_CAPABILITY - {IR(9842, 15), 256}, // 320 QuadControlKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11656, 18), 310}, // 321 RawAccessChainsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(7821, 15), 367}, // 322 RayCullMaskKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9583, 12), 239}, // 323 RayQueryKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11589, 25), 306}, // 324 RayQueryPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9560, 23), 238}, // 325 RayQueryProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7768, 41), 319}, // 326 RayTracingClusterAccelerationStructureNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(7340, 33), 309}, // 327 RayTracingDisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4817, 14), 242}, // 328 RayTracingKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7522, 39), 312}, // 329 RayTracingLinearSweptSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(7226, 23), 290}, // 330 RayTracingMotionBlurNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4804, 13), 289}, // 331 RayTracingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(11516, 29), 303}, // 332 RayTracingOpacityMicromapEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(7279, 27), 288}, // 333 RayTracingPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11292, 25), 295}, // 334 RayTracingProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(7483, 28), 311}, // 335 RayTracingSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9614, 32), 241}, // 336 RayTraversalPrimitiveCullingKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13836, 20), 400}, // 337 RegisterLimitsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13088, 24), 369}, // 338 ReplicatedCompositesEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11993, 21), 325}, // 339 RoundToInfinityINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9528, 16), 236}, // 340 RoundingModeRTE in SPV_OPERAND_TYPE_CAPABILITY - {IR(9544, 16), 237}, // 341 RoundingModeRTZ in SPV_OPERAND_TYPE_CAPABILITY - {IR(12842, 29), 359}, // 342 RuntimeAlignedAttributeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(10250, 23), 277}, // 343 RuntimeDescriptorArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(10273, 26), 277}, // 344 RuntimeDescriptorArrayEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9986, 29), 262}, // 345 SampleMaskOverrideCoverageNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9363, 28), 229}, // 346 SampleMaskPostDepthCoverage in SPV_OPERAND_TYPE_CAPABILITY - {IR(5063, 18), 166}, // 347 SampleRateShading in SPV_OPERAND_TYPE_CAPABILITY - {IR(8340, 10), 174}, // 348 Sampled1D in SPV_OPERAND_TYPE_CAPABILITY - {IR(8358, 14), 177}, // 349 SampledBuffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(8242, 17), 176}, // 350 SampledCubeArray in SPV_OPERAND_TYPE_CAPABILITY - {IR(8127, 33), 160}, // 351 SampledImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10613, 36), 282}, // 352 SampledImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10649, 39), 282}, // 353 SampledImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8269, 12), 168}, // 354 SampledRect in SPV_OPERAND_TYPE_CAPABILITY - {IR(4707, 7), 134}, // 355 Shader in SPV_OPERAND_TYPE_CAPABILITY - {IR(9827, 15), 254}, // 356 ShaderClockKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(6176, 18), 255}, // 357 ShaderEnqueueAMDX in SPV_OPERAND_TYPE_CAPABILITY - {IR(11545, 26), 304}, // 358 ShaderInvocationReorderNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4879, 12), 200}, // 359 ShaderLayer in SPV_OPERAND_TYPE_CAPABILITY - {IR(10213, 17), 276}, // 360 ShaderNonUniform in SPV_OPERAND_TYPE_CAPABILITY - {IR(10230, 20), 276}, // 361 ShaderNonUniformEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(7594, 19), 299}, // 362 ShaderSMBuiltinsNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(6266, 19), 266}, // 363 ShaderStereoViewNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(4947, 20), 201}, // 364 ShaderViewportIndex in SPV_OPERAND_TYPE_CAPABILITY - {IR(4891, 28), 264}, // 365 ShaderViewportIndexLayerEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(10043, 27), 264}, // 366 ShaderViewportIndexLayerNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(6225, 21), 265}, // 367 ShaderViewportMaskNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(10170, 14), 274}, // 368 ShadingRateNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(9503, 25), 235}, // 369 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_CAPABILITY - {IR(8317, 16), 172}, // 370 SparseResidency in SPV_OPERAND_TYPE_CAPABILITY - {IR(13317, 18), 380}, // 371 SplitBarrierINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(6130, 17), 251}, // 372 StencilExportEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9151, 25), 220}, // 373 StorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(9391, 24), 230}, // 374 StorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(8160, 34), 161}, // 375 StorageBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10688, 37), 283}, // 376 StorageBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10725, 40), 283}, // 377 StorageBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8194, 33), 162}, // 378 StorageImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10765, 36), 284}, // 379 StorageImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10801, 39), 284}, // 380 StorageImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8397, 28), 180}, // 381 StorageImageExtendedFormats in SPV_OPERAND_TYPE_CAPABILITY - {IR(8069, 24), 158}, // 382 StorageImageMultisample in SPV_OPERAND_TYPE_CAPABILITY - {IR(8510, 30), 186}, // 383 StorageImageReadWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY - {IR(8540, 31), 187}, // 384 StorageImageWriteWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY - {IR(9278, 21), 223}, // 385 StorageInputOutput16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9256, 22), 222}, // 386 StoragePushConstant16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9449, 21), 232}, // 387 StoragePushConstant8 in SPV_OPERAND_TYPE_CAPABILITY - {IR(8873, 37), 208}, // 388 StorageTensorArrayDynamicIndexingARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(8910, 40), 209}, // 389 StorageTensorArrayNonUniformIndexingARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(10455, 39), 280}, // 390 StorageTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10494, 42), 280}, // 391 StorageTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(11008, 42), 287}, // 392 StorageTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(11050, 45), 287}, // 393 StorageTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(9239, 17), 221}, // 394 StorageUniform16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(9176, 28), 220}, // 395 StorageUniformBufferBlock16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(13590, 23), 391}, // 396 Subgroup2DBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13613, 30), 392}, // 397 Subgroup2DBlockTransformINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13643, 30), 393}, // 398 Subgroup2DBlockTransposeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12305, 39), 339}, // 399 SubgroupAvcMotionEstimationChromaINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12234, 33), 337}, // 400 SubgroupAvcMotionEstimationINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12267, 38), 338}, // 401 SubgroupAvcMotionEstimationIntraINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(5330, 18), 214}, // 402 SubgroupBallotKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11909, 27), 322}, // 403 SubgroupBufferBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13562, 28), 390}, // 404 SubgroupBufferPrefetchINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8571, 17), 189}, // 405 SubgroupDispatch in SPV_OPERAND_TYPE_CAPABILITY - {IR(11936, 26), 323}, // 406 SubgroupImageBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11962, 31), 324}, // 407 SubgroupImageMediaBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(13673, 38), 394}, // 408 SubgroupMatrixMultiplyAccumulateINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11888, 21), 321}, // 409 SubgroupShuffleINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9135, 16), 219}, // 410 SubgroupVoteKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13411, 18), 384}, // 411 TaskSequenceINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11869, 19), 320}, // 412 TensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY - {IR(13765, 27), 397}, // 413 TensorFloat32RoundingINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(8862, 11), 207}, // 414 TensorsARM in SPV_OPERAND_TYPE_CAPABILITY - {IR(13711, 28), 395}, // 415 TernaryBitwiseFunctionINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(4791, 13), 136}, // 416 Tessellation in SPV_OPERAND_TYPE_CAPABILITY - {IR(8009, 22), 155}, // 417 TessellationPointSize in SPV_OPERAND_TYPE_CAPABILITY - {IR(9715, 23), 247}, // 418 TextureBlockMatch2QCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9693, 22), 245}, // 419 TextureBlockMatchQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9672, 21), 244}, // 420 TextureBoxFilterQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(9646, 26), 243}, // 421 TextureSampleWeightedQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(8776, 28), 204}, // 422 TileImageColorReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8804, 28), 205}, // 423 TileImageDepthReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8832, 30), 206}, // 424 TileImageStencilReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(5893, 16), 246}, // 425 TileShadingQCOM in SPV_OPERAND_TYPE_CAPABILITY - {IR(8476, 18), 184}, // 426 TransformFeedback in SPV_OPERAND_TYPE_CAPABILITY - {IR(12819, 23), 358}, // 427 USMStorageClassesINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9204, 35), 221}, // 428 UniformAndStorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(9415, 34), 231}, // 429 UniformAndStorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY - {IR(8093, 34), 159}, // 430 UniformBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10536, 37), 281}, // 431 UniformBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10573, 40), 281}, // 432 UniformBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(8758, 18), 202}, // 433 UniformDecoration in SPV_OPERAND_TYPE_CAPABILITY - {IR(10374, 39), 279}, // 434 UniformTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10413, 42), 279}, // 435 UniformTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(10921, 42), 286}, // 436 UniformTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY - {IR(10963, 45), 286}, // 437 UniformTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY - {IR(12510, 30), 346}, // 438 UnstructuredLoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9595, 19), 240}, // 439 UntypedPointersKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(12344, 25), 340}, // 440 VariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(9329, 17), 227}, // 441 VariablePointers in SPV_OPERAND_TYPE_CAPABILITY - {IR(9299, 30), 226}, // 442 VariablePointersStorageBuffer in SPV_OPERAND_TYPE_CAPABILITY - {IR(7851, 9), 140}, // 443 Vector16 in SPV_OPERAND_TYPE_CAPABILITY - {IR(12203, 15), 335}, // 444 VectorAnyINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(12184, 19), 334}, // 445 VectorComputeINTEL in SPV_OPERAND_TYPE_CAPABILITY - {IR(11095, 18), 291}, // 446 VulkanMemoryModel in SPV_OPERAND_TYPE_CAPABILITY - {IR(11134, 29), 292}, // 447 VulkanMemoryModelDeviceScope in SPV_OPERAND_TYPE_CAPABILITY - {IR(11163, 32), 292}, // 448 VulkanMemoryModelDeviceScopeKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(11113, 21), 291}, // 449 VulkanMemoryModelKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9091, 44), 218}, // 450 WorkgroupMemoryExplicitLayout16BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9048, 43), 217}, // 451 WorkgroupMemoryExplicitLayout8BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(9015, 33), 216}, // 452 WorkgroupMemoryExplicitLayoutKHR in SPV_OPERAND_TYPE_CAPABILITY - {IR(13888, 8), 403}, // 453 Address in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13896, 8), 404}, // 454 Boolean in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13904, 6), 405}, // 455 Float in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13910, 7), 406}, // 456 Signed in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13917, 11), 407}, // 457 SignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13928, 9), 408}, // 458 Unsigned in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13937, 13), 409}, // 459 UnsignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13876, 12), 402}, // 460 Unspecified in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13950, 6), 410}, // 461 Class in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(13956, 10), 411}, // 462 Structure in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(13966, 6), 412}, // 463 Union in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(13987, 20), 414}, // 464 ImportedDeclaration in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(13972, 15), 413}, // 465 ImportedModule in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(14096, 15), 422}, // 466 FlagArtificial in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14111, 13), 423}, // 467 FlagExplicit in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14084, 12), 421}, // 468 FlagFwdDecl in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14174, 21), 427}, // 469 FlagIndirectVariable in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14067, 17), 420}, // 470 FlagIsDefinition in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14251, 16), 431}, // 471 FlagIsEnumClass in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14055, 12), 419}, // 472 FlagIsLocal in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14235, 16), 430}, // 473 FlagIsOptimized in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14028, 14), 417}, // 474 FlagIsPrivate in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14012, 16), 416}, // 475 FlagIsProtected in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14042, 13), 418}, // 476 FlagIsPublic in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14195, 20), 428}, // 477 FlagLValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14139, 18), 425}, // 478 FlagObjectPointer in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14124, 15), 424}, // 479 FlagPrototyped in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14215, 20), 429}, // 480 FlagRValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14157, 17), 426}, // 481 FlagStaticMember in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14287, 24), 433}, // 482 FlagTypePassByReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14267, 20), 432}, // 483 FlagTypePassByValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14007, 5), 415}, // 484 None in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS - {IR(14372, 9), 438}, // 485 BitPiece in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14404, 7), 442}, // 486 Constu in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14311, 6), 434}, // 487 Deref in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14411, 9), 443}, // 488 Fragment in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14322, 6), 436}, // 489 Minus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14317, 5), 435}, // 490 Plus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14361, 11), 437}, // 491 PlusUconst in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14393, 11), 441}, // 492 StackValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14381, 5), 439}, // 493 Swap in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14386, 7), 440}, // 494 Xderef in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION - {IR(14456, 11), 447}, // 495 AtomicType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14420, 10), 444}, // 496 ConstType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14443, 13), 446}, // 497 RestrictType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14430, 13), 445}, // 498 VolatileType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14467, 10), 448}, // 499 Float16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14477, 10), 449}, // 500 Float32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14487, 10), 450}, // 501 Float64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14655, 12), 461}, // 502 FloatE4M3NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14667, 12), 462}, // 503 FloatE5M2NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14510, 14), 452}, // 504 SignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14524, 14), 453}, // 505 SignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14538, 14), 454}, // 506 SignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14497, 13), 451}, // 507 SignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14615, 19), 459}, // 508 SignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14567, 16), 456}, // 509 UnsignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14583, 16), 457}, // 510 UnsignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14599, 16), 458}, // 511 UnsignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14552, 15), 455}, // 512 UnsignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14634, 21), 460}, // 513 UnsignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE - {IR(14731, 28), 466}, // 514 ColumnBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14691, 15), 464}, // 515 ColumnMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14706, 25), 465}, // 516 RowBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14679, 12), 463}, // 517 RowMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT - {IR(14767, 27), 468}, // 518 MatrixASignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14794, 27), 469}, // 519 MatrixBSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14821, 27), 470}, // 520 MatrixCSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14848, 32), 471}, // 521 MatrixResultSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14759, 8), 467}, // 522 NoneKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14880, 26), 472}, // 523 SaturatingAccumulationKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS - {IR(14917, 4), 475}, // 524 2x2 in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {IR(14910, 7), 474}, // 525 Column in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {IR(14906, 4), 473}, // 526 Row in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE - {IR(14921, 11), 476}, // 527 MatrixAKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {IR(14943, 21), 478}, // 528 MatrixAccumulatorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {IR(14932, 11), 477}, // 529 MatrixBKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE - {IR(14975, 14), 480}, // 530 ColumnMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(14989, 21), 481}, // 531 InferencingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(14964, 11), 479}, // 532 RowMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(15010, 18), 482}, // 533 TrainingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT - {IR(13888, 8), 484}, // 534 Address in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13896, 8), 485}, // 535 Boolean in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13904, 6), 486}, // 536 Float in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13910, 7), 487}, // 537 Signed in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13917, 11), 488}, // 538 SignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13928, 9), 489}, // 539 Unsigned in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13937, 13), 490}, // 540 UnsignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13876, 12), 483}, // 541 Unspecified in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13950, 6), 491}, // 542 Class in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {IR(13956, 10), 492}, // 543 Structure in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {IR(13966, 6), 493}, // 544 Union in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE - {IR(14096, 15), 501}, // 545 FlagArtificial in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14111, 13), 502}, // 546 FlagExplicit in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14084, 12), 500}, // 547 FlagFwdDecl in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14174, 21), 506}, // 548 FlagIndirectVariable in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14067, 17), 499}, // 549 FlagIsDefinition in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14055, 12), 498}, // 550 FlagIsLocal in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14235, 16), 509}, // 551 FlagIsOptimized in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14028, 14), 496}, // 552 FlagIsPrivate in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14012, 16), 495}, // 553 FlagIsProtected in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14042, 13), 497}, // 554 FlagIsPublic in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14195, 20), 507}, // 555 FlagLValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14139, 18), 504}, // 556 FlagObjectPointer in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14124, 15), 503}, // 557 FlagPrototyped in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14215, 20), 508}, // 558 FlagRValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14157, 17), 505}, // 559 FlagStaticMember in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14007, 5), 494}, // 560 None in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS - {IR(14372, 9), 514}, // 561 BitPiece in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14404, 7), 518}, // 562 Constu in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14311, 6), 510}, // 563 Deref in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14322, 6), 512}, // 564 Minus in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14317, 5), 511}, // 565 Plus in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14361, 11), 513}, // 566 PlusUconst in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14393, 11), 517}, // 567 StackValue in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14381, 5), 515}, // 568 Swap in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14386, 7), 516}, // 569 Xderef in SPV_OPERAND_TYPE_DEBUG_OPERATION - {IR(14420, 10), 519}, // 570 ConstType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {IR(14443, 13), 521}, // 571 RestrictType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {IR(14430, 13), 520}, // 572 VolatileType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER - {IR(17252, 16), 636}, // 573 AliasScopeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15237, 8), 541}, // 574 Aliased in SPV_OPERAND_TYPE_DECORATION - {IR(16355, 15), 594}, // 575 AliasedPointer in SPV_OPERAND_TYPE_DECORATION - {IR(16370, 18), 594}, // 576 AliasedPointerEXT in SPV_OPERAND_TYPE_DECORATION - {IR(15715, 10), 565}, // 577 Alignment in SPV_OPERAND_TYPE_DECORATION - {IR(15759, 12), 567}, // 578 AlignmentId in SPV_OPERAND_TYPE_DECORATION - {IR(15088, 12), 528}, // 579 ArrayStride in SPV_OPERAND_TYPE_DECORATION - {IR(17033, 14), 624}, // 580 BankBitsINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16872, 15), 617}, // 581 BankwidthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15392, 8), 554}, // 582 Binding in SPV_OPERAND_TYPE_DECORATION - {IR(16436, 16), 597}, // 583 BindlessImageNV in SPV_OPERAND_TYPE_DECORATION - {IR(16418, 18), 596}, // 584 BindlessSamplerNV in SPV_OPERAND_TYPE_DECORATION - {IR(15052, 6), 524}, // 585 Block in SPV_OPERAND_TYPE_DECORATION - {IR(15899, 22), 574}, // 586 BlockMatchSamplerQCOM in SPV_OPERAND_TYPE_DECORATION - {IR(15877, 22), 573}, // 587 BlockMatchTextureQCOM in SPV_OPERAND_TYPE_DECORATION - {IR(16467, 13), 599}, // 588 BoundImageNV in SPV_OPERAND_TYPE_DECORATION - {IR(16452, 15), 598}, // 589 BoundSamplerNV in SPV_OPERAND_TYPE_DECORATION - {IR(15058, 12), 525}, // 590 BufferBlock in SPV_OPERAND_TYPE_DECORATION - {IR(17345, 20), 641}, // 591 BufferLocationINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15169, 8), 533}, // 592 BuiltIn in SPV_OPERAND_TYPE_DECORATION - {IR(17115, 19), 629}, // 593 BurstCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15135, 8), 532}, // 594 CPacked in SPV_OPERAND_TYPE_DECORATION - {IR(18138, 22), 663}, // 595 CacheControlLoadINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18197, 23), 664}, // 596 CacheControlStoreINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17134, 15), 630}, // 597 CacheSizeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15202, 9), 537}, // 598 Centroid in SPV_OPERAND_TYPE_DECORATION - {IR(16520, 13), 602}, // 599 ClobberINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15263, 9), 544}, // 600 Coherent in SPV_OPERAND_TYPE_DECORATION - {IR(15079, 9), 527}, // 601 ColMajor in SPV_OPERAND_TYPE_DECORATION - {IR(15376, 10), 552}, // 602 Component in SPV_OPERAND_TYPE_DECORATION - {IR(17654, 27), 651}, // 603 ConduitKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15254, 9), 543}, // 604 Constant in SPV_OPERAND_TYPE_DECORATION - {IR(16666, 14), 609}, // 605 CounterBuffer in SPV_OPERAND_TYPE_DECORATION - {IR(15400, 14), 555}, // 606 DescriptorSet in SPV_OPERAND_TYPE_DECORATION - {IR(17149, 28), 631}, // 607 DontStaticallyCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16925, 16), 620}, // 608 DoublepumpINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15921, 18), 575}, // 609 ExplicitInterpAMD in SPV_OPERAND_TYPE_DECORATION - {IR(15585, 15), 561}, // 610 FPFastMathMode in SPV_OPERAND_TYPE_DECORATION - {IR(17573, 26), 648}, // 611 FPMaxErrorDecorationINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15535, 15), 560}, // 612 FPRoundingMode in SPV_OPERAND_TYPE_DECORATION - {IR(15191, 5), 535}, // 613 Flat in SPV_OPERAND_TYPE_DECORATION - {IR(17047, 20), 625}, // 614 ForcePow2DepthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15487, 14), 559}, // 615 FuncParamAttr in SPV_OPERAND_TYPE_DECORATION - {IR(16577, 21), 605}, // 616 FuncParamIOKindINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16808, 24), 613}, // 617 FunctionDenormModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17418, 31), 643}, // 618 FunctionFloatingPointModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16751, 26), 612}, // 619 FunctionRoundingModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17208, 25), 634}, // 620 FuseLoopsInFunctionINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15124, 11), 531}, // 621 GLSLPacked in SPV_OPERAND_TYPE_DECORATION - {IR(15113, 11), 530}, // 622 GLSLShared in SPV_OPERAND_TYPE_DECORATION - {IR(16640, 26), 608}, // 623 GlobalVariableOffsetINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16388, 30), 595}, // 624 HitObjectShaderRecordBufferNV in SPV_OPERAND_TYPE_DECORATION - {IR(16680, 24), 609}, // 625 HlslCounterBufferGOOGLE in SPV_OPERAND_TYPE_DECORATION - {IR(16717, 19), 610}, // 626 HlslSemanticGOOGLE in SPV_OPERAND_TYPE_DECORATION - {IR(17997, 16), 660}, // 627 HostAccessINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17365, 19), 642}, // 628 IOPipeStorageINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(18074, 28), 662}, // 629 ImplementInRegisterMapINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15386, 6), 553}, // 630 Index in SPV_OPERAND_TYPE_DECORATION - {IR(18060, 14), 661}, // 631 InitModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17281, 24), 638}, // 632 InitiationIntervalINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15694, 21), 564}, // 633 InputAttachmentIndex in SPV_OPERAND_TYPE_DECORATION - {IR(15218, 10), 539}, // 634 Invariant in SPV_OPERAND_TYPE_DECORATION - {IR(17624, 30), 650}, // 635 LatencyControlConstraintINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17599, 25), 649}, // 636 LatencyControlLabelINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15662, 18), 562}, // 637 LinkageAttributes in SPV_OPERAND_TYPE_DECORATION - {IR(15367, 9), 551}, // 638 Location in SPV_OPERAND_TYPE_DECORATION - {IR(17712, 33), 653}, // 639 MMHostInterfaceAddressWidthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17745, 30), 654}, // 640 MMHostInterfaceDataWidthINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17775, 28), 655}, // 641 MMHostInterfaceLatencyINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17871, 29), 657}, // 642 MMHostInterfaceMaxBurstINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17837, 34), 656}, // 643 MMHostInterfaceReadWriteModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17900, 32), 658}, // 644 MMHostInterfaceWaitRequestINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17233, 19), 635}, // 645 MathOpDSPModeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15100, 13), 529}, // 646 MatrixStride in SPV_OPERAND_TYPE_DECORATION - {IR(15725, 14), 566}, // 647 MaxByteOffset in SPV_OPERAND_TYPE_DECORATION - {IR(15771, 16), 568}, // 648 MaxByteOffsetId in SPV_OPERAND_TYPE_DECORATION - {IR(17305, 20), 639}, // 649 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16887, 22), 618}, // 650 MaxPrivateCopiesINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16941, 19), 621}, // 651 MaxReplicatesINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17509, 18), 646}, // 652 MediaBlockIOINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16846, 12), 615}, // 653 MemoryINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16980, 11), 623}, // 654 MergeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17268, 13), 637}, // 655 NoAliasINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15680, 14), 563}, // 656 NoContraction in SPV_OPERAND_TYPE_DECORATION - {IR(15177, 14), 534}, // 657 NoPerspective in SPV_OPERAND_TYPE_DECORATION - {IR(15831, 13), 570}, // 658 NoSignedWrap in SPV_OPERAND_TYPE_DECORATION - {IR(15844, 15), 571}, // 659 NoUnsignedWrap in SPV_OPERAND_TYPE_DECORATION - {IR(15971, 20), 577}, // 660 NodeMaxPayloadsAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(15939, 32), 576}, // 661 NodeSharesPayloadLimitsWithAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(15284, 12), 546}, // 662 NonReadable in SPV_OPERAND_TYPE_DECORATION - {IR(16295, 11), 592}, // 663 NonUniform in SPV_OPERAND_TYPE_DECORATION - {IR(16306, 14), 592}, // 664 NonUniformEXT in SPV_OPERAND_TYPE_DECORATION - {IR(15272, 12), 545}, // 665 NonWritable in SPV_OPERAND_TYPE_DECORATION - {IR(16858, 14), 616}, // 666 NumbanksINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15414, 7), 556}, // 667 Offset in SPV_OPERAND_TYPE_DECORATION - {IR(16139, 19), 584}, // 668 OverrideCoverageNV in SPV_OPERAND_TYPE_DECORATION - {IR(16158, 14), 585}, // 669 PassthroughNV in SPV_OPERAND_TYPE_DECORATION - {IR(15196, 6), 536}, // 670 Patch in SPV_OPERAND_TYPE_DECORATION - {IR(16111, 28), 583}, // 671 PayloadDispatchIndirectAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16086, 25), 582}, // 672 PayloadNodeArraySizeAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16034, 25), 580}, // 673 PayloadNodeBaseIndexAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16014, 20), 579}, // 674 PayloadNodeNameAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16059, 27), 581}, // 675 PayloadNodeSparseArrayAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(16219, 16), 588}, // 676 PerPrimitiveEXT in SPV_OPERAND_TYPE_DECORATION - {IR(16235, 15), 588}, // 677 PerPrimitiveNV in SPV_OPERAND_TYPE_DECORATION - {IR(16260, 10), 590}, // 678 PerTaskNV in SPV_OPERAND_TYPE_DECORATION - {IR(16270, 13), 591}, // 679 PerVertexKHR in SPV_OPERAND_TYPE_DECORATION - {IR(16283, 12), 591}, // 680 PerVertexNV in SPV_OPERAND_TYPE_DECORATION - {IR(16250, 10), 589}, // 681 PerViewNV in SPV_OPERAND_TYPE_DECORATION - {IR(17325, 20), 640}, // 682 PipelineEnableINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17177, 14), 632}, // 683 PrefetchINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16494, 26), 601}, // 684 ReferencedIndirectlyINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16832, 14), 614}, // 685 RegisterINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17681, 31), 652}, // 686 RegisterMapKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15028, 17), 522}, // 687 RelaxedPrecision in SPV_OPERAND_TYPE_DECORATION - {IR(15228, 9), 540}, // 688 Restrict in SPV_OPERAND_TYPE_DECORATION - {IR(16320, 16), 593}, // 689 RestrictPointer in SPV_OPERAND_TYPE_DECORATION - {IR(16336, 19), 593}, // 690 RestrictPointerEXT in SPV_OPERAND_TYPE_DECORATION - {IR(15070, 9), 526}, // 691 RowMajor in SPV_OPERAND_TYPE_DECORATION - {IR(16480, 14), 600}, // 692 SIMTCallINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15211, 7), 538}, // 693 Sample in SPV_OPERAND_TYPE_DECORATION - {IR(15340, 20), 549}, // 694 SaturatedConversion in SPV_OPERAND_TYPE_DECORATION - {IR(15787, 44), 569}, // 695 SaturatedToLargestFloat8NormalConversionEXT in SPV_OPERAND_TYPE_DECORATION - {IR(16191, 28), 587}, // 696 SecondaryViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION - {IR(16533, 17), 603}, // 697 SideEffectsINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16960, 20), 622}, // 698 SimpleDualPortINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17449, 25), 644}, // 699 SingleElementVectorINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16909, 16), 619}, // 700 SinglepumpINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15045, 7), 523}, // 701 SpecId in SPV_OPERAND_TYPE_DECORATION - {IR(17932, 26), 659}, // 702 StableKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16625, 15), 607}, // 703 StackCallINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17191, 17), 633}, // 704 StallEnableINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(17527, 15), 647}, // 705 StallFreeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15360, 7), 550}, // 706 Stream in SPV_OPERAND_TYPE_DECORATION - {IR(17067, 16), 626}, // 707 StridesizeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15991, 23), 578}, // 708 TrackFinishWritingAMDX in SPV_OPERAND_TYPE_DECORATION - {IR(17097, 18), 628}, // 709 TrueDualPortINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15296, 8), 547}, // 710 Uniform in SPV_OPERAND_TYPE_DECORATION - {IR(15330, 10), 548}, // 711 UniformId in SPV_OPERAND_TYPE_DECORATION - {IR(16704, 13), 610}, // 712 UserSemantic in SPV_OPERAND_TYPE_DECORATION - {IR(16736, 15), 611}, // 713 UserTypeGOOGLE in SPV_OPERAND_TYPE_DECORATION - {IR(17474, 35), 645}, // 714 VectorComputeCallableFunctionINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16598, 27), 606}, // 715 VectorComputeFunctionINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16550, 27), 604}, // 716 VectorComputeVariableINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(16172, 19), 586}, // 717 ViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION - {IR(15245, 9), 542}, // 718 Volatile in SPV_OPERAND_TYPE_DECORATION - {IR(15859, 18), 572}, // 719 WeightTextureQCOM in SPV_OPERAND_TYPE_DECORATION - {IR(17083, 14), 627}, // 720 WordsizeINTEL in SPV_OPERAND_TYPE_DECORATION - {IR(15421, 10), 557}, // 721 XfbBuffer in SPV_OPERAND_TYPE_DECORATION - {IR(15431, 10), 558}, // 722 XfbStride in SPV_OPERAND_TYPE_DECORATION - {IR(18220, 3), 665}, // 723 1D in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18223, 3), 666}, // 724 2D in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18226, 3), 667}, // 725 3D in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18239, 7), 670}, // 726 Buffer in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18229, 5), 668}, // 727 Cube in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18234, 5), 669}, // 728 Rect in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18246, 12), 671}, // 729 SubpassData in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(18258, 17), 672}, // 730 TileImageDataEXT in SPV_OPERAND_TYPE_DIMENSIONALITY - {IR(19070, 15), 725}, // 731 CoalescingAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18701, 15), 703}, // 732 ContractionOff in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9485, 18), 717}, // 733 DenormFlushToZero in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9470, 15), 716}, // 734 DenormPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18471, 13), 686}, // 735 DepthGreater in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18484, 10), 687}, // 736 DepthLess in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18456, 15), 685}, // 737 DepthReplacing in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18494, 15), 688}, // 738 DepthUnchanged in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19491, 25), 743}, // 739 DerivativeGroupLinearKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19516, 24), 743}, // 740 DerivativeGroupLinearNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19444, 24), 742}, // 741 DerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19468, 23), 742}, // 742 DerivativeGroupQuadsNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19018, 29), 723}, // 743 EarlyAndLateFragmentTestsAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18423, 19), 682}, // 744 EarlyFragmentTests in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20001, 18), 762}, // 745 FPFastMathDefault in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18728, 10), 705}, // 746 Finalizer in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19816, 26), 754}, // 747 FloatingPointModeALTINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19842, 27), 755}, // 748 FloatingPointModeIEEEINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18716, 12), 704}, // 749 Initializer in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18545, 11), 692}, // 750 InputLines in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18556, 20), 693}, // 751 InputLinesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18533, 12), 691}, // 752 InputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18586, 24), 695}, // 753 InputTrianglesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18275, 12), 673}, // 754 Invocations in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19085, 15), 726}, // 755 IsApiEntryAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18616, 9), 697}, // 756 Isolines in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18509, 10), 689}, // 757 LocalSize in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18519, 14), 690}, // 758 LocalSizeHint in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18796, 16), 710}, // 759 LocalSizeHintId in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18784, 12), 709}, // 760 LocalSizeId in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19100, 21), 727}, // 761 MaxNodeRecursionAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19145, 21), 730}, // 762 MaxNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19891, 16), 757}, // 763 MaxWorkDimINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19869, 22), 756}, // 764 MaxWorkgroupSizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19977, 24), 761}, // 765 MaximallyReconvergesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20092, 22), 766}, // 766 MaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20114, 24), 767}, // 767 MaximumRegistersIdINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20069, 23), 765}, // 768 NamedBarrierCountINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20189, 27), 768}, // 769 NamedMaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19907, 20), 758}, // 770 NoGlobalOffsetINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18812, 34), 711}, // 771 NonCoherentColorAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18846, 34), 712}, // 772 NonCoherentDepthAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18880, 36), 713}, // 773 NonCoherentStencilAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18964, 34), 721}, // 774 NonCoherentTileAttachmentReadQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19927, 22), 759}, // 775 NumSIMDWorkitemsINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18407, 16), 681}, // 776 OriginLowerLeft in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18391, 16), 680}, // 777 OriginUpperLeft in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18653, 16), 700}, // 778 OutputLineStrip in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19376, 15), 740}, // 779 OutputLinesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19391, 14), 740}, // 780 OutputLinesNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18640, 13), 699}, // 781 OutputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19405, 20), 741}, // 782 OutputPrimitivesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19425, 19), 741}, // 783 OutputPrimitivesNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18669, 20), 701}, // 784 OutputTriangleStrip in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19540, 19), 744}, // 785 OutputTrianglesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19559, 18), 744}, // 786 OutputTrianglesNV in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18625, 15), 698}, // 787 OutputVertices in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18372, 19), 679}, // 788 PixelCenterInteger in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19577, 25), 745}, // 789 PixelInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19602, 27), 746}, // 790 PixelInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18442, 10), 683}, // 791 PointMode in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18946, 18), 715}, // 792 PostDepthCoverage in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19317, 19), 737}, // 793 QuadDerivativesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18610, 6), 696}, // 794 Quads in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20043, 26), 764}, // 795 RegisterMapInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19336, 20), 738}, // 796 RequireFullQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9528, 16), 719}, // 797 RoundingModeRTE in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19795, 21), 753}, // 798 RoundingModeRTNINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19774, 21), 752}, // 799 RoundingModeRTPINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9544, 16), 720}, // 800 RoundingModeRTZ in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19629, 26), 747}, // 801 SampleInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19655, 28), 748}, // 802 SampleInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19949, 28), 760}, // 803 SchedulerTargetFmaxMhzINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(6194, 16), 729}, // 804 ShaderIndexAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19683, 31), 749}, // 805 ShadingRateInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19714, 33), 750}, // 806 ShadingRateInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19747, 27), 751}, // 807 SharedLocalMemorySizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19356, 20), 739}, // 808 SharesInputWithAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(9503, 25), 718}, // 809 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18287, 13), 674}, // 810 SpacingEqual in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18300, 22), 675}, // 811 SpacingFractionalEven in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18322, 21), 676}, // 812 SpacingFractionalOdd in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19121, 24), 728}, // 813 StaticNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19270, 25), 735}, // 814 StencilRefGreaterBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19194, 26), 732}, // 815 StencilRefGreaterFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19295, 22), 736}, // 816 StencilRefLessBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19220, 23), 733}, // 817 StencilRefLessFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19047, 23), 724}, // 818 StencilRefReplacingEXT in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19243, 27), 734}, // 819 StencilRefUnchangedBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(19166, 28), 731}, // 820 StencilRefUnchangedFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20019, 24), 763}, // 821 StreamingInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(5301, 13), 706}, // 822 SubgroupSize in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18916, 30), 714}, // 823 SubgroupUniformControlFlowKHR in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18738, 22), 707}, // 824 SubgroupsPerWorkgroup in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18760, 24), 708}, // 825 SubgroupsPerWorkgroupId in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18998, 20), 722}, // 826 TileShadingRateQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18576, 10), 694}, // 827 Triangles in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18689, 12), 702}, // 828 VecTypeHint in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18357, 15), 678}, // 829 VertexOrderCcw in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18343, 14), 677}, // 830 VertexOrderCw in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(18452, 4), 684}, // 831 Xfb in SPV_OPERAND_TYPE_EXECUTION_MODE - {IR(20354, 10), 780}, // 832 AnyHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20364, 9), 780}, // 833 AnyHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20415, 12), 783}, // 834 CallableKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20427, 11), 783}, // 835 CallableNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20373, 14), 781}, // 836 ClosestHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20387, 13), 781}, // 837 ClosestHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(14411, 9), 773}, // 838 Fragment in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20266, 10), 774}, // 839 GLCompute in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(4782, 9), 772}, // 840 Geometry in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20323, 16), 779}, // 841 IntersectionKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20339, 15), 779}, // 842 IntersectionNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(4549, 7), 775}, // 843 Kernel in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20446, 8), 785}, // 844 MeshEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20283, 7), 777}, // 845 MeshNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20400, 8), 782}, // 846 MissKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20408, 7), 782}, // 847 MissNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20290, 17), 778}, // 848 RayGenerationKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20307, 16), 778}, // 849 RayGenerationNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20438, 8), 784}, // 850 TaskEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20276, 7), 776}, // 851 TaskNV in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20223, 20), 770}, // 852 TessellationControl in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20243, 23), 771}, // 853 TessellationEvaluation in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20216, 7), 769}, // 854 Vertex in SPV_OPERAND_TYPE_EXECUTION_MODEL - {IR(20463, 12), 787}, // 855 FlushToZero in SPV_OPERAND_TYPE_FPDENORM_MODE - {IR(20454, 9), 786}, // 856 Preserve in SPV_OPERAND_TYPE_FPDENORM_MODE - {IR(20475, 12), 788}, // 857 BFloat16KHR in SPV_OPERAND_TYPE_FPENCODING - {IR(20487, 14), 789}, // 858 Float8E4M3EXT in SPV_OPERAND_TYPE_FPENCODING - {IR(20501, 14), 790}, // 859 Float8E5M2EXT in SPV_OPERAND_TYPE_FPENCODING - {IR(20520, 4), 792}, // 860 ALT in SPV_OPERAND_TYPE_FPOPERATION_MODE - {IR(20515, 5), 791}, // 861 IEEE in SPV_OPERAND_TYPE_FPOPERATION_MODE - {IR(20558, 14), 799}, // 862 AllowContract in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20572, 23), 799}, // 863 AllowContractFastINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20595, 13), 800}, // 864 AllowReassoc in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20608, 18), 800}, // 865 AllowReassocINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20542, 11), 797}, // 866 AllowRecip in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20626, 15), 801}, // 867 AllowTransform in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20553, 5), 798}, // 868 Fast in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20538, 4), 796}, // 869 NSZ in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(14007, 5), 793}, // 870 None in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20531, 7), 795}, // 871 NotInf in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20524, 7), 794}, // 872 NotNaN in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE - {IR(20641, 4), 802}, // 873 RTE in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20653, 4), 805}, // 874 RTN in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20649, 4), 804}, // 875 RTP in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20645, 4), 803}, // 876 RTZ in SPV_OPERAND_TYPE_FP_ROUNDING_MODE - {IR(20689, 18), 808}, // 877 Horizontal2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20707, 18), 809}, // 878 Horizontal4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20657, 16), 806}, // 879 Vertical2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20673, 16), 807}, // 880 Vertical4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE - {IR(20748, 6), 814}, // 881 Const in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20732, 11), 812}, // 882 DontInline in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20725, 7), 811}, // 883 Inline in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(14007, 5), 810}, // 884 None in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(13228, 11), 815}, // 885 OptNoneEXT in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(13239, 13), 815}, // 886 OptNoneINTEL in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20743, 5), 813}, // 887 Pure in SPV_OPERAND_TYPE_FUNCTION_CONTROL - {IR(20764, 6), 818}, // 888 ByVal in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20775, 8), 820}, // 889 NoAlias in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20783, 10), 821}, // 890 NoCapture in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20801, 12), 823}, // 891 NoReadWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20793, 8), 822}, // 892 NoWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20813, 20), 824}, // 893 RuntimeAlignedINTEL in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20759, 5), 817}, // 894 Sext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20770, 5), 819}, // 895 Sret in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20754, 5), 816}, // 896 Zext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE - {IR(20868, 16), 828}, // 897 ClusteredReduce in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20854, 14), 827}, // 898 ExclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20840, 14), 826}, // 899 InclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20931, 27), 831}, // 900 PartitionedExclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20904, 27), 830}, // 901 PartitionedInclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20884, 20), 829}, // 902 PartitionedReduceNV in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20833, 7), 825}, // 903 Reduce in SPV_OPERAND_TYPE_GROUP_OPERATION - {IR(20958, 10), 832}, // 904 NoneINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(20968, 10), 833}, // 905 ReadINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(20989, 15), 835}, // 906 ReadWriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(20978, 11), 834}, // 907 WriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER - {IR(21004, 5), 837}, // 908 Bias in SPV_OPERAND_TYPE_IMAGE - {IR(21018, 12), 840}, // 909 ConstOffset in SPV_OPERAND_TYPE_IMAGE - {IR(21030, 13), 842}, // 910 ConstOffsets in SPV_OPERAND_TYPE_IMAGE - {IR(21013, 5), 839}, // 911 Grad in SPV_OPERAND_TYPE_IMAGE - {IR(21009, 4), 838}, // 912 Lod in SPV_OPERAND_TYPE_IMAGE - {IR(21043, 19), 845}, // 913 MakeTexelAvailable in SPV_OPERAND_TYPE_IMAGE - {IR(21062, 22), 845}, // 914 MakeTexelAvailableKHR in SPV_OPERAND_TYPE_IMAGE - {IR(21084, 17), 846}, // 915 MakeTexelVisible in SPV_OPERAND_TYPE_IMAGE - {IR(21101, 20), 846}, // 916 MakeTexelVisibleKHR in SPV_OPERAND_TYPE_IMAGE - {IR(8333, 7), 844}, // 917 MinLod in SPV_OPERAND_TYPE_IMAGE - {IR(21121, 16), 847}, // 918 NonPrivateTexel in SPV_OPERAND_TYPE_IMAGE - {IR(21137, 19), 847}, // 919 NonPrivateTexelKHR in SPV_OPERAND_TYPE_IMAGE - {IR(14007, 5), 836}, // 920 None in SPV_OPERAND_TYPE_IMAGE - {IR(21209, 12), 851}, // 921 Nontemporal in SPV_OPERAND_TYPE_IMAGE - {IR(15414, 7), 841}, // 922 Offset in SPV_OPERAND_TYPE_IMAGE - {IR(21221, 8), 852}, // 923 Offsets in SPV_OPERAND_TYPE_IMAGE - {IR(15211, 7), 843}, // 924 Sample in SPV_OPERAND_TYPE_IMAGE - {IR(21187, 11), 849}, // 925 SignExtend in SPV_OPERAND_TYPE_IMAGE - {IR(21156, 14), 848}, // 926 VolatileTexel in SPV_OPERAND_TYPE_IMAGE - {IR(21170, 17), 848}, // 927 VolatileTexelKHR in SPV_OPERAND_TYPE_IMAGE - {IR(21198, 11), 850}, // 928 ZeroExtend in SPV_OPERAND_TYPE_IMAGE - {IR(13904, 6), 867}, // 929 Float in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21390, 10), 866}, // 930 HalfFloat in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21325, 12), 861}, // 931 SignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21337, 12), 862}, // 932 SignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21314, 11), 860}, // 933 SignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21239, 11), 854}, // 934 SnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21229, 10), 853}, // 935 SnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21299, 15), 859}, // 936 UnormInt101010 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21411, 17), 869}, // 937 UnormInt101010_2 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21428, 16), 870}, // 938 UnormInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21561, 16), 877}, // 939 UnormInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21577, 16), 878}, // 940 UnormInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21260, 11), 856}, // 941 UnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21400, 11), 868}, // 942 UnormInt24 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21484, 20), 873}, // 943 UnormInt2_101010EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21250, 10), 855}, // 944 UnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21285, 14), 858}, // 945 UnormShort555 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21271, 14), 857}, // 946 UnormShort565 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21504, 19), 874}, // 947 UnsignedInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21523, 19), 875}, // 948 UnsignedInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21542, 19), 876}, // 949 UnsignedInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21362, 14), 864}, // 950 UnsignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21376, 14), 865}, // 951 UnsignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21349, 13), 863}, // 952 UnsignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21444, 20), 871}, // 953 UnsignedIntRaw10EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21464, 20), 872}, // 954 UnsignedIntRaw12EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE - {IR(21595, 2), 880}, // 955 A in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21696, 5), 898}, // 956 ABGR in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21617, 5), 886}, // 957 ARGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21612, 5), 885}, // 958 BGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21654, 6), 892}, // 959 Depth in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21660, 13), 893}, // 960 DepthStencil in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21622, 10), 887}, // 961 Intensity in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21632, 10), 888}, // 962 Luminance in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21593, 2), 879}, // 963 R in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21600, 3), 882}, // 964 RA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21597, 3), 881}, // 965 RG in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21603, 4), 883}, // 966 RGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21607, 5), 884}, // 967 RGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21649, 5), 891}, // 968 RGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21645, 4), 890}, // 969 RGx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21642, 3), 889}, // 970 Rx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21690, 6), 897}, // 971 sBGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21673, 5), 894}, // 972 sRGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21684, 6), 896}, // 973 sRGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21678, 6), 895}, // 974 sRGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER - {IR(21701, 27), 899}, // 975 InitOnDeviceReprogramINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {IR(21728, 23), 900}, // 976 InitOnDeviceResetINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER - {IR(21751, 7), 901}, // 977 NoWait in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {IR(21758, 11), 902}, // 978 WaitKernel in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {IR(21769, 14), 903}, // 979 WaitWorkGroup in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS - {IR(21783, 12), 905}, // 980 CmdExecTime in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO - {IR(14007, 5), 904}, // 981 None in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO - {IR(21795, 13), 907}, // 982 MayUsePrintf in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS - {IR(14007, 5), 906}, // 983 None in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS - {IR(21808, 7), 908}, // 984 Export in SPV_OPERAND_TYPE_LINKAGE_TYPE - {IR(21815, 7), 909}, // 985 Import in SPV_OPERAND_TYPE_LINKAGE_TYPE - {IR(21822, 12), 910}, // 986 LinkOnceODR in SPV_OPERAND_TYPE_LINKAGE_TYPE - {IR(21848, 12), 912}, // 987 CachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(21900, 17), 915}, // 988 ConstCachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(21875, 25), 914}, // 989 InvalidateAfterReadINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(21860, 15), 913}, // 990 StreamingINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(21834, 14), 911}, // 991 UncachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL - {IR(22040, 21), 928}, // 992 DependencyArrayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21935, 19), 919}, // 993 DependencyInfinite in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21954, 17), 920}, // 994 DependencyLength in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21924, 11), 918}, // 995 DontUnroll in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(17281, 24), 926}, // 996 InitiationIntervalINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21999, 18), 923}, // 997 IterationMultiple in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22061, 18), 930}, // 998 LoopCoalesceINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22140, 15), 934}, // 999 LoopCountINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(17305, 20), 927}, // 1000 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22079, 21), 931}, // 1001 MaxInterleavingINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21985, 14), 922}, // 1002 MaxIterations in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22155, 26), 935}, // 1003 MaxReinvocationDelayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21971, 14), 921}, // 1004 MinIterations in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22126, 14), 933}, // 1005 NoFusionINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(14007, 5), 916}, // 1006 None in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22027, 13), 925}, // 1007 PartialCount in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22017, 10), 924}, // 1008 PeelCount in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(17325, 20), 929}, // 1009 PipelineEnableINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22100, 26), 932}, // 1010 SpeculatedIterationsINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(21917, 7), 917}, // 1011 Unroll in SPV_OPERAND_TYPE_LOOP_CONTROL - {IR(22464, 27), 949}, // 1012 MatrixAPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22412, 26), 947}, // 1013 MatrixAPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22332, 23), 943}, // 1014 MatrixAPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22286, 23), 941}, // 1015 MatrixAPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22181, 29), 937}, // 1016 MatrixASignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22378, 17), 945}, // 1017 MatrixATF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22491, 27), 950}, // 1018 MatrixBPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22438, 26), 948}, // 1019 MatrixBPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22355, 23), 944}, // 1020 MatrixBPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22309, 23), 942}, // 1021 MatrixBPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22210, 29), 938}, // 1022 MatrixBSignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22395, 17), 946}, // 1023 MatrixBTF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22239, 21), 939}, // 1024 MatrixCBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22260, 26), 940}, // 1025 MatrixResultBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(14007, 5), 936}, // 1026 None in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS - {IR(22651, 20), 958}, // 1027 AliasScopeINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22518, 8), 953}, // 1028 Aligned in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22526, 21), 955}, // 1029 MakePointerAvailable in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22547, 24), 955}, // 1030 MakePointerAvailableKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22571, 19), 956}, // 1031 MakePointerVisible in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22590, 22), 956}, // 1032 MakePointerVisibleKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22671, 17), 959}, // 1033 NoAliasINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22612, 18), 957}, // 1034 NonPrivatePointer in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22630, 21), 957}, // 1035 NonPrivatePointerKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(14007, 5), 951}, // 1036 None in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(21209, 12), 954}, // 1037 Nontemporal in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(15245, 9), 952}, // 1038 Volatile in SPV_OPERAND_TYPE_MEMORY_ACCESS - {IR(22695, 8), 961}, // 1039 GLSL450 in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22703, 7), 962}, // 1040 OpenCL in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22688, 7), 960}, // 1041 Simple in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22710, 7), 963}, // 1042 Vulkan in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22717, 10), 963}, // 1043 VulkanKHR in SPV_OPERAND_TYPE_MEMORY_MODEL - {IR(22735, 8), 965}, // 1044 Acquire in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22751, 15), 967}, // 1045 AcquireRelease in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22855, 20), 973}, // 1046 AtomicCounterMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22834, 21), 972}, // 1047 CrossWorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22875, 12), 974}, // 1048 ImageMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22916, 14), 976}, // 1049 MakeAvailable in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22930, 17), 976}, // 1050 MakeAvailableKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22947, 12), 977}, // 1051 MakeVisible in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22959, 15), 977}, // 1052 MakeVisibleKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(14007, 5), 964}, // 1053 None in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22887, 13), 975}, // 1054 OutputMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22900, 16), 975}, // 1055 OutputMemoryKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22727, 8), 964}, // 1056 Relaxed in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22743, 8), 966}, // 1057 Release in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22766, 23), 968}, // 1058 SequentiallyConsistent in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22803, 15), 970}, // 1059 SubgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22789, 14), 969}, // 1060 UniformMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(15245, 9), 978}, // 1061 Volatile in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22818, 16), 971}, // 1062 WorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID - {IR(22974, 10), 979}, // 1063 AutoINTEL in SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS - {IR(22989, 4), 981}, // 1064 SAT in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(23002, 8), 983}, // 1065 SAT_SYM in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(22993, 9), 982}, // 1066 SAT_ZERO in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(22984, 5), 980}, // 1067 WRAP in SPV_OPERAND_TYPE_OVERFLOW_MODES - {IR(23010, 25), 984}, // 1068 PackedVectorFormat4x8Bit in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT - {IR(23035, 28), 984}, // 1069 PackedVectorFormat4x8BitKHR in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT - {IR(23076, 4), 987}, // 1070 RND in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23109, 9), 991}, // 1071 RND_CONV in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23118, 13), 992}, // 1072 RND_CONV_ODD in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23089, 8), 989}, // 1073 RND_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23097, 12), 990}, // 1074 RND_MIN_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23080, 9), 988}, // 1075 RND_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23063, 4), 985}, // 1076 TRN in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(23067, 9), 986}, // 1077 TRN_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES - {IR(14007, 5), 993}, // 1078 None in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {IR(23131, 25), 994}, // 1079 RobustnessPerComponentNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {IR(23156, 23), 995}, // 1080 RobustnessPerElementNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS - {IR(23248, 27), 1001}, // 1081 CullBackFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23275, 28), 1002}, // 1082 CullFrontFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23317, 16), 1004}, // 1083 CullNoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23303, 14), 1003}, // 1084 CullOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23387, 30), 1007}, // 1085 ForceOpacityMicromap2StateEXT in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23189, 12), 998}, // 1086 NoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(14759, 8), 996}, // 1087 NoneKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23179, 10), 997}, // 1088 OpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23374, 13), 1006}, // 1089 SkipAABBsKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23350, 24), 1005}, // 1090 SkipBuiltinPrimitivesNV in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23224, 24), 1000}, // 1091 SkipClosestHitShaderKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23333, 17), 1005}, // 1092 SkipTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23201, 23), 999}, // 1093 TerminateOnFirstHitKHR in SPV_OPERAND_TYPE_RAY_FLAGS - {IR(23458, 37), 1009}, // 1094 RayQueryCandidateIntersectionAABBKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {IR(23417, 41), 1008}, // 1095 RayQueryCandidateIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE - {IR(23573, 42), 1012}, // 1096 RayQueryCommittedIntersectionGeneratedKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {IR(23495, 37), 1010}, // 1097 RayQueryCommittedIntersectionNoneKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {IR(23532, 41), 1011}, // 1098 RayQueryCommittedIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE - {IR(23615, 33), 1013}, // 1099 RayQueryCandidateIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {IR(23648, 33), 1014}, // 1100 RayQueryCommittedIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION - {IR(23693, 6), 1017}, // 1101 Clamp in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23681, 12), 1016}, // 1102 ClampToEdge in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(14007, 5), 1015}, // 1103 None in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23699, 7), 1018}, // 1104 Repeat in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23706, 15), 1019}, // 1105 RepeatMirrored in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE - {IR(23729, 7), 1021}, // 1106 Linear in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE - {IR(23721, 8), 1020}, // 1107 Nearest in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE - {IR(23794, 13), 1030}, // 1108 R11fG11fB10f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23836, 4), 1036}, // 1109 R16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23874, 9), 1041}, // 1110 R16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23807, 5), 1031}, // 1111 R16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23936, 5), 1050}, // 1112 R16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24007, 6), 1060}, // 1113 R16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23760, 5), 1025}, // 1114 R32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23914, 5), 1046}, // 1115 R32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23971, 6), 1055}, // 1116 R32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24024, 5), 1063}, // 1117 R64i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24018, 6), 1062}, // 1118 R64ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23840, 3), 1037}, // 1119 R8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23883, 8), 1042}, // 1120 R8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23941, 4), 1051}, // 1121 R8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24013, 5), 1061}, // 1122 R8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23827, 5), 1034}, // 1123 Rg16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23855, 10), 1039}, // 1124 Rg16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23788, 6), 1029}, // 1125 Rg16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23925, 6), 1048}, // 1126 Rg16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23994, 7), 1058}, // 1127 Rg16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23782, 6), 1028}, // 1128 Rg32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23919, 6), 1047}, // 1129 Rg32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23987, 7), 1057}, // 1130 Rg32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23832, 4), 1035}, // 1131 Rg8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23865, 9), 1040}, // 1132 Rg8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23931, 5), 1049}, // 1133 Rg8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24001, 6), 1059}, // 1134 Rg8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23819, 8), 1033}, // 1135 Rgb10A2 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23977, 10), 1056}, // 1136 Rgb10a2ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23812, 7), 1032}, // 1137 Rgba16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23843, 12), 1038}, // 1138 Rgba16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23752, 8), 1024}, // 1139 Rgba16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23899, 8), 1044}, // 1140 Rgba16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23954, 9), 1053}, // 1141 Rgba16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23744, 8), 1023}, // 1142 Rgba32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23891, 8), 1043}, // 1143 Rgba32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23945, 9), 1052}, // 1144 Rgba32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23765, 6), 1026}, // 1145 Rgba8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23771, 11), 1027}, // 1146 Rgba8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23907, 7), 1045}, // 1147 Rgba8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23963, 8), 1054}, // 1148 Rgba8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(23736, 8), 1022}, // 1149 Unknown in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT - {IR(24029, 12), 1064}, // 1150 CrossDevice in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24041, 7), 1065}, // 1151 Device in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24067, 11), 1068}, // 1152 Invocation in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24078, 12), 1069}, // 1153 QueueFamily in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24090, 15), 1069}, // 1154 QueueFamilyKHR in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24105, 14), 1070}, // 1155 ShaderCallKHR in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24058, 9), 1067}, // 1156 Subgroup in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24048, 10), 1066}, // 1157 Workgroup in SPV_OPERAND_TYPE_SCOPE_ID - {IR(24127, 12), 1073}, // 1158 DontFlatten in SPV_OPERAND_TYPE_SELECTION_CONTROL - {IR(24119, 8), 1072}, // 1159 Flatten in SPV_OPERAND_TYPE_SELECTION_CONTROL - {IR(14007, 5), 1071}, // 1160 None in SPV_OPERAND_TYPE_SELECTION_CONTROL - {IR(24139, 29), 1074}, // 1161 IdentifierPossibleDuplicates in SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS - {IR(13888, 8), 1076}, // 1162 Address in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13896, 8), 1077}, // 1163 Boolean in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13904, 6), 1078}, // 1164 Float in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13910, 7), 1079}, // 1165 Signed in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13917, 11), 1080}, // 1166 SignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13928, 9), 1081}, // 1167 Unsigned in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13937, 13), 1082}, // 1168 UnsignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13876, 12), 1075}, // 1169 Unspecified in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING - {IR(13950, 6), 1083}, // 1170 Class in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(13956, 10), 1084}, // 1171 Structure in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(13966, 6), 1085}, // 1172 Union in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE - {IR(13987, 20), 1087}, // 1173 ImportedDeclaration in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(13972, 15), 1086}, // 1174 ImportedModule in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY - {IR(14096, 15), 1095}, // 1175 FlagArtificial in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14111, 13), 1096}, // 1176 FlagExplicit in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14084, 12), 1094}, // 1177 FlagFwdDecl in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14174, 21), 1100}, // 1178 FlagIndirectVariable in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14067, 17), 1093}, // 1179 FlagIsDefinition in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14251, 16), 1104}, // 1180 FlagIsEnumClass in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14055, 12), 1092}, // 1181 FlagIsLocal in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14235, 16), 1103}, // 1182 FlagIsOptimized in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14028, 14), 1090}, // 1183 FlagIsPrivate in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14012, 16), 1089}, // 1184 FlagIsProtected in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14042, 13), 1091}, // 1185 FlagIsPublic in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14195, 20), 1101}, // 1186 FlagLValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14139, 18), 1098}, // 1187 FlagObjectPointer in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14124, 15), 1097}, // 1188 FlagPrototyped in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14215, 20), 1102}, // 1189 FlagRValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14157, 17), 1099}, // 1190 FlagStaticMember in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14287, 24), 1106}, // 1191 FlagTypePassByReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14267, 20), 1105}, // 1192 FlagTypePassByValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(24168, 26), 1107}, // 1193 FlagUnknownPhysicalLayout in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14007, 5), 1088}, // 1194 None in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS - {IR(14372, 9), 1112}, // 1195 BitPiece in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14404, 7), 1116}, // 1196 Constu in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14311, 6), 1108}, // 1197 Deref in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14411, 9), 1117}, // 1198 Fragment in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14322, 6), 1110}, // 1199 Minus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14317, 5), 1109}, // 1200 Plus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14361, 11), 1111}, // 1201 PlusUconst in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14393, 11), 1115}, // 1202 StackValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14381, 5), 1113}, // 1203 Swap in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14386, 7), 1114}, // 1204 Xderef in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION - {IR(14456, 11), 1121}, // 1205 AtomicType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14420, 10), 1118}, // 1206 ConstType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14443, 13), 1120}, // 1207 RestrictType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(14430, 13), 1119}, // 1208 VolatileType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER - {IR(24229, 15), 1128}, // 1209 CPP_for_OpenCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24194, 5), 1123}, // 1210 ESSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24199, 5), 1124}, // 1211 GLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24249, 7), 1130}, // 1212 HERO_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24224, 5), 1127}, // 1213 HLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24256, 5), 1131}, // 1214 NZSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24204, 9), 1125}, // 1215 OpenCL_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24213, 11), 1126}, // 1216 OpenCL_CPP in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24276, 5), 1135}, // 1217 Rust in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24244, 5), 1129}, // 1218 SYCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24266, 6), 1133}, // 1219 Slang in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(23736, 8), 1122}, // 1220 Unknown in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24261, 5), 1132}, // 1221 WGSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24272, 4), 1134}, // 1222 Zig in SPV_OPERAND_TYPE_SOURCE_LANGUAGE - {IR(24363, 14), 1146}, // 1223 AtomicCounter in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24445, 16), 1152}, // 1224 CallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24461, 15), 1152}, // 1225 CallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24759, 17), 1161}, // 1226 CodeSectionINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24310, 15), 1141}, // 1227 CrossWorkgroup in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24776, 16), 1162}, // 1228 DeviceOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24333, 9), 1143}, // 1229 Function in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24342, 8), 1144}, // 1230 Generic in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24550, 16), 1155}, // 1231 HitAttributeKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24566, 15), 1155}, // 1232 HitAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24714, 21), 1159}, // 1233 HitObjectAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24792, 14), 1163}, // 1234 HostOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24377, 6), 1147}, // 1235 Image in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24476, 24), 1153}, // 1236 IncomingCallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24500, 23), 1153}, // 1237 IncomingCallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24581, 22), 1156}, // 1238 IncomingRayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24603, 21), 1156}, // 1239 IncomingRayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24297, 6), 1137}, // 1240 Input in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24429, 16), 1151}, // 1241 NodePayloadAMDX in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24303, 7), 1139}, // 1242 Output in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24667, 22), 1158}, // 1243 PhysicalStorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24689, 25), 1158}, // 1244 PhysicalStorageBufferEXT in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24325, 8), 1142}, // 1245 Private in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24350, 13), 1145}, // 1246 PushConstant in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24523, 14), 1154}, // 1247 RayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24537, 13), 1154}, // 1248 RayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24624, 22), 1157}, // 1249 ShaderRecordBufferKHR in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24646, 21), 1157}, // 1250 ShaderRecordBufferNV in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24383, 14), 1148}, // 1251 StorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24735, 24), 1160}, // 1252 TaskPayloadWorkgroupEXT in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24410, 19), 1150}, // 1253 TileAttachmentQCOM in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24397, 13), 1149}, // 1254 TileImageEXT in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(15296, 8), 1138}, // 1255 Uniform in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24281, 16), 1136}, // 1256 UniformConstant in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(24048, 10), 1140}, // 1257 Workgroup in SPV_OPERAND_TYPE_STORAGE_CLASS - {IR(21860, 15), 1167}, // 1258 StreamingINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(21834, 14), 1164}, // 1259 UncachedINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(24824, 15), 1166}, // 1260 WriteBackINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(24806, 18), 1165}, // 1261 WriteThroughINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL - {IR(24850, 11), 1170}, // 1262 DecodeFunc in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {IR(14007, 5), 1168}, // 1263 None in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {IR(24839, 11), 1169}, // 1264 TensorView in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS - {IR(23681, 12), 1173}, // 1265 ClampToEdge in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(15254, 9), 1172}, // 1266 Constant in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(23699, 7), 1174}, // 1267 Repeat in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(23706, 15), 1175}, // 1268 RepeatMirrored in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(24861, 10), 1171}, // 1269 Undefined in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE - {IR(24914, 24), 1179}, // 1270 MakeElementAvailableARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(24938, 22), 1180}, // 1271 MakeElementVisibleARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(24960, 21), 1181}, // 1272 NonPrivateElementARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(24871, 8), 1176}, // 1273 NoneARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(24879, 15), 1177}, // 1274 NontemporalARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS - {IR(24894, 20), 1178}, // 1275 OutOfBoundsValueARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS +static const std::array kOperandNames{{ + {IR(4621, 9), 0}, // 0 ReadOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {IR(4647, 10), 2}, // 1 ReadWrite in SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {IR(4637, 10), 1}, // 2 WriteOnly in SPV_OPERAND_TYPE_ACCESS_QUALIFIER + {IR(4657, 8), 3}, // 3 Logical in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(4665, 11), 4}, // 4 Physical32 in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(4686, 11), 5}, // 5 Physical64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(4697, 24), 6}, // 6 PhysicalStorageBuffer64 in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(4721, 27), 6}, // 7 PhysicalStorageBuffer64EXT in SPV_OPERAND_TYPE_ADDRESSING_MODEL + {IR(6631, 13), 92}, // 8 BaryCoordKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6644, 12), 92}, // 9 BaryCoordNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6026, 20), 68}, // 10 BaryCoordNoPerspAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6046, 28), 69}, // 11 BaryCoordNoPerspCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6679, 20), 93}, // 12 BaryCoordNoPerspKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6699, 19), 93}, // 13 BaryCoordNoPerspNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6074, 26), 70}, // 14 BaryCoordNoPerspSampleAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6171, 22), 74}, // 15 BaryCoordPullModelAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6100, 19), 71}, // 16 BaryCoordSmoothAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6119, 27), 72}, // 17 BaryCoordSmoothCentroidAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(6146, 25), 73}, // 18 BaryCoordSmoothSampleAMD in SPV_OPERAND_TYPE_BUILT_IN + {IR(5830, 13), 59}, // 19 BaseInstance in SPV_OPERAND_TYPE_BUILT_IN + {IR(5804, 11), 58}, // 20 BaseVertex in SPV_OPERAND_TYPE_BUILT_IN + {IR(4805, 13), 9}, // 21 ClipDistance in SPV_OPERAND_TYPE_BUILT_IN + {IR(6538, 22), 87}, // 22 ClipDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7837, 12), 131}, // 23 ClusterIDNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5568, 13), 49}, // 24 CoreCountARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(5542, 10), 48}, // 25 CoreIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(5581, 13), 50}, // 26 CoreMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(4818, 13), 10}, // 27 CullDistance in SPV_OPERAND_TYPE_BUILT_IN + {IR(6560, 22), 88}, // 28 CullDistancePerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7890, 12), 132}, // 29 CullMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6886, 17), 99}, // 30 CullPrimitiveEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(7290, 17), 113}, // 31 CurrentRayTimeNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5900, 12), 62}, // 32 DeviceIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5843, 10), 60}, // 33 DrawIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5332, 22), 37}, // 34 EnqueuedWorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(5102, 10), 21}, // 35 FragCoord in SPV_OPERAND_TYPE_BUILT_IN + {IR(5188, 10), 27}, // 36 FragDepth in SPV_OPERAND_TYPE_BUILT_IN + {IR(6764, 23), 95}, // 37 FragInvocationCountEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6718, 12), 94}, // 38 FragSizeEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6193, 18), 75}, // 39 FragStencilRefEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6730, 15), 94}, // 40 FragmentSizeNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5123, 12), 23}, // 41 FrontFacing in SPV_OPERAND_TYPE_BUILT_IN + {IR(6450, 16), 83}, // 42 FullyCoveredEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(5273, 19), 33}, // 43 GlobalInvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5367, 15), 39}, // 44 GlobalLinearId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5354, 13), 38}, // 45 GlobalOffset in SPV_OPERAND_TYPE_BUILT_IN + {IR(5321, 11), 36}, // 46 GlobalSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(5198, 17), 28}, // 47 HelperInvocation in SPV_OPERAND_TYPE_BUILT_IN + {IR(7592, 11), 120}, // 48 HitIsLSSNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7550, 14), 119}, // 49 HitIsSphereNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7772, 33), 128}, // 50 HitKindBackFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7738, 34), 127}, // 51 HitKindFrontFacingMicroTriangleNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7269, 11), 112}, // 52 HitKindKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7280, 10), 112}, // 53 HitKindNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7720, 18), 126}, // 54 HitLSSPositionsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7823, 14), 130}, // 55 HitLSSRadiiNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7454, 37), 116}, // 56 HitMicroTriangleVertexBarycentricsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7387, 34), 115}, // 57 HitMicroTriangleVertexPositionsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7642, 20), 121}, // 58 HitSpherePositionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7805, 18), 129}, // 59 HitSphereRadiusNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7262, 7), 111}, // 60 HitTNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7330, 30), 114}, // 61 HitTriangleVertexPositionsKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7491, 20), 117}, // 62 IncomingRayFlagsKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7511, 19), 117}, // 63 IncomingRayFlagsNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7151, 23), 108}, // 64 InstanceCustomIndexKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7174, 22), 108}, // 65 InstanceCustomIndexNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(4840, 11), 12}, // 66 InstanceId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5528, 14), 47}, // 67 InstanceIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(4941, 13), 14}, // 68 InvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6787, 22), 95}, // 69 InvocationsPerPixelNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6903, 12), 100}, // 70 LaunchIdKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6915, 11), 100}, // 71 LaunchIdNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6926, 14), 101}, // 72 LaunchSizeKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6940, 13), 101}, // 73 LaunchSizeNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(4954, 6), 15}, // 74 Layer in SPV_OPERAND_TYPE_BUILT_IN + {IR(6582, 15), 89}, // 75 LayerPerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5255, 18), 32}, // 76 LocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5292, 21), 34}, // 77 LocalInvocationIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(6597, 16), 90}, // 78 MeshViewCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6613, 18), 91}, // 79 MeshViewIndicesNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5458, 21), 43}, // 80 NumEnqueuedSubgroups in SPV_OPERAND_TYPE_BUILT_IN + {IR(5445, 13), 42}, // 81 NumSubgroups in SPV_OPERAND_TYPE_BUILT_IN + {IR(5215, 14), 29}, // 82 NumWorkgroups in SPV_OPERAND_TYPE_BUILT_IN + {IR(7066, 22), 105}, // 83 ObjectRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7088, 21), 105}, // 84 ObjectRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7029, 19), 104}, // 85 ObjectRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7048, 18), 104}, // 86 ObjectRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7196, 17), 109}, // 87 ObjectToWorldKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7213, 16), 109}, // 88 ObjectToWorldNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5088, 14), 20}, // 89 PatchVertices in SPV_OPERAND_TYPE_BUILT_IN + {IR(5112, 11), 22}, // 90 PointCoord in SPV_OPERAND_TYPE_BUILT_IN + {IR(4795, 10), 8}, // 91 PointSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(4779, 9), 7}, // 92 Position in SPV_OPERAND_TYPE_BUILT_IN + {IR(6390, 18), 81}, // 93 PositionPerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6502, 17), 85}, // 94 PrimitiveCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(4851, 12), 13}, // 95 PrimitiveId in SPV_OPERAND_TYPE_BUILT_IN + {IR(6519, 19), 86}, // 96 PrimitiveIndicesNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6834, 24), 97}, // 97 PrimitiveLineIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(6809, 25), 96}, // 98 PrimitivePointIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(5853, 24), 61}, // 99 PrimitiveShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6858, 28), 98}, // 100 PrimitiveTriangleIndicesEXT in SPV_OPERAND_TYPE_BUILT_IN + {IR(7530, 20), 118}, // 101 RayGeometryIndexKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7130, 11), 107}, // 102 RayTmaxKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7141, 10), 107}, // 103 RayTmaxNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7109, 11), 106}, // 104 RayTminKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7120, 10), 106}, // 105 RayTminNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6228, 29), 76}, // 106 RemainingRecursionLevelsAMDX in SPV_OPERAND_TYPE_BUILT_IN + {IR(7694, 10), 123}, // 107 SMCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7713, 7), 125}, // 108 SMIDNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5135, 9), 24}, // 109 SampleId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5177, 11), 26}, // 110 SampleMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5162, 15), 25}, // 111 SamplePosition in SPV_OPERAND_TYPE_BUILT_IN + {IR(6327, 20), 79}, // 112 SecondaryPositionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6366, 24), 80}, // 113 SecondaryViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6275, 16), 77}, // 114 ShaderIndexAMDX in SPV_OPERAND_TYPE_BUILT_IN + {IR(5944, 15), 64}, // 115 ShadingRateKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(5617, 15), 53}, // 116 SubgroupEqMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5632, 18), 53}, // 117 SubgroupEqMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(5672, 15), 54}, // 118 SubgroupGeMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5687, 18), 54}, // 119 SubgroupGeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(5705, 15), 55}, // 120 SubgroupGtMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5720, 18), 55}, // 121 SubgroupGtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(5479, 11), 44}, // 122 SubgroupId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5738, 15), 56}, // 123 SubgroupLeMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5753, 18), 56}, // 124 SubgroupLeMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(5490, 26), 45}, // 125 SubgroupLocalInvocationId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5771, 15), 57}, // 126 SubgroupLtMask in SPV_OPERAND_TYPE_BUILT_IN + {IR(5786, 18), 57}, // 127 SubgroupLtMaskKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(5429, 16), 41}, // 128 SubgroupMaxSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(5382, 13), 40}, // 129 SubgroupSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(6490, 12), 84}, // 130 TaskCountNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5078, 10), 19}, // 131 TessCoord in SPV_OPERAND_TYPE_BUILT_IN + {IR(5063, 15), 18}, // 132 TessLevelInner in SPV_OPERAND_TYPE_BUILT_IN + {IR(5048, 15), 17}, // 133 TessLevelOuter in SPV_OPERAND_TYPE_BUILT_IN + {IR(6008, 18), 67}, // 134 TileApronSizeQCOM in SPV_OPERAND_TYPE_BUILT_IN + {IR(5990, 18), 66}, // 135 TileDimensionQCOM in SPV_OPERAND_TYPE_BUILT_IN + {IR(5959, 15), 65}, // 136 TileOffsetQCOM in SPV_OPERAND_TYPE_BUILT_IN + {IR(4831, 9), 11}, // 137 VertexId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5516, 12), 46}, // 138 VertexIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5924, 10), 63}, // 139 ViewIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(5000, 14), 16}, // 140 ViewportIndex in SPV_OPERAND_TYPE_BUILT_IN + {IR(6291, 15), 78}, // 141 ViewportMaskNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6428, 22), 82}, // 142 ViewportMaskPerViewNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5594, 10), 51}, // 143 WarpIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(7704, 9), 124}, // 144 WarpIDNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5604, 13), 52}, // 145 WarpMaxIDARM in SPV_OPERAND_TYPE_BUILT_IN + {IR(7662, 13), 122}, // 146 WarpsPerSMNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(5313, 8), 35}, // 147 WorkDim in SPV_OPERAND_TYPE_BUILT_IN + {IR(5243, 12), 31}, // 148 WorkgroupId in SPV_OPERAND_TYPE_BUILT_IN + {IR(5229, 14), 30}, // 149 WorkgroupSize in SPV_OPERAND_TYPE_BUILT_IN + {IR(6988, 21), 103}, // 150 WorldRayDirectionKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7009, 20), 103}, // 151 WorldRayDirectionNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(6953, 18), 102}, // 152 WorldRayOriginKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(6971, 17), 102}, // 153 WorldRayOriginNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(7229, 17), 110}, // 154 WorldToObjectKHR in SPV_OPERAND_TYPE_BUILT_IN + {IR(7246, 16), 110}, // 155 WorldToObjectNV in SPV_OPERAND_TYPE_BUILT_IN + {IR(4676, 10), 137}, // 156 Addresses in SPV_OPERAND_TYPE_CAPABILITY + {IR(12907, 34), 359}, // 157 ArbitraryPrecisionFixedPointINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12595, 37), 347}, // 158 ArbitraryPrecisionFloatingPointINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12563, 32), 346}, // 159 ArbitraryPrecisionIntegersINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13457, 19), 383}, // 160 ArithmeticFenceEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12228, 9), 332}, // 161 AsmINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13374, 20), 379}, // 162 AtomicFloat16AddEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12283, 23), 335}, // 163 AtomicFloat16MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11756, 22), 310}, // 164 AtomicFloat16VectorNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(13290, 20), 375}, // 165 AtomicFloat32AddEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12237, 23), 333}, // 166 AtomicFloat32MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13310, 20), 376}, // 167 AtomicFloat64AddEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12260, 23), 334}, // 168 AtomicFloat64MinMaxEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8070, 14), 153}, // 169 AtomicStorage in SPV_OPERAND_TYPE_CAPABILITY + {IR(9457, 17), 229}, // 170 AtomicStorageOps in SPV_OPERAND_TYPE_CAPABILITY + {IR(13415, 24), 381}, // 171 BFloat16ConversionINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10079, 29), 263}, // 172 BFloat16CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10057, 22), 262}, // 173 BFloat16DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10041, 16), 261}, // 174 BFloat16TypeKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14053, 20), 406}, // 175 BindlessImagesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(11693, 18), 307}, // 176 BindlessTextureNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(13234, 16), 372}, // 177 BitInstructions in SPV_OPERAND_TYPE_CAPABILITY + {IR(13006, 19), 363}, // 178 BlockingPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(14014, 19), 404}, // 179 CacheControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(4805, 13), 163}, // 180 ClipDistance in SPV_OPERAND_TYPE_CAPABILITY + {IR(11351, 32), 296}, // 181 ComputeDerivativeGroupLinearKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(11383, 31), 296}, // 182 ComputeDerivativeGroupLinearNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10231, 31), 275}, // 183 ComputeDerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10262, 30), 275}, // 184 ComputeDerivativeGroupQuadsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11933, 30), 319}, // 185 CooperativeMatrixBlockLoadsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9826, 32), 248}, // 186 CooperativeMatrixConversionQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(11826, 31), 316}, // 187 CooperativeMatrixConversionsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9105, 21), 370}, // 188 CooperativeMatrixKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9040, 28), 211}, // 189 CooperativeMatrixLayoutsARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(11439, 20), 298}, // 190 CooperativeMatrixNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11857, 40), 317}, // 191 CooperativeMatrixPerElementOperationsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11796, 30), 315}, // 192 CooperativeMatrixReductionsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11897, 36), 318}, // 193 CooperativeMatrixTensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11736, 20), 309}, // 194 CooperativeVectorNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11963, 28), 320}, // 195 CooperativeVectorTrainingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5552, 16), 203}, // 196 CoreBuiltinsARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(4818, 13), 164}, // 197 CullDistance in SPV_OPERAND_TYPE_CAPABILITY + {IR(13394, 21), 380}, // 198 DebugInfoModuleINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(11562, 25), 303}, // 199 DemoteToHelperInvocation in SPV_OPERAND_TYPE_CAPABILITY + {IR(11587, 28), 303}, // 200 DemoteToHelperInvocationEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9596, 18), 235}, // 201 DenormFlushToZero in SPV_OPERAND_TYPE_CAPABILITY + {IR(9581, 15), 234}, // 202 DenormPreserve in SPV_OPERAND_TYPE_CAPABILITY + {IR(8517, 18), 182}, // 203 DerivativeControl in SPV_OPERAND_TYPE_CAPABILITY + {IR(8041, 14), 151}, // 204 DeviceEnqueue in SPV_OPERAND_TYPE_CAPABILITY + {IR(5912, 12), 225}, // 205 DeviceGroup in SPV_OPERAND_TYPE_CAPABILITY + {IR(11615, 23), 304}, // 206 DisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(13185, 11), 368}, // 207 DotProduct in SPV_OPERAND_TYPE_CAPABILITY + {IR(13079, 22), 366}, // 208 DotProductInput4x8Bit in SPV_OPERAND_TYPE_CAPABILITY + {IR(13101, 25), 366}, // 209 DotProductInput4x8BitKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13126, 28), 367}, // 210 DotProductInput4x8BitPacked in SPV_OPERAND_TYPE_CAPABILITY + {IR(13154, 31), 367}, // 211 DotProductInput4x8BitPackedKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13038, 19), 365}, // 212 DotProductInputAll in SPV_OPERAND_TYPE_CAPABILITY + {IR(13057, 22), 365}, // 213 DotProductInputAllKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13196, 14), 368}, // 214 DotProductKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(5815, 15), 216}, // 215 DrawParameters in SPV_OPERAND_TYPE_CAPABILITY + {IR(12340, 16), 338}, // 216 ExpectAssumeKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12543, 20), 345}, // 217 FPFastMathModeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13591, 28), 389}, // 218 FPGAArgumentInterfacesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12883, 24), 358}, // 219 FPGABufferLocationINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12756, 27), 353}, // 220 FPGAClusterAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13476, 29), 384}, // 221 FPGAClusterAttributesV2INTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12797, 20), 355}, // 222 FPGADSPControlINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12843, 40), 357}, // 223 FPGAInvocationPipeliningAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12706, 26), 351}, // 224 FPGAKernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13505, 28), 385}, // 225 FPGAKernelAttributesv2INTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13567, 24), 388}, // 226 FPGALatencyControlINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12662, 22), 349}, // 227 FPGALoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12732, 24), 352}, // 228 FPGAMemoryAccessesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12517, 26), 344}, // 229 FPGAMemoryAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13025, 13), 364}, // 230 FPGARegINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13551, 16), 387}, // 231 FPMaxErrorINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(7955, 8), 142}, // 232 Float16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(7941, 14), 141}, // 233 Float16Buffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(9881, 16), 250}, // 234 Float16ImageAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(7963, 8), 143}, // 235 Float64 in SPV_OPERAND_TYPE_CAPABILITY + {IR(9078, 27), 213}, // 236 Float8CooperativeMatrixEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9068, 10), 212}, // 237 Float8EXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13275, 15), 374}, // 238 FloatControls2 in SPV_OPERAND_TYPE_CAPABILITY + {IR(12136, 23), 328}, // 239 FloatingPointModeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(6656, 23), 274}, // 240 FragmentBarycentricKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(10209, 22), 274}, // 241 FragmentBarycentricNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(6745, 19), 276}, // 242 FragmentDensityEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(6466, 24), 270}, // 243 FragmentFullyCoveredEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9919, 16), 252}, // 244 FragmentMaskAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(11530, 32), 302}, // 245 FragmentShaderPixelInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11459, 33), 299}, // 246 FragmentShaderSampleInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11492, 38), 300}, // 247 FragmentShaderShadingRateInterlockEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(5877, 23), 214}, // 248 FragmentShadingRateKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12491, 26), 343}, // 249 FunctionFloatControlINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12182, 22), 330}, // 250 FunctionPointersINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13914, 22), 400}, // 251 FunctionVariantsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8362, 15), 169}, // 252 GenericPointer in SPV_OPERAND_TYPE_CAPABILITY + {IR(4863, 9), 135}, // 253 Geometry in SPV_OPERAND_TYPE_CAPABILITY + {IR(8112, 18), 156}, // 254 GeometryPointSize in SPV_OPERAND_TYPE_CAPABILITY + {IR(10137, 28), 265}, // 255 GeometryShaderPassthroughNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(8575, 16), 185}, // 256 GeometryStreams in SPV_OPERAND_TYPE_CAPABILITY + {IR(13649, 35), 391}, // 257 GlobalVariableFPGADecorationsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13619, 30), 390}, // 258 GlobalVariableHostAccessINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9031, 9), 210}, // 259 GraphARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(5395, 16), 192}, // 260 GroupNonUniform in SPV_OPERAND_TYPE_CAPABILITY + {IR(8714, 26), 194}, // 261 GroupNonUniformArithmetic in SPV_OPERAND_TYPE_CAPABILITY + {IR(5650, 22), 195}, // 262 GroupNonUniformBallot in SPV_OPERAND_TYPE_CAPABILITY + {IR(8794, 25), 198}, // 263 GroupNonUniformClustered in SPV_OPERAND_TYPE_CAPABILITY + {IR(10306, 29), 277}, // 264 GroupNonUniformPartitionedNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(8819, 20), 199}, // 265 GroupNonUniformQuad in SPV_OPERAND_TYPE_CAPABILITY + {IR(13250, 25), 373}, // 266 GroupNonUniformRotateKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(8740, 23), 196}, // 267 GroupNonUniformShuffle in SPV_OPERAND_TYPE_CAPABILITY + {IR(8763, 31), 197}, // 268 GroupNonUniformShuffleRelative in SPV_OPERAND_TYPE_CAPABILITY + {IR(8694, 20), 193}, // 269 GroupNonUniformVote in SPV_OPERAND_TYPE_CAPABILITY + {IR(13936, 26), 401}, // 270 GroupUniformArithmeticKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(8034, 7), 150}, // 271 Groups in SPV_OPERAND_TYPE_CAPABILITY + {IR(12993, 13), 362}, // 272 IOPipesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8431, 8), 175}, // 273 Image1D in SPV_OPERAND_TYPE_CAPABILITY + {IR(7990, 11), 146}, // 274 ImageBasic in SPV_OPERAND_TYPE_CAPABILITY + {IR(8453, 12), 178}, // 275 ImageBuffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(8308, 15), 165}, // 276 ImageCubeArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(10192, 17), 272}, // 277 ImageFootprintNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9897, 22), 251}, // 278 ImageGatherBiasLodAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(8130, 20), 157}, // 279 ImageGatherExtended in SPV_OPERAND_TYPE_CAPABILITY + {IR(8465, 13), 179}, // 280 ImageMSArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(8016, 12), 148}, // 281 ImageMipmap in SPV_OPERAND_TYPE_CAPABILITY + {IR(8506, 11), 181}, // 282 ImageQuery in SPV_OPERAND_TYPE_CAPABILITY + {IR(8001, 15), 147}, // 283 ImageReadWrite in SPV_OPERAND_TYPE_CAPABILITY + {IR(9935, 21), 254}, // 284 ImageReadWriteLodAMD in SPV_OPERAND_TYPE_CAPABILITY + {IR(8340, 10), 167}, // 285 ImageRect in SPV_OPERAND_TYPE_CAPABILITY + {IR(12204, 24), 331}, // 286 IndirectReferencesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8382, 16), 171}, // 287 InputAttachment in SPV_OPERAND_TYPE_CAPABILITY + {IR(10421, 36), 280}, // 288 InputAttachmentArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10457, 39), 280}, // 289 InputAttachmentArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10962, 39), 287}, // 290 InputAttachmentArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11001, 42), 287}, // 291 InputAttachmentArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8084, 6), 154}, // 292 Int16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(10014, 27), 260}, // 293 Int4CooperativeMatrixINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10000, 14), 259}, // 294 Int4TypeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(7971, 6), 144}, // 295 Int64 in SPV_OPERAND_TYPE_CAPABILITY + {IR(7977, 13), 145}, // 296 Int64Atomics in SPV_OPERAND_TYPE_CAPABILITY + {IR(9956, 14), 255}, // 297 Int64ImageEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8377, 5), 170}, // 298 Int8 in SPV_OPERAND_TYPE_CAPABILITY + {IR(12159, 23), 329}, // 299 IntegerFunctions2INTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8535, 22), 183}, // 300 InterpolationFunction in SPV_OPERAND_TYPE_CAPABILITY + {IR(4630, 7), 139}, // 301 Kernel in SPV_OPERAND_TYPE_CAPABILITY + {IR(12684, 22), 350}, // 302 KernelAttributesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(7924, 8), 138}, // 303 Linkage in SPV_OPERAND_TYPE_CAPABILITY + {IR(8055, 15), 152}, // 304 LiteralSampler in SPV_OPERAND_TYPE_CAPABILITY + {IR(13330, 20), 377}, // 305 LongCompositesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12783, 14), 354}, // 306 LoopFuseINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13989, 25), 403}, // 307 MaskedGatherScatterINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(7917, 7), 133}, // 308 Matrix in SPV_OPERAND_TYPE_CAPABILITY + {IR(12817, 26), 356}, // 309 MemoryAccessAliasingINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(4926, 15), 273}, // 310 MeshShadingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(4912, 14), 271}, // 311 MeshShadingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(8414, 7), 173}, // 312 MinLod in SPV_OPERAND_TYPE_CAPABILITY + {IR(5934, 10), 226}, // 313 MultiView in SPV_OPERAND_TYPE_CAPABILITY + {IR(5014, 14), 188}, // 314 MultiViewport in SPV_OPERAND_TYPE_CAPABILITY + {IR(8669, 13), 190}, // 315 NamedBarrier in SPV_OPERAND_TYPE_CAPABILITY + {IR(13350, 11), 378}, // 316 OptNoneEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(13361, 13), 378}, // 317 OptNoneINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(6408, 20), 269}, // 318 PerViewAttributesNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(4748, 31), 295}, // 319 PhysicalStorageBufferAddresses in SPV_OPERAND_TYPE_CAPABILITY + {IR(11317, 34), 295}, // 320 PhysicalStorageBufferAddressesEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8682, 12), 191}, // 321 PipeStorage in SPV_OPERAND_TYPE_CAPABILITY + {IR(8028, 6), 149}, // 322 Pipes in SPV_OPERAND_TYPE_CAPABILITY + {IR(9985, 15), 258}, // 323 QuadControlKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(11778, 18), 312}, // 324 RawAccessChainsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(7902, 15), 369}, // 325 RayCullMaskKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9694, 12), 240}, // 326 RayQueryKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(11711, 25), 308}, // 327 RayQueryPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9671, 23), 239}, // 328 RayQueryProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(7849, 41), 321}, // 329 RayTracingClusterAccelerationStructureNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(7421, 33), 311}, // 330 RayTracingDisplacementMicromapNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(4898, 14), 243}, // 331 RayTracingKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(7603, 39), 314}, // 332 RayTracingLinearSweptSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(7307, 23), 292}, // 333 RayTracingMotionBlurNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(4885, 13), 291}, // 334 RayTracingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(11638, 29), 305}, // 335 RayTracingOpacityMicromapEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(7360, 27), 290}, // 336 RayTracingPositionFetchKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(11414, 25), 297}, // 337 RayTracingProvisionalKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(7564, 28), 313}, // 338 RayTracingSpheresGeometryNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9725, 32), 242}, // 339 RayTraversalPrimitiveCullingKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14033, 20), 405}, // 340 RegisterLimitsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13210, 24), 371}, // 341 ReplicatedCompositesEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12115, 21), 327}, // 342 RoundToInfinityINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9639, 16), 237}, // 343 RoundingModeRTE in SPV_OPERAND_TYPE_CAPABILITY + {IR(9655, 16), 238}, // 344 RoundingModeRTZ in SPV_OPERAND_TYPE_CAPABILITY + {IR(12964, 29), 361}, // 345 RuntimeAlignedAttributeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(10372, 23), 279}, // 346 RuntimeDescriptorArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(10395, 26), 279}, // 347 RuntimeDescriptorArrayEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10108, 29), 264}, // 348 SampleMaskOverrideCoverageNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9474, 28), 230}, // 349 SampleMaskPostDepthCoverage in SPV_OPERAND_TYPE_CAPABILITY + {IR(5144, 18), 166}, // 350 SampleRateShading in SPV_OPERAND_TYPE_CAPABILITY + {IR(8421, 10), 174}, // 351 Sampled1D in SPV_OPERAND_TYPE_CAPABILITY + {IR(8439, 14), 177}, // 352 SampledBuffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(8323, 17), 176}, // 353 SampledCubeArray in SPV_OPERAND_TYPE_CAPABILITY + {IR(8208, 33), 160}, // 354 SampledImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10735, 36), 284}, // 355 SampledImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10771, 39), 284}, // 356 SampledImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8350, 12), 168}, // 357 SampledRect in SPV_OPERAND_TYPE_CAPABILITY + {IR(4788, 7), 134}, // 358 Shader in SPV_OPERAND_TYPE_CAPABILITY + {IR(9970, 15), 256}, // 359 ShaderClockKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(6257, 18), 257}, // 360 ShaderEnqueueAMDX in SPV_OPERAND_TYPE_CAPABILITY + {IR(11667, 26), 306}, // 361 ShaderInvocationReorderNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(4960, 12), 200}, // 362 ShaderLayer in SPV_OPERAND_TYPE_CAPABILITY + {IR(10335, 17), 278}, // 363 ShaderNonUniform in SPV_OPERAND_TYPE_CAPABILITY + {IR(10352, 20), 278}, // 364 ShaderNonUniformEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(7675, 19), 301}, // 365 ShaderSMBuiltinsNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(6347, 19), 268}, // 366 ShaderStereoViewNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(5028, 20), 201}, // 367 ShaderViewportIndex in SPV_OPERAND_TYPE_CAPABILITY + {IR(4972, 28), 266}, // 368 ShaderViewportIndexLayerEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(10165, 27), 266}, // 369 ShaderViewportIndexLayerNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(6306, 21), 267}, // 370 ShaderViewportMaskNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(10292, 14), 276}, // 371 ShadingRateNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(9614, 25), 236}, // 372 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_CAPABILITY + {IR(8398, 16), 172}, // 373 SparseResidency in SPV_OPERAND_TYPE_CAPABILITY + {IR(13893, 21), 399}, // 374 SpecConditionalINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13439, 18), 382}, // 375 SplitBarrierINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(6211, 17), 253}, // 376 StencilExportEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9262, 25), 221}, // 377 StorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(9502, 24), 231}, // 378 StorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(8241, 34), 161}, // 379 StorageBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10810, 37), 285}, // 380 StorageBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10847, 40), 285}, // 381 StorageBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8275, 33), 162}, // 382 StorageImageArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10887, 36), 286}, // 383 StorageImageArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10923, 39), 286}, // 384 StorageImageArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8478, 28), 180}, // 385 StorageImageExtendedFormats in SPV_OPERAND_TYPE_CAPABILITY + {IR(8150, 24), 158}, // 386 StorageImageMultisample in SPV_OPERAND_TYPE_CAPABILITY + {IR(8591, 30), 186}, // 387 StorageImageReadWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY + {IR(8621, 31), 187}, // 388 StorageImageWriteWithoutFormat in SPV_OPERAND_TYPE_CAPABILITY + {IR(9389, 21), 224}, // 389 StorageInputOutput16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(9367, 22), 223}, // 390 StoragePushConstant16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(9560, 21), 233}, // 391 StoragePushConstant8 in SPV_OPERAND_TYPE_CAPABILITY + {IR(8954, 37), 208}, // 392 StorageTensorArrayDynamicIndexingARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(8991, 40), 209}, // 393 StorageTensorArrayNonUniformIndexingARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(10577, 39), 282}, // 394 StorageTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10616, 42), 282}, // 395 StorageTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11130, 42), 289}, // 396 StorageTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11172, 45), 289}, // 397 StorageTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(9350, 17), 222}, // 398 StorageUniform16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(9287, 28), 221}, // 399 StorageUniformBufferBlock16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(13712, 23), 393}, // 400 Subgroup2DBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13735, 30), 394}, // 401 Subgroup2DBlockTransformINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13765, 30), 395}, // 402 Subgroup2DBlockTransposeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12427, 39), 341}, // 403 SubgroupAvcMotionEstimationChromaINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12356, 33), 339}, // 404 SubgroupAvcMotionEstimationINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12389, 38), 340}, // 405 SubgroupAvcMotionEstimationIntraINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(5411, 18), 215}, // 406 SubgroupBallotKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(12031, 27), 324}, // 407 SubgroupBufferBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13684, 28), 392}, // 408 SubgroupBufferPrefetchINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8652, 17), 189}, // 409 SubgroupDispatch in SPV_OPERAND_TYPE_CAPABILITY + {IR(12058, 26), 325}, // 410 SubgroupImageBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12084, 31), 326}, // 411 SubgroupImageMediaBlockIOINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(13795, 38), 396}, // 412 SubgroupMatrixMultiplyAccumulateINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12010, 21), 323}, // 413 SubgroupShuffleINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9246, 16), 220}, // 414 SubgroupVoteKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13533, 18), 386}, // 415 TaskSequenceINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(11991, 19), 322}, // 416 TensorAddressingNV in SPV_OPERAND_TYPE_CAPABILITY + {IR(13962, 27), 402}, // 417 TensorFloat32RoundingINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(8943, 11), 207}, // 418 TensorsARM in SPV_OPERAND_TYPE_CAPABILITY + {IR(13833, 28), 397}, // 419 TernaryBitwiseFunctionINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(4872, 13), 136}, // 420 Tessellation in SPV_OPERAND_TYPE_CAPABILITY + {IR(8090, 22), 155}, // 421 TessellationPointSize in SPV_OPERAND_TYPE_CAPABILITY + {IR(9858, 23), 249}, // 422 TextureBlockMatch2QCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(9804, 22), 246}, // 423 TextureBlockMatchQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(9783, 21), 245}, // 424 TextureBoxFilterQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(9757, 26), 244}, // 425 TextureSampleWeightedQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(8857, 28), 204}, // 426 TileImageColorReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8885, 28), 205}, // 427 TileImageDepthReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8913, 30), 206}, // 428 TileImageStencilReadAccessEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(5974, 16), 247}, // 429 TileShadingQCOM in SPV_OPERAND_TYPE_CAPABILITY + {IR(8557, 18), 184}, // 430 TransformFeedback in SPV_OPERAND_TYPE_CAPABILITY + {IR(12941, 23), 360}, // 431 USMStorageClassesINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9315, 35), 222}, // 432 UniformAndStorageBuffer16BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(9526, 34), 232}, // 433 UniformAndStorageBuffer8BitAccess in SPV_OPERAND_TYPE_CAPABILITY + {IR(8174, 34), 159}, // 434 UniformBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10658, 37), 283}, // 435 UniformBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10695, 40), 283}, // 436 UniformBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(8839, 18), 202}, // 437 UniformDecoration in SPV_OPERAND_TYPE_CAPABILITY + {IR(10496, 39), 281}, // 438 UniformTexelBufferArrayDynamicIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(10535, 42), 281}, // 439 UniformTexelBufferArrayDynamicIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(11043, 42), 288}, // 440 UniformTexelBufferArrayNonUniformIndexing in SPV_OPERAND_TYPE_CAPABILITY + {IR(11085, 45), 288}, // 441 UniformTexelBufferArrayNonUniformIndexingEXT in SPV_OPERAND_TYPE_CAPABILITY + {IR(12632, 30), 348}, // 442 UnstructuredLoopControlsINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9706, 19), 241}, // 443 UntypedPointersKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(13861, 32), 398}, // 444 UntypedVariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12466, 25), 342}, // 445 VariableLengthArrayINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(9440, 17), 228}, // 446 VariablePointers in SPV_OPERAND_TYPE_CAPABILITY + {IR(9410, 30), 227}, // 447 VariablePointersStorageBuffer in SPV_OPERAND_TYPE_CAPABILITY + {IR(7932, 9), 140}, // 448 Vector16 in SPV_OPERAND_TYPE_CAPABILITY + {IR(12325, 15), 337}, // 449 VectorAnyINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(12306, 19), 336}, // 450 VectorComputeINTEL in SPV_OPERAND_TYPE_CAPABILITY + {IR(11217, 18), 293}, // 451 VulkanMemoryModel in SPV_OPERAND_TYPE_CAPABILITY + {IR(11256, 29), 294}, // 452 VulkanMemoryModelDeviceScope in SPV_OPERAND_TYPE_CAPABILITY + {IR(11285, 32), 294}, // 453 VulkanMemoryModelDeviceScopeKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(11235, 21), 293}, // 454 VulkanMemoryModelKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9202, 44), 219}, // 455 WorkgroupMemoryExplicitLayout16BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9159, 43), 218}, // 456 WorkgroupMemoryExplicitLayout8BitAccessKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(9126, 33), 217}, // 457 WorkgroupMemoryExplicitLayoutKHR in SPV_OPERAND_TYPE_CAPABILITY + {IR(14085, 8), 408}, // 458 Address in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14093, 8), 409}, // 459 Boolean in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14101, 6), 410}, // 460 Float in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14107, 7), 411}, // 461 Signed in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14114, 11), 412}, // 462 SignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14125, 9), 413}, // 463 Unsigned in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14134, 13), 414}, // 464 UnsignedChar in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14073, 12), 407}, // 465 Unspecified in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14147, 6), 415}, // 466 Class in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(14153, 10), 416}, // 467 Structure in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(14163, 6), 417}, // 468 Union in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(14184, 20), 419}, // 469 ImportedDeclaration in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(14169, 15), 418}, // 470 ImportedModule in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(14293, 15), 427}, // 471 FlagArtificial in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14308, 13), 428}, // 472 FlagExplicit in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14281, 12), 426}, // 473 FlagFwdDecl in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14371, 21), 432}, // 474 FlagIndirectVariable in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14264, 17), 425}, // 475 FlagIsDefinition in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14448, 16), 436}, // 476 FlagIsEnumClass in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14252, 12), 424}, // 477 FlagIsLocal in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14432, 16), 435}, // 478 FlagIsOptimized in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14225, 14), 422}, // 479 FlagIsPrivate in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14209, 16), 421}, // 480 FlagIsProtected in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14239, 13), 423}, // 481 FlagIsPublic in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14392, 20), 433}, // 482 FlagLValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14336, 18), 430}, // 483 FlagObjectPointer in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14321, 15), 429}, // 484 FlagPrototyped in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14412, 20), 434}, // 485 FlagRValueReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14354, 17), 431}, // 486 FlagStaticMember in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14484, 24), 438}, // 487 FlagTypePassByReference in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14464, 20), 437}, // 488 FlagTypePassByValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14204, 5), 420}, // 489 None in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS + {IR(14569, 9), 443}, // 490 BitPiece in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14601, 7), 447}, // 491 Constu in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14508, 6), 439}, // 492 Deref in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14608, 9), 448}, // 493 Fragment in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14519, 6), 441}, // 494 Minus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14514, 5), 440}, // 495 Plus in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14558, 11), 442}, // 496 PlusUconst in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14590, 11), 446}, // 497 StackValue in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14578, 5), 444}, // 498 Swap in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14583, 7), 445}, // 499 Xderef in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION + {IR(14653, 11), 452}, // 500 AtomicType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14617, 10), 449}, // 501 ConstType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14640, 13), 451}, // 502 RestrictType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14627, 13), 450}, // 503 VolatileType in SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14664, 10), 453}, // 504 Float16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14674, 10), 454}, // 505 Float32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14684, 10), 455}, // 506 Float64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14852, 12), 466}, // 507 FloatE4M3NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14864, 12), 467}, // 508 FloatE5M2NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14707, 14), 457}, // 509 SignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14721, 14), 458}, // 510 SignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14735, 14), 459}, // 511 SignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14694, 13), 456}, // 512 SignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14812, 19), 464}, // 513 SignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14764, 16), 461}, // 514 UnsignedInt16NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14780, 16), 462}, // 515 UnsignedInt32NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14796, 16), 463}, // 516 UnsignedInt64NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14749, 15), 460}, // 517 UnsignedInt8NV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14831, 21), 465}, // 518 UnsignedInt8PackedNV in SPV_OPERAND_TYPE_COMPONENT_TYPE + {IR(14928, 28), 471}, // 519 ColumnBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(14888, 15), 469}, // 520 ColumnMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(14903, 25), 470}, // 521 RowBlockedInterleavedARM in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(14876, 12), 468}, // 522 RowMajorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT + {IR(14964, 27), 473}, // 523 MatrixASignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(14991, 27), 474}, // 524 MatrixBSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(15018, 27), 475}, // 525 MatrixCSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(15045, 32), 476}, // 526 MatrixResultSignedComponentsKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(14956, 8), 472}, // 527 NoneKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(15077, 26), 477}, // 528 SaturatingAccumulationKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS + {IR(15114, 4), 480}, // 529 2x2 in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {IR(15107, 7), 479}, // 530 Column in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {IR(15103, 4), 478}, // 531 Row in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE + {IR(15118, 11), 481}, // 532 MatrixAKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {IR(15140, 21), 483}, // 533 MatrixAccumulatorKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {IR(15129, 11), 482}, // 534 MatrixBKHR in SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE + {IR(15172, 14), 485}, // 535 ColumnMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(15186, 21), 486}, // 536 InferencingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(15161, 11), 484}, // 537 RowMajorNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(15207, 18), 487}, // 538 TrainingOptimalNV in SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT + {IR(14085, 8), 489}, // 539 Address in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14093, 8), 490}, // 540 Boolean in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14101, 6), 491}, // 541 Float in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14107, 7), 492}, // 542 Signed in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14114, 11), 493}, // 543 SignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14125, 9), 494}, // 544 Unsigned in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14134, 13), 495}, // 545 UnsignedChar in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14073, 12), 488}, // 546 Unspecified in SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14147, 6), 496}, // 547 Class in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {IR(14153, 10), 497}, // 548 Structure in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {IR(14163, 6), 498}, // 549 Union in SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE + {IR(14293, 15), 506}, // 550 FlagArtificial in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14308, 13), 507}, // 551 FlagExplicit in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14281, 12), 505}, // 552 FlagFwdDecl in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14371, 21), 511}, // 553 FlagIndirectVariable in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14264, 17), 504}, // 554 FlagIsDefinition in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14252, 12), 503}, // 555 FlagIsLocal in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14432, 16), 514}, // 556 FlagIsOptimized in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14225, 14), 501}, // 557 FlagIsPrivate in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14209, 16), 500}, // 558 FlagIsProtected in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14239, 13), 502}, // 559 FlagIsPublic in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14392, 20), 512}, // 560 FlagLValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14336, 18), 509}, // 561 FlagObjectPointer in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14321, 15), 508}, // 562 FlagPrototyped in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14412, 20), 513}, // 563 FlagRValueReference in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14354, 17), 510}, // 564 FlagStaticMember in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14204, 5), 499}, // 565 None in SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS + {IR(14569, 9), 519}, // 566 BitPiece in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14601, 7), 523}, // 567 Constu in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14508, 6), 515}, // 568 Deref in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14519, 6), 517}, // 569 Minus in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14514, 5), 516}, // 570 Plus in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14558, 11), 518}, // 571 PlusUconst in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14590, 11), 522}, // 572 StackValue in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14578, 5), 520}, // 573 Swap in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14583, 7), 521}, // 574 Xderef in SPV_OPERAND_TYPE_DEBUG_OPERATION + {IR(14617, 10), 524}, // 575 ConstType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {IR(14640, 13), 526}, // 576 RestrictType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {IR(14627, 13), 525}, // 577 VolatileType in SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER + {IR(17449, 16), 641}, // 578 AliasScopeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15434, 8), 546}, // 579 Aliased in SPV_OPERAND_TYPE_DECORATION + {IR(16552, 15), 599}, // 580 AliasedPointer in SPV_OPERAND_TYPE_DECORATION + {IR(16567, 18), 599}, // 581 AliasedPointerEXT in SPV_OPERAND_TYPE_DECORATION + {IR(15912, 10), 570}, // 582 Alignment in SPV_OPERAND_TYPE_DECORATION + {IR(15956, 12), 572}, // 583 AlignmentId in SPV_OPERAND_TYPE_DECORATION + {IR(15285, 12), 533}, // 584 ArrayStride in SPV_OPERAND_TYPE_DECORATION + {IR(17230, 14), 629}, // 585 BankBitsINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17069, 15), 622}, // 586 BankwidthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15589, 8), 559}, // 587 Binding in SPV_OPERAND_TYPE_DECORATION + {IR(16633, 16), 602}, // 588 BindlessImageNV in SPV_OPERAND_TYPE_DECORATION + {IR(16615, 18), 601}, // 589 BindlessSamplerNV in SPV_OPERAND_TYPE_DECORATION + {IR(15249, 6), 529}, // 590 Block in SPV_OPERAND_TYPE_DECORATION + {IR(16096, 22), 579}, // 591 BlockMatchSamplerQCOM in SPV_OPERAND_TYPE_DECORATION + {IR(16074, 22), 578}, // 592 BlockMatchTextureQCOM in SPV_OPERAND_TYPE_DECORATION + {IR(16664, 13), 604}, // 593 BoundImageNV in SPV_OPERAND_TYPE_DECORATION + {IR(16649, 15), 603}, // 594 BoundSamplerNV in SPV_OPERAND_TYPE_DECORATION + {IR(15255, 12), 530}, // 595 BufferBlock in SPV_OPERAND_TYPE_DECORATION + {IR(17542, 20), 646}, // 596 BufferLocationINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15366, 8), 538}, // 597 BuiltIn in SPV_OPERAND_TYPE_DECORATION + {IR(17312, 19), 634}, // 598 BurstCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15332, 8), 537}, // 599 CPacked in SPV_OPERAND_TYPE_DECORATION + {IR(18352, 22), 669}, // 600 CacheControlLoadINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18411, 23), 670}, // 601 CacheControlStoreINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17331, 15), 635}, // 602 CacheSizeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15399, 9), 542}, // 603 Centroid in SPV_OPERAND_TYPE_DECORATION + {IR(16717, 13), 607}, // 604 ClobberINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15460, 9), 549}, // 605 Coherent in SPV_OPERAND_TYPE_DECORATION + {IR(15276, 9), 532}, // 606 ColMajor in SPV_OPERAND_TYPE_DECORATION + {IR(15573, 10), 557}, // 607 Component in SPV_OPERAND_TYPE_DECORATION + {IR(18299, 17), 668}, // 608 ConditionalINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17851, 27), 656}, // 609 ConduitKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15451, 9), 548}, // 610 Constant in SPV_OPERAND_TYPE_DECORATION + {IR(16863, 14), 614}, // 611 CounterBuffer in SPV_OPERAND_TYPE_DECORATION + {IR(15597, 14), 560}, // 612 DescriptorSet in SPV_OPERAND_TYPE_DECORATION + {IR(17346, 28), 636}, // 613 DontStaticallyCoalesceINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17122, 16), 625}, // 614 DoublepumpINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16118, 18), 580}, // 615 ExplicitInterpAMD in SPV_OPERAND_TYPE_DECORATION + {IR(15782, 15), 566}, // 616 FPFastMathMode in SPV_OPERAND_TYPE_DECORATION + {IR(17770, 26), 653}, // 617 FPMaxErrorDecorationINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15732, 15), 565}, // 618 FPRoundingMode in SPV_OPERAND_TYPE_DECORATION + {IR(15388, 5), 540}, // 619 Flat in SPV_OPERAND_TYPE_DECORATION + {IR(17244, 20), 630}, // 620 ForcePow2DepthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15684, 14), 564}, // 621 FuncParamAttr in SPV_OPERAND_TYPE_DECORATION + {IR(16774, 21), 610}, // 622 FuncParamIOKindINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17005, 24), 618}, // 623 FunctionDenormModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17615, 31), 648}, // 624 FunctionFloatingPointModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16948, 26), 617}, // 625 FunctionRoundingModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17405, 25), 639}, // 626 FuseLoopsInFunctionINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15321, 11), 536}, // 627 GLSLPacked in SPV_OPERAND_TYPE_DECORATION + {IR(15310, 11), 535}, // 628 GLSLShared in SPV_OPERAND_TYPE_DECORATION + {IR(16837, 26), 613}, // 629 GlobalVariableOffsetINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16585, 30), 600}, // 630 HitObjectShaderRecordBufferNV in SPV_OPERAND_TYPE_DECORATION + {IR(16877, 24), 614}, // 631 HlslCounterBufferGOOGLE in SPV_OPERAND_TYPE_DECORATION + {IR(16914, 19), 615}, // 632 HlslSemanticGOOGLE in SPV_OPERAND_TYPE_DECORATION + {IR(18194, 16), 665}, // 633 HostAccessINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17562, 19), 647}, // 634 IOPipeStorageINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18271, 28), 667}, // 635 ImplementInRegisterMapINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15583, 6), 558}, // 636 Index in SPV_OPERAND_TYPE_DECORATION + {IR(18257, 14), 666}, // 637 InitModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17478, 24), 643}, // 638 InitiationIntervalINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15891, 21), 569}, // 639 InputAttachmentIndex in SPV_OPERAND_TYPE_DECORATION + {IR(15415, 10), 544}, // 640 Invariant in SPV_OPERAND_TYPE_DECORATION + {IR(17821, 30), 655}, // 641 LatencyControlConstraintINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17796, 25), 654}, // 642 LatencyControlLabelINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15859, 18), 567}, // 643 LinkageAttributes in SPV_OPERAND_TYPE_DECORATION + {IR(15564, 9), 556}, // 644 Location in SPV_OPERAND_TYPE_DECORATION + {IR(17909, 33), 658}, // 645 MMHostInterfaceAddressWidthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17942, 30), 659}, // 646 MMHostInterfaceDataWidthINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17972, 28), 660}, // 647 MMHostInterfaceLatencyINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18068, 29), 662}, // 648 MMHostInterfaceMaxBurstINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18034, 34), 661}, // 649 MMHostInterfaceReadWriteModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(18097, 32), 663}, // 650 MMHostInterfaceWaitRequestINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17430, 19), 640}, // 651 MathOpDSPModeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15297, 13), 534}, // 652 MatrixStride in SPV_OPERAND_TYPE_DECORATION + {IR(15922, 14), 571}, // 653 MaxByteOffset in SPV_OPERAND_TYPE_DECORATION + {IR(15968, 16), 573}, // 654 MaxByteOffsetId in SPV_OPERAND_TYPE_DECORATION + {IR(17502, 20), 644}, // 655 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17084, 22), 623}, // 656 MaxPrivateCopiesINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17138, 19), 626}, // 657 MaxReplicatesINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17706, 18), 651}, // 658 MediaBlockIOINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17043, 12), 620}, // 659 MemoryINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17177, 11), 628}, // 660 MergeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17465, 13), 642}, // 661 NoAliasINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15877, 14), 568}, // 662 NoContraction in SPV_OPERAND_TYPE_DECORATION + {IR(15374, 14), 539}, // 663 NoPerspective in SPV_OPERAND_TYPE_DECORATION + {IR(16028, 13), 575}, // 664 NoSignedWrap in SPV_OPERAND_TYPE_DECORATION + {IR(16041, 15), 576}, // 665 NoUnsignedWrap in SPV_OPERAND_TYPE_DECORATION + {IR(16168, 20), 582}, // 666 NodeMaxPayloadsAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16136, 32), 581}, // 667 NodeSharesPayloadLimitsWithAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(15481, 12), 551}, // 668 NonReadable in SPV_OPERAND_TYPE_DECORATION + {IR(16492, 11), 597}, // 669 NonUniform in SPV_OPERAND_TYPE_DECORATION + {IR(16503, 14), 597}, // 670 NonUniformEXT in SPV_OPERAND_TYPE_DECORATION + {IR(15469, 12), 550}, // 671 NonWritable in SPV_OPERAND_TYPE_DECORATION + {IR(17055, 14), 621}, // 672 NumbanksINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15611, 7), 561}, // 673 Offset in SPV_OPERAND_TYPE_DECORATION + {IR(16336, 19), 589}, // 674 OverrideCoverageNV in SPV_OPERAND_TYPE_DECORATION + {IR(16355, 14), 590}, // 675 PassthroughNV in SPV_OPERAND_TYPE_DECORATION + {IR(15393, 6), 541}, // 676 Patch in SPV_OPERAND_TYPE_DECORATION + {IR(16308, 28), 588}, // 677 PayloadDispatchIndirectAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16283, 25), 587}, // 678 PayloadNodeArraySizeAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16231, 25), 585}, // 679 PayloadNodeBaseIndexAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16211, 20), 584}, // 680 PayloadNodeNameAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16256, 27), 586}, // 681 PayloadNodeSparseArrayAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(16416, 16), 593}, // 682 PerPrimitiveEXT in SPV_OPERAND_TYPE_DECORATION + {IR(16432, 15), 593}, // 683 PerPrimitiveNV in SPV_OPERAND_TYPE_DECORATION + {IR(16457, 10), 595}, // 684 PerTaskNV in SPV_OPERAND_TYPE_DECORATION + {IR(16467, 13), 596}, // 685 PerVertexKHR in SPV_OPERAND_TYPE_DECORATION + {IR(16480, 12), 596}, // 686 PerVertexNV in SPV_OPERAND_TYPE_DECORATION + {IR(16447, 10), 594}, // 687 PerViewNV in SPV_OPERAND_TYPE_DECORATION + {IR(17522, 20), 645}, // 688 PipelineEnableINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17374, 14), 637}, // 689 PrefetchINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16691, 26), 606}, // 690 ReferencedIndirectlyINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17029, 14), 619}, // 691 RegisterINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17878, 31), 657}, // 692 RegisterMapKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15225, 17), 527}, // 693 RelaxedPrecision in SPV_OPERAND_TYPE_DECORATION + {IR(15425, 9), 545}, // 694 Restrict in SPV_OPERAND_TYPE_DECORATION + {IR(16517, 16), 598}, // 695 RestrictPointer in SPV_OPERAND_TYPE_DECORATION + {IR(16533, 19), 598}, // 696 RestrictPointerEXT in SPV_OPERAND_TYPE_DECORATION + {IR(15267, 9), 531}, // 697 RowMajor in SPV_OPERAND_TYPE_DECORATION + {IR(16677, 14), 605}, // 698 SIMTCallINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15408, 7), 543}, // 699 Sample in SPV_OPERAND_TYPE_DECORATION + {IR(15537, 20), 554}, // 700 SaturatedConversion in SPV_OPERAND_TYPE_DECORATION + {IR(15984, 44), 574}, // 701 SaturatedToLargestFloat8NormalConversionEXT in SPV_OPERAND_TYPE_DECORATION + {IR(16388, 28), 592}, // 702 SecondaryViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION + {IR(16730, 17), 608}, // 703 SideEffectsINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17157, 20), 627}, // 704 SimpleDualPortINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17646, 25), 649}, // 705 SingleElementVectorINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17106, 16), 624}, // 706 SinglepumpINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15242, 7), 528}, // 707 SpecId in SPV_OPERAND_TYPE_DECORATION + {IR(18129, 26), 664}, // 708 StableKernelArgumentINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16822, 15), 612}, // 709 StackCallINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17388, 17), 638}, // 710 StallEnableINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(17724, 15), 652}, // 711 StallFreeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15557, 7), 555}, // 712 Stream in SPV_OPERAND_TYPE_DECORATION + {IR(17264, 16), 631}, // 713 StridesizeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16188, 23), 583}, // 714 TrackFinishWritingAMDX in SPV_OPERAND_TYPE_DECORATION + {IR(17294, 18), 633}, // 715 TrueDualPortINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15493, 8), 552}, // 716 Uniform in SPV_OPERAND_TYPE_DECORATION + {IR(15527, 10), 553}, // 717 UniformId in SPV_OPERAND_TYPE_DECORATION + {IR(16901, 13), 615}, // 718 UserSemantic in SPV_OPERAND_TYPE_DECORATION + {IR(16933, 15), 616}, // 719 UserTypeGOOGLE in SPV_OPERAND_TYPE_DECORATION + {IR(17671, 35), 650}, // 720 VectorComputeCallableFunctionINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16795, 27), 611}, // 721 VectorComputeFunctionINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16747, 27), 609}, // 722 VectorComputeVariableINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(16369, 19), 591}, // 723 ViewportRelativeNV in SPV_OPERAND_TYPE_DECORATION + {IR(15442, 9), 547}, // 724 Volatile in SPV_OPERAND_TYPE_DECORATION + {IR(16056, 18), 577}, // 725 WeightTextureQCOM in SPV_OPERAND_TYPE_DECORATION + {IR(17280, 14), 632}, // 726 WordsizeINTEL in SPV_OPERAND_TYPE_DECORATION + {IR(15618, 10), 562}, // 727 XfbBuffer in SPV_OPERAND_TYPE_DECORATION + {IR(15628, 10), 563}, // 728 XfbStride in SPV_OPERAND_TYPE_DECORATION + {IR(18434, 3), 671}, // 729 1D in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18437, 3), 672}, // 730 2D in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18440, 3), 673}, // 731 3D in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18453, 7), 676}, // 732 Buffer in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18443, 5), 674}, // 733 Cube in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18448, 5), 675}, // 734 Rect in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18460, 12), 677}, // 735 SubpassData in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(18472, 17), 678}, // 736 TileImageDataEXT in SPV_OPERAND_TYPE_DIMENSIONALITY + {IR(19284, 15), 731}, // 737 CoalescingAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18915, 15), 709}, // 738 ContractionOff in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(9596, 18), 723}, // 739 DenormFlushToZero in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(9581, 15), 722}, // 740 DenormPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18685, 13), 692}, // 741 DepthGreater in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18698, 10), 693}, // 742 DepthLess in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18670, 15), 691}, // 743 DepthReplacing in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18708, 15), 694}, // 744 DepthUnchanged in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19705, 25), 749}, // 745 DerivativeGroupLinearKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19730, 24), 749}, // 746 DerivativeGroupLinearNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19658, 24), 748}, // 747 DerivativeGroupQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19682, 23), 748}, // 748 DerivativeGroupQuadsNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19232, 29), 729}, // 749 EarlyAndLateFragmentTestsAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18637, 19), 688}, // 750 EarlyFragmentTests in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20215, 18), 768}, // 751 FPFastMathDefault in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18942, 10), 711}, // 752 Finalizer in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20030, 26), 760}, // 753 FloatingPointModeALTINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20056, 27), 761}, // 754 FloatingPointModeIEEEINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18930, 12), 710}, // 755 Initializer in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18759, 11), 698}, // 756 InputLines in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18770, 20), 699}, // 757 InputLinesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18747, 12), 697}, // 758 InputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18800, 24), 701}, // 759 InputTrianglesAdjacency in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18489, 12), 679}, // 760 Invocations in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19299, 15), 732}, // 761 IsApiEntryAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18830, 9), 703}, // 762 Isolines in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18723, 10), 695}, // 763 LocalSize in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18733, 14), 696}, // 764 LocalSizeHint in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19010, 16), 716}, // 765 LocalSizeHintId in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18998, 12), 715}, // 766 LocalSizeId in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19314, 21), 733}, // 767 MaxNodeRecursionAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19359, 21), 736}, // 768 MaxNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20105, 16), 763}, // 769 MaxWorkDimINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20083, 22), 762}, // 770 MaxWorkgroupSizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20191, 24), 767}, // 771 MaximallyReconvergesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20306, 22), 772}, // 772 MaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20328, 24), 773}, // 773 MaximumRegistersIdINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20283, 23), 771}, // 774 NamedBarrierCountINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20403, 27), 774}, // 775 NamedMaximumRegistersINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20121, 20), 764}, // 776 NoGlobalOffsetINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19026, 34), 717}, // 777 NonCoherentColorAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19060, 34), 718}, // 778 NonCoherentDepthAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19094, 36), 719}, // 779 NonCoherentStencilAttachmentReadEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19178, 34), 727}, // 780 NonCoherentTileAttachmentReadQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20141, 22), 765}, // 781 NumSIMDWorkitemsINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18621, 16), 687}, // 782 OriginLowerLeft in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18605, 16), 686}, // 783 OriginUpperLeft in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18867, 16), 706}, // 784 OutputLineStrip in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19590, 15), 746}, // 785 OutputLinesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19605, 14), 746}, // 786 OutputLinesNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18854, 13), 705}, // 787 OutputPoints in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19619, 20), 747}, // 788 OutputPrimitivesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19639, 19), 747}, // 789 OutputPrimitivesNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18883, 20), 707}, // 790 OutputTriangleStrip in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19754, 19), 750}, // 791 OutputTrianglesEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19773, 18), 750}, // 792 OutputTrianglesNV in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18839, 15), 704}, // 793 OutputVertices in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18586, 19), 685}, // 794 PixelCenterInteger in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19791, 25), 751}, // 795 PixelInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19816, 27), 752}, // 796 PixelInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18656, 10), 689}, // 797 PointMode in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19160, 18), 721}, // 798 PostDepthCoverage in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19531, 19), 743}, // 799 QuadDerivativesKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18824, 6), 702}, // 800 Quads in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20257, 26), 770}, // 801 RegisterMapInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19550, 20), 744}, // 802 RequireFullQuadsKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(9639, 16), 725}, // 803 RoundingModeRTE in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20009, 21), 759}, // 804 RoundingModeRTNINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19988, 21), 758}, // 805 RoundingModeRTPINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(9655, 16), 726}, // 806 RoundingModeRTZ in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19843, 26), 753}, // 807 SampleInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19869, 28), 754}, // 808 SampleInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20163, 28), 766}, // 809 SchedulerTargetFmaxMhzINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(6275, 16), 735}, // 810 ShaderIndexAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19897, 31), 755}, // 811 ShadingRateInterlockOrderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19928, 33), 756}, // 812 ShadingRateInterlockUnorderedEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19961, 27), 757}, // 813 SharedLocalMemorySizeINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19570, 20), 745}, // 814 SharesInputWithAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(9614, 25), 724}, // 815 SignedZeroInfNanPreserve in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18501, 13), 680}, // 816 SpacingEqual in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18514, 22), 681}, // 817 SpacingFractionalEven in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18536, 21), 682}, // 818 SpacingFractionalOdd in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19335, 24), 734}, // 819 StaticNumWorkgroupsAMDX in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19484, 25), 741}, // 820 StencilRefGreaterBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19408, 26), 738}, // 821 StencilRefGreaterFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19509, 22), 742}, // 822 StencilRefLessBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19434, 23), 739}, // 823 StencilRefLessFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19261, 23), 730}, // 824 StencilRefReplacingEXT in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19457, 27), 740}, // 825 StencilRefUnchangedBackAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19380, 28), 737}, // 826 StencilRefUnchangedFrontAMD in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20233, 24), 769}, // 827 StreamingInterfaceINTEL in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(5382, 13), 712}, // 828 SubgroupSize in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19130, 30), 720}, // 829 SubgroupUniformControlFlowKHR in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18952, 22), 713}, // 830 SubgroupsPerWorkgroup in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18974, 24), 714}, // 831 SubgroupsPerWorkgroupId in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(19212, 20), 728}, // 832 TileShadingRateQCOM in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18790, 10), 700}, // 833 Triangles in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18903, 12), 708}, // 834 VecTypeHint in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18571, 15), 684}, // 835 VertexOrderCcw in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18557, 14), 683}, // 836 VertexOrderCw in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(18666, 4), 690}, // 837 Xfb in SPV_OPERAND_TYPE_EXECUTION_MODE + {IR(20568, 10), 786}, // 838 AnyHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20578, 9), 786}, // 839 AnyHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20629, 12), 789}, // 840 CallableKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20641, 11), 789}, // 841 CallableNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20587, 14), 787}, // 842 ClosestHitKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20601, 13), 787}, // 843 ClosestHitNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(14608, 9), 779}, // 844 Fragment in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20480, 10), 780}, // 845 GLCompute in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(4863, 9), 778}, // 846 Geometry in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20537, 16), 785}, // 847 IntersectionKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20553, 15), 785}, // 848 IntersectionNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(4630, 7), 781}, // 849 Kernel in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20660, 8), 791}, // 850 MeshEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20497, 7), 783}, // 851 MeshNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20614, 8), 788}, // 852 MissKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20622, 7), 788}, // 853 MissNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20504, 17), 784}, // 854 RayGenerationKHR in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20521, 16), 784}, // 855 RayGenerationNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20652, 8), 790}, // 856 TaskEXT in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20490, 7), 782}, // 857 TaskNV in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20437, 20), 776}, // 858 TessellationControl in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20457, 23), 777}, // 859 TessellationEvaluation in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20430, 7), 775}, // 860 Vertex in SPV_OPERAND_TYPE_EXECUTION_MODEL + {IR(20677, 12), 793}, // 861 FlushToZero in SPV_OPERAND_TYPE_FPDENORM_MODE + {IR(20668, 9), 792}, // 862 Preserve in SPV_OPERAND_TYPE_FPDENORM_MODE + {IR(20689, 12), 794}, // 863 BFloat16KHR in SPV_OPERAND_TYPE_FPENCODING + {IR(20701, 14), 795}, // 864 Float8E4M3EXT in SPV_OPERAND_TYPE_FPENCODING + {IR(20715, 14), 796}, // 865 Float8E5M2EXT in SPV_OPERAND_TYPE_FPENCODING + {IR(20734, 4), 798}, // 866 ALT in SPV_OPERAND_TYPE_FPOPERATION_MODE + {IR(20729, 5), 797}, // 867 IEEE in SPV_OPERAND_TYPE_FPOPERATION_MODE + {IR(20772, 14), 805}, // 868 AllowContract in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20786, 23), 805}, // 869 AllowContractFastINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20809, 13), 806}, // 870 AllowReassoc in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20822, 18), 806}, // 871 AllowReassocINTEL in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20756, 11), 803}, // 872 AllowRecip in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20840, 15), 807}, // 873 AllowTransform in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20767, 5), 804}, // 874 Fast in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20752, 4), 802}, // 875 NSZ in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(14204, 5), 799}, // 876 None in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20745, 7), 801}, // 877 NotInf in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20738, 7), 800}, // 878 NotNaN in SPV_OPERAND_TYPE_FP_FAST_MATH_MODE + {IR(20855, 4), 808}, // 879 RTE in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(20867, 4), 811}, // 880 RTN in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(20863, 4), 810}, // 881 RTP in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(20859, 4), 809}, // 882 RTZ in SPV_OPERAND_TYPE_FP_ROUNDING_MODE + {IR(20903, 18), 814}, // 883 Horizontal2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(20921, 18), 815}, // 884 Horizontal4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(20871, 16), 812}, // 885 Vertical2Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(20887, 16), 813}, // 886 Vertical4Pixels in SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE + {IR(20962, 6), 820}, // 887 Const in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(20946, 11), 818}, // 888 DontInline in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(20939, 7), 817}, // 889 Inline in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(14204, 5), 816}, // 890 None in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(13350, 11), 821}, // 891 OptNoneEXT in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(13361, 13), 821}, // 892 OptNoneINTEL in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(20957, 5), 819}, // 893 Pure in SPV_OPERAND_TYPE_FUNCTION_CONTROL + {IR(20978, 6), 824}, // 894 ByVal in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(20989, 8), 826}, // 895 NoAlias in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(20997, 10), 827}, // 896 NoCapture in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(21015, 12), 829}, // 897 NoReadWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(21007, 8), 828}, // 898 NoWrite in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(21027, 20), 830}, // 899 RuntimeAlignedINTEL in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(20973, 5), 823}, // 900 Sext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(20984, 5), 825}, // 901 Sret in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(20968, 5), 822}, // 902 Zext in SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE + {IR(21082, 16), 834}, // 903 ClusteredReduce in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21068, 14), 833}, // 904 ExclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21054, 14), 832}, // 905 InclusiveScan in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21145, 27), 837}, // 906 PartitionedExclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21118, 27), 836}, // 907 PartitionedInclusiveScanNV in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21098, 20), 835}, // 908 PartitionedReduceNV in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21047, 7), 831}, // 909 Reduce in SPV_OPERAND_TYPE_GROUP_OPERATION + {IR(21172, 10), 838}, // 910 NoneINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(21182, 10), 839}, // 911 ReadINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(21203, 15), 841}, // 912 ReadWriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(21192, 11), 840}, // 913 WriteINTEL in SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER + {IR(21218, 5), 843}, // 914 Bias in SPV_OPERAND_TYPE_IMAGE + {IR(21232, 12), 846}, // 915 ConstOffset in SPV_OPERAND_TYPE_IMAGE + {IR(21244, 13), 848}, // 916 ConstOffsets in SPV_OPERAND_TYPE_IMAGE + {IR(21227, 5), 845}, // 917 Grad in SPV_OPERAND_TYPE_IMAGE + {IR(21223, 4), 844}, // 918 Lod in SPV_OPERAND_TYPE_IMAGE + {IR(21257, 19), 851}, // 919 MakeTexelAvailable in SPV_OPERAND_TYPE_IMAGE + {IR(21276, 22), 851}, // 920 MakeTexelAvailableKHR in SPV_OPERAND_TYPE_IMAGE + {IR(21298, 17), 852}, // 921 MakeTexelVisible in SPV_OPERAND_TYPE_IMAGE + {IR(21315, 20), 852}, // 922 MakeTexelVisibleKHR in SPV_OPERAND_TYPE_IMAGE + {IR(8414, 7), 850}, // 923 MinLod in SPV_OPERAND_TYPE_IMAGE + {IR(21335, 16), 853}, // 924 NonPrivateTexel in SPV_OPERAND_TYPE_IMAGE + {IR(21351, 19), 853}, // 925 NonPrivateTexelKHR in SPV_OPERAND_TYPE_IMAGE + {IR(14204, 5), 842}, // 926 None in SPV_OPERAND_TYPE_IMAGE + {IR(21423, 12), 857}, // 927 Nontemporal in SPV_OPERAND_TYPE_IMAGE + {IR(15611, 7), 847}, // 928 Offset in SPV_OPERAND_TYPE_IMAGE + {IR(21435, 8), 858}, // 929 Offsets in SPV_OPERAND_TYPE_IMAGE + {IR(15408, 7), 849}, // 930 Sample in SPV_OPERAND_TYPE_IMAGE + {IR(21401, 11), 855}, // 931 SignExtend in SPV_OPERAND_TYPE_IMAGE + {IR(21370, 14), 854}, // 932 VolatileTexel in SPV_OPERAND_TYPE_IMAGE + {IR(21384, 17), 854}, // 933 VolatileTexelKHR in SPV_OPERAND_TYPE_IMAGE + {IR(21412, 11), 856}, // 934 ZeroExtend in SPV_OPERAND_TYPE_IMAGE + {IR(14101, 6), 873}, // 935 Float in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21604, 10), 872}, // 936 HalfFloat in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21539, 12), 867}, // 937 SignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21551, 12), 868}, // 938 SignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21528, 11), 866}, // 939 SignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21453, 11), 860}, // 940 SnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21443, 10), 859}, // 941 SnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21513, 15), 865}, // 942 UnormInt101010 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21625, 17), 875}, // 943 UnormInt101010_2 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21642, 16), 876}, // 944 UnormInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21775, 16), 883}, // 945 UnormInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21791, 16), 884}, // 946 UnormInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21474, 11), 862}, // 947 UnormInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21614, 11), 874}, // 948 UnormInt24 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21698, 20), 879}, // 949 UnormInt2_101010EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21464, 10), 861}, // 950 UnormInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21499, 14), 864}, // 951 UnormShort555 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21485, 14), 863}, // 952 UnormShort565 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21718, 19), 880}, // 953 UnsignedInt10X6EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21737, 19), 881}, // 954 UnsignedInt12X4EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21756, 19), 882}, // 955 UnsignedInt14X2EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21576, 14), 870}, // 956 UnsignedInt16 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21590, 14), 871}, // 957 UnsignedInt32 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21563, 13), 869}, // 958 UnsignedInt8 in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21658, 20), 877}, // 959 UnsignedIntRaw10EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21678, 20), 878}, // 960 UnsignedIntRaw12EXT in SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE + {IR(21809, 2), 886}, // 961 A in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21910, 5), 904}, // 962 ABGR in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21831, 5), 892}, // 963 ARGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21826, 5), 891}, // 964 BGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21868, 6), 898}, // 965 Depth in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21874, 13), 899}, // 966 DepthStencil in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21836, 10), 893}, // 967 Intensity in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21846, 10), 894}, // 968 Luminance in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21807, 2), 885}, // 969 R in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21814, 3), 888}, // 970 RA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21811, 3), 887}, // 971 RG in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21817, 4), 889}, // 972 RGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21821, 5), 890}, // 973 RGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21863, 5), 897}, // 974 RGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21859, 4), 896}, // 975 RGx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21856, 3), 895}, // 976 Rx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21904, 6), 903}, // 977 sBGRA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21887, 5), 900}, // 978 sRGB in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21898, 6), 902}, // 979 sRGBA in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21892, 6), 901}, // 980 sRGBx in SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER + {IR(21915, 27), 905}, // 981 InitOnDeviceReprogramINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {IR(21942, 23), 906}, // 982 InitOnDeviceResetINTEL in SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER + {IR(21965, 7), 907}, // 983 NoWait in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {IR(21972, 11), 908}, // 984 WaitKernel in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {IR(21983, 14), 909}, // 985 WaitWorkGroup in SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS + {IR(21997, 12), 911}, // 986 CmdExecTime in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO + {IR(14204, 5), 910}, // 987 None in SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO + {IR(22009, 13), 913}, // 988 MayUsePrintf in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS + {IR(14204, 5), 912}, // 989 None in SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS + {IR(22022, 7), 914}, // 990 Export in SPV_OPERAND_TYPE_LINKAGE_TYPE + {IR(22029, 7), 915}, // 991 Import in SPV_OPERAND_TYPE_LINKAGE_TYPE + {IR(22036, 12), 916}, // 992 LinkOnceODR in SPV_OPERAND_TYPE_LINKAGE_TYPE + {IR(22062, 12), 918}, // 993 CachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(22114, 17), 921}, // 994 ConstCachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(22089, 25), 920}, // 995 InvalidateAfterReadINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(22074, 15), 919}, // 996 StreamingINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(22048, 14), 917}, // 997 UncachedINTEL in SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL + {IR(22254, 21), 934}, // 998 DependencyArrayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22149, 19), 925}, // 999 DependencyInfinite in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22168, 17), 926}, // 1000 DependencyLength in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22138, 11), 924}, // 1001 DontUnroll in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(17478, 24), 932}, // 1002 InitiationIntervalINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22213, 18), 929}, // 1003 IterationMultiple in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22275, 18), 936}, // 1004 LoopCoalesceINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22354, 15), 940}, // 1005 LoopCountINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(17502, 20), 933}, // 1006 MaxConcurrencyINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22293, 21), 937}, // 1007 MaxInterleavingINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22199, 14), 928}, // 1008 MaxIterations in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22369, 26), 941}, // 1009 MaxReinvocationDelayINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22185, 14), 927}, // 1010 MinIterations in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22340, 14), 939}, // 1011 NoFusionINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(14204, 5), 922}, // 1012 None in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22241, 13), 931}, // 1013 PartialCount in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22231, 10), 930}, // 1014 PeelCount in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(17522, 20), 935}, // 1015 PipelineEnableINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22314, 26), 938}, // 1016 SpeculatedIterationsINTEL in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22131, 7), 923}, // 1017 Unroll in SPV_OPERAND_TYPE_LOOP_CONTROL + {IR(22678, 27), 955}, // 1018 MatrixAPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22626, 26), 953}, // 1019 MatrixAPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22546, 23), 949}, // 1020 MatrixAPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22500, 23), 947}, // 1021 MatrixAPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22395, 29), 943}, // 1022 MatrixASignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22592, 17), 951}, // 1023 MatrixATF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22705, 27), 956}, // 1024 MatrixBPackedBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22652, 26), 954}, // 1025 MatrixBPackedFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22569, 23), 950}, // 1026 MatrixBPackedInt4INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22523, 23), 948}, // 1027 MatrixBPackedInt8INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22424, 29), 944}, // 1028 MatrixBSignedComponentsINTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22609, 17), 952}, // 1029 MatrixBTF32INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22453, 21), 945}, // 1030 MatrixCBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22474, 26), 946}, // 1031 MatrixResultBFloat16INTEL in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(14204, 5), 942}, // 1032 None in SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS + {IR(22865, 20), 964}, // 1033 AliasScopeINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22732, 8), 959}, // 1034 Aligned in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22740, 21), 961}, // 1035 MakePointerAvailable in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22761, 24), 961}, // 1036 MakePointerAvailableKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22785, 19), 962}, // 1037 MakePointerVisible in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22804, 22), 962}, // 1038 MakePointerVisibleKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22885, 17), 965}, // 1039 NoAliasINTELMask in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22826, 18), 963}, // 1040 NonPrivatePointer in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22844, 21), 963}, // 1041 NonPrivatePointerKHR in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(14204, 5), 957}, // 1042 None in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(21423, 12), 960}, // 1043 Nontemporal in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(15442, 9), 958}, // 1044 Volatile in SPV_OPERAND_TYPE_MEMORY_ACCESS + {IR(22909, 8), 967}, // 1045 GLSL450 in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(22917, 7), 968}, // 1046 OpenCL in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(22902, 7), 966}, // 1047 Simple in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(22924, 7), 969}, // 1048 Vulkan in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(22931, 10), 969}, // 1049 VulkanKHR in SPV_OPERAND_TYPE_MEMORY_MODEL + {IR(22949, 8), 971}, // 1050 Acquire in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(22965, 15), 973}, // 1051 AcquireRelease in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23069, 20), 979}, // 1052 AtomicCounterMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23048, 21), 978}, // 1053 CrossWorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23089, 12), 980}, // 1054 ImageMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23130, 14), 982}, // 1055 MakeAvailable in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23144, 17), 982}, // 1056 MakeAvailableKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23161, 12), 983}, // 1057 MakeVisible in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23173, 15), 983}, // 1058 MakeVisibleKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(14204, 5), 970}, // 1059 None in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23101, 13), 981}, // 1060 OutputMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23114, 16), 981}, // 1061 OutputMemoryKHR in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(22941, 8), 970}, // 1062 Relaxed in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(22957, 8), 972}, // 1063 Release in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(22980, 23), 974}, // 1064 SequentiallyConsistent in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23017, 15), 976}, // 1065 SubgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23003, 14), 975}, // 1066 UniformMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(15442, 9), 984}, // 1067 Volatile in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23032, 16), 977}, // 1068 WorkgroupMemory in SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID + {IR(23188, 10), 985}, // 1069 AutoINTEL in SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS + {IR(23203, 4), 987}, // 1070 SAT in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(23216, 8), 989}, // 1071 SAT_SYM in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(23207, 9), 988}, // 1072 SAT_ZERO in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(23198, 5), 986}, // 1073 WRAP in SPV_OPERAND_TYPE_OVERFLOW_MODES + {IR(23224, 25), 990}, // 1074 PackedVectorFormat4x8Bit in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT + {IR(23249, 28), 990}, // 1075 PackedVectorFormat4x8BitKHR in SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT + {IR(23290, 4), 993}, // 1076 RND in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23323, 9), 997}, // 1077 RND_CONV in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23332, 13), 998}, // 1078 RND_CONV_ODD in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23303, 8), 995}, // 1079 RND_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23311, 12), 996}, // 1080 RND_MIN_INF in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23294, 9), 994}, // 1081 RND_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23277, 4), 991}, // 1082 TRN in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(23281, 9), 992}, // 1083 TRN_ZERO in SPV_OPERAND_TYPE_QUANTIZATION_MODES + {IR(14204, 5), 999}, // 1084 None in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {IR(23345, 25), 1000}, // 1085 RobustnessPerComponentNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {IR(23370, 23), 1001}, // 1086 RobustnessPerElementNV in SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS + {IR(23462, 27), 1007}, // 1087 CullBackFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23489, 28), 1008}, // 1088 CullFrontFacingTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23531, 16), 1010}, // 1089 CullNoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23517, 14), 1009}, // 1090 CullOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23601, 30), 1013}, // 1091 ForceOpacityMicromap2StateEXT in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23403, 12), 1004}, // 1092 NoOpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(14956, 8), 1002}, // 1093 NoneKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23393, 10), 1003}, // 1094 OpaqueKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23588, 13), 1012}, // 1095 SkipAABBsKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23564, 24), 1011}, // 1096 SkipBuiltinPrimitivesNV in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23438, 24), 1006}, // 1097 SkipClosestHitShaderKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23547, 17), 1011}, // 1098 SkipTrianglesKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23415, 23), 1005}, // 1099 TerminateOnFirstHitKHR in SPV_OPERAND_TYPE_RAY_FLAGS + {IR(23672, 37), 1015}, // 1100 RayQueryCandidateIntersectionAABBKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE + {IR(23631, 41), 1014}, // 1101 RayQueryCandidateIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE + {IR(23787, 42), 1018}, // 1102 RayQueryCommittedIntersectionGeneratedKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {IR(23709, 37), 1016}, // 1103 RayQueryCommittedIntersectionNoneKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {IR(23746, 41), 1017}, // 1104 RayQueryCommittedIntersectionTriangleKHR in SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE + {IR(23829, 33), 1019}, // 1105 RayQueryCandidateIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {IR(23862, 33), 1020}, // 1106 RayQueryCommittedIntersectionKHR in SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION + {IR(23907, 6), 1023}, // 1107 Clamp in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(23895, 12), 1022}, // 1108 ClampToEdge in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(14204, 5), 1021}, // 1109 None in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(23913, 7), 1024}, // 1110 Repeat in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(23920, 15), 1025}, // 1111 RepeatMirrored in SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE + {IR(23943, 7), 1027}, // 1112 Linear in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE + {IR(23935, 8), 1026}, // 1113 Nearest in SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE + {IR(24008, 13), 1036}, // 1114 R11fG11fB10f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24050, 4), 1042}, // 1115 R16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24088, 9), 1047}, // 1116 R16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24021, 5), 1037}, // 1117 R16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24150, 5), 1056}, // 1118 R16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24221, 6), 1066}, // 1119 R16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23974, 5), 1031}, // 1120 R32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24128, 5), 1052}, // 1121 R32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24185, 6), 1061}, // 1122 R32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24238, 5), 1069}, // 1123 R64i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24232, 6), 1068}, // 1124 R64ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24054, 3), 1043}, // 1125 R8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24097, 8), 1048}, // 1126 R8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24155, 4), 1057}, // 1127 R8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24227, 5), 1067}, // 1128 R8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24041, 5), 1040}, // 1129 Rg16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24069, 10), 1045}, // 1130 Rg16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24002, 6), 1035}, // 1131 Rg16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24139, 6), 1054}, // 1132 Rg16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24208, 7), 1064}, // 1133 Rg16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23996, 6), 1034}, // 1134 Rg32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24133, 6), 1053}, // 1135 Rg32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24201, 7), 1063}, // 1136 Rg32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24046, 4), 1041}, // 1137 Rg8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24079, 9), 1046}, // 1138 Rg8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24145, 5), 1055}, // 1139 Rg8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24215, 6), 1065}, // 1140 Rg8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24033, 8), 1039}, // 1141 Rgb10A2 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24191, 10), 1062}, // 1142 Rgb10a2ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24026, 7), 1038}, // 1143 Rgba16 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24057, 12), 1044}, // 1144 Rgba16Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23966, 8), 1030}, // 1145 Rgba16f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24113, 8), 1050}, // 1146 Rgba16i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24168, 9), 1059}, // 1147 Rgba16ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23958, 8), 1029}, // 1148 Rgba32f in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24105, 8), 1049}, // 1149 Rgba32i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24159, 9), 1058}, // 1150 Rgba32ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23979, 6), 1032}, // 1151 Rgba8 in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23985, 11), 1033}, // 1152 Rgba8Snorm in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24121, 7), 1051}, // 1153 Rgba8i in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24177, 8), 1060}, // 1154 Rgba8ui in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(23950, 8), 1028}, // 1155 Unknown in SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT + {IR(24243, 12), 1070}, // 1156 CrossDevice in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24255, 7), 1071}, // 1157 Device in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24281, 11), 1074}, // 1158 Invocation in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24292, 12), 1075}, // 1159 QueueFamily in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24304, 15), 1075}, // 1160 QueueFamilyKHR in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24319, 14), 1076}, // 1161 ShaderCallKHR in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24272, 9), 1073}, // 1162 Subgroup in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24262, 10), 1072}, // 1163 Workgroup in SPV_OPERAND_TYPE_SCOPE_ID + {IR(24341, 12), 1079}, // 1164 DontFlatten in SPV_OPERAND_TYPE_SELECTION_CONTROL + {IR(24333, 8), 1078}, // 1165 Flatten in SPV_OPERAND_TYPE_SELECTION_CONTROL + {IR(14204, 5), 1077}, // 1166 None in SPV_OPERAND_TYPE_SELECTION_CONTROL + {IR(24353, 29), 1080}, // 1167 IdentifierPossibleDuplicates in SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS + {IR(14085, 8), 1082}, // 1168 Address in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14093, 8), 1083}, // 1169 Boolean in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14101, 6), 1084}, // 1170 Float in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14107, 7), 1085}, // 1171 Signed in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14114, 11), 1086}, // 1172 SignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14125, 9), 1087}, // 1173 Unsigned in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14134, 13), 1088}, // 1174 UnsignedChar in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14073, 12), 1081}, // 1175 Unspecified in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING + {IR(14147, 6), 1089}, // 1176 Class in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(14153, 10), 1090}, // 1177 Structure in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(14163, 6), 1091}, // 1178 Union in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE + {IR(14184, 20), 1093}, // 1179 ImportedDeclaration in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(14169, 15), 1092}, // 1180 ImportedModule in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY + {IR(14293, 15), 1101}, // 1181 FlagArtificial in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14308, 13), 1102}, // 1182 FlagExplicit in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14281, 12), 1100}, // 1183 FlagFwdDecl in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14371, 21), 1106}, // 1184 FlagIndirectVariable in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14264, 17), 1099}, // 1185 FlagIsDefinition in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14448, 16), 1110}, // 1186 FlagIsEnumClass in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14252, 12), 1098}, // 1187 FlagIsLocal in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14432, 16), 1109}, // 1188 FlagIsOptimized in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14225, 14), 1096}, // 1189 FlagIsPrivate in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14209, 16), 1095}, // 1190 FlagIsProtected in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14239, 13), 1097}, // 1191 FlagIsPublic in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14392, 20), 1107}, // 1192 FlagLValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14336, 18), 1104}, // 1193 FlagObjectPointer in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14321, 15), 1103}, // 1194 FlagPrototyped in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14412, 20), 1108}, // 1195 FlagRValueReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14354, 17), 1105}, // 1196 FlagStaticMember in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14484, 24), 1112}, // 1197 FlagTypePassByReference in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14464, 20), 1111}, // 1198 FlagTypePassByValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(24382, 26), 1113}, // 1199 FlagUnknownPhysicalLayout in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14204, 5), 1094}, // 1200 None in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS + {IR(14569, 9), 1118}, // 1201 BitPiece in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14601, 7), 1122}, // 1202 Constu in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14508, 6), 1114}, // 1203 Deref in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14608, 9), 1123}, // 1204 Fragment in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14519, 6), 1116}, // 1205 Minus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14514, 5), 1115}, // 1206 Plus in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14558, 11), 1117}, // 1207 PlusUconst in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14590, 11), 1121}, // 1208 StackValue in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14578, 5), 1119}, // 1209 Swap in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14583, 7), 1120}, // 1210 Xderef in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION + {IR(14653, 11), 1127}, // 1211 AtomicType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14617, 10), 1124}, // 1212 ConstType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14640, 13), 1126}, // 1213 RestrictType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(14627, 13), 1125}, // 1214 VolatileType in SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER + {IR(24443, 15), 1134}, // 1215 CPP_for_OpenCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24408, 5), 1129}, // 1216 ESSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24413, 5), 1130}, // 1217 GLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24463, 7), 1136}, // 1218 HERO_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24438, 5), 1133}, // 1219 HLSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24470, 5), 1137}, // 1220 NZSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24418, 9), 1131}, // 1221 OpenCL_C in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24427, 11), 1132}, // 1222 OpenCL_CPP in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24490, 5), 1141}, // 1223 Rust in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24458, 5), 1135}, // 1224 SYCL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24480, 6), 1139}, // 1225 Slang in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(23950, 8), 1128}, // 1226 Unknown in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24475, 5), 1138}, // 1227 WGSL in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24486, 4), 1140}, // 1228 Zig in SPV_OPERAND_TYPE_SOURCE_LANGUAGE + {IR(24577, 14), 1152}, // 1229 AtomicCounter in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24659, 16), 1158}, // 1230 CallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24675, 15), 1158}, // 1231 CallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24973, 17), 1167}, // 1232 CodeSectionINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24524, 15), 1147}, // 1233 CrossWorkgroup in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24990, 16), 1168}, // 1234 DeviceOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24547, 9), 1149}, // 1235 Function in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24556, 8), 1150}, // 1236 Generic in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24764, 16), 1161}, // 1237 HitAttributeKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24780, 15), 1161}, // 1238 HitAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24928, 21), 1165}, // 1239 HitObjectAttributeNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(25006, 14), 1169}, // 1240 HostOnlyINTEL in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24591, 6), 1153}, // 1241 Image in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24690, 24), 1159}, // 1242 IncomingCallableDataKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24714, 23), 1159}, // 1243 IncomingCallableDataNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24795, 22), 1162}, // 1244 IncomingRayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24817, 21), 1162}, // 1245 IncomingRayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24511, 6), 1143}, // 1246 Input in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24643, 16), 1157}, // 1247 NodePayloadAMDX in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24517, 7), 1145}, // 1248 Output in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24881, 22), 1164}, // 1249 PhysicalStorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24903, 25), 1164}, // 1250 PhysicalStorageBufferEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24539, 8), 1148}, // 1251 Private in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24564, 13), 1151}, // 1252 PushConstant in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24737, 14), 1160}, // 1253 RayPayloadKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24751, 13), 1160}, // 1254 RayPayloadNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24838, 22), 1163}, // 1255 ShaderRecordBufferKHR in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24860, 21), 1163}, // 1256 ShaderRecordBufferNV in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24597, 14), 1154}, // 1257 StorageBuffer in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24949, 24), 1166}, // 1258 TaskPayloadWorkgroupEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24624, 19), 1156}, // 1259 TileAttachmentQCOM in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24611, 13), 1155}, // 1260 TileImageEXT in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(15493, 8), 1144}, // 1261 Uniform in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24495, 16), 1142}, // 1262 UniformConstant in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(24262, 10), 1146}, // 1263 Workgroup in SPV_OPERAND_TYPE_STORAGE_CLASS + {IR(22074, 15), 1173}, // 1264 StreamingINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(22048, 14), 1170}, // 1265 UncachedINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(25038, 15), 1172}, // 1266 WriteBackINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(25020, 18), 1171}, // 1267 WriteThroughINTEL in SPV_OPERAND_TYPE_STORE_CACHE_CONTROL + {IR(25064, 11), 1176}, // 1268 DecodeFunc in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {IR(14204, 5), 1174}, // 1269 None in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {IR(25053, 11), 1175}, // 1270 TensorView in SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS + {IR(23895, 12), 1179}, // 1271 ClampToEdge in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(15451, 9), 1178}, // 1272 Constant in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(23913, 7), 1180}, // 1273 Repeat in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(23920, 15), 1181}, // 1274 RepeatMirrored in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(25075, 10), 1177}, // 1275 Undefined in SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE + {IR(25128, 24), 1185}, // 1276 MakeElementAvailableARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(25152, 22), 1186}, // 1277 MakeElementVisibleARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(25174, 21), 1187}, // 1278 NonPrivateElementARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(25085, 8), 1182}, // 1279 NoneARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(25093, 15), 1183}, // 1280 NontemporalARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS + {IR(25108, 20), 1184}, // 1281 OutOfBoundsValueARM in SPV_OPERAND_TYPE_TENSOR_OPERANDS }}; IndexRange OperandNameRangeForKind(spv_operand_type_t type) { @@ -2907,88 +2926,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, 297); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(453, 8); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(461, 3); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(464, 2); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(466, 19); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(485, 10); - case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(495, 4); - case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(499, 15); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(514, 4); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(518, 6); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(524, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(527, 3); - case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(530, 4); - case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(534, 8); - case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(542, 3); - case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(545, 16); - case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(561, 9); - case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(570, 3); - case SPV_OPERAND_TYPE_DECORATION: return IR(573, 150); - case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(723, 8); - case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(731, 101); - case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(832, 23); - case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(855, 2); - case SPV_OPERAND_TYPE_FPENCODING: return IR(857, 3); - case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(860, 2); - case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(862, 11); - case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(873, 4); - case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(877, 4); - case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(881, 7); - case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(888, 9); - case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(897, 7); - case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(904, 4); - case SPV_OPERAND_TYPE_IMAGE: return IR(908, 21); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(929, 26); - case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(955, 20); - case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(975, 2); - case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(977, 3); - case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(980, 2); - case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(982, 2); - case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(984, 3); - case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(987, 5); - case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(992, 20); - case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1012, 15); - case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(1027, 12); - case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(1039, 5); - case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(1044, 19); - case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(1063, 1); - case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(1064, 4); - case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(1068, 2); - case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(1070, 8); - case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(1078, 3); - case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1081, 13); - case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1094, 2); - case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1096, 3); - case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1099, 2); - case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1101, 5); - case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1106, 2); - case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1108, 42); - case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1150, 8); - case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1158, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1161, 1); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1162, 8); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1170, 3); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1173, 2); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1175, 20); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1195, 10); - case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1205, 4); - case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1209, 14); - case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1223, 35); - case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1258, 4); - case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1262, 3); - case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1265, 5); - case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1270, 6); - case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(908, 21); + case SPV_OPERAND_TYPE_CAPABILITY: return IR(156, 302); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(458, 8); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(466, 3); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(469, 2); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS: return IR(471, 19); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION: return IR(490, 10); + case SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(500, 4); + case SPV_OPERAND_TYPE_COMPONENT_TYPE: return IR(504, 15); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_LAYOUT: return IR(519, 4); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_OPERANDS: return IR(523, 6); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE: return IR(529, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE: return IR(532, 3); + case SPV_OPERAND_TYPE_COOPERATIVE_VECTOR_MATRIX_LAYOUT: return IR(535, 4); + case SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(539, 8); + case SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE: return IR(547, 3); + case SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS: return IR(550, 16); + case SPV_OPERAND_TYPE_DEBUG_OPERATION: return IR(566, 9); + case SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER: return IR(575, 3); + case SPV_OPERAND_TYPE_DECORATION: return IR(578, 151); + case SPV_OPERAND_TYPE_DIMENSIONALITY: return IR(729, 8); + case SPV_OPERAND_TYPE_EXECUTION_MODE: return IR(737, 101); + case SPV_OPERAND_TYPE_EXECUTION_MODEL: return IR(838, 23); + case SPV_OPERAND_TYPE_FPDENORM_MODE: return IR(861, 2); + case SPV_OPERAND_TYPE_FPENCODING: return IR(863, 3); + case SPV_OPERAND_TYPE_FPOPERATION_MODE: return IR(866, 2); + case SPV_OPERAND_TYPE_FP_FAST_MATH_MODE: return IR(868, 11); + case SPV_OPERAND_TYPE_FP_ROUNDING_MODE: return IR(879, 4); + case SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE: return IR(883, 4); + case SPV_OPERAND_TYPE_FUNCTION_CONTROL: return IR(887, 7); + case SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE: return IR(894, 9); + case SPV_OPERAND_TYPE_GROUP_OPERATION: return IR(903, 7); + case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER: return IR(910, 4); + case SPV_OPERAND_TYPE_IMAGE: return IR(914, 21); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_DATA_TYPE: return IR(935, 26); + case SPV_OPERAND_TYPE_IMAGE_CHANNEL_ORDER: return IR(961, 20); + case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER: return IR(981, 2); + case SPV_OPERAND_TYPE_KERNEL_ENQ_FLAGS: return IR(983, 3); + case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return IR(986, 2); + case SPV_OPERAND_TYPE_KERNEL_PROPERTY_FLAGS: return IR(988, 2); + case SPV_OPERAND_TYPE_LINKAGE_TYPE: return IR(990, 3); + case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL: return IR(993, 5); + case SPV_OPERAND_TYPE_LOOP_CONTROL: return IR(998, 20); + case SPV_OPERAND_TYPE_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1018, 15); + case SPV_OPERAND_TYPE_MEMORY_ACCESS: return IR(1033, 12); + case SPV_OPERAND_TYPE_MEMORY_MODEL: return IR(1045, 5); + case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: return IR(1050, 19); + case SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS: return IR(1069, 1); + case SPV_OPERAND_TYPE_OVERFLOW_MODES: return IR(1070, 4); + case SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT: return IR(1074, 2); + case SPV_OPERAND_TYPE_QUANTIZATION_MODES: return IR(1076, 8); + case SPV_OPERAND_TYPE_RAW_ACCESS_CHAIN_OPERANDS: return IR(1084, 3); + case SPV_OPERAND_TYPE_RAY_FLAGS: return IR(1087, 13); + case SPV_OPERAND_TYPE_RAY_QUERY_CANDIDATE_INTERSECTION_TYPE: return IR(1100, 2); + case SPV_OPERAND_TYPE_RAY_QUERY_COMMITTED_INTERSECTION_TYPE: return IR(1102, 3); + case SPV_OPERAND_TYPE_RAY_QUERY_INTERSECTION: return IR(1105, 2); + case SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE: return IR(1107, 5); + case SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE: return IR(1112, 2); + case SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT: return IR(1114, 42); + case SPV_OPERAND_TYPE_SCOPE_ID: return IR(1156, 8); + case SPV_OPERAND_TYPE_SELECTION_CONTROL: return IR(1164, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_BUILD_IDENTIFIER_FLAGS: return IR(1167, 1); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING: return IR(1168, 8); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_COMPOSITE_TYPE: return IR(1176, 3); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_IMPORTED_ENTITY: return IR(1179, 2); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_INFO_FLAGS: return IR(1181, 20); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_OPERATION: return IR(1201, 10); + case SPV_OPERAND_TYPE_SHDEBUG100_DEBUG_TYPE_QUALIFIER: return IR(1211, 4); + case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: return IR(1215, 14); + case SPV_OPERAND_TYPE_STORAGE_CLASS: return IR(1229, 35); + case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL: return IR(1264, 4); + case SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS: return IR(1268, 3); + case SPV_OPERAND_TYPE_TENSOR_CLAMP_MODE: return IR(1271, 5); + case SPV_OPERAND_TYPE_TENSOR_OPERANDS: return IR(1276, 6); + case SPV_OPERAND_TYPE_OPTIONAL_IMAGE: return IR(914, 21); case SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER: return IR(0, 3); - case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(1027, 12); - case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(1068, 2); - case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(518, 6); - case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1012, 15); - case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(1078, 3); - case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(857, 3); - case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1270, 6); + case SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS: return IR(1033, 12); + case SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT: return IR(1074, 2); + case SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS: return IR(523, 6); + case SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS: return IR(1018, 15); + case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: return IR(1084, 3); + case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: return IR(863, 3); + case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: return IR(1276, 6); + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return IR(156, 302); default: break; } return IR(0,0); @@ -3006,1627 +3026,1668 @@ 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(24981, 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(25037, 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(25043, 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(25162, 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(25169, 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(25185, 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(25190, 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(25201, 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(25208, 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(25213, 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(25223, 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(25283, 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(25355, 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(25429, 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(25472, 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(25514, 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(25525, 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(25534, 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(25543, 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(25588, 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(25598, 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(25609, 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(25733, 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(25743, 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(25755, 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(25772, 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(25782, 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(25799, 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(25810, 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(25852, 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(25864, 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(25877, 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(25887, 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(25903, 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(25917, 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(25927, 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(25936, 19), IR(0, 0), IR(199, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpConstantTrue, true, true, IR(39, 2), IR(25955, 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(25968, 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(15254, 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(26020, 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(26116, 16), IR(0, 0), IR(201, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpConstantNull, true, true, IR(39, 2), IR(26132, 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(26145, 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(26162, 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(26180, 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(26193, 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(26256, 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(24333, 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(26305, 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(26323, 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(26335, 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(26348, 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(26357, 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(26415, 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(26420, 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(26426, 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(26437, 16), IR(0, 0), IR(202, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpAccessChain, true, true, IR(122, 4), IR(26453, 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(26465, 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(26485, 15), IR(0, 0), IR(204, 4), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpArrayLength, true, true, IR(156, 4), IR(26500, 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(26512, 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(26535, 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(26586, 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(26595, 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(26610, 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(26626, 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(26685, 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(26705, 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(26726, 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(26746, 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(26760, 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(26779, 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(26796, 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(26812, 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(26823, 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(26833, 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(26878, 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(26924, 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(26947, 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(26974, 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(27001, 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(27028, 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(27055, 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(27086, 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(27117, 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(27128, 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(27140, 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(27156, 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(27166, 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(24377, 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(27177, 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(27194, 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(27210, 18), IR(0, 0), IR(208, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQuerySize, true, true, IR(160, 3), IR(27228, 15), IR(0, 0), IR(208, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQueryLod, true, true, IR(172, 4), IR(27243, 14), IR(0, 0), IR(210, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQueryLevels, true, true, IR(160, 3), IR(27257, 17), IR(0, 0), IR(208, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageQuerySamples, true, true, IR(160, 3), IR(27274, 18), IR(0, 0), IR(208, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpConvertFToU, true, true, IR(160, 3), IR(27292, 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(27304, 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(27316, 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(27328, 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(27340, 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(27349, 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(27358, 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(27367, 14), IR(0, 0), IR(1, 0), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertPtrToU, true, true, IR(160, 3), IR(27381, 14), IR(0, 0), IR(199, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpSatConvertSToU, true, true, IR(160, 3), IR(27395, 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(27410, 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(27425, 14), IR(0, 0), IR(199, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpPtrCastToGeneric, true, true, IR(160, 3), IR(27439, 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(27456, 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(27473, 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(27498, 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(27506, 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(27514, 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(27522, 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(27527, 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(27532, 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(27537, 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(27542, 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(27547, 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(27552, 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(27557, 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(27562, 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(27567, 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(27572, 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(27577, 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(27582, 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(27587, 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(27592, 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(27610, 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(27628, 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(27646, 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(27664, 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(27682, 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(27695, 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(27699, 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(27709, 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(27720, 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(27733, 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(27746, 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(27750, 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(27754, 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(27760, 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(27766, 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(27775, 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(27784, 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(27795, 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(27809, 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(27817, 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(27827, 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(27840, 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(27856, 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(27866, 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(27877, 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(27888, 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(27895, 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(27902, 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(27912, 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(27925, 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(27938, 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(27956, 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(27974, 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(27984, 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(27994, 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(28009, 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(28024, 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(28034, 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(28046, 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(28059, 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(28074, 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(28087, 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(28102, 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(28118, 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(28136, 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(28154, 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(28174, 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(28195, 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(28218, 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(28236, 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(28257, 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(28274, 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(28284, 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(28295, 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(28306, 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(28310, 15), IR(0, 0), IR(211, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitFieldSExtract, true, true, IR(130, 5), IR(28325, 17), IR(0, 0), IR(211, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitFieldUExtract, true, true, IR(130, 5), IR(28342, 17), IR(0, 0), IR(211, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitReverse, true, true, IR(160, 3), IR(28359, 11), IR(0, 0), IR(211, 2), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpBitCount, true, true, IR(160, 3), IR(28370, 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(28379, 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(28384, 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(28389, 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(28396, 9), IR(0, 0), IR(213, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdyFine, true, true, IR(160, 3), IR(28405, 9), IR(0, 0), IR(213, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpFwidthFine, true, true, IR(160, 3), IR(28414, 11), IR(0, 0), IR(213, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdxCoarse, true, true, IR(160, 3), IR(28425, 11), IR(0, 0), IR(213, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpDPdyCoarse, true, true, IR(160, 3), IR(28436, 11), IR(0, 0), IR(213, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpFwidthCoarse, true, true, IR(160, 3), IR(28447, 13), IR(0, 0), IR(213, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kDerivative}, - {spv::Op::OpEmitVertex, false, false, IR(0, 0), IR(28460, 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(28471, 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(28484, 17), IR(0, 0), IR(110, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, - {spv::Op::OpEndStreamPrimitive, false, false, IR(10, 1), IR(28501, 19), IR(0, 0), IR(110, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kPrimitive}, - {spv::Op::OpControlBarrier, false, false, IR(221, 3), IR(28557, 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(28572, 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(28586, 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(28597, 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(28609, 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(28624, 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(28646, 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(28672, 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(28689, 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(28706, 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(28717, 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(28728, 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(28739, 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(28750, 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(28761, 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(28772, 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(28782, 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(28791, 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(28801, 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(28835, 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(28880, 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(28895, 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(28901, 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(28908, 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(28971, 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(28978, 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(28983, 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(28990, 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(29002, 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(29014, 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(29028, 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(29041, 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(29056, 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(29072, 9), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupAny, true, true, IR(274, 4), IR(29081, 9), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBroadcast, true, true, IR(278, 5), IR(29090, 15), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupIAdd, true, true, IR(283, 5), IR(29138, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFAdd, true, true, IR(283, 5), IR(29148, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMin, true, true, IR(283, 5), IR(29158, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMin, true, true, IR(283, 5), IR(29168, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMin, true, true, IR(283, 5), IR(29178, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMax, true, true, IR(283, 5), IR(29188, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMax, true, true, IR(283, 5), IR(29198, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMax, true, true, IR(283, 5), IR(29208, 10), IR(0, 0), IR(214, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpReadPipe, true, true, IR(215, 6), IR(29218, 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(29227, 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(29237, 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(29254, 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(29272, 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(29295, 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(29319, 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(29334, 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(29350, 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(29367, 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(29385, 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(29403, 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(29431, 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(29460, 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(29480, 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(29501, 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(29515, 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(29529, 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(29559, 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(29591, 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(29614, 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(29654, 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(29666, 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(29679, 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(29695, 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(29708, 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(29727, 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(29753, 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(29769, 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(29782, 29), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleExplicitLod, true, true, IR(190, 5), IR(29811, 29), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleDrefImplicitLod, true, true, IR(195, 6), IR(29840, 33), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleDrefExplicitLod, true, true, IR(201, 6), IR(29873, 33), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjImplicitLod, true, true, IR(185, 5), IR(29906, 33), IR(0, 0), IR(215, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjExplicitLod, true, true, IR(190, 5), IR(29939, 33), IR(0, 0), IR(215, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjDrefImplicitLod, true, true, IR(195, 6), IR(29972, 37), IR(0, 0), IR(215, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseSampleProjDrefExplicitLod, true, true, IR(201, 6), IR(30009, 37), IR(0, 0), IR(215, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseFetch, true, true, IR(185, 5), IR(30046, 17), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseGather, true, true, IR(195, 6), IR(30063, 18), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseDrefGather, true, true, IR(195, 6), IR(30081, 22), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageSparseTexelsResident, true, true, IR(160, 3), IR(30103, 26), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpNoLine, false, false, IR(0, 0), IR(30129, 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(30136, 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(30157, 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(30173, 16), IR(0, 0), IR(215, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,0), 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpSizeOf, true, true, IR(160, 3), IR(30189, 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(30196, 16), IR(0, 0), IR(216, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpConstantPipeStorage, true, true, IR(335, 5), IR(30212, 20), IR(0, 0), IR(216, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpCreatePipeFromPipeStorage, true, true, IR(160, 3), IR(30232, 26), IR(0, 0), IR(216, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpGetKernelLocalSizeForSubgroupCount, true, true, IR(325, 7), IR(30258, 35), IR(0, 0), IR(149, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpGetKernelMaxNumSubgroups, true, true, IR(215, 6), IR(30293, 25), IR(0, 0), IR(149, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kDevice_Side_Enqueue}, - {spv::Op::OpTypeNamedBarrier, true, false, IR(68, 1), IR(30318, 17), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpNamedBarrierInitialize, true, true, IR(160, 3), IR(30335, 23), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpMemoryNamedBarrier, false, false, IR(332, 3), IR(30358, 19), IR(0, 0), IR(217, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,1), 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpModuleProcessed, false, false, IR(11, 1), IR(30377, 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(30393, 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(30409, 11), IR(0, 0), IR(1, 0), IR(154, 1), SPV_SPIRV_VERSION_WORD(1,2), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpGroupNonUniformElect, true, true, IR(340, 3), IR(30420, 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(30441, 19), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformAny, true, true, IR(274, 4), IR(30460, 19), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformAllEqual, true, true, IR(274, 4), IR(30479, 24), IR(0, 0), IR(218, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBroadcast, true, true, IR(278, 5), IR(30503, 25), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBroadcastFirst, true, true, IR(274, 4), IR(30528, 30), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallot, true, true, IR(274, 4), IR(5569, 22), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformInverseBallot, true, true, IR(274, 4), IR(30558, 29), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotBitExtract, true, true, IR(278, 5), IR(30587, 32), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotBitCount, true, true, IR(283, 5), IR(30619, 30), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotFindLSB, true, true, IR(274, 4), IR(30649, 29), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBallotFindMSB, true, true, IR(274, 4), IR(30678, 29), IR(0, 0), IR(219, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffle, true, true, IR(278, 5), IR(8659, 23), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffleXor, true, true, IR(278, 5), IR(30707, 26), IR(0, 0), IR(220, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffleUp, true, true, IR(278, 5), IR(30733, 25), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformShuffleDown, true, true, IR(278, 5), IR(30758, 27), IR(0, 0), IR(221, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformIAdd, true, true, IR(343, 6), IR(30785, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFAdd, true, true, IR(343, 6), IR(30805, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformIMul, true, true, IR(343, 6), IR(30825, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFMul, true, true, IR(343, 6), IR(30845, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformSMin, true, true, IR(343, 6), IR(30865, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformUMin, true, true, IR(343, 6), IR(30885, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFMin, true, true, IR(343, 6), IR(30905, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformSMax, true, true, IR(343, 6), IR(30925, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformUMax, true, true, IR(343, 6), IR(30945, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformFMax, true, true, IR(343, 6), IR(30965, 20), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBitwiseAnd, true, true, IR(343, 6), IR(30985, 26), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBitwiseOr, true, true, IR(343, 6), IR(31011, 25), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformBitwiseXor, true, true, IR(343, 6), IR(31036, 26), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformLogicalAnd, true, true, IR(343, 6), IR(31062, 26), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformLogicalOr, true, true, IR(343, 6), IR(31088, 25), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformLogicalXor, true, true, IR(343, 6), IR(31113, 26), IR(0, 0), IR(222, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformQuadBroadcast, true, true, IR(278, 5), IR(31139, 29), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformQuadSwap, true, true, IR(278, 5), IR(31168, 24), IR(0, 0), IR(225, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpCopyLogical, true, true, IR(160, 3), IR(31192, 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(31204, 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(31213, 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(31225, 8), IR(0, 0), IR(226, 3), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpColorAttachmentReadEXT, true, true, IR(349, 4), IR(31233, 23), IR(0, 0), IR(141, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpDepthAttachmentReadEXT, true, true, IR(353, 3), IR(31256, 23), IR(0, 0), IR(150, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpStencilAttachmentReadEXT, true, true, IR(353, 3), IR(31279, 25), IR(0, 0), IR(151, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpTypeTensorARM, true, false, IR(356, 4), IR(31304, 14), IR(0, 0), IR(198, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTensorReadARM, true, true, IR(360, 5), IR(31360, 14), IR(0, 0), IR(198, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, - {spv::Op::OpTensorWriteARM, false, false, IR(365, 4), IR(31374, 15), IR(0, 0), IR(198, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, - {spv::Op::OpTensorQuerySizeARM, true, true, IR(172, 4), IR(31389, 19), IR(0, 0), IR(198, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, - {spv::Op::OpTerminateInvocation, false, false, IR(0, 0), IR(31408, 20), IR(0, 0), IR(3, 1), IR(164, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpTypeUntypedPointerKHR, true, false, IR(369, 2), IR(31428, 22), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpUntypedVariableKHR, true, true, IR(371, 5), IR(31450, 19), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedAccessChainKHR, true, true, IR(151, 5), IR(31469, 22), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedInBoundsAccessChainKHR, true, true, IR(151, 5), IR(31491, 30), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpSubgroupBallotKHR, true, true, IR(160, 3), IR(5330, 18), IR(0, 0), IR(230, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupFirstInvocationKHR, true, true, IR(160, 3), IR(31521, 27), IR(0, 0), IR(230, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpUntypedPtrAccessChainKHR, true, true, IR(376, 6), IR(31548, 25), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedInBoundsPtrAccessChainKHR, true, true, IR(376, 6), IR(31573, 33), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedArrayLengthKHR, true, true, IR(382, 5), IR(31606, 22), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpUntypedPrefetchKHR, false, false, IR(387, 5), IR(31628, 19), IR(0, 0), IR(229, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpSubgroupAllKHR, true, true, IR(160, 3), IR(31647, 15), IR(0, 0), IR(231, 1), IR(40, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupAnyKHR, true, true, IR(160, 3), IR(31662, 15), IR(0, 0), IR(231, 1), IR(40, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupAllEqualKHR, true, true, IR(160, 3), IR(31677, 20), IR(0, 0), IR(231, 1), IR(40, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupNonUniformRotateKHR, true, true, IR(392, 6), IR(13128, 25), IR(0, 0), IR(232, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupReadInvocationKHR, true, true, IR(172, 4), IR(31697, 26), IR(0, 0), IR(230, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpExtInstWithForwardRefsKHR, true, true, IR(398, 5), IR(31723, 26), IR(0, 0), IR(1, 0), IR(165, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, - {spv::Op::OpTraceRayKHR, false, false, IR(403, 11), IR(31749, 12), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpExecuteCallableKHR, false, false, IR(36, 2), IR(31761, 19), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertUToAccelerationStructureKHR, true, true, IR(160, 3), IR(31780, 35), IR(0, 0), IR(233, 2), IR(166, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIgnoreIntersectionKHR, false, false, IR(0, 0), IR(31815, 22), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTerminateRayKHR, false, false, IR(0, 0), IR(31837, 16), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSDot, true, true, IR(414, 5), IR(31900, 5), IR(93, 1), IR(235, 1), IR(120, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUDot, true, true, IR(414, 5), IR(31913, 5), IR(94, 1), IR(235, 1), IR(120, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSUDot, true, true, IR(414, 5), IR(31926, 6), IR(95, 1), IR(235, 1), IR(120, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSDotAccSat, true, true, IR(419, 6), IR(31941, 11), IR(96, 1), IR(235, 1), IR(120, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpUDotAccSat, true, true, IR(419, 6), IR(31966, 11), IR(97, 1), IR(235, 1), IR(120, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpSUDotAccSat, true, true, IR(419, 6), IR(31991, 12), IR(98, 1), IR(235, 1), IR(120, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpTypeCooperativeMatrixKHR, true, false, IR(425, 6), IR(32018, 25), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCooperativeMatrixLoadKHR, true, true, IR(431, 6), IR(32043, 25), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixStoreKHR, false, false, IR(437, 5), IR(32068, 26), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixMulAddKHR, true, true, IR(442, 6), IR(32148, 27), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpCooperativeMatrixLengthKHR, true, true, IR(160, 3), IR(32175, 27), IR(0, 0), IR(236, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(32202, 30), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(32232, 34), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpCompositeConstructReplicateEXT, true, true, IR(160, 3), IR(32266, 31), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpTypeRayQueryKHR, true, false, IR(68, 1), IR(32297, 16), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpRayQueryInitializeKHR, false, false, IR(448, 8), IR(32313, 22), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryTerminateKHR, false, false, IR(10, 1), IR(32335, 21), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGenerateIntersectionKHR, false, false, IR(36, 2), IR(32356, 32), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryConfirmIntersectionKHR, false, false, IR(10, 1), IR(32388, 31), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryProceedKHR, true, true, IR(160, 3), IR(32419, 19), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionTypeKHR, true, true, IR(172, 4), IR(32438, 31), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpImageSampleWeightedQCOM, true, true, IR(130, 5), IR(32469, 24), IR(0, 0), IR(238, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBoxFilterQCOM, true, true, IR(130, 5), IR(32493, 19), IR(0, 0), IR(239, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchSSDQCOM, true, true, IR(325, 7), IR(32512, 23), IR(0, 0), IR(240, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchSADQCOM, true, true, IR(325, 7), IR(32535, 23), IR(0, 0), IR(240, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchWindowSSDQCOM, true, true, IR(325, 7), IR(32558, 29), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchWindowSADQCOM, true, true, IR(325, 7), IR(32587, 29), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchGatherSSDQCOM, true, true, IR(325, 7), IR(32616, 29), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpImageBlockMatchGatherSADQCOM, true, true, IR(325, 7), IR(32645, 29), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpGroupIAddNonUniformAMD, true, true, IR(283, 5), IR(32674, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFAddNonUniformAMD, true, true, IR(283, 5), IR(32697, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMinNonUniformAMD, true, true, IR(283, 5), IR(32720, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMinNonUniformAMD, true, true, IR(283, 5), IR(32743, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMinNonUniformAMD, true, true, IR(283, 5), IR(32766, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMaxNonUniformAMD, true, true, IR(283, 5), IR(32789, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupUMaxNonUniformAMD, true, true, IR(283, 5), IR(32812, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupSMaxNonUniformAMD, true, true, IR(283, 5), IR(32835, 23), IR(0, 0), IR(214, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpFragmentMaskFetchAMD, true, true, IR(172, 4), IR(32858, 21), IR(0, 0), IR(242, 1), IR(56, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFragmentFetchAMD, true, true, IR(130, 5), IR(32879, 17), IR(0, 0), IR(242, 1), IR(56, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpReadClockKHR, true, true, IR(340, 3), IR(32896, 13), IR(0, 0), IR(243, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAllocateNodePayloadsAMDX, true, true, IR(278, 5), IR(32909, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpEnqueueNodePayloadsAMDX, false, false, IR(10, 1), IR(32934, 24), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeNodePayloadArrayAMDX, true, false, IR(87, 2), IR(32958, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFinishWritingNodePayloadAMDX, true, true, IR(160, 3), IR(32983, 29), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpNodePayloadArrayLengthAMDX, true, true, IR(160, 3), IR(33012, 27), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIsNodePayloadValidAMDX, true, true, IR(172, 4), IR(33039, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConstantStringAMDX, true, false, IR(50, 2), IR(33062, 19), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSpecConstantStringAMDX, true, false, IR(50, 2), IR(33081, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpGroupNonUniformQuadAllKHR, true, true, IR(160, 3), IR(33104, 26), IR(0, 0), IR(158, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpGroupNonUniformQuadAnyKHR, true, true, IR(160, 3), IR(33130, 26), IR(0, 0), IR(158, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpHitObjectRecordHitMotionNV, false, false, IR(456, 14), IR(33156, 27), IR(0, 0), IR(244, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordHitWithIndexMotionNV, false, false, IR(470, 13), IR(33183, 36), IR(0, 0), IR(244, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordMissMotionNV, false, false, IR(483, 7), IR(33219, 28), IR(0, 0), IR(244, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetWorldToObjectNV, true, true, IR(160, 3), IR(33247, 28), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetObjectToWorldNV, true, true, IR(160, 3), IR(33275, 28), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetObjectRayDirectionNV, true, true, IR(160, 3), IR(33303, 33), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetObjectRayOriginNV, true, true, IR(160, 3), IR(33336, 30), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectTraceRayMotionNV, false, false, IR(470, 13), IR(33366, 26), IR(0, 0), IR(244, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetShaderRecordBufferHandleNV, true, true, IR(160, 3), IR(33392, 39), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV, true, true, IR(160, 3), IR(33431, 44), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordEmptyNV, false, false, IR(10, 1), IR(33475, 23), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectTraceRayNV, false, false, IR(490, 12), IR(33498, 20), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordHitNV, false, false, IR(470, 13), IR(33518, 21), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordHitWithIndexNV, false, false, IR(490, 12), IR(33539, 30), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectRecordMissNV, false, false, IR(502, 6), IR(33569, 22), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectExecuteShaderNV, false, false, IR(36, 2), IR(33591, 25), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetCurrentTimeNV, true, true, IR(160, 3), IR(33616, 26), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetAttributesNV, false, false, IR(36, 2), IR(33642, 25), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetHitKindNV, true, true, IR(160, 3), IR(33667, 22), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetPrimitiveIndexNV, true, true, IR(160, 3), IR(33689, 29), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetGeometryIndexNV, true, true, IR(160, 3), IR(33718, 28), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetInstanceIdNV, true, true, IR(160, 3), IR(33746, 25), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetInstanceCustomIndexNV, true, true, IR(160, 3), IR(33771, 34), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetWorldRayDirectionNV, true, true, IR(160, 3), IR(33805, 32), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetWorldRayOriginNV, true, true, IR(160, 3), IR(33837, 29), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetRayTMaxNV, true, true, IR(160, 3), IR(33866, 22), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetRayTMinNV, true, true, IR(160, 3), IR(33888, 22), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsEmptyNV, true, true, IR(160, 3), IR(33910, 19), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsHitNV, true, true, IR(160, 3), IR(33929, 17), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsMissNV, true, true, IR(160, 3), IR(33946, 18), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpReorderThreadWithHitObjectNV, false, false, IR(508, 3), IR(33964, 29), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpReorderThreadWithHintNV, false, false, IR(36, 2), IR(33993, 24), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeHitObjectNV, true, false, IR(68, 1), IR(34017, 16), IR(0, 0), IR(120, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpImageSampleFootprintNV, true, true, IR(511, 7), IR(34033, 23), IR(0, 0), IR(246, 1), IR(70, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpTypeCooperativeVectorNV, true, false, IR(89, 3), IR(34056, 24), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCooperativeVectorMatrixMulNV, true, true, IR(518, 13), IR(34080, 29), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorOuterProductAccumulateNV, false, false, IR(531, 7), IR(34109, 42), IR(0, 0), IR(248, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorReduceSumAccumulateNV, false, false, IR(33, 3), IR(34151, 39), IR(0, 0), IR(248, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorMatrixMulAddNV, true, true, IR(538, 16), IR(34190, 32), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixConvertNV, true, true, IR(160, 3), IR(34222, 27), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpEmitMeshTasksEXT, false, false, IR(554, 4), IR(34249, 17), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSetMeshOutputsEXT, false, false, IR(36, 2), IR(34266, 18), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpGroupNonUniformPartitionNV, true, true, IR(160, 3), IR(34284, 27), IR(0, 0), IR(179, 1), IR(73, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, - {spv::Op::OpWritePackedPrimitiveIndices4x8NV, false, false, IR(36, 2), IR(34311, 33), IR(0, 0), IR(50, 1), IR(18, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFetchMicroTriangleVertexPositionNV, true, true, IR(325, 7), IR(34344, 35), IR(0, 0), IR(250, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpFetchMicroTriangleVertexBarycentricNV, true, true, IR(325, 7), IR(34379, 38), IR(0, 0), IR(250, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeVectorLoadNV, true, true, IR(558, 5), IR(34417, 24), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeVectorStoreNV, false, false, IR(563, 4), IR(34441, 25), IR(0, 0), IR(247, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpReportIntersectionKHR, true, true, IR(172, 4), IR(34466, 22), IR(99, 1), IR(54, 2), IR(24, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIgnoreIntersectionNV, false, false, IR(0, 0), IR(34509, 21), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTerminateRayNV, false, false, IR(0, 0), IR(34530, 15), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTraceNV, false, false, IR(403, 11), IR(34545, 8), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTraceMotionNV, false, false, IR(490, 12), IR(34553, 14), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTraceRayMotionNV, false, false, IR(490, 12), IR(34567, 17), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR, true, true, IR(172, 4), IR(34584, 50), IR(0, 0), IR(251, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeAccelerationStructureKHR, true, false, IR(68, 1), IR(34634, 29), IR(100, 1), IR(252, 4), IR(168, 4), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpExecuteCallableNV, false, false, IR(36, 2), IR(34691, 18), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetClusterIdNV, true, true, IR(172, 4), IR(34709, 23), IR(0, 0), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetClusterIdNV, true, true, IR(160, 3), IR(34732, 24), IR(0, 0), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeCooperativeMatrixNV, true, false, IR(567, 5), IR(34756, 24), IR(0, 0), IR(256, 1), IR(77, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCooperativeMatrixLoadNV, true, true, IR(572, 6), IR(34780, 24), IR(0, 0), IR(256, 1), IR(77, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixStoreNV, false, false, IR(578, 5), IR(34804, 25), IR(0, 0), IR(256, 1), IR(77, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixMulAddNV, true, true, IR(130, 5), IR(34829, 26), IR(0, 0), IR(256, 1), IR(77, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixLengthNV, true, true, IR(160, 3), IR(34855, 26), IR(0, 0), IR(256, 1), IR(77, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpBeginInvocationInterlockEXT, false, false, IR(0, 0), IR(34881, 28), IR(0, 0), IR(257, 3), IR(78, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpEndInvocationInterlockEXT, false, false, IR(0, 0), IR(34909, 26), IR(0, 0), IR(257, 3), IR(78, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixReduceNV, true, true, IR(583, 5), IR(34978, 26), IR(0, 0), IR(260, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, - {spv::Op::OpCooperativeMatrixLoadTensorNV, true, true, IR(588, 7), IR(35079, 30), IR(0, 0), IR(196, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixStoreTensorNV, false, false, IR(595, 5), IR(35109, 31), IR(0, 0), IR(196, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpCooperativeMatrixPerElementOpNV, true, true, IR(151, 5), IR(35140, 32), IR(0, 0), IR(261, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kFunction}, - {spv::Op::OpTypeTensorLayoutNV, true, false, IR(89, 3), IR(35172, 19), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeTensorViewNV, true, false, IR(600, 4), IR(35191, 17), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpCreateTensorLayoutNV, true, true, IR(39, 2), IR(35208, 21), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetDimensionNV, true, true, IR(122, 4), IR(35229, 27), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetStrideNV, true, true, IR(122, 4), IR(35256, 24), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSliceNV, true, true, IR(122, 4), IR(35280, 20), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetClampValueNV, true, true, IR(172, 4), IR(35300, 28), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCreateTensorViewNV, true, true, IR(39, 2), IR(35328, 19), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorViewSetDimensionNV, true, true, IR(122, 4), IR(35347, 25), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorViewSetStrideNV, true, true, IR(122, 4), IR(35372, 22), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpDemoteToHelperInvocation, false, false, IR(0, 0), IR(11440, 25), IR(45, 1), IR(263, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, - {spv::Op::OpIsHelperInvocationEXT, true, true, IR(39, 2), IR(35394, 22), IR(0, 0), IR(263, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorViewSetClipNV, true, true, IR(325, 7), IR(35416, 20), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTensorLayoutSetBlockSizeNV, true, true, IR(122, 4), IR(35436, 27), IR(0, 0), IR(262, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpCooperativeMatrixTransposeNV, true, true, IR(160, 3), IR(35463, 29), IR(0, 0), IR(249, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertUToImageNV, true, true, IR(160, 3), IR(35492, 18), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertUToSamplerNV, true, true, IR(160, 3), IR(35510, 20), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertImageToUNV, true, true, IR(160, 3), IR(35530, 18), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertSamplerToUNV, true, true, IR(160, 3), IR(35548, 20), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertUToSampledImageNV, true, true, IR(160, 3), IR(35568, 25), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConvertSampledImageToUNV, true, true, IR(160, 3), IR(35593, 25), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSamplerImageAddressingModeNV, false, false, IR(0, 1), IR(35618, 29), IR(0, 0), IR(121, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRawAccessChainNV, true, true, IR(604, 7), IR(35699, 17), IR(0, 0), IR(185, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpRayQueryGetIntersectionSpherePositionNV, true, true, IR(172, 4), IR(35716, 40), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionSphereRadiusNV, true, true, IR(172, 4), IR(35756, 38), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionLSSPositionsNV, true, true, IR(172, 4), IR(35794, 38), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionLSSRadiiNV, true, true, IR(172, 4), IR(35832, 34), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionLSSHitValueNV, true, true, IR(172, 4), IR(35866, 37), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetSpherePositionNV, true, true, IR(160, 3), IR(35903, 29), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetSphereRadiusNV, true, true, IR(160, 3), IR(35932, 27), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetLSSPositionsNV, true, true, IR(160, 3), IR(35959, 27), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectGetLSSRadiiNV, true, true, IR(160, 3), IR(35986, 23), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsSphereHitNV, true, true, IR(160, 3), IR(36009, 23), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpHitObjectIsLSSHitNV, true, true, IR(160, 3), IR(36032, 20), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryIsSphereHitNV, true, true, IR(172, 4), IR(36052, 22), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryIsLSSHitNV, true, true, IR(172, 4), IR(36074, 19), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpSubgroupShuffleINTEL, true, true, IR(172, 4), IR(11888, 21), IR(0, 0), IR(264, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupShuffleDownINTEL, true, true, IR(130, 5), IR(36093, 25), IR(0, 0), IR(264, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupShuffleUpINTEL, true, true, IR(130, 5), IR(36118, 23), IR(0, 0), IR(264, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupShuffleXorINTEL, true, true, IR(172, 4), IR(36141, 24), IR(0, 0), IR(264, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupBlockReadINTEL, true, true, IR(160, 3), IR(36165, 23), IR(0, 0), IR(265, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupBlockWriteINTEL, false, false, IR(36, 2), IR(36188, 24), IR(0, 0), IR(265, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageBlockReadINTEL, true, true, IR(172, 4), IR(36212, 28), IR(0, 0), IR(266, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageBlockWriteINTEL, false, false, IR(33, 3), IR(36240, 29), IR(0, 0), IR(266, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageMediaBlockReadINTEL, true, true, IR(215, 6), IR(36269, 33), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupImageMediaBlockWriteINTEL, false, false, IR(611, 5), IR(36302, 34), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpUCountLeadingZerosINTEL, true, true, IR(160, 3), IR(36336, 24), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUCountTrailingZerosINTEL, true, true, IR(160, 3), IR(36360, 25), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAbsISubINTEL, true, true, IR(172, 4), IR(36385, 13), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAbsUSubINTEL, true, true, IR(172, 4), IR(36398, 13), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIAddSatINTEL, true, true, IR(172, 4), IR(36411, 13), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUAddSatINTEL, true, true, IR(172, 4), IR(36424, 13), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIAverageINTEL, true, true, IR(172, 4), IR(36437, 14), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUAverageINTEL, true, true, IR(172, 4), IR(36451, 14), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIAverageRoundedINTEL, true, true, IR(172, 4), IR(36465, 21), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUAverageRoundedINTEL, true, true, IR(172, 4), IR(36486, 21), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpISubSatINTEL, true, true, IR(172, 4), IR(36507, 13), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUSubSatINTEL, true, true, IR(172, 4), IR(36520, 13), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpIMul32x16INTEL, true, true, IR(172, 4), IR(36533, 15), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpUMul32x16INTEL, true, true, IR(172, 4), IR(36548, 15), IR(0, 0), IR(268, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpConstantFunctionPointerINTEL, true, true, IR(160, 3), IR(36563, 29), IR(0, 0), IR(194, 1), IR(93, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFunctionPointerCallINTEL, true, true, IR(107, 3), IR(36592, 25), IR(0, 0), IR(194, 1), IR(93, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAsmTargetINTEL, true, false, IR(50, 2), IR(36617, 15), IR(0, 0), IR(124, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAsmINTEL, true, true, IR(616, 6), IR(12106, 9), IR(0, 0), IR(124, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAsmCallINTEL, true, true, IR(122, 4), IR(36632, 13), IR(0, 0), IR(124, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAtomicFMinEXT, true, true, IR(235, 6), IR(36645, 14), IR(0, 0), IR(269, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAtomicFMaxEXT, true, true, IR(235, 6), IR(36659, 14), IR(0, 0), IR(269, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpAssumeTrueKHR, false, false, IR(10, 1), IR(36673, 14), IR(0, 0), IR(273, 1), IR(97, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpExpectKHR, true, true, IR(172, 4), IR(36687, 10), IR(0, 0), IR(273, 1), IR(97, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpDecorateString, false, false, IR(163, 2), IR(36697, 15), IR(101, 1), IR(1, 0), IR(172, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpMemberDecorateString, false, false, IR(165, 3), IR(36733, 21), IR(102, 1), IR(1, 0), IR(172, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, - {spv::Op::OpVmeImageINTEL, true, true, IR(172, 4), IR(36781, 14), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeVmeImageINTEL, true, false, IR(87, 2), IR(36795, 18), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImePayloadINTEL, true, false, IR(68, 1), IR(36813, 23), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcRefPayloadINTEL, true, false, IR(68, 1), IR(36836, 23), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcSicPayloadINTEL, true, false, IR(68, 1), IR(36859, 23), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcMcePayloadINTEL, true, false, IR(68, 1), IR(36882, 23), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcMceResultINTEL, true, false, IR(68, 1), IR(36905, 22), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeResultINTEL, true, false, IR(68, 1), IR(36927, 22), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL, true, false, IR(68, 1), IR(36949, 46), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL, true, false, IR(68, 1), IR(36995, 44), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeSingleReferenceStreaminINTEL, true, false, IR(68, 1), IR(37039, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcImeDualReferenceStreaminINTEL, true, false, IR(68, 1), IR(37078, 37), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcRefResultINTEL, true, false, IR(68, 1), IR(37115, 22), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpTypeAvcSicResultINTEL, true, false, IR(68, 1), IR(37137, 22), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(37159, 60), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(37219, 53), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL, true, true, IR(172, 4), IR(37272, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL, true, true, IR(172, 4), IR(37319, 40), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(37359, 51), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(37410, 44), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(37454, 51), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL, true, true, IR(172, 4), IR(37505, 56), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL, true, true, IR(39, 2), IR(37561, 50), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL, true, true, IR(39, 2), IR(37611, 52), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL, true, true, IR(39, 2), IR(37663, 49), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL, true, true, IR(215, 6), IR(37712, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL, true, true, IR(172, 4), IR(37759, 50), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL, true, true, IR(39, 2), IR(37809, 51), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL, true, true, IR(39, 2), IR(37860, 56), IR(0, 0), IR(277, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL, true, true, IR(160, 3), IR(37916, 33), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(37949, 52), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(38001, 61), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(38062, 61), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToImePayloadINTEL, true, true, IR(160, 3), IR(38123, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToImeResultINTEL, true, true, IR(160, 3), IR(38162, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToRefPayloadINTEL, true, true, IR(160, 3), IR(38200, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToRefResultINTEL, true, true, IR(160, 3), IR(38239, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToSicPayloadINTEL, true, true, IR(160, 3), IR(38277, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceConvertToSicResultINTEL, true, true, IR(160, 3), IR(38316, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetMotionVectorsINTEL, true, true, IR(160, 3), IR(38354, 36), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterDistortionsINTEL, true, true, IR(160, 3), IR(38390, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL, true, true, IR(160, 3), IR(38429, 43), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterMajorShapeINTEL, true, true, IR(160, 3), IR(38472, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterMinorShapeINTEL, true, true, IR(160, 3), IR(38510, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterDirectionsINTEL, true, true, IR(160, 3), IR(38548, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL, true, true, IR(160, 3), IR(38586, 45), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL, true, true, IR(160, 3), IR(38631, 40), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(38671, 62), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeInitializeINTEL, true, true, IR(130, 5), IR(38733, 30), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetSingleReferenceINTEL, true, true, IR(130, 5), IR(38763, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetDualReferenceINTEL, true, true, IR(215, 6), IR(38801, 36), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeRefWindowSizeINTEL, true, true, IR(172, 4), IR(38837, 33), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeAdjustRefOffsetINTEL, true, true, IR(215, 6), IR(38870, 35), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(38905, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL, true, true, IR(172, 4), IR(38944, 43), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(38987, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL, true, true, IR(172, 4), IR(39034, 54), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeSetWeightedSadINTEL, true, true, IR(172, 4), IR(39088, 34), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(39122, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(39169, 45), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL, true, true, IR(215, 6), IR(39214, 55), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL, true, true, IR(325, 7), IR(39269, 53), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL, true, true, IR(130, 5), IR(39322, 56), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL, true, true, IR(215, 6), IR(39378, 54), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL, true, true, IR(215, 6), IR(39432, 58), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL, true, true, IR(325, 7), IR(39490, 56), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeConvertToMceResultINTEL, true, true, IR(160, 3), IR(39546, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL, true, true, IR(160, 3), IR(39584, 46), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL, true, true, IR(160, 3), IR(39630, 44), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL, true, true, IR(160, 3), IR(39674, 49), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL, true, true, IR(160, 3), IR(39723, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL, true, true, IR(172, 4), IR(39770, 70), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL, true, true, IR(172, 4), IR(39840, 68), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL, true, true, IR(172, 4), IR(39908, 69), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL, true, true, IR(130, 5), IR(39977, 68), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL, true, true, IR(130, 5), IR(40045, 66), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL, true, true, IR(130, 5), IR(40111, 67), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetBorderReachedINTEL, true, true, IR(172, 4), IR(40178, 36), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL, true, true, IR(160, 3), IR(40214, 48), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL, true, true, IR(160, 3), IR(40262, 59), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL, true, true, IR(160, 3), IR(40321, 58), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL, true, true, IR(160, 3), IR(40379, 56), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcFmeInitializeINTEL, true, true, IR(622, 9), IR(40435, 30), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcBmeInitializeINTEL, true, true, IR(631, 10), IR(40465, 30), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(40495, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(40534, 46), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(40580, 43), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(40623, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(40670, 45), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(40715, 46), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(40761, 56), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcRefConvertToMceResultINTEL, true, true, IR(160, 3), IR(40817, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicInitializeINTEL, true, true, IR(160, 3), IR(40855, 30), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConfigureSkcINTEL, true, true, IR(288, 8), IR(40885, 32), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConfigureIpeLumaINTEL, true, true, IR(631, 10), IR(40917, 36), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL, true, true, IR(641, 13), IR(40953, 42), IR(0, 0), IR(277, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL, true, true, IR(172, 4), IR(40995, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(41034, 39), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(41073, 44), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL, true, true, IR(215, 6), IR(41117, 48), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL, true, true, IR(172, 4), IR(41165, 50), IR(0, 0), IR(277, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(41215, 43), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL, true, true, IR(172, 4), IR(41258, 48), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL, true, true, IR(172, 4), IR(41306, 43), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateIpeINTEL, true, true, IR(172, 4), IR(41349, 31), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(41380, 47), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(41427, 45), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(41472, 46), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(41518, 56), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicConvertToMceResultINTEL, true, true, IR(160, 3), IR(41574, 38), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL, true, true, IR(160, 3), IR(41612, 35), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL, true, true, IR(160, 3), IR(41647, 44), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL, true, true, IR(160, 3), IR(41691, 46), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL, true, true, IR(160, 3), IR(41737, 41), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetIpeChromaModeINTEL, true, true, IR(160, 3), IR(41778, 36), IR(0, 0), IR(277, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL, true, true, IR(160, 3), IR(41814, 50), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL, true, true, IR(160, 3), IR(41864, 48), IR(0, 0), IR(275, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSubgroupAvcSicGetInterRawSadsINTEL, true, true, IR(160, 3), IR(41912, 35), IR(0, 0), IR(274, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpVariableLengthArrayINTEL, true, true, IR(160, 3), IR(12344, 25), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpSaveMemoryINTEL, true, true, IR(39, 2), IR(41947, 16), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpRestoreMemoryINTEL, false, false, IR(10, 1), IR(41963, 19), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinCosPiINTEL, true, true, IR(654, 8), IR(41982, 28), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCastINTEL, true, true, IR(654, 8), IR(42010, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCastFromIntINTEL, true, true, IR(654, 8), IR(42034, 31), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCastToIntINTEL, true, true, IR(654, 8), IR(42065, 29), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatAddINTEL, true, true, IR(662, 10), IR(42094, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSubINTEL, true, true, IR(662, 10), IR(42117, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatMulINTEL, true, true, IR(662, 10), IR(42140, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatDivINTEL, true, true, IR(662, 10), IR(42163, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatGTINTEL, true, true, IR(672, 6), IR(42186, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatGEINTEL, true, true, IR(672, 6), IR(42208, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLTINTEL, true, true, IR(672, 6), IR(42230, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLEINTEL, true, true, IR(672, 6), IR(42252, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatEQINTEL, true, true, IR(672, 6), IR(42274, 22), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatRecipINTEL, true, true, IR(654, 8), IR(42296, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatRSqrtINTEL, true, true, IR(654, 8), IR(42321, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCbrtINTEL, true, true, IR(654, 8), IR(42346, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatHypotINTEL, true, true, IR(662, 10), IR(42370, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSqrtINTEL, true, true, IR(654, 8), IR(42395, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLogINTEL, true, true, IR(654, 8), IR(42419, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLog2INTEL, true, true, IR(654, 8), IR(42442, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLog10INTEL, true, true, IR(654, 8), IR(42466, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatLog1pINTEL, true, true, IR(654, 8), IR(42491, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExpINTEL, true, true, IR(654, 8), IR(42516, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExp2INTEL, true, true, IR(654, 8), IR(42539, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExp10INTEL, true, true, IR(654, 8), IR(42563, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatExpm1INTEL, true, true, IR(654, 8), IR(42588, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinINTEL, true, true, IR(654, 8), IR(42613, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCosINTEL, true, true, IR(654, 8), IR(42636, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinCosINTEL, true, true, IR(654, 8), IR(42659, 26), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatSinPiINTEL, true, true, IR(654, 8), IR(42685, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatCosPiINTEL, true, true, IR(654, 8), IR(42710, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatASinINTEL, true, true, IR(654, 8), IR(42735, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatASinPiINTEL, true, true, IR(654, 8), IR(42759, 26), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatACosINTEL, true, true, IR(654, 8), IR(42785, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatACosPiINTEL, true, true, IR(654, 8), IR(42809, 26), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatATanINTEL, true, true, IR(654, 8), IR(42835, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatATanPiINTEL, true, true, IR(654, 8), IR(42859, 26), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatATan2INTEL, true, true, IR(662, 10), IR(42885, 25), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatPowINTEL, true, true, IR(662, 10), IR(42910, 23), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatPowRINTEL, true, true, IR(662, 10), IR(42933, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpArbitraryFloatPowNINTEL, true, true, IR(662, 10), IR(42957, 24), IR(0, 0), IR(280, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpLoopControlINTEL, false, false, IR(18, 1), IR(42981, 17), IR(0, 0), IR(281, 1), IR(104, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAliasDomainDeclINTEL, true, false, IR(678, 2), IR(42998, 21), IR(0, 0), IR(130, 1), IR(111, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAliasScopeDeclINTEL, true, false, IR(680, 3), IR(43019, 20), IR(0, 0), IR(130, 1), IR(111, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpAliasScopeListDeclINTEL, true, false, IR(92, 2), IR(43039, 24), IR(0, 0), IR(130, 1), IR(111, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSqrtINTEL, true, true, IR(654, 8), IR(43063, 15), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedRecipINTEL, true, true, IR(654, 8), IR(43078, 16), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedRsqrtINTEL, true, true, IR(654, 8), IR(43094, 16), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinINTEL, true, true, IR(654, 8), IR(43110, 14), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedCosINTEL, true, true, IR(654, 8), IR(43124, 14), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinCosINTEL, true, true, IR(654, 8), IR(43138, 17), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinPiINTEL, true, true, IR(654, 8), IR(43155, 16), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedCosPiINTEL, true, true, IR(654, 8), IR(43171, 16), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedSinCosPiINTEL, true, true, IR(654, 8), IR(43187, 19), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedLogINTEL, true, true, IR(654, 8), IR(43206, 14), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpFixedExpINTEL, true, true, IR(654, 8), IR(43220, 14), IR(0, 0), IR(184, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpPtrCastToCrossWorkgroupINTEL, true, true, IR(160, 3), IR(43234, 29), IR(0, 0), IR(195, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpCrossWorkgroupCastToPtrINTEL, true, true, IR(160, 3), IR(43263, 29), IR(0, 0), IR(195, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, - {spv::Op::OpReadPipeBlockingINTEL, true, true, IR(172, 4), IR(43292, 22), IR(0, 0), IR(282, 1), IR(118, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpWritePipeBlockingINTEL, true, true, IR(172, 4), IR(43314, 23), IR(0, 0), IR(282, 1), IR(118, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kPipe}, - {spv::Op::OpFPGARegINTEL, true, true, IR(160, 3), IR(12903, 13), IR(0, 0), IR(283, 1), IR(119, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetRayTMinKHR, true, true, IR(160, 3), IR(43337, 22), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetRayFlagsKHR, true, true, IR(160, 3), IR(43359, 23), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionTKHR, true, true, IR(172, 4), IR(43382, 28), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR, true, true, IR(172, 4), IR(43410, 46), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionInstanceIdKHR, true, true, IR(172, 4), IR(43456, 37), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR, true, true, IR(172, 4), IR(43493, 65), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionGeometryIndexKHR, true, true, IR(172, 4), IR(43558, 40), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionPrimitiveIndexKHR, true, true, IR(172, 4), IR(43598, 41), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionBarycentricsKHR, true, true, IR(172, 4), IR(43639, 39), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionFrontFaceKHR, true, true, IR(172, 4), IR(43678, 36), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR, true, true, IR(160, 3), IR(43714, 46), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionObjectRayDirectionKHR, true, true, IR(172, 4), IR(43760, 45), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionObjectRayOriginKHR, true, true, IR(172, 4), IR(43805, 42), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetWorldRayDirectionKHR, true, true, IR(160, 3), IR(43847, 32), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetWorldRayOriginKHR, true, true, IR(160, 3), IR(43879, 29), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionObjectToWorldKHR, true, true, IR(172, 4), IR(43908, 40), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpRayQueryGetIntersectionWorldToObjectKHR, true, true, IR(172, 4), IR(43948, 40), IR(0, 0), IR(188, 1), IR(47, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpAtomicFAddEXT, true, true, IR(235, 6), IR(43988, 14), IR(0, 0), IR(284, 4), IR(126, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, - {spv::Op::OpTypeBufferSurfaceINTEL, true, false, IR(100, 2), IR(44002, 23), IR(0, 0), IR(122, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpTypeStructContinuedINTEL, false, false, IR(683, 1), IR(44025, 25), IR(0, 0), IR(288, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpConstantCompositeContinuedINTEL, false, false, IR(683, 1), IR(44050, 32), IR(0, 0), IR(288, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpSpecConstantCompositeContinuedINTEL, false, false, IR(683, 1), IR(44082, 36), IR(0, 0), IR(288, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, - {spv::Op::OpCompositeConstructContinuedINTEL, true, true, IR(107, 3), IR(44118, 33), IR(0, 0), IR(288, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, - {spv::Op::OpConvertFToBF16INTEL, true, true, IR(160, 3), IR(44151, 20), IR(0, 0), IR(289, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpConvertBF16ToFINTEL, true, true, IR(160, 3), IR(44171, 20), IR(0, 0), IR(289, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpControlBarrierArriveINTEL, false, false, IR(221, 3), IR(44191, 26), IR(0, 0), IR(290, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpControlBarrierWaitINTEL, false, false, IR(221, 3), IR(44217, 24), IR(0, 0), IR(290, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, - {spv::Op::OpArithmeticFenceEXT, true, true, IR(160, 3), IR(13335, 19), IR(0, 0), IR(291, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, - {spv::Op::OpTaskSequenceCreateINTEL, true, true, IR(684, 7), IR(44241, 24), IR(0, 0), IR(292, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTaskSequenceAsyncINTEL, false, false, IR(168, 2), IR(44265, 23), IR(0, 0), IR(292, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTaskSequenceGetINTEL, true, true, IR(160, 3), IR(44288, 21), IR(0, 0), IR(292, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTaskSequenceReleaseINTEL, false, false, IR(10, 1), IR(44309, 25), IR(0, 0), IR(292, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, - {spv::Op::OpTypeTaskSequenceINTEL, true, false, IR(68, 1), IR(44334, 22), IR(0, 0), IR(292, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, - {spv::Op::OpSubgroupBlockPrefetchINTEL, false, false, IR(139, 3), IR(44356, 27), IR(0, 0), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockLoadINTEL, false, false, IR(691, 10), IR(44383, 25), IR(0, 0), IR(105, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockLoadTransformINTEL, false, false, IR(691, 10), IR(44408, 34), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockLoadTransposeINTEL, false, false, IR(691, 10), IR(44442, 34), IR(0, 0), IR(295, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockPrefetchINTEL, false, false, IR(701, 9), IR(44476, 29), IR(0, 0), IR(105, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroup2DBlockStoreINTEL, false, false, IR(691, 10), IR(44505, 26), IR(0, 0), IR(105, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpSubgroupMatrixMultiplyAccumulateINTEL, true, true, IR(710, 7), IR(13673, 38), IR(0, 0), IR(296, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpBitwiseFunctionINTEL, true, true, IR(215, 6), IR(44593, 21), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBit}, - {spv::Op::OpGroupIMulKHR, true, true, IR(283, 5), IR(44614, 13), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupFMulKHR, true, true, IR(283, 5), IR(44627, 13), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBitwiseAndKHR, true, true, IR(283, 5), IR(44640, 19), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBitwiseOrKHR, true, true, IR(283, 5), IR(44659, 18), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupBitwiseXorKHR, true, true, IR(283, 5), IR(44677, 19), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupLogicalAndKHR, true, true, IR(283, 5), IR(44696, 19), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupLogicalOrKHR, true, true, IR(283, 5), IR(44715, 18), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpGroupLogicalXorKHR, true, true, IR(283, 5), IR(44733, 19), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, - {spv::Op::OpRoundFToTF32INTEL, true, true, IR(160, 3), IR(44752, 18), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, - {spv::Op::OpMaskedGatherINTEL, true, true, IR(717, 6), IR(44770, 18), IR(0, 0), IR(300, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpMaskedScatterINTEL, false, false, IR(723, 4), IR(44788, 19), IR(0, 0), IR(300, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, - {spv::Op::OpConvertHandleToImageINTEL, true, true, IR(160, 3), IR(44807, 26), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpConvertHandleToSamplerINTEL, true, true, IR(160, 3), IR(44833, 28), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, - {spv::Op::OpConvertHandleToSampledImageINTEL, true, true, IR(160, 3), IR(44861, 33), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, +static const std::array kInstructionDesc{{ + {spv::Op::OpNop, false, false, IR(0, 0), IR(25195, 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(25251, 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(25257, 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(25376, 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(25383, 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(25399, 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(25404, 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(25415, 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(25422, 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(25427, 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(25437, 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(25497, 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(25569, 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(25643, 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(25686, 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(25728, 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(25739, 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(25748, 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(25757, 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(25802, 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(25812, 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(25823, 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(25947, 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(25957, 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(25969, 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(25986, 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(25996, 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(26013, 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(26024, 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(26066, 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(26078, 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(26091, 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(26101, 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(26117, 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(26131, 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(26141, 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(26150, 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(26169, 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(26182, 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(15451, 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(26234, 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(26330, 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(26346, 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(26359, 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(26376, 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(26394, 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(26407, 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(26470, 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(24547, 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(26519, 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(26537, 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(26549, 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(26562, 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(26571, 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(26629, 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(26634, 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(26640, 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(26651, 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(26667, 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(26679, 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(26699, 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(26714, 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(26726, 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(26749, 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(26800, 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(26809, 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(26824, 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(26840, 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(26899, 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(26919, 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(26940, 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(26960, 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(26974, 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(26993, 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(27010, 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(27026, 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(27037, 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(27047, 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(27092, 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(27138, 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(27161, 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(27188, 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(27215, 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(27242, 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(27269, 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(27300, 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(27331, 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(27342, 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(27354, 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(27370, 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(27380, 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(24591, 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(27391, 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(27408, 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(27424, 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(27442, 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(27457, 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(27471, 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(27488, 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(27506, 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(27518, 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(27530, 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(27542, 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(27554, 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(27563, 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(27572, 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(27581, 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(27595, 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(27609, 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(27624, 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(27639, 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(27653, 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(27670, 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(27687, 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(27712, 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(27720, 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(27728, 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(27736, 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(27741, 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(27746, 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(27751, 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(27756, 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(27761, 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(27766, 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(27771, 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(27776, 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(27781, 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(27786, 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(27791, 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(27796, 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(27801, 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(27806, 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(27824, 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(27842, 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(27860, 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(27878, 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(27896, 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(27909, 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(27913, 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(27923, 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(27934, 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(27947, 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(27960, 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(27964, 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(27968, 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(27974, 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(27980, 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(27989, 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(27998, 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(28009, 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(28023, 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(28031, 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(28041, 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(28054, 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(28070, 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(28080, 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(28091, 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(28102, 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(28109, 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(28116, 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(28126, 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(28139, 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(28152, 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(28170, 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(28188, 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(28198, 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(28208, 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(28223, 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(28238, 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(28248, 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(28260, 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(28273, 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(28288, 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(28301, 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(28316, 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(28332, 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(28350, 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(28368, 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(28388, 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(28409, 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(28432, 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(28450, 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(28471, 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(28488, 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(28498, 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(28509, 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(28520, 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(28524, 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(28539, 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(28556, 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(28573, 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(28584, 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(28593, 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(28598, 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(28603, 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(28610, 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(28619, 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(28628, 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(28639, 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(28650, 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(28661, 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(28674, 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(28685, 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(28698, 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(28715, 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(28771, 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(28786, 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(28800, 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(28811, 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(28823, 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(28838, 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(28860, 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(28886, 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(28903, 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(28920, 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(28931, 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(28942, 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(28953, 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(28964, 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(28975, 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(28986, 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(28996, 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(29005, 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(29015, 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(29049, 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(29094, 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(29109, 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(29115, 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(29122, 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(29185, 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(29192, 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(29197, 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(29204, 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(29216, 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(29228, 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(29242, 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(29255, 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(29270, 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(29286, 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(29295, 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(29304, 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(29352, 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(29362, 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(29372, 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(29382, 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(29392, 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(29402, 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(29412, 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(29422, 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(29432, 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(29441, 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(29451, 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(29468, 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(29486, 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(29509, 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(29533, 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(29548, 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(29564, 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(29581, 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(29599, 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(29617, 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(29645, 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(29674, 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(29694, 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(29715, 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(29729, 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(29743, 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(29773, 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(29805, 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(29828, 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(29868, 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(29880, 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(29893, 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(29909, 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(29922, 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(29941, 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(29967, 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(29983, 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(29996, 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(30025, 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(30054, 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(30087, 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(30120, 33), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjExplicitLod, true, true, IR(190, 5), IR(30153, 33), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjDrefImplicitLod, true, true, IR(195, 6), IR(30186, 37), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseSampleProjDrefExplicitLod, true, true, IR(201, 6), IR(30223, 37), IR(0, 0), IR(219, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageSparseFetch, true, true, IR(185, 5), IR(30260, 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(30277, 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(30295, 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(30317, 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(30343, 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(30350, 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(30371, 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(30387, 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(30403, 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(30410, 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(30426, 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(30446, 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(30472, 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(30507, 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(30532, 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(30549, 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(30572, 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(30591, 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(30607, 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(30623, 11), IR(0, 0), IR(1, 0), IR(157, 1), SPV_SPIRV_VERSION_WORD(1,2), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpGroupNonUniformElect, true, true, IR(340, 3), IR(30634, 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(30655, 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(30674, 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(30693, 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(30717, 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(30742, 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(5650, 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(30772, 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(30801, 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(30833, 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(30863, 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(30892, 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(8740, 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(30921, 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(30947, 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(30972, 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(30999, 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(31019, 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(31039, 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(31059, 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(31079, 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(31099, 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(31119, 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(31139, 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(31159, 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(31179, 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(31199, 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(31225, 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(31250, 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(31276, 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(31302, 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(31327, 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(31353, 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(31382, 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(31406, 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(31418, 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(31427, 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(31439, 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(31447, 23), IR(0, 0), IR(147, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpDepthAttachmentReadEXT, true, true, IR(353, 3), IR(31470, 23), IR(0, 0), IR(156, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpStencilAttachmentReadEXT, true, true, IR(353, 3), IR(31493, 25), IR(0, 0), IR(157, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpTypeTensorARM, true, false, IR(356, 4), IR(31518, 14), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTensorReadARM, true, true, IR(360, 5), IR(31574, 14), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, + {spv::Op::OpTensorWriteARM, false, false, IR(365, 4), IR(31588, 15), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, + {spv::Op::OpTensorQuerySizeARM, true, true, IR(172, 4), IR(31603, 19), IR(0, 0), IR(202, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kTensor}, + {spv::Op::OpGraphConstantARM, true, true, IR(369, 3), IR(31622, 17), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphEntryPointARM, false, false, IR(372, 3), IR(31639, 19), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphARM, true, true, IR(39, 2), IR(9031, 9), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphInputARM, true, true, IR(122, 4), IR(31658, 14), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphSetOutputARM, false, false, IR(375, 3), IR(31672, 18), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpGraphEndARM, false, false, IR(0, 0), IR(31690, 12), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGraph}, + {spv::Op::OpTypeGraphARM, true, false, IR(378, 3), IR(31702, 13), IR(0, 0), IR(233, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTerminateInvocation, false, false, IR(0, 0), IR(31715, 20), IR(0, 0), IR(3, 1), IR(167, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpTypeUntypedPointerKHR, true, false, IR(381, 2), IR(31735, 22), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpUntypedVariableKHR, true, true, IR(383, 5), IR(31757, 19), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedAccessChainKHR, true, true, IR(151, 5), IR(31776, 22), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedInBoundsAccessChainKHR, true, true, IR(151, 5), IR(31798, 30), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpSubgroupBallotKHR, true, true, IR(160, 3), IR(5411, 18), IR(0, 0), IR(235, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupFirstInvocationKHR, true, true, IR(160, 3), IR(31828, 27), IR(0, 0), IR(235, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpUntypedPtrAccessChainKHR, true, true, IR(388, 6), IR(31855, 25), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedInBoundsPtrAccessChainKHR, true, true, IR(388, 6), IR(31880, 33), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedArrayLengthKHR, true, true, IR(394, 5), IR(31913, 22), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpUntypedPrefetchKHR, false, false, IR(399, 5), IR(31935, 19), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpSubgroupAllKHR, true, true, IR(160, 3), IR(31954, 15), IR(0, 0), IR(236, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupAnyKHR, true, true, IR(160, 3), IR(31969, 15), IR(0, 0), IR(236, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupAllEqualKHR, true, true, IR(160, 3), IR(31984, 20), IR(0, 0), IR(236, 1), IR(41, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupNonUniformRotateKHR, true, true, IR(404, 6), IR(13250, 25), IR(0, 0), IR(237, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupReadInvocationKHR, true, true, IR(172, 4), IR(32004, 26), IR(0, 0), IR(235, 1), IR(2, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpExtInstWithForwardRefsKHR, true, true, IR(410, 5), IR(32030, 26), IR(0, 0), IR(1, 0), IR(168, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpUntypedGroupAsyncCopyKHR, true, true, IR(415, 11), IR(32056, 25), IR(0, 0), IR(234, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpTraceRayKHR, false, false, IR(426, 11), IR(32081, 12), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpExecuteCallableKHR, false, false, IR(36, 2), IR(32093, 19), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertUToAccelerationStructureKHR, true, true, IR(160, 3), IR(32112, 35), IR(0, 0), IR(238, 2), IR(169, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIgnoreIntersectionKHR, false, false, IR(0, 0), IR(32147, 22), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTerminateRayKHR, false, false, IR(0, 0), IR(32169, 16), IR(0, 0), IR(60, 1), IR(28, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSDot, true, true, IR(437, 5), IR(32232, 5), IR(93, 1), IR(240, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUDot, true, true, IR(437, 5), IR(32245, 5), IR(94, 1), IR(240, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSUDot, true, true, IR(437, 5), IR(32258, 6), IR(95, 1), IR(240, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSDotAccSat, true, true, IR(442, 6), IR(32273, 11), IR(96, 1), IR(240, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpUDotAccSat, true, true, IR(442, 6), IR(32298, 11), IR(97, 1), IR(240, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpSUDotAccSat, true, true, IR(442, 6), IR(32323, 12), IR(98, 1), IR(240, 1), IR(122, 1), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpTypeCooperativeMatrixKHR, true, false, IR(448, 6), IR(32350, 25), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCooperativeMatrixLoadKHR, true, true, IR(454, 6), IR(32375, 25), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixStoreKHR, false, false, IR(460, 5), IR(32400, 26), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixMulAddKHR, true, true, IR(465, 6), IR(32480, 27), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpCooperativeMatrixLengthKHR, true, true, IR(160, 3), IR(32507, 27), IR(0, 0), IR(86, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(32534, 30), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantCompositeReplicateEXT, true, true, IR(160, 3), IR(32564, 34), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpCompositeConstructReplicateEXT, true, true, IR(160, 3), IR(32598, 31), IR(0, 0), IR(241, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpTypeRayQueryKHR, true, false, IR(68, 1), IR(32629, 16), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpRayQueryInitializeKHR, false, false, IR(471, 8), IR(32645, 22), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryTerminateKHR, false, false, IR(10, 1), IR(32667, 21), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGenerateIntersectionKHR, false, false, IR(36, 2), IR(32688, 32), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryConfirmIntersectionKHR, false, false, IR(10, 1), IR(32720, 31), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryProceedKHR, true, true, IR(160, 3), IR(32751, 19), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionTypeKHR, true, true, IR(172, 4), IR(32770, 31), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpImageSampleWeightedQCOM, true, true, IR(130, 5), IR(32801, 24), IR(0, 0), IR(242, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBoxFilterQCOM, true, true, IR(130, 5), IR(32825, 19), IR(0, 0), IR(243, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchSSDQCOM, true, true, IR(325, 7), IR(32844, 23), IR(0, 0), IR(244, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchSADQCOM, true, true, IR(325, 7), IR(32867, 23), IR(0, 0), IR(244, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpBitCastArrayQCOM, true, true, IR(160, 3), IR(32890, 17), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpImageBlockMatchWindowSSDQCOM, true, true, IR(325, 7), IR(32907, 29), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchWindowSADQCOM, true, true, IR(325, 7), IR(32936, 29), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchGatherSSDQCOM, true, true, IR(325, 7), IR(32965, 29), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpImageBlockMatchGatherSADQCOM, true, true, IR(325, 7), IR(32994, 29), IR(0, 0), IR(246, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpCompositeConstructCoopMatQCOM, true, true, IR(160, 3), IR(33023, 30), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpCompositeExtractCoopMatQCOM, true, true, IR(160, 3), IR(33053, 28), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpExtractSubArrayQCOM, true, true, IR(172, 4), IR(33081, 20), IR(0, 0), IR(245, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpGroupIAddNonUniformAMD, true, true, IR(283, 5), IR(33101, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFAddNonUniformAMD, true, true, IR(283, 5), IR(33124, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMinNonUniformAMD, true, true, IR(283, 5), IR(33147, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupUMinNonUniformAMD, true, true, IR(283, 5), IR(33170, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupSMinNonUniformAMD, true, true, IR(283, 5), IR(33193, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMaxNonUniformAMD, true, true, IR(283, 5), IR(33216, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupUMaxNonUniformAMD, true, true, IR(283, 5), IR(33239, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupSMaxNonUniformAMD, true, true, IR(283, 5), IR(33262, 23), IR(0, 0), IR(218, 1), IR(33, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpFragmentMaskFetchAMD, true, true, IR(172, 4), IR(33285, 21), IR(0, 0), IR(247, 1), IR(58, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFragmentFetchAMD, true, true, IR(130, 5), IR(33306, 17), IR(0, 0), IR(247, 1), IR(58, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReadClockKHR, true, true, IR(340, 3), IR(33323, 13), IR(0, 0), IR(248, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAllocateNodePayloadsAMDX, true, true, IR(278, 5), IR(33336, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpEnqueueNodePayloadsAMDX, false, false, IR(10, 1), IR(33361, 24), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeNodePayloadArrayAMDX, true, false, IR(87, 2), IR(33385, 25), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFinishWritingNodePayloadAMDX, true, true, IR(160, 3), IR(33410, 29), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpNodePayloadArrayLengthAMDX, true, true, IR(160, 3), IR(33439, 27), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIsNodePayloadValidAMDX, true, true, IR(172, 4), IR(33466, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConstantStringAMDX, true, false, IR(50, 2), IR(33489, 19), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSpecConstantStringAMDX, true, false, IR(50, 2), IR(33508, 23), IR(0, 0), IR(43, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpGroupNonUniformQuadAllKHR, true, true, IR(160, 3), IR(33531, 26), IR(0, 0), IR(164, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpGroupNonUniformQuadAnyKHR, true, true, IR(160, 3), IR(33557, 26), IR(0, 0), IR(164, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpHitObjectRecordHitMotionNV, false, false, IR(479, 14), IR(33583, 27), IR(0, 0), IR(249, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordHitWithIndexMotionNV, false, false, IR(493, 13), IR(33610, 36), IR(0, 0), IR(249, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordMissMotionNV, false, false, IR(506, 7), IR(33646, 28), IR(0, 0), IR(249, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldToObjectNV, true, true, IR(160, 3), IR(33674, 28), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectToWorldNV, true, true, IR(160, 3), IR(33702, 28), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectRayDirectionNV, true, true, IR(160, 3), IR(33730, 33), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetObjectRayOriginNV, true, true, IR(160, 3), IR(33763, 30), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceRayMotionNV, false, false, IR(493, 13), IR(33793, 26), IR(0, 0), IR(249, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetShaderRecordBufferHandleNV, true, true, IR(160, 3), IR(33819, 39), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetShaderBindingTableRecordIndexNV, true, true, IR(160, 3), IR(33858, 44), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordEmptyNV, false, false, IR(10, 1), IR(33902, 23), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectTraceRayNV, false, false, IR(513, 12), IR(33925, 20), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordHitNV, false, false, IR(493, 13), IR(33945, 21), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordHitWithIndexNV, false, false, IR(513, 12), IR(33966, 30), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectRecordMissNV, false, false, IR(525, 6), IR(33996, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectExecuteShaderNV, false, false, IR(36, 2), IR(34018, 25), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetCurrentTimeNV, true, true, IR(160, 3), IR(34043, 26), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetAttributesNV, false, false, IR(36, 2), IR(34069, 25), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetHitKindNV, true, true, IR(160, 3), IR(34094, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetPrimitiveIndexNV, true, true, IR(160, 3), IR(34116, 29), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetGeometryIndexNV, true, true, IR(160, 3), IR(34145, 28), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetInstanceIdNV, true, true, IR(160, 3), IR(34173, 25), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetInstanceCustomIndexNV, true, true, IR(160, 3), IR(34198, 34), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldRayDirectionNV, true, true, IR(160, 3), IR(34232, 32), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetWorldRayOriginNV, true, true, IR(160, 3), IR(34264, 29), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayTMaxNV, true, true, IR(160, 3), IR(34293, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetRayTMinNV, true, true, IR(160, 3), IR(34315, 22), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsEmptyNV, true, true, IR(160, 3), IR(34337, 19), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsHitNV, true, true, IR(160, 3), IR(34356, 17), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsMissNV, true, true, IR(160, 3), IR(34373, 18), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReorderThreadWithHitObjectNV, false, false, IR(531, 3), IR(34391, 29), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpReorderThreadWithHintNV, false, false, IR(36, 2), IR(34420, 24), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeHitObjectNV, true, false, IR(68, 1), IR(34444, 16), IR(0, 0), IR(126, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpImageSampleFootprintNV, true, true, IR(534, 7), IR(34460, 23), IR(0, 0), IR(251, 1), IR(72, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpTypeCooperativeVectorNV, true, false, IR(89, 3), IR(34483, 24), IR(0, 0), IR(252, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCooperativeVectorMatrixMulNV, true, true, IR(541, 13), IR(34507, 29), IR(0, 0), IR(252, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorOuterProductAccumulateNV, false, false, IR(554, 7), IR(34536, 42), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorReduceSumAccumulateNV, false, false, IR(33, 3), IR(34578, 39), IR(0, 0), IR(253, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorMatrixMulAddNV, true, true, IR(561, 16), IR(34617, 32), IR(0, 0), IR(252, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixConvertNV, true, true, IR(160, 3), IR(34649, 27), IR(0, 0), IR(254, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpEmitMeshTasksEXT, false, false, IR(577, 4), IR(34676, 17), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSetMeshOutputsEXT, false, false, IR(36, 2), IR(34693, 18), IR(0, 0), IR(53, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpGroupNonUniformPartitionNV, true, true, IR(160, 3), IR(34711, 27), IR(0, 0), IR(183, 1), IR(75, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kNon_Uniform}, + {spv::Op::OpWritePackedPrimitiveIndices4x8NV, false, false, IR(36, 2), IR(34738, 33), IR(0, 0), IR(50, 1), IR(18, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFetchMicroTriangleVertexPositionNV, true, true, IR(325, 7), IR(34771, 35), IR(0, 0), IR(255, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpFetchMicroTriangleVertexBarycentricNV, true, true, IR(325, 7), IR(34806, 38), IR(0, 0), IR(255, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeVectorLoadNV, true, true, IR(581, 5), IR(34844, 24), IR(0, 0), IR(252, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeVectorStoreNV, false, false, IR(586, 4), IR(34868, 25), IR(0, 0), IR(252, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpReportIntersectionKHR, true, true, IR(172, 4), IR(34893, 22), IR(99, 1), IR(54, 2), IR(24, 2), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIgnoreIntersectionNV, false, false, IR(0, 0), IR(34936, 21), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTerminateRayNV, false, false, IR(0, 0), IR(34957, 15), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTraceNV, false, false, IR(426, 11), IR(34972, 8), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTraceMotionNV, false, false, IR(513, 12), IR(34980, 14), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTraceRayMotionNV, false, false, IR(513, 12), IR(34994, 17), IR(0, 0), IR(57, 1), IR(27, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR, true, true, IR(172, 4), IR(35011, 50), IR(0, 0), IR(256, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeAccelerationStructureKHR, true, false, IR(68, 1), IR(35061, 29), IR(100, 1), IR(257, 4), IR(171, 4), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpExecuteCallableNV, false, false, IR(36, 2), IR(35118, 18), IR(0, 0), IR(56, 1), IR(26, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionClusterIdNV, true, true, IR(172, 4), IR(35136, 35), IR(101, 1), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetClusterIdNV, true, true, IR(160, 3), IR(35194, 24), IR(0, 0), IR(64, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeCooperativeMatrixNV, true, false, IR(590, 5), IR(35218, 24), IR(0, 0), IR(261, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCooperativeMatrixLoadNV, true, true, IR(595, 6), IR(35242, 24), IR(0, 0), IR(261, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixStoreNV, false, false, IR(601, 5), IR(35266, 25), IR(0, 0), IR(261, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixMulAddNV, true, true, IR(130, 5), IR(35291, 26), IR(0, 0), IR(261, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixLengthNV, true, true, IR(160, 3), IR(35317, 26), IR(0, 0), IR(261, 1), IR(79, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpBeginInvocationInterlockEXT, false, false, IR(0, 0), IR(35343, 28), IR(0, 0), IR(262, 3), IR(80, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpEndInvocationInterlockEXT, false, false, IR(0, 0), IR(35371, 26), IR(0, 0), IR(262, 3), IR(80, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixReduceNV, true, true, IR(606, 5), IR(35440, 26), IR(0, 0), IR(265, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kArithmetic}, + {spv::Op::OpCooperativeMatrixLoadTensorNV, true, true, IR(611, 7), IR(35541, 30), IR(0, 0), IR(200, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixStoreTensorNV, false, false, IR(618, 5), IR(35571, 31), IR(0, 0), IR(200, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpCooperativeMatrixPerElementOpNV, true, true, IR(151, 5), IR(35602, 32), IR(0, 0), IR(266, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kFunction}, + {spv::Op::OpTypeTensorLayoutNV, true, false, IR(89, 3), IR(35634, 19), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeTensorViewNV, true, false, IR(623, 4), IR(35653, 17), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpCreateTensorLayoutNV, true, true, IR(39, 2), IR(35670, 21), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetDimensionNV, true, true, IR(122, 4), IR(35691, 27), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetStrideNV, true, true, IR(122, 4), IR(35718, 24), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSliceNV, true, true, IR(122, 4), IR(35742, 20), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetClampValueNV, true, true, IR(172, 4), IR(35762, 28), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCreateTensorViewNV, true, true, IR(39, 2), IR(35790, 19), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorViewSetDimensionNV, true, true, IR(122, 4), IR(35809, 25), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorViewSetStrideNV, true, true, IR(122, 4), IR(35834, 22), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpDemoteToHelperInvocation, false, false, IR(0, 0), IR(11562, 25), IR(45, 1), IR(268, 1), IR(0, 0), SPV_SPIRV_VERSION_WORD(1,6), 0xffffffffu, PrintingClass::kControl_Flow}, + {spv::Op::OpIsHelperInvocationEXT, true, true, IR(39, 2), IR(35856, 22), IR(0, 0), IR(268, 1), IR(81, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorViewSetClipNV, true, true, IR(325, 7), IR(35878, 20), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTensorLayoutSetBlockSizeNV, true, true, IR(122, 4), IR(35898, 27), IR(0, 0), IR(267, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpCooperativeMatrixTransposeNV, true, true, IR(160, 3), IR(35925, 29), IR(0, 0), IR(254, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertUToImageNV, true, true, IR(160, 3), IR(35954, 18), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertUToSamplerNV, true, true, IR(160, 3), IR(35972, 20), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertImageToUNV, true, true, IR(160, 3), IR(35992, 18), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertSamplerToUNV, true, true, IR(160, 3), IR(36010, 20), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertUToSampledImageNV, true, true, IR(160, 3), IR(36030, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConvertSampledImageToUNV, true, true, IR(160, 3), IR(36055, 25), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSamplerImageAddressingModeNV, false, false, IR(0, 1), IR(36080, 29), IR(0, 0), IR(127, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRawAccessChainNV, true, true, IR(627, 7), IR(36161, 17), IR(0, 0), IR(189, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpRayQueryGetIntersectionSpherePositionNV, true, true, IR(172, 4), IR(36178, 40), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionSphereRadiusNV, true, true, IR(172, 4), IR(36218, 38), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionLSSPositionsNV, true, true, IR(172, 4), IR(36256, 38), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionLSSRadiiNV, true, true, IR(172, 4), IR(36294, 34), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionLSSHitValueNV, true, true, IR(172, 4), IR(36328, 37), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetSpherePositionNV, true, true, IR(160, 3), IR(36365, 29), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetSphereRadiusNV, true, true, IR(160, 3), IR(36394, 27), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetLSSPositionsNV, true, true, IR(160, 3), IR(36421, 27), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectGetLSSRadiiNV, true, true, IR(160, 3), IR(36448, 23), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsSphereHitNV, true, true, IR(160, 3), IR(36471, 23), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpHitObjectIsLSSHitNV, true, true, IR(160, 3), IR(36494, 20), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryIsSphereHitNV, true, true, IR(172, 4), IR(36514, 22), IR(0, 0), IR(61, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryIsLSSHitNV, true, true, IR(172, 4), IR(36536, 19), IR(0, 0), IR(62, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpSubgroupShuffleINTEL, true, true, IR(172, 4), IR(12010, 21), IR(0, 0), IR(269, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupShuffleDownINTEL, true, true, IR(130, 5), IR(36555, 25), IR(0, 0), IR(269, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupShuffleUpINTEL, true, true, IR(130, 5), IR(36580, 23), IR(0, 0), IR(269, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupShuffleXorINTEL, true, true, IR(172, 4), IR(36603, 24), IR(0, 0), IR(269, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupBlockReadINTEL, true, true, IR(160, 3), IR(36627, 23), IR(0, 0), IR(270, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupBlockWriteINTEL, false, false, IR(36, 2), IR(36650, 24), IR(0, 0), IR(270, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageBlockReadINTEL, true, true, IR(172, 4), IR(36674, 28), IR(0, 0), IR(271, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageBlockWriteINTEL, false, false, IR(33, 3), IR(36702, 29), IR(0, 0), IR(271, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageMediaBlockReadINTEL, true, true, IR(215, 6), IR(36731, 33), IR(0, 0), IR(272, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupImageMediaBlockWriteINTEL, false, false, IR(634, 5), IR(36764, 34), IR(0, 0), IR(272, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpUCountLeadingZerosINTEL, true, true, IR(160, 3), IR(36798, 24), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUCountTrailingZerosINTEL, true, true, IR(160, 3), IR(36822, 25), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAbsISubINTEL, true, true, IR(172, 4), IR(36847, 13), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAbsUSubINTEL, true, true, IR(172, 4), IR(36860, 13), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIAddSatINTEL, true, true, IR(172, 4), IR(36873, 13), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUAddSatINTEL, true, true, IR(172, 4), IR(36886, 13), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIAverageINTEL, true, true, IR(172, 4), IR(36899, 14), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUAverageINTEL, true, true, IR(172, 4), IR(36913, 14), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIAverageRoundedINTEL, true, true, IR(172, 4), IR(36927, 21), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUAverageRoundedINTEL, true, true, IR(172, 4), IR(36948, 21), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpISubSatINTEL, true, true, IR(172, 4), IR(36969, 13), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUSubSatINTEL, true, true, IR(172, 4), IR(36982, 13), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpIMul32x16INTEL, true, true, IR(172, 4), IR(36995, 15), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpUMul32x16INTEL, true, true, IR(172, 4), IR(37010, 15), IR(0, 0), IR(273, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpConstantFunctionPointerINTEL, true, true, IR(160, 3), IR(37025, 29), IR(0, 0), IR(198, 1), IR(95, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFunctionPointerCallINTEL, true, true, IR(107, 3), IR(37054, 25), IR(0, 0), IR(198, 1), IR(95, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAsmTargetINTEL, true, false, IR(50, 2), IR(37079, 15), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAsmINTEL, true, true, IR(639, 6), IR(12228, 9), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAsmCallINTEL, true, true, IR(122, 4), IR(37094, 13), IR(0, 0), IR(130, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAtomicFMinEXT, true, true, IR(235, 6), IR(37107, 14), IR(0, 0), IR(274, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAtomicFMaxEXT, true, true, IR(235, 6), IR(37121, 14), IR(0, 0), IR(274, 4), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpAssumeTrueKHR, false, false, IR(10, 1), IR(37135, 14), IR(0, 0), IR(278, 1), IR(99, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpExpectKHR, true, true, IR(172, 4), IR(37149, 10), IR(0, 0), IR(278, 1), IR(99, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpDecorateString, false, false, IR(163, 2), IR(37159, 15), IR(102, 1), IR(1, 0), IR(175, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpMemberDecorateString, false, false, IR(165, 3), IR(37195, 21), IR(103, 1), IR(1, 0), IR(175, 2), SPV_SPIRV_VERSION_WORD(1,4), 0xffffffffu, PrintingClass::kAnnotation}, + {spv::Op::OpVmeImageINTEL, true, true, IR(172, 4), IR(37243, 14), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeVmeImageINTEL, true, false, IR(87, 2), IR(37257, 18), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImePayloadINTEL, true, false, IR(68, 1), IR(37275, 23), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcRefPayloadINTEL, true, false, IR(68, 1), IR(37298, 23), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcSicPayloadINTEL, true, false, IR(68, 1), IR(37321, 23), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcMcePayloadINTEL, true, false, IR(68, 1), IR(37344, 23), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcMceResultINTEL, true, false, IR(68, 1), IR(37367, 22), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeResultINTEL, true, false, IR(68, 1), IR(37389, 22), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL, true, false, IR(68, 1), IR(37411, 46), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL, true, false, IR(68, 1), IR(37457, 44), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeSingleReferenceStreaminINTEL, true, false, IR(68, 1), IR(37501, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcImeDualReferenceStreaminINTEL, true, false, IR(68, 1), IR(37540, 37), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcRefResultINTEL, true, false, IR(68, 1), IR(37577, 22), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpTypeAvcSicResultINTEL, true, false, IR(68, 1), IR(37599, 22), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(37621, 60), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL, true, true, IR(172, 4), IR(37681, 53), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL, true, true, IR(172, 4), IR(37734, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL, true, true, IR(172, 4), IR(37781, 40), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(37821, 51), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL, true, true, IR(172, 4), IR(37872, 44), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(37916, 51), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL, true, true, IR(172, 4), IR(37967, 56), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL, true, true, IR(39, 2), IR(38023, 50), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL, true, true, IR(39, 2), IR(38073, 52), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL, true, true, IR(39, 2), IR(38125, 49), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL, true, true, IR(215, 6), IR(38174, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL, true, true, IR(172, 4), IR(38221, 50), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL, true, true, IR(39, 2), IR(38271, 51), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL, true, true, IR(39, 2), IR(38322, 56), IR(0, 0), IR(282, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL, true, true, IR(160, 3), IR(38378, 33), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(38411, 52), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL, true, true, IR(172, 4), IR(38463, 61), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(38524, 61), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToImePayloadINTEL, true, true, IR(160, 3), IR(38585, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToImeResultINTEL, true, true, IR(160, 3), IR(38624, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToRefPayloadINTEL, true, true, IR(160, 3), IR(38662, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToRefResultINTEL, true, true, IR(160, 3), IR(38701, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToSicPayloadINTEL, true, true, IR(160, 3), IR(38739, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceConvertToSicResultINTEL, true, true, IR(160, 3), IR(38778, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetMotionVectorsINTEL, true, true, IR(160, 3), IR(38816, 36), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterDistortionsINTEL, true, true, IR(160, 3), IR(38852, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL, true, true, IR(160, 3), IR(38891, 43), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterMajorShapeINTEL, true, true, IR(160, 3), IR(38934, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterMinorShapeINTEL, true, true, IR(160, 3), IR(38972, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterDirectionsINTEL, true, true, IR(160, 3), IR(39010, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL, true, true, IR(160, 3), IR(39048, 45), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL, true, true, IR(160, 3), IR(39093, 40), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL, true, true, IR(130, 5), IR(39133, 62), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeInitializeINTEL, true, true, IR(130, 5), IR(39195, 30), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetSingleReferenceINTEL, true, true, IR(130, 5), IR(39225, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetDualReferenceINTEL, true, true, IR(215, 6), IR(39263, 36), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeRefWindowSizeINTEL, true, true, IR(172, 4), IR(39299, 33), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeAdjustRefOffsetINTEL, true, true, IR(215, 6), IR(39332, 35), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(39367, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL, true, true, IR(172, 4), IR(39406, 43), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(39449, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL, true, true, IR(172, 4), IR(39496, 54), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeSetWeightedSadINTEL, true, true, IR(172, 4), IR(39550, 34), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(39584, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(39631, 45), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL, true, true, IR(215, 6), IR(39676, 55), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL, true, true, IR(325, 7), IR(39731, 53), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL, true, true, IR(130, 5), IR(39784, 56), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL, true, true, IR(215, 6), IR(39840, 54), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL, true, true, IR(215, 6), IR(39894, 58), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL, true, true, IR(325, 7), IR(39952, 56), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeConvertToMceResultINTEL, true, true, IR(160, 3), IR(40008, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL, true, true, IR(160, 3), IR(40046, 46), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL, true, true, IR(160, 3), IR(40092, 44), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL, true, true, IR(160, 3), IR(40136, 49), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL, true, true, IR(160, 3), IR(40185, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL, true, true, IR(172, 4), IR(40232, 70), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL, true, true, IR(172, 4), IR(40302, 68), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL, true, true, IR(172, 4), IR(40370, 69), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL, true, true, IR(130, 5), IR(40439, 68), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL, true, true, IR(130, 5), IR(40507, 66), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL, true, true, IR(130, 5), IR(40573, 67), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetBorderReachedINTEL, true, true, IR(172, 4), IR(40640, 36), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL, true, true, IR(160, 3), IR(40676, 48), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL, true, true, IR(160, 3), IR(40724, 59), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL, true, true, IR(160, 3), IR(40783, 58), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL, true, true, IR(160, 3), IR(40841, 56), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcFmeInitializeINTEL, true, true, IR(645, 9), IR(40897, 30), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcBmeInitializeINTEL, true, true, IR(654, 10), IR(40927, 30), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(40957, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL, true, true, IR(160, 3), IR(40996, 46), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(41042, 43), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(41085, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(41132, 45), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(41177, 46), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(41223, 56), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcRefConvertToMceResultINTEL, true, true, IR(160, 3), IR(41279, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicInitializeINTEL, true, true, IR(160, 3), IR(41317, 30), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConfigureSkcINTEL, true, true, IR(288, 8), IR(41347, 32), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConfigureIpeLumaINTEL, true, true, IR(654, 10), IR(41379, 36), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL, true, true, IR(664, 13), IR(41415, 42), IR(0, 0), IR(282, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL, true, true, IR(172, 4), IR(41457, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConvertToMcePayloadINTEL, true, true, IR(160, 3), IR(41496, 39), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL, true, true, IR(172, 4), IR(41535, 44), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL, true, true, IR(215, 6), IR(41579, 48), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL, true, true, IR(172, 4), IR(41627, 50), IR(0, 0), IR(282, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL, true, true, IR(160, 3), IR(41677, 43), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL, true, true, IR(172, 4), IR(41720, 48), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL, true, true, IR(172, 4), IR(41768, 43), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateIpeINTEL, true, true, IR(172, 4), IR(41811, 31), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL, true, true, IR(130, 5), IR(41842, 47), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL, true, true, IR(215, 6), IR(41889, 45), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL, true, true, IR(130, 5), IR(41934, 46), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL, true, true, IR(215, 6), IR(41980, 56), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicConvertToMceResultINTEL, true, true, IR(160, 3), IR(42036, 38), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL, true, true, IR(160, 3), IR(42074, 35), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL, true, true, IR(160, 3), IR(42109, 44), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL, true, true, IR(160, 3), IR(42153, 46), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL, true, true, IR(160, 3), IR(42199, 41), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetIpeChromaModeINTEL, true, true, IR(160, 3), IR(42240, 36), IR(0, 0), IR(282, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL, true, true, IR(160, 3), IR(42276, 50), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL, true, true, IR(160, 3), IR(42326, 48), IR(0, 0), IR(280, 2), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpSubgroupAvcSicGetInterRawSadsINTEL, true, true, IR(160, 3), IR(42374, 35), IR(0, 0), IR(279, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpVariableLengthArrayINTEL, true, true, IR(160, 3), IR(12466, 25), IR(0, 0), IR(284, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpSaveMemoryINTEL, true, true, IR(39, 2), IR(42409, 16), IR(0, 0), IR(284, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpRestoreMemoryINTEL, false, false, IR(10, 1), IR(42425, 19), IR(0, 0), IR(284, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpArbitraryFloatSinCosPiINTEL, true, true, IR(677, 8), IR(42444, 28), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCastINTEL, true, true, IR(677, 8), IR(42472, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCastFromIntINTEL, true, true, IR(677, 8), IR(42496, 31), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCastToIntINTEL, true, true, IR(677, 8), IR(42527, 29), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatAddINTEL, true, true, IR(685, 10), IR(42556, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSubINTEL, true, true, IR(685, 10), IR(42579, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatMulINTEL, true, true, IR(685, 10), IR(42602, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatDivINTEL, true, true, IR(685, 10), IR(42625, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatGTINTEL, true, true, IR(695, 6), IR(42648, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatGEINTEL, true, true, IR(695, 6), IR(42670, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLTINTEL, true, true, IR(695, 6), IR(42692, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLEINTEL, true, true, IR(695, 6), IR(42714, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatEQINTEL, true, true, IR(695, 6), IR(42736, 22), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatRecipINTEL, true, true, IR(677, 8), IR(42758, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatRSqrtINTEL, true, true, IR(677, 8), IR(42783, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCbrtINTEL, true, true, IR(677, 8), IR(42808, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatHypotINTEL, true, true, IR(685, 10), IR(42832, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSqrtINTEL, true, true, IR(677, 8), IR(42857, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLogINTEL, true, true, IR(677, 8), IR(42881, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLog2INTEL, true, true, IR(677, 8), IR(42904, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLog10INTEL, true, true, IR(677, 8), IR(42928, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatLog1pINTEL, true, true, IR(677, 8), IR(42953, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExpINTEL, true, true, IR(677, 8), IR(42978, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExp2INTEL, true, true, IR(677, 8), IR(43001, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExp10INTEL, true, true, IR(677, 8), IR(43025, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatExpm1INTEL, true, true, IR(677, 8), IR(43050, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSinINTEL, true, true, IR(677, 8), IR(43075, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCosINTEL, true, true, IR(677, 8), IR(43098, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSinCosINTEL, true, true, IR(677, 8), IR(43121, 26), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatSinPiINTEL, true, true, IR(677, 8), IR(43147, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatCosPiINTEL, true, true, IR(677, 8), IR(43172, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatASinINTEL, true, true, IR(677, 8), IR(43197, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatASinPiINTEL, true, true, IR(677, 8), IR(43221, 26), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatACosINTEL, true, true, IR(677, 8), IR(43247, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatACosPiINTEL, true, true, IR(677, 8), IR(43271, 26), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatATanINTEL, true, true, IR(677, 8), IR(43297, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatATanPiINTEL, true, true, IR(677, 8), IR(43321, 26), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatATan2INTEL, true, true, IR(685, 10), IR(43347, 25), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatPowINTEL, true, true, IR(685, 10), IR(43372, 23), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatPowRINTEL, true, true, IR(685, 10), IR(43395, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpArbitraryFloatPowNINTEL, true, true, IR(685, 10), IR(43419, 24), IR(0, 0), IR(285, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpLoopControlINTEL, false, false, IR(18, 1), IR(43443, 17), IR(0, 0), IR(286, 1), IR(106, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAliasDomainDeclINTEL, true, false, IR(701, 2), IR(43460, 21), IR(0, 0), IR(136, 1), IR(113, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAliasScopeDeclINTEL, true, false, IR(703, 3), IR(43481, 20), IR(0, 0), IR(136, 1), IR(113, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpAliasScopeListDeclINTEL, true, false, IR(92, 2), IR(43501, 24), IR(0, 0), IR(136, 1), IR(113, 1), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSqrtINTEL, true, true, IR(677, 8), IR(43525, 15), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedRecipINTEL, true, true, IR(677, 8), IR(43540, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedRsqrtINTEL, true, true, IR(677, 8), IR(43556, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinINTEL, true, true, IR(677, 8), IR(43572, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedCosINTEL, true, true, IR(677, 8), IR(43586, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinCosINTEL, true, true, IR(677, 8), IR(43600, 17), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinPiINTEL, true, true, IR(677, 8), IR(43617, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedCosPiINTEL, true, true, IR(677, 8), IR(43633, 16), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedSinCosPiINTEL, true, true, IR(677, 8), IR(43649, 19), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedLogINTEL, true, true, IR(677, 8), IR(43668, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpFixedExpINTEL, true, true, IR(677, 8), IR(43682, 14), IR(0, 0), IR(188, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpPtrCastToCrossWorkgroupINTEL, true, true, IR(160, 3), IR(43696, 29), IR(0, 0), IR(199, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpCrossWorkgroupCastToPtrINTEL, true, true, IR(160, 3), IR(43725, 29), IR(0, 0), IR(199, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::k_exclude}, + {spv::Op::OpReadPipeBlockingINTEL, true, true, IR(172, 4), IR(43754, 22), IR(0, 0), IR(287, 1), IR(120, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpWritePipeBlockingINTEL, true, true, IR(172, 4), IR(43776, 23), IR(0, 0), IR(287, 1), IR(120, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kPipe}, + {spv::Op::OpFPGARegINTEL, true, true, IR(160, 3), IR(13025, 13), IR(0, 0), IR(288, 1), IR(121, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetRayTMinKHR, true, true, IR(160, 3), IR(43799, 22), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetRayFlagsKHR, true, true, IR(160, 3), IR(43821, 23), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionTKHR, true, true, IR(172, 4), IR(43844, 28), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR, true, true, IR(172, 4), IR(43872, 46), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionInstanceIdKHR, true, true, IR(172, 4), IR(43918, 37), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR, true, true, IR(172, 4), IR(43955, 65), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionGeometryIndexKHR, true, true, IR(172, 4), IR(44020, 40), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionPrimitiveIndexKHR, true, true, IR(172, 4), IR(44060, 41), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionBarycentricsKHR, true, true, IR(172, 4), IR(44101, 39), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionFrontFaceKHR, true, true, IR(172, 4), IR(44140, 36), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR, true, true, IR(160, 3), IR(44176, 46), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionObjectRayDirectionKHR, true, true, IR(172, 4), IR(44222, 45), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionObjectRayOriginKHR, true, true, IR(172, 4), IR(44267, 42), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetWorldRayDirectionKHR, true, true, IR(160, 3), IR(44309, 32), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetWorldRayOriginKHR, true, true, IR(160, 3), IR(44341, 29), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionObjectToWorldKHR, true, true, IR(172, 4), IR(44370, 40), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpRayQueryGetIntersectionWorldToObjectKHR, true, true, IR(172, 4), IR(44410, 40), IR(0, 0), IR(192, 1), IR(48, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpAtomicFAddEXT, true, true, IR(235, 6), IR(44450, 14), IR(0, 0), IR(289, 4), IR(128, 1), 0xffffffffu, 0xffffffffu, PrintingClass::kAtomic}, + {spv::Op::OpTypeBufferSurfaceINTEL, true, false, IR(100, 2), IR(44464, 23), IR(0, 0), IR(128, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpTypeStructContinuedINTEL, false, false, IR(706, 1), IR(44487, 25), IR(0, 0), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpConstantCompositeContinuedINTEL, false, false, IR(706, 1), IR(44512, 32), IR(0, 0), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantCompositeContinuedINTEL, false, false, IR(706, 1), IR(44544, 36), IR(0, 0), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpCompositeConstructContinuedINTEL, true, true, IR(107, 3), IR(44580, 33), IR(0, 0), IR(293, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpConvertFToBF16INTEL, true, true, IR(160, 3), IR(44613, 20), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpConvertBF16ToFINTEL, true, true, IR(160, 3), IR(44633, 20), IR(0, 0), IR(294, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpControlBarrierArriveINTEL, false, false, IR(221, 3), IR(44653, 26), IR(0, 0), IR(295, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpControlBarrierWaitINTEL, false, false, IR(221, 3), IR(44679, 24), IR(0, 0), IR(295, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBarrier}, + {spv::Op::OpArithmeticFenceEXT, true, true, IR(160, 3), IR(13457, 19), IR(0, 0), IR(296, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMiscellaneous}, + {spv::Op::OpTaskSequenceCreateINTEL, true, true, IR(707, 7), IR(44703, 24), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTaskSequenceAsyncINTEL, false, false, IR(168, 2), IR(44727, 23), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTaskSequenceGetINTEL, true, true, IR(160, 3), IR(44750, 21), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTaskSequenceReleaseINTEL, false, false, IR(10, 1), IR(44771, 25), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kReserved}, + {spv::Op::OpTypeTaskSequenceINTEL, true, false, IR(68, 1), IR(44796, 22), IR(0, 0), IR(297, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kType_Declaration}, + {spv::Op::OpSubgroupBlockPrefetchINTEL, false, false, IR(139, 3), IR(44818, 27), IR(0, 0), IR(298, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockLoadINTEL, false, false, IR(714, 10), IR(44845, 25), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockLoadTransformINTEL, false, false, IR(714, 10), IR(44870, 34), IR(0, 0), IR(299, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockLoadTransposeINTEL, false, false, IR(714, 10), IR(44904, 34), IR(0, 0), IR(300, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockPrefetchINTEL, false, false, IR(724, 9), IR(44938, 29), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroup2DBlockStoreINTEL, false, false, IR(714, 10), IR(44967, 26), IR(0, 0), IR(108, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpSubgroupMatrixMultiplyAccumulateINTEL, true, true, IR(733, 7), IR(13795, 38), IR(0, 0), IR(301, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpBitwiseFunctionINTEL, true, true, IR(215, 6), IR(45055, 21), IR(0, 0), IR(302, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kBit}, + {spv::Op::OpUntypedVariableLengthArrayINTEL, true, true, IR(172, 4), IR(13861, 32), IR(0, 0), IR(303, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpConditionalExtensionINTEL, false, false, IR(45, 2), IR(45076, 26), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kExtension}, + {spv::Op::OpConditionalEntryPointINTEL, false, false, IR(740, 5), IR(45102, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpConditionalCapabilityINTEL, false, false, IR(745, 2), IR(45129, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMode_Setting}, + {spv::Op::OpSpecConstantTargetINTEL, true, true, IR(747, 4), IR(45156, 24), IR(0, 0), IR(304, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantArchitectureINTEL, true, true, IR(751, 6), IR(45180, 30), IR(0, 0), IR(304, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpSpecConstantCapabilitiesINTEL, true, true, IR(757, 3), IR(45247, 30), IR(0, 0), IR(304, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConstant_Creation}, + {spv::Op::OpConditionalCopyObjectINTEL, true, true, IR(107, 3), IR(45277, 27), IR(0, 0), IR(111, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kComposite}, + {spv::Op::OpGroupIMulKHR, true, true, IR(283, 5), IR(45304, 13), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupFMulKHR, true, true, IR(283, 5), IR(45317, 13), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBitwiseAndKHR, true, true, IR(283, 5), IR(45330, 19), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBitwiseOrKHR, true, true, IR(283, 5), IR(45349, 18), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupBitwiseXorKHR, true, true, IR(283, 5), IR(45367, 19), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupLogicalAndKHR, true, true, IR(283, 5), IR(45386, 19), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupLogicalOrKHR, true, true, IR(283, 5), IR(45405, 18), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpGroupLogicalXorKHR, true, true, IR(283, 5), IR(45423, 19), IR(0, 0), IR(305, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kGroup}, + {spv::Op::OpRoundFToTF32INTEL, true, true, IR(160, 3), IR(45442, 18), IR(0, 0), IR(306, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kConversion}, + {spv::Op::OpMaskedGatherINTEL, true, true, IR(760, 6), IR(45460, 18), IR(0, 0), IR(307, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpMaskedScatterINTEL, false, false, IR(766, 4), IR(45478, 19), IR(0, 0), IR(307, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kMemory}, + {spv::Op::OpConvertHandleToImageINTEL, true, true, IR(160, 3), IR(45497, 26), IR(0, 0), IR(308, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpConvertHandleToSamplerINTEL, true, true, IR(160, 3), IR(45523, 28), IR(0, 0), IR(308, 1), IR(0, 0), 0xffffffffu, 0xffffffffu, PrintingClass::kImage}, + {spv::Op::OpConvertHandleToSampledImageINTEL, true, true, IR(160, 3), IR(45551, 33), IR(0, 0), IR(308, 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(36385, 13), 541}, // 0 AbsISubINTEL - {IR(36398, 13), 542}, // 1 AbsUSubINTEL - {IR(26453, 12), 58}, // 2 AccessChain - {IR(42998, 21), 727}, // 3 AliasDomainDeclINTEL - {IR(43019, 20), 728}, // 4 AliasScopeDeclINTEL - {IR(43039, 24), 729}, // 5 AliasScopeListDeclINTEL - {IR(27750, 4), 143}, // 6 All - {IR(32909, 25), 413}, // 7 AllocateNodePayloadsAMDX - {IR(27746, 4), 142}, // 8 Any - {IR(42785, 24), 718}, // 9 ArbitraryFloatACosINTEL - {IR(42809, 26), 719}, // 10 ArbitraryFloatACosPiINTEL - {IR(42735, 24), 716}, // 11 ArbitraryFloatASinINTEL - {IR(42759, 26), 717}, // 12 ArbitraryFloatASinPiINTEL - {IR(42885, 25), 722}, // 13 ArbitraryFloatATan2INTEL - {IR(42835, 24), 720}, // 14 ArbitraryFloatATanINTEL - {IR(42859, 26), 721}, // 15 ArbitraryFloatATanPiINTEL - {IR(42094, 23), 689}, // 16 ArbitraryFloatAddINTEL - {IR(42034, 31), 687}, // 17 ArbitraryFloatCastFromIntINTEL - {IR(42010, 24), 686}, // 18 ArbitraryFloatCastINTEL - {IR(42065, 29), 688}, // 19 ArbitraryFloatCastToIntINTEL - {IR(42346, 24), 700}, // 20 ArbitraryFloatCbrtINTEL - {IR(42636, 23), 712}, // 21 ArbitraryFloatCosINTEL - {IR(42710, 25), 715}, // 22 ArbitraryFloatCosPiINTEL - {IR(42163, 23), 692}, // 23 ArbitraryFloatDivINTEL - {IR(42274, 22), 697}, // 24 ArbitraryFloatEQINTEL - {IR(42563, 25), 709}, // 25 ArbitraryFloatExp10INTEL - {IR(42539, 24), 708}, // 26 ArbitraryFloatExp2INTEL - {IR(42516, 23), 707}, // 27 ArbitraryFloatExpINTEL - {IR(42588, 25), 710}, // 28 ArbitraryFloatExpm1INTEL - {IR(42208, 22), 694}, // 29 ArbitraryFloatGEINTEL - {IR(42186, 22), 693}, // 30 ArbitraryFloatGTINTEL - {IR(42370, 25), 701}, // 31 ArbitraryFloatHypotINTEL - {IR(42252, 22), 696}, // 32 ArbitraryFloatLEINTEL - {IR(42230, 22), 695}, // 33 ArbitraryFloatLTINTEL - {IR(42466, 25), 705}, // 34 ArbitraryFloatLog10INTEL - {IR(42491, 25), 706}, // 35 ArbitraryFloatLog1pINTEL - {IR(42442, 24), 704}, // 36 ArbitraryFloatLog2INTEL - {IR(42419, 23), 703}, // 37 ArbitraryFloatLogINTEL - {IR(42140, 23), 691}, // 38 ArbitraryFloatMulINTEL - {IR(42910, 23), 723}, // 39 ArbitraryFloatPowINTEL - {IR(42957, 24), 725}, // 40 ArbitraryFloatPowNINTEL - {IR(42933, 24), 724}, // 41 ArbitraryFloatPowRINTEL - {IR(42321, 25), 699}, // 42 ArbitraryFloatRSqrtINTEL - {IR(42296, 25), 698}, // 43 ArbitraryFloatRecipINTEL - {IR(42659, 26), 713}, // 44 ArbitraryFloatSinCosINTEL - {IR(41982, 28), 685}, // 45 ArbitraryFloatSinCosPiINTEL - {IR(42613, 23), 711}, // 46 ArbitraryFloatSinINTEL - {IR(42685, 25), 714}, // 47 ArbitraryFloatSinPiINTEL - {IR(42395, 24), 702}, // 48 ArbitraryFloatSqrtINTEL - {IR(42117, 23), 690}, // 49 ArbitraryFloatSubINTEL - {IR(13335, 19), 773}, // 50 ArithmeticFenceEXT - {IR(26500, 12), 61}, // 51 ArrayLength - {IR(36632, 13), 557}, // 52 AsmCallINTEL - {IR(12106, 9), 556}, // 53 AsmINTEL - {IR(36617, 15), 555}, // 54 AsmTargetINTEL - {IR(36673, 14), 560}, // 55 AssumeTrueKHR - {IR(28772, 10), 220}, // 56 AtomicAnd - {IR(28624, 22), 210}, // 57 AtomicCompareExchange - {IR(28646, 26), 211}, // 58 AtomicCompareExchangeWeak - {IR(28609, 15), 209}, // 59 AtomicExchange - {IR(43988, 14), 763}, // 60 AtomicFAddEXT - {IR(36659, 14), 559}, // 61 AtomicFMaxEXT - {IR(36645, 14), 558}, // 62 AtomicFMinEXT - {IR(30157, 16), 292}, // 63 AtomicFlagClear - {IR(30136, 21), 291}, // 64 AtomicFlagTestAndSet - {IR(28706, 11), 214}, // 65 AtomicIAdd - {IR(28689, 17), 213}, // 66 AtomicIDecrement - {IR(28672, 17), 212}, // 67 AtomicIIncrement - {IR(28717, 11), 215}, // 68 AtomicISub - {IR(28586, 11), 207}, // 69 AtomicLoad - {IR(28782, 9), 221}, // 70 AtomicOr - {IR(28750, 11), 218}, // 71 AtomicSMax - {IR(28728, 11), 216}, // 72 AtomicSMin - {IR(28597, 12), 208}, // 73 AtomicStore - {IR(28761, 11), 219}, // 74 AtomicUMax - {IR(28739, 11), 217}, // 75 AtomicUMin - {IR(28791, 10), 222}, // 76 AtomicXor - {IR(34881, 28), 487}, // 77 BeginInvocationInterlockEXT - {IR(28370, 9), 191}, // 78 BitCount - {IR(28310, 15), 187}, // 79 BitFieldInsert - {IR(28325, 17), 188}, // 80 BitFieldSExtract - {IR(28342, 17), 189}, // 81 BitFieldUExtract - {IR(28359, 11), 190}, // 82 BitReverse - {IR(27498, 8), 114}, // 83 Bitcast - {IR(28295, 11), 185}, // 84 BitwiseAnd - {IR(44593, 21), 786}, // 85 BitwiseFunctionINTEL - {IR(28274, 10), 183}, // 86 BitwiseOr - {IR(28284, 11), 184}, // 87 BitwiseXor - {IR(28901, 7), 227}, // 88 Branch - {IR(28908, 18), 228}, // 89 BranchConditional - {IR(29769, 13), 277}, // 90 BuildNDRange - {IR(25514, 11), 15}, // 91 Capability - {IR(29727, 26), 275}, // 92 CaptureEventProfilingInfo - {IR(31233, 23), 344}, // 93 ColorAttachmentReadEXT - {IR(29319, 15), 255}, // 94 CommitReadPipe - {IR(29334, 16), 256}, // 95 CommitWritePipe - {IR(26760, 19), 72}, // 96 CompositeConstruct - {IR(44118, 33), 768}, // 97 CompositeConstructContinuedINTEL - {IR(32266, 31), 386}, // 98 CompositeConstructReplicateEXT - {IR(26779, 17), 73}, // 99 CompositeExtract - {IR(26796, 16), 74}, // 100 CompositeInsert - {IR(15254, 9), 39}, // 101 Constant - {IR(26020, 18), 40}, // 102 ConstantComposite - {IR(44050, 32), 766}, // 103 ConstantCompositeContinuedINTEL - {IR(32202, 30), 384}, // 104 ConstantCompositeReplicateEXT - {IR(25968, 14), 38}, // 105 ConstantFalse - {IR(36563, 29), 553}, // 106 ConstantFunctionPointerINTEL - {IR(26132, 13), 42}, // 107 ConstantNull - {IR(30212, 20), 296}, // 108 ConstantPipeStorage - {IR(26116, 16), 41}, // 109 ConstantSampler - {IR(33062, 19), 419}, // 110 ConstantStringAMDX - {IR(25955, 13), 37}, // 111 ConstantTrue - {IR(28557, 15), 205}, // 112 ControlBarrier - {IR(44191, 26), 771}, // 113 ControlBarrierArriveINTEL - {IR(44217, 24), 772}, // 114 ControlBarrierWaitINTEL - {IR(44171, 20), 770}, // 115 ConvertBF16ToFINTEL - {IR(44151, 20), 769}, // 116 ConvertFToBF16INTEL - {IR(27304, 12), 100}, // 117 ConvertFToS - {IR(27292, 12), 99}, // 118 ConvertFToU - {IR(44807, 26), 798}, // 119 ConvertHandleToImageINTEL - {IR(44861, 33), 800}, // 120 ConvertHandleToSampledImageINTEL - {IR(44833, 28), 799}, // 121 ConvertHandleToSamplerINTEL - {IR(35530, 18), 510}, // 122 ConvertImageToUNV - {IR(27381, 14), 107}, // 123 ConvertPtrToU - {IR(27316, 12), 101}, // 124 ConvertSToF - {IR(35593, 25), 513}, // 125 ConvertSampledImageToUNV - {IR(35548, 20), 511}, // 126 ConvertSamplerToUNV - {IR(31780, 35), 370}, // 127 ConvertUToAccelerationStructureKHR - {IR(27328, 12), 102}, // 128 ConvertUToF - {IR(35492, 18), 508}, // 129 ConvertUToImageNV - {IR(27425, 14), 110}, // 130 ConvertUToPtr - {IR(35568, 25), 512}, // 131 ConvertUToSampledImageNV - {IR(35510, 20), 509}, // 132 ConvertUToSamplerNV - {IR(34222, 27), 462}, // 133 CooperativeMatrixConvertNV - {IR(32175, 27), 383}, // 134 CooperativeMatrixLengthKHR - {IR(34855, 26), 486}, // 135 CooperativeMatrixLengthNV - {IR(32043, 25), 380}, // 136 CooperativeMatrixLoadKHR - {IR(34780, 24), 483}, // 137 CooperativeMatrixLoadNV - {IR(35079, 30), 490}, // 138 CooperativeMatrixLoadTensorNV - {IR(32148, 27), 382}, // 139 CooperativeMatrixMulAddKHR - {IR(34829, 26), 485}, // 140 CooperativeMatrixMulAddNV - {IR(35140, 32), 492}, // 141 CooperativeMatrixPerElementOpNV - {IR(34978, 26), 489}, // 142 CooperativeMatrixReduceNV - {IR(32068, 26), 381}, // 143 CooperativeMatrixStoreKHR - {IR(34804, 25), 484}, // 144 CooperativeMatrixStoreNV - {IR(35109, 31), 491}, // 145 CooperativeMatrixStoreTensorNV - {IR(35463, 29), 507}, // 146 CooperativeMatrixTransposeNV - {IR(34417, 24), 469}, // 147 CooperativeVectorLoadNV - {IR(34190, 32), 461}, // 148 CooperativeVectorMatrixMulAddNV - {IR(34080, 29), 458}, // 149 CooperativeVectorMatrixMulNV - {IR(34109, 42), 459}, // 150 CooperativeVectorOuterProductAccumulateNV - {IR(34151, 39), 460}, // 151 CooperativeVectorReduceSumAccumulateNV - {IR(34441, 25), 470}, // 152 CooperativeVectorStoreNV - {IR(31192, 12), 340}, // 153 CopyLogical - {IR(26426, 11), 56}, // 154 CopyMemory - {IR(26437, 16), 57}, // 155 CopyMemorySized - {IR(26812, 11), 75}, // 156 CopyObject - {IR(30232, 26), 297}, // 157 CreatePipeFromPipeStorage - {IR(35208, 21), 495}, // 158 CreateTensorLayoutNV - {IR(35328, 19), 500}, // 159 CreateTensorViewNV - {IR(29679, 16), 272}, // 160 CreateUserEvent - {IR(43263, 29), 742}, // 161 CrossWorkgroupCastToPtrINTEL - {IR(28379, 5), 192}, // 162 DPdx - {IR(28425, 11), 198}, // 163 DPdxCoarse - {IR(28396, 9), 195}, // 164 DPdxFine - {IR(28384, 5), 193}, // 165 DPdy - {IR(28436, 11), 199}, // 166 DPdyCoarse - {IR(28405, 9), 196}, // 167 DPdyFine - {IR(26586, 9), 64}, // 168 Decorate - {IR(30409, 11), 305}, // 169 DecorateId - {IR(36697, 15), 562}, // 170 DecorateString - {IR(36712, 21), 562}, // 171 DecorateStringGOOGLE - {IR(26610, 16), 66}, // 172 DecorationGroup - {IR(11440, 25), 503}, // 173 DemoteToHelperInvocation - {IR(11465, 28), 503}, // 174 DemoteToHelperInvocationEXT - {IR(31256, 23), 345}, // 175 DepthAttachmentReadEXT - {IR(27695, 4), 137}, // 176 Dot - {IR(34249, 17), 463}, // 177 EmitMeshTasksEXT - {IR(28484, 17), 203}, // 178 EmitStreamVertex - {IR(28460, 11), 201}, // 179 EmitVertex - {IR(34909, 26), 488}, // 180 EndInvocationInterlockEXT - {IR(28471, 13), 202}, // 181 EndPrimitive - {IR(28501, 19), 204}, // 182 EndStreamPrimitive - {IR(29515, 14), 265}, // 183 EnqueueKernel - {IR(29501, 14), 264}, // 184 EnqueueMarker - {IR(32934, 24), 414}, // 185 EnqueueNodePayloadsAMDX - {IR(25429, 11), 13}, // 186 EntryPoint - {IR(31761, 19), 369}, // 187 ExecuteCallableKHR - {IR(34691, 18), 479}, // 188 ExecuteCallableNV - {IR(25472, 14), 14}, // 189 ExecutionMode - {IR(30393, 16), 304}, // 190 ExecutionModeId - {IR(36687, 10), 561}, // 191 ExpectKHR - {IR(25283, 8), 11}, // 192 ExtInst - {IR(25223, 14), 10}, // 193 ExtInstImport - {IR(31723, 26), 367}, // 194 ExtInstWithForwardRefsKHR - {IR(25213, 10), 9}, // 195 Extension - {IR(27527, 5), 118}, // 196 FAdd - {IR(27358, 9), 105}, // 197 FConvert - {IR(27562, 5), 125}, // 198 FDiv - {IR(27587, 5), 130}, // 199 FMod - {IR(27547, 5), 122}, // 200 FMul - {IR(27514, 8), 116}, // 201 FNegate - {IR(28024, 10), 168}, // 202 FOrdEqual - {IR(28102, 16), 174}, // 203 FOrdGreaterThan - {IR(28174, 21), 178}, // 204 FOrdGreaterThanEqual - {IR(28074, 13), 172}, // 205 FOrdLessThan - {IR(28136, 18), 176}, // 206 FOrdLessThanEqual - {IR(28046, 13), 170}, // 207 FOrdNotEqual - {IR(12903, 13), 745}, // 208 FPGARegINTEL - {IR(27582, 5), 129}, // 209 FRem - {IR(27537, 5), 120}, // 210 FSub - {IR(28034, 12), 169}, // 211 FUnordEqual - {IR(28118, 18), 175}, // 212 FUnordGreaterThan - {IR(28195, 23), 179}, // 213 FUnordGreaterThanEqual - {IR(28087, 15), 173}, // 214 FUnordLessThan - {IR(28154, 20), 177}, // 215 FUnordLessThanEqual - {IR(28059, 15), 171}, // 216 FUnordNotEqual - {IR(34379, 38), 468}, // 217 FetchMicroTriangleVertexBarycentricNV - {IR(34344, 35), 467}, // 218 FetchMicroTriangleVertexPositionNV - {IR(32983, 29), 416}, // 219 FinishWritingNodePayloadAMDX - {IR(43124, 14), 734}, // 220 FixedCosINTEL - {IR(43171, 16), 737}, // 221 FixedCosPiINTEL - {IR(43220, 14), 740}, // 222 FixedExpINTEL - {IR(43206, 14), 739}, // 223 FixedLogINTEL - {IR(43078, 16), 731}, // 224 FixedRecipINTEL - {IR(43094, 16), 732}, // 225 FixedRsqrtINTEL - {IR(43138, 17), 735}, // 226 FixedSinCosINTEL - {IR(43187, 19), 738}, // 227 FixedSinCosPiINTEL - {IR(43110, 14), 733}, // 228 FixedSinINTEL - {IR(43155, 16), 736}, // 229 FixedSinPiINTEL - {IR(43063, 15), 730}, // 230 FixedSqrtINTEL - {IR(32879, 17), 411}, // 231 FragmentFetchAMD - {IR(32858, 21), 410}, // 232 FragmentMaskFetchAMD - {IR(24333, 9), 48}, // 233 Function - {IR(26335, 13), 51}, // 234 FunctionCall - {IR(26323, 12), 50}, // 235 FunctionEnd - {IR(26305, 18), 49}, // 236 FunctionParameter - {IR(36592, 25), 554}, // 237 FunctionPointerCallINTEL - {IR(28389, 7), 194}, // 238 Fwidth - {IR(28447, 13), 200}, // 239 FwidthCoarse - {IR(28414, 11), 197}, // 240 FwidthFine - {IR(27456, 17), 112}, // 241 GenericCastToPtr - {IR(27473, 25), 113}, // 242 GenericCastToPtrExplicit - {IR(26512, 23), 62}, // 243 GenericPtrMemSemantics - {IR(29753, 16), 276}, // 244 GetDefaultQueue - {IR(30258, 35), 298}, // 245 GetKernelLocalSizeForSubgroupCount - {IR(30293, 25), 299}, // 246 GetKernelMaxNumSubgroups - {IR(29559, 32), 267}, // 247 GetKernelNDrangeMaxSubGroupSize - {IR(29529, 30), 266}, // 248 GetKernelNDrangeSubGroupCount - {IR(29614, 40), 269}, // 249 GetKernelPreferredWorkGroupSizeMultiple - {IR(29591, 23), 268}, // 250 GetKernelWorkGroupSize - {IR(29385, 18), 259}, // 251 GetMaxPipePackets - {IR(29367, 18), 258}, // 252 GetNumPipePackets - {IR(29072, 9), 238}, // 253 GroupAll - {IR(29081, 9), 239}, // 254 GroupAny - {IR(29041, 15), 236}, // 255 GroupAsyncCopy - {IR(44640, 19), 789}, // 256 GroupBitwiseAndKHR - {IR(44659, 18), 790}, // 257 GroupBitwiseOrKHR - {IR(44677, 19), 791}, // 258 GroupBitwiseXorKHR - {IR(29090, 15), 240}, // 259 GroupBroadcast - {IR(29460, 20), 262}, // 260 GroupCommitReadPipe - {IR(29480, 21), 263}, // 261 GroupCommitWritePipe - {IR(26626, 14), 67}, // 262 GroupDecorate - {IR(29148, 10), 242}, // 263 GroupFAdd - {IR(32697, 23), 403}, // 264 GroupFAddNonUniformAMD - {IR(29188, 10), 246}, // 265 GroupFMax - {IR(32789, 23), 407}, // 266 GroupFMaxNonUniformAMD - {IR(29158, 10), 243}, // 267 GroupFMin - {IR(32720, 23), 404}, // 268 GroupFMinNonUniformAMD - {IR(44627, 13), 788}, // 269 GroupFMulKHR - {IR(29138, 10), 241}, // 270 GroupIAdd - {IR(32674, 23), 402}, // 271 GroupIAddNonUniformAMD - {IR(44614, 13), 787}, // 272 GroupIMulKHR - {IR(44696, 19), 792}, // 273 GroupLogicalAndKHR - {IR(44715, 18), 793}, // 274 GroupLogicalOrKHR - {IR(44733, 19), 794}, // 275 GroupLogicalXorKHR - {IR(26685, 20), 68}, // 276 GroupMemberDecorate - {IR(30441, 19), 307}, // 277 GroupNonUniformAll - {IR(30479, 24), 309}, // 278 GroupNonUniformAllEqual - {IR(30460, 19), 308}, // 279 GroupNonUniformAny - {IR(5569, 22), 312}, // 280 GroupNonUniformBallot - {IR(30619, 30), 315}, // 281 GroupNonUniformBallotBitCount - {IR(30587, 32), 314}, // 282 GroupNonUniformBallotBitExtract - {IR(30649, 29), 316}, // 283 GroupNonUniformBallotFindLSB - {IR(30678, 29), 317}, // 284 GroupNonUniformBallotFindMSB - {IR(30985, 26), 332}, // 285 GroupNonUniformBitwiseAnd - {IR(31011, 25), 333}, // 286 GroupNonUniformBitwiseOr - {IR(31036, 26), 334}, // 287 GroupNonUniformBitwiseXor - {IR(30503, 25), 310}, // 288 GroupNonUniformBroadcast - {IR(30528, 30), 311}, // 289 GroupNonUniformBroadcastFirst - {IR(30420, 21), 306}, // 290 GroupNonUniformElect - {IR(30805, 20), 323}, // 291 GroupNonUniformFAdd - {IR(30965, 20), 331}, // 292 GroupNonUniformFMax - {IR(30905, 20), 328}, // 293 GroupNonUniformFMin - {IR(30845, 20), 325}, // 294 GroupNonUniformFMul - {IR(30785, 20), 322}, // 295 GroupNonUniformIAdd - {IR(30825, 20), 324}, // 296 GroupNonUniformIMul - {IR(30558, 29), 313}, // 297 GroupNonUniformInverseBallot - {IR(31062, 26), 335}, // 298 GroupNonUniformLogicalAnd - {IR(31088, 25), 336}, // 299 GroupNonUniformLogicalOr - {IR(31113, 26), 337}, // 300 GroupNonUniformLogicalXor - {IR(34284, 27), 465}, // 301 GroupNonUniformPartitionNV - {IR(33104, 26), 421}, // 302 GroupNonUniformQuadAllKHR - {IR(33130, 26), 422}, // 303 GroupNonUniformQuadAnyKHR - {IR(31139, 29), 338}, // 304 GroupNonUniformQuadBroadcast - {IR(31168, 24), 339}, // 305 GroupNonUniformQuadSwap - {IR(13128, 25), 365}, // 306 GroupNonUniformRotateKHR - {IR(30925, 20), 329}, // 307 GroupNonUniformSMax - {IR(30865, 20), 326}, // 308 GroupNonUniformSMin - {IR(8659, 23), 318}, // 309 GroupNonUniformShuffle - {IR(30758, 27), 321}, // 310 GroupNonUniformShuffleDown - {IR(30733, 25), 320}, // 311 GroupNonUniformShuffleUp - {IR(30707, 26), 319}, // 312 GroupNonUniformShuffleXor - {IR(30945, 20), 330}, // 313 GroupNonUniformUMax - {IR(30885, 20), 327}, // 314 GroupNonUniformUMin - {IR(29403, 28), 260}, // 315 GroupReserveReadPipePackets - {IR(29431, 29), 261}, // 316 GroupReserveWritePipePackets - {IR(29208, 10), 248}, // 317 GroupSMax - {IR(32835, 23), 409}, // 318 GroupSMaxNonUniformAMD - {IR(29178, 10), 245}, // 319 GroupSMin - {IR(32766, 23), 406}, // 320 GroupSMinNonUniformAMD - {IR(29198, 10), 247}, // 321 GroupUMax - {IR(32812, 23), 408}, // 322 GroupUMaxNonUniformAMD - {IR(29168, 10), 244}, // 323 GroupUMin - {IR(32743, 23), 405}, // 324 GroupUMinNonUniformAMD - {IR(29056, 16), 237}, // 325 GroupWaitEvents - {IR(33591, 25), 438}, // 326 HitObjectExecuteShaderNV - {IR(33642, 25), 440}, // 327 HitObjectGetAttributesNV - {IR(34732, 24), 481}, // 328 HitObjectGetClusterIdNV - {IR(33616, 26), 439}, // 329 HitObjectGetCurrentTimeNV - {IR(33718, 28), 443}, // 330 HitObjectGetGeometryIndexNV - {IR(33667, 22), 441}, // 331 HitObjectGetHitKindNV - {IR(33771, 34), 445}, // 332 HitObjectGetInstanceCustomIndexNV - {IR(33746, 25), 444}, // 333 HitObjectGetInstanceIdNV - {IR(35959, 27), 523}, // 334 HitObjectGetLSSPositionsNV - {IR(35986, 23), 524}, // 335 HitObjectGetLSSRadiiNV - {IR(33303, 33), 428}, // 336 HitObjectGetObjectRayDirectionNV - {IR(33336, 30), 429}, // 337 HitObjectGetObjectRayOriginNV - {IR(33275, 28), 427}, // 338 HitObjectGetObjectToWorldNV - {IR(33689, 29), 442}, // 339 HitObjectGetPrimitiveIndexNV - {IR(33866, 22), 448}, // 340 HitObjectGetRayTMaxNV - {IR(33888, 22), 449}, // 341 HitObjectGetRayTMinNV - {IR(33431, 44), 432}, // 342 HitObjectGetShaderBindingTableRecordIndexNV - {IR(33392, 39), 431}, // 343 HitObjectGetShaderRecordBufferHandleNV - {IR(35903, 29), 521}, // 344 HitObjectGetSpherePositionNV - {IR(35932, 27), 522}, // 345 HitObjectGetSphereRadiusNV - {IR(33805, 32), 446}, // 346 HitObjectGetWorldRayDirectionNV - {IR(33837, 29), 447}, // 347 HitObjectGetWorldRayOriginNV - {IR(33247, 28), 426}, // 348 HitObjectGetWorldToObjectNV - {IR(33910, 19), 450}, // 349 HitObjectIsEmptyNV - {IR(33929, 17), 451}, // 350 HitObjectIsHitNV - {IR(36032, 20), 526}, // 351 HitObjectIsLSSHitNV - {IR(33946, 18), 452}, // 352 HitObjectIsMissNV - {IR(36009, 23), 525}, // 353 HitObjectIsSphereHitNV - {IR(33475, 23), 433}, // 354 HitObjectRecordEmptyNV - {IR(33156, 27), 423}, // 355 HitObjectRecordHitMotionNV - {IR(33518, 21), 435}, // 356 HitObjectRecordHitNV - {IR(33183, 36), 424}, // 357 HitObjectRecordHitWithIndexMotionNV - {IR(33539, 30), 436}, // 358 HitObjectRecordHitWithIndexNV - {IR(33219, 28), 425}, // 359 HitObjectRecordMissMotionNV - {IR(33569, 22), 437}, // 360 HitObjectRecordMissNV - {IR(33366, 26), 430}, // 361 HitObjectTraceRayMotionNV - {IR(33498, 20), 434}, // 362 HitObjectTraceRayNV - {IR(27522, 5), 117}, // 363 IAdd - {IR(27699, 10), 138}, // 364 IAddCarry - {IR(36411, 13), 543}, // 365 IAddSatINTEL - {IR(36437, 14), 545}, // 366 IAverageINTEL - {IR(36465, 21), 547}, // 367 IAverageRoundedINTEL - {IR(27895, 7), 158}, // 368 IEqual - {IR(27542, 5), 121}, // 369 IMul - {IR(36533, 15), 551}, // 370 IMul32x16INTEL - {IR(27902, 10), 159}, // 371 INotEqual - {IR(27532, 5), 119}, // 372 ISub - {IR(27709, 11), 139}, // 373 ISubBorrow - {IR(36507, 13), 549}, // 374 ISubSatINTEL - {IR(31815, 22), 371}, // 375 IgnoreIntersectionKHR - {IR(34509, 21), 472}, // 376 IgnoreIntersectionNV - {IR(24377, 6), 91}, // 377 Image - {IR(32645, 29), 401}, // 378 ImageBlockMatchGatherSADQCOM - {IR(32616, 29), 400}, // 379 ImageBlockMatchGatherSSDQCOM - {IR(32535, 23), 397}, // 380 ImageBlockMatchSADQCOM - {IR(32512, 23), 396}, // 381 ImageBlockMatchSSDQCOM - {IR(32587, 29), 399}, // 382 ImageBlockMatchWindowSADQCOM - {IR(32558, 29), 398}, // 383 ImageBlockMatchWindowSSDQCOM - {IR(32493, 19), 395}, // 384 ImageBoxFilterQCOM - {IR(27140, 16), 88}, // 385 ImageDrefGather - {IR(27117, 11), 86}, // 386 ImageFetch - {IR(27128, 12), 87}, // 387 ImageGather - {IR(27177, 17), 92}, // 388 ImageQueryFormat - {IR(27257, 17), 97}, // 389 ImageQueryLevels - {IR(27243, 14), 96}, // 390 ImageQueryLod - {IR(27194, 16), 93}, // 391 ImageQueryOrder - {IR(27274, 18), 98}, // 392 ImageQuerySamples - {IR(27228, 15), 95}, // 393 ImageQuerySize - {IR(27210, 18), 94}, // 394 ImageQuerySizeLod - {IR(27156, 10), 89}, // 395 ImageRead - {IR(26974, 27), 81}, // 396 ImageSampleDrefExplicitLod - {IR(26947, 27), 80}, // 397 ImageSampleDrefImplicitLod - {IR(26924, 23), 79}, // 398 ImageSampleExplicitLod - {IR(34033, 23), 456}, // 399 ImageSampleFootprintNV - {IR(26878, 23), 78}, // 400 ImageSampleImplicitLod - {IR(27086, 31), 85}, // 401 ImageSampleProjDrefExplicitLod - {IR(27055, 31), 84}, // 402 ImageSampleProjDrefImplicitLod - {IR(27028, 27), 83}, // 403 ImageSampleProjExplicitLod - {IR(27001, 27), 82}, // 404 ImageSampleProjImplicitLod - {IR(32469, 24), 394}, // 405 ImageSampleWeightedQCOM - {IR(30081, 22), 288}, // 406 ImageSparseDrefGather - {IR(30046, 17), 286}, // 407 ImageSparseFetch - {IR(30063, 18), 287}, // 408 ImageSparseGather - {IR(30173, 16), 293}, // 409 ImageSparseRead - {IR(29873, 33), 281}, // 410 ImageSparseSampleDrefExplicitLod - {IR(29840, 33), 280}, // 411 ImageSparseSampleDrefImplicitLod - {IR(29811, 29), 279}, // 412 ImageSparseSampleExplicitLod - {IR(29782, 29), 278}, // 413 ImageSparseSampleImplicitLod - {IR(30009, 37), 285}, // 414 ImageSparseSampleProjDrefExplicitLod - {IR(29972, 37), 284}, // 415 ImageSparseSampleProjDrefImplicitLod - {IR(29939, 33), 283}, // 416 ImageSparseSampleProjExplicitLod - {IR(29906, 33), 282}, // 417 ImageSparseSampleProjImplicitLod - {IR(30103, 26), 289}, // 418 ImageSparseTexelsResident - {IR(26357, 18), 53}, // 419 ImageTexelPointer - {IR(27166, 11), 90}, // 420 ImageWrite - {IR(26465, 20), 59}, // 421 InBoundsAccessChain - {IR(26535, 23), 63}, // 422 InBoundsPtrAccessChain - {IR(27766, 9), 146}, // 423 IsFinite - {IR(35394, 22), 504}, // 424 IsHelperInvocationEXT - {IR(27760, 6), 145}, // 425 IsInf - {IR(27754, 6), 144}, // 426 IsNan - {IR(33039, 23), 418}, // 427 IsNodePayloadValidAMDX - {IR(27775, 9), 147}, // 428 IsNormal - {IR(29695, 13), 273}, // 429 IsValidEvent - {IR(29350, 17), 257}, // 430 IsValidReserveId - {IR(28978, 5), 230}, // 431 Kill - {IR(28895, 6), 226}, // 432 Label - {IR(27795, 14), 149}, // 433 LessOrGreater - {IR(29014, 14), 234}, // 434 LifetimeStart - {IR(29028, 13), 235}, // 435 LifetimeStop - {IR(25208, 5), 8}, // 436 Line - {IR(26415, 5), 54}, // 437 Load - {IR(27866, 11), 155}, // 438 LogicalAnd - {IR(27827, 13), 152}, // 439 LogicalEqual - {IR(27877, 11), 156}, // 440 LogicalNot - {IR(27840, 16), 153}, // 441 LogicalNotEqual - {IR(27856, 10), 154}, // 442 LogicalOr - {IR(42981, 17), 726}, // 443 LoopControlINTEL - {IR(28835, 10), 224}, // 444 LoopMerge - {IR(44770, 18), 796}, // 445 MaskedGatherINTEL - {IR(44788, 19), 797}, // 446 MaskedScatterINTEL - {IR(27664, 18), 135}, // 447 MatrixTimesMatrix - {IR(27610, 18), 132}, // 448 MatrixTimesScalar - {IR(27646, 18), 134}, // 449 MatrixTimesVector - {IR(26595, 15), 65}, // 450 MemberDecorate - {IR(36733, 21), 563}, // 451 MemberDecorateString - {IR(36754, 27), 563}, // 452 MemberDecorateStringGOOGLE - {IR(25190, 11), 6}, // 453 MemberName - {IR(28572, 14), 206}, // 454 MemoryBarrier - {IR(25355, 12), 12}, // 455 MemoryModel - {IR(30358, 19), 302}, // 456 MemoryNamedBarrier - {IR(30377, 16), 303}, // 457 ModuleProcessed - {IR(25185, 5), 5}, // 458 Name - {IR(30335, 23), 301}, // 459 NamedBarrierInitialize - {IR(30129, 7), 290}, // 460 NoLine - {IR(33012, 27), 417}, // 461 NodePayloadArrayLengthAMDX - {IR(24981, 4), 0}, // 462 Nop - {IR(28306, 4), 186}, // 463 Not - {IR(27809, 8), 150}, // 464 Ordered - {IR(27682, 13), 136}, // 465 OuterProduct - {IR(28801, 4), 223}, // 466 Phi - {IR(26485, 15), 60}, // 467 PtrAccessChain - {IR(43234, 29), 741}, // 468 PtrCastToCrossWorkgroupINTEL - {IR(27439, 17), 111}, // 469 PtrCastToGeneric - {IR(31225, 8), 343}, // 470 PtrDiff - {IR(31204, 9), 341}, // 471 PtrEqual - {IR(31213, 12), 342}, // 472 PtrNotEqual - {IR(27367, 14), 106}, // 473 QuantizeToF16 - {IR(35699, 17), 515}, // 474 RawAccessChainNV - {IR(32388, 31), 391}, // 475 RayQueryConfirmIntersectionKHR - {IR(32356, 32), 390}, // 476 RayQueryGenerateIntersectionKHR - {IR(34709, 23), 480}, // 477 RayQueryGetClusterIdNV - {IR(43639, 39), 754}, // 478 RayQueryGetIntersectionBarycentricsKHR - {IR(43714, 46), 756}, // 479 RayQueryGetIntersectionCandidateAABBOpaqueKHR - {IR(43678, 36), 755}, // 480 RayQueryGetIntersectionFrontFaceKHR - {IR(43558, 40), 752}, // 481 RayQueryGetIntersectionGeometryIndexKHR - {IR(43410, 46), 749}, // 482 RayQueryGetIntersectionInstanceCustomIndexKHR - {IR(43456, 37), 750}, // 483 RayQueryGetIntersectionInstanceIdKHR - {IR(43493, 65), 751}, // 484 RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR - {IR(35866, 37), 520}, // 485 RayQueryGetIntersectionLSSHitValueNV - {IR(35794, 38), 518}, // 486 RayQueryGetIntersectionLSSPositionsNV - {IR(35832, 34), 519}, // 487 RayQueryGetIntersectionLSSRadiiNV - {IR(43760, 45), 757}, // 488 RayQueryGetIntersectionObjectRayDirectionKHR - {IR(43805, 42), 758}, // 489 RayQueryGetIntersectionObjectRayOriginKHR - {IR(43908, 40), 761}, // 490 RayQueryGetIntersectionObjectToWorldKHR - {IR(43598, 41), 753}, // 491 RayQueryGetIntersectionPrimitiveIndexKHR - {IR(35716, 40), 516}, // 492 RayQueryGetIntersectionSpherePositionNV - {IR(35756, 38), 517}, // 493 RayQueryGetIntersectionSphereRadiusNV - {IR(43382, 28), 748}, // 494 RayQueryGetIntersectionTKHR - {IR(34584, 50), 477}, // 495 RayQueryGetIntersectionTriangleVertexPositionsKHR - {IR(32438, 31), 393}, // 496 RayQueryGetIntersectionTypeKHR - {IR(43948, 40), 762}, // 497 RayQueryGetIntersectionWorldToObjectKHR - {IR(43359, 23), 747}, // 498 RayQueryGetRayFlagsKHR - {IR(43337, 22), 746}, // 499 RayQueryGetRayTMinKHR - {IR(43847, 32), 759}, // 500 RayQueryGetWorldRayDirectionKHR - {IR(43879, 29), 760}, // 501 RayQueryGetWorldRayOriginKHR - {IR(32313, 22), 388}, // 502 RayQueryInitializeKHR - {IR(36074, 19), 528}, // 503 RayQueryIsLSSHitNV - {IR(36052, 22), 527}, // 504 RayQueryIsSphereHitNV - {IR(32419, 19), 392}, // 505 RayQueryProceedKHR - {IR(32335, 21), 389}, // 506 RayQueryTerminateKHR - {IR(32896, 13), 412}, // 507 ReadClockKHR - {IR(29218, 9), 249}, // 508 ReadPipe - {IR(43292, 22), 743}, // 509 ReadPipeBlockingINTEL - {IR(29666, 13), 271}, // 510 ReleaseEvent - {IR(33993, 24), 454}, // 511 ReorderThreadWithHintNV - {IR(33964, 29), 453}, // 512 ReorderThreadWithHitObjectNV - {IR(34466, 22), 471}, // 513 ReportIntersectionKHR - {IR(34488, 21), 471}, // 514 ReportIntersectionNV - {IR(29272, 23), 253}, // 515 ReserveReadPipePackets - {IR(29295, 24), 254}, // 516 ReserveWritePipePackets - {IR(29237, 17), 251}, // 517 ReservedReadPipe - {IR(29254, 18), 252}, // 518 ReservedWritePipe - {IR(41963, 19), 684}, // 519 RestoreMemoryINTEL - {IR(29654, 12), 270}, // 520 RetainEvent - {IR(28983, 7), 231}, // 521 Return - {IR(28990, 12), 232}, // 522 ReturnValue - {IR(44752, 18), 795}, // 523 RoundFToTF32INTEL - {IR(27349, 9), 104}, // 524 SConvert - {IR(27557, 5), 124}, // 525 SDiv - {IR(31900, 5), 373}, // 526 SDot - {IR(31941, 11), 376}, // 527 SDotAccSat - {IR(31952, 14), 376}, // 528 SDotAccSatKHR - {IR(31905, 8), 373}, // 529 SDotKHR - {IR(27925, 13), 161}, // 530 SGreaterThan - {IR(27956, 18), 163}, // 531 SGreaterThanEqual - {IR(27984, 10), 165}, // 532 SLessThan - {IR(28009, 15), 167}, // 533 SLessThanEqual - {IR(27577, 5), 128}, // 534 SMod - {IR(27733, 13), 141}, // 535 SMulExtended - {IR(27506, 8), 115}, // 536 SNegate - {IR(27572, 5), 127}, // 537 SRem - {IR(31926, 6), 375}, // 538 SUDot - {IR(31991, 12), 378}, // 539 SUDotAccSat - {IR(32003, 15), 378}, // 540 SUDotAccSatKHR - {IR(31932, 9), 375}, // 541 SUDotKHR - {IR(26833, 13), 77}, // 542 SampledImage - {IR(35618, 29), 514}, // 543 SamplerImageAddressingModeNV - {IR(27395, 15), 108}, // 544 SatConvertSToU - {IR(27410, 15), 109}, // 545 SatConvertUToS - {IR(41947, 16), 683}, // 546 SaveMemoryINTEL - {IR(27888, 7), 157}, // 547 Select - {IR(28880, 15), 225}, // 548 SelectionMerge - {IR(34266, 18), 464}, // 549 SetMeshOutputsEXT - {IR(29708, 19), 274}, // 550 SetUserEventStatus - {IR(28257, 17), 182}, // 551 ShiftLeftLogical - {IR(28236, 21), 181}, // 552 ShiftRightArithmetic - {IR(28218, 18), 180}, // 553 ShiftRightLogical - {IR(27784, 11), 148}, // 554 SignBitSet - {IR(30189, 7), 294}, // 555 SizeOf - {IR(25162, 7), 3}, // 556 Source - {IR(25043, 16), 2}, // 557 SourceContinued - {IR(25169, 16), 4}, // 558 SourceExtension - {IR(26180, 13), 45}, // 559 SpecConstant - {IR(26193, 22), 46}, // 560 SpecConstantComposite - {IR(44082, 36), 767}, // 561 SpecConstantCompositeContinuedINTEL - {IR(32232, 34), 385}, // 562 SpecConstantCompositeReplicateEXT - {IR(26162, 18), 44}, // 563 SpecConstantFalse - {IR(26256, 15), 47}, // 564 SpecConstantOp - {IR(33081, 23), 420}, // 565 SpecConstantStringAMDX - {IR(26145, 17), 43}, // 566 SpecConstantTrue - {IR(31279, 25), 346}, // 567 StencilAttachmentReadEXT - {IR(26420, 6), 55}, // 568 Store - {IR(25201, 7), 7}, // 569 String - {IR(44383, 25), 780}, // 570 Subgroup2DBlockLoadINTEL - {IR(44408, 34), 781}, // 571 Subgroup2DBlockLoadTransformINTEL - {IR(44442, 34), 782}, // 572 Subgroup2DBlockLoadTransposeINTEL - {IR(44476, 29), 783}, // 573 Subgroup2DBlockPrefetchINTEL - {IR(44505, 26), 784}, // 574 Subgroup2DBlockStoreINTEL - {IR(31677, 20), 364}, // 575 SubgroupAllEqualKHR - {IR(31647, 15), 362}, // 576 SubgroupAllKHR - {IR(31662, 15), 363}, // 577 SubgroupAnyKHR - {IR(40465, 30), 647}, // 578 SubgroupAvcBmeInitializeINTEL - {IR(40435, 30), 646}, // 579 SubgroupAvcFmeInitializeINTEL - {IR(38870, 35), 616}, // 580 SubgroupAvcImeAdjustRefOffsetINTEL - {IR(38905, 39), 617}, // 581 SubgroupAvcImeConvertToMcePayloadINTEL - {IR(39546, 38), 630}, // 582 SubgroupAvcImeConvertToMceResultINTEL - {IR(39169, 45), 623}, // 583 SubgroupAvcImeEvaluateWithDualReferenceINTEL - {IR(39269, 53), 625}, // 584 SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL - {IR(39490, 56), 629}, // 585 SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL - {IR(39378, 54), 627}, // 586 SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL - {IR(39122, 47), 622}, // 587 SubgroupAvcImeEvaluateWithSingleReferenceINTEL - {IR(39214, 55), 624}, // 588 SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL - {IR(39432, 58), 628}, // 589 SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL - {IR(39322, 56), 626}, // 590 SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL - {IR(40178, 36), 641}, // 591 SubgroupAvcImeGetBorderReachedINTEL - {IR(39630, 44), 632}, // 592 SubgroupAvcImeGetDualReferenceStreaminINTEL - {IR(39584, 46), 631}, // 593 SubgroupAvcImeGetSingleReferenceStreaminINTEL - {IR(40045, 66), 639}, // 594 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL - {IR(39977, 68), 638}, // 595 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL - {IR(40111, 67), 640}, // 596 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL - {IR(39840, 68), 636}, // 597 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL - {IR(39770, 70), 635}, // 598 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL - {IR(39908, 69), 637}, // 599 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL - {IR(40214, 48), 642}, // 600 SubgroupAvcImeGetTruncatedSearchIndicationINTEL - {IR(40262, 59), 643}, // 601 SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL - {IR(40379, 56), 645}, // 602 SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL - {IR(40321, 58), 644}, // 603 SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL - {IR(38733, 30), 612}, // 604 SubgroupAvcImeInitializeINTEL - {IR(38837, 33), 615}, // 605 SubgroupAvcImeRefWindowSizeINTEL - {IR(38801, 36), 614}, // 606 SubgroupAvcImeSetDualReferenceINTEL - {IR(39034, 54), 620}, // 607 SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL - {IR(38944, 43), 618}, // 608 SubgroupAvcImeSetMaxMotionVectorCountINTEL - {IR(38763, 38), 613}, // 609 SubgroupAvcImeSetSingleReferenceINTEL - {IR(38987, 47), 619}, // 610 SubgroupAvcImeSetUnidirectionalMixDisableINTEL - {IR(39088, 34), 621}, // 611 SubgroupAvcImeSetWeightedSadINTEL - {IR(39723, 47), 634}, // 612 SubgroupAvcImeStripDualReferenceStreamoutINTEL - {IR(39674, 49), 633}, // 613 SubgroupAvcImeStripSingleReferenceStreamoutINTEL - {IR(38123, 39), 597}, // 614 SubgroupAvcMceConvertToImePayloadINTEL - {IR(38162, 38), 598}, // 615 SubgroupAvcMceConvertToImeResultINTEL - {IR(38200, 39), 599}, // 616 SubgroupAvcMceConvertToRefPayloadINTEL - {IR(38239, 38), 600}, // 617 SubgroupAvcMceConvertToRefResultINTEL - {IR(38277, 39), 601}, // 618 SubgroupAvcMceConvertToSicPayloadINTEL - {IR(38316, 38), 602}, // 619 SubgroupAvcMceConvertToSicResultINTEL - {IR(38429, 43), 605}, // 620 SubgroupAvcMceGetBestInterDistortionsINTEL - {IR(37561, 50), 586}, // 621 SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL - {IR(37159, 60), 578}, // 622 SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL - {IR(37359, 51), 582}, // 623 SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL - {IR(37505, 56), 585}, // 624 SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL - {IR(37272, 47), 580}, // 625 SubgroupAvcMceGetDefaultInterShapePenaltyINTEL - {IR(37860, 56), 592}, // 626 SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL - {IR(37759, 50), 590}, // 627 SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL - {IR(37454, 51), 584}, // 628 SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL - {IR(37663, 49), 588}, // 629 SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL - {IR(37611, 52), 587}, // 630 SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL - {IR(37809, 51), 591}, // 631 SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL - {IR(38548, 38), 608}, // 632 SubgroupAvcMceGetInterDirectionsINTEL - {IR(38390, 39), 604}, // 633 SubgroupAvcMceGetInterDistortionsINTEL - {IR(38472, 38), 606}, // 634 SubgroupAvcMceGetInterMajorShapeINTEL - {IR(38510, 38), 607}, // 635 SubgroupAvcMceGetInterMinorShapeINTEL - {IR(38586, 45), 609}, // 636 SubgroupAvcMceGetInterMotionVectorCountINTEL - {IR(38631, 40), 610}, // 637 SubgroupAvcMceGetInterReferenceIdsINTEL - {IR(38671, 62), 611}, // 638 SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL - {IR(38354, 36), 603}, // 639 SubgroupAvcMceGetMotionVectorsINTEL - {IR(37916, 33), 593}, // 640 SubgroupAvcMceSetAcOnlyHaarINTEL - {IR(38062, 61), 596}, // 641 SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL - {IR(37219, 53), 579}, // 642 SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL - {IR(37410, 44), 583}, // 643 SubgroupAvcMceSetInterDirectionPenaltyINTEL - {IR(37319, 40), 581}, // 644 SubgroupAvcMceSetInterShapePenaltyINTEL - {IR(37712, 47), 589}, // 645 SubgroupAvcMceSetMotionVectorCostFunctionINTEL - {IR(38001, 61), 595}, // 646 SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL - {IR(37949, 52), 594}, // 647 SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL - {IR(40495, 39), 648}, // 648 SubgroupAvcRefConvertToMcePayloadINTEL - {IR(40817, 38), 655}, // 649 SubgroupAvcRefConvertToMceResultINTEL - {IR(40670, 45), 652}, // 650 SubgroupAvcRefEvaluateWithDualReferenceINTEL - {IR(40715, 46), 653}, // 651 SubgroupAvcRefEvaluateWithMultiReferenceINTEL - {IR(40761, 56), 654}, // 652 SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL - {IR(40623, 47), 651}, // 653 SubgroupAvcRefEvaluateWithSingleReferenceINTEL - {IR(40534, 46), 649}, // 654 SubgroupAvcRefSetBidirectionalMixDisableINTEL - {IR(40580, 43), 650}, // 655 SubgroupAvcRefSetBilinearFilterEnableINTEL - {IR(40953, 42), 659}, // 656 SubgroupAvcSicConfigureIpeLumaChromaINTEL - {IR(40917, 36), 658}, // 657 SubgroupAvcSicConfigureIpeLumaINTEL - {IR(40885, 32), 657}, // 658 SubgroupAvcSicConfigureSkcINTEL - {IR(41034, 39), 661}, // 659 SubgroupAvcSicConvertToMcePayloadINTEL - {IR(41574, 38), 673}, // 660 SubgroupAvcSicConvertToMceResultINTEL - {IR(41349, 31), 668}, // 661 SubgroupAvcSicEvaluateIpeINTEL - {IR(41427, 45), 670}, // 662 SubgroupAvcSicEvaluateWithDualReferenceINTEL - {IR(41472, 46), 671}, // 663 SubgroupAvcSicEvaluateWithMultiReferenceINTEL - {IR(41518, 56), 672}, // 664 SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL - {IR(41380, 47), 669}, // 665 SubgroupAvcSicEvaluateWithSingleReferenceINTEL - {IR(41691, 46), 676}, // 666 SubgroupAvcSicGetBestIpeChromaDistortionINTEL - {IR(41647, 44), 675}, // 667 SubgroupAvcSicGetBestIpeLumaDistortionINTEL - {IR(41912, 35), 681}, // 668 SubgroupAvcSicGetInterRawSadsINTEL - {IR(41778, 36), 678}, // 669 SubgroupAvcSicGetIpeChromaModeINTEL - {IR(41612, 35), 674}, // 670 SubgroupAvcSicGetIpeLumaShapeINTEL - {IR(40995, 39), 660}, // 671 SubgroupAvcSicGetMotionVectorMaskINTEL - {IR(41737, 41), 677}, // 672 SubgroupAvcSicGetPackedIpeLumaModesINTEL - {IR(41814, 50), 679}, // 673 SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL - {IR(41864, 48), 680}, // 674 SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL - {IR(40855, 30), 656}, // 675 SubgroupAvcSicInitializeINTEL - {IR(41215, 43), 665}, // 676 SubgroupAvcSicSetBilinearFilterEnableINTEL - {IR(41306, 43), 667}, // 677 SubgroupAvcSicSetBlockBasedRawSkipSadINTEL - {IR(41165, 50), 664}, // 678 SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL - {IR(41117, 48), 663}, // 679 SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL - {IR(41073, 44), 662}, // 680 SubgroupAvcSicSetIntraLumaShapePenaltyINTEL - {IR(41258, 48), 666}, // 681 SubgroupAvcSicSetSkcForwardTransformEnableINTEL - {IR(5330, 18), 356}, // 682 SubgroupBallotKHR - {IR(44356, 27), 779}, // 683 SubgroupBlockPrefetchINTEL - {IR(36165, 23), 533}, // 684 SubgroupBlockReadINTEL - {IR(36188, 24), 534}, // 685 SubgroupBlockWriteINTEL - {IR(31521, 27), 357}, // 686 SubgroupFirstInvocationKHR - {IR(36212, 28), 535}, // 687 SubgroupImageBlockReadINTEL - {IR(36240, 29), 536}, // 688 SubgroupImageBlockWriteINTEL - {IR(36269, 33), 537}, // 689 SubgroupImageMediaBlockReadINTEL - {IR(36302, 34), 538}, // 690 SubgroupImageMediaBlockWriteINTEL - {IR(13673, 38), 785}, // 691 SubgroupMatrixMultiplyAccumulateINTEL - {IR(31697, 26), 366}, // 692 SubgroupReadInvocationKHR - {IR(36093, 25), 530}, // 693 SubgroupShuffleDownINTEL - {IR(11888, 21), 529}, // 694 SubgroupShuffleINTEL - {IR(36118, 23), 531}, // 695 SubgroupShuffleUpINTEL - {IR(36141, 24), 532}, // 696 SubgroupShuffleXorINTEL - {IR(28971, 7), 229}, // 697 Switch - {IR(44265, 23), 775}, // 698 TaskSequenceAsyncINTEL - {IR(44241, 24), 774}, // 699 TaskSequenceCreateINTEL - {IR(44288, 21), 776}, // 700 TaskSequenceGetINTEL - {IR(44309, 25), 777}, // 701 TaskSequenceReleaseINTEL - {IR(35436, 27), 506}, // 702 TensorLayoutSetBlockSizeNV - {IR(35300, 28), 499}, // 703 TensorLayoutSetClampValueNV - {IR(35229, 27), 496}, // 704 TensorLayoutSetDimensionNV - {IR(35256, 24), 497}, // 705 TensorLayoutSetStrideNV - {IR(35280, 20), 498}, // 706 TensorLayoutSliceNV - {IR(31389, 19), 350}, // 707 TensorQuerySizeARM - {IR(31360, 14), 348}, // 708 TensorReadARM - {IR(35416, 20), 505}, // 709 TensorViewSetClipNV - {IR(35347, 25), 501}, // 710 TensorViewSetDimensionNV - {IR(35372, 22), 502}, // 711 TensorViewSetStrideNV - {IR(31374, 15), 349}, // 712 TensorWriteARM - {IR(31408, 20), 351}, // 713 TerminateInvocation - {IR(31837, 16), 372}, // 714 TerminateRayKHR - {IR(34530, 15), 473}, // 715 TerminateRayNV - {IR(34553, 14), 475}, // 716 TraceMotionNV - {IR(34545, 8), 474}, // 717 TraceNV - {IR(31749, 12), 368}, // 718 TraceRayKHR - {IR(34567, 17), 476}, // 719 TraceRayMotionNV - {IR(26823, 10), 76}, // 720 Transpose - {IR(34634, 29), 478}, // 721 TypeAccelerationStructureKHR - {IR(34663, 28), 478}, // 722 TypeAccelerationStructureNV - {IR(25772, 10), 25}, // 723 TypeArray - {IR(37078, 37), 575}, // 724 TypeAvcImeDualReferenceStreaminINTEL - {IR(36813, 23), 566}, // 725 TypeAvcImePayloadINTEL - {IR(36995, 44), 573}, // 726 TypeAvcImeResultDualReferenceStreamoutINTEL - {IR(36927, 22), 571}, // 727 TypeAvcImeResultINTEL - {IR(36949, 46), 572}, // 728 TypeAvcImeResultSingleReferenceStreamoutINTEL - {IR(37039, 39), 574}, // 729 TypeAvcImeSingleReferenceStreaminINTEL - {IR(36882, 23), 569}, // 730 TypeAvcMcePayloadINTEL - {IR(36905, 22), 570}, // 731 TypeAvcMceResultINTEL - {IR(36836, 23), 567}, // 732 TypeAvcRefPayloadINTEL - {IR(37115, 22), 576}, // 733 TypeAvcRefResultINTEL - {IR(36859, 23), 568}, // 734 TypeAvcSicPayloadINTEL - {IR(37137, 22), 577}, // 735 TypeAvcSicResultINTEL - {IR(25534, 9), 17}, // 736 TypeBool - {IR(44002, 23), 764}, // 737 TypeBufferSurfaceINTEL - {IR(32018, 25), 379}, // 738 TypeCooperativeMatrixKHR - {IR(34756, 24), 482}, // 739 TypeCooperativeMatrixNV - {IR(34056, 24), 457}, // 740 TypeCooperativeVectorNV - {IR(25887, 16), 32}, // 741 TypeDeviceEvent - {IR(25877, 10), 31}, // 742 TypeEvent - {IR(25588, 10), 19}, // 743 TypeFloat - {IR(25936, 19), 36}, // 744 TypeForwardPointer - {IR(25864, 13), 30}, // 745 TypeFunction - {IR(34017, 16), 455}, // 746 TypeHitObjectNV - {IR(25733, 10), 22}, // 747 TypeImage - {IR(25543, 8), 18}, // 748 TypeInt - {IR(25609, 11), 21}, // 749 TypeMatrix - {IR(30318, 17), 300}, // 750 TypeNamedBarrier - {IR(32958, 25), 415}, // 751 TypeNodePayloadArrayAMDX - {IR(25810, 11), 28}, // 752 TypeOpaque - {IR(25927, 9), 35}, // 753 TypePipe - {IR(30196, 16), 295}, // 754 TypePipeStorage - {IR(25852, 12), 29}, // 755 TypePointer - {IR(25917, 10), 34}, // 756 TypeQueue - {IR(32297, 16), 387}, // 757 TypeRayQueryKHR - {IR(25903, 14), 33}, // 758 TypeReserveId - {IR(25782, 17), 26}, // 759 TypeRuntimeArray - {IR(25755, 17), 24}, // 760 TypeSampledImage - {IR(25743, 12), 23}, // 761 TypeSampler - {IR(25799, 11), 27}, // 762 TypeStruct - {IR(44025, 25), 765}, // 763 TypeStructContinuedINTEL - {IR(44334, 22), 778}, // 764 TypeTaskSequenceINTEL - {IR(31304, 14), 347}, // 765 TypeTensorARM - {IR(35172, 19), 493}, // 766 TypeTensorLayoutNV - {IR(35191, 17), 494}, // 767 TypeTensorViewNV - {IR(31428, 22), 352}, // 768 TypeUntypedPointerKHR - {IR(25598, 11), 20}, // 769 TypeVector - {IR(36795, 18), 565}, // 770 TypeVmeImageINTEL - {IR(25525, 9), 16}, // 771 TypeVoid - {IR(36424, 13), 544}, // 772 UAddSatINTEL - {IR(36451, 14), 546}, // 773 UAverageINTEL - {IR(36486, 21), 548}, // 774 UAverageRoundedINTEL - {IR(27340, 9), 103}, // 775 UConvert - {IR(36336, 24), 539}, // 776 UCountLeadingZerosINTEL - {IR(36360, 25), 540}, // 777 UCountTrailingZerosINTEL - {IR(27552, 5), 123}, // 778 UDiv - {IR(31913, 5), 374}, // 779 UDot - {IR(31966, 11), 377}, // 780 UDotAccSat - {IR(31977, 14), 377}, // 781 UDotAccSatKHR - {IR(31918, 8), 374}, // 782 UDotKHR - {IR(27912, 13), 160}, // 783 UGreaterThan - {IR(27938, 18), 162}, // 784 UGreaterThanEqual - {IR(27974, 10), 164}, // 785 ULessThan - {IR(27994, 15), 166}, // 786 ULessThanEqual - {IR(27567, 5), 126}, // 787 UMod - {IR(36548, 15), 552}, // 788 UMul32x16INTEL - {IR(27720, 13), 140}, // 789 UMulExtended - {IR(36520, 13), 550}, // 790 USubSatINTEL - {IR(25037, 6), 1}, // 791 Undef - {IR(27817, 10), 151}, // 792 Unordered - {IR(29002, 12), 233}, // 793 Unreachable - {IR(31469, 22), 354}, // 794 UntypedAccessChainKHR - {IR(31606, 22), 360}, // 795 UntypedArrayLengthKHR - {IR(31491, 30), 355}, // 796 UntypedInBoundsAccessChainKHR - {IR(31573, 33), 359}, // 797 UntypedInBoundsPtrAccessChainKHR - {IR(31628, 19), 361}, // 798 UntypedPrefetchKHR - {IR(31548, 25), 358}, // 799 UntypedPtrAccessChainKHR - {IR(31450, 19), 353}, // 800 UntypedVariableKHR - {IR(26348, 9), 52}, // 801 Variable - {IR(12344, 25), 682}, // 802 VariableLengthArrayINTEL - {IR(26705, 21), 69}, // 803 VectorExtractDynamic - {IR(26726, 20), 70}, // 804 VectorInsertDynamic - {IR(26746, 14), 71}, // 805 VectorShuffle - {IR(27628, 18), 133}, // 806 VectorTimesMatrix - {IR(27592, 18), 131}, // 807 VectorTimesScalar - {IR(36781, 14), 564}, // 808 VmeImageINTEL - {IR(34311, 33), 466}, // 809 WritePackedPrimitiveIndices4x8NV - {IR(29227, 10), 250}, // 810 WritePipe - {IR(43314, 23), 744}, // 811 WritePipeBlockingINTEL +static const std::array kInstructionNames{{ + {IR(36847, 13), 553}, // 0 AbsISubINTEL + {IR(36860, 13), 554}, // 1 AbsUSubINTEL + {IR(26667, 12), 58}, // 2 AccessChain + {IR(43460, 21), 739}, // 3 AliasDomainDeclINTEL + {IR(43481, 20), 740}, // 4 AliasScopeDeclINTEL + {IR(43501, 24), 741}, // 5 AliasScopeListDeclINTEL + {IR(27964, 4), 143}, // 6 All + {IR(33336, 25), 425}, // 7 AllocateNodePayloadsAMDX + {IR(27960, 4), 142}, // 8 Any + {IR(43247, 24), 730}, // 9 ArbitraryFloatACosINTEL + {IR(43271, 26), 731}, // 10 ArbitraryFloatACosPiINTEL + {IR(43197, 24), 728}, // 11 ArbitraryFloatASinINTEL + {IR(43221, 26), 729}, // 12 ArbitraryFloatASinPiINTEL + {IR(43347, 25), 734}, // 13 ArbitraryFloatATan2INTEL + {IR(43297, 24), 732}, // 14 ArbitraryFloatATanINTEL + {IR(43321, 26), 733}, // 15 ArbitraryFloatATanPiINTEL + {IR(42556, 23), 701}, // 16 ArbitraryFloatAddINTEL + {IR(42496, 31), 699}, // 17 ArbitraryFloatCastFromIntINTEL + {IR(42472, 24), 698}, // 18 ArbitraryFloatCastINTEL + {IR(42527, 29), 700}, // 19 ArbitraryFloatCastToIntINTEL + {IR(42808, 24), 712}, // 20 ArbitraryFloatCbrtINTEL + {IR(43098, 23), 724}, // 21 ArbitraryFloatCosINTEL + {IR(43172, 25), 727}, // 22 ArbitraryFloatCosPiINTEL + {IR(42625, 23), 704}, // 23 ArbitraryFloatDivINTEL + {IR(42736, 22), 709}, // 24 ArbitraryFloatEQINTEL + {IR(43025, 25), 721}, // 25 ArbitraryFloatExp10INTEL + {IR(43001, 24), 720}, // 26 ArbitraryFloatExp2INTEL + {IR(42978, 23), 719}, // 27 ArbitraryFloatExpINTEL + {IR(43050, 25), 722}, // 28 ArbitraryFloatExpm1INTEL + {IR(42670, 22), 706}, // 29 ArbitraryFloatGEINTEL + {IR(42648, 22), 705}, // 30 ArbitraryFloatGTINTEL + {IR(42832, 25), 713}, // 31 ArbitraryFloatHypotINTEL + {IR(42714, 22), 708}, // 32 ArbitraryFloatLEINTEL + {IR(42692, 22), 707}, // 33 ArbitraryFloatLTINTEL + {IR(42928, 25), 717}, // 34 ArbitraryFloatLog10INTEL + {IR(42953, 25), 718}, // 35 ArbitraryFloatLog1pINTEL + {IR(42904, 24), 716}, // 36 ArbitraryFloatLog2INTEL + {IR(42881, 23), 715}, // 37 ArbitraryFloatLogINTEL + {IR(42602, 23), 703}, // 38 ArbitraryFloatMulINTEL + {IR(43372, 23), 735}, // 39 ArbitraryFloatPowINTEL + {IR(43419, 24), 737}, // 40 ArbitraryFloatPowNINTEL + {IR(43395, 24), 736}, // 41 ArbitraryFloatPowRINTEL + {IR(42783, 25), 711}, // 42 ArbitraryFloatRSqrtINTEL + {IR(42758, 25), 710}, // 43 ArbitraryFloatRecipINTEL + {IR(43121, 26), 725}, // 44 ArbitraryFloatSinCosINTEL + {IR(42444, 28), 697}, // 45 ArbitraryFloatSinCosPiINTEL + {IR(43075, 23), 723}, // 46 ArbitraryFloatSinINTEL + {IR(43147, 25), 726}, // 47 ArbitraryFloatSinPiINTEL + {IR(42857, 24), 714}, // 48 ArbitraryFloatSqrtINTEL + {IR(42579, 23), 702}, // 49 ArbitraryFloatSubINTEL + {IR(13457, 19), 785}, // 50 ArithmeticFenceEXT + {IR(26714, 12), 61}, // 51 ArrayLength + {IR(37094, 13), 569}, // 52 AsmCallINTEL + {IR(12228, 9), 568}, // 53 AsmINTEL + {IR(37079, 15), 567}, // 54 AsmTargetINTEL + {IR(37135, 14), 572}, // 55 AssumeTrueKHR + {IR(28986, 10), 220}, // 56 AtomicAnd + {IR(28838, 22), 210}, // 57 AtomicCompareExchange + {IR(28860, 26), 211}, // 58 AtomicCompareExchangeWeak + {IR(28823, 15), 209}, // 59 AtomicExchange + {IR(44450, 14), 775}, // 60 AtomicFAddEXT + {IR(37121, 14), 571}, // 61 AtomicFMaxEXT + {IR(37107, 14), 570}, // 62 AtomicFMinEXT + {IR(30371, 16), 292}, // 63 AtomicFlagClear + {IR(30350, 21), 291}, // 64 AtomicFlagTestAndSet + {IR(28920, 11), 214}, // 65 AtomicIAdd + {IR(28903, 17), 213}, // 66 AtomicIDecrement + {IR(28886, 17), 212}, // 67 AtomicIIncrement + {IR(28931, 11), 215}, // 68 AtomicISub + {IR(28800, 11), 207}, // 69 AtomicLoad + {IR(28996, 9), 221}, // 70 AtomicOr + {IR(28964, 11), 218}, // 71 AtomicSMax + {IR(28942, 11), 216}, // 72 AtomicSMin + {IR(28811, 12), 208}, // 73 AtomicStore + {IR(28975, 11), 219}, // 74 AtomicUMax + {IR(28953, 11), 217}, // 75 AtomicUMin + {IR(29005, 10), 222}, // 76 AtomicXor + {IR(35343, 28), 499}, // 77 BeginInvocationInterlockEXT + {IR(32890, 17), 406}, // 78 BitCastArrayQCOM + {IR(28584, 9), 191}, // 79 BitCount + {IR(28524, 15), 187}, // 80 BitFieldInsert + {IR(28539, 17), 188}, // 81 BitFieldSExtract + {IR(28556, 17), 189}, // 82 BitFieldUExtract + {IR(28573, 11), 190}, // 83 BitReverse + {IR(27712, 8), 114}, // 84 Bitcast + {IR(28509, 11), 185}, // 85 BitwiseAnd + {IR(45055, 21), 798}, // 86 BitwiseFunctionINTEL + {IR(28488, 10), 183}, // 87 BitwiseOr + {IR(28498, 11), 184}, // 88 BitwiseXor + {IR(29115, 7), 227}, // 89 Branch + {IR(29122, 18), 228}, // 90 BranchConditional + {IR(29983, 13), 277}, // 91 BuildNDRange + {IR(25728, 11), 15}, // 92 Capability + {IR(29941, 26), 275}, // 93 CaptureEventProfilingInfo + {IR(31447, 23), 344}, // 94 ColorAttachmentReadEXT + {IR(29533, 15), 255}, // 95 CommitReadPipe + {IR(29548, 16), 256}, // 96 CommitWritePipe + {IR(26974, 19), 72}, // 97 CompositeConstruct + {IR(44580, 33), 780}, // 98 CompositeConstructContinuedINTEL + {IR(33023, 30), 411}, // 99 CompositeConstructCoopMatQCOM + {IR(32598, 31), 394}, // 100 CompositeConstructReplicateEXT + {IR(26993, 17), 73}, // 101 CompositeExtract + {IR(33053, 28), 412}, // 102 CompositeExtractCoopMatQCOM + {IR(27010, 16), 74}, // 103 CompositeInsert + {IR(45129, 27), 802}, // 104 ConditionalCapabilityINTEL + {IR(45277, 27), 806}, // 105 ConditionalCopyObjectINTEL + {IR(45102, 27), 801}, // 106 ConditionalEntryPointINTEL + {IR(45076, 26), 800}, // 107 ConditionalExtensionINTEL + {IR(15451, 9), 39}, // 108 Constant + {IR(26234, 18), 40}, // 109 ConstantComposite + {IR(44512, 32), 778}, // 110 ConstantCompositeContinuedINTEL + {IR(32534, 30), 392}, // 111 ConstantCompositeReplicateEXT + {IR(26182, 14), 38}, // 112 ConstantFalse + {IR(37025, 29), 565}, // 113 ConstantFunctionPointerINTEL + {IR(26346, 13), 42}, // 114 ConstantNull + {IR(30426, 20), 296}, // 115 ConstantPipeStorage + {IR(26330, 16), 41}, // 116 ConstantSampler + {IR(33489, 19), 431}, // 117 ConstantStringAMDX + {IR(26169, 13), 37}, // 118 ConstantTrue + {IR(28771, 15), 205}, // 119 ControlBarrier + {IR(44653, 26), 783}, // 120 ControlBarrierArriveINTEL + {IR(44679, 24), 784}, // 121 ControlBarrierWaitINTEL + {IR(44633, 20), 782}, // 122 ConvertBF16ToFINTEL + {IR(44613, 20), 781}, // 123 ConvertFToBF16INTEL + {IR(27518, 12), 100}, // 124 ConvertFToS + {IR(27506, 12), 99}, // 125 ConvertFToU + {IR(45497, 26), 818}, // 126 ConvertHandleToImageINTEL + {IR(45551, 33), 820}, // 127 ConvertHandleToSampledImageINTEL + {IR(45523, 28), 819}, // 128 ConvertHandleToSamplerINTEL + {IR(35992, 18), 522}, // 129 ConvertImageToUNV + {IR(27595, 14), 107}, // 130 ConvertPtrToU + {IR(27530, 12), 101}, // 131 ConvertSToF + {IR(36055, 25), 525}, // 132 ConvertSampledImageToUNV + {IR(36010, 20), 523}, // 133 ConvertSamplerToUNV + {IR(32112, 35), 378}, // 134 ConvertUToAccelerationStructureKHR + {IR(27542, 12), 102}, // 135 ConvertUToF + {IR(35954, 18), 520}, // 136 ConvertUToImageNV + {IR(27639, 14), 110}, // 137 ConvertUToPtr + {IR(36030, 25), 524}, // 138 ConvertUToSampledImageNV + {IR(35972, 20), 521}, // 139 ConvertUToSamplerNV + {IR(34649, 27), 474}, // 140 CooperativeMatrixConvertNV + {IR(32507, 27), 391}, // 141 CooperativeMatrixLengthKHR + {IR(35317, 26), 498}, // 142 CooperativeMatrixLengthNV + {IR(32375, 25), 388}, // 143 CooperativeMatrixLoadKHR + {IR(35242, 24), 495}, // 144 CooperativeMatrixLoadNV + {IR(35541, 30), 502}, // 145 CooperativeMatrixLoadTensorNV + {IR(32480, 27), 390}, // 146 CooperativeMatrixMulAddKHR + {IR(35291, 26), 497}, // 147 CooperativeMatrixMulAddNV + {IR(35602, 32), 504}, // 148 CooperativeMatrixPerElementOpNV + {IR(35440, 26), 501}, // 149 CooperativeMatrixReduceNV + {IR(32400, 26), 389}, // 150 CooperativeMatrixStoreKHR + {IR(35266, 25), 496}, // 151 CooperativeMatrixStoreNV + {IR(35571, 31), 503}, // 152 CooperativeMatrixStoreTensorNV + {IR(35925, 29), 519}, // 153 CooperativeMatrixTransposeNV + {IR(34844, 24), 481}, // 154 CooperativeVectorLoadNV + {IR(34617, 32), 473}, // 155 CooperativeVectorMatrixMulAddNV + {IR(34507, 29), 470}, // 156 CooperativeVectorMatrixMulNV + {IR(34536, 42), 471}, // 157 CooperativeVectorOuterProductAccumulateNV + {IR(34578, 39), 472}, // 158 CooperativeVectorReduceSumAccumulateNV + {IR(34868, 25), 482}, // 159 CooperativeVectorStoreNV + {IR(31406, 12), 340}, // 160 CopyLogical + {IR(26640, 11), 56}, // 161 CopyMemory + {IR(26651, 16), 57}, // 162 CopyMemorySized + {IR(27026, 11), 75}, // 163 CopyObject + {IR(30446, 26), 297}, // 164 CreatePipeFromPipeStorage + {IR(35670, 21), 507}, // 165 CreateTensorLayoutNV + {IR(35790, 19), 512}, // 166 CreateTensorViewNV + {IR(29893, 16), 272}, // 167 CreateUserEvent + {IR(43725, 29), 754}, // 168 CrossWorkgroupCastToPtrINTEL + {IR(28593, 5), 192}, // 169 DPdx + {IR(28639, 11), 198}, // 170 DPdxCoarse + {IR(28610, 9), 195}, // 171 DPdxFine + {IR(28598, 5), 193}, // 172 DPdy + {IR(28650, 11), 199}, // 173 DPdyCoarse + {IR(28619, 9), 196}, // 174 DPdyFine + {IR(26800, 9), 64}, // 175 Decorate + {IR(30623, 11), 305}, // 176 DecorateId + {IR(37159, 15), 574}, // 177 DecorateString + {IR(37174, 21), 574}, // 178 DecorateStringGOOGLE + {IR(26824, 16), 66}, // 179 DecorationGroup + {IR(11562, 25), 515}, // 180 DemoteToHelperInvocation + {IR(11587, 28), 515}, // 181 DemoteToHelperInvocationEXT + {IR(31470, 23), 345}, // 182 DepthAttachmentReadEXT + {IR(27909, 4), 137}, // 183 Dot + {IR(34676, 17), 475}, // 184 EmitMeshTasksEXT + {IR(28698, 17), 203}, // 185 EmitStreamVertex + {IR(28674, 11), 201}, // 186 EmitVertex + {IR(35371, 26), 500}, // 187 EndInvocationInterlockEXT + {IR(28685, 13), 202}, // 188 EndPrimitive + {IR(28715, 19), 204}, // 189 EndStreamPrimitive + {IR(29729, 14), 265}, // 190 EnqueueKernel + {IR(29715, 14), 264}, // 191 EnqueueMarker + {IR(33361, 24), 426}, // 192 EnqueueNodePayloadsAMDX + {IR(25643, 11), 13}, // 193 EntryPoint + {IR(32093, 19), 377}, // 194 ExecuteCallableKHR + {IR(35118, 18), 491}, // 195 ExecuteCallableNV + {IR(25686, 14), 14}, // 196 ExecutionMode + {IR(30607, 16), 304}, // 197 ExecutionModeId + {IR(37149, 10), 573}, // 198 ExpectKHR + {IR(25497, 8), 11}, // 199 ExtInst + {IR(25437, 14), 10}, // 200 ExtInstImport + {IR(32030, 26), 374}, // 201 ExtInstWithForwardRefsKHR + {IR(25427, 10), 9}, // 202 Extension + {IR(33081, 20), 413}, // 203 ExtractSubArrayQCOM + {IR(27741, 5), 118}, // 204 FAdd + {IR(27572, 9), 105}, // 205 FConvert + {IR(27776, 5), 125}, // 206 FDiv + {IR(27801, 5), 130}, // 207 FMod + {IR(27761, 5), 122}, // 208 FMul + {IR(27728, 8), 116}, // 209 FNegate + {IR(28238, 10), 168}, // 210 FOrdEqual + {IR(28316, 16), 174}, // 211 FOrdGreaterThan + {IR(28388, 21), 178}, // 212 FOrdGreaterThanEqual + {IR(28288, 13), 172}, // 213 FOrdLessThan + {IR(28350, 18), 176}, // 214 FOrdLessThanEqual + {IR(28260, 13), 170}, // 215 FOrdNotEqual + {IR(13025, 13), 757}, // 216 FPGARegINTEL + {IR(27796, 5), 129}, // 217 FRem + {IR(27751, 5), 120}, // 218 FSub + {IR(28248, 12), 169}, // 219 FUnordEqual + {IR(28332, 18), 175}, // 220 FUnordGreaterThan + {IR(28409, 23), 179}, // 221 FUnordGreaterThanEqual + {IR(28301, 15), 173}, // 222 FUnordLessThan + {IR(28368, 20), 177}, // 223 FUnordLessThanEqual + {IR(28273, 15), 171}, // 224 FUnordNotEqual + {IR(34806, 38), 480}, // 225 FetchMicroTriangleVertexBarycentricNV + {IR(34771, 35), 479}, // 226 FetchMicroTriangleVertexPositionNV + {IR(33410, 29), 428}, // 227 FinishWritingNodePayloadAMDX + {IR(43586, 14), 746}, // 228 FixedCosINTEL + {IR(43633, 16), 749}, // 229 FixedCosPiINTEL + {IR(43682, 14), 752}, // 230 FixedExpINTEL + {IR(43668, 14), 751}, // 231 FixedLogINTEL + {IR(43540, 16), 743}, // 232 FixedRecipINTEL + {IR(43556, 16), 744}, // 233 FixedRsqrtINTEL + {IR(43600, 17), 747}, // 234 FixedSinCosINTEL + {IR(43649, 19), 750}, // 235 FixedSinCosPiINTEL + {IR(43572, 14), 745}, // 236 FixedSinINTEL + {IR(43617, 16), 748}, // 237 FixedSinPiINTEL + {IR(43525, 15), 742}, // 238 FixedSqrtINTEL + {IR(33306, 17), 423}, // 239 FragmentFetchAMD + {IR(33285, 21), 422}, // 240 FragmentMaskFetchAMD + {IR(24547, 9), 48}, // 241 Function + {IR(26549, 13), 51}, // 242 FunctionCall + {IR(26537, 12), 50}, // 243 FunctionEnd + {IR(26519, 18), 49}, // 244 FunctionParameter + {IR(37054, 25), 566}, // 245 FunctionPointerCallINTEL + {IR(28603, 7), 194}, // 246 Fwidth + {IR(28661, 13), 200}, // 247 FwidthCoarse + {IR(28628, 11), 197}, // 248 FwidthFine + {IR(27670, 17), 112}, // 249 GenericCastToPtr + {IR(27687, 25), 113}, // 250 GenericCastToPtrExplicit + {IR(26726, 23), 62}, // 251 GenericPtrMemSemantics + {IR(29967, 16), 276}, // 252 GetDefaultQueue + {IR(30472, 35), 298}, // 253 GetKernelLocalSizeForSubgroupCount + {IR(30507, 25), 299}, // 254 GetKernelMaxNumSubgroups + {IR(29773, 32), 267}, // 255 GetKernelNDrangeMaxSubGroupSize + {IR(29743, 30), 266}, // 256 GetKernelNDrangeSubGroupCount + {IR(29828, 40), 269}, // 257 GetKernelPreferredWorkGroupSizeMultiple + {IR(29805, 23), 268}, // 258 GetKernelWorkGroupSize + {IR(29599, 18), 259}, // 259 GetMaxPipePackets + {IR(29581, 18), 258}, // 260 GetNumPipePackets + {IR(9031, 9), 353}, // 261 GraphARM + {IR(31622, 17), 351}, // 262 GraphConstantARM + {IR(31690, 12), 356}, // 263 GraphEndARM + {IR(31639, 19), 352}, // 264 GraphEntryPointARM + {IR(31658, 14), 354}, // 265 GraphInputARM + {IR(31672, 18), 355}, // 266 GraphSetOutputARM + {IR(29286, 9), 238}, // 267 GroupAll + {IR(29295, 9), 239}, // 268 GroupAny + {IR(29255, 15), 236}, // 269 GroupAsyncCopy + {IR(45330, 19), 809}, // 270 GroupBitwiseAndKHR + {IR(45349, 18), 810}, // 271 GroupBitwiseOrKHR + {IR(45367, 19), 811}, // 272 GroupBitwiseXorKHR + {IR(29304, 15), 240}, // 273 GroupBroadcast + {IR(29674, 20), 262}, // 274 GroupCommitReadPipe + {IR(29694, 21), 263}, // 275 GroupCommitWritePipe + {IR(26840, 14), 67}, // 276 GroupDecorate + {IR(29362, 10), 242}, // 277 GroupFAdd + {IR(33124, 23), 415}, // 278 GroupFAddNonUniformAMD + {IR(29402, 10), 246}, // 279 GroupFMax + {IR(33216, 23), 419}, // 280 GroupFMaxNonUniformAMD + {IR(29372, 10), 243}, // 281 GroupFMin + {IR(33147, 23), 416}, // 282 GroupFMinNonUniformAMD + {IR(45317, 13), 808}, // 283 GroupFMulKHR + {IR(29352, 10), 241}, // 284 GroupIAdd + {IR(33101, 23), 414}, // 285 GroupIAddNonUniformAMD + {IR(45304, 13), 807}, // 286 GroupIMulKHR + {IR(45386, 19), 812}, // 287 GroupLogicalAndKHR + {IR(45405, 18), 813}, // 288 GroupLogicalOrKHR + {IR(45423, 19), 814}, // 289 GroupLogicalXorKHR + {IR(26899, 20), 68}, // 290 GroupMemberDecorate + {IR(30655, 19), 307}, // 291 GroupNonUniformAll + {IR(30693, 24), 309}, // 292 GroupNonUniformAllEqual + {IR(30674, 19), 308}, // 293 GroupNonUniformAny + {IR(5650, 22), 312}, // 294 GroupNonUniformBallot + {IR(30833, 30), 315}, // 295 GroupNonUniformBallotBitCount + {IR(30801, 32), 314}, // 296 GroupNonUniformBallotBitExtract + {IR(30863, 29), 316}, // 297 GroupNonUniformBallotFindLSB + {IR(30892, 29), 317}, // 298 GroupNonUniformBallotFindMSB + {IR(31199, 26), 332}, // 299 GroupNonUniformBitwiseAnd + {IR(31225, 25), 333}, // 300 GroupNonUniformBitwiseOr + {IR(31250, 26), 334}, // 301 GroupNonUniformBitwiseXor + {IR(30717, 25), 310}, // 302 GroupNonUniformBroadcast + {IR(30742, 30), 311}, // 303 GroupNonUniformBroadcastFirst + {IR(30634, 21), 306}, // 304 GroupNonUniformElect + {IR(31019, 20), 323}, // 305 GroupNonUniformFAdd + {IR(31179, 20), 331}, // 306 GroupNonUniformFMax + {IR(31119, 20), 328}, // 307 GroupNonUniformFMin + {IR(31059, 20), 325}, // 308 GroupNonUniformFMul + {IR(30999, 20), 322}, // 309 GroupNonUniformIAdd + {IR(31039, 20), 324}, // 310 GroupNonUniformIMul + {IR(30772, 29), 313}, // 311 GroupNonUniformInverseBallot + {IR(31276, 26), 335}, // 312 GroupNonUniformLogicalAnd + {IR(31302, 25), 336}, // 313 GroupNonUniformLogicalOr + {IR(31327, 26), 337}, // 314 GroupNonUniformLogicalXor + {IR(34711, 27), 477}, // 315 GroupNonUniformPartitionNV + {IR(33531, 26), 433}, // 316 GroupNonUniformQuadAllKHR + {IR(33557, 26), 434}, // 317 GroupNonUniformQuadAnyKHR + {IR(31353, 29), 338}, // 318 GroupNonUniformQuadBroadcast + {IR(31382, 24), 339}, // 319 GroupNonUniformQuadSwap + {IR(13250, 25), 372}, // 320 GroupNonUniformRotateKHR + {IR(31139, 20), 329}, // 321 GroupNonUniformSMax + {IR(31079, 20), 326}, // 322 GroupNonUniformSMin + {IR(8740, 23), 318}, // 323 GroupNonUniformShuffle + {IR(30972, 27), 321}, // 324 GroupNonUniformShuffleDown + {IR(30947, 25), 320}, // 325 GroupNonUniformShuffleUp + {IR(30921, 26), 319}, // 326 GroupNonUniformShuffleXor + {IR(31159, 20), 330}, // 327 GroupNonUniformUMax + {IR(31099, 20), 327}, // 328 GroupNonUniformUMin + {IR(29617, 28), 260}, // 329 GroupReserveReadPipePackets + {IR(29645, 29), 261}, // 330 GroupReserveWritePipePackets + {IR(29422, 10), 248}, // 331 GroupSMax + {IR(33262, 23), 421}, // 332 GroupSMaxNonUniformAMD + {IR(29392, 10), 245}, // 333 GroupSMin + {IR(33193, 23), 418}, // 334 GroupSMinNonUniformAMD + {IR(29412, 10), 247}, // 335 GroupUMax + {IR(33239, 23), 420}, // 336 GroupUMaxNonUniformAMD + {IR(29382, 10), 244}, // 337 GroupUMin + {IR(33170, 23), 417}, // 338 GroupUMinNonUniformAMD + {IR(29270, 16), 237}, // 339 GroupWaitEvents + {IR(34018, 25), 450}, // 340 HitObjectExecuteShaderNV + {IR(34069, 25), 452}, // 341 HitObjectGetAttributesNV + {IR(35194, 24), 493}, // 342 HitObjectGetClusterIdNV + {IR(34043, 26), 451}, // 343 HitObjectGetCurrentTimeNV + {IR(34145, 28), 455}, // 344 HitObjectGetGeometryIndexNV + {IR(34094, 22), 453}, // 345 HitObjectGetHitKindNV + {IR(34198, 34), 457}, // 346 HitObjectGetInstanceCustomIndexNV + {IR(34173, 25), 456}, // 347 HitObjectGetInstanceIdNV + {IR(36421, 27), 535}, // 348 HitObjectGetLSSPositionsNV + {IR(36448, 23), 536}, // 349 HitObjectGetLSSRadiiNV + {IR(33730, 33), 440}, // 350 HitObjectGetObjectRayDirectionNV + {IR(33763, 30), 441}, // 351 HitObjectGetObjectRayOriginNV + {IR(33702, 28), 439}, // 352 HitObjectGetObjectToWorldNV + {IR(34116, 29), 454}, // 353 HitObjectGetPrimitiveIndexNV + {IR(34293, 22), 460}, // 354 HitObjectGetRayTMaxNV + {IR(34315, 22), 461}, // 355 HitObjectGetRayTMinNV + {IR(33858, 44), 444}, // 356 HitObjectGetShaderBindingTableRecordIndexNV + {IR(33819, 39), 443}, // 357 HitObjectGetShaderRecordBufferHandleNV + {IR(36365, 29), 533}, // 358 HitObjectGetSpherePositionNV + {IR(36394, 27), 534}, // 359 HitObjectGetSphereRadiusNV + {IR(34232, 32), 458}, // 360 HitObjectGetWorldRayDirectionNV + {IR(34264, 29), 459}, // 361 HitObjectGetWorldRayOriginNV + {IR(33674, 28), 438}, // 362 HitObjectGetWorldToObjectNV + {IR(34337, 19), 462}, // 363 HitObjectIsEmptyNV + {IR(34356, 17), 463}, // 364 HitObjectIsHitNV + {IR(36494, 20), 538}, // 365 HitObjectIsLSSHitNV + {IR(34373, 18), 464}, // 366 HitObjectIsMissNV + {IR(36471, 23), 537}, // 367 HitObjectIsSphereHitNV + {IR(33902, 23), 445}, // 368 HitObjectRecordEmptyNV + {IR(33583, 27), 435}, // 369 HitObjectRecordHitMotionNV + {IR(33945, 21), 447}, // 370 HitObjectRecordHitNV + {IR(33610, 36), 436}, // 371 HitObjectRecordHitWithIndexMotionNV + {IR(33966, 30), 448}, // 372 HitObjectRecordHitWithIndexNV + {IR(33646, 28), 437}, // 373 HitObjectRecordMissMotionNV + {IR(33996, 22), 449}, // 374 HitObjectRecordMissNV + {IR(33793, 26), 442}, // 375 HitObjectTraceRayMotionNV + {IR(33925, 20), 446}, // 376 HitObjectTraceRayNV + {IR(27736, 5), 117}, // 377 IAdd + {IR(27913, 10), 138}, // 378 IAddCarry + {IR(36873, 13), 555}, // 379 IAddSatINTEL + {IR(36899, 14), 557}, // 380 IAverageINTEL + {IR(36927, 21), 559}, // 381 IAverageRoundedINTEL + {IR(28109, 7), 158}, // 382 IEqual + {IR(27756, 5), 121}, // 383 IMul + {IR(36995, 15), 563}, // 384 IMul32x16INTEL + {IR(28116, 10), 159}, // 385 INotEqual + {IR(27746, 5), 119}, // 386 ISub + {IR(27923, 11), 139}, // 387 ISubBorrow + {IR(36969, 13), 561}, // 388 ISubSatINTEL + {IR(32147, 22), 379}, // 389 IgnoreIntersectionKHR + {IR(34936, 21), 484}, // 390 IgnoreIntersectionNV + {IR(24591, 6), 91}, // 391 Image + {IR(32994, 29), 410}, // 392 ImageBlockMatchGatherSADQCOM + {IR(32965, 29), 409}, // 393 ImageBlockMatchGatherSSDQCOM + {IR(32867, 23), 405}, // 394 ImageBlockMatchSADQCOM + {IR(32844, 23), 404}, // 395 ImageBlockMatchSSDQCOM + {IR(32936, 29), 408}, // 396 ImageBlockMatchWindowSADQCOM + {IR(32907, 29), 407}, // 397 ImageBlockMatchWindowSSDQCOM + {IR(32825, 19), 403}, // 398 ImageBoxFilterQCOM + {IR(27354, 16), 88}, // 399 ImageDrefGather + {IR(27331, 11), 86}, // 400 ImageFetch + {IR(27342, 12), 87}, // 401 ImageGather + {IR(27391, 17), 92}, // 402 ImageQueryFormat + {IR(27471, 17), 97}, // 403 ImageQueryLevels + {IR(27457, 14), 96}, // 404 ImageQueryLod + {IR(27408, 16), 93}, // 405 ImageQueryOrder + {IR(27488, 18), 98}, // 406 ImageQuerySamples + {IR(27442, 15), 95}, // 407 ImageQuerySize + {IR(27424, 18), 94}, // 408 ImageQuerySizeLod + {IR(27370, 10), 89}, // 409 ImageRead + {IR(27188, 27), 81}, // 410 ImageSampleDrefExplicitLod + {IR(27161, 27), 80}, // 411 ImageSampleDrefImplicitLod + {IR(27138, 23), 79}, // 412 ImageSampleExplicitLod + {IR(34460, 23), 468}, // 413 ImageSampleFootprintNV + {IR(27092, 23), 78}, // 414 ImageSampleImplicitLod + {IR(27300, 31), 85}, // 415 ImageSampleProjDrefExplicitLod + {IR(27269, 31), 84}, // 416 ImageSampleProjDrefImplicitLod + {IR(27242, 27), 83}, // 417 ImageSampleProjExplicitLod + {IR(27215, 27), 82}, // 418 ImageSampleProjImplicitLod + {IR(32801, 24), 402}, // 419 ImageSampleWeightedQCOM + {IR(30295, 22), 288}, // 420 ImageSparseDrefGather + {IR(30260, 17), 286}, // 421 ImageSparseFetch + {IR(30277, 18), 287}, // 422 ImageSparseGather + {IR(30387, 16), 293}, // 423 ImageSparseRead + {IR(30087, 33), 281}, // 424 ImageSparseSampleDrefExplicitLod + {IR(30054, 33), 280}, // 425 ImageSparseSampleDrefImplicitLod + {IR(30025, 29), 279}, // 426 ImageSparseSampleExplicitLod + {IR(29996, 29), 278}, // 427 ImageSparseSampleImplicitLod + {IR(30223, 37), 285}, // 428 ImageSparseSampleProjDrefExplicitLod + {IR(30186, 37), 284}, // 429 ImageSparseSampleProjDrefImplicitLod + {IR(30153, 33), 283}, // 430 ImageSparseSampleProjExplicitLod + {IR(30120, 33), 282}, // 431 ImageSparseSampleProjImplicitLod + {IR(30317, 26), 289}, // 432 ImageSparseTexelsResident + {IR(26571, 18), 53}, // 433 ImageTexelPointer + {IR(27380, 11), 90}, // 434 ImageWrite + {IR(26679, 20), 59}, // 435 InBoundsAccessChain + {IR(26749, 23), 63}, // 436 InBoundsPtrAccessChain + {IR(27980, 9), 146}, // 437 IsFinite + {IR(35856, 22), 516}, // 438 IsHelperInvocationEXT + {IR(27974, 6), 145}, // 439 IsInf + {IR(27968, 6), 144}, // 440 IsNan + {IR(33466, 23), 430}, // 441 IsNodePayloadValidAMDX + {IR(27989, 9), 147}, // 442 IsNormal + {IR(29909, 13), 273}, // 443 IsValidEvent + {IR(29564, 17), 257}, // 444 IsValidReserveId + {IR(29192, 5), 230}, // 445 Kill + {IR(29109, 6), 226}, // 446 Label + {IR(28009, 14), 149}, // 447 LessOrGreater + {IR(29228, 14), 234}, // 448 LifetimeStart + {IR(29242, 13), 235}, // 449 LifetimeStop + {IR(25422, 5), 8}, // 450 Line + {IR(26629, 5), 54}, // 451 Load + {IR(28080, 11), 155}, // 452 LogicalAnd + {IR(28041, 13), 152}, // 453 LogicalEqual + {IR(28091, 11), 156}, // 454 LogicalNot + {IR(28054, 16), 153}, // 455 LogicalNotEqual + {IR(28070, 10), 154}, // 456 LogicalOr + {IR(43443, 17), 738}, // 457 LoopControlINTEL + {IR(29049, 10), 224}, // 458 LoopMerge + {IR(45460, 18), 816}, // 459 MaskedGatherINTEL + {IR(45478, 19), 817}, // 460 MaskedScatterINTEL + {IR(27878, 18), 135}, // 461 MatrixTimesMatrix + {IR(27824, 18), 132}, // 462 MatrixTimesScalar + {IR(27860, 18), 134}, // 463 MatrixTimesVector + {IR(26809, 15), 65}, // 464 MemberDecorate + {IR(37195, 21), 575}, // 465 MemberDecorateString + {IR(37216, 27), 575}, // 466 MemberDecorateStringGOOGLE + {IR(25404, 11), 6}, // 467 MemberName + {IR(28786, 14), 206}, // 468 MemoryBarrier + {IR(25569, 12), 12}, // 469 MemoryModel + {IR(30572, 19), 302}, // 470 MemoryNamedBarrier + {IR(30591, 16), 303}, // 471 ModuleProcessed + {IR(25399, 5), 5}, // 472 Name + {IR(30549, 23), 301}, // 473 NamedBarrierInitialize + {IR(30343, 7), 290}, // 474 NoLine + {IR(33439, 27), 429}, // 475 NodePayloadArrayLengthAMDX + {IR(25195, 4), 0}, // 476 Nop + {IR(28520, 4), 186}, // 477 Not + {IR(28023, 8), 150}, // 478 Ordered + {IR(27896, 13), 136}, // 479 OuterProduct + {IR(29015, 4), 223}, // 480 Phi + {IR(26699, 15), 60}, // 481 PtrAccessChain + {IR(43696, 29), 753}, // 482 PtrCastToCrossWorkgroupINTEL + {IR(27653, 17), 111}, // 483 PtrCastToGeneric + {IR(31439, 8), 343}, // 484 PtrDiff + {IR(31418, 9), 341}, // 485 PtrEqual + {IR(31427, 12), 342}, // 486 PtrNotEqual + {IR(27581, 14), 106}, // 487 QuantizeToF16 + {IR(36161, 17), 527}, // 488 RawAccessChainNV + {IR(32720, 31), 399}, // 489 RayQueryConfirmIntersectionKHR + {IR(32688, 32), 398}, // 490 RayQueryGenerateIntersectionKHR + {IR(35171, 23), 492}, // 491 RayQueryGetClusterIdNV + {IR(44101, 39), 766}, // 492 RayQueryGetIntersectionBarycentricsKHR + {IR(44176, 46), 768}, // 493 RayQueryGetIntersectionCandidateAABBOpaqueKHR + {IR(35136, 35), 492}, // 494 RayQueryGetIntersectionClusterIdNV + {IR(44140, 36), 767}, // 495 RayQueryGetIntersectionFrontFaceKHR + {IR(44020, 40), 764}, // 496 RayQueryGetIntersectionGeometryIndexKHR + {IR(43872, 46), 761}, // 497 RayQueryGetIntersectionInstanceCustomIndexKHR + {IR(43918, 37), 762}, // 498 RayQueryGetIntersectionInstanceIdKHR + {IR(43955, 65), 763}, // 499 RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR + {IR(36328, 37), 532}, // 500 RayQueryGetIntersectionLSSHitValueNV + {IR(36256, 38), 530}, // 501 RayQueryGetIntersectionLSSPositionsNV + {IR(36294, 34), 531}, // 502 RayQueryGetIntersectionLSSRadiiNV + {IR(44222, 45), 769}, // 503 RayQueryGetIntersectionObjectRayDirectionKHR + {IR(44267, 42), 770}, // 504 RayQueryGetIntersectionObjectRayOriginKHR + {IR(44370, 40), 773}, // 505 RayQueryGetIntersectionObjectToWorldKHR + {IR(44060, 41), 765}, // 506 RayQueryGetIntersectionPrimitiveIndexKHR + {IR(36178, 40), 528}, // 507 RayQueryGetIntersectionSpherePositionNV + {IR(36218, 38), 529}, // 508 RayQueryGetIntersectionSphereRadiusNV + {IR(43844, 28), 760}, // 509 RayQueryGetIntersectionTKHR + {IR(35011, 50), 489}, // 510 RayQueryGetIntersectionTriangleVertexPositionsKHR + {IR(32770, 31), 401}, // 511 RayQueryGetIntersectionTypeKHR + {IR(44410, 40), 774}, // 512 RayQueryGetIntersectionWorldToObjectKHR + {IR(43821, 23), 759}, // 513 RayQueryGetRayFlagsKHR + {IR(43799, 22), 758}, // 514 RayQueryGetRayTMinKHR + {IR(44309, 32), 771}, // 515 RayQueryGetWorldRayDirectionKHR + {IR(44341, 29), 772}, // 516 RayQueryGetWorldRayOriginKHR + {IR(32645, 22), 396}, // 517 RayQueryInitializeKHR + {IR(36536, 19), 540}, // 518 RayQueryIsLSSHitNV + {IR(36514, 22), 539}, // 519 RayQueryIsSphereHitNV + {IR(32751, 19), 400}, // 520 RayQueryProceedKHR + {IR(32667, 21), 397}, // 521 RayQueryTerminateKHR + {IR(33323, 13), 424}, // 522 ReadClockKHR + {IR(29432, 9), 249}, // 523 ReadPipe + {IR(43754, 22), 755}, // 524 ReadPipeBlockingINTEL + {IR(29880, 13), 271}, // 525 ReleaseEvent + {IR(34420, 24), 466}, // 526 ReorderThreadWithHintNV + {IR(34391, 29), 465}, // 527 ReorderThreadWithHitObjectNV + {IR(34893, 22), 483}, // 528 ReportIntersectionKHR + {IR(34915, 21), 483}, // 529 ReportIntersectionNV + {IR(29486, 23), 253}, // 530 ReserveReadPipePackets + {IR(29509, 24), 254}, // 531 ReserveWritePipePackets + {IR(29451, 17), 251}, // 532 ReservedReadPipe + {IR(29468, 18), 252}, // 533 ReservedWritePipe + {IR(42425, 19), 696}, // 534 RestoreMemoryINTEL + {IR(29868, 12), 270}, // 535 RetainEvent + {IR(29197, 7), 231}, // 536 Return + {IR(29204, 12), 232}, // 537 ReturnValue + {IR(45442, 18), 815}, // 538 RoundFToTF32INTEL + {IR(27563, 9), 104}, // 539 SConvert + {IR(27771, 5), 124}, // 540 SDiv + {IR(32232, 5), 381}, // 541 SDot + {IR(32273, 11), 384}, // 542 SDotAccSat + {IR(32284, 14), 384}, // 543 SDotAccSatKHR + {IR(32237, 8), 381}, // 544 SDotKHR + {IR(28139, 13), 161}, // 545 SGreaterThan + {IR(28170, 18), 163}, // 546 SGreaterThanEqual + {IR(28198, 10), 165}, // 547 SLessThan + {IR(28223, 15), 167}, // 548 SLessThanEqual + {IR(27791, 5), 128}, // 549 SMod + {IR(27947, 13), 141}, // 550 SMulExtended + {IR(27720, 8), 115}, // 551 SNegate + {IR(27786, 5), 127}, // 552 SRem + {IR(32258, 6), 383}, // 553 SUDot + {IR(32323, 12), 386}, // 554 SUDotAccSat + {IR(32335, 15), 386}, // 555 SUDotAccSatKHR + {IR(32264, 9), 383}, // 556 SUDotKHR + {IR(27047, 13), 77}, // 557 SampledImage + {IR(36080, 29), 526}, // 558 SamplerImageAddressingModeNV + {IR(27609, 15), 108}, // 559 SatConvertSToU + {IR(27624, 15), 109}, // 560 SatConvertUToS + {IR(42409, 16), 695}, // 561 SaveMemoryINTEL + {IR(28102, 7), 157}, // 562 Select + {IR(29094, 15), 225}, // 563 SelectionMerge + {IR(34693, 18), 476}, // 564 SetMeshOutputsEXT + {IR(29922, 19), 274}, // 565 SetUserEventStatus + {IR(28471, 17), 182}, // 566 ShiftLeftLogical + {IR(28450, 21), 181}, // 567 ShiftRightArithmetic + {IR(28432, 18), 180}, // 568 ShiftRightLogical + {IR(27998, 11), 148}, // 569 SignBitSet + {IR(30403, 7), 294}, // 570 SizeOf + {IR(25376, 7), 3}, // 571 Source + {IR(25257, 16), 2}, // 572 SourceContinued + {IR(25383, 16), 4}, // 573 SourceExtension + {IR(26394, 13), 45}, // 574 SpecConstant + {IR(45180, 30), 804}, // 575 SpecConstantArchitectureINTEL + {IR(45247, 30), 805}, // 576 SpecConstantCapabilitiesINTEL + {IR(26407, 22), 46}, // 577 SpecConstantComposite + {IR(44544, 36), 779}, // 578 SpecConstantCompositeContinuedINTEL + {IR(32564, 34), 393}, // 579 SpecConstantCompositeReplicateEXT + {IR(26376, 18), 44}, // 580 SpecConstantFalse + {IR(26470, 15), 47}, // 581 SpecConstantOp + {IR(33508, 23), 432}, // 582 SpecConstantStringAMDX + {IR(45156, 24), 803}, // 583 SpecConstantTargetINTEL + {IR(26359, 17), 43}, // 584 SpecConstantTrue + {IR(31493, 25), 346}, // 585 StencilAttachmentReadEXT + {IR(26634, 6), 55}, // 586 Store + {IR(25415, 7), 7}, // 587 String + {IR(44845, 25), 792}, // 588 Subgroup2DBlockLoadINTEL + {IR(44870, 34), 793}, // 589 Subgroup2DBlockLoadTransformINTEL + {IR(44904, 34), 794}, // 590 Subgroup2DBlockLoadTransposeINTEL + {IR(44938, 29), 795}, // 591 Subgroup2DBlockPrefetchINTEL + {IR(44967, 26), 796}, // 592 Subgroup2DBlockStoreINTEL + {IR(31984, 20), 371}, // 593 SubgroupAllEqualKHR + {IR(31954, 15), 369}, // 594 SubgroupAllKHR + {IR(31969, 15), 370}, // 595 SubgroupAnyKHR + {IR(40927, 30), 659}, // 596 SubgroupAvcBmeInitializeINTEL + {IR(40897, 30), 658}, // 597 SubgroupAvcFmeInitializeINTEL + {IR(39332, 35), 628}, // 598 SubgroupAvcImeAdjustRefOffsetINTEL + {IR(39367, 39), 629}, // 599 SubgroupAvcImeConvertToMcePayloadINTEL + {IR(40008, 38), 642}, // 600 SubgroupAvcImeConvertToMceResultINTEL + {IR(39631, 45), 635}, // 601 SubgroupAvcImeEvaluateWithDualReferenceINTEL + {IR(39731, 53), 637}, // 602 SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL + {IR(39952, 56), 641}, // 603 SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL + {IR(39840, 54), 639}, // 604 SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL + {IR(39584, 47), 634}, // 605 SubgroupAvcImeEvaluateWithSingleReferenceINTEL + {IR(39676, 55), 636}, // 606 SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL + {IR(39894, 58), 640}, // 607 SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL + {IR(39784, 56), 638}, // 608 SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL + {IR(40640, 36), 653}, // 609 SubgroupAvcImeGetBorderReachedINTEL + {IR(40092, 44), 644}, // 610 SubgroupAvcImeGetDualReferenceStreaminINTEL + {IR(40046, 46), 643}, // 611 SubgroupAvcImeGetSingleReferenceStreaminINTEL + {IR(40507, 66), 651}, // 612 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL + {IR(40439, 68), 650}, // 613 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL + {IR(40573, 67), 652}, // 614 SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL + {IR(40302, 68), 648}, // 615 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL + {IR(40232, 70), 647}, // 616 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL + {IR(40370, 69), 649}, // 617 SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL + {IR(40676, 48), 654}, // 618 SubgroupAvcImeGetTruncatedSearchIndicationINTEL + {IR(40724, 59), 655}, // 619 SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL + {IR(40841, 56), 657}, // 620 SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL + {IR(40783, 58), 656}, // 621 SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL + {IR(39195, 30), 624}, // 622 SubgroupAvcImeInitializeINTEL + {IR(39299, 33), 627}, // 623 SubgroupAvcImeRefWindowSizeINTEL + {IR(39263, 36), 626}, // 624 SubgroupAvcImeSetDualReferenceINTEL + {IR(39496, 54), 632}, // 625 SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL + {IR(39406, 43), 630}, // 626 SubgroupAvcImeSetMaxMotionVectorCountINTEL + {IR(39225, 38), 625}, // 627 SubgroupAvcImeSetSingleReferenceINTEL + {IR(39449, 47), 631}, // 628 SubgroupAvcImeSetUnidirectionalMixDisableINTEL + {IR(39550, 34), 633}, // 629 SubgroupAvcImeSetWeightedSadINTEL + {IR(40185, 47), 646}, // 630 SubgroupAvcImeStripDualReferenceStreamoutINTEL + {IR(40136, 49), 645}, // 631 SubgroupAvcImeStripSingleReferenceStreamoutINTEL + {IR(38585, 39), 609}, // 632 SubgroupAvcMceConvertToImePayloadINTEL + {IR(38624, 38), 610}, // 633 SubgroupAvcMceConvertToImeResultINTEL + {IR(38662, 39), 611}, // 634 SubgroupAvcMceConvertToRefPayloadINTEL + {IR(38701, 38), 612}, // 635 SubgroupAvcMceConvertToRefResultINTEL + {IR(38739, 39), 613}, // 636 SubgroupAvcMceConvertToSicPayloadINTEL + {IR(38778, 38), 614}, // 637 SubgroupAvcMceConvertToSicResultINTEL + {IR(38891, 43), 617}, // 638 SubgroupAvcMceGetBestInterDistortionsINTEL + {IR(38023, 50), 598}, // 639 SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL + {IR(37621, 60), 590}, // 640 SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL + {IR(37821, 51), 594}, // 641 SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL + {IR(37967, 56), 597}, // 642 SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL + {IR(37734, 47), 592}, // 643 SubgroupAvcMceGetDefaultInterShapePenaltyINTEL + {IR(38322, 56), 604}, // 644 SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL + {IR(38221, 50), 602}, // 645 SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL + {IR(37916, 51), 596}, // 646 SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL + {IR(38125, 49), 600}, // 647 SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL + {IR(38073, 52), 599}, // 648 SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL + {IR(38271, 51), 603}, // 649 SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL + {IR(39010, 38), 620}, // 650 SubgroupAvcMceGetInterDirectionsINTEL + {IR(38852, 39), 616}, // 651 SubgroupAvcMceGetInterDistortionsINTEL + {IR(38934, 38), 618}, // 652 SubgroupAvcMceGetInterMajorShapeINTEL + {IR(38972, 38), 619}, // 653 SubgroupAvcMceGetInterMinorShapeINTEL + {IR(39048, 45), 621}, // 654 SubgroupAvcMceGetInterMotionVectorCountINTEL + {IR(39093, 40), 622}, // 655 SubgroupAvcMceGetInterReferenceIdsINTEL + {IR(39133, 62), 623}, // 656 SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL + {IR(38816, 36), 615}, // 657 SubgroupAvcMceGetMotionVectorsINTEL + {IR(38378, 33), 605}, // 658 SubgroupAvcMceSetAcOnlyHaarINTEL + {IR(38524, 61), 608}, // 659 SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL + {IR(37681, 53), 591}, // 660 SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL + {IR(37872, 44), 595}, // 661 SubgroupAvcMceSetInterDirectionPenaltyINTEL + {IR(37781, 40), 593}, // 662 SubgroupAvcMceSetInterShapePenaltyINTEL + {IR(38174, 47), 601}, // 663 SubgroupAvcMceSetMotionVectorCostFunctionINTEL + {IR(38463, 61), 607}, // 664 SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL + {IR(38411, 52), 606}, // 665 SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL + {IR(40957, 39), 660}, // 666 SubgroupAvcRefConvertToMcePayloadINTEL + {IR(41279, 38), 667}, // 667 SubgroupAvcRefConvertToMceResultINTEL + {IR(41132, 45), 664}, // 668 SubgroupAvcRefEvaluateWithDualReferenceINTEL + {IR(41177, 46), 665}, // 669 SubgroupAvcRefEvaluateWithMultiReferenceINTEL + {IR(41223, 56), 666}, // 670 SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL + {IR(41085, 47), 663}, // 671 SubgroupAvcRefEvaluateWithSingleReferenceINTEL + {IR(40996, 46), 661}, // 672 SubgroupAvcRefSetBidirectionalMixDisableINTEL + {IR(41042, 43), 662}, // 673 SubgroupAvcRefSetBilinearFilterEnableINTEL + {IR(41415, 42), 671}, // 674 SubgroupAvcSicConfigureIpeLumaChromaINTEL + {IR(41379, 36), 670}, // 675 SubgroupAvcSicConfigureIpeLumaINTEL + {IR(41347, 32), 669}, // 676 SubgroupAvcSicConfigureSkcINTEL + {IR(41496, 39), 673}, // 677 SubgroupAvcSicConvertToMcePayloadINTEL + {IR(42036, 38), 685}, // 678 SubgroupAvcSicConvertToMceResultINTEL + {IR(41811, 31), 680}, // 679 SubgroupAvcSicEvaluateIpeINTEL + {IR(41889, 45), 682}, // 680 SubgroupAvcSicEvaluateWithDualReferenceINTEL + {IR(41934, 46), 683}, // 681 SubgroupAvcSicEvaluateWithMultiReferenceINTEL + {IR(41980, 56), 684}, // 682 SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL + {IR(41842, 47), 681}, // 683 SubgroupAvcSicEvaluateWithSingleReferenceINTEL + {IR(42153, 46), 688}, // 684 SubgroupAvcSicGetBestIpeChromaDistortionINTEL + {IR(42109, 44), 687}, // 685 SubgroupAvcSicGetBestIpeLumaDistortionINTEL + {IR(42374, 35), 693}, // 686 SubgroupAvcSicGetInterRawSadsINTEL + {IR(42240, 36), 690}, // 687 SubgroupAvcSicGetIpeChromaModeINTEL + {IR(42074, 35), 686}, // 688 SubgroupAvcSicGetIpeLumaShapeINTEL + {IR(41457, 39), 672}, // 689 SubgroupAvcSicGetMotionVectorMaskINTEL + {IR(42199, 41), 689}, // 690 SubgroupAvcSicGetPackedIpeLumaModesINTEL + {IR(42276, 50), 691}, // 691 SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL + {IR(42326, 48), 692}, // 692 SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL + {IR(41317, 30), 668}, // 693 SubgroupAvcSicInitializeINTEL + {IR(41677, 43), 677}, // 694 SubgroupAvcSicSetBilinearFilterEnableINTEL + {IR(41768, 43), 679}, // 695 SubgroupAvcSicSetBlockBasedRawSkipSadINTEL + {IR(41627, 50), 676}, // 696 SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL + {IR(41579, 48), 675}, // 697 SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL + {IR(41535, 44), 674}, // 698 SubgroupAvcSicSetIntraLumaShapePenaltyINTEL + {IR(41720, 48), 678}, // 699 SubgroupAvcSicSetSkcForwardTransformEnableINTEL + {IR(5411, 18), 363}, // 700 SubgroupBallotKHR + {IR(44818, 27), 791}, // 701 SubgroupBlockPrefetchINTEL + {IR(36627, 23), 545}, // 702 SubgroupBlockReadINTEL + {IR(36650, 24), 546}, // 703 SubgroupBlockWriteINTEL + {IR(31828, 27), 364}, // 704 SubgroupFirstInvocationKHR + {IR(36674, 28), 547}, // 705 SubgroupImageBlockReadINTEL + {IR(36702, 29), 548}, // 706 SubgroupImageBlockWriteINTEL + {IR(36731, 33), 549}, // 707 SubgroupImageMediaBlockReadINTEL + {IR(36764, 34), 550}, // 708 SubgroupImageMediaBlockWriteINTEL + {IR(13795, 38), 797}, // 709 SubgroupMatrixMultiplyAccumulateINTEL + {IR(32004, 26), 373}, // 710 SubgroupReadInvocationKHR + {IR(36555, 25), 542}, // 711 SubgroupShuffleDownINTEL + {IR(12010, 21), 541}, // 712 SubgroupShuffleINTEL + {IR(36580, 23), 543}, // 713 SubgroupShuffleUpINTEL + {IR(36603, 24), 544}, // 714 SubgroupShuffleXorINTEL + {IR(29185, 7), 229}, // 715 Switch + {IR(44727, 23), 787}, // 716 TaskSequenceAsyncINTEL + {IR(44703, 24), 786}, // 717 TaskSequenceCreateINTEL + {IR(44750, 21), 788}, // 718 TaskSequenceGetINTEL + {IR(44771, 25), 789}, // 719 TaskSequenceReleaseINTEL + {IR(35898, 27), 518}, // 720 TensorLayoutSetBlockSizeNV + {IR(35762, 28), 511}, // 721 TensorLayoutSetClampValueNV + {IR(35691, 27), 508}, // 722 TensorLayoutSetDimensionNV + {IR(35718, 24), 509}, // 723 TensorLayoutSetStrideNV + {IR(35742, 20), 510}, // 724 TensorLayoutSliceNV + {IR(31603, 19), 350}, // 725 TensorQuerySizeARM + {IR(31574, 14), 348}, // 726 TensorReadARM + {IR(35878, 20), 517}, // 727 TensorViewSetClipNV + {IR(35809, 25), 513}, // 728 TensorViewSetDimensionNV + {IR(35834, 22), 514}, // 729 TensorViewSetStrideNV + {IR(31588, 15), 349}, // 730 TensorWriteARM + {IR(31715, 20), 358}, // 731 TerminateInvocation + {IR(32169, 16), 380}, // 732 TerminateRayKHR + {IR(34957, 15), 485}, // 733 TerminateRayNV + {IR(34980, 14), 487}, // 734 TraceMotionNV + {IR(34972, 8), 486}, // 735 TraceNV + {IR(32081, 12), 376}, // 736 TraceRayKHR + {IR(34994, 17), 488}, // 737 TraceRayMotionNV + {IR(27037, 10), 76}, // 738 Transpose + {IR(35061, 29), 490}, // 739 TypeAccelerationStructureKHR + {IR(35090, 28), 490}, // 740 TypeAccelerationStructureNV + {IR(25986, 10), 25}, // 741 TypeArray + {IR(37540, 37), 587}, // 742 TypeAvcImeDualReferenceStreaminINTEL + {IR(37275, 23), 578}, // 743 TypeAvcImePayloadINTEL + {IR(37457, 44), 585}, // 744 TypeAvcImeResultDualReferenceStreamoutINTEL + {IR(37389, 22), 583}, // 745 TypeAvcImeResultINTEL + {IR(37411, 46), 584}, // 746 TypeAvcImeResultSingleReferenceStreamoutINTEL + {IR(37501, 39), 586}, // 747 TypeAvcImeSingleReferenceStreaminINTEL + {IR(37344, 23), 581}, // 748 TypeAvcMcePayloadINTEL + {IR(37367, 22), 582}, // 749 TypeAvcMceResultINTEL + {IR(37298, 23), 579}, // 750 TypeAvcRefPayloadINTEL + {IR(37577, 22), 588}, // 751 TypeAvcRefResultINTEL + {IR(37321, 23), 580}, // 752 TypeAvcSicPayloadINTEL + {IR(37599, 22), 589}, // 753 TypeAvcSicResultINTEL + {IR(25748, 9), 17}, // 754 TypeBool + {IR(44464, 23), 776}, // 755 TypeBufferSurfaceINTEL + {IR(32350, 25), 387}, // 756 TypeCooperativeMatrixKHR + {IR(35218, 24), 494}, // 757 TypeCooperativeMatrixNV + {IR(34483, 24), 469}, // 758 TypeCooperativeVectorNV + {IR(26101, 16), 32}, // 759 TypeDeviceEvent + {IR(26091, 10), 31}, // 760 TypeEvent + {IR(25802, 10), 19}, // 761 TypeFloat + {IR(26150, 19), 36}, // 762 TypeForwardPointer + {IR(26078, 13), 30}, // 763 TypeFunction + {IR(31702, 13), 357}, // 764 TypeGraphARM + {IR(34444, 16), 467}, // 765 TypeHitObjectNV + {IR(25947, 10), 22}, // 766 TypeImage + {IR(25757, 8), 18}, // 767 TypeInt + {IR(25823, 11), 21}, // 768 TypeMatrix + {IR(30532, 17), 300}, // 769 TypeNamedBarrier + {IR(33385, 25), 427}, // 770 TypeNodePayloadArrayAMDX + {IR(26024, 11), 28}, // 771 TypeOpaque + {IR(26141, 9), 35}, // 772 TypePipe + {IR(30410, 16), 295}, // 773 TypePipeStorage + {IR(26066, 12), 29}, // 774 TypePointer + {IR(26131, 10), 34}, // 775 TypeQueue + {IR(32629, 16), 395}, // 776 TypeRayQueryKHR + {IR(26117, 14), 33}, // 777 TypeReserveId + {IR(25996, 17), 26}, // 778 TypeRuntimeArray + {IR(25969, 17), 24}, // 779 TypeSampledImage + {IR(25957, 12), 23}, // 780 TypeSampler + {IR(26013, 11), 27}, // 781 TypeStruct + {IR(44487, 25), 777}, // 782 TypeStructContinuedINTEL + {IR(44796, 22), 790}, // 783 TypeTaskSequenceINTEL + {IR(31518, 14), 347}, // 784 TypeTensorARM + {IR(35634, 19), 505}, // 785 TypeTensorLayoutNV + {IR(35653, 17), 506}, // 786 TypeTensorViewNV + {IR(31735, 22), 359}, // 787 TypeUntypedPointerKHR + {IR(25812, 11), 20}, // 788 TypeVector + {IR(37257, 18), 577}, // 789 TypeVmeImageINTEL + {IR(25739, 9), 16}, // 790 TypeVoid + {IR(36886, 13), 556}, // 791 UAddSatINTEL + {IR(36913, 14), 558}, // 792 UAverageINTEL + {IR(36948, 21), 560}, // 793 UAverageRoundedINTEL + {IR(27554, 9), 103}, // 794 UConvert + {IR(36798, 24), 551}, // 795 UCountLeadingZerosINTEL + {IR(36822, 25), 552}, // 796 UCountTrailingZerosINTEL + {IR(27766, 5), 123}, // 797 UDiv + {IR(32245, 5), 382}, // 798 UDot + {IR(32298, 11), 385}, // 799 UDotAccSat + {IR(32309, 14), 385}, // 800 UDotAccSatKHR + {IR(32250, 8), 382}, // 801 UDotKHR + {IR(28126, 13), 160}, // 802 UGreaterThan + {IR(28152, 18), 162}, // 803 UGreaterThanEqual + {IR(28188, 10), 164}, // 804 ULessThan + {IR(28208, 15), 166}, // 805 ULessThanEqual + {IR(27781, 5), 126}, // 806 UMod + {IR(37010, 15), 564}, // 807 UMul32x16INTEL + {IR(27934, 13), 140}, // 808 UMulExtended + {IR(36982, 13), 562}, // 809 USubSatINTEL + {IR(25251, 6), 1}, // 810 Undef + {IR(28031, 10), 151}, // 811 Unordered + {IR(29216, 12), 233}, // 812 Unreachable + {IR(31776, 22), 361}, // 813 UntypedAccessChainKHR + {IR(31913, 22), 367}, // 814 UntypedArrayLengthKHR + {IR(32056, 25), 375}, // 815 UntypedGroupAsyncCopyKHR + {IR(31798, 30), 362}, // 816 UntypedInBoundsAccessChainKHR + {IR(31880, 33), 366}, // 817 UntypedInBoundsPtrAccessChainKHR + {IR(31935, 19), 368}, // 818 UntypedPrefetchKHR + {IR(31855, 25), 365}, // 819 UntypedPtrAccessChainKHR + {IR(31757, 19), 360}, // 820 UntypedVariableKHR + {IR(13861, 32), 799}, // 821 UntypedVariableLengthArrayINTEL + {IR(26562, 9), 52}, // 822 Variable + {IR(12466, 25), 694}, // 823 VariableLengthArrayINTEL + {IR(26919, 21), 69}, // 824 VectorExtractDynamic + {IR(26940, 20), 70}, // 825 VectorInsertDynamic + {IR(26960, 14), 71}, // 826 VectorShuffle + {IR(27842, 18), 133}, // 827 VectorTimesMatrix + {IR(27806, 18), 131}, // 828 VectorTimesScalar + {IR(37243, 14), 576}, // 829 VmeImageINTEL + {IR(34738, 33), 478}, // 830 WritePackedPrimitiveIndices4x8NV + {IR(29441, 10), 250}, // 831 WritePipe + {IR(43776, 23), 756}, // 832 WritePipeBlockingINTEL }}; // Extended instruction descriptions, ordered by (extinst enum, opcode value). @@ -4636,431 +4697,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(44894, 14),IR(1, 0)}, // DebugInfoNone in debuginfo - {1,IR(52, 3),IR(44908, 21),IR(1, 0)}, // DebugCompilationUnit in debuginfo - {2,IR(727, 3),IR(44981, 15),IR(1, 0)}, // DebugTypeBasic in debuginfo - {3,IR(730, 3),IR(45030, 17),IR(1, 0)}, // DebugTypePointer in debuginfo - {4,IR(733, 2),IR(45085, 19),IR(1, 0)}, // DebugTypeQualifier in debuginfo - {5,IR(168, 2),IR(45104, 15),IR(1, 0)}, // DebugTypeArray in debuginfo - {6,IR(261, 2),IR(45119, 16),IR(1, 0)}, // DebugTypeVector in debuginfo - {7,IR(735, 6),IR(45135, 13),IR(1, 0)}, // DebugTypedef in debuginfo - {8,IR(168, 2),IR(45148, 18),IR(1, 0)}, // DebugTypeFunction in debuginfo - {9,IR(741, 9),IR(45166, 14),IR(1, 0)}, // DebugTypeEnum in debuginfo - {10,IR(750, 9),IR(45218, 19),IR(1, 0)}, // DebugTypeComposite in debuginfo - {11,IR(759, 10),IR(45237, 16),IR(1, 0)}, // DebugTypeMember in debuginfo - {12,IR(769, 5),IR(45253, 21),IR(1, 0)}, // DebugTypeInheritance in debuginfo - {13,IR(36, 2),IR(45274, 21),IR(1, 0)}, // DebugTypePtrToMember in debuginfo - {14,IR(168, 2),IR(45295, 18),IR(1, 0)}, // DebugTypeTemplate in debuginfo - {15,IR(774, 6),IR(45313, 27),IR(1, 0)}, // DebugTypeTemplateParameter in debuginfo - {16,IR(780, 5),IR(45340, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in debuginfo - {17,IR(785, 5),IR(45375, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in debuginfo - {18,IR(759, 10),IR(45406, 20),IR(1, 0)}, // DebugGlobalVariable in debuginfo - {19,IR(790, 8),IR(45426, 25),IR(1, 0)}, // DebugFunctionDeclaration in debuginfo - {20,IR(798, 11),IR(45451, 14),IR(1, 0)}, // DebugFunction in debuginfo - {21,IR(809, 5),IR(45465, 18),IR(1, 0)}, // DebugLexicalBlock in debuginfo - {22,IR(814, 3),IR(45483, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in debuginfo - {23,IR(817, 2),IR(45514, 11),IR(1, 0)}, // DebugScope in debuginfo - {24,IR(0, 0),IR(45525, 13),IR(1, 0)}, // DebugNoScope in debuginfo - {25,IR(819, 3),IR(45538, 15),IR(1, 0)}, // DebugInlinedAt in debuginfo - {26,IR(822, 7),IR(45595, 19),IR(1, 0)}, // DebugLocalVariable in debuginfo - {27,IR(36, 2),IR(45614, 21),IR(1, 0)}, // DebugInlinedVariable in debuginfo - {28,IR(33, 3),IR(45635, 13),IR(1, 0)}, // DebugDeclare in debuginfo - {29,IR(829, 3),IR(45648, 11),IR(1, 0)}, // DebugValue in debuginfo - {30,IR(832, 2),IR(45692, 15),IR(1, 0)}, // DebugOperation in debuginfo - {31,IR(683, 1),IR(45707, 16),IR(1, 0)}, // DebugExpression in debuginfo - {32,IR(834, 4),IR(45723, 14),IR(1, 0)}, // DebugMacroDef in debuginfo - {33,IR(814, 3),IR(45737, 16),IR(1, 0)}, // DebugMacroUndef in debuginfo - {1,IR(10, 1),IR(45753, 6),IR(1, 0)}, // Round in glsl_std_450 - {2,IR(10, 1),IR(45759, 10),IR(1, 0)}, // RoundEven in glsl_std_450 - {3,IR(10, 1),IR(45769, 6),IR(1, 0)}, // Trunc in glsl_std_450 - {4,IR(10, 1),IR(45775, 5),IR(1, 0)}, // FAbs in glsl_std_450 - {5,IR(10, 1),IR(45780, 5),IR(1, 0)}, // SAbs in glsl_std_450 - {6,IR(10, 1),IR(45785, 6),IR(1, 0)}, // FSign in glsl_std_450 - {7,IR(10, 1),IR(45791, 6),IR(1, 0)}, // SSign in glsl_std_450 - {8,IR(10, 1),IR(45797, 6),IR(1, 0)}, // Floor in glsl_std_450 - {9,IR(10, 1),IR(45803, 5),IR(1, 0)}, // Ceil in glsl_std_450 - {10,IR(10, 1),IR(45808, 6),IR(1, 0)}, // Fract in glsl_std_450 - {11,IR(10, 1),IR(45814, 8),IR(1, 0)}, // Radians in glsl_std_450 - {12,IR(10, 1),IR(45822, 8),IR(1, 0)}, // Degrees in glsl_std_450 - {13,IR(10, 1),IR(45830, 4),IR(1, 0)}, // Sin in glsl_std_450 - {14,IR(10, 1),IR(45834, 4),IR(1, 0)}, // Cos in glsl_std_450 - {15,IR(10, 1),IR(45838, 4),IR(1, 0)}, // Tan in glsl_std_450 - {16,IR(10, 1),IR(45842, 5),IR(1, 0)}, // Asin in glsl_std_450 - {17,IR(10, 1),IR(45847, 5),IR(1, 0)}, // Acos in glsl_std_450 - {18,IR(10, 1),IR(45852, 5),IR(1, 0)}, // Atan in glsl_std_450 - {19,IR(10, 1),IR(45857, 5),IR(1, 0)}, // Sinh in glsl_std_450 - {20,IR(10, 1),IR(45862, 5),IR(1, 0)}, // Cosh in glsl_std_450 - {21,IR(10, 1),IR(45867, 5),IR(1, 0)}, // Tanh in glsl_std_450 - {22,IR(10, 1),IR(45872, 6),IR(1, 0)}, // Asinh in glsl_std_450 - {23,IR(10, 1),IR(45878, 6),IR(1, 0)}, // Acosh in glsl_std_450 - {24,IR(10, 1),IR(45884, 6),IR(1, 0)}, // Atanh in glsl_std_450 - {25,IR(36, 2),IR(45890, 6),IR(1, 0)}, // Atan2 in glsl_std_450 - {26,IR(36, 2),IR(45896, 4),IR(1, 0)}, // Pow in glsl_std_450 - {27,IR(10, 1),IR(45900, 4),IR(1, 0)}, // Exp in glsl_std_450 - {28,IR(10, 1),IR(45904, 4),IR(1, 0)}, // Log in glsl_std_450 - {29,IR(10, 1),IR(45908, 5),IR(1, 0)}, // Exp2 in glsl_std_450 - {30,IR(10, 1),IR(45913, 5),IR(1, 0)}, // Log2 in glsl_std_450 - {31,IR(10, 1),IR(45918, 5),IR(1, 0)}, // Sqrt in glsl_std_450 - {32,IR(10, 1),IR(45923, 12),IR(1, 0)}, // InverseSqrt in glsl_std_450 - {33,IR(10, 1),IR(45935, 12),IR(1, 0)}, // Determinant in glsl_std_450 - {34,IR(10, 1),IR(45947, 14),IR(1, 0)}, // MatrixInverse in glsl_std_450 - {35,IR(36, 2),IR(45961, 5),IR(1, 0)}, // Modf in glsl_std_450 - {36,IR(10, 1),IR(45966, 11),IR(1, 0)}, // ModfStruct in glsl_std_450 - {37,IR(36, 2),IR(45977, 5),IR(1, 0)}, // FMin in glsl_std_450 - {38,IR(36, 2),IR(45982, 5),IR(1, 0)}, // UMin in glsl_std_450 - {39,IR(36, 2),IR(45987, 5),IR(1, 0)}, // SMin in glsl_std_450 - {40,IR(36, 2),IR(45992, 5),IR(1, 0)}, // FMax in glsl_std_450 - {41,IR(36, 2),IR(45997, 5),IR(1, 0)}, // UMax in glsl_std_450 - {42,IR(36, 2),IR(46002, 5),IR(1, 0)}, // SMax in glsl_std_450 - {43,IR(33, 3),IR(46007, 7),IR(1, 0)}, // FClamp in glsl_std_450 - {44,IR(33, 3),IR(46014, 7),IR(1, 0)}, // UClamp in glsl_std_450 - {45,IR(33, 3),IR(46021, 7),IR(1, 0)}, // SClamp in glsl_std_450 - {46,IR(33, 3),IR(46028, 5),IR(1, 0)}, // FMix in glsl_std_450 - {47,IR(33, 3),IR(46033, 5),IR(1, 0)}, // IMix in glsl_std_450 - {48,IR(36, 2),IR(46038, 5),IR(1, 0)}, // Step in glsl_std_450 - {49,IR(33, 3),IR(46043, 11),IR(1, 0)}, // SmoothStep in glsl_std_450 - {50,IR(33, 3),IR(46054, 4),IR(1, 0)}, // Fma in glsl_std_450 - {51,IR(36, 2),IR(46058, 6),IR(1, 0)}, // Frexp in glsl_std_450 - {52,IR(10, 1),IR(46064, 12),IR(1, 0)}, // FrexpStruct in glsl_std_450 - {53,IR(36, 2),IR(46076, 6),IR(1, 0)}, // Ldexp in glsl_std_450 - {54,IR(10, 1),IR(46082, 13),IR(1, 0)}, // PackSnorm4x8 in glsl_std_450 - {55,IR(10, 1),IR(46095, 13),IR(1, 0)}, // PackUnorm4x8 in glsl_std_450 - {56,IR(10, 1),IR(46108, 14),IR(1, 0)}, // PackSnorm2x16 in glsl_std_450 - {57,IR(10, 1),IR(46122, 14),IR(1, 0)}, // PackUnorm2x16 in glsl_std_450 - {58,IR(10, 1),IR(46136, 13),IR(1, 0)}, // PackHalf2x16 in glsl_std_450 - {59,IR(10, 1),IR(46149, 15),IR(302, 1)}, // PackDouble2x32 in glsl_std_450 - {60,IR(10, 1),IR(46164, 16),IR(1, 0)}, // UnpackSnorm2x16 in glsl_std_450 - {61,IR(10, 1),IR(46180, 16),IR(1, 0)}, // UnpackUnorm2x16 in glsl_std_450 - {62,IR(10, 1),IR(46196, 15),IR(1, 0)}, // UnpackHalf2x16 in glsl_std_450 - {63,IR(10, 1),IR(46211, 15),IR(1, 0)}, // UnpackSnorm4x8 in glsl_std_450 - {64,IR(10, 1),IR(46226, 15),IR(1, 0)}, // UnpackUnorm4x8 in glsl_std_450 - {65,IR(10, 1),IR(46241, 17),IR(302, 1)}, // UnpackDouble2x32 in glsl_std_450 - {66,IR(10, 1),IR(46258, 7),IR(1, 0)}, // Length in glsl_std_450 - {67,IR(36, 2),IR(46265, 9),IR(1, 0)}, // Distance in glsl_std_450 - {68,IR(36, 2),IR(46274, 6),IR(1, 0)}, // Cross in glsl_std_450 - {69,IR(10, 1),IR(46280, 10),IR(1, 0)}, // Normalize in glsl_std_450 - {70,IR(33, 3),IR(46290, 12),IR(1, 0)}, // FaceForward in glsl_std_450 - {71,IR(36, 2),IR(46302, 8),IR(1, 0)}, // Reflect in glsl_std_450 - {72,IR(33, 3),IR(46310, 8),IR(1, 0)}, // Refract in glsl_std_450 - {73,IR(10, 1),IR(46318, 9),IR(1, 0)}, // FindILsb in glsl_std_450 - {74,IR(10, 1),IR(46327, 9),IR(1, 0)}, // FindSMsb in glsl_std_450 - {75,IR(10, 1),IR(46336, 9),IR(1, 0)}, // FindUMsb in glsl_std_450 - {76,IR(10, 1),IR(46345, 22),IR(303, 1)}, // InterpolateAtCentroid in glsl_std_450 - {77,IR(36, 2),IR(46367, 20),IR(303, 1)}, // InterpolateAtSample in glsl_std_450 - {78,IR(36, 2),IR(46387, 20),IR(303, 1)}, // InterpolateAtOffset in glsl_std_450 - {79,IR(36, 2),IR(46407, 5),IR(1, 0)}, // NMin in glsl_std_450 - {80,IR(36, 2),IR(46412, 5),IR(1, 0)}, // NMax in glsl_std_450 - {81,IR(33, 3),IR(46417, 7),IR(1, 0)}, // NClamp in glsl_std_450 - {1,IR(387, 5),IR(4549, 7),IR(1, 0)}, // Kernel in nonsemantic_clspvreflection - {2,IR(838, 5),IR(46424, 13),IR(1, 0)}, // ArgumentInfo in nonsemantic_clspvreflection - {3,IR(843, 5),IR(46437, 22),IR(1, 0)}, // ArgumentStorageBuffer in nonsemantic_clspvreflection - {4,IR(843, 5),IR(46459, 16),IR(1, 0)}, // ArgumentUniform in nonsemantic_clspvreflection - {5,IR(531, 7),IR(46475, 25),IR(1, 0)}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection - {6,IR(531, 7),IR(46500, 19),IR(1, 0)}, // ArgumentPodUniform in nonsemantic_clspvreflection - {7,IR(843, 5),IR(46519, 24),IR(1, 0)}, // ArgumentPodPushConstant in nonsemantic_clspvreflection - {8,IR(843, 5),IR(46543, 21),IR(1, 0)}, // ArgumentSampledImage in nonsemantic_clspvreflection - {9,IR(843, 5),IR(46564, 21),IR(1, 0)}, // ArgumentStorageImage in nonsemantic_clspvreflection - {10,IR(843, 5),IR(46585, 16),IR(1, 0)}, // ArgumentSampler in nonsemantic_clspvreflection - {11,IR(843, 5),IR(46601, 18),IR(1, 0)}, // ArgumentWorkgroup in nonsemantic_clspvreflection - {12,IR(33, 3),IR(46619, 26),IR(1, 0)}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection - {13,IR(33, 3),IR(46645, 25),IR(1, 0)}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection - {14,IR(10, 1),IR(46670, 20),IR(1, 0)}, // SpecConstantWorkDim in nonsemantic_clspvreflection - {15,IR(36, 2),IR(46690, 25),IR(1, 0)}, // PushConstantGlobalOffset in nonsemantic_clspvreflection - {16,IR(36, 2),IR(46715, 30),IR(1, 0)}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection - {17,IR(36, 2),IR(46745, 23),IR(1, 0)}, // PushConstantGlobalSize in nonsemantic_clspvreflection - {18,IR(36, 2),IR(46768, 25),IR(1, 0)}, // PushConstantRegionOffset in nonsemantic_clspvreflection - {19,IR(36, 2),IR(46793, 26),IR(1, 0)}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection - {20,IR(36, 2),IR(46819, 30),IR(1, 0)}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection - {21,IR(33, 3),IR(46849, 26),IR(1, 0)}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection - {22,IR(33, 3),IR(46875, 20),IR(1, 0)}, // ConstantDataUniform in nonsemantic_clspvreflection - {23,IR(33, 3),IR(7974, 15),IR(1, 0)}, // LiteralSampler in nonsemantic_clspvreflection - {24,IR(296, 4),IR(46895, 30),IR(1, 0)}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection - {25,IR(10, 1),IR(46925, 28),IR(1, 0)}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection - {26,IR(843, 5),IR(46953, 28),IR(1, 0)}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection - {27,IR(531, 7),IR(46981, 23),IR(1, 0)}, // ArgumentPointerUniform in nonsemantic_clspvreflection - {28,IR(33, 3),IR(47004, 35),IR(1, 0)}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection - {29,IR(33, 3),IR(47039, 38),IR(1, 0)}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection - {30,IR(296, 4),IR(47077, 42),IR(1, 0)}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection - {31,IR(296, 4),IR(47119, 45),IR(1, 0)}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection - {32,IR(502, 6),IR(47164, 37),IR(1, 0)}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection - {33,IR(502, 6),IR(47201, 40),IR(1, 0)}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection - {34,IR(843, 5),IR(47241, 27),IR(1, 0)}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection - {35,IR(843, 5),IR(47268, 27),IR(1, 0)}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection - {36,IR(33, 3),IR(47295, 32),IR(1, 0)}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection - {37,IR(33, 3),IR(47327, 40),IR(1, 0)}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection - {38,IR(829, 3),IR(47367, 11),IR(1, 0)}, // PrintfInfo in nonsemantic_clspvreflection - {39,IR(33, 3),IR(47378, 26),IR(1, 0)}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection - {40,IR(33, 3),IR(47404, 32),IR(1, 0)}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection - {41,IR(296, 4),IR(47436, 34),IR(1, 0)}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection - {42,IR(36, 2),IR(47470, 22),IR(1, 0)}, // WorkgroupVariableSize in nonsemantic_clspvreflection - {0,IR(0, 0),IR(44894, 14),IR(1, 0)}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 - {1,IR(296, 4),IR(44908, 21),IR(1, 0)}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 - {2,IR(296, 4),IR(44981, 15),IR(1, 0)}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 - {3,IR(33, 3),IR(45030, 17),IR(1, 0)}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 - {4,IR(36, 2),IR(45085, 19),IR(1, 0)}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 - {5,IR(168, 2),IR(45104, 15),IR(1, 0)}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 - {6,IR(36, 2),IR(45119, 16),IR(1, 0)}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 - {7,IR(502, 6),IR(45135, 13),IR(1, 0)}, // DebugTypedef in nonsemantic_shader_debuginfo_100 - {8,IR(829, 3),IR(45148, 18),IR(1, 0)}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 - {9,IR(848, 9),IR(45166, 14),IR(1, 0)}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 - {10,IR(857, 10),IR(45218, 19),IR(1, 0)}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 - {11,IR(867, 9),IR(45237, 16),IR(1, 0)}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 - {12,IR(296, 4),IR(45253, 21),IR(1, 0)}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 - {13,IR(36, 2),IR(45274, 21),IR(1, 0)}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 - {14,IR(168, 2),IR(45295, 18),IR(1, 0)}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 - {15,IR(502, 6),IR(45313, 27),IR(1, 0)}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 - {16,IR(611, 5),IR(45340, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 - {17,IR(876, 5),IR(45375, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 - {18,IR(881, 10),IR(45406, 20),IR(1, 0)}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 - {19,IR(448, 8),IR(45426, 25),IR(1, 0)}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 - {20,IR(881, 10),IR(45451, 14),IR(1, 0)}, // DebugFunction in nonsemantic_shader_debuginfo_100 - {21,IR(843, 5),IR(45465, 18),IR(1, 0)}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 - {22,IR(33, 3),IR(45483, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 - {23,IR(817, 2),IR(45514, 11),IR(1, 0)}, // DebugScope in nonsemantic_shader_debuginfo_100 - {24,IR(0, 0),IR(45525, 13),IR(1, 0)}, // DebugNoScope in nonsemantic_shader_debuginfo_100 - {25,IR(891, 3),IR(45538, 15),IR(1, 0)}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 - {26,IR(894, 8),IR(45595, 19),IR(1, 0)}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 - {27,IR(36, 2),IR(45614, 21),IR(1, 0)}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 - {28,IR(902, 4),IR(45635, 13),IR(1, 0)}, // DebugDeclare in nonsemantic_shader_debuginfo_100 - {29,IR(902, 4),IR(45648, 11),IR(1, 0)}, // DebugValue in nonsemantic_shader_debuginfo_100 - {30,IR(168, 2),IR(45692, 15),IR(1, 0)}, // DebugOperation in nonsemantic_shader_debuginfo_100 - {31,IR(683, 1),IR(45707, 16),IR(1, 0)}, // DebugExpression in nonsemantic_shader_debuginfo_100 - {32,IR(554, 4),IR(45723, 14),IR(1, 0)}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 - {33,IR(33, 3),IR(45737, 16),IR(1, 0)}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 - {34,IR(483, 7),IR(47492, 20),IR(1, 0)}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 - {35,IR(817, 2),IR(47512, 12),IR(1, 0)}, // DebugSource in nonsemantic_shader_debuginfo_100 - {101,IR(36, 2),IR(47524, 24),IR(1, 0)}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 - {102,IR(10, 1),IR(47548, 21),IR(1, 0)}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 - {103,IR(611, 5),IR(47569, 10),IR(1, 0)}, // DebugLine in nonsemantic_shader_debuginfo_100 - {104,IR(0, 0),IR(47579, 12),IR(1, 0)}, // DebugNoLine in nonsemantic_shader_debuginfo_100 - {105,IR(36, 2),IR(47591, 21),IR(1, 0)}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 - {106,IR(10, 1),IR(47612, 17),IR(1, 0)}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 - {107,IR(296, 4),IR(47629, 16),IR(1, 0)}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 - {108,IR(33, 3),IR(47645, 16),IR(1, 0)}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 - {1,IR(701, 9),IR(47661, 14),IR(1, 0)}, // Configuration in nonsemantic_vkspreflection - {2,IR(10, 1),IR(47675, 13),IR(1, 0)}, // StartCounter in nonsemantic_vkspreflection - {3,IR(10, 1),IR(47688, 12),IR(1, 0)}, // StopCounter in nonsemantic_vkspreflection - {4,IR(296, 4),IR(47700, 14),IR(1, 0)}, // PushConstants in nonsemantic_vkspreflection - {5,IR(33, 3),IR(47714, 23),IR(1, 0)}, // SpecializationMapEntry in nonsemantic_vkspreflection - {6,IR(906, 15),IR(47737, 20),IR(1, 0)}, // DescriptorSetBuffer in nonsemantic_vkspreflection - {7,IR(921, 33),IR(47757, 19),IR(1, 0)}, // DescriptorSetImage in nonsemantic_vkspreflection - {8,IR(954, 19),IR(47776, 21),IR(1, 0)}, // DescriptorSetSampler in nonsemantic_vkspreflection - {0,IR(0, 0),IR(44894, 14),IR(1, 0)}, // DebugInfoNone in opencl_debuginfo_100 - {1,IR(973, 4),IR(44908, 21),IR(1, 0)}, // DebugCompilationUnit in opencl_debuginfo_100 - {2,IR(977, 3),IR(44981, 15),IR(1, 0)}, // DebugTypeBasic in opencl_debuginfo_100 - {3,IR(980, 3),IR(45030, 17),IR(1, 0)}, // DebugTypePointer in opencl_debuginfo_100 - {4,IR(983, 2),IR(45085, 19),IR(1, 0)}, // DebugTypeQualifier in opencl_debuginfo_100 - {5,IR(168, 2),IR(45104, 15),IR(1, 0)}, // DebugTypeArray in opencl_debuginfo_100 - {6,IR(261, 2),IR(45119, 16),IR(1, 0)}, // DebugTypeVector in opencl_debuginfo_100 - {7,IR(735, 6),IR(45135, 13),IR(1, 0)}, // DebugTypedef in opencl_debuginfo_100 - {8,IR(985, 3),IR(45148, 18),IR(1, 0)}, // DebugTypeFunction in opencl_debuginfo_100 - {9,IR(988, 9),IR(45166, 14),IR(1, 0)}, // DebugTypeEnum in opencl_debuginfo_100 - {10,IR(997, 10),IR(45218, 19),IR(1, 0)}, // DebugTypeComposite in opencl_debuginfo_100 - {11,IR(1007, 10),IR(45237, 16),IR(1, 0)}, // DebugTypeMember in opencl_debuginfo_100 - {12,IR(1017, 5),IR(45253, 21),IR(1, 0)}, // DebugTypeInheritance in opencl_debuginfo_100 - {13,IR(36, 2),IR(45274, 21),IR(1, 0)}, // DebugTypePtrToMember in opencl_debuginfo_100 - {14,IR(168, 2),IR(45295, 18),IR(1, 0)}, // DebugTypeTemplate in opencl_debuginfo_100 - {15,IR(774, 6),IR(45313, 27),IR(1, 0)}, // DebugTypeTemplateParameter in opencl_debuginfo_100 - {16,IR(780, 5),IR(45340, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 - {17,IR(785, 5),IR(45375, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 - {18,IR(1007, 10),IR(45406, 20),IR(1, 0)}, // DebugGlobalVariable in opencl_debuginfo_100 - {19,IR(1022, 8),IR(45426, 25),IR(1, 0)}, // DebugFunctionDeclaration in opencl_debuginfo_100 - {20,IR(1030, 11),IR(45451, 14),IR(1, 0)}, // DebugFunction in opencl_debuginfo_100 - {21,IR(809, 5),IR(45465, 18),IR(1, 0)}, // DebugLexicalBlock in opencl_debuginfo_100 - {22,IR(814, 3),IR(45483, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 - {23,IR(817, 2),IR(45514, 11),IR(1, 0)}, // DebugScope in opencl_debuginfo_100 - {24,IR(0, 0),IR(45525, 13),IR(1, 0)}, // DebugNoScope in opencl_debuginfo_100 - {25,IR(819, 3),IR(45538, 15),IR(1, 0)}, // DebugInlinedAt in opencl_debuginfo_100 - {26,IR(1041, 8),IR(45595, 19),IR(1, 0)}, // DebugLocalVariable in opencl_debuginfo_100 - {27,IR(36, 2),IR(45614, 21),IR(1, 0)}, // DebugInlinedVariable in opencl_debuginfo_100 - {28,IR(33, 3),IR(45635, 13),IR(1, 0)}, // DebugDeclare in opencl_debuginfo_100 - {29,IR(902, 4),IR(45648, 11),IR(1, 0)}, // DebugValue in opencl_debuginfo_100 - {30,IR(1049, 2),IR(45692, 15),IR(1, 0)}, // DebugOperation in opencl_debuginfo_100 - {31,IR(683, 1),IR(45707, 16),IR(1, 0)}, // DebugExpression in opencl_debuginfo_100 - {32,IR(834, 4),IR(45723, 14),IR(1, 0)}, // DebugMacroDef in opencl_debuginfo_100 - {33,IR(814, 3),IR(45737, 16),IR(1, 0)}, // DebugMacroUndef in opencl_debuginfo_100 - {34,IR(1051, 7),IR(47492, 20),IR(1, 0)}, // DebugImportedEntity in opencl_debuginfo_100 - {35,IR(817, 2),IR(47512, 12),IR(1, 0)}, // DebugSource in opencl_debuginfo_100 - {36,IR(1058, 8),IR(48097, 17),IR(1, 0)}, // DebugModuleINTEL in opencl_debuginfo_100 - {0,IR(10, 1),IR(48114, 5),IR(1, 0)}, // acos in opencl_std_100 - {1,IR(10, 1),IR(48119, 6),IR(1, 0)}, // acosh in opencl_std_100 - {2,IR(10, 1),IR(48125, 7),IR(1, 0)}, // acospi in opencl_std_100 - {3,IR(10, 1),IR(48132, 5),IR(1, 0)}, // asin in opencl_std_100 - {4,IR(10, 1),IR(48137, 6),IR(1, 0)}, // asinh in opencl_std_100 - {5,IR(10, 1),IR(48143, 7),IR(1, 0)}, // asinpi in opencl_std_100 - {6,IR(10, 1),IR(48150, 5),IR(1, 0)}, // atan in opencl_std_100 - {7,IR(36, 2),IR(48155, 6),IR(1, 0)}, // atan2 in opencl_std_100 - {8,IR(10, 1),IR(48161, 6),IR(1, 0)}, // atanh in opencl_std_100 - {9,IR(10, 1),IR(48167, 7),IR(1, 0)}, // atanpi in opencl_std_100 - {10,IR(36, 2),IR(48174, 8),IR(1, 0)}, // atan2pi in opencl_std_100 - {11,IR(10, 1),IR(48182, 5),IR(1, 0)}, // cbrt in opencl_std_100 - {12,IR(10, 1),IR(48187, 5),IR(1, 0)}, // ceil in opencl_std_100 - {13,IR(36, 2),IR(48192, 9),IR(1, 0)}, // copysign in opencl_std_100 - {14,IR(10, 1),IR(48201, 4),IR(1, 0)}, // cos in opencl_std_100 - {15,IR(10, 1),IR(48205, 5),IR(1, 0)}, // cosh in opencl_std_100 - {16,IR(10, 1),IR(48210, 6),IR(1, 0)}, // cospi in opencl_std_100 - {17,IR(10, 1),IR(48216, 5),IR(1, 0)}, // erfc in opencl_std_100 - {18,IR(10, 1),IR(48221, 4),IR(1, 0)}, // erf in opencl_std_100 - {19,IR(10, 1),IR(48225, 4),IR(1, 0)}, // exp in opencl_std_100 - {20,IR(10, 1),IR(48229, 5),IR(1, 0)}, // exp2 in opencl_std_100 - {21,IR(10, 1),IR(48234, 6),IR(1, 0)}, // exp10 in opencl_std_100 - {22,IR(10, 1),IR(48240, 6),IR(1, 0)}, // expm1 in opencl_std_100 - {23,IR(10, 1),IR(48246, 5),IR(1, 0)}, // fabs in opencl_std_100 - {24,IR(36, 2),IR(48251, 5),IR(1, 0)}, // fdim in opencl_std_100 - {25,IR(10, 1),IR(48256, 6),IR(1, 0)}, // floor in opencl_std_100 - {26,IR(33, 3),IR(48262, 4),IR(1, 0)}, // fma in opencl_std_100 - {27,IR(36, 2),IR(48266, 5),IR(1, 0)}, // fmax in opencl_std_100 - {28,IR(36, 2),IR(48271, 5),IR(1, 0)}, // fmin in opencl_std_100 - {29,IR(36, 2),IR(48276, 5),IR(1, 0)}, // fmod in opencl_std_100 - {30,IR(36, 2),IR(48281, 6),IR(1, 0)}, // fract in opencl_std_100 - {31,IR(36, 2),IR(48287, 6),IR(1, 0)}, // frexp in opencl_std_100 - {32,IR(36, 2),IR(48293, 6),IR(1, 0)}, // hypot in opencl_std_100 - {33,IR(10, 1),IR(48299, 6),IR(1, 0)}, // ilogb in opencl_std_100 - {34,IR(36, 2),IR(48305, 6),IR(1, 0)}, // ldexp in opencl_std_100 - {35,IR(10, 1),IR(48311, 7),IR(1, 0)}, // lgamma in opencl_std_100 - {36,IR(36, 2),IR(48318, 9),IR(1, 0)}, // lgamma_r in opencl_std_100 - {37,IR(10, 1),IR(48327, 4),IR(1, 0)}, // log in opencl_std_100 - {38,IR(10, 1),IR(48331, 5),IR(1, 0)}, // log2 in opencl_std_100 - {39,IR(10, 1),IR(48336, 6),IR(1, 0)}, // log10 in opencl_std_100 - {40,IR(10, 1),IR(48342, 6),IR(1, 0)}, // log1p in opencl_std_100 - {41,IR(10, 1),IR(48348, 5),IR(1, 0)}, // logb in opencl_std_100 - {42,IR(33, 3),IR(48353, 4),IR(1, 0)}, // mad in opencl_std_100 - {43,IR(36, 2),IR(48357, 7),IR(1, 0)}, // maxmag in opencl_std_100 - {44,IR(36, 2),IR(48364, 7),IR(1, 0)}, // minmag in opencl_std_100 - {45,IR(36, 2),IR(48371, 5),IR(1, 0)}, // modf in opencl_std_100 - {46,IR(10, 1),IR(48376, 4),IR(1, 0)}, // nan in opencl_std_100 - {47,IR(36, 2),IR(48380, 10),IR(1, 0)}, // nextafter in opencl_std_100 - {48,IR(36, 2),IR(48390, 4),IR(1, 0)}, // pow in opencl_std_100 - {49,IR(36, 2),IR(48394, 5),IR(1, 0)}, // pown in opencl_std_100 - {50,IR(36, 2),IR(48399, 5),IR(1, 0)}, // powr in opencl_std_100 - {51,IR(36, 2),IR(48404, 10),IR(1, 0)}, // remainder in opencl_std_100 - {52,IR(33, 3),IR(48414, 7),IR(1, 0)}, // remquo in opencl_std_100 - {53,IR(10, 1),IR(48421, 5),IR(1, 0)}, // rint in opencl_std_100 - {54,IR(36, 2),IR(48426, 6),IR(1, 0)}, // rootn in opencl_std_100 - {55,IR(10, 1),IR(48432, 6),IR(1, 0)}, // round in opencl_std_100 - {56,IR(10, 1),IR(48438, 6),IR(1, 0)}, // rsqrt in opencl_std_100 - {57,IR(10, 1),IR(48444, 4),IR(1, 0)}, // sin in opencl_std_100 - {58,IR(36, 2),IR(48448, 7),IR(1, 0)}, // sincos in opencl_std_100 - {59,IR(10, 1),IR(48455, 5),IR(1, 0)}, // sinh in opencl_std_100 - {60,IR(10, 1),IR(48460, 6),IR(1, 0)}, // sinpi in opencl_std_100 - {61,IR(10, 1),IR(48466, 5),IR(1, 0)}, // sqrt in opencl_std_100 - {62,IR(10, 1),IR(48471, 4),IR(1, 0)}, // tan in opencl_std_100 - {63,IR(10, 1),IR(48475, 5),IR(1, 0)}, // tanh in opencl_std_100 - {64,IR(10, 1),IR(48480, 6),IR(1, 0)}, // tanpi in opencl_std_100 - {65,IR(10, 1),IR(48486, 7),IR(1, 0)}, // tgamma in opencl_std_100 - {66,IR(10, 1),IR(48493, 6),IR(1, 0)}, // trunc in opencl_std_100 - {67,IR(10, 1),IR(48499, 9),IR(1, 0)}, // half_cos in opencl_std_100 - {68,IR(36, 2),IR(48508, 12),IR(1, 0)}, // half_divide in opencl_std_100 - {69,IR(10, 1),IR(48520, 9),IR(1, 0)}, // half_exp in opencl_std_100 - {70,IR(10, 1),IR(48529, 10),IR(1, 0)}, // half_exp2 in opencl_std_100 - {71,IR(10, 1),IR(48539, 11),IR(1, 0)}, // half_exp10 in opencl_std_100 - {72,IR(10, 1),IR(48550, 9),IR(1, 0)}, // half_log in opencl_std_100 - {73,IR(10, 1),IR(48559, 10),IR(1, 0)}, // half_log2 in opencl_std_100 - {74,IR(10, 1),IR(48569, 11),IR(1, 0)}, // half_log10 in opencl_std_100 - {75,IR(36, 2),IR(48580, 10),IR(1, 0)}, // half_powr in opencl_std_100 - {76,IR(10, 1),IR(48590, 11),IR(1, 0)}, // half_recip in opencl_std_100 - {77,IR(10, 1),IR(48601, 11),IR(1, 0)}, // half_rsqrt in opencl_std_100 - {78,IR(10, 1),IR(48612, 9),IR(1, 0)}, // half_sin in opencl_std_100 - {79,IR(10, 1),IR(48621, 10),IR(1, 0)}, // half_sqrt in opencl_std_100 - {80,IR(10, 1),IR(48631, 9),IR(1, 0)}, // half_tan in opencl_std_100 - {81,IR(10, 1),IR(48640, 11),IR(1, 0)}, // native_cos in opencl_std_100 - {82,IR(36, 2),IR(48651, 14),IR(1, 0)}, // native_divide in opencl_std_100 - {83,IR(10, 1),IR(48665, 11),IR(1, 0)}, // native_exp in opencl_std_100 - {84,IR(10, 1),IR(48676, 12),IR(1, 0)}, // native_exp2 in opencl_std_100 - {85,IR(10, 1),IR(48688, 13),IR(1, 0)}, // native_exp10 in opencl_std_100 - {86,IR(10, 1),IR(48701, 11),IR(1, 0)}, // native_log in opencl_std_100 - {87,IR(10, 1),IR(48712, 12),IR(1, 0)}, // native_log2 in opencl_std_100 - {88,IR(10, 1),IR(48724, 13),IR(1, 0)}, // native_log10 in opencl_std_100 - {89,IR(36, 2),IR(48737, 12),IR(1, 0)}, // native_powr in opencl_std_100 - {90,IR(10, 1),IR(48749, 13),IR(1, 0)}, // native_recip in opencl_std_100 - {91,IR(10, 1),IR(48762, 13),IR(1, 0)}, // native_rsqrt in opencl_std_100 - {92,IR(10, 1),IR(48775, 11),IR(1, 0)}, // native_sin in opencl_std_100 - {93,IR(10, 1),IR(48786, 12),IR(1, 0)}, // native_sqrt in opencl_std_100 - {94,IR(10, 1),IR(48798, 11),IR(1, 0)}, // native_tan in opencl_std_100 - {95,IR(33, 3),IR(48809, 7),IR(1, 0)}, // fclamp in opencl_std_100 - {96,IR(10, 1),IR(48816, 8),IR(1, 0)}, // degrees in opencl_std_100 - {97,IR(36, 2),IR(48824, 12),IR(1, 0)}, // fmax_common in opencl_std_100 - {98,IR(36, 2),IR(48836, 12),IR(1, 0)}, // fmin_common in opencl_std_100 - {99,IR(33, 3),IR(48848, 4),IR(1, 0)}, // mix in opencl_std_100 - {100,IR(10, 1),IR(48852, 8),IR(1, 0)}, // radians in opencl_std_100 - {101,IR(36, 2),IR(48860, 5),IR(1, 0)}, // step in opencl_std_100 - {102,IR(33, 3),IR(48865, 11),IR(1, 0)}, // smoothstep in opencl_std_100 - {103,IR(10, 1),IR(48876, 5),IR(1, 0)}, // sign in opencl_std_100 - {104,IR(36, 2),IR(48881, 6),IR(1, 0)}, // cross in opencl_std_100 - {105,IR(36, 2),IR(48887, 9),IR(1, 0)}, // distance in opencl_std_100 - {106,IR(10, 1),IR(48896, 7),IR(1, 0)}, // length in opencl_std_100 - {107,IR(10, 1),IR(48903, 10),IR(1, 0)}, // normalize in opencl_std_100 - {108,IR(36, 2),IR(48913, 14),IR(1, 0)}, // fast_distance in opencl_std_100 - {109,IR(10, 1),IR(48927, 12),IR(1, 0)}, // fast_length in opencl_std_100 - {110,IR(10, 1),IR(48939, 15),IR(1, 0)}, // fast_normalize in opencl_std_100 - {141,IR(10, 1),IR(48954, 6),IR(1, 0)}, // s_abs in opencl_std_100 - {142,IR(36, 2),IR(48960, 11),IR(1, 0)}, // s_abs_diff in opencl_std_100 - {143,IR(36, 2),IR(48971, 10),IR(1, 0)}, // s_add_sat in opencl_std_100 - {144,IR(36, 2),IR(48981, 10),IR(1, 0)}, // u_add_sat in opencl_std_100 - {145,IR(36, 2),IR(48991, 7),IR(1, 0)}, // s_hadd in opencl_std_100 - {146,IR(36, 2),IR(48998, 7),IR(1, 0)}, // u_hadd in opencl_std_100 - {147,IR(36, 2),IR(49005, 8),IR(1, 0)}, // s_rhadd in opencl_std_100 - {148,IR(36, 2),IR(49013, 8),IR(1, 0)}, // u_rhadd in opencl_std_100 - {149,IR(33, 3),IR(49021, 8),IR(1, 0)}, // s_clamp in opencl_std_100 - {150,IR(33, 3),IR(49029, 8),IR(1, 0)}, // u_clamp in opencl_std_100 - {151,IR(10, 1),IR(49037, 4),IR(1, 0)}, // clz in opencl_std_100 - {152,IR(10, 1),IR(49041, 4),IR(1, 0)}, // ctz in opencl_std_100 - {153,IR(33, 3),IR(49045, 9),IR(1, 0)}, // s_mad_hi in opencl_std_100 - {154,IR(33, 3),IR(49054, 10),IR(1, 0)}, // u_mad_sat in opencl_std_100 - {155,IR(33, 3),IR(49064, 10),IR(1, 0)}, // s_mad_sat in opencl_std_100 - {156,IR(36, 2),IR(49074, 6),IR(1, 0)}, // s_max in opencl_std_100 - {157,IR(36, 2),IR(49080, 6),IR(1, 0)}, // u_max in opencl_std_100 - {158,IR(36, 2),IR(49086, 6),IR(1, 0)}, // s_min in opencl_std_100 - {159,IR(36, 2),IR(49092, 6),IR(1, 0)}, // u_min in opencl_std_100 - {160,IR(36, 2),IR(49098, 9),IR(1, 0)}, // s_mul_hi in opencl_std_100 - {161,IR(36, 2),IR(49107, 7),IR(1, 0)}, // rotate in opencl_std_100 - {162,IR(36, 2),IR(49114, 10),IR(1, 0)}, // s_sub_sat in opencl_std_100 - {163,IR(36, 2),IR(49124, 10),IR(1, 0)}, // u_sub_sat in opencl_std_100 - {164,IR(36, 2),IR(49134, 11),IR(1, 0)}, // u_upsample in opencl_std_100 - {165,IR(36, 2),IR(49145, 11),IR(1, 0)}, // s_upsample in opencl_std_100 - {166,IR(10, 1),IR(49156, 9),IR(1, 0)}, // popcount in opencl_std_100 - {167,IR(33, 3),IR(49165, 8),IR(1, 0)}, // s_mad24 in opencl_std_100 - {168,IR(33, 3),IR(49173, 8),IR(1, 0)}, // u_mad24 in opencl_std_100 - {169,IR(36, 2),IR(49181, 8),IR(1, 0)}, // s_mul24 in opencl_std_100 - {170,IR(36, 2),IR(49189, 8),IR(1, 0)}, // u_mul24 in opencl_std_100 - {171,IR(1066, 3),IR(49197, 7),IR(1, 0)}, // vloadn in opencl_std_100 - {172,IR(33, 3),IR(49204, 8),IR(1, 0)}, // vstoren in opencl_std_100 - {173,IR(36, 2),IR(49212, 11),IR(1, 0)}, // vload_half in opencl_std_100 - {174,IR(1066, 3),IR(49223, 12),IR(1, 0)}, // vload_halfn in opencl_std_100 - {175,IR(33, 3),IR(49235, 12),IR(1, 0)}, // vstore_half in opencl_std_100 - {176,IR(1069, 4),IR(49247, 14),IR(1, 0)}, // vstore_half_r in opencl_std_100 - {177,IR(33, 3),IR(49261, 13),IR(1, 0)}, // vstore_halfn in opencl_std_100 - {178,IR(1069, 4),IR(49274, 15),IR(1, 0)}, // vstore_halfn_r in opencl_std_100 - {179,IR(1066, 3),IR(49289, 13),IR(1, 0)}, // vloada_halfn in opencl_std_100 - {180,IR(33, 3),IR(49302, 14),IR(1, 0)}, // vstorea_halfn in opencl_std_100 - {181,IR(1069, 4),IR(49316, 16),IR(1, 0)}, // vstorea_halfn_r in opencl_std_100 - {182,IR(36, 2),IR(49332, 8),IR(1, 0)}, // shuffle in opencl_std_100 - {183,IR(33, 3),IR(49340, 9),IR(1, 0)}, // shuffle2 in opencl_std_100 - {184,IR(168, 2),IR(49349, 7),IR(1, 0)}, // printf in opencl_std_100 - {185,IR(36, 2),IR(49356, 9),IR(1, 0)}, // prefetch in opencl_std_100 - {186,IR(33, 3),IR(49365, 10),IR(1, 0)}, // bitselect in opencl_std_100 - {187,IR(33, 3),IR(49375, 7),IR(1, 0)}, // select in opencl_std_100 - {201,IR(10, 1),IR(49382, 6),IR(1, 0)}, // u_abs in opencl_std_100 - {202,IR(36, 2),IR(49388, 11),IR(1, 0)}, // u_abs_diff in opencl_std_100 - {203,IR(36, 2),IR(49399, 9),IR(1, 0)}, // u_mul_hi in opencl_std_100 - {204,IR(33, 3),IR(49408, 9),IR(1, 0)}, // u_mad_hi in opencl_std_100 - {1,IR(10, 1),IR(49417, 17),IR(1, 0)}, // CubeFaceIndexAMD in spv_amd_gcn_shader - {2,IR(10, 1),IR(49434, 17),IR(1, 0)}, // CubeFaceCoordAMD in spv_amd_gcn_shader - {3,IR(0, 0),IR(49451, 8),IR(1, 0)}, // TimeAMD in spv_amd_gcn_shader - {1,IR(36, 2),IR(49459, 22),IR(1, 0)}, // SwizzleInvocationsAMD in spv_amd_shader_ballot - {2,IR(36, 2),IR(49481, 28),IR(1, 0)}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot - {3,IR(33, 3),IR(49509, 19),IR(1, 0)}, // WriteInvocationAMD in spv_amd_shader_ballot - {4,IR(10, 1),IR(49528, 9),IR(1, 0)}, // MbcntAMD in spv_amd_shader_ballot - {1,IR(36, 2),IR(49537, 23),IR(1, 0)}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter - {1,IR(33, 3),IR(49560, 9),IR(1, 0)}, // FMin3AMD in spv_amd_shader_trinary_minmax - {2,IR(33, 3),IR(49569, 9),IR(1, 0)}, // UMin3AMD in spv_amd_shader_trinary_minmax - {3,IR(33, 3),IR(49578, 9),IR(1, 0)}, // SMin3AMD in spv_amd_shader_trinary_minmax - {4,IR(33, 3),IR(49587, 9),IR(1, 0)}, // FMax3AMD in spv_amd_shader_trinary_minmax - {5,IR(33, 3),IR(49596, 9),IR(1, 0)}, // UMax3AMD in spv_amd_shader_trinary_minmax - {6,IR(33, 3),IR(49605, 9),IR(1, 0)}, // SMax3AMD in spv_amd_shader_trinary_minmax - {7,IR(33, 3),IR(49614, 9),IR(1, 0)}, // FMid3AMD in spv_amd_shader_trinary_minmax - {8,IR(33, 3),IR(49623, 9),IR(1, 0)}, // UMid3AMD in spv_amd_shader_trinary_minmax - {9,IR(33, 3),IR(49632, 9),IR(1, 0)}, // SMid3AMD in spv_amd_shader_trinary_minmax + {0,IR(0, 0),IR(45584, 14),IR(1, 0)}, // DebugInfoNone in debuginfo + {1,IR(52, 3),IR(45598, 21),IR(1, 0)}, // DebugCompilationUnit in debuginfo + {2,IR(770, 3),IR(45671, 15),IR(1, 0)}, // DebugTypeBasic in debuginfo + {3,IR(773, 3),IR(45720, 17),IR(1, 0)}, // DebugTypePointer in debuginfo + {4,IR(776, 2),IR(45775, 19),IR(1, 0)}, // DebugTypeQualifier in debuginfo + {5,IR(168, 2),IR(45794, 15),IR(1, 0)}, // DebugTypeArray in debuginfo + {6,IR(261, 2),IR(45809, 16),IR(1, 0)}, // DebugTypeVector in debuginfo + {7,IR(778, 6),IR(45825, 13),IR(1, 0)}, // DebugTypedef in debuginfo + {8,IR(168, 2),IR(45838, 18),IR(1, 0)}, // DebugTypeFunction in debuginfo + {9,IR(784, 9),IR(45856, 14),IR(1, 0)}, // DebugTypeEnum in debuginfo + {10,IR(793, 9),IR(45908, 19),IR(1, 0)}, // DebugTypeComposite in debuginfo + {11,IR(802, 10),IR(45927, 16),IR(1, 0)}, // DebugTypeMember in debuginfo + {12,IR(812, 5),IR(45943, 21),IR(1, 0)}, // DebugTypeInheritance in debuginfo + {13,IR(36, 2),IR(45964, 21),IR(1, 0)}, // DebugTypePtrToMember in debuginfo + {14,IR(168, 2),IR(45985, 18),IR(1, 0)}, // DebugTypeTemplate in debuginfo + {15,IR(817, 6),IR(46003, 27),IR(1, 0)}, // DebugTypeTemplateParameter in debuginfo + {16,IR(823, 5),IR(46030, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in debuginfo + {17,IR(828, 5),IR(46065, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in debuginfo + {18,IR(802, 10),IR(46096, 20),IR(1, 0)}, // DebugGlobalVariable in debuginfo + {19,IR(833, 8),IR(46116, 25),IR(1, 0)}, // DebugFunctionDeclaration in debuginfo + {20,IR(841, 11),IR(46141, 14),IR(1, 0)}, // DebugFunction in debuginfo + {21,IR(852, 5),IR(46155, 18),IR(1, 0)}, // DebugLexicalBlock in debuginfo + {22,IR(857, 3),IR(46173, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in debuginfo + {23,IR(860, 2),IR(46204, 11),IR(1, 0)}, // DebugScope in debuginfo + {24,IR(0, 0),IR(46215, 13),IR(1, 0)}, // DebugNoScope in debuginfo + {25,IR(862, 3),IR(46228, 15),IR(1, 0)}, // DebugInlinedAt in debuginfo + {26,IR(865, 7),IR(46285, 19),IR(1, 0)}, // DebugLocalVariable in debuginfo + {27,IR(36, 2),IR(46304, 21),IR(1, 0)}, // DebugInlinedVariable in debuginfo + {28,IR(33, 3),IR(46325, 13),IR(1, 0)}, // DebugDeclare in debuginfo + {29,IR(375, 3),IR(46338, 11),IR(1, 0)}, // DebugValue in debuginfo + {30,IR(872, 2),IR(46382, 15),IR(1, 0)}, // DebugOperation in debuginfo + {31,IR(706, 1),IR(46397, 16),IR(1, 0)}, // DebugExpression in debuginfo + {32,IR(874, 4),IR(46413, 14),IR(1, 0)}, // DebugMacroDef in debuginfo + {33,IR(857, 3),IR(46427, 16),IR(1, 0)}, // DebugMacroUndef in debuginfo + {1,IR(10, 1),IR(46443, 6),IR(1, 0)}, // Round in glsl_std_450 + {2,IR(10, 1),IR(46449, 10),IR(1, 0)}, // RoundEven in glsl_std_450 + {3,IR(10, 1),IR(46459, 6),IR(1, 0)}, // Trunc in glsl_std_450 + {4,IR(10, 1),IR(46465, 5),IR(1, 0)}, // FAbs in glsl_std_450 + {5,IR(10, 1),IR(46470, 5),IR(1, 0)}, // SAbs in glsl_std_450 + {6,IR(10, 1),IR(46475, 6),IR(1, 0)}, // FSign in glsl_std_450 + {7,IR(10, 1),IR(46481, 6),IR(1, 0)}, // SSign in glsl_std_450 + {8,IR(10, 1),IR(46487, 6),IR(1, 0)}, // Floor in glsl_std_450 + {9,IR(10, 1),IR(46493, 5),IR(1, 0)}, // Ceil in glsl_std_450 + {10,IR(10, 1),IR(46498, 6),IR(1, 0)}, // Fract in glsl_std_450 + {11,IR(10, 1),IR(46504, 8),IR(1, 0)}, // Radians in glsl_std_450 + {12,IR(10, 1),IR(46512, 8),IR(1, 0)}, // Degrees in glsl_std_450 + {13,IR(10, 1),IR(46520, 4),IR(1, 0)}, // Sin in glsl_std_450 + {14,IR(10, 1),IR(46524, 4),IR(1, 0)}, // Cos in glsl_std_450 + {15,IR(10, 1),IR(46528, 4),IR(1, 0)}, // Tan in glsl_std_450 + {16,IR(10, 1),IR(46532, 5),IR(1, 0)}, // Asin in glsl_std_450 + {17,IR(10, 1),IR(46537, 5),IR(1, 0)}, // Acos in glsl_std_450 + {18,IR(10, 1),IR(46542, 5),IR(1, 0)}, // Atan in glsl_std_450 + {19,IR(10, 1),IR(46547, 5),IR(1, 0)}, // Sinh in glsl_std_450 + {20,IR(10, 1),IR(46552, 5),IR(1, 0)}, // Cosh in glsl_std_450 + {21,IR(10, 1),IR(46557, 5),IR(1, 0)}, // Tanh in glsl_std_450 + {22,IR(10, 1),IR(46562, 6),IR(1, 0)}, // Asinh in glsl_std_450 + {23,IR(10, 1),IR(46568, 6),IR(1, 0)}, // Acosh in glsl_std_450 + {24,IR(10, 1),IR(46574, 6),IR(1, 0)}, // Atanh in glsl_std_450 + {25,IR(36, 2),IR(46580, 6),IR(1, 0)}, // Atan2 in glsl_std_450 + {26,IR(36, 2),IR(46586, 4),IR(1, 0)}, // Pow in glsl_std_450 + {27,IR(10, 1),IR(46590, 4),IR(1, 0)}, // Exp in glsl_std_450 + {28,IR(10, 1),IR(46594, 4),IR(1, 0)}, // Log in glsl_std_450 + {29,IR(10, 1),IR(46598, 5),IR(1, 0)}, // Exp2 in glsl_std_450 + {30,IR(10, 1),IR(46603, 5),IR(1, 0)}, // Log2 in glsl_std_450 + {31,IR(10, 1),IR(46608, 5),IR(1, 0)}, // Sqrt in glsl_std_450 + {32,IR(10, 1),IR(46613, 12),IR(1, 0)}, // InverseSqrt in glsl_std_450 + {33,IR(10, 1),IR(46625, 12),IR(1, 0)}, // Determinant in glsl_std_450 + {34,IR(10, 1),IR(46637, 14),IR(1, 0)}, // MatrixInverse in glsl_std_450 + {35,IR(36, 2),IR(46651, 5),IR(1, 0)}, // Modf in glsl_std_450 + {36,IR(10, 1),IR(46656, 11),IR(1, 0)}, // ModfStruct in glsl_std_450 + {37,IR(36, 2),IR(46667, 5),IR(1, 0)}, // FMin in glsl_std_450 + {38,IR(36, 2),IR(46672, 5),IR(1, 0)}, // UMin in glsl_std_450 + {39,IR(36, 2),IR(46677, 5),IR(1, 0)}, // SMin in glsl_std_450 + {40,IR(36, 2),IR(46682, 5),IR(1, 0)}, // FMax in glsl_std_450 + {41,IR(36, 2),IR(46687, 5),IR(1, 0)}, // UMax in glsl_std_450 + {42,IR(36, 2),IR(46692, 5),IR(1, 0)}, // SMax in glsl_std_450 + {43,IR(33, 3),IR(46697, 7),IR(1, 0)}, // FClamp in glsl_std_450 + {44,IR(33, 3),IR(46704, 7),IR(1, 0)}, // UClamp in glsl_std_450 + {45,IR(33, 3),IR(46711, 7),IR(1, 0)}, // SClamp in glsl_std_450 + {46,IR(33, 3),IR(46718, 5),IR(1, 0)}, // FMix in glsl_std_450 + {47,IR(33, 3),IR(46723, 5),IR(1, 0)}, // IMix in glsl_std_450 + {48,IR(36, 2),IR(46728, 5),IR(1, 0)}, // Step in glsl_std_450 + {49,IR(33, 3),IR(46733, 11),IR(1, 0)}, // SmoothStep in glsl_std_450 + {50,IR(33, 3),IR(46744, 4),IR(1, 0)}, // Fma in glsl_std_450 + {51,IR(36, 2),IR(46748, 6),IR(1, 0)}, // Frexp in glsl_std_450 + {52,IR(10, 1),IR(46754, 12),IR(1, 0)}, // FrexpStruct in glsl_std_450 + {53,IR(36, 2),IR(46766, 6),IR(1, 0)}, // Ldexp in glsl_std_450 + {54,IR(10, 1),IR(46772, 13),IR(1, 0)}, // PackSnorm4x8 in glsl_std_450 + {55,IR(10, 1),IR(46785, 13),IR(1, 0)}, // PackUnorm4x8 in glsl_std_450 + {56,IR(10, 1),IR(46798, 14),IR(1, 0)}, // PackSnorm2x16 in glsl_std_450 + {57,IR(10, 1),IR(46812, 14),IR(1, 0)}, // PackUnorm2x16 in glsl_std_450 + {58,IR(10, 1),IR(46826, 13),IR(1, 0)}, // PackHalf2x16 in glsl_std_450 + {59,IR(10, 1),IR(46839, 15),IR(309, 1)}, // PackDouble2x32 in glsl_std_450 + {60,IR(10, 1),IR(46854, 16),IR(1, 0)}, // UnpackSnorm2x16 in glsl_std_450 + {61,IR(10, 1),IR(46870, 16),IR(1, 0)}, // UnpackUnorm2x16 in glsl_std_450 + {62,IR(10, 1),IR(46886, 15),IR(1, 0)}, // UnpackHalf2x16 in glsl_std_450 + {63,IR(10, 1),IR(46901, 15),IR(1, 0)}, // UnpackSnorm4x8 in glsl_std_450 + {64,IR(10, 1),IR(46916, 15),IR(1, 0)}, // UnpackUnorm4x8 in glsl_std_450 + {65,IR(10, 1),IR(46931, 17),IR(309, 1)}, // UnpackDouble2x32 in glsl_std_450 + {66,IR(10, 1),IR(46948, 7),IR(1, 0)}, // Length in glsl_std_450 + {67,IR(36, 2),IR(46955, 9),IR(1, 0)}, // Distance in glsl_std_450 + {68,IR(36, 2),IR(46964, 6),IR(1, 0)}, // Cross in glsl_std_450 + {69,IR(10, 1),IR(46970, 10),IR(1, 0)}, // Normalize in glsl_std_450 + {70,IR(33, 3),IR(46980, 12),IR(1, 0)}, // FaceForward in glsl_std_450 + {71,IR(36, 2),IR(46992, 8),IR(1, 0)}, // Reflect in glsl_std_450 + {72,IR(33, 3),IR(47000, 8),IR(1, 0)}, // Refract in glsl_std_450 + {73,IR(10, 1),IR(47008, 9),IR(1, 0)}, // FindILsb in glsl_std_450 + {74,IR(10, 1),IR(47017, 9),IR(1, 0)}, // FindSMsb in glsl_std_450 + {75,IR(10, 1),IR(47026, 9),IR(1, 0)}, // FindUMsb in glsl_std_450 + {76,IR(10, 1),IR(47035, 22),IR(310, 1)}, // InterpolateAtCentroid in glsl_std_450 + {77,IR(36, 2),IR(47057, 20),IR(310, 1)}, // InterpolateAtSample in glsl_std_450 + {78,IR(36, 2),IR(47077, 20),IR(310, 1)}, // InterpolateAtOffset in glsl_std_450 + {79,IR(36, 2),IR(47097, 5),IR(1, 0)}, // NMin in glsl_std_450 + {80,IR(36, 2),IR(47102, 5),IR(1, 0)}, // NMax in glsl_std_450 + {81,IR(33, 3),IR(47107, 7),IR(1, 0)}, // NClamp in glsl_std_450 + {1,IR(399, 5),IR(4630, 7),IR(1, 0)}, // Kernel in nonsemantic_clspvreflection + {2,IR(878, 5),IR(47114, 13),IR(1, 0)}, // ArgumentInfo in nonsemantic_clspvreflection + {3,IR(883, 5),IR(47127, 22),IR(1, 0)}, // ArgumentStorageBuffer in nonsemantic_clspvreflection + {4,IR(883, 5),IR(47149, 16),IR(1, 0)}, // ArgumentUniform in nonsemantic_clspvreflection + {5,IR(554, 7),IR(47165, 25),IR(1, 0)}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection + {6,IR(554, 7),IR(47190, 19),IR(1, 0)}, // ArgumentPodUniform in nonsemantic_clspvreflection + {7,IR(883, 5),IR(47209, 24),IR(1, 0)}, // ArgumentPodPushConstant in nonsemantic_clspvreflection + {8,IR(883, 5),IR(47233, 21),IR(1, 0)}, // ArgumentSampledImage in nonsemantic_clspvreflection + {9,IR(883, 5),IR(47254, 21),IR(1, 0)}, // ArgumentStorageImage in nonsemantic_clspvreflection + {10,IR(883, 5),IR(47275, 16),IR(1, 0)}, // ArgumentSampler in nonsemantic_clspvreflection + {11,IR(883, 5),IR(47291, 18),IR(1, 0)}, // ArgumentWorkgroup in nonsemantic_clspvreflection + {12,IR(33, 3),IR(47309, 26),IR(1, 0)}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection + {13,IR(33, 3),IR(47335, 25),IR(1, 0)}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection + {14,IR(10, 1),IR(47360, 20),IR(1, 0)}, // SpecConstantWorkDim in nonsemantic_clspvreflection + {15,IR(36, 2),IR(47380, 25),IR(1, 0)}, // PushConstantGlobalOffset in nonsemantic_clspvreflection + {16,IR(36, 2),IR(47405, 30),IR(1, 0)}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection + {17,IR(36, 2),IR(47435, 23),IR(1, 0)}, // PushConstantGlobalSize in nonsemantic_clspvreflection + {18,IR(36, 2),IR(47458, 25),IR(1, 0)}, // PushConstantRegionOffset in nonsemantic_clspvreflection + {19,IR(36, 2),IR(47483, 26),IR(1, 0)}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection + {20,IR(36, 2),IR(47509, 30),IR(1, 0)}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection + {21,IR(33, 3),IR(47539, 26),IR(1, 0)}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection + {22,IR(33, 3),IR(47565, 20),IR(1, 0)}, // ConstantDataUniform in nonsemantic_clspvreflection + {23,IR(33, 3),IR(8055, 15),IR(1, 0)}, // LiteralSampler in nonsemantic_clspvreflection + {24,IR(296, 4),IR(47585, 30),IR(1, 0)}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection + {25,IR(10, 1),IR(47615, 28),IR(1, 0)}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection + {26,IR(883, 5),IR(47643, 28),IR(1, 0)}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection + {27,IR(554, 7),IR(47671, 23),IR(1, 0)}, // ArgumentPointerUniform in nonsemantic_clspvreflection + {28,IR(33, 3),IR(47694, 35),IR(1, 0)}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection + {29,IR(33, 3),IR(47729, 38),IR(1, 0)}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection + {30,IR(296, 4),IR(47767, 42),IR(1, 0)}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection + {31,IR(296, 4),IR(47809, 45),IR(1, 0)}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection + {32,IR(525, 6),IR(47854, 37),IR(1, 0)}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection + {33,IR(525, 6),IR(47891, 40),IR(1, 0)}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection + {34,IR(883, 5),IR(47931, 27),IR(1, 0)}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection + {35,IR(883, 5),IR(47958, 27),IR(1, 0)}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection + {36,IR(33, 3),IR(47985, 32),IR(1, 0)}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection + {37,IR(33, 3),IR(48017, 40),IR(1, 0)}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection + {38,IR(375, 3),IR(48057, 11),IR(1, 0)}, // PrintfInfo in nonsemantic_clspvreflection + {39,IR(33, 3),IR(48068, 26),IR(1, 0)}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection + {40,IR(33, 3),IR(48094, 32),IR(1, 0)}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection + {41,IR(296, 4),IR(48126, 34),IR(1, 0)}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection + {42,IR(36, 2),IR(48160, 22),IR(1, 0)}, // WorkgroupVariableSize in nonsemantic_clspvreflection + {0,IR(0, 0),IR(45584, 14),IR(1, 0)}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 + {1,IR(296, 4),IR(45598, 21),IR(1, 0)}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 + {2,IR(296, 4),IR(45671, 15),IR(1, 0)}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 + {3,IR(33, 3),IR(45720, 17),IR(1, 0)}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 + {4,IR(36, 2),IR(45775, 19),IR(1, 0)}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 + {5,IR(168, 2),IR(45794, 15),IR(1, 0)}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 + {6,IR(36, 2),IR(45809, 16),IR(1, 0)}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 + {7,IR(525, 6),IR(45825, 13),IR(1, 0)}, // DebugTypedef in nonsemantic_shader_debuginfo_100 + {8,IR(375, 3),IR(45838, 18),IR(1, 0)}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 + {9,IR(888, 9),IR(45856, 14),IR(1, 0)}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 + {10,IR(897, 10),IR(45908, 19),IR(1, 0)}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 + {11,IR(907, 9),IR(45927, 16),IR(1, 0)}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 + {12,IR(296, 4),IR(45943, 21),IR(1, 0)}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 + {13,IR(36, 2),IR(45964, 21),IR(1, 0)}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 + {14,IR(168, 2),IR(45985, 18),IR(1, 0)}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 + {15,IR(525, 6),IR(46003, 27),IR(1, 0)}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 + {16,IR(634, 5),IR(46030, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 + {17,IR(916, 5),IR(46065, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 + {18,IR(921, 10),IR(46096, 20),IR(1, 0)}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 + {19,IR(471, 8),IR(46116, 25),IR(1, 0)}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 + {20,IR(921, 10),IR(46141, 14),IR(1, 0)}, // DebugFunction in nonsemantic_shader_debuginfo_100 + {21,IR(883, 5),IR(46155, 18),IR(1, 0)}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 + {22,IR(33, 3),IR(46173, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 + {23,IR(860, 2),IR(46204, 11),IR(1, 0)}, // DebugScope in nonsemantic_shader_debuginfo_100 + {24,IR(0, 0),IR(46215, 13),IR(1, 0)}, // DebugNoScope in nonsemantic_shader_debuginfo_100 + {25,IR(931, 3),IR(46228, 15),IR(1, 0)}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 + {26,IR(934, 8),IR(46285, 19),IR(1, 0)}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 + {27,IR(36, 2),IR(46304, 21),IR(1, 0)}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 + {28,IR(942, 4),IR(46325, 13),IR(1, 0)}, // DebugDeclare in nonsemantic_shader_debuginfo_100 + {29,IR(942, 4),IR(46338, 11),IR(1, 0)}, // DebugValue in nonsemantic_shader_debuginfo_100 + {30,IR(168, 2),IR(46382, 15),IR(1, 0)}, // DebugOperation in nonsemantic_shader_debuginfo_100 + {31,IR(706, 1),IR(46397, 16),IR(1, 0)}, // DebugExpression in nonsemantic_shader_debuginfo_100 + {32,IR(577, 4),IR(46413, 14),IR(1, 0)}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 + {33,IR(33, 3),IR(46427, 16),IR(1, 0)}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 + {34,IR(506, 7),IR(48182, 20),IR(1, 0)}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 + {35,IR(860, 2),IR(48202, 12),IR(1, 0)}, // DebugSource in nonsemantic_shader_debuginfo_100 + {101,IR(36, 2),IR(48214, 24),IR(1, 0)}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 + {102,IR(10, 1),IR(48238, 21),IR(1, 0)}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 + {103,IR(634, 5),IR(48259, 10),IR(1, 0)}, // DebugLine in nonsemantic_shader_debuginfo_100 + {104,IR(0, 0),IR(48269, 12),IR(1, 0)}, // DebugNoLine in nonsemantic_shader_debuginfo_100 + {105,IR(36, 2),IR(48281, 21),IR(1, 0)}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 + {106,IR(10, 1),IR(48302, 17),IR(1, 0)}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 + {107,IR(296, 4),IR(48319, 16),IR(1, 0)}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 + {108,IR(33, 3),IR(48335, 16),IR(1, 0)}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 + {1,IR(724, 9),IR(48351, 14),IR(1, 0)}, // Configuration in nonsemantic_vkspreflection + {2,IR(10, 1),IR(48365, 13),IR(1, 0)}, // StartCounter in nonsemantic_vkspreflection + {3,IR(10, 1),IR(48378, 12),IR(1, 0)}, // StopCounter in nonsemantic_vkspreflection + {4,IR(296, 4),IR(48390, 14),IR(1, 0)}, // PushConstants in nonsemantic_vkspreflection + {5,IR(33, 3),IR(48404, 23),IR(1, 0)}, // SpecializationMapEntry in nonsemantic_vkspreflection + {6,IR(946, 15),IR(48427, 20),IR(1, 0)}, // DescriptorSetBuffer in nonsemantic_vkspreflection + {7,IR(961, 33),IR(48447, 19),IR(1, 0)}, // DescriptorSetImage in nonsemantic_vkspreflection + {8,IR(994, 19),IR(48466, 21),IR(1, 0)}, // DescriptorSetSampler in nonsemantic_vkspreflection + {0,IR(0, 0),IR(45584, 14),IR(1, 0)}, // DebugInfoNone in opencl_debuginfo_100 + {1,IR(1013, 4),IR(45598, 21),IR(1, 0)}, // DebugCompilationUnit in opencl_debuginfo_100 + {2,IR(1017, 3),IR(45671, 15),IR(1, 0)}, // DebugTypeBasic in opencl_debuginfo_100 + {3,IR(1020, 3),IR(45720, 17),IR(1, 0)}, // DebugTypePointer in opencl_debuginfo_100 + {4,IR(1023, 2),IR(45775, 19),IR(1, 0)}, // DebugTypeQualifier in opencl_debuginfo_100 + {5,IR(168, 2),IR(45794, 15),IR(1, 0)}, // DebugTypeArray in opencl_debuginfo_100 + {6,IR(261, 2),IR(45809, 16),IR(1, 0)}, // DebugTypeVector in opencl_debuginfo_100 + {7,IR(778, 6),IR(45825, 13),IR(1, 0)}, // DebugTypedef in opencl_debuginfo_100 + {8,IR(1025, 3),IR(45838, 18),IR(1, 0)}, // DebugTypeFunction in opencl_debuginfo_100 + {9,IR(1028, 9),IR(45856, 14),IR(1, 0)}, // DebugTypeEnum in opencl_debuginfo_100 + {10,IR(1037, 10),IR(45908, 19),IR(1, 0)}, // DebugTypeComposite in opencl_debuginfo_100 + {11,IR(1047, 10),IR(45927, 16),IR(1, 0)}, // DebugTypeMember in opencl_debuginfo_100 + {12,IR(1057, 5),IR(45943, 21),IR(1, 0)}, // DebugTypeInheritance in opencl_debuginfo_100 + {13,IR(36, 2),IR(45964, 21),IR(1, 0)}, // DebugTypePtrToMember in opencl_debuginfo_100 + {14,IR(168, 2),IR(45985, 18),IR(1, 0)}, // DebugTypeTemplate in opencl_debuginfo_100 + {15,IR(817, 6),IR(46003, 27),IR(1, 0)}, // DebugTypeTemplateParameter in opencl_debuginfo_100 + {16,IR(823, 5),IR(46030, 35),IR(1, 0)}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 + {17,IR(828, 5),IR(46065, 31),IR(1, 0)}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 + {18,IR(1047, 10),IR(46096, 20),IR(1, 0)}, // DebugGlobalVariable in opencl_debuginfo_100 + {19,IR(1062, 8),IR(46116, 25),IR(1, 0)}, // DebugFunctionDeclaration in opencl_debuginfo_100 + {20,IR(1070, 11),IR(46141, 14),IR(1, 0)}, // DebugFunction in opencl_debuginfo_100 + {21,IR(852, 5),IR(46155, 18),IR(1, 0)}, // DebugLexicalBlock in opencl_debuginfo_100 + {22,IR(857, 3),IR(46173, 31),IR(1, 0)}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 + {23,IR(860, 2),IR(46204, 11),IR(1, 0)}, // DebugScope in opencl_debuginfo_100 + {24,IR(0, 0),IR(46215, 13),IR(1, 0)}, // DebugNoScope in opencl_debuginfo_100 + {25,IR(862, 3),IR(46228, 15),IR(1, 0)}, // DebugInlinedAt in opencl_debuginfo_100 + {26,IR(1081, 8),IR(46285, 19),IR(1, 0)}, // DebugLocalVariable in opencl_debuginfo_100 + {27,IR(36, 2),IR(46304, 21),IR(1, 0)}, // DebugInlinedVariable in opencl_debuginfo_100 + {28,IR(33, 3),IR(46325, 13),IR(1, 0)}, // DebugDeclare in opencl_debuginfo_100 + {29,IR(942, 4),IR(46338, 11),IR(1, 0)}, // DebugValue in opencl_debuginfo_100 + {30,IR(1089, 2),IR(46382, 15),IR(1, 0)}, // DebugOperation in opencl_debuginfo_100 + {31,IR(706, 1),IR(46397, 16),IR(1, 0)}, // DebugExpression in opencl_debuginfo_100 + {32,IR(874, 4),IR(46413, 14),IR(1, 0)}, // DebugMacroDef in opencl_debuginfo_100 + {33,IR(857, 3),IR(46427, 16),IR(1, 0)}, // DebugMacroUndef in opencl_debuginfo_100 + {34,IR(1091, 7),IR(48182, 20),IR(1, 0)}, // DebugImportedEntity in opencl_debuginfo_100 + {35,IR(860, 2),IR(48202, 12),IR(1, 0)}, // DebugSource in opencl_debuginfo_100 + {36,IR(1098, 8),IR(48787, 17),IR(1, 0)}, // DebugModuleINTEL in opencl_debuginfo_100 + {0,IR(10, 1),IR(48804, 5),IR(1, 0)}, // acos in opencl_std_100 + {1,IR(10, 1),IR(48809, 6),IR(1, 0)}, // acosh in opencl_std_100 + {2,IR(10, 1),IR(48815, 7),IR(1, 0)}, // acospi in opencl_std_100 + {3,IR(10, 1),IR(48822, 5),IR(1, 0)}, // asin in opencl_std_100 + {4,IR(10, 1),IR(48827, 6),IR(1, 0)}, // asinh in opencl_std_100 + {5,IR(10, 1),IR(48833, 7),IR(1, 0)}, // asinpi in opencl_std_100 + {6,IR(10, 1),IR(48840, 5),IR(1, 0)}, // atan in opencl_std_100 + {7,IR(36, 2),IR(48845, 6),IR(1, 0)}, // atan2 in opencl_std_100 + {8,IR(10, 1),IR(48851, 6),IR(1, 0)}, // atanh in opencl_std_100 + {9,IR(10, 1),IR(48857, 7),IR(1, 0)}, // atanpi in opencl_std_100 + {10,IR(36, 2),IR(48864, 8),IR(1, 0)}, // atan2pi in opencl_std_100 + {11,IR(10, 1),IR(48872, 5),IR(1, 0)}, // cbrt in opencl_std_100 + {12,IR(10, 1),IR(48877, 5),IR(1, 0)}, // ceil in opencl_std_100 + {13,IR(36, 2),IR(48882, 9),IR(1, 0)}, // copysign in opencl_std_100 + {14,IR(10, 1),IR(48891, 4),IR(1, 0)}, // cos in opencl_std_100 + {15,IR(10, 1),IR(48895, 5),IR(1, 0)}, // cosh in opencl_std_100 + {16,IR(10, 1),IR(48900, 6),IR(1, 0)}, // cospi in opencl_std_100 + {17,IR(10, 1),IR(48906, 5),IR(1, 0)}, // erfc in opencl_std_100 + {18,IR(10, 1),IR(48911, 4),IR(1, 0)}, // erf in opencl_std_100 + {19,IR(10, 1),IR(48915, 4),IR(1, 0)}, // exp in opencl_std_100 + {20,IR(10, 1),IR(48919, 5),IR(1, 0)}, // exp2 in opencl_std_100 + {21,IR(10, 1),IR(48924, 6),IR(1, 0)}, // exp10 in opencl_std_100 + {22,IR(10, 1),IR(48930, 6),IR(1, 0)}, // expm1 in opencl_std_100 + {23,IR(10, 1),IR(48936, 5),IR(1, 0)}, // fabs in opencl_std_100 + {24,IR(36, 2),IR(48941, 5),IR(1, 0)}, // fdim in opencl_std_100 + {25,IR(10, 1),IR(48946, 6),IR(1, 0)}, // floor in opencl_std_100 + {26,IR(33, 3),IR(48952, 4),IR(1, 0)}, // fma in opencl_std_100 + {27,IR(36, 2),IR(48956, 5),IR(1, 0)}, // fmax in opencl_std_100 + {28,IR(36, 2),IR(48961, 5),IR(1, 0)}, // fmin in opencl_std_100 + {29,IR(36, 2),IR(48966, 5),IR(1, 0)}, // fmod in opencl_std_100 + {30,IR(36, 2),IR(48971, 6),IR(1, 0)}, // fract in opencl_std_100 + {31,IR(36, 2),IR(48977, 6),IR(1, 0)}, // frexp in opencl_std_100 + {32,IR(36, 2),IR(48983, 6),IR(1, 0)}, // hypot in opencl_std_100 + {33,IR(10, 1),IR(48989, 6),IR(1, 0)}, // ilogb in opencl_std_100 + {34,IR(36, 2),IR(48995, 6),IR(1, 0)}, // ldexp in opencl_std_100 + {35,IR(10, 1),IR(49001, 7),IR(1, 0)}, // lgamma in opencl_std_100 + {36,IR(36, 2),IR(49008, 9),IR(1, 0)}, // lgamma_r in opencl_std_100 + {37,IR(10, 1),IR(49017, 4),IR(1, 0)}, // log in opencl_std_100 + {38,IR(10, 1),IR(49021, 5),IR(1, 0)}, // log2 in opencl_std_100 + {39,IR(10, 1),IR(49026, 6),IR(1, 0)}, // log10 in opencl_std_100 + {40,IR(10, 1),IR(49032, 6),IR(1, 0)}, // log1p in opencl_std_100 + {41,IR(10, 1),IR(49038, 5),IR(1, 0)}, // logb in opencl_std_100 + {42,IR(33, 3),IR(49043, 4),IR(1, 0)}, // mad in opencl_std_100 + {43,IR(36, 2),IR(49047, 7),IR(1, 0)}, // maxmag in opencl_std_100 + {44,IR(36, 2),IR(49054, 7),IR(1, 0)}, // minmag in opencl_std_100 + {45,IR(36, 2),IR(49061, 5),IR(1, 0)}, // modf in opencl_std_100 + {46,IR(10, 1),IR(49066, 4),IR(1, 0)}, // nan in opencl_std_100 + {47,IR(36, 2),IR(49070, 10),IR(1, 0)}, // nextafter in opencl_std_100 + {48,IR(36, 2),IR(49080, 4),IR(1, 0)}, // pow in opencl_std_100 + {49,IR(36, 2),IR(49084, 5),IR(1, 0)}, // pown in opencl_std_100 + {50,IR(36, 2),IR(49089, 5),IR(1, 0)}, // powr in opencl_std_100 + {51,IR(36, 2),IR(49094, 10),IR(1, 0)}, // remainder in opencl_std_100 + {52,IR(33, 3),IR(49104, 7),IR(1, 0)}, // remquo in opencl_std_100 + {53,IR(10, 1),IR(49111, 5),IR(1, 0)}, // rint in opencl_std_100 + {54,IR(36, 2),IR(49116, 6),IR(1, 0)}, // rootn in opencl_std_100 + {55,IR(10, 1),IR(49122, 6),IR(1, 0)}, // round in opencl_std_100 + {56,IR(10, 1),IR(49128, 6),IR(1, 0)}, // rsqrt in opencl_std_100 + {57,IR(10, 1),IR(49134, 4),IR(1, 0)}, // sin in opencl_std_100 + {58,IR(36, 2),IR(49138, 7),IR(1, 0)}, // sincos in opencl_std_100 + {59,IR(10, 1),IR(49145, 5),IR(1, 0)}, // sinh in opencl_std_100 + {60,IR(10, 1),IR(49150, 6),IR(1, 0)}, // sinpi in opencl_std_100 + {61,IR(10, 1),IR(49156, 5),IR(1, 0)}, // sqrt in opencl_std_100 + {62,IR(10, 1),IR(49161, 4),IR(1, 0)}, // tan in opencl_std_100 + {63,IR(10, 1),IR(49165, 5),IR(1, 0)}, // tanh in opencl_std_100 + {64,IR(10, 1),IR(49170, 6),IR(1, 0)}, // tanpi in opencl_std_100 + {65,IR(10, 1),IR(49176, 7),IR(1, 0)}, // tgamma in opencl_std_100 + {66,IR(10, 1),IR(49183, 6),IR(1, 0)}, // trunc in opencl_std_100 + {67,IR(10, 1),IR(49189, 9),IR(1, 0)}, // half_cos in opencl_std_100 + {68,IR(36, 2),IR(49198, 12),IR(1, 0)}, // half_divide in opencl_std_100 + {69,IR(10, 1),IR(49210, 9),IR(1, 0)}, // half_exp in opencl_std_100 + {70,IR(10, 1),IR(49219, 10),IR(1, 0)}, // half_exp2 in opencl_std_100 + {71,IR(10, 1),IR(49229, 11),IR(1, 0)}, // half_exp10 in opencl_std_100 + {72,IR(10, 1),IR(49240, 9),IR(1, 0)}, // half_log in opencl_std_100 + {73,IR(10, 1),IR(49249, 10),IR(1, 0)}, // half_log2 in opencl_std_100 + {74,IR(10, 1),IR(49259, 11),IR(1, 0)}, // half_log10 in opencl_std_100 + {75,IR(36, 2),IR(49270, 10),IR(1, 0)}, // half_powr in opencl_std_100 + {76,IR(10, 1),IR(49280, 11),IR(1, 0)}, // half_recip in opencl_std_100 + {77,IR(10, 1),IR(49291, 11),IR(1, 0)}, // half_rsqrt in opencl_std_100 + {78,IR(10, 1),IR(49302, 9),IR(1, 0)}, // half_sin in opencl_std_100 + {79,IR(10, 1),IR(49311, 10),IR(1, 0)}, // half_sqrt in opencl_std_100 + {80,IR(10, 1),IR(49321, 9),IR(1, 0)}, // half_tan in opencl_std_100 + {81,IR(10, 1),IR(49330, 11),IR(1, 0)}, // native_cos in opencl_std_100 + {82,IR(36, 2),IR(49341, 14),IR(1, 0)}, // native_divide in opencl_std_100 + {83,IR(10, 1),IR(49355, 11),IR(1, 0)}, // native_exp in opencl_std_100 + {84,IR(10, 1),IR(49366, 12),IR(1, 0)}, // native_exp2 in opencl_std_100 + {85,IR(10, 1),IR(49378, 13),IR(1, 0)}, // native_exp10 in opencl_std_100 + {86,IR(10, 1),IR(49391, 11),IR(1, 0)}, // native_log in opencl_std_100 + {87,IR(10, 1),IR(49402, 12),IR(1, 0)}, // native_log2 in opencl_std_100 + {88,IR(10, 1),IR(49414, 13),IR(1, 0)}, // native_log10 in opencl_std_100 + {89,IR(36, 2),IR(49427, 12),IR(1, 0)}, // native_powr in opencl_std_100 + {90,IR(10, 1),IR(49439, 13),IR(1, 0)}, // native_recip in opencl_std_100 + {91,IR(10, 1),IR(49452, 13),IR(1, 0)}, // native_rsqrt in opencl_std_100 + {92,IR(10, 1),IR(49465, 11),IR(1, 0)}, // native_sin in opencl_std_100 + {93,IR(10, 1),IR(49476, 12),IR(1, 0)}, // native_sqrt in opencl_std_100 + {94,IR(10, 1),IR(49488, 11),IR(1, 0)}, // native_tan in opencl_std_100 + {95,IR(33, 3),IR(49499, 7),IR(1, 0)}, // fclamp in opencl_std_100 + {96,IR(10, 1),IR(49506, 8),IR(1, 0)}, // degrees in opencl_std_100 + {97,IR(36, 2),IR(49514, 12),IR(1, 0)}, // fmax_common in opencl_std_100 + {98,IR(36, 2),IR(49526, 12),IR(1, 0)}, // fmin_common in opencl_std_100 + {99,IR(33, 3),IR(49538, 4),IR(1, 0)}, // mix in opencl_std_100 + {100,IR(10, 1),IR(49542, 8),IR(1, 0)}, // radians in opencl_std_100 + {101,IR(36, 2),IR(49550, 5),IR(1, 0)}, // step in opencl_std_100 + {102,IR(33, 3),IR(49555, 11),IR(1, 0)}, // smoothstep in opencl_std_100 + {103,IR(10, 1),IR(49566, 5),IR(1, 0)}, // sign in opencl_std_100 + {104,IR(36, 2),IR(49571, 6),IR(1, 0)}, // cross in opencl_std_100 + {105,IR(36, 2),IR(49577, 9),IR(1, 0)}, // distance in opencl_std_100 + {106,IR(10, 1),IR(49586, 7),IR(1, 0)}, // length in opencl_std_100 + {107,IR(10, 1),IR(49593, 10),IR(1, 0)}, // normalize in opencl_std_100 + {108,IR(36, 2),IR(49603, 14),IR(1, 0)}, // fast_distance in opencl_std_100 + {109,IR(10, 1),IR(49617, 12),IR(1, 0)}, // fast_length in opencl_std_100 + {110,IR(10, 1),IR(49629, 15),IR(1, 0)}, // fast_normalize in opencl_std_100 + {141,IR(10, 1),IR(49644, 6),IR(1, 0)}, // s_abs in opencl_std_100 + {142,IR(36, 2),IR(49650, 11),IR(1, 0)}, // s_abs_diff in opencl_std_100 + {143,IR(36, 2),IR(49661, 10),IR(1, 0)}, // s_add_sat in opencl_std_100 + {144,IR(36, 2),IR(49671, 10),IR(1, 0)}, // u_add_sat in opencl_std_100 + {145,IR(36, 2),IR(49681, 7),IR(1, 0)}, // s_hadd in opencl_std_100 + {146,IR(36, 2),IR(49688, 7),IR(1, 0)}, // u_hadd in opencl_std_100 + {147,IR(36, 2),IR(49695, 8),IR(1, 0)}, // s_rhadd in opencl_std_100 + {148,IR(36, 2),IR(49703, 8),IR(1, 0)}, // u_rhadd in opencl_std_100 + {149,IR(33, 3),IR(49711, 8),IR(1, 0)}, // s_clamp in opencl_std_100 + {150,IR(33, 3),IR(49719, 8),IR(1, 0)}, // u_clamp in opencl_std_100 + {151,IR(10, 1),IR(49727, 4),IR(1, 0)}, // clz in opencl_std_100 + {152,IR(10, 1),IR(49731, 4),IR(1, 0)}, // ctz in opencl_std_100 + {153,IR(33, 3),IR(49735, 9),IR(1, 0)}, // s_mad_hi in opencl_std_100 + {154,IR(33, 3),IR(49744, 10),IR(1, 0)}, // u_mad_sat in opencl_std_100 + {155,IR(33, 3),IR(49754, 10),IR(1, 0)}, // s_mad_sat in opencl_std_100 + {156,IR(36, 2),IR(49764, 6),IR(1, 0)}, // s_max in opencl_std_100 + {157,IR(36, 2),IR(49770, 6),IR(1, 0)}, // u_max in opencl_std_100 + {158,IR(36, 2),IR(49776, 6),IR(1, 0)}, // s_min in opencl_std_100 + {159,IR(36, 2),IR(49782, 6),IR(1, 0)}, // u_min in opencl_std_100 + {160,IR(36, 2),IR(49788, 9),IR(1, 0)}, // s_mul_hi in opencl_std_100 + {161,IR(36, 2),IR(49797, 7),IR(1, 0)}, // rotate in opencl_std_100 + {162,IR(36, 2),IR(49804, 10),IR(1, 0)}, // s_sub_sat in opencl_std_100 + {163,IR(36, 2),IR(49814, 10),IR(1, 0)}, // u_sub_sat in opencl_std_100 + {164,IR(36, 2),IR(49824, 11),IR(1, 0)}, // u_upsample in opencl_std_100 + {165,IR(36, 2),IR(49835, 11),IR(1, 0)}, // s_upsample in opencl_std_100 + {166,IR(10, 1),IR(49846, 9),IR(1, 0)}, // popcount in opencl_std_100 + {167,IR(33, 3),IR(49855, 8),IR(1, 0)}, // s_mad24 in opencl_std_100 + {168,IR(33, 3),IR(49863, 8),IR(1, 0)}, // u_mad24 in opencl_std_100 + {169,IR(36, 2),IR(49871, 8),IR(1, 0)}, // s_mul24 in opencl_std_100 + {170,IR(36, 2),IR(49879, 8),IR(1, 0)}, // u_mul24 in opencl_std_100 + {171,IR(1106, 3),IR(49887, 7),IR(1, 0)}, // vloadn in opencl_std_100 + {172,IR(33, 3),IR(49894, 8),IR(1, 0)}, // vstoren in opencl_std_100 + {173,IR(36, 2),IR(49902, 11),IR(1, 0)}, // vload_half in opencl_std_100 + {174,IR(1106, 3),IR(49913, 12),IR(1, 0)}, // vload_halfn in opencl_std_100 + {175,IR(33, 3),IR(49925, 12),IR(1, 0)}, // vstore_half in opencl_std_100 + {176,IR(1109, 4),IR(49937, 14),IR(1, 0)}, // vstore_half_r in opencl_std_100 + {177,IR(33, 3),IR(49951, 13),IR(1, 0)}, // vstore_halfn in opencl_std_100 + {178,IR(1109, 4),IR(49964, 15),IR(1, 0)}, // vstore_halfn_r in opencl_std_100 + {179,IR(1106, 3),IR(49979, 13),IR(1, 0)}, // vloada_halfn in opencl_std_100 + {180,IR(33, 3),IR(49992, 14),IR(1, 0)}, // vstorea_halfn in opencl_std_100 + {181,IR(1109, 4),IR(50006, 16),IR(1, 0)}, // vstorea_halfn_r in opencl_std_100 + {182,IR(36, 2),IR(50022, 8),IR(1, 0)}, // shuffle in opencl_std_100 + {183,IR(33, 3),IR(50030, 9),IR(1, 0)}, // shuffle2 in opencl_std_100 + {184,IR(168, 2),IR(50039, 7),IR(1, 0)}, // printf in opencl_std_100 + {185,IR(36, 2),IR(50046, 9),IR(1, 0)}, // prefetch in opencl_std_100 + {186,IR(33, 3),IR(50055, 10),IR(1, 0)}, // bitselect in opencl_std_100 + {187,IR(33, 3),IR(50065, 7),IR(1, 0)}, // select in opencl_std_100 + {201,IR(10, 1),IR(50072, 6),IR(1, 0)}, // u_abs in opencl_std_100 + {202,IR(36, 2),IR(50078, 11),IR(1, 0)}, // u_abs_diff in opencl_std_100 + {203,IR(36, 2),IR(50089, 9),IR(1, 0)}, // u_mul_hi in opencl_std_100 + {204,IR(33, 3),IR(50098, 9),IR(1, 0)}, // u_mad_hi in opencl_std_100 + {1,IR(10, 1),IR(50107, 17),IR(1, 0)}, // CubeFaceIndexAMD in spv_amd_gcn_shader + {2,IR(10, 1),IR(50124, 17),IR(1, 0)}, // CubeFaceCoordAMD in spv_amd_gcn_shader + {3,IR(0, 0),IR(50141, 8),IR(1, 0)}, // TimeAMD in spv_amd_gcn_shader + {1,IR(36, 2),IR(50149, 22),IR(1, 0)}, // SwizzleInvocationsAMD in spv_amd_shader_ballot + {2,IR(36, 2),IR(50171, 28),IR(1, 0)}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot + {3,IR(33, 3),IR(50199, 19),IR(1, 0)}, // WriteInvocationAMD in spv_amd_shader_ballot + {4,IR(10, 1),IR(50218, 9),IR(1, 0)}, // MbcntAMD in spv_amd_shader_ballot + {1,IR(36, 2),IR(50227, 23),IR(1, 0)}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter + {1,IR(33, 3),IR(50250, 9),IR(1, 0)}, // FMin3AMD in spv_amd_shader_trinary_minmax + {2,IR(33, 3),IR(50259, 9),IR(1, 0)}, // UMin3AMD in spv_amd_shader_trinary_minmax + {3,IR(33, 3),IR(50268, 9),IR(1, 0)}, // SMin3AMD in spv_amd_shader_trinary_minmax + {4,IR(33, 3),IR(50277, 9),IR(1, 0)}, // FMax3AMD in spv_amd_shader_trinary_minmax + {5,IR(33, 3),IR(50286, 9),IR(1, 0)}, // UMax3AMD in spv_amd_shader_trinary_minmax + {6,IR(33, 3),IR(50295, 9),IR(1, 0)}, // SMax3AMD in spv_amd_shader_trinary_minmax + {7,IR(33, 3),IR(50304, 9),IR(1, 0)}, // FMid3AMD in spv_amd_shader_trinary_minmax + {8,IR(33, 3),IR(50313, 9),IR(1, 0)}, // UMid3AMD in spv_amd_shader_trinary_minmax + {9,IR(33, 3),IR(50322, 9),IR(1, 0)}, // SMid3AMD in spv_amd_shader_trinary_minmax }}; IndexRange ExtInstByValueRangeForKind(spv_ext_inst_type_t type) { @@ -5086,431 +5147,431 @@ IndexRange ExtInstByValueRangeForKind(spv_ext_inst_type_t type) { // name // index into kExtInstByValue static const std::array kExtInstNames{{ - {IR(44908, 21), 1}, // DebugCompilationUnit in debuginfo - {IR(45635, 13), 28}, // DebugDeclare in debuginfo - {IR(45707, 16), 31}, // DebugExpression in debuginfo - {IR(45451, 14), 20}, // DebugFunction in debuginfo - {IR(45426, 25), 19}, // DebugFunctionDeclaration in debuginfo - {IR(45406, 20), 18}, // DebugGlobalVariable in debuginfo - {IR(44894, 14), 0}, // DebugInfoNone in debuginfo - {IR(45538, 15), 25}, // DebugInlinedAt in debuginfo - {IR(45614, 21), 27}, // DebugInlinedVariable in debuginfo - {IR(45465, 18), 21}, // DebugLexicalBlock in debuginfo - {IR(45483, 31), 22}, // DebugLexicalBlockDiscriminator in debuginfo - {IR(45595, 19), 26}, // DebugLocalVariable in debuginfo - {IR(45723, 14), 32}, // DebugMacroDef in debuginfo - {IR(45737, 16), 33}, // DebugMacroUndef in debuginfo - {IR(45525, 13), 24}, // DebugNoScope in debuginfo - {IR(45692, 15), 30}, // DebugOperation in debuginfo - {IR(45514, 11), 23}, // DebugScope in debuginfo - {IR(45104, 15), 5}, // DebugTypeArray in debuginfo - {IR(44981, 15), 2}, // DebugTypeBasic in debuginfo - {IR(45218, 19), 10}, // DebugTypeComposite in debuginfo - {IR(45166, 14), 9}, // DebugTypeEnum in debuginfo - {IR(45148, 18), 8}, // DebugTypeFunction in debuginfo - {IR(45253, 21), 12}, // DebugTypeInheritance in debuginfo - {IR(45237, 16), 11}, // DebugTypeMember in debuginfo - {IR(45030, 17), 3}, // DebugTypePointer in debuginfo - {IR(45274, 21), 13}, // DebugTypePtrToMember in debuginfo - {IR(45085, 19), 4}, // DebugTypeQualifier in debuginfo - {IR(45295, 18), 14}, // DebugTypeTemplate in debuginfo - {IR(45313, 27), 15}, // DebugTypeTemplateParameter in debuginfo - {IR(45375, 31), 17}, // DebugTypeTemplateParameterPack in debuginfo - {IR(45340, 35), 16}, // DebugTypeTemplateTemplateParameter in debuginfo - {IR(45119, 16), 6}, // DebugTypeVector in debuginfo - {IR(45135, 13), 7}, // DebugTypedef in debuginfo - {IR(45648, 11), 29}, // DebugValue in debuginfo - {IR(45847, 5), 50}, // Acos in glsl_std_450 - {IR(45878, 6), 56}, // Acosh in glsl_std_450 - {IR(45842, 5), 49}, // Asin in glsl_std_450 - {IR(45872, 6), 55}, // Asinh in glsl_std_450 - {IR(45852, 5), 51}, // Atan in glsl_std_450 - {IR(45890, 6), 58}, // Atan2 in glsl_std_450 - {IR(45884, 6), 57}, // Atanh in glsl_std_450 - {IR(45803, 5), 42}, // Ceil in glsl_std_450 - {IR(45834, 4), 47}, // Cos in glsl_std_450 - {IR(45862, 5), 53}, // Cosh in glsl_std_450 - {IR(46274, 6), 101}, // Cross in glsl_std_450 - {IR(45822, 8), 45}, // Degrees in glsl_std_450 - {IR(45935, 12), 66}, // Determinant in glsl_std_450 - {IR(46265, 9), 100}, // Distance in glsl_std_450 - {IR(45900, 4), 60}, // Exp in glsl_std_450 - {IR(45908, 5), 62}, // Exp2 in glsl_std_450 - {IR(45775, 5), 37}, // FAbs in glsl_std_450 - {IR(46007, 7), 76}, // FClamp in glsl_std_450 - {IR(45992, 5), 73}, // FMax in glsl_std_450 - {IR(45977, 5), 70}, // FMin in glsl_std_450 - {IR(46028, 5), 79}, // FMix in glsl_std_450 - {IR(45785, 6), 39}, // FSign in glsl_std_450 - {IR(46290, 12), 103}, // FaceForward in glsl_std_450 - {IR(46318, 9), 106}, // FindILsb in glsl_std_450 - {IR(46327, 9), 107}, // FindSMsb in glsl_std_450 - {IR(46336, 9), 108}, // FindUMsb in glsl_std_450 - {IR(45797, 6), 41}, // Floor in glsl_std_450 - {IR(46054, 4), 83}, // Fma in glsl_std_450 - {IR(45808, 6), 43}, // Fract in glsl_std_450 - {IR(46058, 6), 84}, // Frexp in glsl_std_450 - {IR(46064, 12), 85}, // FrexpStruct in glsl_std_450 - {IR(46033, 5), 80}, // IMix in glsl_std_450 - {IR(46345, 22), 109}, // InterpolateAtCentroid in glsl_std_450 - {IR(46387, 20), 111}, // InterpolateAtOffset in glsl_std_450 - {IR(46367, 20), 110}, // InterpolateAtSample in glsl_std_450 - {IR(45923, 12), 65}, // InverseSqrt in glsl_std_450 - {IR(46076, 6), 86}, // Ldexp in glsl_std_450 - {IR(46258, 7), 99}, // Length in glsl_std_450 - {IR(45904, 4), 61}, // Log in glsl_std_450 - {IR(45913, 5), 63}, // Log2 in glsl_std_450 - {IR(45947, 14), 67}, // MatrixInverse in glsl_std_450 - {IR(45961, 5), 68}, // Modf in glsl_std_450 - {IR(45966, 11), 69}, // ModfStruct in glsl_std_450 - {IR(46417, 7), 114}, // NClamp in glsl_std_450 - {IR(46412, 5), 113}, // NMax in glsl_std_450 - {IR(46407, 5), 112}, // NMin in glsl_std_450 - {IR(46280, 10), 102}, // Normalize in glsl_std_450 - {IR(46149, 15), 92}, // PackDouble2x32 in glsl_std_450 - {IR(46136, 13), 91}, // PackHalf2x16 in glsl_std_450 - {IR(46108, 14), 89}, // PackSnorm2x16 in glsl_std_450 - {IR(46082, 13), 87}, // PackSnorm4x8 in glsl_std_450 - {IR(46122, 14), 90}, // PackUnorm2x16 in glsl_std_450 - {IR(46095, 13), 88}, // PackUnorm4x8 in glsl_std_450 - {IR(45896, 4), 59}, // Pow in glsl_std_450 - {IR(45814, 8), 44}, // Radians in glsl_std_450 - {IR(46302, 8), 104}, // Reflect in glsl_std_450 - {IR(46310, 8), 105}, // Refract in glsl_std_450 - {IR(45753, 6), 34}, // Round in glsl_std_450 - {IR(45759, 10), 35}, // RoundEven in glsl_std_450 - {IR(45780, 5), 38}, // SAbs in glsl_std_450 - {IR(46021, 7), 78}, // SClamp in glsl_std_450 - {IR(46002, 5), 75}, // SMax in glsl_std_450 - {IR(45987, 5), 72}, // SMin in glsl_std_450 - {IR(45791, 6), 40}, // SSign in glsl_std_450 - {IR(45830, 4), 46}, // Sin in glsl_std_450 - {IR(45857, 5), 52}, // Sinh in glsl_std_450 - {IR(46043, 11), 82}, // SmoothStep in glsl_std_450 - {IR(45918, 5), 64}, // Sqrt in glsl_std_450 - {IR(46038, 5), 81}, // Step in glsl_std_450 - {IR(45838, 4), 48}, // Tan in glsl_std_450 - {IR(45867, 5), 54}, // Tanh in glsl_std_450 - {IR(45769, 6), 36}, // Trunc in glsl_std_450 - {IR(46014, 7), 77}, // UClamp in glsl_std_450 - {IR(45997, 5), 74}, // UMax in glsl_std_450 - {IR(45982, 5), 71}, // UMin in glsl_std_450 - {IR(46241, 17), 98}, // UnpackDouble2x32 in glsl_std_450 - {IR(46196, 15), 95}, // UnpackHalf2x16 in glsl_std_450 - {IR(46164, 16), 93}, // UnpackSnorm2x16 in glsl_std_450 - {IR(46211, 15), 96}, // UnpackSnorm4x8 in glsl_std_450 - {IR(46180, 16), 94}, // UnpackUnorm2x16 in glsl_std_450 - {IR(46226, 15), 97}, // UnpackUnorm4x8 in glsl_std_450 - {IR(46424, 13), 116}, // ArgumentInfo in nonsemantic_clspvreflection - {IR(46519, 24), 121}, // ArgumentPodPushConstant in nonsemantic_clspvreflection - {IR(46475, 25), 119}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection - {IR(46500, 19), 120}, // ArgumentPodUniform in nonsemantic_clspvreflection - {IR(46953, 28), 140}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection - {IR(46981, 23), 141}, // ArgumentPointerUniform in nonsemantic_clspvreflection - {IR(46543, 21), 122}, // ArgumentSampledImage in nonsemantic_clspvreflection - {IR(46585, 16), 124}, // ArgumentSampler in nonsemantic_clspvreflection - {IR(46437, 22), 117}, // ArgumentStorageBuffer in nonsemantic_clspvreflection - {IR(46564, 21), 123}, // ArgumentStorageImage in nonsemantic_clspvreflection - {IR(47241, 27), 148}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection - {IR(46459, 16), 118}, // ArgumentUniform in nonsemantic_clspvreflection - {IR(47268, 27), 149}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection - {IR(46601, 18), 125}, // ArgumentWorkgroup in nonsemantic_clspvreflection - {IR(47295, 32), 150}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection - {IR(46849, 26), 135}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection - {IR(46875, 20), 136}, // ConstantDataUniform in nonsemantic_clspvreflection - {IR(47119, 45), 145}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection - {IR(47201, 40), 147}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection - {IR(47077, 42), 144}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection - {IR(47164, 37), 146}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection - {IR(4549, 7), 115}, // Kernel in nonsemantic_clspvreflection - {IR(7974, 15), 137}, // LiteralSampler in nonsemantic_clspvreflection - {IR(47436, 34), 155}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection - {IR(47404, 32), 154}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection - {IR(47378, 26), 153}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection - {IR(47367, 11), 152}, // PrintfInfo in nonsemantic_clspvreflection - {IR(47327, 40), 151}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection - {IR(47039, 38), 143}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection - {IR(47004, 35), 142}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection - {IR(46895, 30), 138}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection - {IR(46715, 30), 130}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection - {IR(46690, 25), 129}, // PushConstantGlobalOffset in nonsemantic_clspvreflection - {IR(46745, 23), 131}, // PushConstantGlobalSize in nonsemantic_clspvreflection - {IR(46793, 26), 133}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection - {IR(46819, 30), 134}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection - {IR(46768, 25), 132}, // PushConstantRegionOffset in nonsemantic_clspvreflection - {IR(46645, 25), 127}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection - {IR(46925, 28), 139}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection - {IR(46670, 20), 128}, // SpecConstantWorkDim in nonsemantic_clspvreflection - {IR(46619, 26), 126}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection - {IR(47470, 22), 156}, // WorkgroupVariableSize in nonsemantic_clspvreflection - {IR(47591, 21), 197}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 - {IR(44908, 21), 158}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 - {IR(45635, 13), 185}, // DebugDeclare in nonsemantic_shader_debuginfo_100 - {IR(47629, 16), 199}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 - {IR(45707, 16), 188}, // DebugExpression in nonsemantic_shader_debuginfo_100 - {IR(45451, 14), 177}, // DebugFunction in nonsemantic_shader_debuginfo_100 - {IR(45426, 25), 176}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 - {IR(47524, 24), 193}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 - {IR(45406, 20), 175}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 - {IR(47492, 20), 191}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 - {IR(44894, 14), 157}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 - {IR(45538, 15), 182}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 - {IR(45614, 21), 184}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 - {IR(45465, 18), 178}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 - {IR(45483, 31), 179}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 - {IR(47569, 10), 195}, // DebugLine in nonsemantic_shader_debuginfo_100 - {IR(45595, 19), 183}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 - {IR(45723, 14), 189}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 - {IR(45737, 16), 190}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 - {IR(47579, 12), 196}, // DebugNoLine in nonsemantic_shader_debuginfo_100 - {IR(45525, 13), 181}, // DebugNoScope in nonsemantic_shader_debuginfo_100 - {IR(45692, 15), 187}, // DebugOperation in nonsemantic_shader_debuginfo_100 - {IR(45514, 11), 180}, // DebugScope in nonsemantic_shader_debuginfo_100 - {IR(47512, 12), 192}, // DebugSource in nonsemantic_shader_debuginfo_100 - {IR(47548, 21), 194}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 - {IR(47612, 17), 198}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 - {IR(45104, 15), 162}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 - {IR(44981, 15), 159}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 - {IR(45218, 19), 167}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 - {IR(45166, 14), 166}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 - {IR(45148, 18), 165}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 - {IR(45253, 21), 169}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 - {IR(47645, 16), 200}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 - {IR(45237, 16), 168}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 - {IR(45030, 17), 160}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 - {IR(45274, 21), 170}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 - {IR(45085, 19), 161}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 - {IR(45295, 18), 171}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 - {IR(45313, 27), 172}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 - {IR(45375, 31), 174}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 - {IR(45340, 35), 173}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 - {IR(45119, 16), 163}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 - {IR(45135, 13), 164}, // DebugTypedef in nonsemantic_shader_debuginfo_100 - {IR(45648, 11), 186}, // DebugValue in nonsemantic_shader_debuginfo_100 - {IR(47661, 14), 201}, // Configuration in nonsemantic_vkspreflection - {IR(47737, 20), 206}, // DescriptorSetBuffer in nonsemantic_vkspreflection - {IR(47757, 19), 207}, // DescriptorSetImage in nonsemantic_vkspreflection - {IR(47776, 21), 208}, // DescriptorSetSampler in nonsemantic_vkspreflection - {IR(47700, 14), 204}, // PushConstants in nonsemantic_vkspreflection - {IR(47714, 23), 205}, // SpecializationMapEntry in nonsemantic_vkspreflection - {IR(47675, 13), 202}, // StartCounter in nonsemantic_vkspreflection - {IR(47688, 12), 203}, // StopCounter in nonsemantic_vkspreflection - {IR(44908, 21), 210}, // DebugCompilationUnit in opencl_debuginfo_100 - {IR(45635, 13), 237}, // DebugDeclare in opencl_debuginfo_100 - {IR(45707, 16), 240}, // DebugExpression in opencl_debuginfo_100 - {IR(45451, 14), 229}, // DebugFunction in opencl_debuginfo_100 - {IR(45426, 25), 228}, // DebugFunctionDeclaration in opencl_debuginfo_100 - {IR(45406, 20), 227}, // DebugGlobalVariable in opencl_debuginfo_100 - {IR(47492, 20), 243}, // DebugImportedEntity in opencl_debuginfo_100 - {IR(44894, 14), 209}, // DebugInfoNone in opencl_debuginfo_100 - {IR(45538, 15), 234}, // DebugInlinedAt in opencl_debuginfo_100 - {IR(45614, 21), 236}, // DebugInlinedVariable in opencl_debuginfo_100 - {IR(45465, 18), 230}, // DebugLexicalBlock in opencl_debuginfo_100 - {IR(45483, 31), 231}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 - {IR(45595, 19), 235}, // DebugLocalVariable in opencl_debuginfo_100 - {IR(45723, 14), 241}, // DebugMacroDef in opencl_debuginfo_100 - {IR(45737, 16), 242}, // DebugMacroUndef in opencl_debuginfo_100 - {IR(48097, 17), 245}, // DebugModuleINTEL in opencl_debuginfo_100 - {IR(45525, 13), 233}, // DebugNoScope in opencl_debuginfo_100 - {IR(45692, 15), 239}, // DebugOperation in opencl_debuginfo_100 - {IR(45514, 11), 232}, // DebugScope in opencl_debuginfo_100 - {IR(47512, 12), 244}, // DebugSource in opencl_debuginfo_100 - {IR(45104, 15), 214}, // DebugTypeArray in opencl_debuginfo_100 - {IR(44981, 15), 211}, // DebugTypeBasic in opencl_debuginfo_100 - {IR(45218, 19), 219}, // DebugTypeComposite in opencl_debuginfo_100 - {IR(45166, 14), 218}, // DebugTypeEnum in opencl_debuginfo_100 - {IR(45148, 18), 217}, // DebugTypeFunction in opencl_debuginfo_100 - {IR(45253, 21), 221}, // DebugTypeInheritance in opencl_debuginfo_100 - {IR(45237, 16), 220}, // DebugTypeMember in opencl_debuginfo_100 - {IR(45030, 17), 212}, // DebugTypePointer in opencl_debuginfo_100 - {IR(45274, 21), 222}, // DebugTypePtrToMember in opencl_debuginfo_100 - {IR(45085, 19), 213}, // DebugTypeQualifier in opencl_debuginfo_100 - {IR(45295, 18), 223}, // DebugTypeTemplate in opencl_debuginfo_100 - {IR(45313, 27), 224}, // DebugTypeTemplateParameter in opencl_debuginfo_100 - {IR(45375, 31), 226}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 - {IR(45340, 35), 225}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 - {IR(45119, 16), 215}, // DebugTypeVector in opencl_debuginfo_100 - {IR(45135, 13), 216}, // DebugTypedef in opencl_debuginfo_100 - {IR(45648, 11), 238}, // DebugValue in opencl_debuginfo_100 - {IR(48114, 5), 246}, // acos in opencl_std_100 - {IR(48119, 6), 247}, // acosh in opencl_std_100 - {IR(48125, 7), 248}, // acospi in opencl_std_100 - {IR(48132, 5), 249}, // asin in opencl_std_100 - {IR(48137, 6), 250}, // asinh in opencl_std_100 - {IR(48143, 7), 251}, // asinpi in opencl_std_100 - {IR(48150, 5), 252}, // atan in opencl_std_100 - {IR(48155, 6), 253}, // atan2 in opencl_std_100 - {IR(48174, 8), 256}, // atan2pi in opencl_std_100 - {IR(48161, 6), 254}, // atanh in opencl_std_100 - {IR(48167, 7), 255}, // atanpi in opencl_std_100 - {IR(49365, 10), 402}, // bitselect in opencl_std_100 - {IR(48182, 5), 257}, // cbrt in opencl_std_100 - {IR(48187, 5), 258}, // ceil in opencl_std_100 - {IR(49037, 4), 367}, // clz in opencl_std_100 - {IR(48192, 9), 259}, // copysign in opencl_std_100 - {IR(48201, 4), 260}, // cos in opencl_std_100 - {IR(48205, 5), 261}, // cosh in opencl_std_100 - {IR(48210, 6), 262}, // cospi in opencl_std_100 - {IR(48881, 6), 350}, // cross in opencl_std_100 - {IR(49041, 4), 368}, // ctz in opencl_std_100 - {IR(48816, 8), 342}, // degrees in opencl_std_100 - {IR(48887, 9), 351}, // distance in opencl_std_100 - {IR(48221, 4), 264}, // erf in opencl_std_100 - {IR(48216, 5), 263}, // erfc in opencl_std_100 - {IR(48225, 4), 265}, // exp in opencl_std_100 - {IR(48234, 6), 267}, // exp10 in opencl_std_100 - {IR(48229, 5), 266}, // exp2 in opencl_std_100 - {IR(48240, 6), 268}, // expm1 in opencl_std_100 - {IR(48246, 5), 269}, // fabs in opencl_std_100 - {IR(48913, 14), 354}, // fast_distance in opencl_std_100 - {IR(48927, 12), 355}, // fast_length in opencl_std_100 - {IR(48939, 15), 356}, // fast_normalize in opencl_std_100 - {IR(48809, 7), 341}, // fclamp in opencl_std_100 - {IR(48251, 5), 270}, // fdim in opencl_std_100 - {IR(48256, 6), 271}, // floor in opencl_std_100 - {IR(48262, 4), 272}, // fma in opencl_std_100 - {IR(48266, 5), 273}, // fmax in opencl_std_100 - {IR(48824, 12), 343}, // fmax_common in opencl_std_100 - {IR(48271, 5), 274}, // fmin in opencl_std_100 - {IR(48836, 12), 344}, // fmin_common in opencl_std_100 - {IR(48276, 5), 275}, // fmod in opencl_std_100 - {IR(48281, 6), 276}, // fract in opencl_std_100 - {IR(48287, 6), 277}, // frexp in opencl_std_100 - {IR(48499, 9), 313}, // half_cos in opencl_std_100 - {IR(48508, 12), 314}, // half_divide in opencl_std_100 - {IR(48520, 9), 315}, // half_exp in opencl_std_100 - {IR(48539, 11), 317}, // half_exp10 in opencl_std_100 - {IR(48529, 10), 316}, // half_exp2 in opencl_std_100 - {IR(48550, 9), 318}, // half_log in opencl_std_100 - {IR(48569, 11), 320}, // half_log10 in opencl_std_100 - {IR(48559, 10), 319}, // half_log2 in opencl_std_100 - {IR(48580, 10), 321}, // half_powr in opencl_std_100 - {IR(48590, 11), 322}, // half_recip in opencl_std_100 - {IR(48601, 11), 323}, // half_rsqrt in opencl_std_100 - {IR(48612, 9), 324}, // half_sin in opencl_std_100 - {IR(48621, 10), 325}, // half_sqrt in opencl_std_100 - {IR(48631, 9), 326}, // half_tan in opencl_std_100 - {IR(48293, 6), 278}, // hypot in opencl_std_100 - {IR(48299, 6), 279}, // ilogb in opencl_std_100 - {IR(48305, 6), 280}, // ldexp in opencl_std_100 - {IR(48896, 7), 352}, // length in opencl_std_100 - {IR(48311, 7), 281}, // lgamma in opencl_std_100 - {IR(48318, 9), 282}, // lgamma_r in opencl_std_100 - {IR(48327, 4), 283}, // log in opencl_std_100 - {IR(48336, 6), 285}, // log10 in opencl_std_100 - {IR(48342, 6), 286}, // log1p in opencl_std_100 - {IR(48331, 5), 284}, // log2 in opencl_std_100 - {IR(48348, 5), 287}, // logb in opencl_std_100 - {IR(48353, 4), 288}, // mad in opencl_std_100 - {IR(48357, 7), 289}, // maxmag in opencl_std_100 - {IR(48364, 7), 290}, // minmag in opencl_std_100 - {IR(48848, 4), 345}, // mix in opencl_std_100 - {IR(48371, 5), 291}, // modf in opencl_std_100 - {IR(48376, 4), 292}, // nan in opencl_std_100 - {IR(48640, 11), 327}, // native_cos in opencl_std_100 - {IR(48651, 14), 328}, // native_divide in opencl_std_100 - {IR(48665, 11), 329}, // native_exp in opencl_std_100 - {IR(48688, 13), 331}, // native_exp10 in opencl_std_100 - {IR(48676, 12), 330}, // native_exp2 in opencl_std_100 - {IR(48701, 11), 332}, // native_log in opencl_std_100 - {IR(48724, 13), 334}, // native_log10 in opencl_std_100 - {IR(48712, 12), 333}, // native_log2 in opencl_std_100 - {IR(48737, 12), 335}, // native_powr in opencl_std_100 - {IR(48749, 13), 336}, // native_recip in opencl_std_100 - {IR(48762, 13), 337}, // native_rsqrt in opencl_std_100 - {IR(48775, 11), 338}, // native_sin in opencl_std_100 - {IR(48786, 12), 339}, // native_sqrt in opencl_std_100 - {IR(48798, 11), 340}, // native_tan in opencl_std_100 - {IR(48380, 10), 293}, // nextafter in opencl_std_100 - {IR(48903, 10), 353}, // normalize in opencl_std_100 - {IR(49156, 9), 382}, // popcount in opencl_std_100 - {IR(48390, 4), 294}, // pow in opencl_std_100 - {IR(48394, 5), 295}, // pown in opencl_std_100 - {IR(48399, 5), 296}, // powr in opencl_std_100 - {IR(49356, 9), 401}, // prefetch in opencl_std_100 - {IR(49349, 7), 400}, // printf in opencl_std_100 - {IR(48852, 8), 346}, // radians in opencl_std_100 - {IR(48404, 10), 297}, // remainder in opencl_std_100 - {IR(48414, 7), 298}, // remquo in opencl_std_100 - {IR(48421, 5), 299}, // rint in opencl_std_100 - {IR(48426, 6), 300}, // rootn in opencl_std_100 - {IR(49107, 7), 377}, // rotate in opencl_std_100 - {IR(48432, 6), 301}, // round in opencl_std_100 - {IR(48438, 6), 302}, // rsqrt in opencl_std_100 - {IR(48954, 6), 357}, // s_abs in opencl_std_100 - {IR(48960, 11), 358}, // s_abs_diff in opencl_std_100 - {IR(48971, 10), 359}, // s_add_sat in opencl_std_100 - {IR(49021, 8), 365}, // s_clamp in opencl_std_100 - {IR(48991, 7), 361}, // s_hadd in opencl_std_100 - {IR(49165, 8), 383}, // s_mad24 in opencl_std_100 - {IR(49045, 9), 369}, // s_mad_hi in opencl_std_100 - {IR(49064, 10), 371}, // s_mad_sat in opencl_std_100 - {IR(49074, 6), 372}, // s_max in opencl_std_100 - {IR(49086, 6), 374}, // s_min in opencl_std_100 - {IR(49181, 8), 385}, // s_mul24 in opencl_std_100 - {IR(49098, 9), 376}, // s_mul_hi in opencl_std_100 - {IR(49005, 8), 363}, // s_rhadd in opencl_std_100 - {IR(49114, 10), 378}, // s_sub_sat in opencl_std_100 - {IR(49145, 11), 381}, // s_upsample in opencl_std_100 - {IR(49375, 7), 403}, // select in opencl_std_100 - {IR(49332, 8), 398}, // shuffle in opencl_std_100 - {IR(49340, 9), 399}, // shuffle2 in opencl_std_100 - {IR(48876, 5), 349}, // sign in opencl_std_100 - {IR(48444, 4), 303}, // sin in opencl_std_100 - {IR(48448, 7), 304}, // sincos in opencl_std_100 - {IR(48455, 5), 305}, // sinh in opencl_std_100 - {IR(48460, 6), 306}, // sinpi in opencl_std_100 - {IR(48865, 11), 348}, // smoothstep in opencl_std_100 - {IR(48466, 5), 307}, // sqrt in opencl_std_100 - {IR(48860, 5), 347}, // step in opencl_std_100 - {IR(48471, 4), 308}, // tan in opencl_std_100 - {IR(48475, 5), 309}, // tanh in opencl_std_100 - {IR(48480, 6), 310}, // tanpi in opencl_std_100 - {IR(48486, 7), 311}, // tgamma in opencl_std_100 - {IR(48493, 6), 312}, // trunc in opencl_std_100 - {IR(49382, 6), 404}, // u_abs in opencl_std_100 - {IR(49388, 11), 405}, // u_abs_diff in opencl_std_100 - {IR(48981, 10), 360}, // u_add_sat in opencl_std_100 - {IR(49029, 8), 366}, // u_clamp in opencl_std_100 - {IR(48998, 7), 362}, // u_hadd in opencl_std_100 - {IR(49173, 8), 384}, // u_mad24 in opencl_std_100 - {IR(49408, 9), 407}, // u_mad_hi in opencl_std_100 - {IR(49054, 10), 370}, // u_mad_sat in opencl_std_100 - {IR(49080, 6), 373}, // u_max in opencl_std_100 - {IR(49092, 6), 375}, // u_min in opencl_std_100 - {IR(49189, 8), 386}, // u_mul24 in opencl_std_100 - {IR(49399, 9), 406}, // u_mul_hi in opencl_std_100 - {IR(49013, 8), 364}, // u_rhadd in opencl_std_100 - {IR(49124, 10), 379}, // u_sub_sat in opencl_std_100 - {IR(49134, 11), 380}, // u_upsample in opencl_std_100 - {IR(49212, 11), 389}, // vload_half in opencl_std_100 - {IR(49223, 12), 390}, // vload_halfn in opencl_std_100 - {IR(49289, 13), 395}, // vloada_halfn in opencl_std_100 - {IR(49197, 7), 387}, // vloadn in opencl_std_100 - {IR(49235, 12), 391}, // vstore_half in opencl_std_100 - {IR(49247, 14), 392}, // vstore_half_r in opencl_std_100 - {IR(49261, 13), 393}, // vstore_halfn in opencl_std_100 - {IR(49274, 15), 394}, // vstore_halfn_r in opencl_std_100 - {IR(49302, 14), 396}, // vstorea_halfn in opencl_std_100 - {IR(49316, 16), 397}, // vstorea_halfn_r in opencl_std_100 - {IR(49204, 8), 388}, // vstoren in opencl_std_100 - {IR(49434, 17), 409}, // CubeFaceCoordAMD in spv_amd_gcn_shader - {IR(49417, 17), 408}, // CubeFaceIndexAMD in spv_amd_gcn_shader - {IR(49451, 8), 410}, // TimeAMD in spv_amd_gcn_shader - {IR(49528, 9), 414}, // MbcntAMD in spv_amd_shader_ballot - {IR(49459, 22), 411}, // SwizzleInvocationsAMD in spv_amd_shader_ballot - {IR(49481, 28), 412}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot - {IR(49509, 19), 413}, // WriteInvocationAMD in spv_amd_shader_ballot - {IR(49537, 23), 415}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter - {IR(49587, 9), 419}, // FMax3AMD in spv_amd_shader_trinary_minmax - {IR(49614, 9), 422}, // FMid3AMD in spv_amd_shader_trinary_minmax - {IR(49560, 9), 416}, // FMin3AMD in spv_amd_shader_trinary_minmax - {IR(49605, 9), 421}, // SMax3AMD in spv_amd_shader_trinary_minmax - {IR(49632, 9), 424}, // SMid3AMD in spv_amd_shader_trinary_minmax - {IR(49578, 9), 418}, // SMin3AMD in spv_amd_shader_trinary_minmax - {IR(49596, 9), 420}, // UMax3AMD in spv_amd_shader_trinary_minmax - {IR(49623, 9), 423}, // UMid3AMD in spv_amd_shader_trinary_minmax - {IR(49569, 9), 417}, // UMin3AMD in spv_amd_shader_trinary_minmax + {IR(45598, 21), 1}, // DebugCompilationUnit in debuginfo + {IR(46325, 13), 28}, // DebugDeclare in debuginfo + {IR(46397, 16), 31}, // DebugExpression in debuginfo + {IR(46141, 14), 20}, // DebugFunction in debuginfo + {IR(46116, 25), 19}, // DebugFunctionDeclaration in debuginfo + {IR(46096, 20), 18}, // DebugGlobalVariable in debuginfo + {IR(45584, 14), 0}, // DebugInfoNone in debuginfo + {IR(46228, 15), 25}, // DebugInlinedAt in debuginfo + {IR(46304, 21), 27}, // DebugInlinedVariable in debuginfo + {IR(46155, 18), 21}, // DebugLexicalBlock in debuginfo + {IR(46173, 31), 22}, // DebugLexicalBlockDiscriminator in debuginfo + {IR(46285, 19), 26}, // DebugLocalVariable in debuginfo + {IR(46413, 14), 32}, // DebugMacroDef in debuginfo + {IR(46427, 16), 33}, // DebugMacroUndef in debuginfo + {IR(46215, 13), 24}, // DebugNoScope in debuginfo + {IR(46382, 15), 30}, // DebugOperation in debuginfo + {IR(46204, 11), 23}, // DebugScope in debuginfo + {IR(45794, 15), 5}, // DebugTypeArray in debuginfo + {IR(45671, 15), 2}, // DebugTypeBasic in debuginfo + {IR(45908, 19), 10}, // DebugTypeComposite in debuginfo + {IR(45856, 14), 9}, // DebugTypeEnum in debuginfo + {IR(45838, 18), 8}, // DebugTypeFunction in debuginfo + {IR(45943, 21), 12}, // DebugTypeInheritance in debuginfo + {IR(45927, 16), 11}, // DebugTypeMember in debuginfo + {IR(45720, 17), 3}, // DebugTypePointer in debuginfo + {IR(45964, 21), 13}, // DebugTypePtrToMember in debuginfo + {IR(45775, 19), 4}, // DebugTypeQualifier in debuginfo + {IR(45985, 18), 14}, // DebugTypeTemplate in debuginfo + {IR(46003, 27), 15}, // DebugTypeTemplateParameter in debuginfo + {IR(46065, 31), 17}, // DebugTypeTemplateParameterPack in debuginfo + {IR(46030, 35), 16}, // DebugTypeTemplateTemplateParameter in debuginfo + {IR(45809, 16), 6}, // DebugTypeVector in debuginfo + {IR(45825, 13), 7}, // DebugTypedef in debuginfo + {IR(46338, 11), 29}, // DebugValue in debuginfo + {IR(46537, 5), 50}, // Acos in glsl_std_450 + {IR(46568, 6), 56}, // Acosh in glsl_std_450 + {IR(46532, 5), 49}, // Asin in glsl_std_450 + {IR(46562, 6), 55}, // Asinh in glsl_std_450 + {IR(46542, 5), 51}, // Atan in glsl_std_450 + {IR(46580, 6), 58}, // Atan2 in glsl_std_450 + {IR(46574, 6), 57}, // Atanh in glsl_std_450 + {IR(46493, 5), 42}, // Ceil in glsl_std_450 + {IR(46524, 4), 47}, // Cos in glsl_std_450 + {IR(46552, 5), 53}, // Cosh in glsl_std_450 + {IR(46964, 6), 101}, // Cross in glsl_std_450 + {IR(46512, 8), 45}, // Degrees in glsl_std_450 + {IR(46625, 12), 66}, // Determinant in glsl_std_450 + {IR(46955, 9), 100}, // Distance in glsl_std_450 + {IR(46590, 4), 60}, // Exp in glsl_std_450 + {IR(46598, 5), 62}, // Exp2 in glsl_std_450 + {IR(46465, 5), 37}, // FAbs in glsl_std_450 + {IR(46697, 7), 76}, // FClamp in glsl_std_450 + {IR(46682, 5), 73}, // FMax in glsl_std_450 + {IR(46667, 5), 70}, // FMin in glsl_std_450 + {IR(46718, 5), 79}, // FMix in glsl_std_450 + {IR(46475, 6), 39}, // FSign in glsl_std_450 + {IR(46980, 12), 103}, // FaceForward in glsl_std_450 + {IR(47008, 9), 106}, // FindILsb in glsl_std_450 + {IR(47017, 9), 107}, // FindSMsb in glsl_std_450 + {IR(47026, 9), 108}, // FindUMsb in glsl_std_450 + {IR(46487, 6), 41}, // Floor in glsl_std_450 + {IR(46744, 4), 83}, // Fma in glsl_std_450 + {IR(46498, 6), 43}, // Fract in glsl_std_450 + {IR(46748, 6), 84}, // Frexp in glsl_std_450 + {IR(46754, 12), 85}, // FrexpStruct in glsl_std_450 + {IR(46723, 5), 80}, // IMix in glsl_std_450 + {IR(47035, 22), 109}, // InterpolateAtCentroid in glsl_std_450 + {IR(47077, 20), 111}, // InterpolateAtOffset in glsl_std_450 + {IR(47057, 20), 110}, // InterpolateAtSample in glsl_std_450 + {IR(46613, 12), 65}, // InverseSqrt in glsl_std_450 + {IR(46766, 6), 86}, // Ldexp in glsl_std_450 + {IR(46948, 7), 99}, // Length in glsl_std_450 + {IR(46594, 4), 61}, // Log in glsl_std_450 + {IR(46603, 5), 63}, // Log2 in glsl_std_450 + {IR(46637, 14), 67}, // MatrixInverse in glsl_std_450 + {IR(46651, 5), 68}, // Modf in glsl_std_450 + {IR(46656, 11), 69}, // ModfStruct in glsl_std_450 + {IR(47107, 7), 114}, // NClamp in glsl_std_450 + {IR(47102, 5), 113}, // NMax in glsl_std_450 + {IR(47097, 5), 112}, // NMin in glsl_std_450 + {IR(46970, 10), 102}, // Normalize in glsl_std_450 + {IR(46839, 15), 92}, // PackDouble2x32 in glsl_std_450 + {IR(46826, 13), 91}, // PackHalf2x16 in glsl_std_450 + {IR(46798, 14), 89}, // PackSnorm2x16 in glsl_std_450 + {IR(46772, 13), 87}, // PackSnorm4x8 in glsl_std_450 + {IR(46812, 14), 90}, // PackUnorm2x16 in glsl_std_450 + {IR(46785, 13), 88}, // PackUnorm4x8 in glsl_std_450 + {IR(46586, 4), 59}, // Pow in glsl_std_450 + {IR(46504, 8), 44}, // Radians in glsl_std_450 + {IR(46992, 8), 104}, // Reflect in glsl_std_450 + {IR(47000, 8), 105}, // Refract in glsl_std_450 + {IR(46443, 6), 34}, // Round in glsl_std_450 + {IR(46449, 10), 35}, // RoundEven in glsl_std_450 + {IR(46470, 5), 38}, // SAbs in glsl_std_450 + {IR(46711, 7), 78}, // SClamp in glsl_std_450 + {IR(46692, 5), 75}, // SMax in glsl_std_450 + {IR(46677, 5), 72}, // SMin in glsl_std_450 + {IR(46481, 6), 40}, // SSign in glsl_std_450 + {IR(46520, 4), 46}, // Sin in glsl_std_450 + {IR(46547, 5), 52}, // Sinh in glsl_std_450 + {IR(46733, 11), 82}, // SmoothStep in glsl_std_450 + {IR(46608, 5), 64}, // Sqrt in glsl_std_450 + {IR(46728, 5), 81}, // Step in glsl_std_450 + {IR(46528, 4), 48}, // Tan in glsl_std_450 + {IR(46557, 5), 54}, // Tanh in glsl_std_450 + {IR(46459, 6), 36}, // Trunc in glsl_std_450 + {IR(46704, 7), 77}, // UClamp in glsl_std_450 + {IR(46687, 5), 74}, // UMax in glsl_std_450 + {IR(46672, 5), 71}, // UMin in glsl_std_450 + {IR(46931, 17), 98}, // UnpackDouble2x32 in glsl_std_450 + {IR(46886, 15), 95}, // UnpackHalf2x16 in glsl_std_450 + {IR(46854, 16), 93}, // UnpackSnorm2x16 in glsl_std_450 + {IR(46901, 15), 96}, // UnpackSnorm4x8 in glsl_std_450 + {IR(46870, 16), 94}, // UnpackUnorm2x16 in glsl_std_450 + {IR(46916, 15), 97}, // UnpackUnorm4x8 in glsl_std_450 + {IR(47114, 13), 116}, // ArgumentInfo in nonsemantic_clspvreflection + {IR(47209, 24), 121}, // ArgumentPodPushConstant in nonsemantic_clspvreflection + {IR(47165, 25), 119}, // ArgumentPodStorageBuffer in nonsemantic_clspvreflection + {IR(47190, 19), 120}, // ArgumentPodUniform in nonsemantic_clspvreflection + {IR(47643, 28), 140}, // ArgumentPointerPushConstant in nonsemantic_clspvreflection + {IR(47671, 23), 141}, // ArgumentPointerUniform in nonsemantic_clspvreflection + {IR(47233, 21), 122}, // ArgumentSampledImage in nonsemantic_clspvreflection + {IR(47275, 16), 124}, // ArgumentSampler in nonsemantic_clspvreflection + {IR(47127, 22), 117}, // ArgumentStorageBuffer in nonsemantic_clspvreflection + {IR(47254, 21), 123}, // ArgumentStorageImage in nonsemantic_clspvreflection + {IR(47931, 27), 148}, // ArgumentStorageTexelBuffer in nonsemantic_clspvreflection + {IR(47149, 16), 118}, // ArgumentUniform in nonsemantic_clspvreflection + {IR(47958, 27), 149}, // ArgumentUniformTexelBuffer in nonsemantic_clspvreflection + {IR(47291, 18), 125}, // ArgumentWorkgroup in nonsemantic_clspvreflection + {IR(47985, 32), 150}, // ConstantDataPointerPushConstant in nonsemantic_clspvreflection + {IR(47539, 26), 135}, // ConstantDataStorageBuffer in nonsemantic_clspvreflection + {IR(47565, 20), 136}, // ConstantDataUniform in nonsemantic_clspvreflection + {IR(47809, 45), 145}, // ImageArgumentInfoChannelDataTypePushConstant in nonsemantic_clspvreflection + {IR(47891, 40), 147}, // ImageArgumentInfoChannelDataTypeUniform in nonsemantic_clspvreflection + {IR(47767, 42), 144}, // ImageArgumentInfoChannelOrderPushConstant in nonsemantic_clspvreflection + {IR(47854, 37), 146}, // ImageArgumentInfoChannelOrderUniform in nonsemantic_clspvreflection + {IR(4630, 7), 115}, // Kernel in nonsemantic_clspvreflection + {IR(8055, 15), 137}, // LiteralSampler in nonsemantic_clspvreflection + {IR(48126, 34), 155}, // NormalizedSamplerMaskPushConstant in nonsemantic_clspvreflection + {IR(48094, 32), 154}, // PrintfBufferPointerPushConstant in nonsemantic_clspvreflection + {IR(48068, 26), 153}, // PrintfBufferStorageBuffer in nonsemantic_clspvreflection + {IR(48057, 11), 152}, // PrintfInfo in nonsemantic_clspvreflection + {IR(48017, 40), 151}, // ProgramScopeVariablePointerPushConstant in nonsemantic_clspvreflection + {IR(47729, 38), 143}, // ProgramScopeVariablePointerRelocation in nonsemantic_clspvreflection + {IR(47694, 35), 142}, // ProgramScopeVariablesStorageBuffer in nonsemantic_clspvreflection + {IR(47585, 30), 138}, // PropertyRequiredWorkgroupSize in nonsemantic_clspvreflection + {IR(47405, 30), 130}, // PushConstantEnqueuedLocalSize in nonsemantic_clspvreflection + {IR(47380, 25), 129}, // PushConstantGlobalOffset in nonsemantic_clspvreflection + {IR(47435, 23), 131}, // PushConstantGlobalSize in nonsemantic_clspvreflection + {IR(47483, 26), 133}, // PushConstantNumWorkgroups in nonsemantic_clspvreflection + {IR(47509, 30), 134}, // PushConstantRegionGroupOffset in nonsemantic_clspvreflection + {IR(47458, 25), 132}, // PushConstantRegionOffset in nonsemantic_clspvreflection + {IR(47335, 25), 127}, // SpecConstantGlobalOffset in nonsemantic_clspvreflection + {IR(47615, 28), 139}, // SpecConstantSubgroupMaxSize in nonsemantic_clspvreflection + {IR(47360, 20), 128}, // SpecConstantWorkDim in nonsemantic_clspvreflection + {IR(47309, 26), 126}, // SpecConstantWorkgroupSize in nonsemantic_clspvreflection + {IR(48160, 22), 156}, // WorkgroupVariableSize in nonsemantic_clspvreflection + {IR(48281, 21), 197}, // DebugBuildIdentifier in nonsemantic_shader_debuginfo_100 + {IR(45598, 21), 158}, // DebugCompilationUnit in nonsemantic_shader_debuginfo_100 + {IR(46325, 13), 185}, // DebugDeclare in nonsemantic_shader_debuginfo_100 + {IR(48319, 16), 199}, // DebugEntryPoint in nonsemantic_shader_debuginfo_100 + {IR(46397, 16), 188}, // DebugExpression in nonsemantic_shader_debuginfo_100 + {IR(46141, 14), 177}, // DebugFunction in nonsemantic_shader_debuginfo_100 + {IR(46116, 25), 176}, // DebugFunctionDeclaration in nonsemantic_shader_debuginfo_100 + {IR(48214, 24), 193}, // DebugFunctionDefinition in nonsemantic_shader_debuginfo_100 + {IR(46096, 20), 175}, // DebugGlobalVariable in nonsemantic_shader_debuginfo_100 + {IR(48182, 20), 191}, // DebugImportedEntity in nonsemantic_shader_debuginfo_100 + {IR(45584, 14), 157}, // DebugInfoNone in nonsemantic_shader_debuginfo_100 + {IR(46228, 15), 182}, // DebugInlinedAt in nonsemantic_shader_debuginfo_100 + {IR(46304, 21), 184}, // DebugInlinedVariable in nonsemantic_shader_debuginfo_100 + {IR(46155, 18), 178}, // DebugLexicalBlock in nonsemantic_shader_debuginfo_100 + {IR(46173, 31), 179}, // DebugLexicalBlockDiscriminator in nonsemantic_shader_debuginfo_100 + {IR(48259, 10), 195}, // DebugLine in nonsemantic_shader_debuginfo_100 + {IR(46285, 19), 183}, // DebugLocalVariable in nonsemantic_shader_debuginfo_100 + {IR(46413, 14), 189}, // DebugMacroDef in nonsemantic_shader_debuginfo_100 + {IR(46427, 16), 190}, // DebugMacroUndef in nonsemantic_shader_debuginfo_100 + {IR(48269, 12), 196}, // DebugNoLine in nonsemantic_shader_debuginfo_100 + {IR(46215, 13), 181}, // DebugNoScope in nonsemantic_shader_debuginfo_100 + {IR(46382, 15), 187}, // DebugOperation in nonsemantic_shader_debuginfo_100 + {IR(46204, 11), 180}, // DebugScope in nonsemantic_shader_debuginfo_100 + {IR(48202, 12), 192}, // DebugSource in nonsemantic_shader_debuginfo_100 + {IR(48238, 21), 194}, // DebugSourceContinued in nonsemantic_shader_debuginfo_100 + {IR(48302, 17), 198}, // DebugStoragePath in nonsemantic_shader_debuginfo_100 + {IR(45794, 15), 162}, // DebugTypeArray in nonsemantic_shader_debuginfo_100 + {IR(45671, 15), 159}, // DebugTypeBasic in nonsemantic_shader_debuginfo_100 + {IR(45908, 19), 167}, // DebugTypeComposite in nonsemantic_shader_debuginfo_100 + {IR(45856, 14), 166}, // DebugTypeEnum in nonsemantic_shader_debuginfo_100 + {IR(45838, 18), 165}, // DebugTypeFunction in nonsemantic_shader_debuginfo_100 + {IR(45943, 21), 169}, // DebugTypeInheritance in nonsemantic_shader_debuginfo_100 + {IR(48335, 16), 200}, // DebugTypeMatrix in nonsemantic_shader_debuginfo_100 + {IR(45927, 16), 168}, // DebugTypeMember in nonsemantic_shader_debuginfo_100 + {IR(45720, 17), 160}, // DebugTypePointer in nonsemantic_shader_debuginfo_100 + {IR(45964, 21), 170}, // DebugTypePtrToMember in nonsemantic_shader_debuginfo_100 + {IR(45775, 19), 161}, // DebugTypeQualifier in nonsemantic_shader_debuginfo_100 + {IR(45985, 18), 171}, // DebugTypeTemplate in nonsemantic_shader_debuginfo_100 + {IR(46003, 27), 172}, // DebugTypeTemplateParameter in nonsemantic_shader_debuginfo_100 + {IR(46065, 31), 174}, // DebugTypeTemplateParameterPack in nonsemantic_shader_debuginfo_100 + {IR(46030, 35), 173}, // DebugTypeTemplateTemplateParameter in nonsemantic_shader_debuginfo_100 + {IR(45809, 16), 163}, // DebugTypeVector in nonsemantic_shader_debuginfo_100 + {IR(45825, 13), 164}, // DebugTypedef in nonsemantic_shader_debuginfo_100 + {IR(46338, 11), 186}, // DebugValue in nonsemantic_shader_debuginfo_100 + {IR(48351, 14), 201}, // Configuration in nonsemantic_vkspreflection + {IR(48427, 20), 206}, // DescriptorSetBuffer in nonsemantic_vkspreflection + {IR(48447, 19), 207}, // DescriptorSetImage in nonsemantic_vkspreflection + {IR(48466, 21), 208}, // DescriptorSetSampler in nonsemantic_vkspreflection + {IR(48390, 14), 204}, // PushConstants in nonsemantic_vkspreflection + {IR(48404, 23), 205}, // SpecializationMapEntry in nonsemantic_vkspreflection + {IR(48365, 13), 202}, // StartCounter in nonsemantic_vkspreflection + {IR(48378, 12), 203}, // StopCounter in nonsemantic_vkspreflection + {IR(45598, 21), 210}, // DebugCompilationUnit in opencl_debuginfo_100 + {IR(46325, 13), 237}, // DebugDeclare in opencl_debuginfo_100 + {IR(46397, 16), 240}, // DebugExpression in opencl_debuginfo_100 + {IR(46141, 14), 229}, // DebugFunction in opencl_debuginfo_100 + {IR(46116, 25), 228}, // DebugFunctionDeclaration in opencl_debuginfo_100 + {IR(46096, 20), 227}, // DebugGlobalVariable in opencl_debuginfo_100 + {IR(48182, 20), 243}, // DebugImportedEntity in opencl_debuginfo_100 + {IR(45584, 14), 209}, // DebugInfoNone in opencl_debuginfo_100 + {IR(46228, 15), 234}, // DebugInlinedAt in opencl_debuginfo_100 + {IR(46304, 21), 236}, // DebugInlinedVariable in opencl_debuginfo_100 + {IR(46155, 18), 230}, // DebugLexicalBlock in opencl_debuginfo_100 + {IR(46173, 31), 231}, // DebugLexicalBlockDiscriminator in opencl_debuginfo_100 + {IR(46285, 19), 235}, // DebugLocalVariable in opencl_debuginfo_100 + {IR(46413, 14), 241}, // DebugMacroDef in opencl_debuginfo_100 + {IR(46427, 16), 242}, // DebugMacroUndef in opencl_debuginfo_100 + {IR(48787, 17), 245}, // DebugModuleINTEL in opencl_debuginfo_100 + {IR(46215, 13), 233}, // DebugNoScope in opencl_debuginfo_100 + {IR(46382, 15), 239}, // DebugOperation in opencl_debuginfo_100 + {IR(46204, 11), 232}, // DebugScope in opencl_debuginfo_100 + {IR(48202, 12), 244}, // DebugSource in opencl_debuginfo_100 + {IR(45794, 15), 214}, // DebugTypeArray in opencl_debuginfo_100 + {IR(45671, 15), 211}, // DebugTypeBasic in opencl_debuginfo_100 + {IR(45908, 19), 219}, // DebugTypeComposite in opencl_debuginfo_100 + {IR(45856, 14), 218}, // DebugTypeEnum in opencl_debuginfo_100 + {IR(45838, 18), 217}, // DebugTypeFunction in opencl_debuginfo_100 + {IR(45943, 21), 221}, // DebugTypeInheritance in opencl_debuginfo_100 + {IR(45927, 16), 220}, // DebugTypeMember in opencl_debuginfo_100 + {IR(45720, 17), 212}, // DebugTypePointer in opencl_debuginfo_100 + {IR(45964, 21), 222}, // DebugTypePtrToMember in opencl_debuginfo_100 + {IR(45775, 19), 213}, // DebugTypeQualifier in opencl_debuginfo_100 + {IR(45985, 18), 223}, // DebugTypeTemplate in opencl_debuginfo_100 + {IR(46003, 27), 224}, // DebugTypeTemplateParameter in opencl_debuginfo_100 + {IR(46065, 31), 226}, // DebugTypeTemplateParameterPack in opencl_debuginfo_100 + {IR(46030, 35), 225}, // DebugTypeTemplateTemplateParameter in opencl_debuginfo_100 + {IR(45809, 16), 215}, // DebugTypeVector in opencl_debuginfo_100 + {IR(45825, 13), 216}, // DebugTypedef in opencl_debuginfo_100 + {IR(46338, 11), 238}, // DebugValue in opencl_debuginfo_100 + {IR(48804, 5), 246}, // acos in opencl_std_100 + {IR(48809, 6), 247}, // acosh in opencl_std_100 + {IR(48815, 7), 248}, // acospi in opencl_std_100 + {IR(48822, 5), 249}, // asin in opencl_std_100 + {IR(48827, 6), 250}, // asinh in opencl_std_100 + {IR(48833, 7), 251}, // asinpi in opencl_std_100 + {IR(48840, 5), 252}, // atan in opencl_std_100 + {IR(48845, 6), 253}, // atan2 in opencl_std_100 + {IR(48864, 8), 256}, // atan2pi in opencl_std_100 + {IR(48851, 6), 254}, // atanh in opencl_std_100 + {IR(48857, 7), 255}, // atanpi in opencl_std_100 + {IR(50055, 10), 402}, // bitselect in opencl_std_100 + {IR(48872, 5), 257}, // cbrt in opencl_std_100 + {IR(48877, 5), 258}, // ceil in opencl_std_100 + {IR(49727, 4), 367}, // clz in opencl_std_100 + {IR(48882, 9), 259}, // copysign in opencl_std_100 + {IR(48891, 4), 260}, // cos in opencl_std_100 + {IR(48895, 5), 261}, // cosh in opencl_std_100 + {IR(48900, 6), 262}, // cospi in opencl_std_100 + {IR(49571, 6), 350}, // cross in opencl_std_100 + {IR(49731, 4), 368}, // ctz in opencl_std_100 + {IR(49506, 8), 342}, // degrees in opencl_std_100 + {IR(49577, 9), 351}, // distance in opencl_std_100 + {IR(48911, 4), 264}, // erf in opencl_std_100 + {IR(48906, 5), 263}, // erfc in opencl_std_100 + {IR(48915, 4), 265}, // exp in opencl_std_100 + {IR(48924, 6), 267}, // exp10 in opencl_std_100 + {IR(48919, 5), 266}, // exp2 in opencl_std_100 + {IR(48930, 6), 268}, // expm1 in opencl_std_100 + {IR(48936, 5), 269}, // fabs in opencl_std_100 + {IR(49603, 14), 354}, // fast_distance in opencl_std_100 + {IR(49617, 12), 355}, // fast_length in opencl_std_100 + {IR(49629, 15), 356}, // fast_normalize in opencl_std_100 + {IR(49499, 7), 341}, // fclamp in opencl_std_100 + {IR(48941, 5), 270}, // fdim in opencl_std_100 + {IR(48946, 6), 271}, // floor in opencl_std_100 + {IR(48952, 4), 272}, // fma in opencl_std_100 + {IR(48956, 5), 273}, // fmax in opencl_std_100 + {IR(49514, 12), 343}, // fmax_common in opencl_std_100 + {IR(48961, 5), 274}, // fmin in opencl_std_100 + {IR(49526, 12), 344}, // fmin_common in opencl_std_100 + {IR(48966, 5), 275}, // fmod in opencl_std_100 + {IR(48971, 6), 276}, // fract in opencl_std_100 + {IR(48977, 6), 277}, // frexp in opencl_std_100 + {IR(49189, 9), 313}, // half_cos in opencl_std_100 + {IR(49198, 12), 314}, // half_divide in opencl_std_100 + {IR(49210, 9), 315}, // half_exp in opencl_std_100 + {IR(49229, 11), 317}, // half_exp10 in opencl_std_100 + {IR(49219, 10), 316}, // half_exp2 in opencl_std_100 + {IR(49240, 9), 318}, // half_log in opencl_std_100 + {IR(49259, 11), 320}, // half_log10 in opencl_std_100 + {IR(49249, 10), 319}, // half_log2 in opencl_std_100 + {IR(49270, 10), 321}, // half_powr in opencl_std_100 + {IR(49280, 11), 322}, // half_recip in opencl_std_100 + {IR(49291, 11), 323}, // half_rsqrt in opencl_std_100 + {IR(49302, 9), 324}, // half_sin in opencl_std_100 + {IR(49311, 10), 325}, // half_sqrt in opencl_std_100 + {IR(49321, 9), 326}, // half_tan in opencl_std_100 + {IR(48983, 6), 278}, // hypot in opencl_std_100 + {IR(48989, 6), 279}, // ilogb in opencl_std_100 + {IR(48995, 6), 280}, // ldexp in opencl_std_100 + {IR(49586, 7), 352}, // length in opencl_std_100 + {IR(49001, 7), 281}, // lgamma in opencl_std_100 + {IR(49008, 9), 282}, // lgamma_r in opencl_std_100 + {IR(49017, 4), 283}, // log in opencl_std_100 + {IR(49026, 6), 285}, // log10 in opencl_std_100 + {IR(49032, 6), 286}, // log1p in opencl_std_100 + {IR(49021, 5), 284}, // log2 in opencl_std_100 + {IR(49038, 5), 287}, // logb in opencl_std_100 + {IR(49043, 4), 288}, // mad in opencl_std_100 + {IR(49047, 7), 289}, // maxmag in opencl_std_100 + {IR(49054, 7), 290}, // minmag in opencl_std_100 + {IR(49538, 4), 345}, // mix in opencl_std_100 + {IR(49061, 5), 291}, // modf in opencl_std_100 + {IR(49066, 4), 292}, // nan in opencl_std_100 + {IR(49330, 11), 327}, // native_cos in opencl_std_100 + {IR(49341, 14), 328}, // native_divide in opencl_std_100 + {IR(49355, 11), 329}, // native_exp in opencl_std_100 + {IR(49378, 13), 331}, // native_exp10 in opencl_std_100 + {IR(49366, 12), 330}, // native_exp2 in opencl_std_100 + {IR(49391, 11), 332}, // native_log in opencl_std_100 + {IR(49414, 13), 334}, // native_log10 in opencl_std_100 + {IR(49402, 12), 333}, // native_log2 in opencl_std_100 + {IR(49427, 12), 335}, // native_powr in opencl_std_100 + {IR(49439, 13), 336}, // native_recip in opencl_std_100 + {IR(49452, 13), 337}, // native_rsqrt in opencl_std_100 + {IR(49465, 11), 338}, // native_sin in opencl_std_100 + {IR(49476, 12), 339}, // native_sqrt in opencl_std_100 + {IR(49488, 11), 340}, // native_tan in opencl_std_100 + {IR(49070, 10), 293}, // nextafter in opencl_std_100 + {IR(49593, 10), 353}, // normalize in opencl_std_100 + {IR(49846, 9), 382}, // popcount in opencl_std_100 + {IR(49080, 4), 294}, // pow in opencl_std_100 + {IR(49084, 5), 295}, // pown in opencl_std_100 + {IR(49089, 5), 296}, // powr in opencl_std_100 + {IR(50046, 9), 401}, // prefetch in opencl_std_100 + {IR(50039, 7), 400}, // printf in opencl_std_100 + {IR(49542, 8), 346}, // radians in opencl_std_100 + {IR(49094, 10), 297}, // remainder in opencl_std_100 + {IR(49104, 7), 298}, // remquo in opencl_std_100 + {IR(49111, 5), 299}, // rint in opencl_std_100 + {IR(49116, 6), 300}, // rootn in opencl_std_100 + {IR(49797, 7), 377}, // rotate in opencl_std_100 + {IR(49122, 6), 301}, // round in opencl_std_100 + {IR(49128, 6), 302}, // rsqrt in opencl_std_100 + {IR(49644, 6), 357}, // s_abs in opencl_std_100 + {IR(49650, 11), 358}, // s_abs_diff in opencl_std_100 + {IR(49661, 10), 359}, // s_add_sat in opencl_std_100 + {IR(49711, 8), 365}, // s_clamp in opencl_std_100 + {IR(49681, 7), 361}, // s_hadd in opencl_std_100 + {IR(49855, 8), 383}, // s_mad24 in opencl_std_100 + {IR(49735, 9), 369}, // s_mad_hi in opencl_std_100 + {IR(49754, 10), 371}, // s_mad_sat in opencl_std_100 + {IR(49764, 6), 372}, // s_max in opencl_std_100 + {IR(49776, 6), 374}, // s_min in opencl_std_100 + {IR(49871, 8), 385}, // s_mul24 in opencl_std_100 + {IR(49788, 9), 376}, // s_mul_hi in opencl_std_100 + {IR(49695, 8), 363}, // s_rhadd in opencl_std_100 + {IR(49804, 10), 378}, // s_sub_sat in opencl_std_100 + {IR(49835, 11), 381}, // s_upsample in opencl_std_100 + {IR(50065, 7), 403}, // select in opencl_std_100 + {IR(50022, 8), 398}, // shuffle in opencl_std_100 + {IR(50030, 9), 399}, // shuffle2 in opencl_std_100 + {IR(49566, 5), 349}, // sign in opencl_std_100 + {IR(49134, 4), 303}, // sin in opencl_std_100 + {IR(49138, 7), 304}, // sincos in opencl_std_100 + {IR(49145, 5), 305}, // sinh in opencl_std_100 + {IR(49150, 6), 306}, // sinpi in opencl_std_100 + {IR(49555, 11), 348}, // smoothstep in opencl_std_100 + {IR(49156, 5), 307}, // sqrt in opencl_std_100 + {IR(49550, 5), 347}, // step in opencl_std_100 + {IR(49161, 4), 308}, // tan in opencl_std_100 + {IR(49165, 5), 309}, // tanh in opencl_std_100 + {IR(49170, 6), 310}, // tanpi in opencl_std_100 + {IR(49176, 7), 311}, // tgamma in opencl_std_100 + {IR(49183, 6), 312}, // trunc in opencl_std_100 + {IR(50072, 6), 404}, // u_abs in opencl_std_100 + {IR(50078, 11), 405}, // u_abs_diff in opencl_std_100 + {IR(49671, 10), 360}, // u_add_sat in opencl_std_100 + {IR(49719, 8), 366}, // u_clamp in opencl_std_100 + {IR(49688, 7), 362}, // u_hadd in opencl_std_100 + {IR(49863, 8), 384}, // u_mad24 in opencl_std_100 + {IR(50098, 9), 407}, // u_mad_hi in opencl_std_100 + {IR(49744, 10), 370}, // u_mad_sat in opencl_std_100 + {IR(49770, 6), 373}, // u_max in opencl_std_100 + {IR(49782, 6), 375}, // u_min in opencl_std_100 + {IR(49879, 8), 386}, // u_mul24 in opencl_std_100 + {IR(50089, 9), 406}, // u_mul_hi in opencl_std_100 + {IR(49703, 8), 364}, // u_rhadd in opencl_std_100 + {IR(49814, 10), 379}, // u_sub_sat in opencl_std_100 + {IR(49824, 11), 380}, // u_upsample in opencl_std_100 + {IR(49902, 11), 389}, // vload_half in opencl_std_100 + {IR(49913, 12), 390}, // vload_halfn in opencl_std_100 + {IR(49979, 13), 395}, // vloada_halfn in opencl_std_100 + {IR(49887, 7), 387}, // vloadn in opencl_std_100 + {IR(49925, 12), 391}, // vstore_half in opencl_std_100 + {IR(49937, 14), 392}, // vstore_half_r in opencl_std_100 + {IR(49951, 13), 393}, // vstore_halfn in opencl_std_100 + {IR(49964, 15), 394}, // vstore_halfn_r in opencl_std_100 + {IR(49992, 14), 396}, // vstorea_halfn in opencl_std_100 + {IR(50006, 16), 397}, // vstorea_halfn_r in opencl_std_100 + {IR(49894, 8), 388}, // vstoren in opencl_std_100 + {IR(50124, 17), 409}, // CubeFaceCoordAMD in spv_amd_gcn_shader + {IR(50107, 17), 408}, // CubeFaceIndexAMD in spv_amd_gcn_shader + {IR(50141, 8), 410}, // TimeAMD in spv_amd_gcn_shader + {IR(50218, 9), 414}, // MbcntAMD in spv_amd_shader_ballot + {IR(50149, 22), 411}, // SwizzleInvocationsAMD in spv_amd_shader_ballot + {IR(50171, 28), 412}, // SwizzleInvocationsMaskedAMD in spv_amd_shader_ballot + {IR(50199, 19), 413}, // WriteInvocationAMD in spv_amd_shader_ballot + {IR(50227, 23), 415}, // InterpolateAtVertexAMD in spv_amd_shader_explicit_vertex_parameter + {IR(50277, 9), 419}, // FMax3AMD in spv_amd_shader_trinary_minmax + {IR(50304, 9), 422}, // FMid3AMD in spv_amd_shader_trinary_minmax + {IR(50250, 9), 416}, // FMin3AMD in spv_amd_shader_trinary_minmax + {IR(50295, 9), 421}, // SMax3AMD in spv_amd_shader_trinary_minmax + {IR(50322, 9), 424}, // SMid3AMD in spv_amd_shader_trinary_minmax + {IR(50268, 9), 418}, // SMin3AMD in spv_amd_shader_trinary_minmax + {IR(50286, 9), 420}, // UMax3AMD in spv_amd_shader_trinary_minmax + {IR(50313, 9), 423}, // UMid3AMD in spv_amd_shader_trinary_minmax + {IR(50259, 9), 417}, // UMin3AMD in spv_amd_shader_trinary_minmax }}; IndexRange ExtInstNameRangeForKind(spv_ext_inst_type_t type) { @@ -5548,2514 +5609,2543 @@ static const char kStrings[] = "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_tensors\0" // IR(426, 16) - "SPV_EXT_arithmetic_fence\0" // IR(442, 25) - "SPV_EXT_demote_to_helper_invocation\0" // IR(467, 36) - "SPV_EXT_descriptor_indexing\0" // IR(503, 28) - "SPV_EXT_float8\0" // IR(531, 15) - "SPV_EXT_fragment_fully_covered\0" // IR(546, 31) - "SPV_EXT_fragment_invocation_density\0" // IR(577, 36) - "SPV_EXT_fragment_shader_interlock\0" // IR(613, 34) - "SPV_EXT_mesh_shader\0" // IR(647, 20) - "SPV_EXT_opacity_micromap\0" // IR(667, 25) - "SPV_EXT_optnone\0" // IR(692, 16) - "SPV_EXT_physical_storage_buffer\0" // IR(708, 32) - "SPV_EXT_relaxed_printf_string_address_space\0" // IR(740, 44) - "SPV_EXT_replicated_composites\0" // IR(784, 30) - "SPV_EXT_shader_atomic_float16_add\0" // IR(814, 34) - "SPV_EXT_shader_atomic_float_add\0" // IR(848, 32) - "SPV_EXT_shader_atomic_float_min_max\0" // IR(880, 36) - "SPV_EXT_shader_image_int64\0" // IR(916, 27) - "SPV_EXT_shader_stencil_export\0" // IR(943, 30) - "SPV_EXT_shader_tile_image\0" // IR(973, 26) - "SPV_EXT_shader_viewport_index_layer\0" // IR(999, 36) - "SPV_GOOGLE_decorate_string\0" // IR(1035, 27) - "SPV_GOOGLE_hlsl_functionality1\0" // IR(1062, 31) - "SPV_GOOGLE_user_type\0" // IR(1093, 21) - "SPV_INTEL_2d_block_io\0" // IR(1114, 22) - "SPV_INTEL_arbitrary_precision_fixed_point\0" // IR(1136, 42) - "SPV_INTEL_arbitrary_precision_floating_point\0" // IR(1178, 45) - "SPV_INTEL_arbitrary_precision_integers\0" // IR(1223, 39) - "SPV_INTEL_bfloat16_conversion\0" // IR(1262, 30) - "SPV_INTEL_bindless_images\0" // IR(1292, 26) - "SPV_INTEL_blocking_pipes\0" // IR(1318, 25) - "SPV_INTEL_cache_controls\0" // IR(1343, 25) - "SPV_INTEL_debug_module\0" // IR(1368, 23) - "SPV_INTEL_device_side_avc_motion_estimation\0" // IR(1391, 44) - "SPV_INTEL_float_controls2\0" // IR(1435, 26) - "SPV_INTEL_fp_fast_math_mode\0" // IR(1461, 28) - "SPV_INTEL_fp_max_error\0" // IR(1489, 23) - "SPV_INTEL_fpga_argument_interfaces\0" // IR(1512, 35) - "SPV_INTEL_fpga_buffer_location\0" // IR(1547, 31) - "SPV_INTEL_fpga_cluster_attributes\0" // IR(1578, 34) - "SPV_INTEL_fpga_dsp_control\0" // IR(1612, 27) - "SPV_INTEL_fpga_invocation_pipelining_attributes\0" // IR(1639, 48) - "SPV_INTEL_fpga_latency_control\0" // IR(1687, 31) - "SPV_INTEL_fpga_loop_controls\0" // IR(1718, 29) - "SPV_INTEL_fpga_memory_accesses\0" // IR(1747, 31) - "SPV_INTEL_fpga_memory_attributes\0" // IR(1778, 33) - "SPV_INTEL_fpga_reg\0" // IR(1811, 19) - "SPV_INTEL_function_pointers\0" // IR(1830, 28) - "SPV_INTEL_global_variable_fpga_decorations\0" // IR(1858, 43) - "SPV_INTEL_global_variable_host_access\0" // IR(1901, 38) - "SPV_INTEL_inline_assembly\0" // IR(1939, 26) - "SPV_INTEL_int4\0" // IR(1965, 15) - "SPV_INTEL_io_pipes\0" // IR(1980, 19) - "SPV_INTEL_kernel_attributes\0" // IR(1999, 28) - "SPV_INTEL_long_composites\0" // IR(2027, 26) - "SPV_INTEL_loop_fuse\0" // IR(2053, 20) - "SPV_INTEL_masked_gather_scatter\0" // IR(2073, 32) - "SPV_INTEL_maximum_registers\0" // IR(2105, 28) - "SPV_INTEL_media_block_io\0" // IR(2133, 25) - "SPV_INTEL_memory_access_aliasing\0" // IR(2158, 33) - "SPV_INTEL_optnone\0" // IR(2191, 18) - "SPV_INTEL_runtime_aligned\0" // IR(2209, 26) - "SPV_INTEL_shader_integer_functions2\0" // IR(2235, 36) - "SPV_INTEL_split_barrier\0" // IR(2271, 24) - "SPV_INTEL_subgroup_buffer_prefetch\0" // IR(2295, 35) - "SPV_INTEL_subgroup_matrix_multiply_accumulate\0" // IR(2330, 46) - "SPV_INTEL_subgroups\0" // IR(2376, 20) - "SPV_INTEL_task_sequence\0" // IR(2396, 24) - "SPV_INTEL_tensor_float32_conversion\0" // IR(2420, 36) - "SPV_INTEL_ternary_bitwise_function\0" // IR(2456, 35) - "SPV_INTEL_unstructured_loop_controls\0" // IR(2491, 37) - "SPV_INTEL_usm_storage_classes\0" // IR(2528, 30) - "SPV_INTEL_variable_length_array\0" // IR(2558, 32) - "SPV_INTEL_vector_compute\0" // IR(2590, 25) - "SPV_KHR_16bit_storage\0" // IR(2615, 22) - "SPV_KHR_8bit_storage\0" // IR(2637, 21) - "SPV_KHR_bfloat16\0" // IR(2658, 17) - "SPV_KHR_bit_instructions\0" // IR(2675, 25) - "SPV_KHR_compute_shader_derivatives\0" // IR(2700, 35) - "SPV_KHR_cooperative_matrix\0" // IR(2735, 27) - "SPV_KHR_device_group\0" // IR(2762, 21) - "SPV_KHR_expect_assume\0" // IR(2783, 22) - "SPV_KHR_float_controls\0" // IR(2805, 23) - "SPV_KHR_float_controls2\0" // IR(2828, 24) - "SPV_KHR_fragment_shader_barycentric\0" // IR(2852, 36) - "SPV_KHR_fragment_shading_rate\0" // IR(2888, 30) - "SPV_KHR_integer_dot_product\0" // IR(2918, 28) - "SPV_KHR_linkonce_odr\0" // IR(2946, 21) - "SPV_KHR_maximal_reconvergence\0" // IR(2967, 30) - "SPV_KHR_multiview\0" // IR(2997, 18) - "SPV_KHR_no_integer_wrap_decoration\0" // IR(3015, 35) - "SPV_KHR_non_semantic_info\0" // IR(3050, 26) - "SPV_KHR_physical_storage_buffer\0" // IR(3076, 32) - "SPV_KHR_post_depth_coverage\0" // IR(3108, 28) - "SPV_KHR_quad_control\0" // IR(3136, 21) - "SPV_KHR_ray_cull_mask\0" // IR(3157, 22) - "SPV_KHR_ray_query\0" // IR(3179, 18) - "SPV_KHR_ray_tracing\0" // IR(3197, 20) - "SPV_KHR_ray_tracing_position_fetch\0" // IR(3217, 35) - "SPV_KHR_relaxed_extended_instruction\0" // IR(3252, 37) - "SPV_KHR_shader_atomic_counter_ops\0" // IR(3289, 34) - "SPV_KHR_shader_ballot\0" // IR(3323, 22) - "SPV_KHR_shader_clock\0" // IR(3345, 21) - "SPV_KHR_shader_draw_parameters\0" // IR(3366, 31) - "SPV_KHR_storage_buffer_storage_class\0" // IR(3397, 37) - "SPV_KHR_subgroup_rotate\0" // IR(3434, 24) - "SPV_KHR_subgroup_uniform_control_flow\0" // IR(3458, 38) - "SPV_KHR_subgroup_vote\0" // IR(3496, 22) - "SPV_KHR_terminate_invocation\0" // IR(3518, 29) - "SPV_KHR_uniform_group_instructions\0" // IR(3547, 35) - "SPV_KHR_untyped_pointers\0" // IR(3582, 25) - "SPV_KHR_variable_pointers\0" // IR(3607, 26) - "SPV_KHR_vulkan_memory_model\0" // IR(3633, 28) - "SPV_KHR_workgroup_memory_explicit_layout\0" // IR(3661, 41) - "SPV_NVX_multiview_per_view_attributes\0" // IR(3702, 38) - "SPV_NV_bindless_texture\0" // IR(3740, 24) - "SPV_NV_cluster_acceleration_structure\0" // IR(3764, 38) - "SPV_NV_compute_shader_derivatives\0" // IR(3802, 34) - "SPV_NV_cooperative_matrix\0" // IR(3836, 26) - "SPV_NV_cooperative_matrix2\0" // IR(3862, 27) - "SPV_NV_cooperative_vector\0" // IR(3889, 26) - "SPV_NV_displacement_micromap\0" // IR(3915, 29) - "SPV_NV_fragment_shader_barycentric\0" // IR(3944, 35) - "SPV_NV_geometry_shader_passthrough\0" // IR(3979, 35) - "SPV_NV_linear_swept_spheres\0" // IR(4014, 28) - "SPV_NV_mesh_shader\0" // IR(4042, 19) - "SPV_NV_raw_access_chains\0" // IR(4061, 25) - "SPV_NV_ray_tracing\0" // IR(4086, 19) - "SPV_NV_ray_tracing_motion_blur\0" // IR(4105, 31) - "SPV_NV_sample_mask_override_coverage\0" // IR(4136, 37) - "SPV_NV_shader_atomic_fp16_vector\0" // IR(4173, 33) - "SPV_NV_shader_image_footprint\0" // IR(4206, 30) - "SPV_NV_shader_invocation_reorder\0" // IR(4236, 33) - "SPV_NV_shader_sm_builtins\0" // IR(4269, 26) - "SPV_NV_shader_subgroup_partitioned\0" // IR(4295, 35) - "SPV_NV_shading_rate\0" // IR(4330, 20) - "SPV_NV_stereo_view_rendering\0" // IR(4350, 29) - "SPV_NV_tensor_addressing\0" // IR(4379, 25) - "SPV_NV_viewport_array2\0" // IR(4404, 23) - "SPV_QCOM_image_processing\0" // IR(4427, 26) - "SPV_QCOM_image_processing2\0" // IR(4453, 27) - "SPV_QCOM_tile_shading\0" // IR(4480, 22) - "SPV_VALIDATOR_ignore_type_decl_unique\0" // IR(4502, 38) - "ReadOnly\0" // IR(4540, 9) - "Kernel\0" // IR(4549, 7) - "WriteOnly\0" // IR(4556, 10) - "ReadWrite\0" // IR(4566, 10) - "Logical\0" // IR(4576, 8) - "Physical32\0" // IR(4584, 11) - "Addresses\0" // IR(4595, 10) - "Physical64\0" // IR(4605, 11) - "PhysicalStorageBuffer64\0" // IR(4616, 24) - "PhysicalStorageBuffer64EXT\0" // IR(4640, 27) - "PhysicalStorageBufferAddresses\0" // IR(4667, 31) - "Position\0" // IR(4698, 9) - "Shader\0" // IR(4707, 7) - "PointSize\0" // IR(4714, 10) - "ClipDistance\0" // IR(4724, 13) - "CullDistance\0" // IR(4737, 13) - "VertexId\0" // IR(4750, 9) - "InstanceId\0" // IR(4759, 11) - "PrimitiveId\0" // IR(4770, 12) - "Geometry\0" // IR(4782, 9) - "Tessellation\0" // IR(4791, 13) - "RayTracingNV\0" // IR(4804, 13) - "RayTracingKHR\0" // IR(4817, 14) - "MeshShadingNV\0" // IR(4831, 14) - "MeshShadingEXT\0" // IR(4845, 15) - "InvocationId\0" // IR(4860, 13) - "Layer\0" // IR(4873, 6) - "ShaderLayer\0" // IR(4879, 12) - "ShaderViewportIndexLayerEXT\0" // IR(4891, 28) - "ViewportIndex\0" // IR(4919, 14) - "MultiViewport\0" // IR(4933, 14) - "ShaderViewportIndex\0" // IR(4947, 20) - "TessLevelOuter\0" // IR(4967, 15) - "TessLevelInner\0" // IR(4982, 15) - "TessCoord\0" // IR(4997, 10) - "PatchVertices\0" // IR(5007, 14) - "FragCoord\0" // IR(5021, 10) - "PointCoord\0" // IR(5031, 11) - "FrontFacing\0" // IR(5042, 12) - "SampleId\0" // IR(5054, 9) - "SampleRateShading\0" // IR(5063, 18) - "SamplePosition\0" // IR(5081, 15) - "SampleMask\0" // IR(5096, 11) - "FragDepth\0" // IR(5107, 10) - "HelperInvocation\0" // IR(5117, 17) - "NumWorkgroups\0" // IR(5134, 14) - "WorkgroupSize\0" // IR(5148, 14) - "WorkgroupId\0" // IR(5162, 12) - "LocalInvocationId\0" // IR(5174, 18) - "GlobalInvocationId\0" // IR(5192, 19) - "LocalInvocationIndex\0" // IR(5211, 21) - "WorkDim\0" // IR(5232, 8) - "GlobalSize\0" // IR(5240, 11) - "EnqueuedWorkgroupSize\0" // IR(5251, 22) - "GlobalOffset\0" // IR(5273, 13) - "GlobalLinearId\0" // IR(5286, 15) - "SubgroupSize\0" // IR(5301, 13) - "GroupNonUniform\0" // IR(5314, 16) - "SubgroupBallotKHR\0" // IR(5330, 18) - "SubgroupMaxSize\0" // IR(5348, 16) - "NumSubgroups\0" // IR(5364, 13) - "NumEnqueuedSubgroups\0" // IR(5377, 21) - "SubgroupId\0" // IR(5398, 11) - "SubgroupLocalInvocationId\0" // IR(5409, 26) - "VertexIndex\0" // IR(5435, 12) - "InstanceIndex\0" // IR(5447, 14) - "CoreIDARM\0" // IR(5461, 10) - "CoreBuiltinsARM\0" // IR(5471, 16) - "CoreCountARM\0" // IR(5487, 13) - "CoreMaxIDARM\0" // IR(5500, 13) - "WarpIDARM\0" // IR(5513, 10) - "WarpMaxIDARM\0" // IR(5523, 13) - "SubgroupEqMask\0" // IR(5536, 15) - "SubgroupEqMaskKHR\0" // IR(5551, 18) - "GroupNonUniformBallot\0" // IR(5569, 22) - "SubgroupGeMask\0" // IR(5591, 15) - "SubgroupGeMaskKHR\0" // IR(5606, 18) - "SubgroupGtMask\0" // IR(5624, 15) - "SubgroupGtMaskKHR\0" // IR(5639, 18) - "SubgroupLeMask\0" // IR(5657, 15) - "SubgroupLeMaskKHR\0" // IR(5672, 18) - "SubgroupLtMask\0" // IR(5690, 15) - "SubgroupLtMaskKHR\0" // IR(5705, 18) - "BaseVertex\0" // IR(5723, 11) - "DrawParameters\0" // IR(5734, 15) - "BaseInstance\0" // IR(5749, 13) - "DrawIndex\0" // IR(5762, 10) - "PrimitiveShadingRateKHR\0" // IR(5772, 24) - "FragmentShadingRateKHR\0" // IR(5796, 23) - "DeviceIndex\0" // IR(5819, 12) - "DeviceGroup\0" // IR(5831, 12) - "ViewIndex\0" // IR(5843, 10) - "MultiView\0" // IR(5853, 10) - "ShadingRateKHR\0" // IR(5863, 15) - "TileOffsetQCOM\0" // IR(5878, 15) - "TileShadingQCOM\0" // IR(5893, 16) - "TileDimensionQCOM\0" // IR(5909, 18) - "TileApronSizeQCOM\0" // IR(5927, 18) - "BaryCoordNoPerspAMD\0" // IR(5945, 20) - "BaryCoordNoPerspCentroidAMD\0" // IR(5965, 28) - "BaryCoordNoPerspSampleAMD\0" // IR(5993, 26) - "BaryCoordSmoothAMD\0" // IR(6019, 19) - "BaryCoordSmoothCentroidAMD\0" // IR(6038, 27) - "BaryCoordSmoothSampleAMD\0" // IR(6065, 25) - "BaryCoordPullModelAMD\0" // IR(6090, 22) - "FragStencilRefEXT\0" // IR(6112, 18) - "StencilExportEXT\0" // IR(6130, 17) - "RemainingRecursionLevelsAMDX\0" // IR(6147, 29) - "ShaderEnqueueAMDX\0" // IR(6176, 18) - "ShaderIndexAMDX\0" // IR(6194, 16) - "ViewportMaskNV\0" // IR(6210, 15) - "ShaderViewportMaskNV\0" // IR(6225, 21) - "SecondaryPositionNV\0" // IR(6246, 20) - "ShaderStereoViewNV\0" // IR(6266, 19) - "SecondaryViewportMaskNV\0" // IR(6285, 24) - "PositionPerViewNV\0" // IR(6309, 18) - "PerViewAttributesNV\0" // IR(6327, 20) - "ViewportMaskPerViewNV\0" // IR(6347, 22) - "FullyCoveredEXT\0" // IR(6369, 16) - "FragmentFullyCoveredEXT\0" // IR(6385, 24) - "TaskCountNV\0" // IR(6409, 12) - "PrimitiveCountNV\0" // IR(6421, 17) - "PrimitiveIndicesNV\0" // IR(6438, 19) - "ClipDistancePerViewNV\0" // IR(6457, 22) - "CullDistancePerViewNV\0" // IR(6479, 22) - "LayerPerViewNV\0" // IR(6501, 15) - "MeshViewCountNV\0" // IR(6516, 16) - "MeshViewIndicesNV\0" // IR(6532, 18) - "BaryCoordKHR\0" // IR(6550, 13) - "BaryCoordNV\0" // IR(6563, 12) - "FragmentBarycentricKHR\0" // IR(6575, 23) - "BaryCoordNoPerspKHR\0" // IR(6598, 20) - "BaryCoordNoPerspNV\0" // IR(6618, 19) - "FragSizeEXT\0" // IR(6637, 12) - "FragmentSizeNV\0" // IR(6649, 15) - "FragmentDensityEXT\0" // IR(6664, 19) - "FragInvocationCountEXT\0" // IR(6683, 23) - "InvocationsPerPixelNV\0" // IR(6706, 22) - "PrimitivePointIndicesEXT\0" // IR(6728, 25) - "PrimitiveLineIndicesEXT\0" // IR(6753, 24) - "PrimitiveTriangleIndicesEXT\0" // IR(6777, 28) - "CullPrimitiveEXT\0" // IR(6805, 17) - "LaunchIdKHR\0" // IR(6822, 12) - "LaunchIdNV\0" // IR(6834, 11) - "LaunchSizeKHR\0" // IR(6845, 14) - "LaunchSizeNV\0" // IR(6859, 13) - "WorldRayOriginKHR\0" // IR(6872, 18) - "WorldRayOriginNV\0" // IR(6890, 17) - "WorldRayDirectionKHR\0" // IR(6907, 21) - "WorldRayDirectionNV\0" // IR(6928, 20) - "ObjectRayOriginKHR\0" // IR(6948, 19) - "ObjectRayOriginNV\0" // IR(6967, 18) - "ObjectRayDirectionKHR\0" // IR(6985, 22) - "ObjectRayDirectionNV\0" // IR(7007, 21) - "RayTminKHR\0" // IR(7028, 11) - "RayTminNV\0" // IR(7039, 10) - "RayTmaxKHR\0" // IR(7049, 11) - "RayTmaxNV\0" // IR(7060, 10) - "InstanceCustomIndexKHR\0" // IR(7070, 23) - "InstanceCustomIndexNV\0" // IR(7093, 22) - "ObjectToWorldKHR\0" // IR(7115, 17) - "ObjectToWorldNV\0" // IR(7132, 16) - "WorldToObjectKHR\0" // IR(7148, 17) - "WorldToObjectNV\0" // IR(7165, 16) - "HitTNV\0" // IR(7181, 7) - "HitKindKHR\0" // IR(7188, 11) - "HitKindNV\0" // IR(7199, 10) - "CurrentRayTimeNV\0" // IR(7209, 17) - "RayTracingMotionBlurNV\0" // IR(7226, 23) - "HitTriangleVertexPositionsKHR\0" // IR(7249, 30) - "RayTracingPositionFetchKHR\0" // IR(7279, 27) - "HitMicroTriangleVertexPositionsNV\0" // IR(7306, 34) - "RayTracingDisplacementMicromapNV\0" // IR(7340, 33) - "HitMicroTriangleVertexBarycentricsNV\0" // IR(7373, 37) - "IncomingRayFlagsKHR\0" // IR(7410, 20) - "IncomingRayFlagsNV\0" // IR(7430, 19) - "RayGeometryIndexKHR\0" // IR(7449, 20) - "HitIsSphereNV\0" // IR(7469, 14) - "RayTracingSpheresGeometryNV\0" // IR(7483, 28) - "HitIsLSSNV\0" // IR(7511, 11) - "RayTracingLinearSweptSpheresGeometryNV\0" // IR(7522, 39) - "HitSpherePositionNV\0" // IR(7561, 20) - "WarpsPerSMNV\0" // IR(7581, 13) - "ShaderSMBuiltinsNV\0" // IR(7594, 19) - "SMCountNV\0" // IR(7613, 10) - "WarpIDNV\0" // IR(7623, 9) - "SMIDNV\0" // IR(7632, 7) - "HitLSSPositionsNV\0" // IR(7639, 18) - "HitKindFrontFacingMicroTriangleNV\0" // IR(7657, 34) - "HitKindBackFacingMicroTriangleNV\0" // IR(7691, 33) - "HitSphereRadiusNV\0" // IR(7724, 18) - "HitLSSRadiiNV\0" // IR(7742, 14) - "ClusterIDNV\0" // IR(7756, 12) - "RayTracingClusterAccelerationStructureNV\0" // IR(7768, 41) - "CullMaskKHR\0" // IR(7809, 12) - "RayCullMaskKHR\0" // IR(7821, 15) - "Matrix\0" // IR(7836, 7) - "Linkage\0" // IR(7843, 8) - "Vector16\0" // IR(7851, 9) - "Float16Buffer\0" // IR(7860, 14) - "Float16\0" // IR(7874, 8) - "Float64\0" // IR(7882, 8) - "Int64\0" // IR(7890, 6) - "Int64Atomics\0" // IR(7896, 13) - "ImageBasic\0" // IR(7909, 11) - "ImageReadWrite\0" // IR(7920, 15) - "ImageMipmap\0" // IR(7935, 12) - "Pipes\0" // IR(7947, 6) - "Groups\0" // IR(7953, 7) - "DeviceEnqueue\0" // IR(7960, 14) - "LiteralSampler\0" // IR(7974, 15) - "AtomicStorage\0" // IR(7989, 14) - "Int16\0" // IR(8003, 6) - "TessellationPointSize\0" // IR(8009, 22) - "GeometryPointSize\0" // IR(8031, 18) - "ImageGatherExtended\0" // IR(8049, 20) - "StorageImageMultisample\0" // IR(8069, 24) - "UniformBufferArrayDynamicIndexing\0" // IR(8093, 34) - "SampledImageArrayDynamicIndexing\0" // IR(8127, 33) - "StorageBufferArrayDynamicIndexing\0" // IR(8160, 34) - "StorageImageArrayDynamicIndexing\0" // IR(8194, 33) - "ImageCubeArray\0" // IR(8227, 15) - "SampledCubeArray\0" // IR(8242, 17) - "ImageRect\0" // IR(8259, 10) - "SampledRect\0" // IR(8269, 12) - "GenericPointer\0" // IR(8281, 15) - "Int8\0" // IR(8296, 5) - "InputAttachment\0" // IR(8301, 16) - "SparseResidency\0" // IR(8317, 16) - "MinLod\0" // IR(8333, 7) - "Sampled1D\0" // IR(8340, 10) - "Image1D\0" // IR(8350, 8) - "SampledBuffer\0" // IR(8358, 14) - "ImageBuffer\0" // IR(8372, 12) - "ImageMSArray\0" // IR(8384, 13) - "StorageImageExtendedFormats\0" // IR(8397, 28) - "ImageQuery\0" // IR(8425, 11) - "DerivativeControl\0" // IR(8436, 18) - "InterpolationFunction\0" // IR(8454, 22) - "TransformFeedback\0" // IR(8476, 18) - "GeometryStreams\0" // IR(8494, 16) - "StorageImageReadWithoutFormat\0" // IR(8510, 30) - "StorageImageWriteWithoutFormat\0" // IR(8540, 31) - "SubgroupDispatch\0" // IR(8571, 17) - "NamedBarrier\0" // IR(8588, 13) - "PipeStorage\0" // IR(8601, 12) - "GroupNonUniformVote\0" // IR(8613, 20) - "GroupNonUniformArithmetic\0" // IR(8633, 26) - "GroupNonUniformShuffle\0" // IR(8659, 23) - "GroupNonUniformShuffleRelative\0" // IR(8682, 31) - "GroupNonUniformClustered\0" // IR(8713, 25) - "GroupNonUniformQuad\0" // IR(8738, 20) - "UniformDecoration\0" // IR(8758, 18) - "TileImageColorReadAccessEXT\0" // IR(8776, 28) - "TileImageDepthReadAccessEXT\0" // IR(8804, 28) - "TileImageStencilReadAccessEXT\0" // IR(8832, 30) - "TensorsARM\0" // IR(8862, 11) - "StorageTensorArrayDynamicIndexingARM\0" // IR(8873, 37) - "StorageTensorArrayNonUniformIndexingARM\0" // IR(8910, 40) - "CooperativeMatrixLayoutsARM\0" // IR(8950, 28) - "Float8EXT\0" // IR(8978, 10) - "Float8CooperativeMatrixEXT\0" // IR(8988, 27) - "WorkgroupMemoryExplicitLayoutKHR\0" // IR(9015, 33) - "WorkgroupMemoryExplicitLayout8BitAccessKHR\0" // IR(9048, 43) - "WorkgroupMemoryExplicitLayout16BitAccessKHR\0" // IR(9091, 44) - "SubgroupVoteKHR\0" // IR(9135, 16) - "StorageBuffer16BitAccess\0" // IR(9151, 25) - "StorageUniformBufferBlock16\0" // IR(9176, 28) - "UniformAndStorageBuffer16BitAccess\0" // IR(9204, 35) - "StorageUniform16\0" // IR(9239, 17) - "StoragePushConstant16\0" // IR(9256, 22) - "StorageInputOutput16\0" // IR(9278, 21) - "VariablePointersStorageBuffer\0" // IR(9299, 30) - "VariablePointers\0" // IR(9329, 17) - "AtomicStorageOps\0" // IR(9346, 17) - "SampleMaskPostDepthCoverage\0" // IR(9363, 28) - "StorageBuffer8BitAccess\0" // IR(9391, 24) - "UniformAndStorageBuffer8BitAccess\0" // IR(9415, 34) - "StoragePushConstant8\0" // IR(9449, 21) - "DenormPreserve\0" // IR(9470, 15) - "DenormFlushToZero\0" // IR(9485, 18) - "SignedZeroInfNanPreserve\0" // IR(9503, 25) - "RoundingModeRTE\0" // IR(9528, 16) - "RoundingModeRTZ\0" // IR(9544, 16) - "RayQueryProvisionalKHR\0" // IR(9560, 23) - "RayQueryKHR\0" // IR(9583, 12) - "UntypedPointersKHR\0" // IR(9595, 19) - "RayTraversalPrimitiveCullingKHR\0" // IR(9614, 32) - "TextureSampleWeightedQCOM\0" // IR(9646, 26) - "TextureBoxFilterQCOM\0" // IR(9672, 21) - "TextureBlockMatchQCOM\0" // IR(9693, 22) - "TextureBlockMatch2QCOM\0" // IR(9715, 23) - "Float16ImageAMD\0" // IR(9738, 16) - "ImageGatherBiasLodAMD\0" // IR(9754, 22) - "FragmentMaskAMD\0" // IR(9776, 16) - "ImageReadWriteLodAMD\0" // IR(9792, 21) - "Int64ImageEXT\0" // IR(9813, 14) - "ShaderClockKHR\0" // IR(9827, 15) - "QuadControlKHR\0" // IR(9842, 15) - "Int4TypeINTEL\0" // IR(9857, 14) - "Int4CooperativeMatrixINTEL\0" // IR(9871, 27) - "CooperativeMatrixKHR\0" // IR(9898, 21) - "BFloat16TypeKHR\0" // IR(9919, 16) - "BFloat16DotProductKHR\0" // IR(9935, 22) - "BFloat16CooperativeMatrixKHR\0" // IR(9957, 29) - "SampleMaskOverrideCoverageNV\0" // IR(9986, 29) - "GeometryShaderPassthroughNV\0" // IR(10015, 28) - "ShaderViewportIndexLayerNV\0" // IR(10043, 27) - "ImageFootprintNV\0" // IR(10070, 17) - "FragmentBarycentricNV\0" // IR(10087, 22) - "ComputeDerivativeGroupQuadsKHR\0" // IR(10109, 31) - "ComputeDerivativeGroupQuadsNV\0" // IR(10140, 30) - "ShadingRateNV\0" // IR(10170, 14) - "GroupNonUniformPartitionedNV\0" // IR(10184, 29) - "ShaderNonUniform\0" // IR(10213, 17) - "ShaderNonUniformEXT\0" // IR(10230, 20) - "RuntimeDescriptorArray\0" // IR(10250, 23) - "RuntimeDescriptorArrayEXT\0" // IR(10273, 26) - "InputAttachmentArrayDynamicIndexing\0" // IR(10299, 36) - "InputAttachmentArrayDynamicIndexingEXT\0" // IR(10335, 39) - "UniformTexelBufferArrayDynamicIndexing\0" // IR(10374, 39) - "UniformTexelBufferArrayDynamicIndexingEXT\0" // IR(10413, 42) - "StorageTexelBufferArrayDynamicIndexing\0" // IR(10455, 39) - "StorageTexelBufferArrayDynamicIndexingEXT\0" // IR(10494, 42) - "UniformBufferArrayNonUniformIndexing\0" // IR(10536, 37) - "UniformBufferArrayNonUniformIndexingEXT\0" // IR(10573, 40) - "SampledImageArrayNonUniformIndexing\0" // IR(10613, 36) - "SampledImageArrayNonUniformIndexingEXT\0" // IR(10649, 39) - "StorageBufferArrayNonUniformIndexing\0" // IR(10688, 37) - "StorageBufferArrayNonUniformIndexingEXT\0" // IR(10725, 40) - "StorageImageArrayNonUniformIndexing\0" // IR(10765, 36) - "StorageImageArrayNonUniformIndexingEXT\0" // IR(10801, 39) - "InputAttachmentArrayNonUniformIndexing\0" // IR(10840, 39) - "InputAttachmentArrayNonUniformIndexingEXT\0" // IR(10879, 42) - "UniformTexelBufferArrayNonUniformIndexing\0" // IR(10921, 42) - "UniformTexelBufferArrayNonUniformIndexingEXT\0" // IR(10963, 45) - "StorageTexelBufferArrayNonUniformIndexing\0" // IR(11008, 42) - "StorageTexelBufferArrayNonUniformIndexingEXT\0" // IR(11050, 45) - "VulkanMemoryModel\0" // IR(11095, 18) - "VulkanMemoryModelKHR\0" // IR(11113, 21) - "VulkanMemoryModelDeviceScope\0" // IR(11134, 29) - "VulkanMemoryModelDeviceScopeKHR\0" // IR(11163, 32) - "PhysicalStorageBufferAddressesEXT\0" // IR(11195, 34) - "ComputeDerivativeGroupLinearKHR\0" // IR(11229, 32) - "ComputeDerivativeGroupLinearNV\0" // IR(11261, 31) - "RayTracingProvisionalKHR\0" // IR(11292, 25) - "CooperativeMatrixNV\0" // IR(11317, 20) - "FragmentShaderSampleInterlockEXT\0" // IR(11337, 33) - "FragmentShaderShadingRateInterlockEXT\0" // IR(11370, 38) - "FragmentShaderPixelInterlockEXT\0" // IR(11408, 32) - "DemoteToHelperInvocation\0" // IR(11440, 25) - "DemoteToHelperInvocationEXT\0" // IR(11465, 28) - "DisplacementMicromapNV\0" // IR(11493, 23) - "RayTracingOpacityMicromapEXT\0" // IR(11516, 29) - "ShaderInvocationReorderNV\0" // IR(11545, 26) - "BindlessTextureNV\0" // IR(11571, 18) - "RayQueryPositionFetchKHR\0" // IR(11589, 25) - "CooperativeVectorNV\0" // IR(11614, 20) - "AtomicFloat16VectorNV\0" // IR(11634, 22) - "RawAccessChainsNV\0" // IR(11656, 18) - "CooperativeMatrixReductionsNV\0" // IR(11674, 30) - "CooperativeMatrixConversionsNV\0" // IR(11704, 31) - "CooperativeMatrixPerElementOperationsNV\0" // IR(11735, 40) - "CooperativeMatrixTensorAddressingNV\0" // IR(11775, 36) - "CooperativeMatrixBlockLoadsNV\0" // IR(11811, 30) - "CooperativeVectorTrainingNV\0" // IR(11841, 28) - "TensorAddressingNV\0" // IR(11869, 19) - "SubgroupShuffleINTEL\0" // IR(11888, 21) - "SubgroupBufferBlockIOINTEL\0" // IR(11909, 27) - "SubgroupImageBlockIOINTEL\0" // IR(11936, 26) - "SubgroupImageMediaBlockIOINTEL\0" // IR(11962, 31) - "RoundToInfinityINTEL\0" // IR(11993, 21) - "FloatingPointModeINTEL\0" // IR(12014, 23) - "IntegerFunctions2INTEL\0" // IR(12037, 23) - "FunctionPointersINTEL\0" // IR(12060, 22) - "IndirectReferencesINTEL\0" // IR(12082, 24) - "AsmINTEL\0" // IR(12106, 9) - "AtomicFloat32MinMaxEXT\0" // IR(12115, 23) - "AtomicFloat64MinMaxEXT\0" // IR(12138, 23) - "AtomicFloat16MinMaxEXT\0" // IR(12161, 23) - "VectorComputeINTEL\0" // IR(12184, 19) - "VectorAnyINTEL\0" // IR(12203, 15) - "ExpectAssumeKHR\0" // IR(12218, 16) - "SubgroupAvcMotionEstimationINTEL\0" // IR(12234, 33) - "SubgroupAvcMotionEstimationIntraINTEL\0" // IR(12267, 38) - "SubgroupAvcMotionEstimationChromaINTEL\0" // IR(12305, 39) - "VariableLengthArrayINTEL\0" // IR(12344, 25) - "FunctionFloatControlINTEL\0" // IR(12369, 26) - "FPGAMemoryAttributesINTEL\0" // IR(12395, 26) - "FPFastMathModeINTEL\0" // IR(12421, 20) - "ArbitraryPrecisionIntegersINTEL\0" // IR(12441, 32) - "ArbitraryPrecisionFloatingPointINTEL\0" // IR(12473, 37) - "UnstructuredLoopControlsINTEL\0" // IR(12510, 30) - "FPGALoopControlsINTEL\0" // IR(12540, 22) - "KernelAttributesINTEL\0" // IR(12562, 22) - "FPGAKernelAttributesINTEL\0" // IR(12584, 26) - "FPGAMemoryAccessesINTEL\0" // IR(12610, 24) - "FPGAClusterAttributesINTEL\0" // IR(12634, 27) - "LoopFuseINTEL\0" // IR(12661, 14) - "FPGADSPControlINTEL\0" // IR(12675, 20) - "MemoryAccessAliasingINTEL\0" // IR(12695, 26) - "FPGAInvocationPipeliningAttributesINTEL\0" // IR(12721, 40) - "FPGABufferLocationINTEL\0" // IR(12761, 24) - "ArbitraryPrecisionFixedPointINTEL\0" // IR(12785, 34) - "USMStorageClassesINTEL\0" // IR(12819, 23) - "RuntimeAlignedAttributeINTEL\0" // IR(12842, 29) - "IOPipesINTEL\0" // IR(12871, 13) - "BlockingPipesINTEL\0" // IR(12884, 19) - "FPGARegINTEL\0" // IR(12903, 13) - "DotProductInputAll\0" // IR(12916, 19) - "DotProductInputAllKHR\0" // IR(12935, 22) - "DotProductInput4x8Bit\0" // IR(12957, 22) - "DotProductInput4x8BitKHR\0" // IR(12979, 25) - "DotProductInput4x8BitPacked\0" // IR(13004, 28) - "DotProductInput4x8BitPackedKHR\0" // IR(13032, 31) - "DotProduct\0" // IR(13063, 11) - "DotProductKHR\0" // IR(13074, 14) - "ReplicatedCompositesEXT\0" // IR(13088, 24) - "BitInstructions\0" // IR(13112, 16) - "GroupNonUniformRotateKHR\0" // IR(13128, 25) - "FloatControls2\0" // IR(13153, 15) - "AtomicFloat32AddEXT\0" // IR(13168, 20) - "AtomicFloat64AddEXT\0" // IR(13188, 20) - "LongCompositesINTEL\0" // IR(13208, 20) - "OptNoneEXT\0" // IR(13228, 11) - "OptNoneINTEL\0" // IR(13239, 13) - "AtomicFloat16AddEXT\0" // IR(13252, 20) - "DebugInfoModuleINTEL\0" // IR(13272, 21) - "BFloat16ConversionINTEL\0" // IR(13293, 24) - "SplitBarrierINTEL\0" // IR(13317, 18) - "ArithmeticFenceEXT\0" // IR(13335, 19) - "FPGAClusterAttributesV2INTEL\0" // IR(13354, 29) - "FPGAKernelAttributesv2INTEL\0" // IR(13383, 28) - "TaskSequenceINTEL\0" // IR(13411, 18) - "FPMaxErrorINTEL\0" // IR(13429, 16) - "FPGALatencyControlINTEL\0" // IR(13445, 24) - "FPGAArgumentInterfacesINTEL\0" // IR(13469, 28) - "GlobalVariableHostAccessINTEL\0" // IR(13497, 30) - "GlobalVariableFPGADecorationsINTEL\0" // IR(13527, 35) - "SubgroupBufferPrefetchINTEL\0" // IR(13562, 28) - "Subgroup2DBlockIOINTEL\0" // IR(13590, 23) - "Subgroup2DBlockTransformINTEL\0" // IR(13613, 30) - "Subgroup2DBlockTransposeINTEL\0" // IR(13643, 30) - "SubgroupMatrixMultiplyAccumulateINTEL\0" // IR(13673, 38) - "TernaryBitwiseFunctionINTEL\0" // IR(13711, 28) - "GroupUniformArithmeticKHR\0" // IR(13739, 26) - "TensorFloat32RoundingINTEL\0" // IR(13765, 27) - "MaskedGatherScatterINTEL\0" // IR(13792, 25) - "CacheControlsINTEL\0" // IR(13817, 19) - "RegisterLimitsINTEL\0" // IR(13836, 20) - "BindlessImagesINTEL\0" // IR(13856, 20) - "Unspecified\0" // IR(13876, 12) - "Address\0" // IR(13888, 8) - "Boolean\0" // IR(13896, 8) - "Float\0" // IR(13904, 6) - "Signed\0" // IR(13910, 7) - "SignedChar\0" // IR(13917, 11) - "Unsigned\0" // IR(13928, 9) - "UnsignedChar\0" // IR(13937, 13) - "Class\0" // IR(13950, 6) - "Structure\0" // IR(13956, 10) - "Union\0" // IR(13966, 6) - "ImportedModule\0" // IR(13972, 15) - "ImportedDeclaration\0" // IR(13987, 20) - "None\0" // IR(14007, 5) - "FlagIsProtected\0" // IR(14012, 16) - "FlagIsPrivate\0" // IR(14028, 14) - "FlagIsPublic\0" // IR(14042, 13) - "FlagIsLocal\0" // IR(14055, 12) - "FlagIsDefinition\0" // IR(14067, 17) - "FlagFwdDecl\0" // IR(14084, 12) - "FlagArtificial\0" // IR(14096, 15) - "FlagExplicit\0" // IR(14111, 13) - "FlagPrototyped\0" // IR(14124, 15) - "FlagObjectPointer\0" // IR(14139, 18) - "FlagStaticMember\0" // IR(14157, 17) - "FlagIndirectVariable\0" // IR(14174, 21) - "FlagLValueReference\0" // IR(14195, 20) - "FlagRValueReference\0" // IR(14215, 20) - "FlagIsOptimized\0" // IR(14235, 16) - "FlagIsEnumClass\0" // IR(14251, 16) - "FlagTypePassByValue\0" // IR(14267, 20) - "FlagTypePassByReference\0" // IR(14287, 24) - "Deref\0" // IR(14311, 6) - "Plus\0" // IR(14317, 5) - "Minus\0" // IR(14322, 6) - "SPV_OPERAND_TYPE_LITERAL_INTEGER\0" // IR(14328, 33) - "PlusUconst\0" // IR(14361, 11) - "BitPiece\0" // IR(14372, 9) - "Swap\0" // IR(14381, 5) - "Xderef\0" // IR(14386, 7) - "StackValue\0" // IR(14393, 11) - "Constu\0" // IR(14404, 7) - "Fragment\0" // IR(14411, 9) - "ConstType\0" // IR(14420, 10) - "VolatileType\0" // IR(14430, 13) - "RestrictType\0" // IR(14443, 13) - "AtomicType\0" // IR(14456, 11) - "Float16NV\0" // IR(14467, 10) - "Float32NV\0" // IR(14477, 10) - "Float64NV\0" // IR(14487, 10) - "SignedInt8NV\0" // IR(14497, 13) - "SignedInt16NV\0" // IR(14510, 14) - "SignedInt32NV\0" // IR(14524, 14) - "SignedInt64NV\0" // IR(14538, 14) - "UnsignedInt8NV\0" // IR(14552, 15) - "UnsignedInt16NV\0" // IR(14567, 16) - "UnsignedInt32NV\0" // IR(14583, 16) - "UnsignedInt64NV\0" // IR(14599, 16) - "SignedInt8PackedNV\0" // IR(14615, 19) - "UnsignedInt8PackedNV\0" // IR(14634, 21) - "FloatE4M3NV\0" // IR(14655, 12) - "FloatE5M2NV\0" // IR(14667, 12) - "RowMajorKHR\0" // IR(14679, 12) - "ColumnMajorKHR\0" // IR(14691, 15) - "RowBlockedInterleavedARM\0" // IR(14706, 25) - "ColumnBlockedInterleavedARM\0" // IR(14731, 28) - "NoneKHR\0" // IR(14759, 8) - "MatrixASignedComponentsKHR\0" // IR(14767, 27) - "MatrixBSignedComponentsKHR\0" // IR(14794, 27) - "MatrixCSignedComponentsKHR\0" // IR(14821, 27) - "MatrixResultSignedComponentsKHR\0" // IR(14848, 32) - "SaturatingAccumulationKHR\0" // IR(14880, 26) - "Row\0" // IR(14906, 4) - "Column\0" // IR(14910, 7) - "2x2\0" // IR(14917, 4) - "MatrixAKHR\0" // IR(14921, 11) - "MatrixBKHR\0" // IR(14932, 11) - "MatrixAccumulatorKHR\0" // IR(14943, 21) - "RowMajorNV\0" // IR(14964, 11) - "ColumnMajorNV\0" // IR(14975, 14) - "InferencingOptimalNV\0" // IR(14989, 21) - "TrainingOptimalNV\0" // IR(15010, 18) - "RelaxedPrecision\0" // IR(15028, 17) - "SpecId\0" // IR(15045, 7) - "Block\0" // IR(15052, 6) - "BufferBlock\0" // IR(15058, 12) - "RowMajor\0" // IR(15070, 9) - "ColMajor\0" // IR(15079, 9) - "ArrayStride\0" // IR(15088, 12) - "MatrixStride\0" // IR(15100, 13) - "GLSLShared\0" // IR(15113, 11) - "GLSLPacked\0" // IR(15124, 11) - "CPacked\0" // IR(15135, 8) - "SPV_OPERAND_TYPE_BUILT_IN\0" // IR(15143, 26) - "BuiltIn\0" // IR(15169, 8) - "NoPerspective\0" // IR(15177, 14) - "Flat\0" // IR(15191, 5) - "Patch\0" // IR(15196, 6) - "Centroid\0" // IR(15202, 9) - "Sample\0" // IR(15211, 7) - "Invariant\0" // IR(15218, 10) - "Restrict\0" // IR(15228, 9) - "Aliased\0" // IR(15237, 8) - "Volatile\0" // IR(15245, 9) - "Constant\0" // IR(15254, 9) - "Coherent\0" // IR(15263, 9) - "NonWritable\0" // IR(15272, 12) - "NonReadable\0" // IR(15284, 12) - "Uniform\0" // IR(15296, 8) - "SPV_OPERAND_TYPE_SCOPE_ID\0" // IR(15304, 26) - "UniformId\0" // IR(15330, 10) - "SaturatedConversion\0" // IR(15340, 20) - "Stream\0" // IR(15360, 7) - "Location\0" // IR(15367, 9) - "Component\0" // IR(15376, 10) - "Index\0" // IR(15386, 6) - "Binding\0" // IR(15392, 8) - "DescriptorSet\0" // IR(15400, 14) - "Offset\0" // IR(15414, 7) - "XfbBuffer\0" // IR(15421, 10) - "XfbStride\0" // IR(15431, 10) - "SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE\0" // IR(15441, 46) - "FuncParamAttr\0" // IR(15487, 14) - "SPV_OPERAND_TYPE_FP_ROUNDING_MODE\0" // IR(15501, 34) - "FPRoundingMode\0" // IR(15535, 15) - "SPV_OPERAND_TYPE_FP_FAST_MATH_MODE\0" // IR(15550, 35) - "FPFastMathMode\0" // IR(15585, 15) - "SPV_OPERAND_TYPE_LITERAL_STRING\0" // IR(15600, 32) - "SPV_OPERAND_TYPE_LINKAGE_TYPE\0" // IR(15632, 30) - "LinkageAttributes\0" // IR(15662, 18) - "NoContraction\0" // IR(15680, 14) - "InputAttachmentIndex\0" // IR(15694, 21) - "Alignment\0" // IR(15715, 10) - "MaxByteOffset\0" // IR(15725, 14) - "SPV_OPERAND_TYPE_ID\0" // IR(15739, 20) - "AlignmentId\0" // IR(15759, 12) - "MaxByteOffsetId\0" // IR(15771, 16) - "SaturatedToLargestFloat8NormalConversionEXT\0" // IR(15787, 44) - "NoSignedWrap\0" // IR(15831, 13) - "NoUnsignedWrap\0" // IR(15844, 15) - "WeightTextureQCOM\0" // IR(15859, 18) - "BlockMatchTextureQCOM\0" // IR(15877, 22) - "BlockMatchSamplerQCOM\0" // IR(15899, 22) - "ExplicitInterpAMD\0" // IR(15921, 18) - "NodeSharesPayloadLimitsWithAMDX\0" // IR(15939, 32) - "NodeMaxPayloadsAMDX\0" // IR(15971, 20) - "TrackFinishWritingAMDX\0" // IR(15991, 23) - "PayloadNodeNameAMDX\0" // IR(16014, 20) - "PayloadNodeBaseIndexAMDX\0" // IR(16034, 25) - "PayloadNodeSparseArrayAMDX\0" // IR(16059, 27) - "PayloadNodeArraySizeAMDX\0" // IR(16086, 25) - "PayloadDispatchIndirectAMDX\0" // IR(16111, 28) - "OverrideCoverageNV\0" // IR(16139, 19) - "PassthroughNV\0" // IR(16158, 14) - "ViewportRelativeNV\0" // IR(16172, 19) - "SecondaryViewportRelativeNV\0" // IR(16191, 28) - "PerPrimitiveEXT\0" // IR(16219, 16) - "PerPrimitiveNV\0" // IR(16235, 15) - "PerViewNV\0" // IR(16250, 10) - "PerTaskNV\0" // IR(16260, 10) - "PerVertexKHR\0" // IR(16270, 13) - "PerVertexNV\0" // IR(16283, 12) - "NonUniform\0" // IR(16295, 11) - "NonUniformEXT\0" // IR(16306, 14) - "RestrictPointer\0" // IR(16320, 16) - "RestrictPointerEXT\0" // IR(16336, 19) - "AliasedPointer\0" // IR(16355, 15) - "AliasedPointerEXT\0" // IR(16370, 18) - "HitObjectShaderRecordBufferNV\0" // IR(16388, 30) - "BindlessSamplerNV\0" // IR(16418, 18) - "BindlessImageNV\0" // IR(16436, 16) - "BoundSamplerNV\0" // IR(16452, 15) - "BoundImageNV\0" // IR(16467, 13) - "SIMTCallINTEL\0" // IR(16480, 14) - "ReferencedIndirectlyINTEL\0" // IR(16494, 26) - "ClobberINTEL\0" // IR(16520, 13) - "SideEffectsINTEL\0" // IR(16533, 17) - "VectorComputeVariableINTEL\0" // IR(16550, 27) - "FuncParamIOKindINTEL\0" // IR(16577, 21) - "VectorComputeFunctionINTEL\0" // IR(16598, 27) - "StackCallINTEL\0" // IR(16625, 15) - "GlobalVariableOffsetINTEL\0" // IR(16640, 26) - "CounterBuffer\0" // IR(16666, 14) - "HlslCounterBufferGOOGLE\0" // IR(16680, 24) - "UserSemantic\0" // IR(16704, 13) - "HlslSemanticGOOGLE\0" // IR(16717, 19) - "UserTypeGOOGLE\0" // IR(16736, 15) - "FunctionRoundingModeINTEL\0" // IR(16751, 26) - "SPV_OPERAND_TYPE_FPDENORM_MODE\0" // IR(16777, 31) - "FunctionDenormModeINTEL\0" // IR(16808, 24) - "RegisterINTEL\0" // IR(16832, 14) - "MemoryINTEL\0" // IR(16846, 12) - "NumbanksINTEL\0" // IR(16858, 14) - "BankwidthINTEL\0" // IR(16872, 15) - "MaxPrivateCopiesINTEL\0" // IR(16887, 22) - "SinglepumpINTEL\0" // IR(16909, 16) - "DoublepumpINTEL\0" // IR(16925, 16) - "MaxReplicatesINTEL\0" // IR(16941, 19) - "SimpleDualPortINTEL\0" // IR(16960, 20) - "MergeINTEL\0" // IR(16980, 11) - "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER\0" // IR(16991, 42) - "BankBitsINTEL\0" // IR(17033, 14) - "ForcePow2DepthINTEL\0" // IR(17047, 20) - "StridesizeINTEL\0" // IR(17067, 16) - "WordsizeINTEL\0" // IR(17083, 14) - "TrueDualPortINTEL\0" // IR(17097, 18) - "BurstCoalesceINTEL\0" // IR(17115, 19) - "CacheSizeINTEL\0" // IR(17134, 15) - "DontStaticallyCoalesceINTEL\0" // IR(17149, 28) - "PrefetchINTEL\0" // IR(17177, 14) - "StallEnableINTEL\0" // IR(17191, 17) - "FuseLoopsInFunctionINTEL\0" // IR(17208, 25) - "MathOpDSPModeINTEL\0" // IR(17233, 19) - "AliasScopeINTEL\0" // IR(17252, 16) - "NoAliasINTEL\0" // IR(17268, 13) - "InitiationIntervalINTEL\0" // IR(17281, 24) - "MaxConcurrencyINTEL\0" // IR(17305, 20) - "PipelineEnableINTEL\0" // IR(17325, 20) - "BufferLocationINTEL\0" // IR(17345, 20) - "IOPipeStorageINTEL\0" // IR(17365, 19) - "SPV_OPERAND_TYPE_FPOPERATION_MODE\0" // IR(17384, 34) - "FunctionFloatingPointModeINTEL\0" // IR(17418, 31) - "SingleElementVectorINTEL\0" // IR(17449, 25) - "VectorComputeCallableFunctionINTEL\0" // IR(17474, 35) - "MediaBlockIOINTEL\0" // IR(17509, 18) - "StallFreeINTEL\0" // IR(17527, 15) - "SPV_OPERAND_TYPE_LITERAL_FLOAT\0" // IR(17542, 31) - "FPMaxErrorDecorationINTEL\0" // IR(17573, 26) - "LatencyControlLabelINTEL\0" // IR(17599, 25) - "LatencyControlConstraintINTEL\0" // IR(17624, 30) - "ConduitKernelArgumentINTEL\0" // IR(17654, 27) - "RegisterMapKernelArgumentINTEL\0" // IR(17681, 31) - "MMHostInterfaceAddressWidthINTEL\0" // IR(17712, 33) - "MMHostInterfaceDataWidthINTEL\0" // IR(17745, 30) - "MMHostInterfaceLatencyINTEL\0" // IR(17775, 28) - "SPV_OPERAND_TYPE_ACCESS_QUALIFIER\0" // IR(17803, 34) - "MMHostInterfaceReadWriteModeINTEL\0" // IR(17837, 34) - "MMHostInterfaceMaxBurstINTEL\0" // IR(17871, 29) - "MMHostInterfaceWaitRequestINTEL\0" // IR(17900, 32) - "StableKernelArgumentINTEL\0" // IR(17932, 26) - "SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER\0" // IR(17958, 39) - "HostAccessINTEL\0" // IR(17997, 16) - "SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER\0" // IR(18013, 47) - "InitModeINTEL\0" // IR(18060, 14) - "ImplementInRegisterMapINTEL\0" // IR(18074, 28) - "SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL\0" // IR(18102, 36) - "CacheControlLoadINTEL\0" // IR(18138, 22) - "SPV_OPERAND_TYPE_STORE_CACHE_CONTROL\0" // IR(18160, 37) - "CacheControlStoreINTEL\0" // IR(18197, 23) - "1D\0" // IR(18220, 3) - "2D\0" // IR(18223, 3) - "3D\0" // IR(18226, 3) - "Cube\0" // IR(18229, 5) - "Rect\0" // IR(18234, 5) - "Buffer\0" // IR(18239, 7) - "SubpassData\0" // IR(18246, 12) - "TileImageDataEXT\0" // IR(18258, 17) - "Invocations\0" // IR(18275, 12) - "SpacingEqual\0" // IR(18287, 13) - "SpacingFractionalEven\0" // IR(18300, 22) - "SpacingFractionalOdd\0" // IR(18322, 21) - "VertexOrderCw\0" // IR(18343, 14) - "VertexOrderCcw\0" // IR(18357, 15) - "PixelCenterInteger\0" // IR(18372, 19) - "OriginUpperLeft\0" // IR(18391, 16) - "OriginLowerLeft\0" // IR(18407, 16) - "EarlyFragmentTests\0" // IR(18423, 19) - "PointMode\0" // IR(18442, 10) - "Xfb\0" // IR(18452, 4) - "DepthReplacing\0" // IR(18456, 15) - "DepthGreater\0" // IR(18471, 13) - "DepthLess\0" // IR(18484, 10) - "DepthUnchanged\0" // IR(18494, 15) - "LocalSize\0" // IR(18509, 10) - "LocalSizeHint\0" // IR(18519, 14) - "InputPoints\0" // IR(18533, 12) - "InputLines\0" // IR(18545, 11) - "InputLinesAdjacency\0" // IR(18556, 20) - "Triangles\0" // IR(18576, 10) - "InputTrianglesAdjacency\0" // IR(18586, 24) - "Quads\0" // IR(18610, 6) - "Isolines\0" // IR(18616, 9) - "OutputVertices\0" // IR(18625, 15) - "OutputPoints\0" // IR(18640, 13) - "OutputLineStrip\0" // IR(18653, 16) - "OutputTriangleStrip\0" // IR(18669, 20) - "VecTypeHint\0" // IR(18689, 12) - "ContractionOff\0" // IR(18701, 15) - "Initializer\0" // IR(18716, 12) - "Finalizer\0" // IR(18728, 10) - "SubgroupsPerWorkgroup\0" // IR(18738, 22) - "SubgroupsPerWorkgroupId\0" // IR(18760, 24) - "LocalSizeId\0" // IR(18784, 12) - "LocalSizeHintId\0" // IR(18796, 16) - "NonCoherentColorAttachmentReadEXT\0" // IR(18812, 34) - "NonCoherentDepthAttachmentReadEXT\0" // IR(18846, 34) - "NonCoherentStencilAttachmentReadEXT\0" // IR(18880, 36) - "SubgroupUniformControlFlowKHR\0" // IR(18916, 30) - "PostDepthCoverage\0" // IR(18946, 18) - "NonCoherentTileAttachmentReadQCOM\0" // IR(18964, 34) - "TileShadingRateQCOM\0" // IR(18998, 20) - "EarlyAndLateFragmentTestsAMD\0" // IR(19018, 29) - "StencilRefReplacingEXT\0" // IR(19047, 23) - "CoalescingAMDX\0" // IR(19070, 15) - "IsApiEntryAMDX\0" // IR(19085, 15) - "MaxNodeRecursionAMDX\0" // IR(19100, 21) - "StaticNumWorkgroupsAMDX\0" // IR(19121, 24) - "MaxNumWorkgroupsAMDX\0" // IR(19145, 21) - "StencilRefUnchangedFrontAMD\0" // IR(19166, 28) - "StencilRefGreaterFrontAMD\0" // IR(19194, 26) - "StencilRefLessFrontAMD\0" // IR(19220, 23) - "StencilRefUnchangedBackAMD\0" // IR(19243, 27) - "StencilRefGreaterBackAMD\0" // IR(19270, 25) - "StencilRefLessBackAMD\0" // IR(19295, 22) - "QuadDerivativesKHR\0" // IR(19317, 19) - "RequireFullQuadsKHR\0" // IR(19336, 20) - "SharesInputWithAMDX\0" // IR(19356, 20) - "OutputLinesEXT\0" // IR(19376, 15) - "OutputLinesNV\0" // IR(19391, 14) - "OutputPrimitivesEXT\0" // IR(19405, 20) - "OutputPrimitivesNV\0" // IR(19425, 19) - "DerivativeGroupQuadsKHR\0" // IR(19444, 24) - "DerivativeGroupQuadsNV\0" // IR(19468, 23) - "DerivativeGroupLinearKHR\0" // IR(19491, 25) - "DerivativeGroupLinearNV\0" // IR(19516, 24) - "OutputTrianglesEXT\0" // IR(19540, 19) - "OutputTrianglesNV\0" // IR(19559, 18) - "PixelInterlockOrderedEXT\0" // IR(19577, 25) - "PixelInterlockUnorderedEXT\0" // IR(19602, 27) - "SampleInterlockOrderedEXT\0" // IR(19629, 26) - "SampleInterlockUnorderedEXT\0" // IR(19655, 28) - "ShadingRateInterlockOrderedEXT\0" // IR(19683, 31) - "ShadingRateInterlockUnorderedEXT\0" // IR(19714, 33) - "SharedLocalMemorySizeINTEL\0" // IR(19747, 27) - "RoundingModeRTPINTEL\0" // IR(19774, 21) - "RoundingModeRTNINTEL\0" // IR(19795, 21) - "FloatingPointModeALTINTEL\0" // IR(19816, 26) - "FloatingPointModeIEEEINTEL\0" // IR(19842, 27) - "MaxWorkgroupSizeINTEL\0" // IR(19869, 22) - "MaxWorkDimINTEL\0" // IR(19891, 16) - "NoGlobalOffsetINTEL\0" // IR(19907, 20) - "NumSIMDWorkitemsINTEL\0" // IR(19927, 22) - "SchedulerTargetFmaxMhzINTEL\0" // IR(19949, 28) - "MaximallyReconvergesKHR\0" // IR(19977, 24) - "FPFastMathDefault\0" // IR(20001, 18) - "StreamingInterfaceINTEL\0" // IR(20019, 24) - "RegisterMapInterfaceINTEL\0" // IR(20043, 26) - "NamedBarrierCountINTEL\0" // IR(20069, 23) - "MaximumRegistersINTEL\0" // IR(20092, 22) - "MaximumRegistersIdINTEL\0" // IR(20114, 24) - "SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS\0" // IR(20138, 51) - "NamedMaximumRegistersINTEL\0" // IR(20189, 27) - "Vertex\0" // IR(20216, 7) - "TessellationControl\0" // IR(20223, 20) - "TessellationEvaluation\0" // IR(20243, 23) - "GLCompute\0" // IR(20266, 10) - "TaskNV\0" // IR(20276, 7) - "MeshNV\0" // IR(20283, 7) - "RayGenerationKHR\0" // IR(20290, 17) - "RayGenerationNV\0" // IR(20307, 16) - "IntersectionKHR\0" // IR(20323, 16) - "IntersectionNV\0" // IR(20339, 15) - "AnyHitKHR\0" // IR(20354, 10) - "AnyHitNV\0" // IR(20364, 9) - "ClosestHitKHR\0" // IR(20373, 14) - "ClosestHitNV\0" // IR(20387, 13) - "MissKHR\0" // IR(20400, 8) - "MissNV\0" // IR(20408, 7) - "CallableKHR\0" // IR(20415, 12) - "CallableNV\0" // IR(20427, 11) - "TaskEXT\0" // IR(20438, 8) - "MeshEXT\0" // IR(20446, 8) - "Preserve\0" // IR(20454, 9) - "FlushToZero\0" // IR(20463, 12) - "BFloat16KHR\0" // IR(20475, 12) - "Float8E4M3EXT\0" // IR(20487, 14) - "Float8E5M2EXT\0" // IR(20501, 14) - "IEEE\0" // IR(20515, 5) - "ALT\0" // IR(20520, 4) - "NotNaN\0" // IR(20524, 7) - "NotInf\0" // IR(20531, 7) - "NSZ\0" // IR(20538, 4) - "AllowRecip\0" // IR(20542, 11) - "Fast\0" // IR(20553, 5) - "AllowContract\0" // IR(20558, 14) - "AllowContractFastINTEL\0" // IR(20572, 23) - "AllowReassoc\0" // IR(20595, 13) - "AllowReassocINTEL\0" // IR(20608, 18) - "AllowTransform\0" // IR(20626, 15) - "RTE\0" // IR(20641, 4) - "RTZ\0" // IR(20645, 4) - "RTP\0" // IR(20649, 4) - "RTN\0" // IR(20653, 4) - "Vertical2Pixels\0" // IR(20657, 16) - "Vertical4Pixels\0" // IR(20673, 16) - "Horizontal2Pixels\0" // IR(20689, 18) - "Horizontal4Pixels\0" // IR(20707, 18) - "Inline\0" // IR(20725, 7) - "DontInline\0" // IR(20732, 11) - "Pure\0" // IR(20743, 5) - "Const\0" // IR(20748, 6) - "Zext\0" // IR(20754, 5) - "Sext\0" // IR(20759, 5) - "ByVal\0" // IR(20764, 6) - "Sret\0" // IR(20770, 5) - "NoAlias\0" // IR(20775, 8) - "NoCapture\0" // IR(20783, 10) - "NoWrite\0" // IR(20793, 8) - "NoReadWrite\0" // IR(20801, 12) - "RuntimeAlignedINTEL\0" // IR(20813, 20) - "Reduce\0" // IR(20833, 7) - "InclusiveScan\0" // IR(20840, 14) - "ExclusiveScan\0" // IR(20854, 14) - "ClusteredReduce\0" // IR(20868, 16) - "PartitionedReduceNV\0" // IR(20884, 20) - "PartitionedInclusiveScanNV\0" // IR(20904, 27) - "PartitionedExclusiveScanNV\0" // IR(20931, 27) - "NoneINTEL\0" // IR(20958, 10) - "ReadINTEL\0" // IR(20968, 10) - "WriteINTEL\0" // IR(20978, 11) - "ReadWriteINTEL\0" // IR(20989, 15) - "Bias\0" // IR(21004, 5) - "Lod\0" // IR(21009, 4) - "Grad\0" // IR(21013, 5) - "ConstOffset\0" // IR(21018, 12) - "ConstOffsets\0" // IR(21030, 13) - "MakeTexelAvailable\0" // IR(21043, 19) - "MakeTexelAvailableKHR\0" // IR(21062, 22) - "MakeTexelVisible\0" // IR(21084, 17) - "MakeTexelVisibleKHR\0" // IR(21101, 20) - "NonPrivateTexel\0" // IR(21121, 16) - "NonPrivateTexelKHR\0" // IR(21137, 19) - "VolatileTexel\0" // IR(21156, 14) - "VolatileTexelKHR\0" // IR(21170, 17) - "SignExtend\0" // IR(21187, 11) - "ZeroExtend\0" // IR(21198, 11) - "Nontemporal\0" // IR(21209, 12) - "Offsets\0" // IR(21221, 8) - "SnormInt8\0" // IR(21229, 10) - "SnormInt16\0" // IR(21239, 11) - "UnormInt8\0" // IR(21250, 10) - "UnormInt16\0" // IR(21260, 11) - "UnormShort565\0" // IR(21271, 14) - "UnormShort555\0" // IR(21285, 14) - "UnormInt101010\0" // IR(21299, 15) - "SignedInt8\0" // IR(21314, 11) - "SignedInt16\0" // IR(21325, 12) - "SignedInt32\0" // IR(21337, 12) - "UnsignedInt8\0" // IR(21349, 13) - "UnsignedInt16\0" // IR(21362, 14) - "UnsignedInt32\0" // IR(21376, 14) - "HalfFloat\0" // IR(21390, 10) - "UnormInt24\0" // IR(21400, 11) - "UnormInt101010_2\0" // IR(21411, 17) - "UnormInt10X6EXT\0" // IR(21428, 16) - "UnsignedIntRaw10EXT\0" // IR(21444, 20) - "UnsignedIntRaw12EXT\0" // IR(21464, 20) - "UnormInt2_101010EXT\0" // IR(21484, 20) - "UnsignedInt10X6EXT\0" // IR(21504, 19) - "UnsignedInt12X4EXT\0" // IR(21523, 19) - "UnsignedInt14X2EXT\0" // IR(21542, 19) - "UnormInt12X4EXT\0" // IR(21561, 16) - "UnormInt14X2EXT\0" // IR(21577, 16) - "R\0" // IR(21593, 2) - "A\0" // IR(21595, 2) - "RG\0" // IR(21597, 3) - "RA\0" // IR(21600, 3) - "RGB\0" // IR(21603, 4) - "RGBA\0" // IR(21607, 5) - "BGRA\0" // IR(21612, 5) - "ARGB\0" // IR(21617, 5) - "Intensity\0" // IR(21622, 10) - "Luminance\0" // IR(21632, 10) - "Rx\0" // IR(21642, 3) - "RGx\0" // IR(21645, 4) - "RGBx\0" // IR(21649, 5) - "Depth\0" // IR(21654, 6) - "DepthStencil\0" // IR(21660, 13) - "sRGB\0" // IR(21673, 5) - "sRGBx\0" // IR(21678, 6) - "sRGBA\0" // IR(21684, 6) - "sBGRA\0" // IR(21690, 6) - "ABGR\0" // IR(21696, 5) - "InitOnDeviceReprogramINTEL\0" // IR(21701, 27) - "InitOnDeviceResetINTEL\0" // IR(21728, 23) - "NoWait\0" // IR(21751, 7) - "WaitKernel\0" // IR(21758, 11) - "WaitWorkGroup\0" // IR(21769, 14) - "CmdExecTime\0" // IR(21783, 12) - "MayUsePrintf\0" // IR(21795, 13) - "Export\0" // IR(21808, 7) - "Import\0" // IR(21815, 7) - "LinkOnceODR\0" // IR(21822, 12) - "UncachedINTEL\0" // IR(21834, 14) - "CachedINTEL\0" // IR(21848, 12) - "StreamingINTEL\0" // IR(21860, 15) - "InvalidateAfterReadINTEL\0" // IR(21875, 25) - "ConstCachedINTEL\0" // IR(21900, 17) - "Unroll\0" // IR(21917, 7) - "DontUnroll\0" // IR(21924, 11) - "DependencyInfinite\0" // IR(21935, 19) - "DependencyLength\0" // IR(21954, 17) - "MinIterations\0" // IR(21971, 14) - "MaxIterations\0" // IR(21985, 14) - "IterationMultiple\0" // IR(21999, 18) - "PeelCount\0" // IR(22017, 10) - "PartialCount\0" // IR(22027, 13) - "DependencyArrayINTEL\0" // IR(22040, 21) - "LoopCoalesceINTEL\0" // IR(22061, 18) - "MaxInterleavingINTEL\0" // IR(22079, 21) - "SpeculatedIterationsINTEL\0" // IR(22100, 26) - "NoFusionINTEL\0" // IR(22126, 14) - "LoopCountINTEL\0" // IR(22140, 15) - "MaxReinvocationDelayINTEL\0" // IR(22155, 26) - "MatrixASignedComponentsINTEL\0" // IR(22181, 29) - "MatrixBSignedComponentsINTEL\0" // IR(22210, 29) - "MatrixCBFloat16INTEL\0" // IR(22239, 21) - "MatrixResultBFloat16INTEL\0" // IR(22260, 26) - "MatrixAPackedInt8INTEL\0" // IR(22286, 23) - "MatrixBPackedInt8INTEL\0" // IR(22309, 23) - "MatrixAPackedInt4INTEL\0" // IR(22332, 23) - "MatrixBPackedInt4INTEL\0" // IR(22355, 23) - "MatrixATF32INTEL\0" // IR(22378, 17) - "MatrixBTF32INTEL\0" // IR(22395, 17) - "MatrixAPackedFloat16INTEL\0" // IR(22412, 26) - "MatrixBPackedFloat16INTEL\0" // IR(22438, 26) - "MatrixAPackedBFloat16INTEL\0" // IR(22464, 27) - "MatrixBPackedBFloat16INTEL\0" // IR(22491, 27) - "Aligned\0" // IR(22518, 8) - "MakePointerAvailable\0" // IR(22526, 21) - "MakePointerAvailableKHR\0" // IR(22547, 24) - "MakePointerVisible\0" // IR(22571, 19) - "MakePointerVisibleKHR\0" // IR(22590, 22) - "NonPrivatePointer\0" // IR(22612, 18) - "NonPrivatePointerKHR\0" // IR(22630, 21) - "AliasScopeINTELMask\0" // IR(22651, 20) - "NoAliasINTELMask\0" // IR(22671, 17) - "Simple\0" // IR(22688, 7) - "GLSL450\0" // IR(22695, 8) - "OpenCL\0" // IR(22703, 7) - "Vulkan\0" // IR(22710, 7) - "VulkanKHR\0" // IR(22717, 10) - "Relaxed\0" // IR(22727, 8) - "Acquire\0" // IR(22735, 8) - "Release\0" // IR(22743, 8) - "AcquireRelease\0" // IR(22751, 15) - "SequentiallyConsistent\0" // IR(22766, 23) - "UniformMemory\0" // IR(22789, 14) - "SubgroupMemory\0" // IR(22803, 15) - "WorkgroupMemory\0" // IR(22818, 16) - "CrossWorkgroupMemory\0" // IR(22834, 21) - "AtomicCounterMemory\0" // IR(22855, 20) - "ImageMemory\0" // IR(22875, 12) - "OutputMemory\0" // IR(22887, 13) - "OutputMemoryKHR\0" // IR(22900, 16) - "MakeAvailable\0" // IR(22916, 14) - "MakeAvailableKHR\0" // IR(22930, 17) - "MakeVisible\0" // IR(22947, 12) - "MakeVisibleKHR\0" // IR(22959, 15) - "AutoINTEL\0" // IR(22974, 10) - "WRAP\0" // IR(22984, 5) - "SAT\0" // IR(22989, 4) - "SAT_ZERO\0" // IR(22993, 9) - "SAT_SYM\0" // IR(23002, 8) - "PackedVectorFormat4x8Bit\0" // IR(23010, 25) - "PackedVectorFormat4x8BitKHR\0" // IR(23035, 28) - "TRN\0" // IR(23063, 4) - "TRN_ZERO\0" // IR(23067, 9) - "RND\0" // IR(23076, 4) - "RND_ZERO\0" // IR(23080, 9) - "RND_INF\0" // IR(23089, 8) - "RND_MIN_INF\0" // IR(23097, 12) - "RND_CONV\0" // IR(23109, 9) - "RND_CONV_ODD\0" // IR(23118, 13) - "RobustnessPerComponentNV\0" // IR(23131, 25) - "RobustnessPerElementNV\0" // IR(23156, 23) - "OpaqueKHR\0" // IR(23179, 10) - "NoOpaqueKHR\0" // IR(23189, 12) - "TerminateOnFirstHitKHR\0" // IR(23201, 23) - "SkipClosestHitShaderKHR\0" // IR(23224, 24) - "CullBackFacingTrianglesKHR\0" // IR(23248, 27) - "CullFrontFacingTrianglesKHR\0" // IR(23275, 28) - "CullOpaqueKHR\0" // IR(23303, 14) - "CullNoOpaqueKHR\0" // IR(23317, 16) - "SkipTrianglesKHR\0" // IR(23333, 17) - "SkipBuiltinPrimitivesNV\0" // IR(23350, 24) - "SkipAABBsKHR\0" // IR(23374, 13) - "ForceOpacityMicromap2StateEXT\0" // IR(23387, 30) - "RayQueryCandidateIntersectionTriangleKHR\0" // IR(23417, 41) - "RayQueryCandidateIntersectionAABBKHR\0" // IR(23458, 37) - "RayQueryCommittedIntersectionNoneKHR\0" // IR(23495, 37) - "RayQueryCommittedIntersectionTriangleKHR\0" // IR(23532, 41) - "RayQueryCommittedIntersectionGeneratedKHR\0" // IR(23573, 42) - "RayQueryCandidateIntersectionKHR\0" // IR(23615, 33) - "RayQueryCommittedIntersectionKHR\0" // IR(23648, 33) - "ClampToEdge\0" // IR(23681, 12) - "Clamp\0" // IR(23693, 6) - "Repeat\0" // IR(23699, 7) - "RepeatMirrored\0" // IR(23706, 15) - "Nearest\0" // IR(23721, 8) - "Linear\0" // IR(23729, 7) - "Unknown\0" // IR(23736, 8) - "Rgba32f\0" // IR(23744, 8) - "Rgba16f\0" // IR(23752, 8) - "R32f\0" // IR(23760, 5) - "Rgba8\0" // IR(23765, 6) - "Rgba8Snorm\0" // IR(23771, 11) - "Rg32f\0" // IR(23782, 6) - "Rg16f\0" // IR(23788, 6) - "R11fG11fB10f\0" // IR(23794, 13) - "R16f\0" // IR(23807, 5) - "Rgba16\0" // IR(23812, 7) - "Rgb10A2\0" // IR(23819, 8) - "Rg16\0" // IR(23827, 5) - "Rg8\0" // IR(23832, 4) - "R16\0" // IR(23836, 4) - "R8\0" // IR(23840, 3) - "Rgba16Snorm\0" // IR(23843, 12) - "Rg16Snorm\0" // IR(23855, 10) - "Rg8Snorm\0" // IR(23865, 9) - "R16Snorm\0" // IR(23874, 9) - "R8Snorm\0" // IR(23883, 8) - "Rgba32i\0" // IR(23891, 8) - "Rgba16i\0" // IR(23899, 8) - "Rgba8i\0" // IR(23907, 7) - "R32i\0" // IR(23914, 5) - "Rg32i\0" // IR(23919, 6) - "Rg16i\0" // IR(23925, 6) - "Rg8i\0" // IR(23931, 5) - "R16i\0" // IR(23936, 5) - "R8i\0" // IR(23941, 4) - "Rgba32ui\0" // IR(23945, 9) - "Rgba16ui\0" // IR(23954, 9) - "Rgba8ui\0" // IR(23963, 8) - "R32ui\0" // IR(23971, 6) - "Rgb10a2ui\0" // IR(23977, 10) - "Rg32ui\0" // IR(23987, 7) - "Rg16ui\0" // IR(23994, 7) - "Rg8ui\0" // IR(24001, 6) - "R16ui\0" // IR(24007, 6) - "R8ui\0" // IR(24013, 5) - "R64ui\0" // IR(24018, 6) - "R64i\0" // IR(24024, 5) - "CrossDevice\0" // IR(24029, 12) - "Device\0" // IR(24041, 7) - "Workgroup\0" // IR(24048, 10) - "Subgroup\0" // IR(24058, 9) - "Invocation\0" // IR(24067, 11) - "QueueFamily\0" // IR(24078, 12) - "QueueFamilyKHR\0" // IR(24090, 15) - "ShaderCallKHR\0" // IR(24105, 14) - "Flatten\0" // IR(24119, 8) - "DontFlatten\0" // IR(24127, 12) - "IdentifierPossibleDuplicates\0" // IR(24139, 29) - "FlagUnknownPhysicalLayout\0" // IR(24168, 26) - "ESSL\0" // IR(24194, 5) - "GLSL\0" // IR(24199, 5) - "OpenCL_C\0" // IR(24204, 9) - "OpenCL_CPP\0" // IR(24213, 11) - "HLSL\0" // IR(24224, 5) - "CPP_for_OpenCL\0" // IR(24229, 15) - "SYCL\0" // IR(24244, 5) - "HERO_C\0" // IR(24249, 7) - "NZSL\0" // IR(24256, 5) - "WGSL\0" // IR(24261, 5) - "Slang\0" // IR(24266, 6) - "Zig\0" // IR(24272, 4) - "Rust\0" // IR(24276, 5) - "UniformConstant\0" // IR(24281, 16) - "Input\0" // IR(24297, 6) - "Output\0" // IR(24303, 7) - "CrossWorkgroup\0" // IR(24310, 15) - "Private\0" // IR(24325, 8) - "Function\0" // IR(24333, 9) - "Generic\0" // IR(24342, 8) - "PushConstant\0" // IR(24350, 13) - "AtomicCounter\0" // IR(24363, 14) - "Image\0" // IR(24377, 6) - "StorageBuffer\0" // IR(24383, 14) - "TileImageEXT\0" // IR(24397, 13) - "TileAttachmentQCOM\0" // IR(24410, 19) - "NodePayloadAMDX\0" // IR(24429, 16) - "CallableDataKHR\0" // IR(24445, 16) - "CallableDataNV\0" // IR(24461, 15) - "IncomingCallableDataKHR\0" // IR(24476, 24) - "IncomingCallableDataNV\0" // IR(24500, 23) - "RayPayloadKHR\0" // IR(24523, 14) - "RayPayloadNV\0" // IR(24537, 13) - "HitAttributeKHR\0" // IR(24550, 16) - "HitAttributeNV\0" // IR(24566, 15) - "IncomingRayPayloadKHR\0" // IR(24581, 22) - "IncomingRayPayloadNV\0" // IR(24603, 21) - "ShaderRecordBufferKHR\0" // IR(24624, 22) - "ShaderRecordBufferNV\0" // IR(24646, 21) - "PhysicalStorageBuffer\0" // IR(24667, 22) - "PhysicalStorageBufferEXT\0" // IR(24689, 25) - "HitObjectAttributeNV\0" // IR(24714, 21) - "TaskPayloadWorkgroupEXT\0" // IR(24735, 24) - "CodeSectionINTEL\0" // IR(24759, 17) - "DeviceOnlyINTEL\0" // IR(24776, 16) - "HostOnlyINTEL\0" // IR(24792, 14) - "WriteThroughINTEL\0" // IR(24806, 18) - "WriteBackINTEL\0" // IR(24824, 15) - "TensorView\0" // IR(24839, 11) - "DecodeFunc\0" // IR(24850, 11) - "Undefined\0" // IR(24861, 10) - "NoneARM\0" // IR(24871, 8) - "NontemporalARM\0" // IR(24879, 15) - "OutOfBoundsValueARM\0" // IR(24894, 20) - "MakeElementAvailableARM\0" // IR(24914, 24) - "MakeElementVisibleARM\0" // IR(24938, 22) - "NonPrivateElementARM\0" // IR(24960, 21) - "Nop\0" // IR(24981, 4) - "SPV_OPERAND_TYPE_TYPE_ID\0" // IR(24985, 25) - "SPV_OPERAND_TYPE_RESULT_ID\0" // IR(25010, 27) - "Undef\0" // IR(25037, 6) - "SourceContinued\0" // IR(25043, 16) - "SPV_OPERAND_TYPE_SOURCE_LANGUAGE\0" // IR(25059, 33) - "SPV_OPERAND_TYPE_OPTIONAL_ID\0" // IR(25092, 29) - "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_STRING\0" // IR(25121, 41) - "Source\0" // IR(25162, 7) - "SourceExtension\0" // IR(25169, 16) - "Name\0" // IR(25185, 5) - "MemberName\0" // IR(25190, 11) - "String\0" // IR(25201, 7) - "Line\0" // IR(25208, 5) - "Extension\0" // IR(25213, 10) - "ExtInstImport\0" // IR(25223, 14) - "SPV_OPERAND_TYPE_EXTENSION_INSTRUCTION_NUMBER\0" // IR(25237, 46) - "ExtInst\0" // IR(25283, 8) - "SPV_OPERAND_TYPE_ADDRESSING_MODEL\0" // IR(25291, 34) - "SPV_OPERAND_TYPE_MEMORY_MODEL\0" // IR(25325, 30) - "MemoryModel\0" // IR(25355, 12) - "SPV_OPERAND_TYPE_EXECUTION_MODEL\0" // IR(25367, 33) - "SPV_OPERAND_TYPE_VARIABLE_ID\0" // IR(25400, 29) - "EntryPoint\0" // IR(25429, 11) - "SPV_OPERAND_TYPE_EXECUTION_MODE\0" // IR(25440, 32) - "ExecutionMode\0" // IR(25472, 14) - "SPV_OPERAND_TYPE_CAPABILITY\0" // IR(25486, 28) - "Capability\0" // IR(25514, 11) - "TypeVoid\0" // IR(25525, 9) - "TypeBool\0" // IR(25534, 9) - "TypeInt\0" // IR(25543, 8) - "SPV_OPERAND_TYPE_OPTIONAL_FPENCODING\0" // IR(25551, 37) - "TypeFloat\0" // IR(25588, 10) - "TypeVector\0" // IR(25598, 11) - "TypeMatrix\0" // IR(25609, 11) - "SPV_OPERAND_TYPE_DIMENSIONALITY\0" // IR(25620, 32) - "SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT\0" // IR(25652, 38) - "SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER\0" // IR(25690, 43) - "TypeImage\0" // IR(25733, 10) - "TypeSampler\0" // IR(25743, 12) - "TypeSampledImage\0" // IR(25755, 17) - "TypeArray\0" // IR(25772, 10) - "TypeRuntimeArray\0" // IR(25782, 17) - "TypeStruct\0" // IR(25799, 11) - "TypeOpaque\0" // IR(25810, 11) - "SPV_OPERAND_TYPE_STORAGE_CLASS\0" // IR(25821, 31) - "TypePointer\0" // IR(25852, 12) - "TypeFunction\0" // IR(25864, 13) - "TypeEvent\0" // IR(25877, 10) - "TypeDeviceEvent\0" // IR(25887, 16) - "TypeReserveId\0" // IR(25903, 14) - "TypeQueue\0" // IR(25917, 10) - "TypePipe\0" // IR(25927, 9) - "TypeForwardPointer\0" // IR(25936, 19) - "ConstantTrue\0" // IR(25955, 13) - "ConstantFalse\0" // IR(25968, 14) - "SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER\0" // IR(25982, 38) - "ConstantComposite\0" // IR(26020, 18) - "SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE\0" // IR(26038, 41) - "SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE\0" // IR(26079, 37) - "ConstantSampler\0" // IR(26116, 16) - "ConstantNull\0" // IR(26132, 13) - "SpecConstantTrue\0" // IR(26145, 17) - "SpecConstantFalse\0" // IR(26162, 18) - "SpecConstant\0" // IR(26180, 13) - "SpecConstantComposite\0" // IR(26193, 22) - "SPV_OPERAND_TYPE_SPEC_CONSTANT_OP_NUMBER\0" // IR(26215, 41) - "SpecConstantOp\0" // IR(26256, 15) - "SPV_OPERAND_TYPE_FUNCTION_CONTROL\0" // IR(26271, 34) - "FunctionParameter\0" // IR(26305, 18) - "FunctionEnd\0" // IR(26323, 12) - "FunctionCall\0" // IR(26335, 13) - "Variable\0" // IR(26348, 9) - "ImageTexelPointer\0" // IR(26357, 18) - "SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS\0" // IR(26375, 40) - "Load\0" // IR(26415, 5) - "Store\0" // IR(26420, 6) - "CopyMemory\0" // IR(26426, 11) - "CopyMemorySized\0" // IR(26437, 16) - "AccessChain\0" // IR(26453, 12) - "InBoundsAccessChain\0" // IR(26465, 20) - "PtrAccessChain\0" // IR(26485, 15) - "ArrayLength\0" // IR(26500, 12) - "GenericPtrMemSemantics\0" // IR(26512, 23) - "InBoundsPtrAccessChain\0" // IR(26535, 23) - "SPV_OPERAND_TYPE_DECORATION\0" // IR(26558, 28) - "Decorate\0" // IR(26586, 9) - "MemberDecorate\0" // IR(26595, 15) - "DecorationGroup\0" // IR(26610, 16) - "GroupDecorate\0" // IR(26626, 14) - "SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER\0" // IR(26640, 45) - "GroupMemberDecorate\0" // IR(26685, 20) - "VectorExtractDynamic\0" // IR(26705, 21) - "VectorInsertDynamic\0" // IR(26726, 20) - "VectorShuffle\0" // IR(26746, 14) - "CompositeConstruct\0" // IR(26760, 19) - "CompositeExtract\0" // IR(26779, 17) - "CompositeInsert\0" // IR(26796, 16) - "CopyObject\0" // IR(26812, 11) - "Transpose\0" // IR(26823, 10) - "SampledImage\0" // IR(26833, 13) - "SPV_OPERAND_TYPE_OPTIONAL_IMAGE\0" // IR(26846, 32) - "ImageSampleImplicitLod\0" // IR(26878, 23) - "SPV_OPERAND_TYPE_IMAGE\0" // IR(26901, 23) - "ImageSampleExplicitLod\0" // IR(26924, 23) - "ImageSampleDrefImplicitLod\0" // IR(26947, 27) - "ImageSampleDrefExplicitLod\0" // IR(26974, 27) - "ImageSampleProjImplicitLod\0" // IR(27001, 27) - "ImageSampleProjExplicitLod\0" // IR(27028, 27) - "ImageSampleProjDrefImplicitLod\0" // IR(27055, 31) - "ImageSampleProjDrefExplicitLod\0" // IR(27086, 31) - "ImageFetch\0" // IR(27117, 11) - "ImageGather\0" // IR(27128, 12) - "ImageDrefGather\0" // IR(27140, 16) - "ImageRead\0" // IR(27156, 10) - "ImageWrite\0" // IR(27166, 11) - "ImageQueryFormat\0" // IR(27177, 17) - "ImageQueryOrder\0" // IR(27194, 16) - "ImageQuerySizeLod\0" // IR(27210, 18) - "ImageQuerySize\0" // IR(27228, 15) - "ImageQueryLod\0" // IR(27243, 14) - "ImageQueryLevels\0" // IR(27257, 17) - "ImageQuerySamples\0" // IR(27274, 18) - "ConvertFToU\0" // IR(27292, 12) - "ConvertFToS\0" // IR(27304, 12) - "ConvertSToF\0" // IR(27316, 12) - "ConvertUToF\0" // IR(27328, 12) - "UConvert\0" // IR(27340, 9) - "SConvert\0" // IR(27349, 9) - "FConvert\0" // IR(27358, 9) - "QuantizeToF16\0" // IR(27367, 14) - "ConvertPtrToU\0" // IR(27381, 14) - "SatConvertSToU\0" // IR(27395, 15) - "SatConvertUToS\0" // IR(27410, 15) - "ConvertUToPtr\0" // IR(27425, 14) - "PtrCastToGeneric\0" // IR(27439, 17) - "GenericCastToPtr\0" // IR(27456, 17) - "GenericCastToPtrExplicit\0" // IR(27473, 25) - "Bitcast\0" // IR(27498, 8) - "SNegate\0" // IR(27506, 8) - "FNegate\0" // IR(27514, 8) - "IAdd\0" // IR(27522, 5) - "FAdd\0" // IR(27527, 5) - "ISub\0" // IR(27532, 5) - "FSub\0" // IR(27537, 5) - "IMul\0" // IR(27542, 5) - "FMul\0" // IR(27547, 5) - "UDiv\0" // IR(27552, 5) - "SDiv\0" // IR(27557, 5) - "FDiv\0" // IR(27562, 5) - "UMod\0" // IR(27567, 5) - "SRem\0" // IR(27572, 5) - "SMod\0" // IR(27577, 5) - "FRem\0" // IR(27582, 5) - "FMod\0" // IR(27587, 5) - "VectorTimesScalar\0" // IR(27592, 18) - "MatrixTimesScalar\0" // IR(27610, 18) - "VectorTimesMatrix\0" // IR(27628, 18) - "MatrixTimesVector\0" // IR(27646, 18) - "MatrixTimesMatrix\0" // IR(27664, 18) - "OuterProduct\0" // IR(27682, 13) - "Dot\0" // IR(27695, 4) - "IAddCarry\0" // IR(27699, 10) - "ISubBorrow\0" // IR(27709, 11) - "UMulExtended\0" // IR(27720, 13) - "SMulExtended\0" // IR(27733, 13) - "Any\0" // IR(27746, 4) - "All\0" // IR(27750, 4) - "IsNan\0" // IR(27754, 6) - "IsInf\0" // IR(27760, 6) - "IsFinite\0" // IR(27766, 9) - "IsNormal\0" // IR(27775, 9) - "SignBitSet\0" // IR(27784, 11) - "LessOrGreater\0" // IR(27795, 14) - "Ordered\0" // IR(27809, 8) - "Unordered\0" // IR(27817, 10) - "LogicalEqual\0" // IR(27827, 13) - "LogicalNotEqual\0" // IR(27840, 16) - "LogicalOr\0" // IR(27856, 10) - "LogicalAnd\0" // IR(27866, 11) - "LogicalNot\0" // IR(27877, 11) - "Select\0" // IR(27888, 7) - "IEqual\0" // IR(27895, 7) - "INotEqual\0" // IR(27902, 10) - "UGreaterThan\0" // IR(27912, 13) - "SGreaterThan\0" // IR(27925, 13) - "UGreaterThanEqual\0" // IR(27938, 18) - "SGreaterThanEqual\0" // IR(27956, 18) - "ULessThan\0" // IR(27974, 10) - "SLessThan\0" // IR(27984, 10) - "ULessThanEqual\0" // IR(27994, 15) - "SLessThanEqual\0" // IR(28009, 15) - "FOrdEqual\0" // IR(28024, 10) - "FUnordEqual\0" // IR(28034, 12) - "FOrdNotEqual\0" // IR(28046, 13) - "FUnordNotEqual\0" // IR(28059, 15) - "FOrdLessThan\0" // IR(28074, 13) - "FUnordLessThan\0" // IR(28087, 15) - "FOrdGreaterThan\0" // IR(28102, 16) - "FUnordGreaterThan\0" // IR(28118, 18) - "FOrdLessThanEqual\0" // IR(28136, 18) - "FUnordLessThanEqual\0" // IR(28154, 20) - "FOrdGreaterThanEqual\0" // IR(28174, 21) - "FUnordGreaterThanEqual\0" // IR(28195, 23) - "ShiftRightLogical\0" // IR(28218, 18) - "ShiftRightArithmetic\0" // IR(28236, 21) - "ShiftLeftLogical\0" // IR(28257, 17) - "BitwiseOr\0" // IR(28274, 10) - "BitwiseXor\0" // IR(28284, 11) - "BitwiseAnd\0" // IR(28295, 11) - "Not\0" // IR(28306, 4) - "BitFieldInsert\0" // IR(28310, 15) - "BitFieldSExtract\0" // IR(28325, 17) - "BitFieldUExtract\0" // IR(28342, 17) - "BitReverse\0" // IR(28359, 11) - "BitCount\0" // IR(28370, 9) - "DPdx\0" // IR(28379, 5) - "DPdy\0" // IR(28384, 5) - "Fwidth\0" // IR(28389, 7) - "DPdxFine\0" // IR(28396, 9) - "DPdyFine\0" // IR(28405, 9) - "FwidthFine\0" // IR(28414, 11) - "DPdxCoarse\0" // IR(28425, 11) - "DPdyCoarse\0" // IR(28436, 11) - "FwidthCoarse\0" // IR(28447, 13) - "EmitVertex\0" // IR(28460, 11) - "EndPrimitive\0" // IR(28471, 13) - "EmitStreamVertex\0" // IR(28484, 17) - "EndStreamPrimitive\0" // IR(28501, 19) - "SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID\0" // IR(28520, 37) - "ControlBarrier\0" // IR(28557, 15) - "MemoryBarrier\0" // IR(28572, 14) - "AtomicLoad\0" // IR(28586, 11) - "AtomicStore\0" // IR(28597, 12) - "AtomicExchange\0" // IR(28609, 15) - "AtomicCompareExchange\0" // IR(28624, 22) - "AtomicCompareExchangeWeak\0" // IR(28646, 26) - "AtomicIIncrement\0" // IR(28672, 17) - "AtomicIDecrement\0" // IR(28689, 17) - "AtomicIAdd\0" // IR(28706, 11) - "AtomicISub\0" // IR(28717, 11) - "AtomicSMin\0" // IR(28728, 11) - "AtomicUMin\0" // IR(28739, 11) - "AtomicSMax\0" // IR(28750, 11) - "AtomicUMax\0" // IR(28761, 11) - "AtomicAnd\0" // IR(28772, 10) - "AtomicOr\0" // IR(28782, 9) - "AtomicXor\0" // IR(28791, 10) - "Phi\0" // IR(28801, 4) - "SPV_OPERAND_TYPE_LOOP_CONTROL\0" // IR(28805, 30) - "LoopMerge\0" // IR(28835, 10) - "SPV_OPERAND_TYPE_SELECTION_CONTROL\0" // IR(28845, 35) - "SelectionMerge\0" // IR(28880, 15) - "Label\0" // IR(28895, 6) - "Branch\0" // IR(28901, 7) - "BranchConditional\0" // IR(28908, 18) - "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER_ID\0" // IR(28926, 45) - "Switch\0" // IR(28971, 7) - "Kill\0" // IR(28978, 5) - "Return\0" // IR(28983, 7) - "ReturnValue\0" // IR(28990, 12) - "Unreachable\0" // IR(29002, 12) - "LifetimeStart\0" // IR(29014, 14) - "LifetimeStop\0" // IR(29028, 13) - "GroupAsyncCopy\0" // IR(29041, 15) - "GroupWaitEvents\0" // IR(29056, 16) - "GroupAll\0" // IR(29072, 9) - "GroupAny\0" // IR(29081, 9) - "GroupBroadcast\0" // IR(29090, 15) - "SPV_OPERAND_TYPE_GROUP_OPERATION\0" // IR(29105, 33) - "GroupIAdd\0" // IR(29138, 10) - "GroupFAdd\0" // IR(29148, 10) - "GroupFMin\0" // IR(29158, 10) - "GroupUMin\0" // IR(29168, 10) - "GroupSMin\0" // IR(29178, 10) - "GroupFMax\0" // IR(29188, 10) - "GroupUMax\0" // IR(29198, 10) - "GroupSMax\0" // IR(29208, 10) - "ReadPipe\0" // IR(29218, 9) - "WritePipe\0" // IR(29227, 10) - "ReservedReadPipe\0" // IR(29237, 17) - "ReservedWritePipe\0" // IR(29254, 18) - "ReserveReadPipePackets\0" // IR(29272, 23) - "ReserveWritePipePackets\0" // IR(29295, 24) - "CommitReadPipe\0" // IR(29319, 15) - "CommitWritePipe\0" // IR(29334, 16) - "IsValidReserveId\0" // IR(29350, 17) - "GetNumPipePackets\0" // IR(29367, 18) - "GetMaxPipePackets\0" // IR(29385, 18) - "GroupReserveReadPipePackets\0" // IR(29403, 28) - "GroupReserveWritePipePackets\0" // IR(29431, 29) - "GroupCommitReadPipe\0" // IR(29460, 20) - "GroupCommitWritePipe\0" // IR(29480, 21) - "EnqueueMarker\0" // IR(29501, 14) - "EnqueueKernel\0" // IR(29515, 14) - "GetKernelNDrangeSubGroupCount\0" // IR(29529, 30) - "GetKernelNDrangeMaxSubGroupSize\0" // IR(29559, 32) - "GetKernelWorkGroupSize\0" // IR(29591, 23) - "GetKernelPreferredWorkGroupSizeMultiple\0" // IR(29614, 40) - "RetainEvent\0" // IR(29654, 12) - "ReleaseEvent\0" // IR(29666, 13) - "CreateUserEvent\0" // IR(29679, 16) - "IsValidEvent\0" // IR(29695, 13) - "SetUserEventStatus\0" // IR(29708, 19) - "CaptureEventProfilingInfo\0" // IR(29727, 26) - "GetDefaultQueue\0" // IR(29753, 16) - "BuildNDRange\0" // IR(29769, 13) - "ImageSparseSampleImplicitLod\0" // IR(29782, 29) - "ImageSparseSampleExplicitLod\0" // IR(29811, 29) - "ImageSparseSampleDrefImplicitLod\0" // IR(29840, 33) - "ImageSparseSampleDrefExplicitLod\0" // IR(29873, 33) - "ImageSparseSampleProjImplicitLod\0" // IR(29906, 33) - "ImageSparseSampleProjExplicitLod\0" // IR(29939, 33) - "ImageSparseSampleProjDrefImplicitLod\0" // IR(29972, 37) - "ImageSparseSampleProjDrefExplicitLod\0" // IR(30009, 37) - "ImageSparseFetch\0" // IR(30046, 17) - "ImageSparseGather\0" // IR(30063, 18) - "ImageSparseDrefGather\0" // IR(30081, 22) - "ImageSparseTexelsResident\0" // IR(30103, 26) - "NoLine\0" // IR(30129, 7) - "AtomicFlagTestAndSet\0" // IR(30136, 21) - "AtomicFlagClear\0" // IR(30157, 16) - "ImageSparseRead\0" // IR(30173, 16) - "SizeOf\0" // IR(30189, 7) - "TypePipeStorage\0" // IR(30196, 16) - "ConstantPipeStorage\0" // IR(30212, 20) - "CreatePipeFromPipeStorage\0" // IR(30232, 26) - "GetKernelLocalSizeForSubgroupCount\0" // IR(30258, 35) - "GetKernelMaxNumSubgroups\0" // IR(30293, 25) - "TypeNamedBarrier\0" // IR(30318, 17) - "NamedBarrierInitialize\0" // IR(30335, 23) - "MemoryNamedBarrier\0" // IR(30358, 19) - "ModuleProcessed\0" // IR(30377, 16) - "ExecutionModeId\0" // IR(30393, 16) - "DecorateId\0" // IR(30409, 11) - "GroupNonUniformElect\0" // IR(30420, 21) - "GroupNonUniformAll\0" // IR(30441, 19) - "GroupNonUniformAny\0" // IR(30460, 19) - "GroupNonUniformAllEqual\0" // IR(30479, 24) - "GroupNonUniformBroadcast\0" // IR(30503, 25) - "GroupNonUniformBroadcastFirst\0" // IR(30528, 30) - "GroupNonUniformInverseBallot\0" // IR(30558, 29) - "GroupNonUniformBallotBitExtract\0" // IR(30587, 32) - "GroupNonUniformBallotBitCount\0" // IR(30619, 30) - "GroupNonUniformBallotFindLSB\0" // IR(30649, 29) - "GroupNonUniformBallotFindMSB\0" // IR(30678, 29) - "GroupNonUniformShuffleXor\0" // IR(30707, 26) - "GroupNonUniformShuffleUp\0" // IR(30733, 25) - "GroupNonUniformShuffleDown\0" // IR(30758, 27) - "GroupNonUniformIAdd\0" // IR(30785, 20) - "GroupNonUniformFAdd\0" // IR(30805, 20) - "GroupNonUniformIMul\0" // IR(30825, 20) - "GroupNonUniformFMul\0" // IR(30845, 20) - "GroupNonUniformSMin\0" // IR(30865, 20) - "GroupNonUniformUMin\0" // IR(30885, 20) - "GroupNonUniformFMin\0" // IR(30905, 20) - "GroupNonUniformSMax\0" // IR(30925, 20) - "GroupNonUniformUMax\0" // IR(30945, 20) - "GroupNonUniformFMax\0" // IR(30965, 20) - "GroupNonUniformBitwiseAnd\0" // IR(30985, 26) - "GroupNonUniformBitwiseOr\0" // IR(31011, 25) - "GroupNonUniformBitwiseXor\0" // IR(31036, 26) - "GroupNonUniformLogicalAnd\0" // IR(31062, 26) - "GroupNonUniformLogicalOr\0" // IR(31088, 25) - "GroupNonUniformLogicalXor\0" // IR(31113, 26) - "GroupNonUniformQuadBroadcast\0" // IR(31139, 29) - "GroupNonUniformQuadSwap\0" // IR(31168, 24) - "CopyLogical\0" // IR(31192, 12) - "PtrEqual\0" // IR(31204, 9) - "PtrNotEqual\0" // IR(31213, 12) - "PtrDiff\0" // IR(31225, 8) - "ColorAttachmentReadEXT\0" // IR(31233, 23) - "DepthAttachmentReadEXT\0" // IR(31256, 23) - "StencilAttachmentReadEXT\0" // IR(31279, 25) - "TypeTensorARM\0" // IR(31304, 14) - "SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS\0" // IR(31318, 42) - "TensorReadARM\0" // IR(31360, 14) - "TensorWriteARM\0" // IR(31374, 15) - "TensorQuerySizeARM\0" // IR(31389, 19) - "TerminateInvocation\0" // IR(31408, 20) - "TypeUntypedPointerKHR\0" // IR(31428, 22) - "UntypedVariableKHR\0" // IR(31450, 19) - "UntypedAccessChainKHR\0" // IR(31469, 22) - "UntypedInBoundsAccessChainKHR\0" // IR(31491, 30) - "SubgroupFirstInvocationKHR\0" // IR(31521, 27) - "UntypedPtrAccessChainKHR\0" // IR(31548, 25) - "UntypedInBoundsPtrAccessChainKHR\0" // IR(31573, 33) - "UntypedArrayLengthKHR\0" // IR(31606, 22) - "UntypedPrefetchKHR\0" // IR(31628, 19) - "SubgroupAllKHR\0" // IR(31647, 15) - "SubgroupAnyKHR\0" // IR(31662, 15) - "SubgroupAllEqualKHR\0" // IR(31677, 20) - "SubgroupReadInvocationKHR\0" // IR(31697, 26) - "ExtInstWithForwardRefsKHR\0" // IR(31723, 26) - "TraceRayKHR\0" // IR(31749, 12) - "ExecuteCallableKHR\0" // IR(31761, 19) - "ConvertUToAccelerationStructureKHR\0" // IR(31780, 35) - "IgnoreIntersectionKHR\0" // IR(31815, 22) - "TerminateRayKHR\0" // IR(31837, 16) - "SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT\0" // IR(31853, 47) - "SDot\0" // IR(31900, 5) - "SDotKHR\0" // IR(31905, 8) - "UDot\0" // IR(31913, 5) - "UDotKHR\0" // IR(31918, 8) - "SUDot\0" // IR(31926, 6) - "SUDotKHR\0" // IR(31932, 9) - "SDotAccSat\0" // IR(31941, 11) - "SDotAccSatKHR\0" // IR(31952, 14) - "UDotAccSat\0" // IR(31966, 11) - "UDotAccSatKHR\0" // IR(31977, 14) - "SUDotAccSat\0" // IR(31991, 12) - "SUDotAccSatKHR\0" // IR(32003, 15) - "TypeCooperativeMatrixKHR\0" // IR(32018, 25) - "CooperativeMatrixLoadKHR\0" // IR(32043, 25) - "CooperativeMatrixStoreKHR\0" // IR(32068, 26) - "SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS\0" // IR(32094, 54) - "CooperativeMatrixMulAddKHR\0" // IR(32148, 27) - "CooperativeMatrixLengthKHR\0" // IR(32175, 27) - "ConstantCompositeReplicateEXT\0" // IR(32202, 30) - "SpecConstantCompositeReplicateEXT\0" // IR(32232, 34) - "CompositeConstructReplicateEXT\0" // IR(32266, 31) - "TypeRayQueryKHR\0" // IR(32297, 16) - "RayQueryInitializeKHR\0" // IR(32313, 22) - "RayQueryTerminateKHR\0" // IR(32335, 21) - "RayQueryGenerateIntersectionKHR\0" // IR(32356, 32) - "RayQueryConfirmIntersectionKHR\0" // IR(32388, 31) - "RayQueryProceedKHR\0" // IR(32419, 19) - "RayQueryGetIntersectionTypeKHR\0" // IR(32438, 31) - "ImageSampleWeightedQCOM\0" // IR(32469, 24) - "ImageBoxFilterQCOM\0" // IR(32493, 19) - "ImageBlockMatchSSDQCOM\0" // IR(32512, 23) - "ImageBlockMatchSADQCOM\0" // IR(32535, 23) - "ImageBlockMatchWindowSSDQCOM\0" // IR(32558, 29) - "ImageBlockMatchWindowSADQCOM\0" // IR(32587, 29) - "ImageBlockMatchGatherSSDQCOM\0" // IR(32616, 29) - "ImageBlockMatchGatherSADQCOM\0" // IR(32645, 29) - "GroupIAddNonUniformAMD\0" // IR(32674, 23) - "GroupFAddNonUniformAMD\0" // IR(32697, 23) - "GroupFMinNonUniformAMD\0" // IR(32720, 23) - "GroupUMinNonUniformAMD\0" // IR(32743, 23) - "GroupSMinNonUniformAMD\0" // IR(32766, 23) - "GroupFMaxNonUniformAMD\0" // IR(32789, 23) - "GroupUMaxNonUniformAMD\0" // IR(32812, 23) - "GroupSMaxNonUniformAMD\0" // IR(32835, 23) - "FragmentMaskFetchAMD\0" // IR(32858, 21) - "FragmentFetchAMD\0" // IR(32879, 17) - "ReadClockKHR\0" // IR(32896, 13) - "AllocateNodePayloadsAMDX\0" // IR(32909, 25) - "EnqueueNodePayloadsAMDX\0" // IR(32934, 24) - "TypeNodePayloadArrayAMDX\0" // IR(32958, 25) - "FinishWritingNodePayloadAMDX\0" // IR(32983, 29) - "NodePayloadArrayLengthAMDX\0" // IR(33012, 27) - "IsNodePayloadValidAMDX\0" // IR(33039, 23) - "ConstantStringAMDX\0" // IR(33062, 19) - "SpecConstantStringAMDX\0" // IR(33081, 23) - "GroupNonUniformQuadAllKHR\0" // IR(33104, 26) - "GroupNonUniformQuadAnyKHR\0" // IR(33130, 26) - "HitObjectRecordHitMotionNV\0" // IR(33156, 27) - "HitObjectRecordHitWithIndexMotionNV\0" // IR(33183, 36) - "HitObjectRecordMissMotionNV\0" // IR(33219, 28) - "HitObjectGetWorldToObjectNV\0" // IR(33247, 28) - "HitObjectGetObjectToWorldNV\0" // IR(33275, 28) - "HitObjectGetObjectRayDirectionNV\0" // IR(33303, 33) - "HitObjectGetObjectRayOriginNV\0" // IR(33336, 30) - "HitObjectTraceRayMotionNV\0" // IR(33366, 26) - "HitObjectGetShaderRecordBufferHandleNV\0" // IR(33392, 39) - "HitObjectGetShaderBindingTableRecordIndexNV\0" // IR(33431, 44) - "HitObjectRecordEmptyNV\0" // IR(33475, 23) - "HitObjectTraceRayNV\0" // IR(33498, 20) - "HitObjectRecordHitNV\0" // IR(33518, 21) - "HitObjectRecordHitWithIndexNV\0" // IR(33539, 30) - "HitObjectRecordMissNV\0" // IR(33569, 22) - "HitObjectExecuteShaderNV\0" // IR(33591, 25) - "HitObjectGetCurrentTimeNV\0" // IR(33616, 26) - "HitObjectGetAttributesNV\0" // IR(33642, 25) - "HitObjectGetHitKindNV\0" // IR(33667, 22) - "HitObjectGetPrimitiveIndexNV\0" // IR(33689, 29) - "HitObjectGetGeometryIndexNV\0" // IR(33718, 28) - "HitObjectGetInstanceIdNV\0" // IR(33746, 25) - "HitObjectGetInstanceCustomIndexNV\0" // IR(33771, 34) - "HitObjectGetWorldRayDirectionNV\0" // IR(33805, 32) - "HitObjectGetWorldRayOriginNV\0" // IR(33837, 29) - "HitObjectGetRayTMaxNV\0" // IR(33866, 22) - "HitObjectGetRayTMinNV\0" // IR(33888, 22) - "HitObjectIsEmptyNV\0" // IR(33910, 19) - "HitObjectIsHitNV\0" // IR(33929, 17) - "HitObjectIsMissNV\0" // IR(33946, 18) - "ReorderThreadWithHitObjectNV\0" // IR(33964, 29) - "ReorderThreadWithHintNV\0" // IR(33993, 24) - "TypeHitObjectNV\0" // IR(34017, 16) - "ImageSampleFootprintNV\0" // IR(34033, 23) - "TypeCooperativeVectorNV\0" // IR(34056, 24) - "CooperativeVectorMatrixMulNV\0" // IR(34080, 29) - "CooperativeVectorOuterProductAccumulateNV\0" // IR(34109, 42) - "CooperativeVectorReduceSumAccumulateNV\0" // IR(34151, 39) - "CooperativeVectorMatrixMulAddNV\0" // IR(34190, 32) - "CooperativeMatrixConvertNV\0" // IR(34222, 27) - "EmitMeshTasksEXT\0" // IR(34249, 17) - "SetMeshOutputsEXT\0" // IR(34266, 18) - "GroupNonUniformPartitionNV\0" // IR(34284, 27) - "WritePackedPrimitiveIndices4x8NV\0" // IR(34311, 33) - "FetchMicroTriangleVertexPositionNV\0" // IR(34344, 35) - "FetchMicroTriangleVertexBarycentricNV\0" // IR(34379, 38) - "CooperativeVectorLoadNV\0" // IR(34417, 24) - "CooperativeVectorStoreNV\0" // IR(34441, 25) - "ReportIntersectionKHR\0" // IR(34466, 22) - "ReportIntersectionNV\0" // IR(34488, 21) - "IgnoreIntersectionNV\0" // IR(34509, 21) - "TerminateRayNV\0" // IR(34530, 15) - "TraceNV\0" // IR(34545, 8) - "TraceMotionNV\0" // IR(34553, 14) - "TraceRayMotionNV\0" // IR(34567, 17) - "RayQueryGetIntersectionTriangleVertexPositionsKHR\0" // IR(34584, 50) - "TypeAccelerationStructureKHR\0" // IR(34634, 29) - "TypeAccelerationStructureNV\0" // IR(34663, 28) - "ExecuteCallableNV\0" // IR(34691, 18) - "RayQueryGetClusterIdNV\0" // IR(34709, 23) - "HitObjectGetClusterIdNV\0" // IR(34732, 24) - "TypeCooperativeMatrixNV\0" // IR(34756, 24) - "CooperativeMatrixLoadNV\0" // IR(34780, 24) - "CooperativeMatrixStoreNV\0" // IR(34804, 25) - "CooperativeMatrixMulAddNV\0" // IR(34829, 26) - "CooperativeMatrixLengthNV\0" // IR(34855, 26) - "BeginInvocationInterlockEXT\0" // IR(34881, 28) - "EndInvocationInterlockEXT\0" // IR(34909, 26) - "SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE\0" // IR(34935, 43) - "CooperativeMatrixReduceNV\0" // IR(34978, 26) - "SPV_OPERAND_TYPE_MEMORY_ACCESS\0" // IR(35004, 31) - "SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS\0" // IR(35035, 44) - "CooperativeMatrixLoadTensorNV\0" // IR(35079, 30) - "CooperativeMatrixStoreTensorNV\0" // IR(35109, 31) - "CooperativeMatrixPerElementOpNV\0" // IR(35140, 32) - "TypeTensorLayoutNV\0" // IR(35172, 19) - "TypeTensorViewNV\0" // IR(35191, 17) - "CreateTensorLayoutNV\0" // IR(35208, 21) - "TensorLayoutSetDimensionNV\0" // IR(35229, 27) - "TensorLayoutSetStrideNV\0" // IR(35256, 24) - "TensorLayoutSliceNV\0" // IR(35280, 20) - "TensorLayoutSetClampValueNV\0" // IR(35300, 28) - "CreateTensorViewNV\0" // IR(35328, 19) - "TensorViewSetDimensionNV\0" // IR(35347, 25) - "TensorViewSetStrideNV\0" // IR(35372, 22) - "IsHelperInvocationEXT\0" // IR(35394, 22) - "TensorViewSetClipNV\0" // IR(35416, 20) - "TensorLayoutSetBlockSizeNV\0" // IR(35436, 27) - "CooperativeMatrixTransposeNV\0" // IR(35463, 29) - "ConvertUToImageNV\0" // IR(35492, 18) - "ConvertUToSamplerNV\0" // IR(35510, 20) - "ConvertImageToUNV\0" // IR(35530, 18) - "ConvertSamplerToUNV\0" // IR(35548, 20) - "ConvertUToSampledImageNV\0" // IR(35568, 25) - "ConvertSampledImageToUNV\0" // IR(35593, 25) - "SamplerImageAddressingModeNV\0" // IR(35618, 29) - "SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS\0" // IR(35647, 52) - "RawAccessChainNV\0" // IR(35699, 17) - "RayQueryGetIntersectionSpherePositionNV\0" // IR(35716, 40) - "RayQueryGetIntersectionSphereRadiusNV\0" // IR(35756, 38) - "RayQueryGetIntersectionLSSPositionsNV\0" // IR(35794, 38) - "RayQueryGetIntersectionLSSRadiiNV\0" // IR(35832, 34) - "RayQueryGetIntersectionLSSHitValueNV\0" // IR(35866, 37) - "HitObjectGetSpherePositionNV\0" // IR(35903, 29) - "HitObjectGetSphereRadiusNV\0" // IR(35932, 27) - "HitObjectGetLSSPositionsNV\0" // IR(35959, 27) - "HitObjectGetLSSRadiiNV\0" // IR(35986, 23) - "HitObjectIsSphereHitNV\0" // IR(36009, 23) - "HitObjectIsLSSHitNV\0" // IR(36032, 20) - "RayQueryIsSphereHitNV\0" // IR(36052, 22) - "RayQueryIsLSSHitNV\0" // IR(36074, 19) - "SubgroupShuffleDownINTEL\0" // IR(36093, 25) - "SubgroupShuffleUpINTEL\0" // IR(36118, 23) - "SubgroupShuffleXorINTEL\0" // IR(36141, 24) - "SubgroupBlockReadINTEL\0" // IR(36165, 23) - "SubgroupBlockWriteINTEL\0" // IR(36188, 24) - "SubgroupImageBlockReadINTEL\0" // IR(36212, 28) - "SubgroupImageBlockWriteINTEL\0" // IR(36240, 29) - "SubgroupImageMediaBlockReadINTEL\0" // IR(36269, 33) - "SubgroupImageMediaBlockWriteINTEL\0" // IR(36302, 34) - "UCountLeadingZerosINTEL\0" // IR(36336, 24) - "UCountTrailingZerosINTEL\0" // IR(36360, 25) - "AbsISubINTEL\0" // IR(36385, 13) - "AbsUSubINTEL\0" // IR(36398, 13) - "IAddSatINTEL\0" // IR(36411, 13) - "UAddSatINTEL\0" // IR(36424, 13) - "IAverageINTEL\0" // IR(36437, 14) - "UAverageINTEL\0" // IR(36451, 14) - "IAverageRoundedINTEL\0" // IR(36465, 21) - "UAverageRoundedINTEL\0" // IR(36486, 21) - "ISubSatINTEL\0" // IR(36507, 13) - "USubSatINTEL\0" // IR(36520, 13) - "IMul32x16INTEL\0" // IR(36533, 15) - "UMul32x16INTEL\0" // IR(36548, 15) - "ConstantFunctionPointerINTEL\0" // IR(36563, 29) - "FunctionPointerCallINTEL\0" // IR(36592, 25) - "AsmTargetINTEL\0" // IR(36617, 15) - "AsmCallINTEL\0" // IR(36632, 13) - "AtomicFMinEXT\0" // IR(36645, 14) - "AtomicFMaxEXT\0" // IR(36659, 14) - "AssumeTrueKHR\0" // IR(36673, 14) - "ExpectKHR\0" // IR(36687, 10) - "DecorateString\0" // IR(36697, 15) - "DecorateStringGOOGLE\0" // IR(36712, 21) - "MemberDecorateString\0" // IR(36733, 21) - "MemberDecorateStringGOOGLE\0" // IR(36754, 27) - "VmeImageINTEL\0" // IR(36781, 14) - "TypeVmeImageINTEL\0" // IR(36795, 18) - "TypeAvcImePayloadINTEL\0" // IR(36813, 23) - "TypeAvcRefPayloadINTEL\0" // IR(36836, 23) - "TypeAvcSicPayloadINTEL\0" // IR(36859, 23) - "TypeAvcMcePayloadINTEL\0" // IR(36882, 23) - "TypeAvcMceResultINTEL\0" // IR(36905, 22) - "TypeAvcImeResultINTEL\0" // IR(36927, 22) - "TypeAvcImeResultSingleReferenceStreamoutINTEL\0" // IR(36949, 46) - "TypeAvcImeResultDualReferenceStreamoutINTEL\0" // IR(36995, 44) - "TypeAvcImeSingleReferenceStreaminINTEL\0" // IR(37039, 39) - "TypeAvcImeDualReferenceStreaminINTEL\0" // IR(37078, 37) - "TypeAvcRefResultINTEL\0" // IR(37115, 22) - "TypeAvcSicResultINTEL\0" // IR(37137, 22) - "SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL\0" // IR(37159, 60) - "SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL\0" // IR(37219, 53) - "SubgroupAvcMceGetDefaultInterShapePenaltyINTEL\0" // IR(37272, 47) - "SubgroupAvcMceSetInterShapePenaltyINTEL\0" // IR(37319, 40) - "SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL\0" // IR(37359, 51) - "SubgroupAvcMceSetInterDirectionPenaltyINTEL\0" // IR(37410, 44) - "SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL\0" // IR(37454, 51) - "SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL\0" // IR(37505, 56) - "SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL\0" // IR(37561, 50) - "SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL\0" // IR(37611, 52) - "SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL\0" // IR(37663, 49) - "SubgroupAvcMceSetMotionVectorCostFunctionINTEL\0" // IR(37712, 47) - "SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL\0" // IR(37759, 50) - "SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL\0" // IR(37809, 51) - "SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL\0" // IR(37860, 56) - "SubgroupAvcMceSetAcOnlyHaarINTEL\0" // IR(37916, 33) - "SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL\0" // IR(37949, 52) - "SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL\0" // IR(38001, 61) - "SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL\0" // IR(38062, 61) - "SubgroupAvcMceConvertToImePayloadINTEL\0" // IR(38123, 39) - "SubgroupAvcMceConvertToImeResultINTEL\0" // IR(38162, 38) - "SubgroupAvcMceConvertToRefPayloadINTEL\0" // IR(38200, 39) - "SubgroupAvcMceConvertToRefResultINTEL\0" // IR(38239, 38) - "SubgroupAvcMceConvertToSicPayloadINTEL\0" // IR(38277, 39) - "SubgroupAvcMceConvertToSicResultINTEL\0" // IR(38316, 38) - "SubgroupAvcMceGetMotionVectorsINTEL\0" // IR(38354, 36) - "SubgroupAvcMceGetInterDistortionsINTEL\0" // IR(38390, 39) - "SubgroupAvcMceGetBestInterDistortionsINTEL\0" // IR(38429, 43) - "SubgroupAvcMceGetInterMajorShapeINTEL\0" // IR(38472, 38) - "SubgroupAvcMceGetInterMinorShapeINTEL\0" // IR(38510, 38) - "SubgroupAvcMceGetInterDirectionsINTEL\0" // IR(38548, 38) - "SubgroupAvcMceGetInterMotionVectorCountINTEL\0" // IR(38586, 45) - "SubgroupAvcMceGetInterReferenceIdsINTEL\0" // IR(38631, 40) - "SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL\0" // IR(38671, 62) - "SubgroupAvcImeInitializeINTEL\0" // IR(38733, 30) - "SubgroupAvcImeSetSingleReferenceINTEL\0" // IR(38763, 38) - "SubgroupAvcImeSetDualReferenceINTEL\0" // IR(38801, 36) - "SubgroupAvcImeRefWindowSizeINTEL\0" // IR(38837, 33) - "SubgroupAvcImeAdjustRefOffsetINTEL\0" // IR(38870, 35) - "SubgroupAvcImeConvertToMcePayloadINTEL\0" // IR(38905, 39) - "SubgroupAvcImeSetMaxMotionVectorCountINTEL\0" // IR(38944, 43) - "SubgroupAvcImeSetUnidirectionalMixDisableINTEL\0" // IR(38987, 47) - "SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL\0" // IR(39034, 54) - "SubgroupAvcImeSetWeightedSadINTEL\0" // IR(39088, 34) - "SubgroupAvcImeEvaluateWithSingleReferenceINTEL\0" // IR(39122, 47) - "SubgroupAvcImeEvaluateWithDualReferenceINTEL\0" // IR(39169, 45) - "SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL\0" // IR(39214, 55) - "SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL\0" // IR(39269, 53) - "SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL\0" // IR(39322, 56) - "SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL\0" // IR(39378, 54) - "SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL\0" // IR(39432, 58) - "SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL\0" // IR(39490, 56) - "SubgroupAvcImeConvertToMceResultINTEL\0" // IR(39546, 38) - "SubgroupAvcImeGetSingleReferenceStreaminINTEL\0" // IR(39584, 46) - "SubgroupAvcImeGetDualReferenceStreaminINTEL\0" // IR(39630, 44) - "SubgroupAvcImeStripSingleReferenceStreamoutINTEL\0" // IR(39674, 49) - "SubgroupAvcImeStripDualReferenceStreamoutINTEL\0" // IR(39723, 47) - "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL\0" // IR(39770, 70) - "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL\0" // IR(39840, 68) - "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL\0" // IR(39908, 69) - "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL\0" // IR(39977, 68) - "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL\0" // IR(40045, 66) - "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL\0" // IR(40111, 67) - "SubgroupAvcImeGetBorderReachedINTEL\0" // IR(40178, 36) - "SubgroupAvcImeGetTruncatedSearchIndicationINTEL\0" // IR(40214, 48) - "SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL\0" // IR(40262, 59) - "SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL\0" // IR(40321, 58) - "SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL\0" // IR(40379, 56) - "SubgroupAvcFmeInitializeINTEL\0" // IR(40435, 30) - "SubgroupAvcBmeInitializeINTEL\0" // IR(40465, 30) - "SubgroupAvcRefConvertToMcePayloadINTEL\0" // IR(40495, 39) - "SubgroupAvcRefSetBidirectionalMixDisableINTEL\0" // IR(40534, 46) - "SubgroupAvcRefSetBilinearFilterEnableINTEL\0" // IR(40580, 43) - "SubgroupAvcRefEvaluateWithSingleReferenceINTEL\0" // IR(40623, 47) - "SubgroupAvcRefEvaluateWithDualReferenceINTEL\0" // IR(40670, 45) - "SubgroupAvcRefEvaluateWithMultiReferenceINTEL\0" // IR(40715, 46) - "SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(40761, 56) - "SubgroupAvcRefConvertToMceResultINTEL\0" // IR(40817, 38) - "SubgroupAvcSicInitializeINTEL\0" // IR(40855, 30) - "SubgroupAvcSicConfigureSkcINTEL\0" // IR(40885, 32) - "SubgroupAvcSicConfigureIpeLumaINTEL\0" // IR(40917, 36) - "SubgroupAvcSicConfigureIpeLumaChromaINTEL\0" // IR(40953, 42) - "SubgroupAvcSicGetMotionVectorMaskINTEL\0" // IR(40995, 39) - "SubgroupAvcSicConvertToMcePayloadINTEL\0" // IR(41034, 39) - "SubgroupAvcSicSetIntraLumaShapePenaltyINTEL\0" // IR(41073, 44) - "SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL\0" // IR(41117, 48) - "SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL\0" // IR(41165, 50) - "SubgroupAvcSicSetBilinearFilterEnableINTEL\0" // IR(41215, 43) - "SubgroupAvcSicSetSkcForwardTransformEnableINTEL\0" // IR(41258, 48) - "SubgroupAvcSicSetBlockBasedRawSkipSadINTEL\0" // IR(41306, 43) - "SubgroupAvcSicEvaluateIpeINTEL\0" // IR(41349, 31) - "SubgroupAvcSicEvaluateWithSingleReferenceINTEL\0" // IR(41380, 47) - "SubgroupAvcSicEvaluateWithDualReferenceINTEL\0" // IR(41427, 45) - "SubgroupAvcSicEvaluateWithMultiReferenceINTEL\0" // IR(41472, 46) - "SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(41518, 56) - "SubgroupAvcSicConvertToMceResultINTEL\0" // IR(41574, 38) - "SubgroupAvcSicGetIpeLumaShapeINTEL\0" // IR(41612, 35) - "SubgroupAvcSicGetBestIpeLumaDistortionINTEL\0" // IR(41647, 44) - "SubgroupAvcSicGetBestIpeChromaDistortionINTEL\0" // IR(41691, 46) - "SubgroupAvcSicGetPackedIpeLumaModesINTEL\0" // IR(41737, 41) - "SubgroupAvcSicGetIpeChromaModeINTEL\0" // IR(41778, 36) - "SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL\0" // IR(41814, 50) - "SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL\0" // IR(41864, 48) - "SubgroupAvcSicGetInterRawSadsINTEL\0" // IR(41912, 35) - "SaveMemoryINTEL\0" // IR(41947, 16) - "RestoreMemoryINTEL\0" // IR(41963, 19) - "ArbitraryFloatSinCosPiINTEL\0" // IR(41982, 28) - "ArbitraryFloatCastINTEL\0" // IR(42010, 24) - "ArbitraryFloatCastFromIntINTEL\0" // IR(42034, 31) - "ArbitraryFloatCastToIntINTEL\0" // IR(42065, 29) - "ArbitraryFloatAddINTEL\0" // IR(42094, 23) - "ArbitraryFloatSubINTEL\0" // IR(42117, 23) - "ArbitraryFloatMulINTEL\0" // IR(42140, 23) - "ArbitraryFloatDivINTEL\0" // IR(42163, 23) - "ArbitraryFloatGTINTEL\0" // IR(42186, 22) - "ArbitraryFloatGEINTEL\0" // IR(42208, 22) - "ArbitraryFloatLTINTEL\0" // IR(42230, 22) - "ArbitraryFloatLEINTEL\0" // IR(42252, 22) - "ArbitraryFloatEQINTEL\0" // IR(42274, 22) - "ArbitraryFloatRecipINTEL\0" // IR(42296, 25) - "ArbitraryFloatRSqrtINTEL\0" // IR(42321, 25) - "ArbitraryFloatCbrtINTEL\0" // IR(42346, 24) - "ArbitraryFloatHypotINTEL\0" // IR(42370, 25) - "ArbitraryFloatSqrtINTEL\0" // IR(42395, 24) - "ArbitraryFloatLogINTEL\0" // IR(42419, 23) - "ArbitraryFloatLog2INTEL\0" // IR(42442, 24) - "ArbitraryFloatLog10INTEL\0" // IR(42466, 25) - "ArbitraryFloatLog1pINTEL\0" // IR(42491, 25) - "ArbitraryFloatExpINTEL\0" // IR(42516, 23) - "ArbitraryFloatExp2INTEL\0" // IR(42539, 24) - "ArbitraryFloatExp10INTEL\0" // IR(42563, 25) - "ArbitraryFloatExpm1INTEL\0" // IR(42588, 25) - "ArbitraryFloatSinINTEL\0" // IR(42613, 23) - "ArbitraryFloatCosINTEL\0" // IR(42636, 23) - "ArbitraryFloatSinCosINTEL\0" // IR(42659, 26) - "ArbitraryFloatSinPiINTEL\0" // IR(42685, 25) - "ArbitraryFloatCosPiINTEL\0" // IR(42710, 25) - "ArbitraryFloatASinINTEL\0" // IR(42735, 24) - "ArbitraryFloatASinPiINTEL\0" // IR(42759, 26) - "ArbitraryFloatACosINTEL\0" // IR(42785, 24) - "ArbitraryFloatACosPiINTEL\0" // IR(42809, 26) - "ArbitraryFloatATanINTEL\0" // IR(42835, 24) - "ArbitraryFloatATanPiINTEL\0" // IR(42859, 26) - "ArbitraryFloatATan2INTEL\0" // IR(42885, 25) - "ArbitraryFloatPowINTEL\0" // IR(42910, 23) - "ArbitraryFloatPowRINTEL\0" // IR(42933, 24) - "ArbitraryFloatPowNINTEL\0" // IR(42957, 24) - "LoopControlINTEL\0" // IR(42981, 17) - "AliasDomainDeclINTEL\0" // IR(42998, 21) - "AliasScopeDeclINTEL\0" // IR(43019, 20) - "AliasScopeListDeclINTEL\0" // IR(43039, 24) - "FixedSqrtINTEL\0" // IR(43063, 15) - "FixedRecipINTEL\0" // IR(43078, 16) - "FixedRsqrtINTEL\0" // IR(43094, 16) - "FixedSinINTEL\0" // IR(43110, 14) - "FixedCosINTEL\0" // IR(43124, 14) - "FixedSinCosINTEL\0" // IR(43138, 17) - "FixedSinPiINTEL\0" // IR(43155, 16) - "FixedCosPiINTEL\0" // IR(43171, 16) - "FixedSinCosPiINTEL\0" // IR(43187, 19) - "FixedLogINTEL\0" // IR(43206, 14) - "FixedExpINTEL\0" // IR(43220, 14) - "PtrCastToCrossWorkgroupINTEL\0" // IR(43234, 29) - "CrossWorkgroupCastToPtrINTEL\0" // IR(43263, 29) - "ReadPipeBlockingINTEL\0" // IR(43292, 22) - "WritePipeBlockingINTEL\0" // IR(43314, 23) - "RayQueryGetRayTMinKHR\0" // IR(43337, 22) - "RayQueryGetRayFlagsKHR\0" // IR(43359, 23) - "RayQueryGetIntersectionTKHR\0" // IR(43382, 28) - "RayQueryGetIntersectionInstanceCustomIndexKHR\0" // IR(43410, 46) - "RayQueryGetIntersectionInstanceIdKHR\0" // IR(43456, 37) - "RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR\0" // IR(43493, 65) - "RayQueryGetIntersectionGeometryIndexKHR\0" // IR(43558, 40) - "RayQueryGetIntersectionPrimitiveIndexKHR\0" // IR(43598, 41) - "RayQueryGetIntersectionBarycentricsKHR\0" // IR(43639, 39) - "RayQueryGetIntersectionFrontFaceKHR\0" // IR(43678, 36) - "RayQueryGetIntersectionCandidateAABBOpaqueKHR\0" // IR(43714, 46) - "RayQueryGetIntersectionObjectRayDirectionKHR\0" // IR(43760, 45) - "RayQueryGetIntersectionObjectRayOriginKHR\0" // IR(43805, 42) - "RayQueryGetWorldRayDirectionKHR\0" // IR(43847, 32) - "RayQueryGetWorldRayOriginKHR\0" // IR(43879, 29) - "RayQueryGetIntersectionObjectToWorldKHR\0" // IR(43908, 40) - "RayQueryGetIntersectionWorldToObjectKHR\0" // IR(43948, 40) - "AtomicFAddEXT\0" // IR(43988, 14) - "TypeBufferSurfaceINTEL\0" // IR(44002, 23) - "TypeStructContinuedINTEL\0" // IR(44025, 25) - "ConstantCompositeContinuedINTEL\0" // IR(44050, 32) - "SpecConstantCompositeContinuedINTEL\0" // IR(44082, 36) - "CompositeConstructContinuedINTEL\0" // IR(44118, 33) - "ConvertFToBF16INTEL\0" // IR(44151, 20) - "ConvertBF16ToFINTEL\0" // IR(44171, 20) - "ControlBarrierArriveINTEL\0" // IR(44191, 26) - "ControlBarrierWaitINTEL\0" // IR(44217, 24) - "TaskSequenceCreateINTEL\0" // IR(44241, 24) - "TaskSequenceAsyncINTEL\0" // IR(44265, 23) - "TaskSequenceGetINTEL\0" // IR(44288, 21) - "TaskSequenceReleaseINTEL\0" // IR(44309, 25) - "TypeTaskSequenceINTEL\0" // IR(44334, 22) - "SubgroupBlockPrefetchINTEL\0" // IR(44356, 27) - "Subgroup2DBlockLoadINTEL\0" // IR(44383, 25) - "Subgroup2DBlockLoadTransformINTEL\0" // IR(44408, 34) - "Subgroup2DBlockLoadTransposeINTEL\0" // IR(44442, 34) - "Subgroup2DBlockPrefetchINTEL\0" // IR(44476, 29) - "Subgroup2DBlockStoreINTEL\0" // IR(44505, 26) - "SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS\0" // IR(44531, 62) - "BitwiseFunctionINTEL\0" // IR(44593, 21) - "GroupIMulKHR\0" // IR(44614, 13) - "GroupFMulKHR\0" // IR(44627, 13) - "GroupBitwiseAndKHR\0" // IR(44640, 19) - "GroupBitwiseOrKHR\0" // IR(44659, 18) - "GroupBitwiseXorKHR\0" // IR(44677, 19) - "GroupLogicalAndKHR\0" // IR(44696, 19) - "GroupLogicalOrKHR\0" // IR(44715, 18) - "GroupLogicalXorKHR\0" // IR(44733, 19) - "RoundFToTF32INTEL\0" // IR(44752, 18) - "MaskedGatherINTEL\0" // IR(44770, 18) - "MaskedScatterINTEL\0" // IR(44788, 19) - "ConvertHandleToImageINTEL\0" // IR(44807, 26) - "ConvertHandleToSamplerINTEL\0" // IR(44833, 28) - "ConvertHandleToSampledImageINTEL\0" // IR(44861, 33) - "DebugInfoNone\0" // IR(44894, 14) - "DebugCompilationUnit\0" // IR(44908, 21) - "SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(44929, 52) - "DebugTypeBasic\0" // IR(44981, 15) - "SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS\0" // IR(44996, 34) - "DebugTypePointer\0" // IR(45030, 17) - "SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER\0" // IR(45047, 38) - "DebugTypeQualifier\0" // IR(45085, 19) - "DebugTypeArray\0" // IR(45104, 15) - "DebugTypeVector\0" // IR(45119, 16) - "DebugTypedef\0" // IR(45135, 13) - "DebugTypeFunction\0" // IR(45148, 18) - "DebugTypeEnum\0" // IR(45166, 14) - "SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE\0" // IR(45180, 38) - "DebugTypeComposite\0" // IR(45218, 19) - "DebugTypeMember\0" // IR(45237, 16) - "DebugTypeInheritance\0" // IR(45253, 21) - "DebugTypePtrToMember\0" // IR(45274, 21) - "DebugTypeTemplate\0" // IR(45295, 18) - "DebugTypeTemplateParameter\0" // IR(45313, 27) - "DebugTypeTemplateTemplateParameter\0" // IR(45340, 35) - "DebugTypeTemplateParameterPack\0" // IR(45375, 31) - "DebugGlobalVariable\0" // IR(45406, 20) - "DebugFunctionDeclaration\0" // IR(45426, 25) - "DebugFunction\0" // IR(45451, 14) - "DebugLexicalBlock\0" // IR(45465, 18) - "DebugLexicalBlockDiscriminator\0" // IR(45483, 31) - "DebugScope\0" // IR(45514, 11) - "DebugNoScope\0" // IR(45525, 13) - "DebugInlinedAt\0" // IR(45538, 15) - "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER\0" // IR(45553, 42) - "DebugLocalVariable\0" // IR(45595, 19) - "DebugInlinedVariable\0" // IR(45614, 21) - "DebugDeclare\0" // IR(45635, 13) - "DebugValue\0" // IR(45648, 11) - "SPV_OPERAND_TYPE_DEBUG_OPERATION\0" // IR(45659, 33) - "DebugOperation\0" // IR(45692, 15) - "DebugExpression\0" // IR(45707, 16) - "DebugMacroDef\0" // IR(45723, 14) - "DebugMacroUndef\0" // IR(45737, 16) - "Round\0" // IR(45753, 6) - "RoundEven\0" // IR(45759, 10) - "Trunc\0" // IR(45769, 6) - "FAbs\0" // IR(45775, 5) - "SAbs\0" // IR(45780, 5) - "FSign\0" // IR(45785, 6) - "SSign\0" // IR(45791, 6) - "Floor\0" // IR(45797, 6) - "Ceil\0" // IR(45803, 5) - "Fract\0" // IR(45808, 6) - "Radians\0" // IR(45814, 8) - "Degrees\0" // IR(45822, 8) - "Sin\0" // IR(45830, 4) - "Cos\0" // IR(45834, 4) - "Tan\0" // IR(45838, 4) - "Asin\0" // IR(45842, 5) - "Acos\0" // IR(45847, 5) - "Atan\0" // IR(45852, 5) - "Sinh\0" // IR(45857, 5) - "Cosh\0" // IR(45862, 5) - "Tanh\0" // IR(45867, 5) - "Asinh\0" // IR(45872, 6) - "Acosh\0" // IR(45878, 6) - "Atanh\0" // IR(45884, 6) - "Atan2\0" // IR(45890, 6) - "Pow\0" // IR(45896, 4) - "Exp\0" // IR(45900, 4) - "Log\0" // IR(45904, 4) - "Exp2\0" // IR(45908, 5) - "Log2\0" // IR(45913, 5) - "Sqrt\0" // IR(45918, 5) - "InverseSqrt\0" // IR(45923, 12) - "Determinant\0" // IR(45935, 12) - "MatrixInverse\0" // IR(45947, 14) - "Modf\0" // IR(45961, 5) - "ModfStruct\0" // IR(45966, 11) - "FMin\0" // IR(45977, 5) - "UMin\0" // IR(45982, 5) - "SMin\0" // IR(45987, 5) - "FMax\0" // IR(45992, 5) - "UMax\0" // IR(45997, 5) - "SMax\0" // IR(46002, 5) - "FClamp\0" // IR(46007, 7) - "UClamp\0" // IR(46014, 7) - "SClamp\0" // IR(46021, 7) - "FMix\0" // IR(46028, 5) - "IMix\0" // IR(46033, 5) - "Step\0" // IR(46038, 5) - "SmoothStep\0" // IR(46043, 11) - "Fma\0" // IR(46054, 4) - "Frexp\0" // IR(46058, 6) - "FrexpStruct\0" // IR(46064, 12) - "Ldexp\0" // IR(46076, 6) - "PackSnorm4x8\0" // IR(46082, 13) - "PackUnorm4x8\0" // IR(46095, 13) - "PackSnorm2x16\0" // IR(46108, 14) - "PackUnorm2x16\0" // IR(46122, 14) - "PackHalf2x16\0" // IR(46136, 13) - "PackDouble2x32\0" // IR(46149, 15) - "UnpackSnorm2x16\0" // IR(46164, 16) - "UnpackUnorm2x16\0" // IR(46180, 16) - "UnpackHalf2x16\0" // IR(46196, 15) - "UnpackSnorm4x8\0" // IR(46211, 15) - "UnpackUnorm4x8\0" // IR(46226, 15) - "UnpackDouble2x32\0" // IR(46241, 17) - "Length\0" // IR(46258, 7) - "Distance\0" // IR(46265, 9) - "Cross\0" // IR(46274, 6) - "Normalize\0" // IR(46280, 10) - "FaceForward\0" // IR(46290, 12) - "Reflect\0" // IR(46302, 8) - "Refract\0" // IR(46310, 8) - "FindILsb\0" // IR(46318, 9) - "FindSMsb\0" // IR(46327, 9) - "FindUMsb\0" // IR(46336, 9) - "InterpolateAtCentroid\0" // IR(46345, 22) - "InterpolateAtSample\0" // IR(46367, 20) - "InterpolateAtOffset\0" // IR(46387, 20) - "NMin\0" // IR(46407, 5) - "NMax\0" // IR(46412, 5) - "NClamp\0" // IR(46417, 7) - "ArgumentInfo\0" // IR(46424, 13) - "ArgumentStorageBuffer\0" // IR(46437, 22) - "ArgumentUniform\0" // IR(46459, 16) - "ArgumentPodStorageBuffer\0" // IR(46475, 25) - "ArgumentPodUniform\0" // IR(46500, 19) - "ArgumentPodPushConstant\0" // IR(46519, 24) - "ArgumentSampledImage\0" // IR(46543, 21) - "ArgumentStorageImage\0" // IR(46564, 21) - "ArgumentSampler\0" // IR(46585, 16) - "ArgumentWorkgroup\0" // IR(46601, 18) - "SpecConstantWorkgroupSize\0" // IR(46619, 26) - "SpecConstantGlobalOffset\0" // IR(46645, 25) - "SpecConstantWorkDim\0" // IR(46670, 20) - "PushConstantGlobalOffset\0" // IR(46690, 25) - "PushConstantEnqueuedLocalSize\0" // IR(46715, 30) - "PushConstantGlobalSize\0" // IR(46745, 23) - "PushConstantRegionOffset\0" // IR(46768, 25) - "PushConstantNumWorkgroups\0" // IR(46793, 26) - "PushConstantRegionGroupOffset\0" // IR(46819, 30) - "ConstantDataStorageBuffer\0" // IR(46849, 26) - "ConstantDataUniform\0" // IR(46875, 20) - "PropertyRequiredWorkgroupSize\0" // IR(46895, 30) - "SpecConstantSubgroupMaxSize\0" // IR(46925, 28) - "ArgumentPointerPushConstant\0" // IR(46953, 28) - "ArgumentPointerUniform\0" // IR(46981, 23) - "ProgramScopeVariablesStorageBuffer\0" // IR(47004, 35) - "ProgramScopeVariablePointerRelocation\0" // IR(47039, 38) - "ImageArgumentInfoChannelOrderPushConstant\0" // IR(47077, 42) - "ImageArgumentInfoChannelDataTypePushConstant\0" // IR(47119, 45) - "ImageArgumentInfoChannelOrderUniform\0" // IR(47164, 37) - "ImageArgumentInfoChannelDataTypeUniform\0" // IR(47201, 40) - "ArgumentStorageTexelBuffer\0" // IR(47241, 27) - "ArgumentUniformTexelBuffer\0" // IR(47268, 27) - "ConstantDataPointerPushConstant\0" // IR(47295, 32) - "ProgramScopeVariablePointerPushConstant\0" // IR(47327, 40) - "PrintfInfo\0" // IR(47367, 11) - "PrintfBufferStorageBuffer\0" // IR(47378, 26) - "PrintfBufferPointerPushConstant\0" // IR(47404, 32) - "NormalizedSamplerMaskPushConstant\0" // IR(47436, 34) - "WorkgroupVariableSize\0" // IR(47470, 22) - "DebugImportedEntity\0" // IR(47492, 20) - "DebugSource\0" // IR(47512, 12) - "DebugFunctionDefinition\0" // IR(47524, 24) - "DebugSourceContinued\0" // IR(47548, 21) - "DebugLine\0" // IR(47569, 10) - "DebugNoLine\0" // IR(47579, 12) - "DebugBuildIdentifier\0" // IR(47591, 21) - "DebugStoragePath\0" // IR(47612, 17) - "DebugEntryPoint\0" // IR(47629, 16) - "DebugTypeMatrix\0" // IR(47645, 16) - "Configuration\0" // IR(47661, 14) - "StartCounter\0" // IR(47675, 13) - "StopCounter\0" // IR(47688, 12) - "PushConstants\0" // IR(47700, 14) - "SpecializationMapEntry\0" // IR(47714, 23) - "DescriptorSetBuffer\0" // IR(47737, 20) - "DescriptorSetImage\0" // IR(47757, 19) - "DescriptorSetSampler\0" // IR(47776, 21) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(47797, 63) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS\0" // IR(47860, 45) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER\0" // IR(47905, 49) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE\0" // IR(47954, 49) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION\0" // IR(48003, 44) - "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY\0" // IR(48047, 50) - "DebugModuleINTEL\0" // IR(48097, 17) - "acos\0" // IR(48114, 5) - "acosh\0" // IR(48119, 6) - "acospi\0" // IR(48125, 7) - "asin\0" // IR(48132, 5) - "asinh\0" // IR(48137, 6) - "asinpi\0" // IR(48143, 7) - "atan\0" // IR(48150, 5) - "atan2\0" // IR(48155, 6) - "atanh\0" // IR(48161, 6) - "atanpi\0" // IR(48167, 7) - "atan2pi\0" // IR(48174, 8) - "cbrt\0" // IR(48182, 5) - "ceil\0" // IR(48187, 5) - "copysign\0" // IR(48192, 9) - "cos\0" // IR(48201, 4) - "cosh\0" // IR(48205, 5) - "cospi\0" // IR(48210, 6) - "erfc\0" // IR(48216, 5) - "erf\0" // IR(48221, 4) - "exp\0" // IR(48225, 4) - "exp2\0" // IR(48229, 5) - "exp10\0" // IR(48234, 6) - "expm1\0" // IR(48240, 6) - "fabs\0" // IR(48246, 5) - "fdim\0" // IR(48251, 5) - "floor\0" // IR(48256, 6) - "fma\0" // IR(48262, 4) - "fmax\0" // IR(48266, 5) - "fmin\0" // IR(48271, 5) - "fmod\0" // IR(48276, 5) - "fract\0" // IR(48281, 6) - "frexp\0" // IR(48287, 6) - "hypot\0" // IR(48293, 6) - "ilogb\0" // IR(48299, 6) - "ldexp\0" // IR(48305, 6) - "lgamma\0" // IR(48311, 7) - "lgamma_r\0" // IR(48318, 9) - "log\0" // IR(48327, 4) - "log2\0" // IR(48331, 5) - "log10\0" // IR(48336, 6) - "log1p\0" // IR(48342, 6) - "logb\0" // IR(48348, 5) - "mad\0" // IR(48353, 4) - "maxmag\0" // IR(48357, 7) - "minmag\0" // IR(48364, 7) - "modf\0" // IR(48371, 5) - "nan\0" // IR(48376, 4) - "nextafter\0" // IR(48380, 10) - "pow\0" // IR(48390, 4) - "pown\0" // IR(48394, 5) - "powr\0" // IR(48399, 5) - "remainder\0" // IR(48404, 10) - "remquo\0" // IR(48414, 7) - "rint\0" // IR(48421, 5) - "rootn\0" // IR(48426, 6) - "round\0" // IR(48432, 6) - "rsqrt\0" // IR(48438, 6) - "sin\0" // IR(48444, 4) - "sincos\0" // IR(48448, 7) - "sinh\0" // IR(48455, 5) - "sinpi\0" // IR(48460, 6) - "sqrt\0" // IR(48466, 5) - "tan\0" // IR(48471, 4) - "tanh\0" // IR(48475, 5) - "tanpi\0" // IR(48480, 6) - "tgamma\0" // IR(48486, 7) - "trunc\0" // IR(48493, 6) - "half_cos\0" // IR(48499, 9) - "half_divide\0" // IR(48508, 12) - "half_exp\0" // IR(48520, 9) - "half_exp2\0" // IR(48529, 10) - "half_exp10\0" // IR(48539, 11) - "half_log\0" // IR(48550, 9) - "half_log2\0" // IR(48559, 10) - "half_log10\0" // IR(48569, 11) - "half_powr\0" // IR(48580, 10) - "half_recip\0" // IR(48590, 11) - "half_rsqrt\0" // IR(48601, 11) - "half_sin\0" // IR(48612, 9) - "half_sqrt\0" // IR(48621, 10) - "half_tan\0" // IR(48631, 9) - "native_cos\0" // IR(48640, 11) - "native_divide\0" // IR(48651, 14) - "native_exp\0" // IR(48665, 11) - "native_exp2\0" // IR(48676, 12) - "native_exp10\0" // IR(48688, 13) - "native_log\0" // IR(48701, 11) - "native_log2\0" // IR(48712, 12) - "native_log10\0" // IR(48724, 13) - "native_powr\0" // IR(48737, 12) - "native_recip\0" // IR(48749, 13) - "native_rsqrt\0" // IR(48762, 13) - "native_sin\0" // IR(48775, 11) - "native_sqrt\0" // IR(48786, 12) - "native_tan\0" // IR(48798, 11) - "fclamp\0" // IR(48809, 7) - "degrees\0" // IR(48816, 8) - "fmax_common\0" // IR(48824, 12) - "fmin_common\0" // IR(48836, 12) - "mix\0" // IR(48848, 4) - "radians\0" // IR(48852, 8) - "step\0" // IR(48860, 5) - "smoothstep\0" // IR(48865, 11) - "sign\0" // IR(48876, 5) - "cross\0" // IR(48881, 6) - "distance\0" // IR(48887, 9) - "length\0" // IR(48896, 7) - "normalize\0" // IR(48903, 10) - "fast_distance\0" // IR(48913, 14) - "fast_length\0" // IR(48927, 12) - "fast_normalize\0" // IR(48939, 15) - "s_abs\0" // IR(48954, 6) - "s_abs_diff\0" // IR(48960, 11) - "s_add_sat\0" // IR(48971, 10) - "u_add_sat\0" // IR(48981, 10) - "s_hadd\0" // IR(48991, 7) - "u_hadd\0" // IR(48998, 7) - "s_rhadd\0" // IR(49005, 8) - "u_rhadd\0" // IR(49013, 8) - "s_clamp\0" // IR(49021, 8) - "u_clamp\0" // IR(49029, 8) - "clz\0" // IR(49037, 4) - "ctz\0" // IR(49041, 4) - "s_mad_hi\0" // IR(49045, 9) - "u_mad_sat\0" // IR(49054, 10) - "s_mad_sat\0" // IR(49064, 10) - "s_max\0" // IR(49074, 6) - "u_max\0" // IR(49080, 6) - "s_min\0" // IR(49086, 6) - "u_min\0" // IR(49092, 6) - "s_mul_hi\0" // IR(49098, 9) - "rotate\0" // IR(49107, 7) - "s_sub_sat\0" // IR(49114, 10) - "u_sub_sat\0" // IR(49124, 10) - "u_upsample\0" // IR(49134, 11) - "s_upsample\0" // IR(49145, 11) - "popcount\0" // IR(49156, 9) - "s_mad24\0" // IR(49165, 8) - "u_mad24\0" // IR(49173, 8) - "s_mul24\0" // IR(49181, 8) - "u_mul24\0" // IR(49189, 8) - "vloadn\0" // IR(49197, 7) - "vstoren\0" // IR(49204, 8) - "vload_half\0" // IR(49212, 11) - "vload_halfn\0" // IR(49223, 12) - "vstore_half\0" // IR(49235, 12) - "vstore_half_r\0" // IR(49247, 14) - "vstore_halfn\0" // IR(49261, 13) - "vstore_halfn_r\0" // IR(49274, 15) - "vloada_halfn\0" // IR(49289, 13) - "vstorea_halfn\0" // IR(49302, 14) - "vstorea_halfn_r\0" // IR(49316, 16) - "shuffle\0" // IR(49332, 8) - "shuffle2\0" // IR(49340, 9) - "printf\0" // IR(49349, 7) - "prefetch\0" // IR(49356, 9) - "bitselect\0" // IR(49365, 10) - "select\0" // IR(49375, 7) - "u_abs\0" // IR(49382, 6) - "u_abs_diff\0" // IR(49388, 11) - "u_mul_hi\0" // IR(49399, 9) - "u_mad_hi\0" // IR(49408, 9) - "CubeFaceIndexAMD\0" // IR(49417, 17) - "CubeFaceCoordAMD\0" // IR(49434, 17) - "TimeAMD\0" // IR(49451, 8) - "SwizzleInvocationsAMD\0" // IR(49459, 22) - "SwizzleInvocationsMaskedAMD\0" // IR(49481, 28) - "WriteInvocationAMD\0" // IR(49509, 19) - "MbcntAMD\0" // IR(49528, 9) - "InterpolateAtVertexAMD\0" // IR(49537, 23) - "FMin3AMD\0" // IR(49560, 9) - "UMin3AMD\0" // IR(49569, 9) - "SMin3AMD\0" // IR(49578, 9) - "FMax3AMD\0" // IR(49587, 9) - "UMax3AMD\0" // IR(49596, 9) - "SMax3AMD\0" // IR(49605, 9) - "FMid3AMD\0" // IR(49614, 9) - "UMid3AMD\0" // IR(49623, 9) - "SMid3AMD\0" // IR(49632, 9) + "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_fragment_shader_barycentric\0" // IR(2894, 36) + "SPV_KHR_fragment_shading_rate\0" // IR(2930, 30) + "SPV_KHR_integer_dot_product\0" // IR(2960, 28) + "SPV_KHR_linkonce_odr\0" // IR(2988, 21) + "SPV_KHR_maximal_reconvergence\0" // IR(3009, 30) + "SPV_KHR_multiview\0" // IR(3039, 18) + "SPV_KHR_no_integer_wrap_decoration\0" // IR(3057, 35) + "SPV_KHR_non_semantic_info\0" // IR(3092, 26) + "SPV_KHR_physical_storage_buffer\0" // IR(3118, 32) + "SPV_KHR_post_depth_coverage\0" // IR(3150, 28) + "SPV_KHR_quad_control\0" // IR(3178, 21) + "SPV_KHR_ray_cull_mask\0" // IR(3199, 22) + "SPV_KHR_ray_query\0" // IR(3221, 18) + "SPV_KHR_ray_tracing\0" // IR(3239, 20) + "SPV_KHR_ray_tracing_position_fetch\0" // IR(3259, 35) + "SPV_KHR_relaxed_extended_instruction\0" // IR(3294, 37) + "SPV_KHR_shader_atomic_counter_ops\0" // IR(3331, 34) + "SPV_KHR_shader_ballot\0" // IR(3365, 22) + "SPV_KHR_shader_clock\0" // IR(3387, 21) + "SPV_KHR_shader_draw_parameters\0" // IR(3408, 31) + "SPV_KHR_storage_buffer_storage_class\0" // IR(3439, 37) + "SPV_KHR_subgroup_rotate\0" // IR(3476, 24) + "SPV_KHR_subgroup_uniform_control_flow\0" // IR(3500, 38) + "SPV_KHR_subgroup_vote\0" // IR(3538, 22) + "SPV_KHR_terminate_invocation\0" // IR(3560, 29) + "SPV_KHR_uniform_group_instructions\0" // IR(3589, 35) + "SPV_KHR_untyped_pointers\0" // IR(3624, 25) + "SPV_KHR_variable_pointers\0" // IR(3649, 26) + "SPV_KHR_vulkan_memory_model\0" // IR(3675, 28) + "SPV_KHR_workgroup_memory_explicit_layout\0" // IR(3703, 41) + "SPV_NVX_multiview_per_view_attributes\0" // IR(3744, 38) + "SPV_NV_bindless_texture\0" // IR(3782, 24) + "SPV_NV_cluster_acceleration_structure\0" // IR(3806, 38) + "SPV_NV_compute_shader_derivatives\0" // IR(3844, 34) + "SPV_NV_cooperative_matrix\0" // IR(3878, 26) + "SPV_NV_cooperative_matrix2\0" // IR(3904, 27) + "SPV_NV_cooperative_vector\0" // IR(3931, 26) + "SPV_NV_displacement_micromap\0" // IR(3957, 29) + "SPV_NV_fragment_shader_barycentric\0" // IR(3986, 35) + "SPV_NV_geometry_shader_passthrough\0" // IR(4021, 35) + "SPV_NV_linear_swept_spheres\0" // IR(4056, 28) + "SPV_NV_mesh_shader\0" // IR(4084, 19) + "SPV_NV_raw_access_chains\0" // IR(4103, 25) + "SPV_NV_ray_tracing\0" // IR(4128, 19) + "SPV_NV_ray_tracing_motion_blur\0" // IR(4147, 31) + "SPV_NV_sample_mask_override_coverage\0" // IR(4178, 37) + "SPV_NV_shader_atomic_fp16_vector\0" // IR(4215, 33) + "SPV_NV_shader_image_footprint\0" // IR(4248, 30) + "SPV_NV_shader_invocation_reorder\0" // IR(4278, 33) + "SPV_NV_shader_sm_builtins\0" // IR(4311, 26) + "SPV_NV_shader_subgroup_partitioned\0" // IR(4337, 35) + "SPV_NV_shading_rate\0" // IR(4372, 20) + "SPV_NV_stereo_view_rendering\0" // IR(4392, 29) + "SPV_NV_tensor_addressing\0" // IR(4421, 25) + "SPV_NV_viewport_array2\0" // IR(4446, 23) + "SPV_QCOM_cooperative_matrix_conversion\0" // IR(4469, 39) + "SPV_QCOM_image_processing\0" // IR(4508, 26) + "SPV_QCOM_image_processing2\0" // IR(4534, 27) + "SPV_QCOM_tile_shading\0" // IR(4561, 22) + "SPV_VALIDATOR_ignore_type_decl_unique\0" // IR(4583, 38) + "ReadOnly\0" // IR(4621, 9) + "Kernel\0" // IR(4630, 7) + "WriteOnly\0" // IR(4637, 10) + "ReadWrite\0" // IR(4647, 10) + "Logical\0" // IR(4657, 8) + "Physical32\0" // IR(4665, 11) + "Addresses\0" // IR(4676, 10) + "Physical64\0" // IR(4686, 11) + "PhysicalStorageBuffer64\0" // IR(4697, 24) + "PhysicalStorageBuffer64EXT\0" // IR(4721, 27) + "PhysicalStorageBufferAddresses\0" // IR(4748, 31) + "Position\0" // IR(4779, 9) + "Shader\0" // IR(4788, 7) + "PointSize\0" // IR(4795, 10) + "ClipDistance\0" // IR(4805, 13) + "CullDistance\0" // IR(4818, 13) + "VertexId\0" // IR(4831, 9) + "InstanceId\0" // IR(4840, 11) + "PrimitiveId\0" // IR(4851, 12) + "Geometry\0" // IR(4863, 9) + "Tessellation\0" // IR(4872, 13) + "RayTracingNV\0" // IR(4885, 13) + "RayTracingKHR\0" // IR(4898, 14) + "MeshShadingNV\0" // IR(4912, 14) + "MeshShadingEXT\0" // IR(4926, 15) + "InvocationId\0" // IR(4941, 13) + "Layer\0" // IR(4954, 6) + "ShaderLayer\0" // IR(4960, 12) + "ShaderViewportIndexLayerEXT\0" // IR(4972, 28) + "ViewportIndex\0" // IR(5000, 14) + "MultiViewport\0" // IR(5014, 14) + "ShaderViewportIndex\0" // IR(5028, 20) + "TessLevelOuter\0" // IR(5048, 15) + "TessLevelInner\0" // IR(5063, 15) + "TessCoord\0" // IR(5078, 10) + "PatchVertices\0" // IR(5088, 14) + "FragCoord\0" // IR(5102, 10) + "PointCoord\0" // IR(5112, 11) + "FrontFacing\0" // IR(5123, 12) + "SampleId\0" // IR(5135, 9) + "SampleRateShading\0" // IR(5144, 18) + "SamplePosition\0" // IR(5162, 15) + "SampleMask\0" // IR(5177, 11) + "FragDepth\0" // IR(5188, 10) + "HelperInvocation\0" // IR(5198, 17) + "NumWorkgroups\0" // IR(5215, 14) + "WorkgroupSize\0" // IR(5229, 14) + "WorkgroupId\0" // IR(5243, 12) + "LocalInvocationId\0" // IR(5255, 18) + "GlobalInvocationId\0" // IR(5273, 19) + "LocalInvocationIndex\0" // IR(5292, 21) + "WorkDim\0" // IR(5313, 8) + "GlobalSize\0" // IR(5321, 11) + "EnqueuedWorkgroupSize\0" // IR(5332, 22) + "GlobalOffset\0" // IR(5354, 13) + "GlobalLinearId\0" // IR(5367, 15) + "SubgroupSize\0" // IR(5382, 13) + "GroupNonUniform\0" // IR(5395, 16) + "SubgroupBallotKHR\0" // IR(5411, 18) + "SubgroupMaxSize\0" // IR(5429, 16) + "NumSubgroups\0" // IR(5445, 13) + "NumEnqueuedSubgroups\0" // IR(5458, 21) + "SubgroupId\0" // IR(5479, 11) + "SubgroupLocalInvocationId\0" // IR(5490, 26) + "VertexIndex\0" // IR(5516, 12) + "InstanceIndex\0" // IR(5528, 14) + "CoreIDARM\0" // IR(5542, 10) + "CoreBuiltinsARM\0" // IR(5552, 16) + "CoreCountARM\0" // IR(5568, 13) + "CoreMaxIDARM\0" // IR(5581, 13) + "WarpIDARM\0" // IR(5594, 10) + "WarpMaxIDARM\0" // IR(5604, 13) + "SubgroupEqMask\0" // IR(5617, 15) + "SubgroupEqMaskKHR\0" // IR(5632, 18) + "GroupNonUniformBallot\0" // IR(5650, 22) + "SubgroupGeMask\0" // IR(5672, 15) + "SubgroupGeMaskKHR\0" // IR(5687, 18) + "SubgroupGtMask\0" // IR(5705, 15) + "SubgroupGtMaskKHR\0" // IR(5720, 18) + "SubgroupLeMask\0" // IR(5738, 15) + "SubgroupLeMaskKHR\0" // IR(5753, 18) + "SubgroupLtMask\0" // IR(5771, 15) + "SubgroupLtMaskKHR\0" // IR(5786, 18) + "BaseVertex\0" // IR(5804, 11) + "DrawParameters\0" // IR(5815, 15) + "BaseInstance\0" // IR(5830, 13) + "DrawIndex\0" // IR(5843, 10) + "PrimitiveShadingRateKHR\0" // IR(5853, 24) + "FragmentShadingRateKHR\0" // IR(5877, 23) + "DeviceIndex\0" // IR(5900, 12) + "DeviceGroup\0" // IR(5912, 12) + "ViewIndex\0" // IR(5924, 10) + "MultiView\0" // IR(5934, 10) + "ShadingRateKHR\0" // IR(5944, 15) + "TileOffsetQCOM\0" // IR(5959, 15) + "TileShadingQCOM\0" // IR(5974, 16) + "TileDimensionQCOM\0" // IR(5990, 18) + "TileApronSizeQCOM\0" // IR(6008, 18) + "BaryCoordNoPerspAMD\0" // IR(6026, 20) + "BaryCoordNoPerspCentroidAMD\0" // IR(6046, 28) + "BaryCoordNoPerspSampleAMD\0" // IR(6074, 26) + "BaryCoordSmoothAMD\0" // IR(6100, 19) + "BaryCoordSmoothCentroidAMD\0" // IR(6119, 27) + "BaryCoordSmoothSampleAMD\0" // IR(6146, 25) + "BaryCoordPullModelAMD\0" // IR(6171, 22) + "FragStencilRefEXT\0" // IR(6193, 18) + "StencilExportEXT\0" // IR(6211, 17) + "RemainingRecursionLevelsAMDX\0" // IR(6228, 29) + "ShaderEnqueueAMDX\0" // IR(6257, 18) + "ShaderIndexAMDX\0" // IR(6275, 16) + "ViewportMaskNV\0" // IR(6291, 15) + "ShaderViewportMaskNV\0" // IR(6306, 21) + "SecondaryPositionNV\0" // IR(6327, 20) + "ShaderStereoViewNV\0" // IR(6347, 19) + "SecondaryViewportMaskNV\0" // IR(6366, 24) + "PositionPerViewNV\0" // IR(6390, 18) + "PerViewAttributesNV\0" // IR(6408, 20) + "ViewportMaskPerViewNV\0" // IR(6428, 22) + "FullyCoveredEXT\0" // IR(6450, 16) + "FragmentFullyCoveredEXT\0" // IR(6466, 24) + "TaskCountNV\0" // IR(6490, 12) + "PrimitiveCountNV\0" // IR(6502, 17) + "PrimitiveIndicesNV\0" // IR(6519, 19) + "ClipDistancePerViewNV\0" // IR(6538, 22) + "CullDistancePerViewNV\0" // IR(6560, 22) + "LayerPerViewNV\0" // IR(6582, 15) + "MeshViewCountNV\0" // IR(6597, 16) + "MeshViewIndicesNV\0" // IR(6613, 18) + "BaryCoordKHR\0" // IR(6631, 13) + "BaryCoordNV\0" // IR(6644, 12) + "FragmentBarycentricKHR\0" // IR(6656, 23) + "BaryCoordNoPerspKHR\0" // IR(6679, 20) + "BaryCoordNoPerspNV\0" // IR(6699, 19) + "FragSizeEXT\0" // IR(6718, 12) + "FragmentSizeNV\0" // IR(6730, 15) + "FragmentDensityEXT\0" // IR(6745, 19) + "FragInvocationCountEXT\0" // IR(6764, 23) + "InvocationsPerPixelNV\0" // IR(6787, 22) + "PrimitivePointIndicesEXT\0" // IR(6809, 25) + "PrimitiveLineIndicesEXT\0" // IR(6834, 24) + "PrimitiveTriangleIndicesEXT\0" // IR(6858, 28) + "CullPrimitiveEXT\0" // IR(6886, 17) + "LaunchIdKHR\0" // IR(6903, 12) + "LaunchIdNV\0" // IR(6915, 11) + "LaunchSizeKHR\0" // IR(6926, 14) + "LaunchSizeNV\0" // IR(6940, 13) + "WorldRayOriginKHR\0" // IR(6953, 18) + "WorldRayOriginNV\0" // IR(6971, 17) + "WorldRayDirectionKHR\0" // IR(6988, 21) + "WorldRayDirectionNV\0" // IR(7009, 20) + "ObjectRayOriginKHR\0" // IR(7029, 19) + "ObjectRayOriginNV\0" // IR(7048, 18) + "ObjectRayDirectionKHR\0" // IR(7066, 22) + "ObjectRayDirectionNV\0" // IR(7088, 21) + "RayTminKHR\0" // IR(7109, 11) + "RayTminNV\0" // IR(7120, 10) + "RayTmaxKHR\0" // IR(7130, 11) + "RayTmaxNV\0" // IR(7141, 10) + "InstanceCustomIndexKHR\0" // IR(7151, 23) + "InstanceCustomIndexNV\0" // IR(7174, 22) + "ObjectToWorldKHR\0" // IR(7196, 17) + "ObjectToWorldNV\0" // IR(7213, 16) + "WorldToObjectKHR\0" // IR(7229, 17) + "WorldToObjectNV\0" // IR(7246, 16) + "HitTNV\0" // IR(7262, 7) + "HitKindKHR\0" // IR(7269, 11) + "HitKindNV\0" // IR(7280, 10) + "CurrentRayTimeNV\0" // IR(7290, 17) + "RayTracingMotionBlurNV\0" // IR(7307, 23) + "HitTriangleVertexPositionsKHR\0" // IR(7330, 30) + "RayTracingPositionFetchKHR\0" // IR(7360, 27) + "HitMicroTriangleVertexPositionsNV\0" // IR(7387, 34) + "RayTracingDisplacementMicromapNV\0" // IR(7421, 33) + "HitMicroTriangleVertexBarycentricsNV\0" // IR(7454, 37) + "IncomingRayFlagsKHR\0" // IR(7491, 20) + "IncomingRayFlagsNV\0" // IR(7511, 19) + "RayGeometryIndexKHR\0" // IR(7530, 20) + "HitIsSphereNV\0" // IR(7550, 14) + "RayTracingSpheresGeometryNV\0" // IR(7564, 28) + "HitIsLSSNV\0" // IR(7592, 11) + "RayTracingLinearSweptSpheresGeometryNV\0" // IR(7603, 39) + "HitSpherePositionNV\0" // IR(7642, 20) + "WarpsPerSMNV\0" // IR(7662, 13) + "ShaderSMBuiltinsNV\0" // IR(7675, 19) + "SMCountNV\0" // IR(7694, 10) + "WarpIDNV\0" // IR(7704, 9) + "SMIDNV\0" // IR(7713, 7) + "HitLSSPositionsNV\0" // IR(7720, 18) + "HitKindFrontFacingMicroTriangleNV\0" // IR(7738, 34) + "HitKindBackFacingMicroTriangleNV\0" // IR(7772, 33) + "HitSphereRadiusNV\0" // IR(7805, 18) + "HitLSSRadiiNV\0" // IR(7823, 14) + "ClusterIDNV\0" // IR(7837, 12) + "RayTracingClusterAccelerationStructureNV\0" // IR(7849, 41) + "CullMaskKHR\0" // IR(7890, 12) + "RayCullMaskKHR\0" // IR(7902, 15) + "Matrix\0" // IR(7917, 7) + "Linkage\0" // IR(7924, 8) + "Vector16\0" // IR(7932, 9) + "Float16Buffer\0" // IR(7941, 14) + "Float16\0" // IR(7955, 8) + "Float64\0" // IR(7963, 8) + "Int64\0" // IR(7971, 6) + "Int64Atomics\0" // IR(7977, 13) + "ImageBasic\0" // IR(7990, 11) + "ImageReadWrite\0" // IR(8001, 15) + "ImageMipmap\0" // IR(8016, 12) + "Pipes\0" // IR(8028, 6) + "Groups\0" // IR(8034, 7) + "DeviceEnqueue\0" // IR(8041, 14) + "LiteralSampler\0" // IR(8055, 15) + "AtomicStorage\0" // IR(8070, 14) + "Int16\0" // IR(8084, 6) + "TessellationPointSize\0" // IR(8090, 22) + "GeometryPointSize\0" // IR(8112, 18) + "ImageGatherExtended\0" // IR(8130, 20) + "StorageImageMultisample\0" // IR(8150, 24) + "UniformBufferArrayDynamicIndexing\0" // IR(8174, 34) + "SampledImageArrayDynamicIndexing\0" // IR(8208, 33) + "StorageBufferArrayDynamicIndexing\0" // IR(8241, 34) + "StorageImageArrayDynamicIndexing\0" // IR(8275, 33) + "ImageCubeArray\0" // IR(8308, 15) + "SampledCubeArray\0" // IR(8323, 17) + "ImageRect\0" // IR(8340, 10) + "SampledRect\0" // IR(8350, 12) + "GenericPointer\0" // IR(8362, 15) + "Int8\0" // IR(8377, 5) + "InputAttachment\0" // IR(8382, 16) + "SparseResidency\0" // IR(8398, 16) + "MinLod\0" // IR(8414, 7) + "Sampled1D\0" // IR(8421, 10) + "Image1D\0" // IR(8431, 8) + "SampledBuffer\0" // IR(8439, 14) + "ImageBuffer\0" // IR(8453, 12) + "ImageMSArray\0" // IR(8465, 13) + "StorageImageExtendedFormats\0" // IR(8478, 28) + "ImageQuery\0" // IR(8506, 11) + "DerivativeControl\0" // IR(8517, 18) + "InterpolationFunction\0" // IR(8535, 22) + "TransformFeedback\0" // IR(8557, 18) + "GeometryStreams\0" // IR(8575, 16) + "StorageImageReadWithoutFormat\0" // IR(8591, 30) + "StorageImageWriteWithoutFormat\0" // IR(8621, 31) + "SubgroupDispatch\0" // IR(8652, 17) + "NamedBarrier\0" // IR(8669, 13) + "PipeStorage\0" // IR(8682, 12) + "GroupNonUniformVote\0" // IR(8694, 20) + "GroupNonUniformArithmetic\0" // IR(8714, 26) + "GroupNonUniformShuffle\0" // IR(8740, 23) + "GroupNonUniformShuffleRelative\0" // IR(8763, 31) + "GroupNonUniformClustered\0" // IR(8794, 25) + "GroupNonUniformQuad\0" // IR(8819, 20) + "UniformDecoration\0" // IR(8839, 18) + "TileImageColorReadAccessEXT\0" // IR(8857, 28) + "TileImageDepthReadAccessEXT\0" // IR(8885, 28) + "TileImageStencilReadAccessEXT\0" // IR(8913, 30) + "TensorsARM\0" // IR(8943, 11) + "StorageTensorArrayDynamicIndexingARM\0" // IR(8954, 37) + "StorageTensorArrayNonUniformIndexingARM\0" // IR(8991, 40) + "GraphARM\0" // IR(9031, 9) + "CooperativeMatrixLayoutsARM\0" // IR(9040, 28) + "Float8EXT\0" // IR(9068, 10) + "Float8CooperativeMatrixEXT\0" // IR(9078, 27) + "CooperativeMatrixKHR\0" // IR(9105, 21) + "WorkgroupMemoryExplicitLayoutKHR\0" // IR(9126, 33) + "WorkgroupMemoryExplicitLayout8BitAccessKHR\0" // IR(9159, 43) + "WorkgroupMemoryExplicitLayout16BitAccessKHR\0" // IR(9202, 44) + "SubgroupVoteKHR\0" // IR(9246, 16) + "StorageBuffer16BitAccess\0" // IR(9262, 25) + "StorageUniformBufferBlock16\0" // IR(9287, 28) + "UniformAndStorageBuffer16BitAccess\0" // IR(9315, 35) + "StorageUniform16\0" // IR(9350, 17) + "StoragePushConstant16\0" // IR(9367, 22) + "StorageInputOutput16\0" // IR(9389, 21) + "VariablePointersStorageBuffer\0" // IR(9410, 30) + "VariablePointers\0" // IR(9440, 17) + "AtomicStorageOps\0" // IR(9457, 17) + "SampleMaskPostDepthCoverage\0" // IR(9474, 28) + "StorageBuffer8BitAccess\0" // IR(9502, 24) + "UniformAndStorageBuffer8BitAccess\0" // IR(9526, 34) + "StoragePushConstant8\0" // IR(9560, 21) + "DenormPreserve\0" // IR(9581, 15) + "DenormFlushToZero\0" // IR(9596, 18) + "SignedZeroInfNanPreserve\0" // IR(9614, 25) + "RoundingModeRTE\0" // IR(9639, 16) + "RoundingModeRTZ\0" // IR(9655, 16) + "RayQueryProvisionalKHR\0" // IR(9671, 23) + "RayQueryKHR\0" // IR(9694, 12) + "UntypedPointersKHR\0" // IR(9706, 19) + "RayTraversalPrimitiveCullingKHR\0" // IR(9725, 32) + "TextureSampleWeightedQCOM\0" // IR(9757, 26) + "TextureBoxFilterQCOM\0" // IR(9783, 21) + "TextureBlockMatchQCOM\0" // IR(9804, 22) + "CooperativeMatrixConversionQCOM\0" // IR(9826, 32) + "TextureBlockMatch2QCOM\0" // IR(9858, 23) + "Float16ImageAMD\0" // IR(9881, 16) + "ImageGatherBiasLodAMD\0" // IR(9897, 22) + "FragmentMaskAMD\0" // IR(9919, 16) + "ImageReadWriteLodAMD\0" // IR(9935, 21) + "Int64ImageEXT\0" // IR(9956, 14) + "ShaderClockKHR\0" // IR(9970, 15) + "QuadControlKHR\0" // IR(9985, 15) + "Int4TypeINTEL\0" // IR(10000, 14) + "Int4CooperativeMatrixINTEL\0" // IR(10014, 27) + "BFloat16TypeKHR\0" // IR(10041, 16) + "BFloat16DotProductKHR\0" // IR(10057, 22) + "BFloat16CooperativeMatrixKHR\0" // IR(10079, 29) + "SampleMaskOverrideCoverageNV\0" // IR(10108, 29) + "GeometryShaderPassthroughNV\0" // IR(10137, 28) + "ShaderViewportIndexLayerNV\0" // IR(10165, 27) + "ImageFootprintNV\0" // IR(10192, 17) + "FragmentBarycentricNV\0" // IR(10209, 22) + "ComputeDerivativeGroupQuadsKHR\0" // IR(10231, 31) + "ComputeDerivativeGroupQuadsNV\0" // IR(10262, 30) + "ShadingRateNV\0" // IR(10292, 14) + "GroupNonUniformPartitionedNV\0" // IR(10306, 29) + "ShaderNonUniform\0" // IR(10335, 17) + "ShaderNonUniformEXT\0" // IR(10352, 20) + "RuntimeDescriptorArray\0" // IR(10372, 23) + "RuntimeDescriptorArrayEXT\0" // IR(10395, 26) + "InputAttachmentArrayDynamicIndexing\0" // IR(10421, 36) + "InputAttachmentArrayDynamicIndexingEXT\0" // IR(10457, 39) + "UniformTexelBufferArrayDynamicIndexing\0" // IR(10496, 39) + "UniformTexelBufferArrayDynamicIndexingEXT\0" // IR(10535, 42) + "StorageTexelBufferArrayDynamicIndexing\0" // IR(10577, 39) + "StorageTexelBufferArrayDynamicIndexingEXT\0" // IR(10616, 42) + "UniformBufferArrayNonUniformIndexing\0" // IR(10658, 37) + "UniformBufferArrayNonUniformIndexingEXT\0" // IR(10695, 40) + "SampledImageArrayNonUniformIndexing\0" // IR(10735, 36) + "SampledImageArrayNonUniformIndexingEXT\0" // IR(10771, 39) + "StorageBufferArrayNonUniformIndexing\0" // IR(10810, 37) + "StorageBufferArrayNonUniformIndexingEXT\0" // IR(10847, 40) + "StorageImageArrayNonUniformIndexing\0" // IR(10887, 36) + "StorageImageArrayNonUniformIndexingEXT\0" // IR(10923, 39) + "InputAttachmentArrayNonUniformIndexing\0" // IR(10962, 39) + "InputAttachmentArrayNonUniformIndexingEXT\0" // IR(11001, 42) + "UniformTexelBufferArrayNonUniformIndexing\0" // IR(11043, 42) + "UniformTexelBufferArrayNonUniformIndexingEXT\0" // IR(11085, 45) + "StorageTexelBufferArrayNonUniformIndexing\0" // IR(11130, 42) + "StorageTexelBufferArrayNonUniformIndexingEXT\0" // IR(11172, 45) + "VulkanMemoryModel\0" // IR(11217, 18) + "VulkanMemoryModelKHR\0" // IR(11235, 21) + "VulkanMemoryModelDeviceScope\0" // IR(11256, 29) + "VulkanMemoryModelDeviceScopeKHR\0" // IR(11285, 32) + "PhysicalStorageBufferAddressesEXT\0" // IR(11317, 34) + "ComputeDerivativeGroupLinearKHR\0" // IR(11351, 32) + "ComputeDerivativeGroupLinearNV\0" // IR(11383, 31) + "RayTracingProvisionalKHR\0" // IR(11414, 25) + "CooperativeMatrixNV\0" // IR(11439, 20) + "FragmentShaderSampleInterlockEXT\0" // IR(11459, 33) + "FragmentShaderShadingRateInterlockEXT\0" // IR(11492, 38) + "FragmentShaderPixelInterlockEXT\0" // IR(11530, 32) + "DemoteToHelperInvocation\0" // IR(11562, 25) + "DemoteToHelperInvocationEXT\0" // IR(11587, 28) + "DisplacementMicromapNV\0" // IR(11615, 23) + "RayTracingOpacityMicromapEXT\0" // IR(11638, 29) + "ShaderInvocationReorderNV\0" // IR(11667, 26) + "BindlessTextureNV\0" // IR(11693, 18) + "RayQueryPositionFetchKHR\0" // IR(11711, 25) + "CooperativeVectorNV\0" // IR(11736, 20) + "AtomicFloat16VectorNV\0" // IR(11756, 22) + "RawAccessChainsNV\0" // IR(11778, 18) + "CooperativeMatrixReductionsNV\0" // IR(11796, 30) + "CooperativeMatrixConversionsNV\0" // IR(11826, 31) + "CooperativeMatrixPerElementOperationsNV\0" // IR(11857, 40) + "CooperativeMatrixTensorAddressingNV\0" // IR(11897, 36) + "CooperativeMatrixBlockLoadsNV\0" // IR(11933, 30) + "CooperativeVectorTrainingNV\0" // IR(11963, 28) + "TensorAddressingNV\0" // IR(11991, 19) + "SubgroupShuffleINTEL\0" // IR(12010, 21) + "SubgroupBufferBlockIOINTEL\0" // IR(12031, 27) + "SubgroupImageBlockIOINTEL\0" // IR(12058, 26) + "SubgroupImageMediaBlockIOINTEL\0" // IR(12084, 31) + "RoundToInfinityINTEL\0" // IR(12115, 21) + "FloatingPointModeINTEL\0" // IR(12136, 23) + "IntegerFunctions2INTEL\0" // IR(12159, 23) + "FunctionPointersINTEL\0" // IR(12182, 22) + "IndirectReferencesINTEL\0" // IR(12204, 24) + "AsmINTEL\0" // IR(12228, 9) + "AtomicFloat32MinMaxEXT\0" // IR(12237, 23) + "AtomicFloat64MinMaxEXT\0" // IR(12260, 23) + "AtomicFloat16MinMaxEXT\0" // IR(12283, 23) + "VectorComputeINTEL\0" // IR(12306, 19) + "VectorAnyINTEL\0" // IR(12325, 15) + "ExpectAssumeKHR\0" // IR(12340, 16) + "SubgroupAvcMotionEstimationINTEL\0" // IR(12356, 33) + "SubgroupAvcMotionEstimationIntraINTEL\0" // IR(12389, 38) + "SubgroupAvcMotionEstimationChromaINTEL\0" // IR(12427, 39) + "VariableLengthArrayINTEL\0" // IR(12466, 25) + "FunctionFloatControlINTEL\0" // IR(12491, 26) + "FPGAMemoryAttributesINTEL\0" // IR(12517, 26) + "FPFastMathModeINTEL\0" // IR(12543, 20) + "ArbitraryPrecisionIntegersINTEL\0" // IR(12563, 32) + "ArbitraryPrecisionFloatingPointINTEL\0" // IR(12595, 37) + "UnstructuredLoopControlsINTEL\0" // IR(12632, 30) + "FPGALoopControlsINTEL\0" // IR(12662, 22) + "KernelAttributesINTEL\0" // IR(12684, 22) + "FPGAKernelAttributesINTEL\0" // IR(12706, 26) + "FPGAMemoryAccessesINTEL\0" // IR(12732, 24) + "FPGAClusterAttributesINTEL\0" // IR(12756, 27) + "LoopFuseINTEL\0" // IR(12783, 14) + "FPGADSPControlINTEL\0" // IR(12797, 20) + "MemoryAccessAliasingINTEL\0" // IR(12817, 26) + "FPGAInvocationPipeliningAttributesINTEL\0" // IR(12843, 40) + "FPGABufferLocationINTEL\0" // IR(12883, 24) + "ArbitraryPrecisionFixedPointINTEL\0" // IR(12907, 34) + "USMStorageClassesINTEL\0" // IR(12941, 23) + "RuntimeAlignedAttributeINTEL\0" // IR(12964, 29) + "IOPipesINTEL\0" // IR(12993, 13) + "BlockingPipesINTEL\0" // IR(13006, 19) + "FPGARegINTEL\0" // IR(13025, 13) + "DotProductInputAll\0" // IR(13038, 19) + "DotProductInputAllKHR\0" // IR(13057, 22) + "DotProductInput4x8Bit\0" // IR(13079, 22) + "DotProductInput4x8BitKHR\0" // IR(13101, 25) + "DotProductInput4x8BitPacked\0" // IR(13126, 28) + "DotProductInput4x8BitPackedKHR\0" // IR(13154, 31) + "DotProduct\0" // IR(13185, 11) + "DotProductKHR\0" // IR(13196, 14) + "ReplicatedCompositesEXT\0" // IR(13210, 24) + "BitInstructions\0" // IR(13234, 16) + "GroupNonUniformRotateKHR\0" // IR(13250, 25) + "FloatControls2\0" // IR(13275, 15) + "AtomicFloat32AddEXT\0" // IR(13290, 20) + "AtomicFloat64AddEXT\0" // IR(13310, 20) + "LongCompositesINTEL\0" // IR(13330, 20) + "OptNoneEXT\0" // IR(13350, 11) + "OptNoneINTEL\0" // IR(13361, 13) + "AtomicFloat16AddEXT\0" // IR(13374, 20) + "DebugInfoModuleINTEL\0" // IR(13394, 21) + "BFloat16ConversionINTEL\0" // IR(13415, 24) + "SplitBarrierINTEL\0" // IR(13439, 18) + "ArithmeticFenceEXT\0" // IR(13457, 19) + "FPGAClusterAttributesV2INTEL\0" // IR(13476, 29) + "FPGAKernelAttributesv2INTEL\0" // IR(13505, 28) + "TaskSequenceINTEL\0" // IR(13533, 18) + "FPMaxErrorINTEL\0" // IR(13551, 16) + "FPGALatencyControlINTEL\0" // IR(13567, 24) + "FPGAArgumentInterfacesINTEL\0" // IR(13591, 28) + "GlobalVariableHostAccessINTEL\0" // IR(13619, 30) + "GlobalVariableFPGADecorationsINTEL\0" // IR(13649, 35) + "SubgroupBufferPrefetchINTEL\0" // IR(13684, 28) + "Subgroup2DBlockIOINTEL\0" // IR(13712, 23) + "Subgroup2DBlockTransformINTEL\0" // IR(13735, 30) + "Subgroup2DBlockTransposeINTEL\0" // IR(13765, 30) + "SubgroupMatrixMultiplyAccumulateINTEL\0" // IR(13795, 38) + "TernaryBitwiseFunctionINTEL\0" // IR(13833, 28) + "UntypedVariableLengthArrayINTEL\0" // IR(13861, 32) + "SpecConditionalINTEL\0" // IR(13893, 21) + "FunctionVariantsINTEL\0" // IR(13914, 22) + "GroupUniformArithmeticKHR\0" // IR(13936, 26) + "TensorFloat32RoundingINTEL\0" // IR(13962, 27) + "MaskedGatherScatterINTEL\0" // IR(13989, 25) + "CacheControlsINTEL\0" // IR(14014, 19) + "RegisterLimitsINTEL\0" // IR(14033, 20) + "BindlessImagesINTEL\0" // IR(14053, 20) + "Unspecified\0" // IR(14073, 12) + "Address\0" // IR(14085, 8) + "Boolean\0" // IR(14093, 8) + "Float\0" // IR(14101, 6) + "Signed\0" // IR(14107, 7) + "SignedChar\0" // IR(14114, 11) + "Unsigned\0" // IR(14125, 9) + "UnsignedChar\0" // IR(14134, 13) + "Class\0" // IR(14147, 6) + "Structure\0" // IR(14153, 10) + "Union\0" // IR(14163, 6) + "ImportedModule\0" // IR(14169, 15) + "ImportedDeclaration\0" // IR(14184, 20) + "None\0" // IR(14204, 5) + "FlagIsProtected\0" // IR(14209, 16) + "FlagIsPrivate\0" // IR(14225, 14) + "FlagIsPublic\0" // IR(14239, 13) + "FlagIsLocal\0" // IR(14252, 12) + "FlagIsDefinition\0" // IR(14264, 17) + "FlagFwdDecl\0" // IR(14281, 12) + "FlagArtificial\0" // IR(14293, 15) + "FlagExplicit\0" // IR(14308, 13) + "FlagPrototyped\0" // IR(14321, 15) + "FlagObjectPointer\0" // IR(14336, 18) + "FlagStaticMember\0" // IR(14354, 17) + "FlagIndirectVariable\0" // IR(14371, 21) + "FlagLValueReference\0" // IR(14392, 20) + "FlagRValueReference\0" // IR(14412, 20) + "FlagIsOptimized\0" // IR(14432, 16) + "FlagIsEnumClass\0" // IR(14448, 16) + "FlagTypePassByValue\0" // IR(14464, 20) + "FlagTypePassByReference\0" // IR(14484, 24) + "Deref\0" // IR(14508, 6) + "Plus\0" // IR(14514, 5) + "Minus\0" // IR(14519, 6) + "SPV_OPERAND_TYPE_LITERAL_INTEGER\0" // IR(14525, 33) + "PlusUconst\0" // IR(14558, 11) + "BitPiece\0" // IR(14569, 9) + "Swap\0" // IR(14578, 5) + "Xderef\0" // IR(14583, 7) + "StackValue\0" // IR(14590, 11) + "Constu\0" // IR(14601, 7) + "Fragment\0" // IR(14608, 9) + "ConstType\0" // IR(14617, 10) + "VolatileType\0" // IR(14627, 13) + "RestrictType\0" // IR(14640, 13) + "AtomicType\0" // IR(14653, 11) + "Float16NV\0" // IR(14664, 10) + "Float32NV\0" // IR(14674, 10) + "Float64NV\0" // IR(14684, 10) + "SignedInt8NV\0" // IR(14694, 13) + "SignedInt16NV\0" // IR(14707, 14) + "SignedInt32NV\0" // IR(14721, 14) + "SignedInt64NV\0" // IR(14735, 14) + "UnsignedInt8NV\0" // IR(14749, 15) + "UnsignedInt16NV\0" // IR(14764, 16) + "UnsignedInt32NV\0" // IR(14780, 16) + "UnsignedInt64NV\0" // IR(14796, 16) + "SignedInt8PackedNV\0" // IR(14812, 19) + "UnsignedInt8PackedNV\0" // IR(14831, 21) + "FloatE4M3NV\0" // IR(14852, 12) + "FloatE5M2NV\0" // IR(14864, 12) + "RowMajorKHR\0" // IR(14876, 12) + "ColumnMajorKHR\0" // IR(14888, 15) + "RowBlockedInterleavedARM\0" // IR(14903, 25) + "ColumnBlockedInterleavedARM\0" // IR(14928, 28) + "NoneKHR\0" // IR(14956, 8) + "MatrixASignedComponentsKHR\0" // IR(14964, 27) + "MatrixBSignedComponentsKHR\0" // IR(14991, 27) + "MatrixCSignedComponentsKHR\0" // IR(15018, 27) + "MatrixResultSignedComponentsKHR\0" // IR(15045, 32) + "SaturatingAccumulationKHR\0" // IR(15077, 26) + "Row\0" // IR(15103, 4) + "Column\0" // IR(15107, 7) + "2x2\0" // IR(15114, 4) + "MatrixAKHR\0" // IR(15118, 11) + "MatrixBKHR\0" // IR(15129, 11) + "MatrixAccumulatorKHR\0" // IR(15140, 21) + "RowMajorNV\0" // IR(15161, 11) + "ColumnMajorNV\0" // IR(15172, 14) + "InferencingOptimalNV\0" // IR(15186, 21) + "TrainingOptimalNV\0" // IR(15207, 18) + "RelaxedPrecision\0" // IR(15225, 17) + "SpecId\0" // IR(15242, 7) + "Block\0" // IR(15249, 6) + "BufferBlock\0" // IR(15255, 12) + "RowMajor\0" // IR(15267, 9) + "ColMajor\0" // IR(15276, 9) + "ArrayStride\0" // IR(15285, 12) + "MatrixStride\0" // IR(15297, 13) + "GLSLShared\0" // IR(15310, 11) + "GLSLPacked\0" // IR(15321, 11) + "CPacked\0" // IR(15332, 8) + "SPV_OPERAND_TYPE_BUILT_IN\0" // IR(15340, 26) + "BuiltIn\0" // IR(15366, 8) + "NoPerspective\0" // IR(15374, 14) + "Flat\0" // IR(15388, 5) + "Patch\0" // IR(15393, 6) + "Centroid\0" // IR(15399, 9) + "Sample\0" // IR(15408, 7) + "Invariant\0" // IR(15415, 10) + "Restrict\0" // IR(15425, 9) + "Aliased\0" // IR(15434, 8) + "Volatile\0" // IR(15442, 9) + "Constant\0" // IR(15451, 9) + "Coherent\0" // IR(15460, 9) + "NonWritable\0" // IR(15469, 12) + "NonReadable\0" // IR(15481, 12) + "Uniform\0" // IR(15493, 8) + "SPV_OPERAND_TYPE_SCOPE_ID\0" // IR(15501, 26) + "UniformId\0" // IR(15527, 10) + "SaturatedConversion\0" // IR(15537, 20) + "Stream\0" // IR(15557, 7) + "Location\0" // IR(15564, 9) + "Component\0" // IR(15573, 10) + "Index\0" // IR(15583, 6) + "Binding\0" // IR(15589, 8) + "DescriptorSet\0" // IR(15597, 14) + "Offset\0" // IR(15611, 7) + "XfbBuffer\0" // IR(15618, 10) + "XfbStride\0" // IR(15628, 10) + "SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE\0" // IR(15638, 46) + "FuncParamAttr\0" // IR(15684, 14) + "SPV_OPERAND_TYPE_FP_ROUNDING_MODE\0" // IR(15698, 34) + "FPRoundingMode\0" // IR(15732, 15) + "SPV_OPERAND_TYPE_FP_FAST_MATH_MODE\0" // IR(15747, 35) + "FPFastMathMode\0" // IR(15782, 15) + "SPV_OPERAND_TYPE_LITERAL_STRING\0" // IR(15797, 32) + "SPV_OPERAND_TYPE_LINKAGE_TYPE\0" // IR(15829, 30) + "LinkageAttributes\0" // IR(15859, 18) + "NoContraction\0" // IR(15877, 14) + "InputAttachmentIndex\0" // IR(15891, 21) + "Alignment\0" // IR(15912, 10) + "MaxByteOffset\0" // IR(15922, 14) + "SPV_OPERAND_TYPE_ID\0" // IR(15936, 20) + "AlignmentId\0" // IR(15956, 12) + "MaxByteOffsetId\0" // IR(15968, 16) + "SaturatedToLargestFloat8NormalConversionEXT\0" // IR(15984, 44) + "NoSignedWrap\0" // IR(16028, 13) + "NoUnsignedWrap\0" // IR(16041, 15) + "WeightTextureQCOM\0" // IR(16056, 18) + "BlockMatchTextureQCOM\0" // IR(16074, 22) + "BlockMatchSamplerQCOM\0" // IR(16096, 22) + "ExplicitInterpAMD\0" // IR(16118, 18) + "NodeSharesPayloadLimitsWithAMDX\0" // IR(16136, 32) + "NodeMaxPayloadsAMDX\0" // IR(16168, 20) + "TrackFinishWritingAMDX\0" // IR(16188, 23) + "PayloadNodeNameAMDX\0" // IR(16211, 20) + "PayloadNodeBaseIndexAMDX\0" // IR(16231, 25) + "PayloadNodeSparseArrayAMDX\0" // IR(16256, 27) + "PayloadNodeArraySizeAMDX\0" // IR(16283, 25) + "PayloadDispatchIndirectAMDX\0" // IR(16308, 28) + "OverrideCoverageNV\0" // IR(16336, 19) + "PassthroughNV\0" // IR(16355, 14) + "ViewportRelativeNV\0" // IR(16369, 19) + "SecondaryViewportRelativeNV\0" // IR(16388, 28) + "PerPrimitiveEXT\0" // IR(16416, 16) + "PerPrimitiveNV\0" // IR(16432, 15) + "PerViewNV\0" // IR(16447, 10) + "PerTaskNV\0" // IR(16457, 10) + "PerVertexKHR\0" // IR(16467, 13) + "PerVertexNV\0" // IR(16480, 12) + "NonUniform\0" // IR(16492, 11) + "NonUniformEXT\0" // IR(16503, 14) + "RestrictPointer\0" // IR(16517, 16) + "RestrictPointerEXT\0" // IR(16533, 19) + "AliasedPointer\0" // IR(16552, 15) + "AliasedPointerEXT\0" // IR(16567, 18) + "HitObjectShaderRecordBufferNV\0" // IR(16585, 30) + "BindlessSamplerNV\0" // IR(16615, 18) + "BindlessImageNV\0" // IR(16633, 16) + "BoundSamplerNV\0" // IR(16649, 15) + "BoundImageNV\0" // IR(16664, 13) + "SIMTCallINTEL\0" // IR(16677, 14) + "ReferencedIndirectlyINTEL\0" // IR(16691, 26) + "ClobberINTEL\0" // IR(16717, 13) + "SideEffectsINTEL\0" // IR(16730, 17) + "VectorComputeVariableINTEL\0" // IR(16747, 27) + "FuncParamIOKindINTEL\0" // IR(16774, 21) + "VectorComputeFunctionINTEL\0" // IR(16795, 27) + "StackCallINTEL\0" // IR(16822, 15) + "GlobalVariableOffsetINTEL\0" // IR(16837, 26) + "CounterBuffer\0" // IR(16863, 14) + "HlslCounterBufferGOOGLE\0" // IR(16877, 24) + "UserSemantic\0" // IR(16901, 13) + "HlslSemanticGOOGLE\0" // IR(16914, 19) + "UserTypeGOOGLE\0" // IR(16933, 15) + "FunctionRoundingModeINTEL\0" // IR(16948, 26) + "SPV_OPERAND_TYPE_FPDENORM_MODE\0" // IR(16974, 31) + "FunctionDenormModeINTEL\0" // IR(17005, 24) + "RegisterINTEL\0" // IR(17029, 14) + "MemoryINTEL\0" // IR(17043, 12) + "NumbanksINTEL\0" // IR(17055, 14) + "BankwidthINTEL\0" // IR(17069, 15) + "MaxPrivateCopiesINTEL\0" // IR(17084, 22) + "SinglepumpINTEL\0" // IR(17106, 16) + "DoublepumpINTEL\0" // IR(17122, 16) + "MaxReplicatesINTEL\0" // IR(17138, 19) + "SimpleDualPortINTEL\0" // IR(17157, 20) + "MergeINTEL\0" // IR(17177, 11) + "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER\0" // IR(17188, 42) + "BankBitsINTEL\0" // IR(17230, 14) + "ForcePow2DepthINTEL\0" // IR(17244, 20) + "StridesizeINTEL\0" // IR(17264, 16) + "WordsizeINTEL\0" // IR(17280, 14) + "TrueDualPortINTEL\0" // IR(17294, 18) + "BurstCoalesceINTEL\0" // IR(17312, 19) + "CacheSizeINTEL\0" // IR(17331, 15) + "DontStaticallyCoalesceINTEL\0" // IR(17346, 28) + "PrefetchINTEL\0" // IR(17374, 14) + "StallEnableINTEL\0" // IR(17388, 17) + "FuseLoopsInFunctionINTEL\0" // IR(17405, 25) + "MathOpDSPModeINTEL\0" // IR(17430, 19) + "AliasScopeINTEL\0" // IR(17449, 16) + "NoAliasINTEL\0" // IR(17465, 13) + "InitiationIntervalINTEL\0" // IR(17478, 24) + "MaxConcurrencyINTEL\0" // IR(17502, 20) + "PipelineEnableINTEL\0" // IR(17522, 20) + "BufferLocationINTEL\0" // IR(17542, 20) + "IOPipeStorageINTEL\0" // IR(17562, 19) + "SPV_OPERAND_TYPE_FPOPERATION_MODE\0" // IR(17581, 34) + "FunctionFloatingPointModeINTEL\0" // IR(17615, 31) + "SingleElementVectorINTEL\0" // IR(17646, 25) + "VectorComputeCallableFunctionINTEL\0" // IR(17671, 35) + "MediaBlockIOINTEL\0" // IR(17706, 18) + "StallFreeINTEL\0" // IR(17724, 15) + "SPV_OPERAND_TYPE_LITERAL_FLOAT\0" // IR(17739, 31) + "FPMaxErrorDecorationINTEL\0" // IR(17770, 26) + "LatencyControlLabelINTEL\0" // IR(17796, 25) + "LatencyControlConstraintINTEL\0" // IR(17821, 30) + "ConduitKernelArgumentINTEL\0" // IR(17851, 27) + "RegisterMapKernelArgumentINTEL\0" // IR(17878, 31) + "MMHostInterfaceAddressWidthINTEL\0" // IR(17909, 33) + "MMHostInterfaceDataWidthINTEL\0" // IR(17942, 30) + "MMHostInterfaceLatencyINTEL\0" // IR(17972, 28) + "SPV_OPERAND_TYPE_ACCESS_QUALIFIER\0" // IR(18000, 34) + "MMHostInterfaceReadWriteModeINTEL\0" // IR(18034, 34) + "MMHostInterfaceMaxBurstINTEL\0" // IR(18068, 29) + "MMHostInterfaceWaitRequestINTEL\0" // IR(18097, 32) + "StableKernelArgumentINTEL\0" // IR(18129, 26) + "SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER\0" // IR(18155, 39) + "HostAccessINTEL\0" // IR(18194, 16) + "SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER\0" // IR(18210, 47) + "InitModeINTEL\0" // IR(18257, 14) + "ImplementInRegisterMapINTEL\0" // IR(18271, 28) + "ConditionalINTEL\0" // IR(18299, 17) + "SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL\0" // IR(18316, 36) + "CacheControlLoadINTEL\0" // IR(18352, 22) + "SPV_OPERAND_TYPE_STORE_CACHE_CONTROL\0" // IR(18374, 37) + "CacheControlStoreINTEL\0" // IR(18411, 23) + "1D\0" // IR(18434, 3) + "2D\0" // IR(18437, 3) + "3D\0" // IR(18440, 3) + "Cube\0" // IR(18443, 5) + "Rect\0" // IR(18448, 5) + "Buffer\0" // IR(18453, 7) + "SubpassData\0" // IR(18460, 12) + "TileImageDataEXT\0" // IR(18472, 17) + "Invocations\0" // IR(18489, 12) + "SpacingEqual\0" // IR(18501, 13) + "SpacingFractionalEven\0" // IR(18514, 22) + "SpacingFractionalOdd\0" // IR(18536, 21) + "VertexOrderCw\0" // IR(18557, 14) + "VertexOrderCcw\0" // IR(18571, 15) + "PixelCenterInteger\0" // IR(18586, 19) + "OriginUpperLeft\0" // IR(18605, 16) + "OriginLowerLeft\0" // IR(18621, 16) + "EarlyFragmentTests\0" // IR(18637, 19) + "PointMode\0" // IR(18656, 10) + "Xfb\0" // IR(18666, 4) + "DepthReplacing\0" // IR(18670, 15) + "DepthGreater\0" // IR(18685, 13) + "DepthLess\0" // IR(18698, 10) + "DepthUnchanged\0" // IR(18708, 15) + "LocalSize\0" // IR(18723, 10) + "LocalSizeHint\0" // IR(18733, 14) + "InputPoints\0" // IR(18747, 12) + "InputLines\0" // IR(18759, 11) + "InputLinesAdjacency\0" // IR(18770, 20) + "Triangles\0" // IR(18790, 10) + "InputTrianglesAdjacency\0" // IR(18800, 24) + "Quads\0" // IR(18824, 6) + "Isolines\0" // IR(18830, 9) + "OutputVertices\0" // IR(18839, 15) + "OutputPoints\0" // IR(18854, 13) + "OutputLineStrip\0" // IR(18867, 16) + "OutputTriangleStrip\0" // IR(18883, 20) + "VecTypeHint\0" // IR(18903, 12) + "ContractionOff\0" // IR(18915, 15) + "Initializer\0" // IR(18930, 12) + "Finalizer\0" // IR(18942, 10) + "SubgroupsPerWorkgroup\0" // IR(18952, 22) + "SubgroupsPerWorkgroupId\0" // IR(18974, 24) + "LocalSizeId\0" // IR(18998, 12) + "LocalSizeHintId\0" // IR(19010, 16) + "NonCoherentColorAttachmentReadEXT\0" // IR(19026, 34) + "NonCoherentDepthAttachmentReadEXT\0" // IR(19060, 34) + "NonCoherentStencilAttachmentReadEXT\0" // IR(19094, 36) + "SubgroupUniformControlFlowKHR\0" // IR(19130, 30) + "PostDepthCoverage\0" // IR(19160, 18) + "NonCoherentTileAttachmentReadQCOM\0" // IR(19178, 34) + "TileShadingRateQCOM\0" // IR(19212, 20) + "EarlyAndLateFragmentTestsAMD\0" // IR(19232, 29) + "StencilRefReplacingEXT\0" // IR(19261, 23) + "CoalescingAMDX\0" // IR(19284, 15) + "IsApiEntryAMDX\0" // IR(19299, 15) + "MaxNodeRecursionAMDX\0" // IR(19314, 21) + "StaticNumWorkgroupsAMDX\0" // IR(19335, 24) + "MaxNumWorkgroupsAMDX\0" // IR(19359, 21) + "StencilRefUnchangedFrontAMD\0" // IR(19380, 28) + "StencilRefGreaterFrontAMD\0" // IR(19408, 26) + "StencilRefLessFrontAMD\0" // IR(19434, 23) + "StencilRefUnchangedBackAMD\0" // IR(19457, 27) + "StencilRefGreaterBackAMD\0" // IR(19484, 25) + "StencilRefLessBackAMD\0" // IR(19509, 22) + "QuadDerivativesKHR\0" // IR(19531, 19) + "RequireFullQuadsKHR\0" // IR(19550, 20) + "SharesInputWithAMDX\0" // IR(19570, 20) + "OutputLinesEXT\0" // IR(19590, 15) + "OutputLinesNV\0" // IR(19605, 14) + "OutputPrimitivesEXT\0" // IR(19619, 20) + "OutputPrimitivesNV\0" // IR(19639, 19) + "DerivativeGroupQuadsKHR\0" // IR(19658, 24) + "DerivativeGroupQuadsNV\0" // IR(19682, 23) + "DerivativeGroupLinearKHR\0" // IR(19705, 25) + "DerivativeGroupLinearNV\0" // IR(19730, 24) + "OutputTrianglesEXT\0" // IR(19754, 19) + "OutputTrianglesNV\0" // IR(19773, 18) + "PixelInterlockOrderedEXT\0" // IR(19791, 25) + "PixelInterlockUnorderedEXT\0" // IR(19816, 27) + "SampleInterlockOrderedEXT\0" // IR(19843, 26) + "SampleInterlockUnorderedEXT\0" // IR(19869, 28) + "ShadingRateInterlockOrderedEXT\0" // IR(19897, 31) + "ShadingRateInterlockUnorderedEXT\0" // IR(19928, 33) + "SharedLocalMemorySizeINTEL\0" // IR(19961, 27) + "RoundingModeRTPINTEL\0" // IR(19988, 21) + "RoundingModeRTNINTEL\0" // IR(20009, 21) + "FloatingPointModeALTINTEL\0" // IR(20030, 26) + "FloatingPointModeIEEEINTEL\0" // IR(20056, 27) + "MaxWorkgroupSizeINTEL\0" // IR(20083, 22) + "MaxWorkDimINTEL\0" // IR(20105, 16) + "NoGlobalOffsetINTEL\0" // IR(20121, 20) + "NumSIMDWorkitemsINTEL\0" // IR(20141, 22) + "SchedulerTargetFmaxMhzINTEL\0" // IR(20163, 28) + "MaximallyReconvergesKHR\0" // IR(20191, 24) + "FPFastMathDefault\0" // IR(20215, 18) + "StreamingInterfaceINTEL\0" // IR(20233, 24) + "RegisterMapInterfaceINTEL\0" // IR(20257, 26) + "NamedBarrierCountINTEL\0" // IR(20283, 23) + "MaximumRegistersINTEL\0" // IR(20306, 22) + "MaximumRegistersIdINTEL\0" // IR(20328, 24) + "SPV_OPERAND_TYPE_NAMED_MAXIMUM_NUMBER_OF_REGISTERS\0" // IR(20352, 51) + "NamedMaximumRegistersINTEL\0" // IR(20403, 27) + "Vertex\0" // IR(20430, 7) + "TessellationControl\0" // IR(20437, 20) + "TessellationEvaluation\0" // IR(20457, 23) + "GLCompute\0" // IR(20480, 10) + "TaskNV\0" // IR(20490, 7) + "MeshNV\0" // IR(20497, 7) + "RayGenerationKHR\0" // IR(20504, 17) + "RayGenerationNV\0" // IR(20521, 16) + "IntersectionKHR\0" // IR(20537, 16) + "IntersectionNV\0" // IR(20553, 15) + "AnyHitKHR\0" // IR(20568, 10) + "AnyHitNV\0" // IR(20578, 9) + "ClosestHitKHR\0" // IR(20587, 14) + "ClosestHitNV\0" // IR(20601, 13) + "MissKHR\0" // IR(20614, 8) + "MissNV\0" // IR(20622, 7) + "CallableKHR\0" // IR(20629, 12) + "CallableNV\0" // IR(20641, 11) + "TaskEXT\0" // IR(20652, 8) + "MeshEXT\0" // IR(20660, 8) + "Preserve\0" // IR(20668, 9) + "FlushToZero\0" // IR(20677, 12) + "BFloat16KHR\0" // IR(20689, 12) + "Float8E4M3EXT\0" // IR(20701, 14) + "Float8E5M2EXT\0" // IR(20715, 14) + "IEEE\0" // IR(20729, 5) + "ALT\0" // IR(20734, 4) + "NotNaN\0" // IR(20738, 7) + "NotInf\0" // IR(20745, 7) + "NSZ\0" // IR(20752, 4) + "AllowRecip\0" // IR(20756, 11) + "Fast\0" // IR(20767, 5) + "AllowContract\0" // IR(20772, 14) + "AllowContractFastINTEL\0" // IR(20786, 23) + "AllowReassoc\0" // IR(20809, 13) + "AllowReassocINTEL\0" // IR(20822, 18) + "AllowTransform\0" // IR(20840, 15) + "RTE\0" // IR(20855, 4) + "RTZ\0" // IR(20859, 4) + "RTP\0" // IR(20863, 4) + "RTN\0" // IR(20867, 4) + "Vertical2Pixels\0" // IR(20871, 16) + "Vertical4Pixels\0" // IR(20887, 16) + "Horizontal2Pixels\0" // IR(20903, 18) + "Horizontal4Pixels\0" // IR(20921, 18) + "Inline\0" // IR(20939, 7) + "DontInline\0" // IR(20946, 11) + "Pure\0" // IR(20957, 5) + "Const\0" // IR(20962, 6) + "Zext\0" // IR(20968, 5) + "Sext\0" // IR(20973, 5) + "ByVal\0" // IR(20978, 6) + "Sret\0" // IR(20984, 5) + "NoAlias\0" // IR(20989, 8) + "NoCapture\0" // IR(20997, 10) + "NoWrite\0" // IR(21007, 8) + "NoReadWrite\0" // IR(21015, 12) + "RuntimeAlignedINTEL\0" // IR(21027, 20) + "Reduce\0" // IR(21047, 7) + "InclusiveScan\0" // IR(21054, 14) + "ExclusiveScan\0" // IR(21068, 14) + "ClusteredReduce\0" // IR(21082, 16) + "PartitionedReduceNV\0" // IR(21098, 20) + "PartitionedInclusiveScanNV\0" // IR(21118, 27) + "PartitionedExclusiveScanNV\0" // IR(21145, 27) + "NoneINTEL\0" // IR(21172, 10) + "ReadINTEL\0" // IR(21182, 10) + "WriteINTEL\0" // IR(21192, 11) + "ReadWriteINTEL\0" // IR(21203, 15) + "Bias\0" // IR(21218, 5) + "Lod\0" // IR(21223, 4) + "Grad\0" // IR(21227, 5) + "ConstOffset\0" // IR(21232, 12) + "ConstOffsets\0" // IR(21244, 13) + "MakeTexelAvailable\0" // IR(21257, 19) + "MakeTexelAvailableKHR\0" // IR(21276, 22) + "MakeTexelVisible\0" // IR(21298, 17) + "MakeTexelVisibleKHR\0" // IR(21315, 20) + "NonPrivateTexel\0" // IR(21335, 16) + "NonPrivateTexelKHR\0" // IR(21351, 19) + "VolatileTexel\0" // IR(21370, 14) + "VolatileTexelKHR\0" // IR(21384, 17) + "SignExtend\0" // IR(21401, 11) + "ZeroExtend\0" // IR(21412, 11) + "Nontemporal\0" // IR(21423, 12) + "Offsets\0" // IR(21435, 8) + "SnormInt8\0" // IR(21443, 10) + "SnormInt16\0" // IR(21453, 11) + "UnormInt8\0" // IR(21464, 10) + "UnormInt16\0" // IR(21474, 11) + "UnormShort565\0" // IR(21485, 14) + "UnormShort555\0" // IR(21499, 14) + "UnormInt101010\0" // IR(21513, 15) + "SignedInt8\0" // IR(21528, 11) + "SignedInt16\0" // IR(21539, 12) + "SignedInt32\0" // IR(21551, 12) + "UnsignedInt8\0" // IR(21563, 13) + "UnsignedInt16\0" // IR(21576, 14) + "UnsignedInt32\0" // IR(21590, 14) + "HalfFloat\0" // IR(21604, 10) + "UnormInt24\0" // IR(21614, 11) + "UnormInt101010_2\0" // IR(21625, 17) + "UnormInt10X6EXT\0" // IR(21642, 16) + "UnsignedIntRaw10EXT\0" // IR(21658, 20) + "UnsignedIntRaw12EXT\0" // IR(21678, 20) + "UnormInt2_101010EXT\0" // IR(21698, 20) + "UnsignedInt10X6EXT\0" // IR(21718, 19) + "UnsignedInt12X4EXT\0" // IR(21737, 19) + "UnsignedInt14X2EXT\0" // IR(21756, 19) + "UnormInt12X4EXT\0" // IR(21775, 16) + "UnormInt14X2EXT\0" // IR(21791, 16) + "R\0" // IR(21807, 2) + "A\0" // IR(21809, 2) + "RG\0" // IR(21811, 3) + "RA\0" // IR(21814, 3) + "RGB\0" // IR(21817, 4) + "RGBA\0" // IR(21821, 5) + "BGRA\0" // IR(21826, 5) + "ARGB\0" // IR(21831, 5) + "Intensity\0" // IR(21836, 10) + "Luminance\0" // IR(21846, 10) + "Rx\0" // IR(21856, 3) + "RGx\0" // IR(21859, 4) + "RGBx\0" // IR(21863, 5) + "Depth\0" // IR(21868, 6) + "DepthStencil\0" // IR(21874, 13) + "sRGB\0" // IR(21887, 5) + "sRGBx\0" // IR(21892, 6) + "sRGBA\0" // IR(21898, 6) + "sBGRA\0" // IR(21904, 6) + "ABGR\0" // IR(21910, 5) + "InitOnDeviceReprogramINTEL\0" // IR(21915, 27) + "InitOnDeviceResetINTEL\0" // IR(21942, 23) + "NoWait\0" // IR(21965, 7) + "WaitKernel\0" // IR(21972, 11) + "WaitWorkGroup\0" // IR(21983, 14) + "CmdExecTime\0" // IR(21997, 12) + "MayUsePrintf\0" // IR(22009, 13) + "Export\0" // IR(22022, 7) + "Import\0" // IR(22029, 7) + "LinkOnceODR\0" // IR(22036, 12) + "UncachedINTEL\0" // IR(22048, 14) + "CachedINTEL\0" // IR(22062, 12) + "StreamingINTEL\0" // IR(22074, 15) + "InvalidateAfterReadINTEL\0" // IR(22089, 25) + "ConstCachedINTEL\0" // IR(22114, 17) + "Unroll\0" // IR(22131, 7) + "DontUnroll\0" // IR(22138, 11) + "DependencyInfinite\0" // IR(22149, 19) + "DependencyLength\0" // IR(22168, 17) + "MinIterations\0" // IR(22185, 14) + "MaxIterations\0" // IR(22199, 14) + "IterationMultiple\0" // IR(22213, 18) + "PeelCount\0" // IR(22231, 10) + "PartialCount\0" // IR(22241, 13) + "DependencyArrayINTEL\0" // IR(22254, 21) + "LoopCoalesceINTEL\0" // IR(22275, 18) + "MaxInterleavingINTEL\0" // IR(22293, 21) + "SpeculatedIterationsINTEL\0" // IR(22314, 26) + "NoFusionINTEL\0" // IR(22340, 14) + "LoopCountINTEL\0" // IR(22354, 15) + "MaxReinvocationDelayINTEL\0" // IR(22369, 26) + "MatrixASignedComponentsINTEL\0" // IR(22395, 29) + "MatrixBSignedComponentsINTEL\0" // IR(22424, 29) + "MatrixCBFloat16INTEL\0" // IR(22453, 21) + "MatrixResultBFloat16INTEL\0" // IR(22474, 26) + "MatrixAPackedInt8INTEL\0" // IR(22500, 23) + "MatrixBPackedInt8INTEL\0" // IR(22523, 23) + "MatrixAPackedInt4INTEL\0" // IR(22546, 23) + "MatrixBPackedInt4INTEL\0" // IR(22569, 23) + "MatrixATF32INTEL\0" // IR(22592, 17) + "MatrixBTF32INTEL\0" // IR(22609, 17) + "MatrixAPackedFloat16INTEL\0" // IR(22626, 26) + "MatrixBPackedFloat16INTEL\0" // IR(22652, 26) + "MatrixAPackedBFloat16INTEL\0" // IR(22678, 27) + "MatrixBPackedBFloat16INTEL\0" // IR(22705, 27) + "Aligned\0" // IR(22732, 8) + "MakePointerAvailable\0" // IR(22740, 21) + "MakePointerAvailableKHR\0" // IR(22761, 24) + "MakePointerVisible\0" // IR(22785, 19) + "MakePointerVisibleKHR\0" // IR(22804, 22) + "NonPrivatePointer\0" // IR(22826, 18) + "NonPrivatePointerKHR\0" // IR(22844, 21) + "AliasScopeINTELMask\0" // IR(22865, 20) + "NoAliasINTELMask\0" // IR(22885, 17) + "Simple\0" // IR(22902, 7) + "GLSL450\0" // IR(22909, 8) + "OpenCL\0" // IR(22917, 7) + "Vulkan\0" // IR(22924, 7) + "VulkanKHR\0" // IR(22931, 10) + "Relaxed\0" // IR(22941, 8) + "Acquire\0" // IR(22949, 8) + "Release\0" // IR(22957, 8) + "AcquireRelease\0" // IR(22965, 15) + "SequentiallyConsistent\0" // IR(22980, 23) + "UniformMemory\0" // IR(23003, 14) + "SubgroupMemory\0" // IR(23017, 15) + "WorkgroupMemory\0" // IR(23032, 16) + "CrossWorkgroupMemory\0" // IR(23048, 21) + "AtomicCounterMemory\0" // IR(23069, 20) + "ImageMemory\0" // IR(23089, 12) + "OutputMemory\0" // IR(23101, 13) + "OutputMemoryKHR\0" // IR(23114, 16) + "MakeAvailable\0" // IR(23130, 14) + "MakeAvailableKHR\0" // IR(23144, 17) + "MakeVisible\0" // IR(23161, 12) + "MakeVisibleKHR\0" // IR(23173, 15) + "AutoINTEL\0" // IR(23188, 10) + "WRAP\0" // IR(23198, 5) + "SAT\0" // IR(23203, 4) + "SAT_ZERO\0" // IR(23207, 9) + "SAT_SYM\0" // IR(23216, 8) + "PackedVectorFormat4x8Bit\0" // IR(23224, 25) + "PackedVectorFormat4x8BitKHR\0" // IR(23249, 28) + "TRN\0" // IR(23277, 4) + "TRN_ZERO\0" // IR(23281, 9) + "RND\0" // IR(23290, 4) + "RND_ZERO\0" // IR(23294, 9) + "RND_INF\0" // IR(23303, 8) + "RND_MIN_INF\0" // IR(23311, 12) + "RND_CONV\0" // IR(23323, 9) + "RND_CONV_ODD\0" // IR(23332, 13) + "RobustnessPerComponentNV\0" // IR(23345, 25) + "RobustnessPerElementNV\0" // IR(23370, 23) + "OpaqueKHR\0" // IR(23393, 10) + "NoOpaqueKHR\0" // IR(23403, 12) + "TerminateOnFirstHitKHR\0" // IR(23415, 23) + "SkipClosestHitShaderKHR\0" // IR(23438, 24) + "CullBackFacingTrianglesKHR\0" // IR(23462, 27) + "CullFrontFacingTrianglesKHR\0" // IR(23489, 28) + "CullOpaqueKHR\0" // IR(23517, 14) + "CullNoOpaqueKHR\0" // IR(23531, 16) + "SkipTrianglesKHR\0" // IR(23547, 17) + "SkipBuiltinPrimitivesNV\0" // IR(23564, 24) + "SkipAABBsKHR\0" // IR(23588, 13) + "ForceOpacityMicromap2StateEXT\0" // IR(23601, 30) + "RayQueryCandidateIntersectionTriangleKHR\0" // IR(23631, 41) + "RayQueryCandidateIntersectionAABBKHR\0" // IR(23672, 37) + "RayQueryCommittedIntersectionNoneKHR\0" // IR(23709, 37) + "RayQueryCommittedIntersectionTriangleKHR\0" // IR(23746, 41) + "RayQueryCommittedIntersectionGeneratedKHR\0" // IR(23787, 42) + "RayQueryCandidateIntersectionKHR\0" // IR(23829, 33) + "RayQueryCommittedIntersectionKHR\0" // IR(23862, 33) + "ClampToEdge\0" // IR(23895, 12) + "Clamp\0" // IR(23907, 6) + "Repeat\0" // IR(23913, 7) + "RepeatMirrored\0" // IR(23920, 15) + "Nearest\0" // IR(23935, 8) + "Linear\0" // IR(23943, 7) + "Unknown\0" // IR(23950, 8) + "Rgba32f\0" // IR(23958, 8) + "Rgba16f\0" // IR(23966, 8) + "R32f\0" // IR(23974, 5) + "Rgba8\0" // IR(23979, 6) + "Rgba8Snorm\0" // IR(23985, 11) + "Rg32f\0" // IR(23996, 6) + "Rg16f\0" // IR(24002, 6) + "R11fG11fB10f\0" // IR(24008, 13) + "R16f\0" // IR(24021, 5) + "Rgba16\0" // IR(24026, 7) + "Rgb10A2\0" // IR(24033, 8) + "Rg16\0" // IR(24041, 5) + "Rg8\0" // IR(24046, 4) + "R16\0" // IR(24050, 4) + "R8\0" // IR(24054, 3) + "Rgba16Snorm\0" // IR(24057, 12) + "Rg16Snorm\0" // IR(24069, 10) + "Rg8Snorm\0" // IR(24079, 9) + "R16Snorm\0" // IR(24088, 9) + "R8Snorm\0" // IR(24097, 8) + "Rgba32i\0" // IR(24105, 8) + "Rgba16i\0" // IR(24113, 8) + "Rgba8i\0" // IR(24121, 7) + "R32i\0" // IR(24128, 5) + "Rg32i\0" // IR(24133, 6) + "Rg16i\0" // IR(24139, 6) + "Rg8i\0" // IR(24145, 5) + "R16i\0" // IR(24150, 5) + "R8i\0" // IR(24155, 4) + "Rgba32ui\0" // IR(24159, 9) + "Rgba16ui\0" // IR(24168, 9) + "Rgba8ui\0" // IR(24177, 8) + "R32ui\0" // IR(24185, 6) + "Rgb10a2ui\0" // IR(24191, 10) + "Rg32ui\0" // IR(24201, 7) + "Rg16ui\0" // IR(24208, 7) + "Rg8ui\0" // IR(24215, 6) + "R16ui\0" // IR(24221, 6) + "R8ui\0" // IR(24227, 5) + "R64ui\0" // IR(24232, 6) + "R64i\0" // IR(24238, 5) + "CrossDevice\0" // IR(24243, 12) + "Device\0" // IR(24255, 7) + "Workgroup\0" // IR(24262, 10) + "Subgroup\0" // IR(24272, 9) + "Invocation\0" // IR(24281, 11) + "QueueFamily\0" // IR(24292, 12) + "QueueFamilyKHR\0" // IR(24304, 15) + "ShaderCallKHR\0" // IR(24319, 14) + "Flatten\0" // IR(24333, 8) + "DontFlatten\0" // IR(24341, 12) + "IdentifierPossibleDuplicates\0" // IR(24353, 29) + "FlagUnknownPhysicalLayout\0" // IR(24382, 26) + "ESSL\0" // IR(24408, 5) + "GLSL\0" // IR(24413, 5) + "OpenCL_C\0" // IR(24418, 9) + "OpenCL_CPP\0" // IR(24427, 11) + "HLSL\0" // IR(24438, 5) + "CPP_for_OpenCL\0" // IR(24443, 15) + "SYCL\0" // IR(24458, 5) + "HERO_C\0" // IR(24463, 7) + "NZSL\0" // IR(24470, 5) + "WGSL\0" // IR(24475, 5) + "Slang\0" // IR(24480, 6) + "Zig\0" // IR(24486, 4) + "Rust\0" // IR(24490, 5) + "UniformConstant\0" // IR(24495, 16) + "Input\0" // IR(24511, 6) + "Output\0" // IR(24517, 7) + "CrossWorkgroup\0" // IR(24524, 15) + "Private\0" // IR(24539, 8) + "Function\0" // IR(24547, 9) + "Generic\0" // IR(24556, 8) + "PushConstant\0" // IR(24564, 13) + "AtomicCounter\0" // IR(24577, 14) + "Image\0" // IR(24591, 6) + "StorageBuffer\0" // IR(24597, 14) + "TileImageEXT\0" // IR(24611, 13) + "TileAttachmentQCOM\0" // IR(24624, 19) + "NodePayloadAMDX\0" // IR(24643, 16) + "CallableDataKHR\0" // IR(24659, 16) + "CallableDataNV\0" // IR(24675, 15) + "IncomingCallableDataKHR\0" // IR(24690, 24) + "IncomingCallableDataNV\0" // IR(24714, 23) + "RayPayloadKHR\0" // IR(24737, 14) + "RayPayloadNV\0" // IR(24751, 13) + "HitAttributeKHR\0" // IR(24764, 16) + "HitAttributeNV\0" // IR(24780, 15) + "IncomingRayPayloadKHR\0" // IR(24795, 22) + "IncomingRayPayloadNV\0" // IR(24817, 21) + "ShaderRecordBufferKHR\0" // IR(24838, 22) + "ShaderRecordBufferNV\0" // IR(24860, 21) + "PhysicalStorageBuffer\0" // IR(24881, 22) + "PhysicalStorageBufferEXT\0" // IR(24903, 25) + "HitObjectAttributeNV\0" // IR(24928, 21) + "TaskPayloadWorkgroupEXT\0" // IR(24949, 24) + "CodeSectionINTEL\0" // IR(24973, 17) + "DeviceOnlyINTEL\0" // IR(24990, 16) + "HostOnlyINTEL\0" // IR(25006, 14) + "WriteThroughINTEL\0" // IR(25020, 18) + "WriteBackINTEL\0" // IR(25038, 15) + "TensorView\0" // IR(25053, 11) + "DecodeFunc\0" // IR(25064, 11) + "Undefined\0" // IR(25075, 10) + "NoneARM\0" // IR(25085, 8) + "NontemporalARM\0" // IR(25093, 15) + "OutOfBoundsValueARM\0" // IR(25108, 20) + "MakeElementAvailableARM\0" // IR(25128, 24) + "MakeElementVisibleARM\0" // IR(25152, 22) + "NonPrivateElementARM\0" // IR(25174, 21) + "Nop\0" // IR(25195, 4) + "SPV_OPERAND_TYPE_TYPE_ID\0" // IR(25199, 25) + "SPV_OPERAND_TYPE_RESULT_ID\0" // IR(25224, 27) + "Undef\0" // IR(25251, 6) + "SourceContinued\0" // IR(25257, 16) + "SPV_OPERAND_TYPE_SOURCE_LANGUAGE\0" // IR(25273, 33) + "SPV_OPERAND_TYPE_OPTIONAL_ID\0" // IR(25306, 29) + "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_STRING\0" // IR(25335, 41) + "Source\0" // IR(25376, 7) + "SourceExtension\0" // IR(25383, 16) + "Name\0" // IR(25399, 5) + "MemberName\0" // IR(25404, 11) + "String\0" // IR(25415, 7) + "Line\0" // IR(25422, 5) + "Extension\0" // IR(25427, 10) + "ExtInstImport\0" // IR(25437, 14) + "SPV_OPERAND_TYPE_EXTENSION_INSTRUCTION_NUMBER\0" // IR(25451, 46) + "ExtInst\0" // IR(25497, 8) + "SPV_OPERAND_TYPE_ADDRESSING_MODEL\0" // IR(25505, 34) + "SPV_OPERAND_TYPE_MEMORY_MODEL\0" // IR(25539, 30) + "MemoryModel\0" // IR(25569, 12) + "SPV_OPERAND_TYPE_EXECUTION_MODEL\0" // IR(25581, 33) + "SPV_OPERAND_TYPE_VARIABLE_ID\0" // IR(25614, 29) + "EntryPoint\0" // IR(25643, 11) + "SPV_OPERAND_TYPE_EXECUTION_MODE\0" // IR(25654, 32) + "ExecutionMode\0" // IR(25686, 14) + "SPV_OPERAND_TYPE_CAPABILITY\0" // IR(25700, 28) + "Capability\0" // IR(25728, 11) + "TypeVoid\0" // IR(25739, 9) + "TypeBool\0" // IR(25748, 9) + "TypeInt\0" // IR(25757, 8) + "SPV_OPERAND_TYPE_OPTIONAL_FPENCODING\0" // IR(25765, 37) + "TypeFloat\0" // IR(25802, 10) + "TypeVector\0" // IR(25812, 11) + "TypeMatrix\0" // IR(25823, 11) + "SPV_OPERAND_TYPE_DIMENSIONALITY\0" // IR(25834, 32) + "SPV_OPERAND_TYPE_SAMPLER_IMAGE_FORMAT\0" // IR(25866, 38) + "SPV_OPERAND_TYPE_OPTIONAL_ACCESS_QUALIFIER\0" // IR(25904, 43) + "TypeImage\0" // IR(25947, 10) + "TypeSampler\0" // IR(25957, 12) + "TypeSampledImage\0" // IR(25969, 17) + "TypeArray\0" // IR(25986, 10) + "TypeRuntimeArray\0" // IR(25996, 17) + "TypeStruct\0" // IR(26013, 11) + "TypeOpaque\0" // IR(26024, 11) + "SPV_OPERAND_TYPE_STORAGE_CLASS\0" // IR(26035, 31) + "TypePointer\0" // IR(26066, 12) + "TypeFunction\0" // IR(26078, 13) + "TypeEvent\0" // IR(26091, 10) + "TypeDeviceEvent\0" // IR(26101, 16) + "TypeReserveId\0" // IR(26117, 14) + "TypeQueue\0" // IR(26131, 10) + "TypePipe\0" // IR(26141, 9) + "TypeForwardPointer\0" // IR(26150, 19) + "ConstantTrue\0" // IR(26169, 13) + "ConstantFalse\0" // IR(26182, 14) + "SPV_OPERAND_TYPE_TYPED_LITERAL_NUMBER\0" // IR(26196, 38) + "ConstantComposite\0" // IR(26234, 18) + "SPV_OPERAND_TYPE_SAMPLER_ADDRESSING_MODE\0" // IR(26252, 41) + "SPV_OPERAND_TYPE_SAMPLER_FILTER_MODE\0" // IR(26293, 37) + "ConstantSampler\0" // IR(26330, 16) + "ConstantNull\0" // IR(26346, 13) + "SpecConstantTrue\0" // IR(26359, 17) + "SpecConstantFalse\0" // IR(26376, 18) + "SpecConstant\0" // IR(26394, 13) + "SpecConstantComposite\0" // IR(26407, 22) + "SPV_OPERAND_TYPE_SPEC_CONSTANT_OP_NUMBER\0" // IR(26429, 41) + "SpecConstantOp\0" // IR(26470, 15) + "SPV_OPERAND_TYPE_FUNCTION_CONTROL\0" // IR(26485, 34) + "FunctionParameter\0" // IR(26519, 18) + "FunctionEnd\0" // IR(26537, 12) + "FunctionCall\0" // IR(26549, 13) + "Variable\0" // IR(26562, 9) + "ImageTexelPointer\0" // IR(26571, 18) + "SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS\0" // IR(26589, 40) + "Load\0" // IR(26629, 5) + "Store\0" // IR(26634, 6) + "CopyMemory\0" // IR(26640, 11) + "CopyMemorySized\0" // IR(26651, 16) + "AccessChain\0" // IR(26667, 12) + "InBoundsAccessChain\0" // IR(26679, 20) + "PtrAccessChain\0" // IR(26699, 15) + "ArrayLength\0" // IR(26714, 12) + "GenericPtrMemSemantics\0" // IR(26726, 23) + "InBoundsPtrAccessChain\0" // IR(26749, 23) + "SPV_OPERAND_TYPE_DECORATION\0" // IR(26772, 28) + "Decorate\0" // IR(26800, 9) + "MemberDecorate\0" // IR(26809, 15) + "DecorationGroup\0" // IR(26824, 16) + "GroupDecorate\0" // IR(26840, 14) + "SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER\0" // IR(26854, 45) + "GroupMemberDecorate\0" // IR(26899, 20) + "VectorExtractDynamic\0" // IR(26919, 21) + "VectorInsertDynamic\0" // IR(26940, 20) + "VectorShuffle\0" // IR(26960, 14) + "CompositeConstruct\0" // IR(26974, 19) + "CompositeExtract\0" // IR(26993, 17) + "CompositeInsert\0" // IR(27010, 16) + "CopyObject\0" // IR(27026, 11) + "Transpose\0" // IR(27037, 10) + "SampledImage\0" // IR(27047, 13) + "SPV_OPERAND_TYPE_OPTIONAL_IMAGE\0" // IR(27060, 32) + "ImageSampleImplicitLod\0" // IR(27092, 23) + "SPV_OPERAND_TYPE_IMAGE\0" // IR(27115, 23) + "ImageSampleExplicitLod\0" // IR(27138, 23) + "ImageSampleDrefImplicitLod\0" // IR(27161, 27) + "ImageSampleDrefExplicitLod\0" // IR(27188, 27) + "ImageSampleProjImplicitLod\0" // IR(27215, 27) + "ImageSampleProjExplicitLod\0" // IR(27242, 27) + "ImageSampleProjDrefImplicitLod\0" // IR(27269, 31) + "ImageSampleProjDrefExplicitLod\0" // IR(27300, 31) + "ImageFetch\0" // IR(27331, 11) + "ImageGather\0" // IR(27342, 12) + "ImageDrefGather\0" // IR(27354, 16) + "ImageRead\0" // IR(27370, 10) + "ImageWrite\0" // IR(27380, 11) + "ImageQueryFormat\0" // IR(27391, 17) + "ImageQueryOrder\0" // IR(27408, 16) + "ImageQuerySizeLod\0" // IR(27424, 18) + "ImageQuerySize\0" // IR(27442, 15) + "ImageQueryLod\0" // IR(27457, 14) + "ImageQueryLevels\0" // IR(27471, 17) + "ImageQuerySamples\0" // IR(27488, 18) + "ConvertFToU\0" // IR(27506, 12) + "ConvertFToS\0" // IR(27518, 12) + "ConvertSToF\0" // IR(27530, 12) + "ConvertUToF\0" // IR(27542, 12) + "UConvert\0" // IR(27554, 9) + "SConvert\0" // IR(27563, 9) + "FConvert\0" // IR(27572, 9) + "QuantizeToF16\0" // IR(27581, 14) + "ConvertPtrToU\0" // IR(27595, 14) + "SatConvertSToU\0" // IR(27609, 15) + "SatConvertUToS\0" // IR(27624, 15) + "ConvertUToPtr\0" // IR(27639, 14) + "PtrCastToGeneric\0" // IR(27653, 17) + "GenericCastToPtr\0" // IR(27670, 17) + "GenericCastToPtrExplicit\0" // IR(27687, 25) + "Bitcast\0" // IR(27712, 8) + "SNegate\0" // IR(27720, 8) + "FNegate\0" // IR(27728, 8) + "IAdd\0" // IR(27736, 5) + "FAdd\0" // IR(27741, 5) + "ISub\0" // IR(27746, 5) + "FSub\0" // IR(27751, 5) + "IMul\0" // IR(27756, 5) + "FMul\0" // IR(27761, 5) + "UDiv\0" // IR(27766, 5) + "SDiv\0" // IR(27771, 5) + "FDiv\0" // IR(27776, 5) + "UMod\0" // IR(27781, 5) + "SRem\0" // IR(27786, 5) + "SMod\0" // IR(27791, 5) + "FRem\0" // IR(27796, 5) + "FMod\0" // IR(27801, 5) + "VectorTimesScalar\0" // IR(27806, 18) + "MatrixTimesScalar\0" // IR(27824, 18) + "VectorTimesMatrix\0" // IR(27842, 18) + "MatrixTimesVector\0" // IR(27860, 18) + "MatrixTimesMatrix\0" // IR(27878, 18) + "OuterProduct\0" // IR(27896, 13) + "Dot\0" // IR(27909, 4) + "IAddCarry\0" // IR(27913, 10) + "ISubBorrow\0" // IR(27923, 11) + "UMulExtended\0" // IR(27934, 13) + "SMulExtended\0" // IR(27947, 13) + "Any\0" // IR(27960, 4) + "All\0" // IR(27964, 4) + "IsNan\0" // IR(27968, 6) + "IsInf\0" // IR(27974, 6) + "IsFinite\0" // IR(27980, 9) + "IsNormal\0" // IR(27989, 9) + "SignBitSet\0" // IR(27998, 11) + "LessOrGreater\0" // IR(28009, 14) + "Ordered\0" // IR(28023, 8) + "Unordered\0" // IR(28031, 10) + "LogicalEqual\0" // IR(28041, 13) + "LogicalNotEqual\0" // IR(28054, 16) + "LogicalOr\0" // IR(28070, 10) + "LogicalAnd\0" // IR(28080, 11) + "LogicalNot\0" // IR(28091, 11) + "Select\0" // IR(28102, 7) + "IEqual\0" // IR(28109, 7) + "INotEqual\0" // IR(28116, 10) + "UGreaterThan\0" // IR(28126, 13) + "SGreaterThan\0" // IR(28139, 13) + "UGreaterThanEqual\0" // IR(28152, 18) + "SGreaterThanEqual\0" // IR(28170, 18) + "ULessThan\0" // IR(28188, 10) + "SLessThan\0" // IR(28198, 10) + "ULessThanEqual\0" // IR(28208, 15) + "SLessThanEqual\0" // IR(28223, 15) + "FOrdEqual\0" // IR(28238, 10) + "FUnordEqual\0" // IR(28248, 12) + "FOrdNotEqual\0" // IR(28260, 13) + "FUnordNotEqual\0" // IR(28273, 15) + "FOrdLessThan\0" // IR(28288, 13) + "FUnordLessThan\0" // IR(28301, 15) + "FOrdGreaterThan\0" // IR(28316, 16) + "FUnordGreaterThan\0" // IR(28332, 18) + "FOrdLessThanEqual\0" // IR(28350, 18) + "FUnordLessThanEqual\0" // IR(28368, 20) + "FOrdGreaterThanEqual\0" // IR(28388, 21) + "FUnordGreaterThanEqual\0" // IR(28409, 23) + "ShiftRightLogical\0" // IR(28432, 18) + "ShiftRightArithmetic\0" // IR(28450, 21) + "ShiftLeftLogical\0" // IR(28471, 17) + "BitwiseOr\0" // IR(28488, 10) + "BitwiseXor\0" // IR(28498, 11) + "BitwiseAnd\0" // IR(28509, 11) + "Not\0" // IR(28520, 4) + "BitFieldInsert\0" // IR(28524, 15) + "BitFieldSExtract\0" // IR(28539, 17) + "BitFieldUExtract\0" // IR(28556, 17) + "BitReverse\0" // IR(28573, 11) + "BitCount\0" // IR(28584, 9) + "DPdx\0" // IR(28593, 5) + "DPdy\0" // IR(28598, 5) + "Fwidth\0" // IR(28603, 7) + "DPdxFine\0" // IR(28610, 9) + "DPdyFine\0" // IR(28619, 9) + "FwidthFine\0" // IR(28628, 11) + "DPdxCoarse\0" // IR(28639, 11) + "DPdyCoarse\0" // IR(28650, 11) + "FwidthCoarse\0" // IR(28661, 13) + "EmitVertex\0" // IR(28674, 11) + "EndPrimitive\0" // IR(28685, 13) + "EmitStreamVertex\0" // IR(28698, 17) + "EndStreamPrimitive\0" // IR(28715, 19) + "SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID\0" // IR(28734, 37) + "ControlBarrier\0" // IR(28771, 15) + "MemoryBarrier\0" // IR(28786, 14) + "AtomicLoad\0" // IR(28800, 11) + "AtomicStore\0" // IR(28811, 12) + "AtomicExchange\0" // IR(28823, 15) + "AtomicCompareExchange\0" // IR(28838, 22) + "AtomicCompareExchangeWeak\0" // IR(28860, 26) + "AtomicIIncrement\0" // IR(28886, 17) + "AtomicIDecrement\0" // IR(28903, 17) + "AtomicIAdd\0" // IR(28920, 11) + "AtomicISub\0" // IR(28931, 11) + "AtomicSMin\0" // IR(28942, 11) + "AtomicUMin\0" // IR(28953, 11) + "AtomicSMax\0" // IR(28964, 11) + "AtomicUMax\0" // IR(28975, 11) + "AtomicAnd\0" // IR(28986, 10) + "AtomicOr\0" // IR(28996, 9) + "AtomicXor\0" // IR(29005, 10) + "Phi\0" // IR(29015, 4) + "SPV_OPERAND_TYPE_LOOP_CONTROL\0" // IR(29019, 30) + "LoopMerge\0" // IR(29049, 10) + "SPV_OPERAND_TYPE_SELECTION_CONTROL\0" // IR(29059, 35) + "SelectionMerge\0" // IR(29094, 15) + "Label\0" // IR(29109, 6) + "Branch\0" // IR(29115, 7) + "BranchConditional\0" // IR(29122, 18) + "SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER_ID\0" // IR(29140, 45) + "Switch\0" // IR(29185, 7) + "Kill\0" // IR(29192, 5) + "Return\0" // IR(29197, 7) + "ReturnValue\0" // IR(29204, 12) + "Unreachable\0" // IR(29216, 12) + "LifetimeStart\0" // IR(29228, 14) + "LifetimeStop\0" // IR(29242, 13) + "GroupAsyncCopy\0" // IR(29255, 15) + "GroupWaitEvents\0" // IR(29270, 16) + "GroupAll\0" // IR(29286, 9) + "GroupAny\0" // IR(29295, 9) + "GroupBroadcast\0" // IR(29304, 15) + "SPV_OPERAND_TYPE_GROUP_OPERATION\0" // IR(29319, 33) + "GroupIAdd\0" // IR(29352, 10) + "GroupFAdd\0" // IR(29362, 10) + "GroupFMin\0" // IR(29372, 10) + "GroupUMin\0" // IR(29382, 10) + "GroupSMin\0" // IR(29392, 10) + "GroupFMax\0" // IR(29402, 10) + "GroupUMax\0" // IR(29412, 10) + "GroupSMax\0" // IR(29422, 10) + "ReadPipe\0" // IR(29432, 9) + "WritePipe\0" // IR(29441, 10) + "ReservedReadPipe\0" // IR(29451, 17) + "ReservedWritePipe\0" // IR(29468, 18) + "ReserveReadPipePackets\0" // IR(29486, 23) + "ReserveWritePipePackets\0" // IR(29509, 24) + "CommitReadPipe\0" // IR(29533, 15) + "CommitWritePipe\0" // IR(29548, 16) + "IsValidReserveId\0" // IR(29564, 17) + "GetNumPipePackets\0" // IR(29581, 18) + "GetMaxPipePackets\0" // IR(29599, 18) + "GroupReserveReadPipePackets\0" // IR(29617, 28) + "GroupReserveWritePipePackets\0" // IR(29645, 29) + "GroupCommitReadPipe\0" // IR(29674, 20) + "GroupCommitWritePipe\0" // IR(29694, 21) + "EnqueueMarker\0" // IR(29715, 14) + "EnqueueKernel\0" // IR(29729, 14) + "GetKernelNDrangeSubGroupCount\0" // IR(29743, 30) + "GetKernelNDrangeMaxSubGroupSize\0" // IR(29773, 32) + "GetKernelWorkGroupSize\0" // IR(29805, 23) + "GetKernelPreferredWorkGroupSizeMultiple\0" // IR(29828, 40) + "RetainEvent\0" // IR(29868, 12) + "ReleaseEvent\0" // IR(29880, 13) + "CreateUserEvent\0" // IR(29893, 16) + "IsValidEvent\0" // IR(29909, 13) + "SetUserEventStatus\0" // IR(29922, 19) + "CaptureEventProfilingInfo\0" // IR(29941, 26) + "GetDefaultQueue\0" // IR(29967, 16) + "BuildNDRange\0" // IR(29983, 13) + "ImageSparseSampleImplicitLod\0" // IR(29996, 29) + "ImageSparseSampleExplicitLod\0" // IR(30025, 29) + "ImageSparseSampleDrefImplicitLod\0" // IR(30054, 33) + "ImageSparseSampleDrefExplicitLod\0" // IR(30087, 33) + "ImageSparseSampleProjImplicitLod\0" // IR(30120, 33) + "ImageSparseSampleProjExplicitLod\0" // IR(30153, 33) + "ImageSparseSampleProjDrefImplicitLod\0" // IR(30186, 37) + "ImageSparseSampleProjDrefExplicitLod\0" // IR(30223, 37) + "ImageSparseFetch\0" // IR(30260, 17) + "ImageSparseGather\0" // IR(30277, 18) + "ImageSparseDrefGather\0" // IR(30295, 22) + "ImageSparseTexelsResident\0" // IR(30317, 26) + "NoLine\0" // IR(30343, 7) + "AtomicFlagTestAndSet\0" // IR(30350, 21) + "AtomicFlagClear\0" // IR(30371, 16) + "ImageSparseRead\0" // IR(30387, 16) + "SizeOf\0" // IR(30403, 7) + "TypePipeStorage\0" // IR(30410, 16) + "ConstantPipeStorage\0" // IR(30426, 20) + "CreatePipeFromPipeStorage\0" // IR(30446, 26) + "GetKernelLocalSizeForSubgroupCount\0" // IR(30472, 35) + "GetKernelMaxNumSubgroups\0" // IR(30507, 25) + "TypeNamedBarrier\0" // IR(30532, 17) + "NamedBarrierInitialize\0" // IR(30549, 23) + "MemoryNamedBarrier\0" // IR(30572, 19) + "ModuleProcessed\0" // IR(30591, 16) + "ExecutionModeId\0" // IR(30607, 16) + "DecorateId\0" // IR(30623, 11) + "GroupNonUniformElect\0" // IR(30634, 21) + "GroupNonUniformAll\0" // IR(30655, 19) + "GroupNonUniformAny\0" // IR(30674, 19) + "GroupNonUniformAllEqual\0" // IR(30693, 24) + "GroupNonUniformBroadcast\0" // IR(30717, 25) + "GroupNonUniformBroadcastFirst\0" // IR(30742, 30) + "GroupNonUniformInverseBallot\0" // IR(30772, 29) + "GroupNonUniformBallotBitExtract\0" // IR(30801, 32) + "GroupNonUniformBallotBitCount\0" // IR(30833, 30) + "GroupNonUniformBallotFindLSB\0" // IR(30863, 29) + "GroupNonUniformBallotFindMSB\0" // IR(30892, 29) + "GroupNonUniformShuffleXor\0" // IR(30921, 26) + "GroupNonUniformShuffleUp\0" // IR(30947, 25) + "GroupNonUniformShuffleDown\0" // IR(30972, 27) + "GroupNonUniformIAdd\0" // IR(30999, 20) + "GroupNonUniformFAdd\0" // IR(31019, 20) + "GroupNonUniformIMul\0" // IR(31039, 20) + "GroupNonUniformFMul\0" // IR(31059, 20) + "GroupNonUniformSMin\0" // IR(31079, 20) + "GroupNonUniformUMin\0" // IR(31099, 20) + "GroupNonUniformFMin\0" // IR(31119, 20) + "GroupNonUniformSMax\0" // IR(31139, 20) + "GroupNonUniformUMax\0" // IR(31159, 20) + "GroupNonUniformFMax\0" // IR(31179, 20) + "GroupNonUniformBitwiseAnd\0" // IR(31199, 26) + "GroupNonUniformBitwiseOr\0" // IR(31225, 25) + "GroupNonUniformBitwiseXor\0" // IR(31250, 26) + "GroupNonUniformLogicalAnd\0" // IR(31276, 26) + "GroupNonUniformLogicalOr\0" // IR(31302, 25) + "GroupNonUniformLogicalXor\0" // IR(31327, 26) + "GroupNonUniformQuadBroadcast\0" // IR(31353, 29) + "GroupNonUniformQuadSwap\0" // IR(31382, 24) + "CopyLogical\0" // IR(31406, 12) + "PtrEqual\0" // IR(31418, 9) + "PtrNotEqual\0" // IR(31427, 12) + "PtrDiff\0" // IR(31439, 8) + "ColorAttachmentReadEXT\0" // IR(31447, 23) + "DepthAttachmentReadEXT\0" // IR(31470, 23) + "StencilAttachmentReadEXT\0" // IR(31493, 25) + "TypeTensorARM\0" // IR(31518, 14) + "SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS\0" // IR(31532, 42) + "TensorReadARM\0" // IR(31574, 14) + "TensorWriteARM\0" // IR(31588, 15) + "TensorQuerySizeARM\0" // IR(31603, 19) + "GraphConstantARM\0" // IR(31622, 17) + "GraphEntryPointARM\0" // IR(31639, 19) + "GraphInputARM\0" // IR(31658, 14) + "GraphSetOutputARM\0" // IR(31672, 18) + "GraphEndARM\0" // IR(31690, 12) + "TypeGraphARM\0" // IR(31702, 13) + "TerminateInvocation\0" // IR(31715, 20) + "TypeUntypedPointerKHR\0" // IR(31735, 22) + "UntypedVariableKHR\0" // IR(31757, 19) + "UntypedAccessChainKHR\0" // IR(31776, 22) + "UntypedInBoundsAccessChainKHR\0" // IR(31798, 30) + "SubgroupFirstInvocationKHR\0" // IR(31828, 27) + "UntypedPtrAccessChainKHR\0" // IR(31855, 25) + "UntypedInBoundsPtrAccessChainKHR\0" // IR(31880, 33) + "UntypedArrayLengthKHR\0" // IR(31913, 22) + "UntypedPrefetchKHR\0" // IR(31935, 19) + "SubgroupAllKHR\0" // IR(31954, 15) + "SubgroupAnyKHR\0" // IR(31969, 15) + "SubgroupAllEqualKHR\0" // IR(31984, 20) + "SubgroupReadInvocationKHR\0" // IR(32004, 26) + "ExtInstWithForwardRefsKHR\0" // IR(32030, 26) + "UntypedGroupAsyncCopyKHR\0" // IR(32056, 25) + "TraceRayKHR\0" // IR(32081, 12) + "ExecuteCallableKHR\0" // IR(32093, 19) + "ConvertUToAccelerationStructureKHR\0" // IR(32112, 35) + "IgnoreIntersectionKHR\0" // IR(32147, 22) + "TerminateRayKHR\0" // IR(32169, 16) + "SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT\0" // IR(32185, 47) + "SDot\0" // IR(32232, 5) + "SDotKHR\0" // IR(32237, 8) + "UDot\0" // IR(32245, 5) + "UDotKHR\0" // IR(32250, 8) + "SUDot\0" // IR(32258, 6) + "SUDotKHR\0" // IR(32264, 9) + "SDotAccSat\0" // IR(32273, 11) + "SDotAccSatKHR\0" // IR(32284, 14) + "UDotAccSat\0" // IR(32298, 11) + "UDotAccSatKHR\0" // IR(32309, 14) + "SUDotAccSat\0" // IR(32323, 12) + "SUDotAccSatKHR\0" // IR(32335, 15) + "TypeCooperativeMatrixKHR\0" // IR(32350, 25) + "CooperativeMatrixLoadKHR\0" // IR(32375, 25) + "CooperativeMatrixStoreKHR\0" // IR(32400, 26) + "SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS\0" // IR(32426, 54) + "CooperativeMatrixMulAddKHR\0" // IR(32480, 27) + "CooperativeMatrixLengthKHR\0" // IR(32507, 27) + "ConstantCompositeReplicateEXT\0" // IR(32534, 30) + "SpecConstantCompositeReplicateEXT\0" // IR(32564, 34) + "CompositeConstructReplicateEXT\0" // IR(32598, 31) + "TypeRayQueryKHR\0" // IR(32629, 16) + "RayQueryInitializeKHR\0" // IR(32645, 22) + "RayQueryTerminateKHR\0" // IR(32667, 21) + "RayQueryGenerateIntersectionKHR\0" // IR(32688, 32) + "RayQueryConfirmIntersectionKHR\0" // IR(32720, 31) + "RayQueryProceedKHR\0" // IR(32751, 19) + "RayQueryGetIntersectionTypeKHR\0" // IR(32770, 31) + "ImageSampleWeightedQCOM\0" // IR(32801, 24) + "ImageBoxFilterQCOM\0" // IR(32825, 19) + "ImageBlockMatchSSDQCOM\0" // IR(32844, 23) + "ImageBlockMatchSADQCOM\0" // IR(32867, 23) + "BitCastArrayQCOM\0" // IR(32890, 17) + "ImageBlockMatchWindowSSDQCOM\0" // IR(32907, 29) + "ImageBlockMatchWindowSADQCOM\0" // IR(32936, 29) + "ImageBlockMatchGatherSSDQCOM\0" // IR(32965, 29) + "ImageBlockMatchGatherSADQCOM\0" // IR(32994, 29) + "CompositeConstructCoopMatQCOM\0" // IR(33023, 30) + "CompositeExtractCoopMatQCOM\0" // IR(33053, 28) + "ExtractSubArrayQCOM\0" // IR(33081, 20) + "GroupIAddNonUniformAMD\0" // IR(33101, 23) + "GroupFAddNonUniformAMD\0" // IR(33124, 23) + "GroupFMinNonUniformAMD\0" // IR(33147, 23) + "GroupUMinNonUniformAMD\0" // IR(33170, 23) + "GroupSMinNonUniformAMD\0" // IR(33193, 23) + "GroupFMaxNonUniformAMD\0" // IR(33216, 23) + "GroupUMaxNonUniformAMD\0" // IR(33239, 23) + "GroupSMaxNonUniformAMD\0" // IR(33262, 23) + "FragmentMaskFetchAMD\0" // IR(33285, 21) + "FragmentFetchAMD\0" // IR(33306, 17) + "ReadClockKHR\0" // IR(33323, 13) + "AllocateNodePayloadsAMDX\0" // IR(33336, 25) + "EnqueueNodePayloadsAMDX\0" // IR(33361, 24) + "TypeNodePayloadArrayAMDX\0" // IR(33385, 25) + "FinishWritingNodePayloadAMDX\0" // IR(33410, 29) + "NodePayloadArrayLengthAMDX\0" // IR(33439, 27) + "IsNodePayloadValidAMDX\0" // IR(33466, 23) + "ConstantStringAMDX\0" // IR(33489, 19) + "SpecConstantStringAMDX\0" // IR(33508, 23) + "GroupNonUniformQuadAllKHR\0" // IR(33531, 26) + "GroupNonUniformQuadAnyKHR\0" // IR(33557, 26) + "HitObjectRecordHitMotionNV\0" // IR(33583, 27) + "HitObjectRecordHitWithIndexMotionNV\0" // IR(33610, 36) + "HitObjectRecordMissMotionNV\0" // IR(33646, 28) + "HitObjectGetWorldToObjectNV\0" // IR(33674, 28) + "HitObjectGetObjectToWorldNV\0" // IR(33702, 28) + "HitObjectGetObjectRayDirectionNV\0" // IR(33730, 33) + "HitObjectGetObjectRayOriginNV\0" // IR(33763, 30) + "HitObjectTraceRayMotionNV\0" // IR(33793, 26) + "HitObjectGetShaderRecordBufferHandleNV\0" // IR(33819, 39) + "HitObjectGetShaderBindingTableRecordIndexNV\0" // IR(33858, 44) + "HitObjectRecordEmptyNV\0" // IR(33902, 23) + "HitObjectTraceRayNV\0" // IR(33925, 20) + "HitObjectRecordHitNV\0" // IR(33945, 21) + "HitObjectRecordHitWithIndexNV\0" // IR(33966, 30) + "HitObjectRecordMissNV\0" // IR(33996, 22) + "HitObjectExecuteShaderNV\0" // IR(34018, 25) + "HitObjectGetCurrentTimeNV\0" // IR(34043, 26) + "HitObjectGetAttributesNV\0" // IR(34069, 25) + "HitObjectGetHitKindNV\0" // IR(34094, 22) + "HitObjectGetPrimitiveIndexNV\0" // IR(34116, 29) + "HitObjectGetGeometryIndexNV\0" // IR(34145, 28) + "HitObjectGetInstanceIdNV\0" // IR(34173, 25) + "HitObjectGetInstanceCustomIndexNV\0" // IR(34198, 34) + "HitObjectGetWorldRayDirectionNV\0" // IR(34232, 32) + "HitObjectGetWorldRayOriginNV\0" // IR(34264, 29) + "HitObjectGetRayTMaxNV\0" // IR(34293, 22) + "HitObjectGetRayTMinNV\0" // IR(34315, 22) + "HitObjectIsEmptyNV\0" // IR(34337, 19) + "HitObjectIsHitNV\0" // IR(34356, 17) + "HitObjectIsMissNV\0" // IR(34373, 18) + "ReorderThreadWithHitObjectNV\0" // IR(34391, 29) + "ReorderThreadWithHintNV\0" // IR(34420, 24) + "TypeHitObjectNV\0" // IR(34444, 16) + "ImageSampleFootprintNV\0" // IR(34460, 23) + "TypeCooperativeVectorNV\0" // IR(34483, 24) + "CooperativeVectorMatrixMulNV\0" // IR(34507, 29) + "CooperativeVectorOuterProductAccumulateNV\0" // IR(34536, 42) + "CooperativeVectorReduceSumAccumulateNV\0" // IR(34578, 39) + "CooperativeVectorMatrixMulAddNV\0" // IR(34617, 32) + "CooperativeMatrixConvertNV\0" // IR(34649, 27) + "EmitMeshTasksEXT\0" // IR(34676, 17) + "SetMeshOutputsEXT\0" // IR(34693, 18) + "GroupNonUniformPartitionNV\0" // IR(34711, 27) + "WritePackedPrimitiveIndices4x8NV\0" // IR(34738, 33) + "FetchMicroTriangleVertexPositionNV\0" // IR(34771, 35) + "FetchMicroTriangleVertexBarycentricNV\0" // IR(34806, 38) + "CooperativeVectorLoadNV\0" // IR(34844, 24) + "CooperativeVectorStoreNV\0" // IR(34868, 25) + "ReportIntersectionKHR\0" // IR(34893, 22) + "ReportIntersectionNV\0" // IR(34915, 21) + "IgnoreIntersectionNV\0" // IR(34936, 21) + "TerminateRayNV\0" // IR(34957, 15) + "TraceNV\0" // IR(34972, 8) + "TraceMotionNV\0" // IR(34980, 14) + "TraceRayMotionNV\0" // IR(34994, 17) + "RayQueryGetIntersectionTriangleVertexPositionsKHR\0" // IR(35011, 50) + "TypeAccelerationStructureKHR\0" // IR(35061, 29) + "TypeAccelerationStructureNV\0" // IR(35090, 28) + "ExecuteCallableNV\0" // IR(35118, 18) + "RayQueryGetIntersectionClusterIdNV\0" // IR(35136, 35) + "RayQueryGetClusterIdNV\0" // IR(35171, 23) + "HitObjectGetClusterIdNV\0" // IR(35194, 24) + "TypeCooperativeMatrixNV\0" // IR(35218, 24) + "CooperativeMatrixLoadNV\0" // IR(35242, 24) + "CooperativeMatrixStoreNV\0" // IR(35266, 25) + "CooperativeMatrixMulAddNV\0" // IR(35291, 26) + "CooperativeMatrixLengthNV\0" // IR(35317, 26) + "BeginInvocationInterlockEXT\0" // IR(35343, 28) + "EndInvocationInterlockEXT\0" // IR(35371, 26) + "SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE\0" // IR(35397, 43) + "CooperativeMatrixReduceNV\0" // IR(35440, 26) + "SPV_OPERAND_TYPE_MEMORY_ACCESS\0" // IR(35466, 31) + "SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS\0" // IR(35497, 44) + "CooperativeMatrixLoadTensorNV\0" // IR(35541, 30) + "CooperativeMatrixStoreTensorNV\0" // IR(35571, 31) + "CooperativeMatrixPerElementOpNV\0" // IR(35602, 32) + "TypeTensorLayoutNV\0" // IR(35634, 19) + "TypeTensorViewNV\0" // IR(35653, 17) + "CreateTensorLayoutNV\0" // IR(35670, 21) + "TensorLayoutSetDimensionNV\0" // IR(35691, 27) + "TensorLayoutSetStrideNV\0" // IR(35718, 24) + "TensorLayoutSliceNV\0" // IR(35742, 20) + "TensorLayoutSetClampValueNV\0" // IR(35762, 28) + "CreateTensorViewNV\0" // IR(35790, 19) + "TensorViewSetDimensionNV\0" // IR(35809, 25) + "TensorViewSetStrideNV\0" // IR(35834, 22) + "IsHelperInvocationEXT\0" // IR(35856, 22) + "TensorViewSetClipNV\0" // IR(35878, 20) + "TensorLayoutSetBlockSizeNV\0" // IR(35898, 27) + "CooperativeMatrixTransposeNV\0" // IR(35925, 29) + "ConvertUToImageNV\0" // IR(35954, 18) + "ConvertUToSamplerNV\0" // IR(35972, 20) + "ConvertImageToUNV\0" // IR(35992, 18) + "ConvertSamplerToUNV\0" // IR(36010, 20) + "ConvertUToSampledImageNV\0" // IR(36030, 25) + "ConvertSampledImageToUNV\0" // IR(36055, 25) + "SamplerImageAddressingModeNV\0" // IR(36080, 29) + "SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS\0" // IR(36109, 52) + "RawAccessChainNV\0" // IR(36161, 17) + "RayQueryGetIntersectionSpherePositionNV\0" // IR(36178, 40) + "RayQueryGetIntersectionSphereRadiusNV\0" // IR(36218, 38) + "RayQueryGetIntersectionLSSPositionsNV\0" // IR(36256, 38) + "RayQueryGetIntersectionLSSRadiiNV\0" // IR(36294, 34) + "RayQueryGetIntersectionLSSHitValueNV\0" // IR(36328, 37) + "HitObjectGetSpherePositionNV\0" // IR(36365, 29) + "HitObjectGetSphereRadiusNV\0" // IR(36394, 27) + "HitObjectGetLSSPositionsNV\0" // IR(36421, 27) + "HitObjectGetLSSRadiiNV\0" // IR(36448, 23) + "HitObjectIsSphereHitNV\0" // IR(36471, 23) + "HitObjectIsLSSHitNV\0" // IR(36494, 20) + "RayQueryIsSphereHitNV\0" // IR(36514, 22) + "RayQueryIsLSSHitNV\0" // IR(36536, 19) + "SubgroupShuffleDownINTEL\0" // IR(36555, 25) + "SubgroupShuffleUpINTEL\0" // IR(36580, 23) + "SubgroupShuffleXorINTEL\0" // IR(36603, 24) + "SubgroupBlockReadINTEL\0" // IR(36627, 23) + "SubgroupBlockWriteINTEL\0" // IR(36650, 24) + "SubgroupImageBlockReadINTEL\0" // IR(36674, 28) + "SubgroupImageBlockWriteINTEL\0" // IR(36702, 29) + "SubgroupImageMediaBlockReadINTEL\0" // IR(36731, 33) + "SubgroupImageMediaBlockWriteINTEL\0" // IR(36764, 34) + "UCountLeadingZerosINTEL\0" // IR(36798, 24) + "UCountTrailingZerosINTEL\0" // IR(36822, 25) + "AbsISubINTEL\0" // IR(36847, 13) + "AbsUSubINTEL\0" // IR(36860, 13) + "IAddSatINTEL\0" // IR(36873, 13) + "UAddSatINTEL\0" // IR(36886, 13) + "IAverageINTEL\0" // IR(36899, 14) + "UAverageINTEL\0" // IR(36913, 14) + "IAverageRoundedINTEL\0" // IR(36927, 21) + "UAverageRoundedINTEL\0" // IR(36948, 21) + "ISubSatINTEL\0" // IR(36969, 13) + "USubSatINTEL\0" // IR(36982, 13) + "IMul32x16INTEL\0" // IR(36995, 15) + "UMul32x16INTEL\0" // IR(37010, 15) + "ConstantFunctionPointerINTEL\0" // IR(37025, 29) + "FunctionPointerCallINTEL\0" // IR(37054, 25) + "AsmTargetINTEL\0" // IR(37079, 15) + "AsmCallINTEL\0" // IR(37094, 13) + "AtomicFMinEXT\0" // IR(37107, 14) + "AtomicFMaxEXT\0" // IR(37121, 14) + "AssumeTrueKHR\0" // IR(37135, 14) + "ExpectKHR\0" // IR(37149, 10) + "DecorateString\0" // IR(37159, 15) + "DecorateStringGOOGLE\0" // IR(37174, 21) + "MemberDecorateString\0" // IR(37195, 21) + "MemberDecorateStringGOOGLE\0" // IR(37216, 27) + "VmeImageINTEL\0" // IR(37243, 14) + "TypeVmeImageINTEL\0" // IR(37257, 18) + "TypeAvcImePayloadINTEL\0" // IR(37275, 23) + "TypeAvcRefPayloadINTEL\0" // IR(37298, 23) + "TypeAvcSicPayloadINTEL\0" // IR(37321, 23) + "TypeAvcMcePayloadINTEL\0" // IR(37344, 23) + "TypeAvcMceResultINTEL\0" // IR(37367, 22) + "TypeAvcImeResultINTEL\0" // IR(37389, 22) + "TypeAvcImeResultSingleReferenceStreamoutINTEL\0" // IR(37411, 46) + "TypeAvcImeResultDualReferenceStreamoutINTEL\0" // IR(37457, 44) + "TypeAvcImeSingleReferenceStreaminINTEL\0" // IR(37501, 39) + "TypeAvcImeDualReferenceStreaminINTEL\0" // IR(37540, 37) + "TypeAvcRefResultINTEL\0" // IR(37577, 22) + "TypeAvcSicResultINTEL\0" // IR(37599, 22) + "SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL\0" // IR(37621, 60) + "SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL\0" // IR(37681, 53) + "SubgroupAvcMceGetDefaultInterShapePenaltyINTEL\0" // IR(37734, 47) + "SubgroupAvcMceSetInterShapePenaltyINTEL\0" // IR(37781, 40) + "SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL\0" // IR(37821, 51) + "SubgroupAvcMceSetInterDirectionPenaltyINTEL\0" // IR(37872, 44) + "SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL\0" // IR(37916, 51) + "SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL\0" // IR(37967, 56) + "SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL\0" // IR(38023, 50) + "SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL\0" // IR(38073, 52) + "SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL\0" // IR(38125, 49) + "SubgroupAvcMceSetMotionVectorCostFunctionINTEL\0" // IR(38174, 47) + "SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL\0" // IR(38221, 50) + "SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL\0" // IR(38271, 51) + "SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL\0" // IR(38322, 56) + "SubgroupAvcMceSetAcOnlyHaarINTEL\0" // IR(38378, 33) + "SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL\0" // IR(38411, 52) + "SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL\0" // IR(38463, 61) + "SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL\0" // IR(38524, 61) + "SubgroupAvcMceConvertToImePayloadINTEL\0" // IR(38585, 39) + "SubgroupAvcMceConvertToImeResultINTEL\0" // IR(38624, 38) + "SubgroupAvcMceConvertToRefPayloadINTEL\0" // IR(38662, 39) + "SubgroupAvcMceConvertToRefResultINTEL\0" // IR(38701, 38) + "SubgroupAvcMceConvertToSicPayloadINTEL\0" // IR(38739, 39) + "SubgroupAvcMceConvertToSicResultINTEL\0" // IR(38778, 38) + "SubgroupAvcMceGetMotionVectorsINTEL\0" // IR(38816, 36) + "SubgroupAvcMceGetInterDistortionsINTEL\0" // IR(38852, 39) + "SubgroupAvcMceGetBestInterDistortionsINTEL\0" // IR(38891, 43) + "SubgroupAvcMceGetInterMajorShapeINTEL\0" // IR(38934, 38) + "SubgroupAvcMceGetInterMinorShapeINTEL\0" // IR(38972, 38) + "SubgroupAvcMceGetInterDirectionsINTEL\0" // IR(39010, 38) + "SubgroupAvcMceGetInterMotionVectorCountINTEL\0" // IR(39048, 45) + "SubgroupAvcMceGetInterReferenceIdsINTEL\0" // IR(39093, 40) + "SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL\0" // IR(39133, 62) + "SubgroupAvcImeInitializeINTEL\0" // IR(39195, 30) + "SubgroupAvcImeSetSingleReferenceINTEL\0" // IR(39225, 38) + "SubgroupAvcImeSetDualReferenceINTEL\0" // IR(39263, 36) + "SubgroupAvcImeRefWindowSizeINTEL\0" // IR(39299, 33) + "SubgroupAvcImeAdjustRefOffsetINTEL\0" // IR(39332, 35) + "SubgroupAvcImeConvertToMcePayloadINTEL\0" // IR(39367, 39) + "SubgroupAvcImeSetMaxMotionVectorCountINTEL\0" // IR(39406, 43) + "SubgroupAvcImeSetUnidirectionalMixDisableINTEL\0" // IR(39449, 47) + "SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL\0" // IR(39496, 54) + "SubgroupAvcImeSetWeightedSadINTEL\0" // IR(39550, 34) + "SubgroupAvcImeEvaluateWithSingleReferenceINTEL\0" // IR(39584, 47) + "SubgroupAvcImeEvaluateWithDualReferenceINTEL\0" // IR(39631, 45) + "SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL\0" // IR(39676, 55) + "SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL\0" // IR(39731, 53) + "SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL\0" // IR(39784, 56) + "SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL\0" // IR(39840, 54) + "SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL\0" // IR(39894, 58) + "SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL\0" // IR(39952, 56) + "SubgroupAvcImeConvertToMceResultINTEL\0" // IR(40008, 38) + "SubgroupAvcImeGetSingleReferenceStreaminINTEL\0" // IR(40046, 46) + "SubgroupAvcImeGetDualReferenceStreaminINTEL\0" // IR(40092, 44) + "SubgroupAvcImeStripSingleReferenceStreamoutINTEL\0" // IR(40136, 49) + "SubgroupAvcImeStripDualReferenceStreamoutINTEL\0" // IR(40185, 47) + "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL\0" // IR(40232, 70) + "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL\0" // IR(40302, 68) + "SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL\0" // IR(40370, 69) + "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL\0" // IR(40439, 68) + "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL\0" // IR(40507, 66) + "SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL\0" // IR(40573, 67) + "SubgroupAvcImeGetBorderReachedINTEL\0" // IR(40640, 36) + "SubgroupAvcImeGetTruncatedSearchIndicationINTEL\0" // IR(40676, 48) + "SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL\0" // IR(40724, 59) + "SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL\0" // IR(40783, 58) + "SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL\0" // IR(40841, 56) + "SubgroupAvcFmeInitializeINTEL\0" // IR(40897, 30) + "SubgroupAvcBmeInitializeINTEL\0" // IR(40927, 30) + "SubgroupAvcRefConvertToMcePayloadINTEL\0" // IR(40957, 39) + "SubgroupAvcRefSetBidirectionalMixDisableINTEL\0" // IR(40996, 46) + "SubgroupAvcRefSetBilinearFilterEnableINTEL\0" // IR(41042, 43) + "SubgroupAvcRefEvaluateWithSingleReferenceINTEL\0" // IR(41085, 47) + "SubgroupAvcRefEvaluateWithDualReferenceINTEL\0" // IR(41132, 45) + "SubgroupAvcRefEvaluateWithMultiReferenceINTEL\0" // IR(41177, 46) + "SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(41223, 56) + "SubgroupAvcRefConvertToMceResultINTEL\0" // IR(41279, 38) + "SubgroupAvcSicInitializeINTEL\0" // IR(41317, 30) + "SubgroupAvcSicConfigureSkcINTEL\0" // IR(41347, 32) + "SubgroupAvcSicConfigureIpeLumaINTEL\0" // IR(41379, 36) + "SubgroupAvcSicConfigureIpeLumaChromaINTEL\0" // IR(41415, 42) + "SubgroupAvcSicGetMotionVectorMaskINTEL\0" // IR(41457, 39) + "SubgroupAvcSicConvertToMcePayloadINTEL\0" // IR(41496, 39) + "SubgroupAvcSicSetIntraLumaShapePenaltyINTEL\0" // IR(41535, 44) + "SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL\0" // IR(41579, 48) + "SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL\0" // IR(41627, 50) + "SubgroupAvcSicSetBilinearFilterEnableINTEL\0" // IR(41677, 43) + "SubgroupAvcSicSetSkcForwardTransformEnableINTEL\0" // IR(41720, 48) + "SubgroupAvcSicSetBlockBasedRawSkipSadINTEL\0" // IR(41768, 43) + "SubgroupAvcSicEvaluateIpeINTEL\0" // IR(41811, 31) + "SubgroupAvcSicEvaluateWithSingleReferenceINTEL\0" // IR(41842, 47) + "SubgroupAvcSicEvaluateWithDualReferenceINTEL\0" // IR(41889, 45) + "SubgroupAvcSicEvaluateWithMultiReferenceINTEL\0" // IR(41934, 46) + "SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL\0" // IR(41980, 56) + "SubgroupAvcSicConvertToMceResultINTEL\0" // IR(42036, 38) + "SubgroupAvcSicGetIpeLumaShapeINTEL\0" // IR(42074, 35) + "SubgroupAvcSicGetBestIpeLumaDistortionINTEL\0" // IR(42109, 44) + "SubgroupAvcSicGetBestIpeChromaDistortionINTEL\0" // IR(42153, 46) + "SubgroupAvcSicGetPackedIpeLumaModesINTEL\0" // IR(42199, 41) + "SubgroupAvcSicGetIpeChromaModeINTEL\0" // IR(42240, 36) + "SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL\0" // IR(42276, 50) + "SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL\0" // IR(42326, 48) + "SubgroupAvcSicGetInterRawSadsINTEL\0" // IR(42374, 35) + "SaveMemoryINTEL\0" // IR(42409, 16) + "RestoreMemoryINTEL\0" // IR(42425, 19) + "ArbitraryFloatSinCosPiINTEL\0" // IR(42444, 28) + "ArbitraryFloatCastINTEL\0" // IR(42472, 24) + "ArbitraryFloatCastFromIntINTEL\0" // IR(42496, 31) + "ArbitraryFloatCastToIntINTEL\0" // IR(42527, 29) + "ArbitraryFloatAddINTEL\0" // IR(42556, 23) + "ArbitraryFloatSubINTEL\0" // IR(42579, 23) + "ArbitraryFloatMulINTEL\0" // IR(42602, 23) + "ArbitraryFloatDivINTEL\0" // IR(42625, 23) + "ArbitraryFloatGTINTEL\0" // IR(42648, 22) + "ArbitraryFloatGEINTEL\0" // IR(42670, 22) + "ArbitraryFloatLTINTEL\0" // IR(42692, 22) + "ArbitraryFloatLEINTEL\0" // IR(42714, 22) + "ArbitraryFloatEQINTEL\0" // IR(42736, 22) + "ArbitraryFloatRecipINTEL\0" // IR(42758, 25) + "ArbitraryFloatRSqrtINTEL\0" // IR(42783, 25) + "ArbitraryFloatCbrtINTEL\0" // IR(42808, 24) + "ArbitraryFloatHypotINTEL\0" // IR(42832, 25) + "ArbitraryFloatSqrtINTEL\0" // IR(42857, 24) + "ArbitraryFloatLogINTEL\0" // IR(42881, 23) + "ArbitraryFloatLog2INTEL\0" // IR(42904, 24) + "ArbitraryFloatLog10INTEL\0" // IR(42928, 25) + "ArbitraryFloatLog1pINTEL\0" // IR(42953, 25) + "ArbitraryFloatExpINTEL\0" // IR(42978, 23) + "ArbitraryFloatExp2INTEL\0" // IR(43001, 24) + "ArbitraryFloatExp10INTEL\0" // IR(43025, 25) + "ArbitraryFloatExpm1INTEL\0" // IR(43050, 25) + "ArbitraryFloatSinINTEL\0" // IR(43075, 23) + "ArbitraryFloatCosINTEL\0" // IR(43098, 23) + "ArbitraryFloatSinCosINTEL\0" // IR(43121, 26) + "ArbitraryFloatSinPiINTEL\0" // IR(43147, 25) + "ArbitraryFloatCosPiINTEL\0" // IR(43172, 25) + "ArbitraryFloatASinINTEL\0" // IR(43197, 24) + "ArbitraryFloatASinPiINTEL\0" // IR(43221, 26) + "ArbitraryFloatACosINTEL\0" // IR(43247, 24) + "ArbitraryFloatACosPiINTEL\0" // IR(43271, 26) + "ArbitraryFloatATanINTEL\0" // IR(43297, 24) + "ArbitraryFloatATanPiINTEL\0" // IR(43321, 26) + "ArbitraryFloatATan2INTEL\0" // IR(43347, 25) + "ArbitraryFloatPowINTEL\0" // IR(43372, 23) + "ArbitraryFloatPowRINTEL\0" // IR(43395, 24) + "ArbitraryFloatPowNINTEL\0" // IR(43419, 24) + "LoopControlINTEL\0" // IR(43443, 17) + "AliasDomainDeclINTEL\0" // IR(43460, 21) + "AliasScopeDeclINTEL\0" // IR(43481, 20) + "AliasScopeListDeclINTEL\0" // IR(43501, 24) + "FixedSqrtINTEL\0" // IR(43525, 15) + "FixedRecipINTEL\0" // IR(43540, 16) + "FixedRsqrtINTEL\0" // IR(43556, 16) + "FixedSinINTEL\0" // IR(43572, 14) + "FixedCosINTEL\0" // IR(43586, 14) + "FixedSinCosINTEL\0" // IR(43600, 17) + "FixedSinPiINTEL\0" // IR(43617, 16) + "FixedCosPiINTEL\0" // IR(43633, 16) + "FixedSinCosPiINTEL\0" // IR(43649, 19) + "FixedLogINTEL\0" // IR(43668, 14) + "FixedExpINTEL\0" // IR(43682, 14) + "PtrCastToCrossWorkgroupINTEL\0" // IR(43696, 29) + "CrossWorkgroupCastToPtrINTEL\0" // IR(43725, 29) + "ReadPipeBlockingINTEL\0" // IR(43754, 22) + "WritePipeBlockingINTEL\0" // IR(43776, 23) + "RayQueryGetRayTMinKHR\0" // IR(43799, 22) + "RayQueryGetRayFlagsKHR\0" // IR(43821, 23) + "RayQueryGetIntersectionTKHR\0" // IR(43844, 28) + "RayQueryGetIntersectionInstanceCustomIndexKHR\0" // IR(43872, 46) + "RayQueryGetIntersectionInstanceIdKHR\0" // IR(43918, 37) + "RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR\0" // IR(43955, 65) + "RayQueryGetIntersectionGeometryIndexKHR\0" // IR(44020, 40) + "RayQueryGetIntersectionPrimitiveIndexKHR\0" // IR(44060, 41) + "RayQueryGetIntersectionBarycentricsKHR\0" // IR(44101, 39) + "RayQueryGetIntersectionFrontFaceKHR\0" // IR(44140, 36) + "RayQueryGetIntersectionCandidateAABBOpaqueKHR\0" // IR(44176, 46) + "RayQueryGetIntersectionObjectRayDirectionKHR\0" // IR(44222, 45) + "RayQueryGetIntersectionObjectRayOriginKHR\0" // IR(44267, 42) + "RayQueryGetWorldRayDirectionKHR\0" // IR(44309, 32) + "RayQueryGetWorldRayOriginKHR\0" // IR(44341, 29) + "RayQueryGetIntersectionObjectToWorldKHR\0" // IR(44370, 40) + "RayQueryGetIntersectionWorldToObjectKHR\0" // IR(44410, 40) + "AtomicFAddEXT\0" // IR(44450, 14) + "TypeBufferSurfaceINTEL\0" // IR(44464, 23) + "TypeStructContinuedINTEL\0" // IR(44487, 25) + "ConstantCompositeContinuedINTEL\0" // IR(44512, 32) + "SpecConstantCompositeContinuedINTEL\0" // IR(44544, 36) + "CompositeConstructContinuedINTEL\0" // IR(44580, 33) + "ConvertFToBF16INTEL\0" // IR(44613, 20) + "ConvertBF16ToFINTEL\0" // IR(44633, 20) + "ControlBarrierArriveINTEL\0" // IR(44653, 26) + "ControlBarrierWaitINTEL\0" // IR(44679, 24) + "TaskSequenceCreateINTEL\0" // IR(44703, 24) + "TaskSequenceAsyncINTEL\0" // IR(44727, 23) + "TaskSequenceGetINTEL\0" // IR(44750, 21) + "TaskSequenceReleaseINTEL\0" // IR(44771, 25) + "TypeTaskSequenceINTEL\0" // IR(44796, 22) + "SubgroupBlockPrefetchINTEL\0" // IR(44818, 27) + "Subgroup2DBlockLoadINTEL\0" // IR(44845, 25) + "Subgroup2DBlockLoadTransformINTEL\0" // IR(44870, 34) + "Subgroup2DBlockLoadTransposeINTEL\0" // IR(44904, 34) + "Subgroup2DBlockPrefetchINTEL\0" // IR(44938, 29) + "Subgroup2DBlockStoreINTEL\0" // IR(44967, 26) + "SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS\0" // IR(44993, 62) + "BitwiseFunctionINTEL\0" // IR(45055, 21) + "ConditionalExtensionINTEL\0" // IR(45076, 26) + "ConditionalEntryPointINTEL\0" // IR(45102, 27) + "ConditionalCapabilityINTEL\0" // IR(45129, 27) + "SpecConstantTargetINTEL\0" // IR(45156, 24) + "SpecConstantArchitectureINTEL\0" // IR(45180, 30) + "SPV_OPERAND_TYPE_VARIABLE_CAPABILITY\0" // IR(45210, 37) + "SpecConstantCapabilitiesINTEL\0" // IR(45247, 30) + "ConditionalCopyObjectINTEL\0" // IR(45277, 27) + "GroupIMulKHR\0" // IR(45304, 13) + "GroupFMulKHR\0" // IR(45317, 13) + "GroupBitwiseAndKHR\0" // IR(45330, 19) + "GroupBitwiseOrKHR\0" // IR(45349, 18) + "GroupBitwiseXorKHR\0" // IR(45367, 19) + "GroupLogicalAndKHR\0" // IR(45386, 19) + "GroupLogicalOrKHR\0" // IR(45405, 18) + "GroupLogicalXorKHR\0" // IR(45423, 19) + "RoundFToTF32INTEL\0" // IR(45442, 18) + "MaskedGatherINTEL\0" // IR(45460, 18) + "MaskedScatterINTEL\0" // IR(45478, 19) + "ConvertHandleToImageINTEL\0" // IR(45497, 26) + "ConvertHandleToSamplerINTEL\0" // IR(45523, 28) + "ConvertHandleToSampledImageINTEL\0" // IR(45551, 33) + "DebugInfoNone\0" // IR(45584, 14) + "DebugCompilationUnit\0" // IR(45598, 21) + "SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(45619, 52) + "DebugTypeBasic\0" // IR(45671, 15) + "SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS\0" // IR(45686, 34) + "DebugTypePointer\0" // IR(45720, 17) + "SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER\0" // IR(45737, 38) + "DebugTypeQualifier\0" // IR(45775, 19) + "DebugTypeArray\0" // IR(45794, 15) + "DebugTypeVector\0" // IR(45809, 16) + "DebugTypedef\0" // IR(45825, 13) + "DebugTypeFunction\0" // IR(45838, 18) + "DebugTypeEnum\0" // IR(45856, 14) + "SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE\0" // IR(45870, 38) + "DebugTypeComposite\0" // IR(45908, 19) + "DebugTypeMember\0" // IR(45927, 16) + "DebugTypeInheritance\0" // IR(45943, 21) + "DebugTypePtrToMember\0" // IR(45964, 21) + "DebugTypeTemplate\0" // IR(45985, 18) + "DebugTypeTemplateParameter\0" // IR(46003, 27) + "DebugTypeTemplateTemplateParameter\0" // IR(46030, 35) + "DebugTypeTemplateParameterPack\0" // IR(46065, 31) + "DebugGlobalVariable\0" // IR(46096, 20) + "DebugFunctionDeclaration\0" // IR(46116, 25) + "DebugFunction\0" // IR(46141, 14) + "DebugLexicalBlock\0" // IR(46155, 18) + "DebugLexicalBlockDiscriminator\0" // IR(46173, 31) + "DebugScope\0" // IR(46204, 11) + "DebugNoScope\0" // IR(46215, 13) + "DebugInlinedAt\0" // IR(46228, 15) + "SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER\0" // IR(46243, 42) + "DebugLocalVariable\0" // IR(46285, 19) + "DebugInlinedVariable\0" // IR(46304, 21) + "DebugDeclare\0" // IR(46325, 13) + "DebugValue\0" // IR(46338, 11) + "SPV_OPERAND_TYPE_DEBUG_OPERATION\0" // IR(46349, 33) + "DebugOperation\0" // IR(46382, 15) + "DebugExpression\0" // IR(46397, 16) + "DebugMacroDef\0" // IR(46413, 14) + "DebugMacroUndef\0" // IR(46427, 16) + "Round\0" // IR(46443, 6) + "RoundEven\0" // IR(46449, 10) + "Trunc\0" // IR(46459, 6) + "FAbs\0" // IR(46465, 5) + "SAbs\0" // IR(46470, 5) + "FSign\0" // IR(46475, 6) + "SSign\0" // IR(46481, 6) + "Floor\0" // IR(46487, 6) + "Ceil\0" // IR(46493, 5) + "Fract\0" // IR(46498, 6) + "Radians\0" // IR(46504, 8) + "Degrees\0" // IR(46512, 8) + "Sin\0" // IR(46520, 4) + "Cos\0" // IR(46524, 4) + "Tan\0" // IR(46528, 4) + "Asin\0" // IR(46532, 5) + "Acos\0" // IR(46537, 5) + "Atan\0" // IR(46542, 5) + "Sinh\0" // IR(46547, 5) + "Cosh\0" // IR(46552, 5) + "Tanh\0" // IR(46557, 5) + "Asinh\0" // IR(46562, 6) + "Acosh\0" // IR(46568, 6) + "Atanh\0" // IR(46574, 6) + "Atan2\0" // IR(46580, 6) + "Pow\0" // IR(46586, 4) + "Exp\0" // IR(46590, 4) + "Log\0" // IR(46594, 4) + "Exp2\0" // IR(46598, 5) + "Log2\0" // IR(46603, 5) + "Sqrt\0" // IR(46608, 5) + "InverseSqrt\0" // IR(46613, 12) + "Determinant\0" // IR(46625, 12) + "MatrixInverse\0" // IR(46637, 14) + "Modf\0" // IR(46651, 5) + "ModfStruct\0" // IR(46656, 11) + "FMin\0" // IR(46667, 5) + "UMin\0" // IR(46672, 5) + "SMin\0" // IR(46677, 5) + "FMax\0" // IR(46682, 5) + "UMax\0" // IR(46687, 5) + "SMax\0" // IR(46692, 5) + "FClamp\0" // IR(46697, 7) + "UClamp\0" // IR(46704, 7) + "SClamp\0" // IR(46711, 7) + "FMix\0" // IR(46718, 5) + "IMix\0" // IR(46723, 5) + "Step\0" // IR(46728, 5) + "SmoothStep\0" // IR(46733, 11) + "Fma\0" // IR(46744, 4) + "Frexp\0" // IR(46748, 6) + "FrexpStruct\0" // IR(46754, 12) + "Ldexp\0" // IR(46766, 6) + "PackSnorm4x8\0" // IR(46772, 13) + "PackUnorm4x8\0" // IR(46785, 13) + "PackSnorm2x16\0" // IR(46798, 14) + "PackUnorm2x16\0" // IR(46812, 14) + "PackHalf2x16\0" // IR(46826, 13) + "PackDouble2x32\0" // IR(46839, 15) + "UnpackSnorm2x16\0" // IR(46854, 16) + "UnpackUnorm2x16\0" // IR(46870, 16) + "UnpackHalf2x16\0" // IR(46886, 15) + "UnpackSnorm4x8\0" // IR(46901, 15) + "UnpackUnorm4x8\0" // IR(46916, 15) + "UnpackDouble2x32\0" // IR(46931, 17) + "Length\0" // IR(46948, 7) + "Distance\0" // IR(46955, 9) + "Cross\0" // IR(46964, 6) + "Normalize\0" // IR(46970, 10) + "FaceForward\0" // IR(46980, 12) + "Reflect\0" // IR(46992, 8) + "Refract\0" // IR(47000, 8) + "FindILsb\0" // IR(47008, 9) + "FindSMsb\0" // IR(47017, 9) + "FindUMsb\0" // IR(47026, 9) + "InterpolateAtCentroid\0" // IR(47035, 22) + "InterpolateAtSample\0" // IR(47057, 20) + "InterpolateAtOffset\0" // IR(47077, 20) + "NMin\0" // IR(47097, 5) + "NMax\0" // IR(47102, 5) + "NClamp\0" // IR(47107, 7) + "ArgumentInfo\0" // IR(47114, 13) + "ArgumentStorageBuffer\0" // IR(47127, 22) + "ArgumentUniform\0" // IR(47149, 16) + "ArgumentPodStorageBuffer\0" // IR(47165, 25) + "ArgumentPodUniform\0" // IR(47190, 19) + "ArgumentPodPushConstant\0" // IR(47209, 24) + "ArgumentSampledImage\0" // IR(47233, 21) + "ArgumentStorageImage\0" // IR(47254, 21) + "ArgumentSampler\0" // IR(47275, 16) + "ArgumentWorkgroup\0" // IR(47291, 18) + "SpecConstantWorkgroupSize\0" // IR(47309, 26) + "SpecConstantGlobalOffset\0" // IR(47335, 25) + "SpecConstantWorkDim\0" // IR(47360, 20) + "PushConstantGlobalOffset\0" // IR(47380, 25) + "PushConstantEnqueuedLocalSize\0" // IR(47405, 30) + "PushConstantGlobalSize\0" // IR(47435, 23) + "PushConstantRegionOffset\0" // IR(47458, 25) + "PushConstantNumWorkgroups\0" // IR(47483, 26) + "PushConstantRegionGroupOffset\0" // IR(47509, 30) + "ConstantDataStorageBuffer\0" // IR(47539, 26) + "ConstantDataUniform\0" // IR(47565, 20) + "PropertyRequiredWorkgroupSize\0" // IR(47585, 30) + "SpecConstantSubgroupMaxSize\0" // IR(47615, 28) + "ArgumentPointerPushConstant\0" // IR(47643, 28) + "ArgumentPointerUniform\0" // IR(47671, 23) + "ProgramScopeVariablesStorageBuffer\0" // IR(47694, 35) + "ProgramScopeVariablePointerRelocation\0" // IR(47729, 38) + "ImageArgumentInfoChannelOrderPushConstant\0" // IR(47767, 42) + "ImageArgumentInfoChannelDataTypePushConstant\0" // IR(47809, 45) + "ImageArgumentInfoChannelOrderUniform\0" // IR(47854, 37) + "ImageArgumentInfoChannelDataTypeUniform\0" // IR(47891, 40) + "ArgumentStorageTexelBuffer\0" // IR(47931, 27) + "ArgumentUniformTexelBuffer\0" // IR(47958, 27) + "ConstantDataPointerPushConstant\0" // IR(47985, 32) + "ProgramScopeVariablePointerPushConstant\0" // IR(48017, 40) + "PrintfInfo\0" // IR(48057, 11) + "PrintfBufferStorageBuffer\0" // IR(48068, 26) + "PrintfBufferPointerPushConstant\0" // IR(48094, 32) + "NormalizedSamplerMaskPushConstant\0" // IR(48126, 34) + "WorkgroupVariableSize\0" // IR(48160, 22) + "DebugImportedEntity\0" // IR(48182, 20) + "DebugSource\0" // IR(48202, 12) + "DebugFunctionDefinition\0" // IR(48214, 24) + "DebugSourceContinued\0" // IR(48238, 21) + "DebugLine\0" // IR(48259, 10) + "DebugNoLine\0" // IR(48269, 12) + "DebugBuildIdentifier\0" // IR(48281, 21) + "DebugStoragePath\0" // IR(48302, 17) + "DebugEntryPoint\0" // IR(48319, 16) + "DebugTypeMatrix\0" // IR(48335, 16) + "Configuration\0" // IR(48351, 14) + "StartCounter\0" // IR(48365, 13) + "StopCounter\0" // IR(48378, 12) + "PushConstants\0" // IR(48390, 14) + "SpecializationMapEntry\0" // IR(48404, 23) + "DescriptorSetBuffer\0" // IR(48427, 20) + "DescriptorSetImage\0" // IR(48447, 19) + "DescriptorSetSampler\0" // IR(48466, 21) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING\0" // IR(48487, 63) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS\0" // IR(48550, 45) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER\0" // IR(48595, 49) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE\0" // IR(48644, 49) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION\0" // IR(48693, 44) + "SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY\0" // IR(48737, 50) + "DebugModuleINTEL\0" // IR(48787, 17) + "acos\0" // IR(48804, 5) + "acosh\0" // IR(48809, 6) + "acospi\0" // IR(48815, 7) + "asin\0" // IR(48822, 5) + "asinh\0" // IR(48827, 6) + "asinpi\0" // IR(48833, 7) + "atan\0" // IR(48840, 5) + "atan2\0" // IR(48845, 6) + "atanh\0" // IR(48851, 6) + "atanpi\0" // IR(48857, 7) + "atan2pi\0" // IR(48864, 8) + "cbrt\0" // IR(48872, 5) + "ceil\0" // IR(48877, 5) + "copysign\0" // IR(48882, 9) + "cos\0" // IR(48891, 4) + "cosh\0" // IR(48895, 5) + "cospi\0" // IR(48900, 6) + "erfc\0" // IR(48906, 5) + "erf\0" // IR(48911, 4) + "exp\0" // IR(48915, 4) + "exp2\0" // IR(48919, 5) + "exp10\0" // IR(48924, 6) + "expm1\0" // IR(48930, 6) + "fabs\0" // IR(48936, 5) + "fdim\0" // IR(48941, 5) + "floor\0" // IR(48946, 6) + "fma\0" // IR(48952, 4) + "fmax\0" // IR(48956, 5) + "fmin\0" // IR(48961, 5) + "fmod\0" // IR(48966, 5) + "fract\0" // IR(48971, 6) + "frexp\0" // IR(48977, 6) + "hypot\0" // IR(48983, 6) + "ilogb\0" // IR(48989, 6) + "ldexp\0" // IR(48995, 6) + "lgamma\0" // IR(49001, 7) + "lgamma_r\0" // IR(49008, 9) + "log\0" // IR(49017, 4) + "log2\0" // IR(49021, 5) + "log10\0" // IR(49026, 6) + "log1p\0" // IR(49032, 6) + "logb\0" // IR(49038, 5) + "mad\0" // IR(49043, 4) + "maxmag\0" // IR(49047, 7) + "minmag\0" // IR(49054, 7) + "modf\0" // IR(49061, 5) + "nan\0" // IR(49066, 4) + "nextafter\0" // IR(49070, 10) + "pow\0" // IR(49080, 4) + "pown\0" // IR(49084, 5) + "powr\0" // IR(49089, 5) + "remainder\0" // IR(49094, 10) + "remquo\0" // IR(49104, 7) + "rint\0" // IR(49111, 5) + "rootn\0" // IR(49116, 6) + "round\0" // IR(49122, 6) + "rsqrt\0" // IR(49128, 6) + "sin\0" // IR(49134, 4) + "sincos\0" // IR(49138, 7) + "sinh\0" // IR(49145, 5) + "sinpi\0" // IR(49150, 6) + "sqrt\0" // IR(49156, 5) + "tan\0" // IR(49161, 4) + "tanh\0" // IR(49165, 5) + "tanpi\0" // IR(49170, 6) + "tgamma\0" // IR(49176, 7) + "trunc\0" // IR(49183, 6) + "half_cos\0" // IR(49189, 9) + "half_divide\0" // IR(49198, 12) + "half_exp\0" // IR(49210, 9) + "half_exp2\0" // IR(49219, 10) + "half_exp10\0" // IR(49229, 11) + "half_log\0" // IR(49240, 9) + "half_log2\0" // IR(49249, 10) + "half_log10\0" // IR(49259, 11) + "half_powr\0" // IR(49270, 10) + "half_recip\0" // IR(49280, 11) + "half_rsqrt\0" // IR(49291, 11) + "half_sin\0" // IR(49302, 9) + "half_sqrt\0" // IR(49311, 10) + "half_tan\0" // IR(49321, 9) + "native_cos\0" // IR(49330, 11) + "native_divide\0" // IR(49341, 14) + "native_exp\0" // IR(49355, 11) + "native_exp2\0" // IR(49366, 12) + "native_exp10\0" // IR(49378, 13) + "native_log\0" // IR(49391, 11) + "native_log2\0" // IR(49402, 12) + "native_log10\0" // IR(49414, 13) + "native_powr\0" // IR(49427, 12) + "native_recip\0" // IR(49439, 13) + "native_rsqrt\0" // IR(49452, 13) + "native_sin\0" // IR(49465, 11) + "native_sqrt\0" // IR(49476, 12) + "native_tan\0" // IR(49488, 11) + "fclamp\0" // IR(49499, 7) + "degrees\0" // IR(49506, 8) + "fmax_common\0" // IR(49514, 12) + "fmin_common\0" // IR(49526, 12) + "mix\0" // IR(49538, 4) + "radians\0" // IR(49542, 8) + "step\0" // IR(49550, 5) + "smoothstep\0" // IR(49555, 11) + "sign\0" // IR(49566, 5) + "cross\0" // IR(49571, 6) + "distance\0" // IR(49577, 9) + "length\0" // IR(49586, 7) + "normalize\0" // IR(49593, 10) + "fast_distance\0" // IR(49603, 14) + "fast_length\0" // IR(49617, 12) + "fast_normalize\0" // IR(49629, 15) + "s_abs\0" // IR(49644, 6) + "s_abs_diff\0" // IR(49650, 11) + "s_add_sat\0" // IR(49661, 10) + "u_add_sat\0" // IR(49671, 10) + "s_hadd\0" // IR(49681, 7) + "u_hadd\0" // IR(49688, 7) + "s_rhadd\0" // IR(49695, 8) + "u_rhadd\0" // IR(49703, 8) + "s_clamp\0" // IR(49711, 8) + "u_clamp\0" // IR(49719, 8) + "clz\0" // IR(49727, 4) + "ctz\0" // IR(49731, 4) + "s_mad_hi\0" // IR(49735, 9) + "u_mad_sat\0" // IR(49744, 10) + "s_mad_sat\0" // IR(49754, 10) + "s_max\0" // IR(49764, 6) + "u_max\0" // IR(49770, 6) + "s_min\0" // IR(49776, 6) + "u_min\0" // IR(49782, 6) + "s_mul_hi\0" // IR(49788, 9) + "rotate\0" // IR(49797, 7) + "s_sub_sat\0" // IR(49804, 10) + "u_sub_sat\0" // IR(49814, 10) + "u_upsample\0" // IR(49824, 11) + "s_upsample\0" // IR(49835, 11) + "popcount\0" // IR(49846, 9) + "s_mad24\0" // IR(49855, 8) + "u_mad24\0" // IR(49863, 8) + "s_mul24\0" // IR(49871, 8) + "u_mul24\0" // IR(49879, 8) + "vloadn\0" // IR(49887, 7) + "vstoren\0" // IR(49894, 8) + "vload_half\0" // IR(49902, 11) + "vload_halfn\0" // IR(49913, 12) + "vstore_half\0" // IR(49925, 12) + "vstore_half_r\0" // IR(49937, 14) + "vstore_halfn\0" // IR(49951, 13) + "vstore_halfn_r\0" // IR(49964, 15) + "vloada_halfn\0" // IR(49979, 13) + "vstorea_halfn\0" // IR(49992, 14) + "vstorea_halfn_r\0" // IR(50006, 16) + "shuffle\0" // IR(50022, 8) + "shuffle2\0" // IR(50030, 9) + "printf\0" // IR(50039, 7) + "prefetch\0" // IR(50046, 9) + "bitselect\0" // IR(50055, 10) + "select\0" // IR(50065, 7) + "u_abs\0" // IR(50072, 6) + "u_abs_diff\0" // IR(50078, 11) + "u_mul_hi\0" // IR(50089, 9) + "u_mad_hi\0" // IR(50098, 9) + "CubeFaceIndexAMD\0" // IR(50107, 17) + "CubeFaceCoordAMD\0" // IR(50124, 17) + "TimeAMD\0" // IR(50141, 8) + "SwizzleInvocationsAMD\0" // IR(50149, 22) + "SwizzleInvocationsMaskedAMD\0" // IR(50171, 28) + "WriteInvocationAMD\0" // IR(50199, 19) + "MbcntAMD\0" // IR(50218, 9) + "InterpolateAtVertexAMD\0" // IR(50227, 23) + "FMin3AMD\0" // IR(50250, 9) + "UMin3AMD\0" // IR(50259, 9) + "SMin3AMD\0" // IR(50268, 9) + "FMax3AMD\0" // IR(50277, 9) + "UMax3AMD\0" // IR(50286, 9) + "SMax3AMD\0" // IR(50295, 9) + "FMid3AMD\0" // IR(50304, 9) + "UMid3AMD\0" // IR(50313, 9) + "SMid3AMD\0" // IR(50322, 9) ; // Array of IndexRanges, where each represents a string by referencing @@ -8064,109 +8154,110 @@ 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(4640, 27), // 0 PhysicalStorageBuffer64EXT - IR(5551, 18), // 1 SubgroupEqMaskKHR - IR(5606, 18), // 2 SubgroupGeMaskKHR - IR(5639, 18), // 3 SubgroupGtMaskKHR - IR(5672, 18), // 4 SubgroupLeMaskKHR - IR(5705, 18), // 5 SubgroupLtMaskKHR - IR(6563, 12), // 6 BaryCoordNV - IR(6618, 19), // 7 BaryCoordNoPerspNV - IR(6649, 15), // 8 FragmentSizeNV - IR(6706, 22), // 9 InvocationsPerPixelNV - IR(6834, 11), // 10 LaunchIdNV - IR(6859, 13), // 11 LaunchSizeNV - IR(6890, 17), // 12 WorldRayOriginNV - IR(6928, 20), // 13 WorldRayDirectionNV - IR(6967, 18), // 14 ObjectRayOriginNV - IR(7007, 21), // 15 ObjectRayDirectionNV - IR(7039, 10), // 16 RayTminNV - IR(7060, 10), // 17 RayTmaxNV - IR(7093, 22), // 18 InstanceCustomIndexNV - IR(7132, 16), // 19 ObjectToWorldNV - IR(7165, 16), // 20 WorldToObjectNV - IR(7199, 10), // 21 HitKindNV - IR(7430, 19), // 22 IncomingRayFlagsNV - IR(9176, 28), // 23 StorageUniformBufferBlock16 - IR(9239, 17), // 24 StorageUniform16 - IR(10043, 27), // 25 ShaderViewportIndexLayerNV - IR(10087, 22), // 26 FragmentBarycentricNV - IR(10140, 30), // 27 ComputeDerivativeGroupQuadsNV - IR(10170, 14), // 28 ShadingRateNV - IR(10230, 20), // 29 ShaderNonUniformEXT - IR(10273, 26), // 30 RuntimeDescriptorArrayEXT - IR(10335, 39), // 31 InputAttachmentArrayDynamicIndexingEXT - IR(10413, 42), // 32 UniformTexelBufferArrayDynamicIndexingEXT - IR(10494, 42), // 33 StorageTexelBufferArrayDynamicIndexingEXT - IR(10573, 40), // 34 UniformBufferArrayNonUniformIndexingEXT - IR(10649, 39), // 35 SampledImageArrayNonUniformIndexingEXT - IR(10725, 40), // 36 StorageBufferArrayNonUniformIndexingEXT - IR(10801, 39), // 37 StorageImageArrayNonUniformIndexingEXT - IR(10879, 42), // 38 InputAttachmentArrayNonUniformIndexingEXT - IR(10963, 45), // 39 UniformTexelBufferArrayNonUniformIndexingEXT - IR(11050, 45), // 40 StorageTexelBufferArrayNonUniformIndexingEXT - IR(11113, 21), // 41 VulkanMemoryModelKHR - IR(11163, 32), // 42 VulkanMemoryModelDeviceScopeKHR - IR(11195, 34), // 43 PhysicalStorageBufferAddressesEXT - IR(11261, 31), // 44 ComputeDerivativeGroupLinearNV - IR(11465, 28), // 45 DemoteToHelperInvocationEXT - IR(12935, 22), // 46 DotProductInputAllKHR - IR(12979, 25), // 47 DotProductInput4x8BitKHR - IR(13032, 31), // 48 DotProductInput4x8BitPackedKHR - IR(13074, 14), // 49 DotProductKHR - IR(13239, 13), // 50 OptNoneINTEL - IR(16235, 15), // 51 PerPrimitiveNV - IR(16283, 12), // 52 PerVertexNV - IR(16306, 14), // 53 NonUniformEXT - IR(16336, 19), // 54 RestrictPointerEXT - IR(16370, 18), // 55 AliasedPointerEXT - IR(16680, 24), // 56 HlslCounterBufferGOOGLE - IR(16717, 19), // 57 HlslSemanticGOOGLE - IR(19391, 14), // 58 OutputLinesNV - IR(19425, 19), // 59 OutputPrimitivesNV - IR(19468, 23), // 60 DerivativeGroupQuadsNV - IR(19516, 24), // 61 DerivativeGroupLinearNV - IR(19559, 18), // 62 OutputTrianglesNV - IR(20307, 16), // 63 RayGenerationNV - IR(20339, 15), // 64 IntersectionNV - IR(20364, 9), // 65 AnyHitNV - IR(20387, 13), // 66 ClosestHitNV - IR(20408, 7), // 67 MissNV - IR(20427, 11), // 68 CallableNV - IR(20572, 23), // 69 AllowContractFastINTEL - IR(20608, 18), // 70 AllowReassocINTEL - IR(21062, 22), // 71 MakeTexelAvailableKHR - IR(21101, 20), // 72 MakeTexelVisibleKHR - IR(21137, 19), // 73 NonPrivateTexelKHR - IR(21170, 17), // 74 VolatileTexelKHR - IR(22547, 24), // 75 MakePointerAvailableKHR - IR(22590, 22), // 76 MakePointerVisibleKHR - IR(22630, 21), // 77 NonPrivatePointerKHR - IR(22717, 10), // 78 VulkanKHR - IR(14007, 5), // 79 None - IR(22900, 16), // 80 OutputMemoryKHR - IR(22930, 17), // 81 MakeAvailableKHR - IR(22959, 15), // 82 MakeVisibleKHR - IR(23035, 28), // 83 PackedVectorFormat4x8BitKHR - IR(23350, 24), // 84 SkipBuiltinPrimitivesNV - IR(24090, 15), // 85 QueueFamilyKHR - IR(24461, 15), // 86 CallableDataNV - IR(24500, 23), // 87 IncomingCallableDataNV - IR(24537, 13), // 88 RayPayloadNV - IR(24566, 15), // 89 HitAttributeNV - IR(24603, 21), // 90 IncomingRayPayloadNV - IR(24646, 21), // 91 ShaderRecordBufferNV - IR(24689, 25), // 92 PhysicalStorageBufferEXT - IR(31905, 8), // 93 SDotKHR - IR(31918, 8), // 94 UDotKHR - IR(31932, 9), // 95 SUDotKHR - IR(31952, 14), // 96 SDotAccSatKHR - IR(31977, 14), // 97 UDotAccSatKHR - IR(32003, 15), // 98 SUDotAccSatKHR - IR(34488, 21), // 99 ReportIntersectionNV - IR(34663, 28), // 100 TypeAccelerationStructureNV - IR(36712, 21), // 101 DecorateStringGOOGLE - IR(36754, 27), // 102 MemberDecorateStringGOOGLE + IR(4721, 27), // 0 PhysicalStorageBuffer64EXT + IR(5632, 18), // 1 SubgroupEqMaskKHR + IR(5687, 18), // 2 SubgroupGeMaskKHR + IR(5720, 18), // 3 SubgroupGtMaskKHR + IR(5753, 18), // 4 SubgroupLeMaskKHR + IR(5786, 18), // 5 SubgroupLtMaskKHR + IR(6644, 12), // 6 BaryCoordNV + IR(6699, 19), // 7 BaryCoordNoPerspNV + IR(6730, 15), // 8 FragmentSizeNV + IR(6787, 22), // 9 InvocationsPerPixelNV + IR(6915, 11), // 10 LaunchIdNV + IR(6940, 13), // 11 LaunchSizeNV + IR(6971, 17), // 12 WorldRayOriginNV + IR(7009, 20), // 13 WorldRayDirectionNV + IR(7048, 18), // 14 ObjectRayOriginNV + IR(7088, 21), // 15 ObjectRayDirectionNV + IR(7120, 10), // 16 RayTminNV + IR(7141, 10), // 17 RayTmaxNV + IR(7174, 22), // 18 InstanceCustomIndexNV + IR(7213, 16), // 19 ObjectToWorldNV + IR(7246, 16), // 20 WorldToObjectNV + IR(7280, 10), // 21 HitKindNV + IR(7511, 19), // 22 IncomingRayFlagsNV + IR(9287, 28), // 23 StorageUniformBufferBlock16 + IR(9350, 17), // 24 StorageUniform16 + IR(10165, 27), // 25 ShaderViewportIndexLayerNV + IR(10209, 22), // 26 FragmentBarycentricNV + IR(10262, 30), // 27 ComputeDerivativeGroupQuadsNV + IR(10292, 14), // 28 ShadingRateNV + IR(10352, 20), // 29 ShaderNonUniformEXT + IR(10395, 26), // 30 RuntimeDescriptorArrayEXT + IR(10457, 39), // 31 InputAttachmentArrayDynamicIndexingEXT + IR(10535, 42), // 32 UniformTexelBufferArrayDynamicIndexingEXT + IR(10616, 42), // 33 StorageTexelBufferArrayDynamicIndexingEXT + IR(10695, 40), // 34 UniformBufferArrayNonUniformIndexingEXT + IR(10771, 39), // 35 SampledImageArrayNonUniformIndexingEXT + IR(10847, 40), // 36 StorageBufferArrayNonUniformIndexingEXT + IR(10923, 39), // 37 StorageImageArrayNonUniformIndexingEXT + IR(11001, 42), // 38 InputAttachmentArrayNonUniformIndexingEXT + IR(11085, 45), // 39 UniformTexelBufferArrayNonUniformIndexingEXT + IR(11172, 45), // 40 StorageTexelBufferArrayNonUniformIndexingEXT + IR(11235, 21), // 41 VulkanMemoryModelKHR + IR(11285, 32), // 42 VulkanMemoryModelDeviceScopeKHR + IR(11317, 34), // 43 PhysicalStorageBufferAddressesEXT + IR(11383, 31), // 44 ComputeDerivativeGroupLinearNV + IR(11587, 28), // 45 DemoteToHelperInvocationEXT + IR(13057, 22), // 46 DotProductInputAllKHR + IR(13101, 25), // 47 DotProductInput4x8BitKHR + IR(13154, 31), // 48 DotProductInput4x8BitPackedKHR + IR(13196, 14), // 49 DotProductKHR + IR(13361, 13), // 50 OptNoneINTEL + IR(16432, 15), // 51 PerPrimitiveNV + IR(16480, 12), // 52 PerVertexNV + IR(16503, 14), // 53 NonUniformEXT + IR(16533, 19), // 54 RestrictPointerEXT + IR(16567, 18), // 55 AliasedPointerEXT + IR(16877, 24), // 56 HlslCounterBufferGOOGLE + IR(16914, 19), // 57 HlslSemanticGOOGLE + IR(19605, 14), // 58 OutputLinesNV + IR(19639, 19), // 59 OutputPrimitivesNV + IR(19682, 23), // 60 DerivativeGroupQuadsNV + IR(19730, 24), // 61 DerivativeGroupLinearNV + IR(19773, 18), // 62 OutputTrianglesNV + IR(20521, 16), // 63 RayGenerationNV + IR(20553, 15), // 64 IntersectionNV + IR(20578, 9), // 65 AnyHitNV + IR(20601, 13), // 66 ClosestHitNV + IR(20622, 7), // 67 MissNV + IR(20641, 11), // 68 CallableNV + IR(20786, 23), // 69 AllowContractFastINTEL + IR(20822, 18), // 70 AllowReassocINTEL + IR(21276, 22), // 71 MakeTexelAvailableKHR + IR(21315, 20), // 72 MakeTexelVisibleKHR + IR(21351, 19), // 73 NonPrivateTexelKHR + IR(21384, 17), // 74 VolatileTexelKHR + IR(22761, 24), // 75 MakePointerAvailableKHR + IR(22804, 22), // 76 MakePointerVisibleKHR + IR(22844, 21), // 77 NonPrivatePointerKHR + IR(22931, 10), // 78 VulkanKHR + IR(14204, 5), // 79 None + IR(23114, 16), // 80 OutputMemoryKHR + IR(23144, 17), // 81 MakeAvailableKHR + IR(23173, 15), // 82 MakeVisibleKHR + IR(23249, 28), // 83 PackedVectorFormat4x8BitKHR + IR(23564, 24), // 84 SkipBuiltinPrimitivesNV + IR(24304, 15), // 85 QueueFamilyKHR + IR(24675, 15), // 86 CallableDataNV + IR(24714, 23), // 87 IncomingCallableDataNV + IR(24751, 13), // 88 RayPayloadNV + IR(24780, 15), // 89 HitAttributeNV + IR(24817, 21), // 90 IncomingRayPayloadNV + IR(24860, 21), // 91 ShaderRecordBufferNV + IR(24903, 25), // 92 PhysicalStorageBufferEXT + IR(32237, 8), // 93 SDotKHR + IR(32250, 8), // 94 UDotKHR + IR(32264, 9), // 95 SUDotKHR + IR(32284, 14), // 96 SDotAccSatKHR + IR(32309, 14), // 97 UDotAccSatKHR + IR(32335, 15), // 98 SUDotAccSatKHR + IR(34915, 21), // 99 ReportIntersectionNV + IR(35090, 28), // 100 TypeAccelerationStructureNV + IR(35171, 23), // 101 RayQueryGetClusterIdNV + IR(37174, 21), // 102 DecorateStringGOOGLE + IR(37216, 27), // 103 MemberDecorateStringGOOGLE }; // Array of capabilities, referenced by IndexRanges elsewhere. @@ -8249,233 +8340,240 @@ static const spv::Capability kCapabilitySpans[] = { spv::Capability::DeviceEnqueue, // 74 spv::Capability::Pipes, // 75 spv::Capability::GroupNonUniform, // 76 - spv::Capability::WorkgroupMemoryExplicitLayoutKHR, // 77 - spv::Capability::StorageBuffer16BitAccess, // 78 - spv::Capability::VariablePointersStorageBuffer, // 79 - spv::Capability::AtomicStorage, // 80 - spv::Capability::StorageBuffer8BitAccess, // 81 - spv::Capability::RayQueryKHR, // 82 - spv::Capability::RayTracingKHR, // 83 - spv::Capability::Int4TypeINTEL, // 84 - spv::Capability::CooperativeMatrixKHR, // 85 - spv::Capability::BFloat16TypeKHR, // 86 - spv::Capability::BFloat16TypeKHR, // 87 + spv::Capability::Float8EXT, // 77 + spv::Capability::CooperativeMatrixKHR, // 78 + spv::Capability::WorkgroupMemoryExplicitLayoutKHR, // 79 + spv::Capability::StorageBuffer16BitAccess, // 80 + spv::Capability::VariablePointersStorageBuffer, // 81 + spv::Capability::AtomicStorage, // 82 + spv::Capability::StorageBuffer8BitAccess, // 83 + spv::Capability::RayQueryKHR, // 84 + spv::Capability::RayTracingKHR, // 85 + spv::Capability::CooperativeMatrixKHR, // 86 + spv::Capability::Int4TypeINTEL, // 87 spv::Capability::CooperativeMatrixKHR, // 88 - spv::Capability::MultiViewport, // 89 - spv::Capability::ShaderViewportIndexLayerEXT, // 90 - spv::Capability::ShaderViewportMaskNV, // 91 - spv::Capability::InputAttachment, // 92 - spv::Capability::ImageBuffer, // 93 - spv::Capability::ShaderNonUniform, // 94 + spv::Capability::BFloat16TypeKHR, // 89 + spv::Capability::BFloat16TypeKHR, // 90 + spv::Capability::CooperativeMatrixKHR, // 91 + spv::Capability::MultiViewport, // 92 + spv::Capability::ShaderViewportIndexLayerEXT, // 93 + spv::Capability::ShaderViewportMaskNV, // 94 spv::Capability::InputAttachment, // 95 - spv::Capability::ShaderNonUniform, // 96 - spv::Capability::SampledBuffer, // 97 - spv::Capability::ShaderNonUniform, // 98 - spv::Capability::ImageBuffer, // 99 - spv::Capability::ShaderNonUniform, // 100 - spv::Capability::VectorAnyINTEL, // 101 - spv::Capability::Int8, // 102 - spv::Capability::FPGAClusterAttributesINTEL, // 103 - spv::Capability::FPGAKernelAttributesINTEL, // 104 - spv::Capability::Subgroup2DBlockIOINTEL, // 105 - spv::Capability::Shader, // 106 - spv::Capability::Kernel, // 107 - spv::Capability::Shader, // 108 - spv::Capability::UniformDecoration, // 109 - spv::Capability::GeometryStreams, // 110 - spv::Capability::TransformFeedback, // 111 - spv::Capability::Kernel, // 112 - spv::Capability::FloatControls2, // 113 - spv::Capability::Linkage, // 114 - spv::Capability::Float8EXT, // 115 - spv::Capability::SampleMaskOverrideCoverageNV, // 116 - spv::Capability::GeometryShaderPassthroughNV, // 117 - spv::Capability::MeshShadingNV, // 118 - spv::Capability::MeshShadingEXT, // 119 - spv::Capability::ShaderInvocationReorderNV, // 120 - spv::Capability::BindlessTextureNV, // 121 - spv::Capability::VectorComputeINTEL, // 122 - spv::Capability::IndirectReferencesINTEL, // 123 - spv::Capability::AsmINTEL, // 124 - spv::Capability::FunctionFloatControlINTEL, // 125 - spv::Capability::FPGAMemoryAttributesINTEL, // 126 - spv::Capability::FPGAMemoryAccessesINTEL, // 127 - spv::Capability::LoopFuseINTEL, // 128 - spv::Capability::FPGADSPControlINTEL, // 129 - spv::Capability::MemoryAccessAliasingINTEL, // 130 - spv::Capability::FPGAInvocationPipeliningAttributesINTEL, // 131 - spv::Capability::FPGABufferLocationINTEL, // 132 - spv::Capability::IOPipesINTEL, // 133 - spv::Capability::FPGAClusterAttributesV2INTEL, // 134 - spv::Capability::FPMaxErrorINTEL, // 135 - spv::Capability::FPGALatencyControlINTEL, // 136 - spv::Capability::FPGAArgumentInterfacesINTEL, // 137 - spv::Capability::GlobalVariableHostAccessINTEL, // 138 - spv::Capability::GlobalVariableFPGADecorationsINTEL, // 139 - spv::Capability::CacheControlsINTEL, // 140 - spv::Capability::TileImageColorReadAccessEXT, // 141 - spv::Capability::Geometry, // 142 - spv::Capability::Tessellation, // 143 - spv::Capability::MeshShadingNV, // 144 - spv::Capability::MeshShadingEXT, // 145 - spv::Capability::Geometry, // 146 - spv::Capability::MeshShadingNV, // 147 - spv::Capability::MeshShadingEXT, // 148 - spv::Capability::SubgroupDispatch, // 149 - spv::Capability::TileImageDepthReadAccessEXT, // 150 - spv::Capability::TileImageStencilReadAccessEXT, // 151 - spv::Capability::SampleMaskPostDepthCoverage, // 152 - spv::Capability::DenormPreserve, // 153 - spv::Capability::DenormFlushToZero, // 154 - spv::Capability::SignedZeroInfNanPreserve, // 155 - spv::Capability::RoundingModeRTE, // 156 - spv::Capability::RoundingModeRTZ, // 157 - spv::Capability::QuadControlKHR, // 158 - spv::Capability::ComputeDerivativeGroupQuadsNV, // 159 - spv::Capability::ComputeDerivativeGroupQuadsKHR, // 160 - spv::Capability::ComputeDerivativeGroupLinearNV, // 161 - spv::Capability::ComputeDerivativeGroupLinearKHR, // 162 - spv::Capability::FragmentShaderPixelInterlockEXT, // 163 - spv::Capability::FragmentShaderSampleInterlockEXT, // 164 - spv::Capability::FragmentShaderShadingRateInterlockEXT, // 165 - spv::Capability::RoundToInfinityINTEL, // 166 - spv::Capability::KernelAttributesINTEL, // 167 - spv::Capability::FloatControls2, // 168 - spv::Capability::FPGAKernelAttributesv2INTEL, // 169 - spv::Capability::RegisterLimitsINTEL, // 170 - spv::Capability::FloatControls2, // 171 - spv::Capability::FPFastMathModeINTEL, // 172 - spv::Capability::OptNoneEXT, // 173 - spv::Capability::RuntimeAlignedAttributeINTEL, // 174 - spv::Capability::Kernel, // 175 - spv::Capability::GroupNonUniformArithmetic, // 176 - spv::Capability::GroupNonUniformBallot, // 177 - spv::Capability::GroupNonUniformClustered, // 178 - spv::Capability::GroupNonUniformPartitionedNV, // 179 - spv::Capability::ImageGatherExtended, // 180 - spv::Capability::MinLod, // 181 - spv::Capability::VulkanMemoryModel, // 182 - spv::Capability::FPGALoopControlsINTEL, // 183 - spv::Capability::ArbitraryPrecisionFixedPointINTEL, // 184 - spv::Capability::RawAccessChainsNV, // 185 - spv::Capability::RayTraversalPrimitiveCullingKHR, // 186 - spv::Capability::RayTracingOpacityMicromapEXT, // 187 - spv::Capability::RayQueryKHR, // 188 - spv::Capability::StorageImageExtendedFormats, // 189 - spv::Capability::Int64ImageEXT, // 190 - spv::Capability::Shader, // 191 - spv::Capability::VectorComputeINTEL, // 192 - spv::Capability::GenericPointer, // 193 - spv::Capability::FunctionPointersINTEL, // 194 - spv::Capability::USMStorageClassesINTEL, // 195 - spv::Capability::CooperativeMatrixTensorAddressingNV, // 196 - spv::Capability::CooperativeMatrixBlockLoadsNV, // 197 - spv::Capability::TensorsARM, // 198 - spv::Capability::Addresses, // 199 - spv::Capability::PhysicalStorageBufferAddresses, // 200 - spv::Capability::LiteralSampler, // 201 - spv::Capability::Addresses, // 202 - spv::Capability::UntypedPointersKHR, // 203 - spv::Capability::Addresses, // 204 - spv::Capability::VariablePointers, // 205 - spv::Capability::VariablePointersStorageBuffer, // 206 - spv::Capability::PhysicalStorageBufferAddresses, // 207 - spv::Capability::Kernel, // 208 - spv::Capability::ImageQuery, // 209 - spv::Capability::ImageQuery, // 210 - spv::Capability::Shader, // 211 - spv::Capability::BitInstructions, // 212 - spv::Capability::DerivativeControl, // 213 - spv::Capability::Groups, // 214 - spv::Capability::SparseResidency, // 215 - spv::Capability::PipeStorage, // 216 - spv::Capability::NamedBarrier, // 217 - spv::Capability::GroupNonUniformVote, // 218 - spv::Capability::GroupNonUniformBallot, // 219 - spv::Capability::GroupNonUniformShuffle, // 220 - spv::Capability::GroupNonUniformShuffleRelative, // 221 - spv::Capability::GroupNonUniformArithmetic, // 222 - spv::Capability::GroupNonUniformClustered, // 223 - spv::Capability::GroupNonUniformPartitionedNV, // 224 - spv::Capability::GroupNonUniformQuad, // 225 - spv::Capability::Addresses, // 226 - spv::Capability::VariablePointers, // 227 - spv::Capability::VariablePointersStorageBuffer, // 228 - spv::Capability::UntypedPointersKHR, // 229 - spv::Capability::SubgroupBallotKHR, // 230 - spv::Capability::SubgroupVoteKHR, // 231 - spv::Capability::GroupNonUniformRotateKHR, // 232 - spv::Capability::RayTracingKHR, // 233 - spv::Capability::RayQueryKHR, // 234 - spv::Capability::DotProduct, // 235 - spv::Capability::CooperativeMatrixKHR, // 236 - spv::Capability::ReplicatedCompositesEXT, // 237 - spv::Capability::TextureSampleWeightedQCOM, // 238 - spv::Capability::TextureBoxFilterQCOM, // 239 - spv::Capability::TextureBlockMatchQCOM, // 240 - spv::Capability::TextureBlockMatch2QCOM, // 241 - spv::Capability::FragmentMaskAMD, // 242 - spv::Capability::ShaderClockKHR, // 243 - spv::Capability::ShaderInvocationReorderNV, // 244 - spv::Capability::RayTracingMotionBlurNV, // 245 - spv::Capability::ImageFootprintNV, // 246 - spv::Capability::CooperativeVectorNV, // 247 - spv::Capability::CooperativeVectorTrainingNV, // 248 - spv::Capability::CooperativeMatrixConversionsNV, // 249 - spv::Capability::DisplacementMicromapNV, // 250 - spv::Capability::RayQueryPositionFetchKHR, // 251 - spv::Capability::RayTracingNV, // 252 - spv::Capability::RayTracingKHR, // 253 - spv::Capability::RayQueryKHR, // 254 + spv::Capability::ImageBuffer, // 96 + spv::Capability::ShaderNonUniform, // 97 + spv::Capability::InputAttachment, // 98 + spv::Capability::ShaderNonUniform, // 99 + spv::Capability::SampledBuffer, // 100 + spv::Capability::ShaderNonUniform, // 101 + spv::Capability::ImageBuffer, // 102 + spv::Capability::ShaderNonUniform, // 103 + spv::Capability::VectorAnyINTEL, // 104 + spv::Capability::Int8, // 105 + spv::Capability::FPGAClusterAttributesINTEL, // 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::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::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::SubgroupVoteKHR, // 236 + spv::Capability::GroupNonUniformRotateKHR, // 237 + spv::Capability::RayTracingKHR, // 238 + spv::Capability::RayQueryKHR, // 239 + spv::Capability::DotProduct, // 240 + spv::Capability::ReplicatedCompositesEXT, // 241 + spv::Capability::TextureSampleWeightedQCOM, // 242 + spv::Capability::TextureBoxFilterQCOM, // 243 + spv::Capability::TextureBlockMatchQCOM, // 244 + spv::Capability::CooperativeMatrixConversionQCOM, // 245 + spv::Capability::TextureBlockMatch2QCOM, // 246 + spv::Capability::FragmentMaskAMD, // 247 + spv::Capability::ShaderClockKHR, // 248 + spv::Capability::ShaderInvocationReorderNV, // 249 + spv::Capability::RayTracingMotionBlurNV, // 250 + spv::Capability::ImageFootprintNV, // 251 + spv::Capability::CooperativeVectorNV, // 252 + spv::Capability::CooperativeVectorTrainingNV, // 253 + spv::Capability::CooperativeMatrixConversionsNV, // 254 spv::Capability::DisplacementMicromapNV, // 255 - spv::Capability::CooperativeMatrixNV, // 256 - spv::Capability::FragmentShaderSampleInterlockEXT, // 257 - spv::Capability::FragmentShaderPixelInterlockEXT, // 258 - spv::Capability::FragmentShaderShadingRateInterlockEXT, // 259 - spv::Capability::CooperativeMatrixReductionsNV, // 260 - spv::Capability::CooperativeMatrixPerElementOperationsNV, // 261 - spv::Capability::TensorAddressingNV, // 262 - spv::Capability::DemoteToHelperInvocation, // 263 - spv::Capability::SubgroupShuffleINTEL, // 264 - spv::Capability::SubgroupBufferBlockIOINTEL, // 265 - spv::Capability::SubgroupImageBlockIOINTEL, // 266 - spv::Capability::SubgroupImageMediaBlockIOINTEL, // 267 - spv::Capability::IntegerFunctions2INTEL, // 268 - spv::Capability::AtomicFloat16MinMaxEXT, // 269 - spv::Capability::AtomicFloat32MinMaxEXT, // 270 - spv::Capability::AtomicFloat64MinMaxEXT, // 271 - spv::Capability::AtomicFloat16VectorNV, // 272 - spv::Capability::ExpectAssumeKHR, // 273 - spv::Capability::SubgroupAvcMotionEstimationINTEL, // 274 - spv::Capability::SubgroupAvcMotionEstimationINTEL, // 275 - spv::Capability::SubgroupAvcMotionEstimationIntraINTEL, // 276 - spv::Capability::SubgroupAvcMotionEstimationINTEL, // 277 - spv::Capability::SubgroupAvcMotionEstimationChromaINTEL, // 278 - spv::Capability::VariableLengthArrayINTEL, // 279 - spv::Capability::ArbitraryPrecisionFloatingPointINTEL, // 280 - spv::Capability::UnstructuredLoopControlsINTEL, // 281 - spv::Capability::BlockingPipesINTEL, // 282 - spv::Capability::FPGARegINTEL, // 283 - spv::Capability::AtomicFloat16AddEXT, // 284 - spv::Capability::AtomicFloat32AddEXT, // 285 - spv::Capability::AtomicFloat64AddEXT, // 286 - spv::Capability::AtomicFloat16VectorNV, // 287 - spv::Capability::LongCompositesINTEL, // 288 - spv::Capability::BFloat16ConversionINTEL, // 289 - spv::Capability::SplitBarrierINTEL, // 290 - spv::Capability::ArithmeticFenceEXT, // 291 - spv::Capability::TaskSequenceINTEL, // 292 - spv::Capability::SubgroupBufferPrefetchINTEL, // 293 - spv::Capability::Subgroup2DBlockTransformINTEL, // 294 - spv::Capability::Subgroup2DBlockTransposeINTEL, // 295 - spv::Capability::SubgroupMatrixMultiplyAccumulateINTEL, // 296 - spv::Capability::TernaryBitwiseFunctionINTEL, // 297 - spv::Capability::GroupUniformArithmeticKHR, // 298 - spv::Capability::TensorFloat32RoundingINTEL, // 299 - spv::Capability::MaskedGatherScatterINTEL, // 300 - spv::Capability::BindlessImagesINTEL, // 301 - spv::Capability::Float64, // 302 - spv::Capability::InterpolationFunction, // 303 + spv::Capability::RayQueryPositionFetchKHR, // 256 + spv::Capability::RayTracingNV, // 257 + spv::Capability::RayTracingKHR, // 258 + spv::Capability::RayQueryKHR, // 259 + spv::Capability::DisplacementMicromapNV, // 260 + spv::Capability::CooperativeMatrixNV, // 261 + spv::Capability::FragmentShaderSampleInterlockEXT, // 262 + spv::Capability::FragmentShaderPixelInterlockEXT, // 263 + spv::Capability::FragmentShaderShadingRateInterlockEXT, // 264 + spv::Capability::CooperativeMatrixReductionsNV, // 265 + spv::Capability::CooperativeMatrixPerElementOperationsNV, // 266 + spv::Capability::TensorAddressingNV, // 267 + spv::Capability::DemoteToHelperInvocation, // 268 + spv::Capability::SubgroupShuffleINTEL, // 269 + spv::Capability::SubgroupBufferBlockIOINTEL, // 270 + spv::Capability::SubgroupImageBlockIOINTEL, // 271 + spv::Capability::SubgroupImageMediaBlockIOINTEL, // 272 + spv::Capability::IntegerFunctions2INTEL, // 273 + spv::Capability::AtomicFloat16MinMaxEXT, // 274 + spv::Capability::AtomicFloat32MinMaxEXT, // 275 + spv::Capability::AtomicFloat64MinMaxEXT, // 276 + spv::Capability::AtomicFloat16VectorNV, // 277 + spv::Capability::ExpectAssumeKHR, // 278 + spv::Capability::SubgroupAvcMotionEstimationINTEL, // 279 + spv::Capability::SubgroupAvcMotionEstimationINTEL, // 280 + spv::Capability::SubgroupAvcMotionEstimationIntraINTEL, // 281 + spv::Capability::SubgroupAvcMotionEstimationINTEL, // 282 + spv::Capability::SubgroupAvcMotionEstimationChromaINTEL, // 283 + spv::Capability::VariableLengthArrayINTEL, // 284 + spv::Capability::ArbitraryPrecisionFloatingPointINTEL, // 285 + spv::Capability::UnstructuredLoopControlsINTEL, // 286 + spv::Capability::BlockingPipesINTEL, // 287 + spv::Capability::FPGARegINTEL, // 288 + spv::Capability::AtomicFloat16AddEXT, // 289 + spv::Capability::AtomicFloat32AddEXT, // 290 + spv::Capability::AtomicFloat64AddEXT, // 291 + spv::Capability::AtomicFloat16VectorNV, // 292 + spv::Capability::LongCompositesINTEL, // 293 + spv::Capability::BFloat16ConversionINTEL, // 294 + spv::Capability::SplitBarrierINTEL, // 295 + spv::Capability::ArithmeticFenceEXT, // 296 + spv::Capability::TaskSequenceINTEL, // 297 + spv::Capability::SubgroupBufferPrefetchINTEL, // 298 + spv::Capability::Subgroup2DBlockTransformINTEL, // 299 + spv::Capability::Subgroup2DBlockTransposeINTEL, // 300 + spv::Capability::SubgroupMatrixMultiplyAccumulateINTEL, // 301 + spv::Capability::TernaryBitwiseFunctionINTEL, // 302 + spv::Capability::UntypedVariableLengthArrayINTEL, // 303 + spv::Capability::FunctionVariantsINTEL, // 304 + spv::Capability::GroupUniformArithmeticKHR, // 305 + spv::Capability::TensorFloat32RoundingINTEL, // 306 + spv::Capability::MaskedGatherScatterINTEL, // 307 + spv::Capability::BindlessImagesINTEL, // 308 + spv::Capability::Float64, // 309 + spv::Capability::InterpolationFunction, // 310 }; // Array of extensions, referenced by IndexRanges elsewhere. @@ -8518,143 +8616,146 @@ static const spvtools::Extension kExtensionSpans[] = { spvtools::Extension::kSPV_ARM_core_builtins, // 34 spvtools::Extension::kSPV_EXT_shader_tile_image, // 35 spvtools::Extension::kSPV_ARM_tensors, // 36 - spvtools::Extension::kSPV_ARM_cooperative_matrix_layouts, // 37 - spvtools::Extension::kSPV_EXT_float8, // 38 - spvtools::Extension::kSPV_KHR_workgroup_memory_explicit_layout, // 39 - spvtools::Extension::kSPV_KHR_subgroup_vote, // 40 - spvtools::Extension::kSPV_KHR_16bit_storage, // 41 - spvtools::Extension::kSPV_KHR_variable_pointers, // 42 - spvtools::Extension::kSPV_KHR_shader_atomic_counter_ops, // 43 - spvtools::Extension::kSPV_KHR_post_depth_coverage, // 44 - spvtools::Extension::kSPV_KHR_8bit_storage, // 45 - spvtools::Extension::kSPV_KHR_float_controls, // 46 - spvtools::Extension::kSPV_KHR_ray_query, // 47 - spvtools::Extension::kSPV_KHR_untyped_pointers, // 48 - spvtools::Extension::kSPV_KHR_ray_query, // 49 - spvtools::Extension::kSPV_KHR_ray_tracing, // 50 - spvtools::Extension::kSPV_QCOM_image_processing, // 51 - spvtools::Extension::kSPV_QCOM_tile_shading, // 52 - spvtools::Extension::kSPV_QCOM_image_processing2, // 53 - spvtools::Extension::kSPV_AMD_gpu_shader_half_float_fetch, // 54 - spvtools::Extension::kSPV_AMD_texture_gather_bias_lod, // 55 - spvtools::Extension::kSPV_AMD_shader_fragment_mask, // 56 - spvtools::Extension::kSPV_AMD_shader_image_load_store_lod, // 57 - spvtools::Extension::kSPV_EXT_shader_image_int64, // 58 - spvtools::Extension::kSPV_KHR_shader_clock, // 59 - spvtools::Extension::kSPV_AMDX_shader_enqueue, // 60 - spvtools::Extension::kSPV_KHR_quad_control, // 61 - spvtools::Extension::kSPV_INTEL_int4, // 62 - spvtools::Extension::kSPV_KHR_bfloat16, // 63 - spvtools::Extension::kSPV_NV_sample_mask_override_coverage, // 64 - spvtools::Extension::kSPV_NV_geometry_shader_passthrough, // 65 - spvtools::Extension::kSPV_EXT_shader_viewport_index_layer, // 66 - spvtools::Extension::kSPV_NV_viewport_array2, // 67 - spvtools::Extension::kSPV_NV_viewport_array2, // 68 - spvtools::Extension::kSPV_NVX_multiview_per_view_attributes, // 69 - spvtools::Extension::kSPV_NV_shader_image_footprint, // 70 - spvtools::Extension::kSPV_NV_compute_shader_derivatives, // 71 - spvtools::Extension::kSPV_KHR_compute_shader_derivatives, // 72 - spvtools::Extension::kSPV_NV_shader_subgroup_partitioned, // 73 - spvtools::Extension::kSPV_EXT_descriptor_indexing, // 74 - spvtools::Extension::kSPV_KHR_ray_tracing_position_fetch, // 75 - spvtools::Extension::kSPV_KHR_vulkan_memory_model, // 76 - spvtools::Extension::kSPV_NV_cooperative_matrix, // 77 - spvtools::Extension::kSPV_EXT_fragment_shader_interlock, // 78 - spvtools::Extension::kSPV_EXT_demote_to_helper_invocation, // 79 - spvtools::Extension::kSPV_NV_displacement_micromap, // 80 - spvtools::Extension::kSPV_EXT_opacity_micromap, // 81 - spvtools::Extension::kSPV_NV_shader_invocation_reorder, // 82 - spvtools::Extension::kSPV_NV_bindless_texture, // 83 - spvtools::Extension::kSPV_NV_cooperative_vector, // 84 - spvtools::Extension::kSPV_NV_shader_atomic_fp16_vector, // 85 - spvtools::Extension::kSPV_NV_raw_access_chains, // 86 - spvtools::Extension::kSPV_NV_cooperative_matrix2, // 87 - spvtools::Extension::kSPV_NV_tensor_addressing, // 88 - spvtools::Extension::kSPV_INTEL_subgroups, // 89 - spvtools::Extension::kSPV_INTEL_media_block_io, // 90 - spvtools::Extension::kSPV_INTEL_float_controls2, // 91 - spvtools::Extension::kSPV_INTEL_shader_integer_functions2, // 92 - spvtools::Extension::kSPV_INTEL_function_pointers, // 93 - spvtools::Extension::kSPV_INTEL_inline_assembly, // 94 - spvtools::Extension::kSPV_EXT_shader_atomic_float_min_max, // 95 - spvtools::Extension::kSPV_INTEL_vector_compute, // 96 - spvtools::Extension::kSPV_KHR_expect_assume, // 97 - spvtools::Extension::kSPV_INTEL_device_side_avc_motion_estimation, // 98 - spvtools::Extension::kSPV_INTEL_variable_length_array, // 99 - spvtools::Extension::kSPV_INTEL_fpga_memory_attributes, // 100 - spvtools::Extension::kSPV_INTEL_fp_fast_math_mode, // 101 - spvtools::Extension::kSPV_INTEL_arbitrary_precision_integers, // 102 - spvtools::Extension::kSPV_INTEL_arbitrary_precision_floating_point, // 103 - spvtools::Extension::kSPV_INTEL_unstructured_loop_controls, // 104 - spvtools::Extension::kSPV_INTEL_fpga_loop_controls, // 105 - spvtools::Extension::kSPV_INTEL_kernel_attributes, // 106 - spvtools::Extension::kSPV_INTEL_fpga_memory_accesses, // 107 - spvtools::Extension::kSPV_INTEL_fpga_cluster_attributes, // 108 - spvtools::Extension::kSPV_INTEL_loop_fuse, // 109 - spvtools::Extension::kSPV_INTEL_fpga_dsp_control, // 110 - spvtools::Extension::kSPV_INTEL_memory_access_aliasing, // 111 - spvtools::Extension::kSPV_INTEL_fpga_invocation_pipelining_attributes, // 112 - spvtools::Extension::kSPV_INTEL_fpga_buffer_location, // 113 - spvtools::Extension::kSPV_INTEL_arbitrary_precision_fixed_point, // 114 - spvtools::Extension::kSPV_INTEL_usm_storage_classes, // 115 - spvtools::Extension::kSPV_INTEL_runtime_aligned, // 116 - spvtools::Extension::kSPV_INTEL_io_pipes, // 117 - spvtools::Extension::kSPV_INTEL_blocking_pipes, // 118 - spvtools::Extension::kSPV_INTEL_fpga_reg, // 119 - spvtools::Extension::kSPV_KHR_integer_dot_product, // 120 - spvtools::Extension::kSPV_KHR_cooperative_matrix, // 121 - spvtools::Extension::kSPV_EXT_replicated_composites, // 122 - spvtools::Extension::kSPV_KHR_bit_instructions, // 123 - spvtools::Extension::kSPV_KHR_subgroup_rotate, // 124 - spvtools::Extension::kSPV_KHR_float_controls2, // 125 - spvtools::Extension::kSPV_EXT_shader_atomic_float_add, // 126 - spvtools::Extension::kSPV_INTEL_long_composites, // 127 - spvtools::Extension::kSPV_EXT_optnone, // 128 - spvtools::Extension::kSPV_INTEL_optnone, // 129 - spvtools::Extension::kSPV_EXT_shader_atomic_float16_add, // 130 - spvtools::Extension::kSPV_INTEL_debug_module, // 131 - spvtools::Extension::kSPV_INTEL_bfloat16_conversion, // 132 - spvtools::Extension::kSPV_INTEL_split_barrier, // 133 - spvtools::Extension::kSPV_EXT_arithmetic_fence, // 134 - spvtools::Extension::kSPV_INTEL_task_sequence, // 135 - spvtools::Extension::kSPV_INTEL_fp_max_error, // 136 - spvtools::Extension::kSPV_INTEL_fpga_latency_control, // 137 - spvtools::Extension::kSPV_INTEL_fpga_argument_interfaces, // 138 - spvtools::Extension::kSPV_INTEL_global_variable_host_access, // 139 - spvtools::Extension::kSPV_INTEL_global_variable_fpga_decorations, // 140 - spvtools::Extension::kSPV_INTEL_subgroup_buffer_prefetch, // 141 - spvtools::Extension::kSPV_INTEL_2d_block_io, // 142 - spvtools::Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate, // 143 - spvtools::Extension::kSPV_INTEL_ternary_bitwise_function, // 144 - spvtools::Extension::kSPV_KHR_uniform_group_instructions, // 145 - spvtools::Extension::kSPV_INTEL_tensor_float32_conversion, // 146 - spvtools::Extension::kSPV_INTEL_masked_gather_scatter, // 147 - spvtools::Extension::kSPV_INTEL_cache_controls, // 148 - spvtools::Extension::kSPV_INTEL_maximum_registers, // 149 - spvtools::Extension::kSPV_INTEL_bindless_images, // 150 - spvtools::Extension::kSPV_KHR_no_integer_wrap_decoration, // 151 - spvtools::Extension::kSPV_NV_mesh_shader, // 152 - spvtools::Extension::kSPV_EXT_mesh_shader, // 153 - spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 154 - spvtools::Extension::kSPV_GOOGLE_user_type, // 155 - spvtools::Extension::kSPV_KHR_subgroup_uniform_control_flow, // 156 - spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 157 - spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 158 - spvtools::Extension::kSPV_EXT_shader_stencil_export, // 159 - spvtools::Extension::kSPV_KHR_maximal_reconvergence, // 160 - spvtools::Extension::kSPV_KHR_linkonce_odr, // 161 - spvtools::Extension::kSPV_KHR_storage_buffer_storage_class, // 162 - spvtools::Extension::kSPV_KHR_variable_pointers, // 163 - spvtools::Extension::kSPV_KHR_terminate_invocation, // 164 - spvtools::Extension::kSPV_KHR_relaxed_extended_instruction, // 165 - spvtools::Extension::kSPV_KHR_ray_tracing, // 166 - spvtools::Extension::kSPV_KHR_ray_query, // 167 - spvtools::Extension::kSPV_NV_ray_tracing, // 168 + spvtools::Extension::kSPV_ARM_graph, // 37 + spvtools::Extension::kSPV_ARM_cooperative_matrix_layouts, // 38 + spvtools::Extension::kSPV_EXT_float8, // 39 + spvtools::Extension::kSPV_KHR_workgroup_memory_explicit_layout, // 40 + spvtools::Extension::kSPV_KHR_subgroup_vote, // 41 + spvtools::Extension::kSPV_KHR_16bit_storage, // 42 + spvtools::Extension::kSPV_KHR_variable_pointers, // 43 + spvtools::Extension::kSPV_KHR_shader_atomic_counter_ops, // 44 + spvtools::Extension::kSPV_KHR_post_depth_coverage, // 45 + spvtools::Extension::kSPV_KHR_8bit_storage, // 46 + spvtools::Extension::kSPV_KHR_float_controls, // 47 + spvtools::Extension::kSPV_KHR_ray_query, // 48 + spvtools::Extension::kSPV_KHR_untyped_pointers, // 49 + spvtools::Extension::kSPV_KHR_ray_query, // 50 + spvtools::Extension::kSPV_KHR_ray_tracing, // 51 + spvtools::Extension::kSPV_QCOM_image_processing, // 52 + spvtools::Extension::kSPV_QCOM_tile_shading, // 53 + spvtools::Extension::kSPV_QCOM_cooperative_matrix_conversion, // 54 + spvtools::Extension::kSPV_QCOM_image_processing2, // 55 + spvtools::Extension::kSPV_AMD_gpu_shader_half_float_fetch, // 56 + spvtools::Extension::kSPV_AMD_texture_gather_bias_lod, // 57 + spvtools::Extension::kSPV_AMD_shader_fragment_mask, // 58 + spvtools::Extension::kSPV_AMD_shader_image_load_store_lod, // 59 + spvtools::Extension::kSPV_EXT_shader_image_int64, // 60 + spvtools::Extension::kSPV_KHR_shader_clock, // 61 + spvtools::Extension::kSPV_AMDX_shader_enqueue, // 62 + spvtools::Extension::kSPV_KHR_quad_control, // 63 + spvtools::Extension::kSPV_INTEL_int4, // 64 + spvtools::Extension::kSPV_KHR_bfloat16, // 65 + spvtools::Extension::kSPV_NV_sample_mask_override_coverage, // 66 + spvtools::Extension::kSPV_NV_geometry_shader_passthrough, // 67 + spvtools::Extension::kSPV_EXT_shader_viewport_index_layer, // 68 + spvtools::Extension::kSPV_NV_viewport_array2, // 69 + spvtools::Extension::kSPV_NV_viewport_array2, // 70 + spvtools::Extension::kSPV_NVX_multiview_per_view_attributes, // 71 + spvtools::Extension::kSPV_NV_shader_image_footprint, // 72 + spvtools::Extension::kSPV_NV_compute_shader_derivatives, // 73 + spvtools::Extension::kSPV_KHR_compute_shader_derivatives, // 74 + spvtools::Extension::kSPV_NV_shader_subgroup_partitioned, // 75 + spvtools::Extension::kSPV_EXT_descriptor_indexing, // 76 + spvtools::Extension::kSPV_KHR_ray_tracing_position_fetch, // 77 + spvtools::Extension::kSPV_KHR_vulkan_memory_model, // 78 + spvtools::Extension::kSPV_NV_cooperative_matrix, // 79 + spvtools::Extension::kSPV_EXT_fragment_shader_interlock, // 80 + spvtools::Extension::kSPV_EXT_demote_to_helper_invocation, // 81 + 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_EXT_shader_atomic_float_add, // 128 + spvtools::Extension::kSPV_INTEL_long_composites, // 129 + spvtools::Extension::kSPV_EXT_optnone, // 130 + spvtools::Extension::kSPV_INTEL_optnone, // 131 + spvtools::Extension::kSPV_EXT_shader_atomic_float16_add, // 132 + spvtools::Extension::kSPV_INTEL_debug_module, // 133 + spvtools::Extension::kSPV_INTEL_bfloat16_conversion, // 134 + spvtools::Extension::kSPV_INTEL_split_barrier, // 135 + spvtools::Extension::kSPV_EXT_arithmetic_fence, // 136 + spvtools::Extension::kSPV_INTEL_task_sequence, // 137 + spvtools::Extension::kSPV_INTEL_fp_max_error, // 138 + spvtools::Extension::kSPV_INTEL_fpga_latency_control, // 139 + spvtools::Extension::kSPV_INTEL_fpga_argument_interfaces, // 140 + spvtools::Extension::kSPV_INTEL_global_variable_host_access, // 141 + spvtools::Extension::kSPV_INTEL_global_variable_fpga_decorations, // 142 + spvtools::Extension::kSPV_INTEL_subgroup_buffer_prefetch, // 143 + spvtools::Extension::kSPV_INTEL_2d_block_io, // 144 + spvtools::Extension::kSPV_INTEL_subgroup_matrix_multiply_accumulate, // 145 + spvtools::Extension::kSPV_INTEL_ternary_bitwise_function, // 146 + spvtools::Extension::kSPV_INTEL_function_variants, // 147 + spvtools::Extension::kSPV_KHR_uniform_group_instructions, // 148 + spvtools::Extension::kSPV_INTEL_tensor_float32_conversion, // 149 + spvtools::Extension::kSPV_INTEL_masked_gather_scatter, // 150 + spvtools::Extension::kSPV_INTEL_cache_controls, // 151 + spvtools::Extension::kSPV_INTEL_maximum_registers, // 152 + spvtools::Extension::kSPV_INTEL_bindless_images, // 153 + spvtools::Extension::kSPV_KHR_no_integer_wrap_decoration, // 154 + spvtools::Extension::kSPV_NV_mesh_shader, // 155 + spvtools::Extension::kSPV_EXT_mesh_shader, // 156 + spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 157 + spvtools::Extension::kSPV_GOOGLE_user_type, // 158 + spvtools::Extension::kSPV_KHR_subgroup_uniform_control_flow, // 159 + spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 160 + spvtools::Extension::kSPV_AMD_shader_early_and_late_fragment_tests, // 161 + spvtools::Extension::kSPV_EXT_shader_stencil_export, // 162 + spvtools::Extension::kSPV_KHR_maximal_reconvergence, // 163 + spvtools::Extension::kSPV_KHR_linkonce_odr, // 164 + spvtools::Extension::kSPV_KHR_storage_buffer_storage_class, // 165 + spvtools::Extension::kSPV_KHR_variable_pointers, // 166 + spvtools::Extension::kSPV_KHR_terminate_invocation, // 167 + spvtools::Extension::kSPV_KHR_relaxed_extended_instruction, // 168 spvtools::Extension::kSPV_KHR_ray_tracing, // 169 spvtools::Extension::kSPV_KHR_ray_query, // 170 - spvtools::Extension::kSPV_NV_displacement_micromap, // 171 - spvtools::Extension::kSPV_GOOGLE_decorate_string, // 172 - spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 173 + spvtools::Extension::kSPV_NV_ray_tracing, // 171 + spvtools::Extension::kSPV_KHR_ray_tracing, // 172 + spvtools::Extension::kSPV_KHR_ray_query, // 173 + spvtools::Extension::kSPV_NV_displacement_micromap, // 174 + spvtools::Extension::kSPV_GOOGLE_decorate_string, // 175 + spvtools::Extension::kSPV_GOOGLE_hlsl_functionality1, // 176 }; // Array of operand types, referenced by IndexRanges elsewhere. @@ -9029,108 +9130,108 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 366 SPV_OPERAND_TYPE_ID, // 367 SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS, // 368 - SPV_OPERAND_TYPE_RESULT_ID, // 369 - SPV_OPERAND_TYPE_STORAGE_CLASS, // 370 - SPV_OPERAND_TYPE_TYPE_ID, // 371 - SPV_OPERAND_TYPE_RESULT_ID, // 372 - SPV_OPERAND_TYPE_STORAGE_CLASS, // 373 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 374 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 375 - SPV_OPERAND_TYPE_TYPE_ID, // 376 - SPV_OPERAND_TYPE_RESULT_ID, // 377 - SPV_OPERAND_TYPE_ID, // 378 - SPV_OPERAND_TYPE_ID, // 379 - SPV_OPERAND_TYPE_ID, // 380 - SPV_OPERAND_TYPE_VARIABLE_ID, // 381 - SPV_OPERAND_TYPE_TYPE_ID, // 382 - SPV_OPERAND_TYPE_RESULT_ID, // 383 - SPV_OPERAND_TYPE_ID, // 384 - SPV_OPERAND_TYPE_ID, // 385 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 386 - SPV_OPERAND_TYPE_ID, // 387 - SPV_OPERAND_TYPE_ID, // 388 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 389 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 390 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 391 - SPV_OPERAND_TYPE_TYPE_ID, // 392 - SPV_OPERAND_TYPE_RESULT_ID, // 393 - SPV_OPERAND_TYPE_SCOPE_ID, // 394 - SPV_OPERAND_TYPE_ID, // 395 + SPV_OPERAND_TYPE_TYPE_ID, // 369 + SPV_OPERAND_TYPE_RESULT_ID, // 370 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 371 + SPV_OPERAND_TYPE_ID, // 372 + SPV_OPERAND_TYPE_LITERAL_STRING, // 373 + SPV_OPERAND_TYPE_VARIABLE_ID, // 374 + SPV_OPERAND_TYPE_ID, // 375 + SPV_OPERAND_TYPE_ID, // 376 + SPV_OPERAND_TYPE_VARIABLE_ID, // 377 + SPV_OPERAND_TYPE_RESULT_ID, // 378 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 379 + SPV_OPERAND_TYPE_VARIABLE_ID, // 380 + SPV_OPERAND_TYPE_RESULT_ID, // 381 + SPV_OPERAND_TYPE_STORAGE_CLASS, // 382 + SPV_OPERAND_TYPE_TYPE_ID, // 383 + SPV_OPERAND_TYPE_RESULT_ID, // 384 + SPV_OPERAND_TYPE_STORAGE_CLASS, // 385 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 386 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 387 + SPV_OPERAND_TYPE_TYPE_ID, // 388 + SPV_OPERAND_TYPE_RESULT_ID, // 389 + SPV_OPERAND_TYPE_ID, // 390 + SPV_OPERAND_TYPE_ID, // 391 + SPV_OPERAND_TYPE_ID, // 392 + SPV_OPERAND_TYPE_VARIABLE_ID, // 393 + SPV_OPERAND_TYPE_TYPE_ID, // 394 + SPV_OPERAND_TYPE_RESULT_ID, // 395 SPV_OPERAND_TYPE_ID, // 396 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 397 - SPV_OPERAND_TYPE_TYPE_ID, // 398 - SPV_OPERAND_TYPE_RESULT_ID, // 399 + SPV_OPERAND_TYPE_ID, // 397 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 398 + SPV_OPERAND_TYPE_ID, // 399 SPV_OPERAND_TYPE_ID, // 400 - SPV_OPERAND_TYPE_EXTENSION_INSTRUCTION_NUMBER, // 401 - SPV_OPERAND_TYPE_VARIABLE_ID, // 402 - SPV_OPERAND_TYPE_ID, // 403 - SPV_OPERAND_TYPE_ID, // 404 - SPV_OPERAND_TYPE_ID, // 405 - SPV_OPERAND_TYPE_ID, // 406 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 401 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 402 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 403 + SPV_OPERAND_TYPE_TYPE_ID, // 404 + SPV_OPERAND_TYPE_RESULT_ID, // 405 + SPV_OPERAND_TYPE_SCOPE_ID, // 406 SPV_OPERAND_TYPE_ID, // 407 SPV_OPERAND_TYPE_ID, // 408 - SPV_OPERAND_TYPE_ID, // 409 - SPV_OPERAND_TYPE_ID, // 410 - SPV_OPERAND_TYPE_ID, // 411 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 409 + SPV_OPERAND_TYPE_TYPE_ID, // 410 + SPV_OPERAND_TYPE_RESULT_ID, // 411 SPV_OPERAND_TYPE_ID, // 412 - SPV_OPERAND_TYPE_ID, // 413 - SPV_OPERAND_TYPE_TYPE_ID, // 414 - SPV_OPERAND_TYPE_RESULT_ID, // 415 - SPV_OPERAND_TYPE_ID, // 416 + SPV_OPERAND_TYPE_EXTENSION_INSTRUCTION_NUMBER, // 413 + SPV_OPERAND_TYPE_VARIABLE_ID, // 414 + SPV_OPERAND_TYPE_TYPE_ID, // 415 + SPV_OPERAND_TYPE_RESULT_ID, // 416 SPV_OPERAND_TYPE_ID, // 417 - SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT, // 418 - SPV_OPERAND_TYPE_TYPE_ID, // 419 - SPV_OPERAND_TYPE_RESULT_ID, // 420 + SPV_OPERAND_TYPE_ID, // 418 + SPV_OPERAND_TYPE_ID, // 419 + SPV_OPERAND_TYPE_ID, // 420 SPV_OPERAND_TYPE_ID, // 421 SPV_OPERAND_TYPE_ID, // 422 SPV_OPERAND_TYPE_ID, // 423 - SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT, // 424 - SPV_OPERAND_TYPE_RESULT_ID, // 425 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 424 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 425 SPV_OPERAND_TYPE_ID, // 426 - SPV_OPERAND_TYPE_SCOPE_ID, // 427 + SPV_OPERAND_TYPE_ID, // 427 SPV_OPERAND_TYPE_ID, // 428 SPV_OPERAND_TYPE_ID, // 429 SPV_OPERAND_TYPE_ID, // 430 - SPV_OPERAND_TYPE_TYPE_ID, // 431 - SPV_OPERAND_TYPE_RESULT_ID, // 432 + SPV_OPERAND_TYPE_ID, // 431 + SPV_OPERAND_TYPE_ID, // 432 SPV_OPERAND_TYPE_ID, // 433 SPV_OPERAND_TYPE_ID, // 434 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 435 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 436 - SPV_OPERAND_TYPE_ID, // 437 - SPV_OPERAND_TYPE_ID, // 438 + SPV_OPERAND_TYPE_ID, // 435 + SPV_OPERAND_TYPE_ID, // 436 + SPV_OPERAND_TYPE_TYPE_ID, // 437 + SPV_OPERAND_TYPE_RESULT_ID, // 438 SPV_OPERAND_TYPE_ID, // 439 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 440 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 441 + SPV_OPERAND_TYPE_ID, // 440 + SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT, // 441 SPV_OPERAND_TYPE_TYPE_ID, // 442 SPV_OPERAND_TYPE_RESULT_ID, // 443 SPV_OPERAND_TYPE_ID, // 444 SPV_OPERAND_TYPE_ID, // 445 SPV_OPERAND_TYPE_ID, // 446 - SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS, // 447 - SPV_OPERAND_TYPE_ID, // 448 + SPV_OPERAND_TYPE_OPTIONAL_PACKED_VECTOR_FORMAT, // 447 + SPV_OPERAND_TYPE_RESULT_ID, // 448 SPV_OPERAND_TYPE_ID, // 449 - SPV_OPERAND_TYPE_ID, // 450 + SPV_OPERAND_TYPE_SCOPE_ID, // 450 SPV_OPERAND_TYPE_ID, // 451 SPV_OPERAND_TYPE_ID, // 452 SPV_OPERAND_TYPE_ID, // 453 - SPV_OPERAND_TYPE_ID, // 454 - SPV_OPERAND_TYPE_ID, // 455 + SPV_OPERAND_TYPE_TYPE_ID, // 454 + SPV_OPERAND_TYPE_RESULT_ID, // 455 SPV_OPERAND_TYPE_ID, // 456 SPV_OPERAND_TYPE_ID, // 457 - SPV_OPERAND_TYPE_ID, // 458 - SPV_OPERAND_TYPE_ID, // 459 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 458 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 459 SPV_OPERAND_TYPE_ID, // 460 SPV_OPERAND_TYPE_ID, // 461 SPV_OPERAND_TYPE_ID, // 462 - SPV_OPERAND_TYPE_ID, // 463 - SPV_OPERAND_TYPE_ID, // 464 - SPV_OPERAND_TYPE_ID, // 465 - SPV_OPERAND_TYPE_ID, // 466 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 463 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 464 + SPV_OPERAND_TYPE_TYPE_ID, // 465 + SPV_OPERAND_TYPE_RESULT_ID, // 466 SPV_OPERAND_TYPE_ID, // 467 SPV_OPERAND_TYPE_ID, // 468 SPV_OPERAND_TYPE_ID, // 469 - SPV_OPERAND_TYPE_ID, // 470 + SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS, // 470 SPV_OPERAND_TYPE_ID, // 471 SPV_OPERAND_TYPE_ID, // 472 SPV_OPERAND_TYPE_ID, // 473 @@ -9169,17 +9270,17 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 506 SPV_OPERAND_TYPE_ID, // 507 SPV_OPERAND_TYPE_ID, // 508 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 509 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 510 - SPV_OPERAND_TYPE_TYPE_ID, // 511 - SPV_OPERAND_TYPE_RESULT_ID, // 512 + SPV_OPERAND_TYPE_ID, // 509 + SPV_OPERAND_TYPE_ID, // 510 + SPV_OPERAND_TYPE_ID, // 511 + SPV_OPERAND_TYPE_ID, // 512 SPV_OPERAND_TYPE_ID, // 513 SPV_OPERAND_TYPE_ID, // 514 SPV_OPERAND_TYPE_ID, // 515 SPV_OPERAND_TYPE_ID, // 516 - SPV_OPERAND_TYPE_OPTIONAL_IMAGE, // 517 - SPV_OPERAND_TYPE_TYPE_ID, // 518 - SPV_OPERAND_TYPE_RESULT_ID, // 519 + SPV_OPERAND_TYPE_ID, // 517 + SPV_OPERAND_TYPE_ID, // 518 + SPV_OPERAND_TYPE_ID, // 519 SPV_OPERAND_TYPE_ID, // 520 SPV_OPERAND_TYPE_ID, // 521 SPV_OPERAND_TYPE_ID, // 522 @@ -9189,20 +9290,20 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 526 SPV_OPERAND_TYPE_ID, // 527 SPV_OPERAND_TYPE_ID, // 528 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 529 - SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS, // 530 + SPV_OPERAND_TYPE_ID, // 529 + SPV_OPERAND_TYPE_ID, // 530 SPV_OPERAND_TYPE_ID, // 531 - SPV_OPERAND_TYPE_ID, // 532 - SPV_OPERAND_TYPE_ID, // 533 - SPV_OPERAND_TYPE_ID, // 534 - SPV_OPERAND_TYPE_ID, // 535 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 532 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 533 + SPV_OPERAND_TYPE_TYPE_ID, // 534 + SPV_OPERAND_TYPE_RESULT_ID, // 535 SPV_OPERAND_TYPE_ID, // 536 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 537 - SPV_OPERAND_TYPE_TYPE_ID, // 538 - SPV_OPERAND_TYPE_RESULT_ID, // 539 - SPV_OPERAND_TYPE_ID, // 540 - SPV_OPERAND_TYPE_ID, // 541 - SPV_OPERAND_TYPE_ID, // 542 + SPV_OPERAND_TYPE_ID, // 537 + SPV_OPERAND_TYPE_ID, // 538 + SPV_OPERAND_TYPE_ID, // 539 + SPV_OPERAND_TYPE_OPTIONAL_IMAGE, // 540 + SPV_OPERAND_TYPE_TYPE_ID, // 541 + SPV_OPERAND_TYPE_RESULT_ID, // 542 SPV_OPERAND_TYPE_ID, // 543 SPV_OPERAND_TYPE_ID, // 544 SPV_OPERAND_TYPE_ID, // 545 @@ -9217,96 +9318,96 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 554 SPV_OPERAND_TYPE_ID, // 555 SPV_OPERAND_TYPE_ID, // 556 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 557 - SPV_OPERAND_TYPE_TYPE_ID, // 558 - SPV_OPERAND_TYPE_RESULT_ID, // 559 - SPV_OPERAND_TYPE_ID, // 560 - SPV_OPERAND_TYPE_ID, // 561 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 562 + SPV_OPERAND_TYPE_ID, // 557 + SPV_OPERAND_TYPE_ID, // 558 + SPV_OPERAND_TYPE_ID, // 559 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 560 + SPV_OPERAND_TYPE_TYPE_ID, // 561 + SPV_OPERAND_TYPE_RESULT_ID, // 562 SPV_OPERAND_TYPE_ID, // 563 SPV_OPERAND_TYPE_ID, // 564 SPV_OPERAND_TYPE_ID, // 565 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 566 - SPV_OPERAND_TYPE_RESULT_ID, // 567 + SPV_OPERAND_TYPE_ID, // 566 + SPV_OPERAND_TYPE_ID, // 567 SPV_OPERAND_TYPE_ID, // 568 - SPV_OPERAND_TYPE_SCOPE_ID, // 569 + SPV_OPERAND_TYPE_ID, // 569 SPV_OPERAND_TYPE_ID, // 570 SPV_OPERAND_TYPE_ID, // 571 - SPV_OPERAND_TYPE_TYPE_ID, // 572 - SPV_OPERAND_TYPE_RESULT_ID, // 573 + SPV_OPERAND_TYPE_ID, // 572 + SPV_OPERAND_TYPE_ID, // 573 SPV_OPERAND_TYPE_ID, // 574 - SPV_OPERAND_TYPE_ID, // 575 - SPV_OPERAND_TYPE_ID, // 576 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 577 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 575 + SPV_OPERAND_TYPE_OPTIONAL_COOPERATIVE_MATRIX_OPERANDS, // 576 + SPV_OPERAND_TYPE_ID, // 577 SPV_OPERAND_TYPE_ID, // 578 SPV_OPERAND_TYPE_ID, // 579 - SPV_OPERAND_TYPE_ID, // 580 - SPV_OPERAND_TYPE_ID, // 581 - SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 582 - SPV_OPERAND_TYPE_TYPE_ID, // 583 - SPV_OPERAND_TYPE_RESULT_ID, // 584 - SPV_OPERAND_TYPE_ID, // 585 - SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE, // 586 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 580 + SPV_OPERAND_TYPE_TYPE_ID, // 581 + SPV_OPERAND_TYPE_RESULT_ID, // 582 + SPV_OPERAND_TYPE_ID, // 583 + SPV_OPERAND_TYPE_ID, // 584 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 585 + SPV_OPERAND_TYPE_ID, // 586 SPV_OPERAND_TYPE_ID, // 587 - SPV_OPERAND_TYPE_TYPE_ID, // 588 - SPV_OPERAND_TYPE_RESULT_ID, // 589 - SPV_OPERAND_TYPE_ID, // 590 + SPV_OPERAND_TYPE_ID, // 588 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 589 + SPV_OPERAND_TYPE_RESULT_ID, // 590 SPV_OPERAND_TYPE_ID, // 591 - SPV_OPERAND_TYPE_ID, // 592 - SPV_OPERAND_TYPE_MEMORY_ACCESS, // 593 - SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 594 - SPV_OPERAND_TYPE_ID, // 595 - SPV_OPERAND_TYPE_ID, // 596 + SPV_OPERAND_TYPE_SCOPE_ID, // 592 + SPV_OPERAND_TYPE_ID, // 593 + SPV_OPERAND_TYPE_ID, // 594 + SPV_OPERAND_TYPE_TYPE_ID, // 595 + SPV_OPERAND_TYPE_RESULT_ID, // 596 SPV_OPERAND_TYPE_ID, // 597 - SPV_OPERAND_TYPE_MEMORY_ACCESS, // 598 - SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 599 - SPV_OPERAND_TYPE_RESULT_ID, // 600 + SPV_OPERAND_TYPE_ID, // 598 + SPV_OPERAND_TYPE_ID, // 599 + SPV_OPERAND_TYPE_OPTIONAL_MEMORY_ACCESS, // 600 SPV_OPERAND_TYPE_ID, // 601 SPV_OPERAND_TYPE_ID, // 602 - SPV_OPERAND_TYPE_VARIABLE_ID, // 603 - SPV_OPERAND_TYPE_TYPE_ID, // 604 - SPV_OPERAND_TYPE_RESULT_ID, // 605 - SPV_OPERAND_TYPE_ID, // 606 - SPV_OPERAND_TYPE_ID, // 607 + 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, // 608 - SPV_OPERAND_TYPE_ID, // 609 - SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS, // 610 - SPV_OPERAND_TYPE_ID, // 611 - SPV_OPERAND_TYPE_ID, // 612 + SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_REDUCE, // 609 + SPV_OPERAND_TYPE_ID, // 610 + SPV_OPERAND_TYPE_TYPE_ID, // 611 + SPV_OPERAND_TYPE_RESULT_ID, // 612 SPV_OPERAND_TYPE_ID, // 613 SPV_OPERAND_TYPE_ID, // 614 SPV_OPERAND_TYPE_ID, // 615 - SPV_OPERAND_TYPE_TYPE_ID, // 616 - SPV_OPERAND_TYPE_RESULT_ID, // 617 + SPV_OPERAND_TYPE_MEMORY_ACCESS, // 616 + SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 617 SPV_OPERAND_TYPE_ID, // 618 SPV_OPERAND_TYPE_ID, // 619 - SPV_OPERAND_TYPE_LITERAL_STRING, // 620 - SPV_OPERAND_TYPE_LITERAL_STRING, // 621 - SPV_OPERAND_TYPE_TYPE_ID, // 622 + SPV_OPERAND_TYPE_ID, // 620 + SPV_OPERAND_TYPE_MEMORY_ACCESS, // 621 + SPV_OPERAND_TYPE_TENSOR_ADDRESSING_OPERANDS, // 622 SPV_OPERAND_TYPE_RESULT_ID, // 623 SPV_OPERAND_TYPE_ID, // 624 SPV_OPERAND_TYPE_ID, // 625 - SPV_OPERAND_TYPE_ID, // 626 - SPV_OPERAND_TYPE_ID, // 627 - SPV_OPERAND_TYPE_ID, // 628 + 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_ID, // 630 - SPV_OPERAND_TYPE_TYPE_ID, // 631 - SPV_OPERAND_TYPE_RESULT_ID, // 632 - SPV_OPERAND_TYPE_ID, // 633 + SPV_OPERAND_TYPE_ID, // 631 + SPV_OPERAND_TYPE_ID, // 632 + SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS, // 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_ID, // 639 - SPV_OPERAND_TYPE_ID, // 640 - SPV_OPERAND_TYPE_TYPE_ID, // 641 - SPV_OPERAND_TYPE_RESULT_ID, // 642 - SPV_OPERAND_TYPE_ID, // 643 - SPV_OPERAND_TYPE_ID, // 644 - SPV_OPERAND_TYPE_ID, // 645 - SPV_OPERAND_TYPE_ID, // 646 + 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_ID, // 647 SPV_OPERAND_TYPE_ID, // 648 SPV_OPERAND_TYPE_ID, // 649 @@ -9317,256 +9418,256 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_TYPE_ID, // 654 SPV_OPERAND_TYPE_RESULT_ID, // 655 SPV_OPERAND_TYPE_ID, // 656 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 657 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 658 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 659 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 660 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 661 - SPV_OPERAND_TYPE_TYPE_ID, // 662 - SPV_OPERAND_TYPE_RESULT_ID, // 663 - SPV_OPERAND_TYPE_ID, // 664 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 665 + 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_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_LITERAL_INTEGER, // 667 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 668 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 669 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 670 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 671 - SPV_OPERAND_TYPE_TYPE_ID, // 672 - SPV_OPERAND_TYPE_RESULT_ID, // 673 + 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_ID, // 674 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 675 + SPV_OPERAND_TYPE_ID, // 675 SPV_OPERAND_TYPE_ID, // 676 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 677 + SPV_OPERAND_TYPE_TYPE_ID, // 677 SPV_OPERAND_TYPE_RESULT_ID, // 678 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 679 - SPV_OPERAND_TYPE_RESULT_ID, // 680 - SPV_OPERAND_TYPE_ID, // 681 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 682 - SPV_OPERAND_TYPE_VARIABLE_ID, // 683 - SPV_OPERAND_TYPE_TYPE_ID, // 684 - SPV_OPERAND_TYPE_RESULT_ID, // 685 - SPV_OPERAND_TYPE_ID, // 686 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 687 + 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_INTEGER, // 689 + SPV_OPERAND_TYPE_ID, // 689 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 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_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_ID, // 698 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 698 SPV_OPERAND_TYPE_ID, // 699 - SPV_OPERAND_TYPE_ID, // 700 - SPV_OPERAND_TYPE_ID, // 701 - SPV_OPERAND_TYPE_ID, // 702 - SPV_OPERAND_TYPE_ID, // 703 + 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, // 704 - SPV_OPERAND_TYPE_ID, // 705 - SPV_OPERAND_TYPE_ID, // 706 - SPV_OPERAND_TYPE_ID, // 707 - SPV_OPERAND_TYPE_ID, // 708 + 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, // 709 - SPV_OPERAND_TYPE_TYPE_ID, // 710 - SPV_OPERAND_TYPE_RESULT_ID, // 711 - SPV_OPERAND_TYPE_ID, // 712 - SPV_OPERAND_TYPE_ID, // 713 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 710 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 711 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 712 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 713 SPV_OPERAND_TYPE_ID, // 714 SPV_OPERAND_TYPE_ID, // 715 - SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS, // 716 - SPV_OPERAND_TYPE_TYPE_ID, // 717 - SPV_OPERAND_TYPE_RESULT_ID, // 718 + 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, // 720 + SPV_OPERAND_TYPE_ID, // 720 SPV_OPERAND_TYPE_ID, // 721 SPV_OPERAND_TYPE_ID, // 722 SPV_OPERAND_TYPE_ID, // 723 SPV_OPERAND_TYPE_ID, // 724 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 725 + SPV_OPERAND_TYPE_ID, // 725 SPV_OPERAND_TYPE_ID, // 726 SPV_OPERAND_TYPE_ID, // 727 SPV_OPERAND_TYPE_ID, // 728 - SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 729 + SPV_OPERAND_TYPE_ID, // 729 SPV_OPERAND_TYPE_ID, // 730 - SPV_OPERAND_TYPE_STORAGE_CLASS, // 731 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 732 - SPV_OPERAND_TYPE_ID, // 733 - SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER, // 734 + SPV_OPERAND_TYPE_ID, // 731 + SPV_OPERAND_TYPE_ID, // 732 + SPV_OPERAND_TYPE_TYPE_ID, // 733 + SPV_OPERAND_TYPE_RESULT_ID, // 734 SPV_OPERAND_TYPE_ID, // 735 SPV_OPERAND_TYPE_ID, // 736 SPV_OPERAND_TYPE_ID, // 737 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 738 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 739 + SPV_OPERAND_TYPE_ID, // 738 + SPV_OPERAND_TYPE_OPTIONAL_MATRIX_MULTIPLY_ACCUMULATE_OPERANDS, // 739 SPV_OPERAND_TYPE_ID, // 740 - SPV_OPERAND_TYPE_ID, // 741 + SPV_OPERAND_TYPE_EXECUTION_MODEL, // 741 SPV_OPERAND_TYPE_ID, // 742 - SPV_OPERAND_TYPE_ID, // 743 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 744 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 745 - SPV_OPERAND_TYPE_ID, // 746 - SPV_OPERAND_TYPE_ID, // 747 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 748 - SPV_OPERAND_TYPE_VARIABLE_ID, // 749 - SPV_OPERAND_TYPE_ID, // 750 - SPV_OPERAND_TYPE_DEBUG_COMPOSITE_TYPE, // 751 - SPV_OPERAND_TYPE_ID, // 752 + 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_ID, // 755 - SPV_OPERAND_TYPE_ID, // 756 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 757 - SPV_OPERAND_TYPE_VARIABLE_ID, // 758 - SPV_OPERAND_TYPE_ID, // 759 - SPV_OPERAND_TYPE_ID, // 760 - SPV_OPERAND_TYPE_ID, // 761 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 762 + 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_ID, // 762 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 763 SPV_OPERAND_TYPE_ID, // 764 SPV_OPERAND_TYPE_ID, // 765 SPV_OPERAND_TYPE_ID, // 766 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 767 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 768 + SPV_OPERAND_TYPE_ID, // 767 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 768 SPV_OPERAND_TYPE_ID, // 769 SPV_OPERAND_TYPE_ID, // 770 SPV_OPERAND_TYPE_ID, // 771 - SPV_OPERAND_TYPE_ID, // 772 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 773 - SPV_OPERAND_TYPE_ID, // 774 - SPV_OPERAND_TYPE_ID, // 775 + SPV_OPERAND_TYPE_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 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_ID, // 777 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 778 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 779 + SPV_OPERAND_TYPE_DEBUG_TYPE_QUALIFIER, // 777 + SPV_OPERAND_TYPE_ID, // 778 + SPV_OPERAND_TYPE_ID, // 779 SPV_OPERAND_TYPE_ID, // 780 - SPV_OPERAND_TYPE_ID, // 781 - SPV_OPERAND_TYPE_ID, // 782 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 783 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 784 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 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_LITERAL_INTEGER, // 787 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 788 - SPV_OPERAND_TYPE_VARIABLE_ID, // 789 + SPV_OPERAND_TYPE_ID, // 789 SPV_OPERAND_TYPE_ID, // 790 - SPV_OPERAND_TYPE_ID, // 791 - SPV_OPERAND_TYPE_ID, // 792 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 793 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 794 + 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_ID, // 795 - SPV_OPERAND_TYPE_ID, // 796 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 797 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 796 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 797 SPV_OPERAND_TYPE_ID, // 798 SPV_OPERAND_TYPE_ID, // 799 - SPV_OPERAND_TYPE_ID, // 800 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 801 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 802 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 800 + SPV_OPERAND_TYPE_VARIABLE_ID, // 801 + SPV_OPERAND_TYPE_ID, // 802 SPV_OPERAND_TYPE_ID, // 803 SPV_OPERAND_TYPE_ID, // 804 - SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 805 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 805 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 806 SPV_OPERAND_TYPE_ID, // 807 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 808 + SPV_OPERAND_TYPE_ID, // 808 SPV_OPERAND_TYPE_ID, // 809 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 810 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 811 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 810 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 811 SPV_OPERAND_TYPE_ID, // 812 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 813 + SPV_OPERAND_TYPE_ID, // 813 SPV_OPERAND_TYPE_ID, // 814 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 815 - SPV_OPERAND_TYPE_ID, // 816 + SPV_OPERAND_TYPE_ID, // 815 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 816 SPV_OPERAND_TYPE_ID, // 817 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 818 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 819 + SPV_OPERAND_TYPE_ID, // 818 + SPV_OPERAND_TYPE_ID, // 819 SPV_OPERAND_TYPE_ID, // 820 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 821 - SPV_OPERAND_TYPE_ID, // 822 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 821 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 822 SPV_OPERAND_TYPE_ID, // 823 SPV_OPERAND_TYPE_ID, // 824 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 825 + SPV_OPERAND_TYPE_ID, // 825 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 826 - SPV_OPERAND_TYPE_ID, // 827 - SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 828 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 827 + SPV_OPERAND_TYPE_ID, // 828 SPV_OPERAND_TYPE_ID, // 829 - SPV_OPERAND_TYPE_ID, // 830 - SPV_OPERAND_TYPE_VARIABLE_ID, // 831 - SPV_OPERAND_TYPE_DEBUG_OPERATION, // 832 - SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 833 + 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_LITERAL_INTEGER, // 835 - SPV_OPERAND_TYPE_ID, // 836 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 837 + 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_OPTIONAL_ID, // 839 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 840 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 841 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 842 + SPV_OPERAND_TYPE_ID, // 839 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 840 + SPV_OPERAND_TYPE_ID, // 841 + SPV_OPERAND_TYPE_ID, // 842 SPV_OPERAND_TYPE_ID, // 843 - SPV_OPERAND_TYPE_ID, // 844 - SPV_OPERAND_TYPE_ID, // 845 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 844 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 845 SPV_OPERAND_TYPE_ID, // 846 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 847 - SPV_OPERAND_TYPE_ID, // 848 - SPV_OPERAND_TYPE_ID, // 849 + SPV_OPERAND_TYPE_ID, // 847 + SPV_OPERAND_TYPE_DEBUG_INFO_FLAGS, // 848 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 849 SPV_OPERAND_TYPE_ID, // 850 - SPV_OPERAND_TYPE_ID, // 851 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 851 SPV_OPERAND_TYPE_ID, // 852 - SPV_OPERAND_TYPE_ID, // 853 - SPV_OPERAND_TYPE_ID, // 854 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 853 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 854 SPV_OPERAND_TYPE_ID, // 855 - SPV_OPERAND_TYPE_VARIABLE_ID, // 856 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 856 SPV_OPERAND_TYPE_ID, // 857 - SPV_OPERAND_TYPE_ID, // 858 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 858 SPV_OPERAND_TYPE_ID, // 859 SPV_OPERAND_TYPE_ID, // 860 - SPV_OPERAND_TYPE_ID, // 861 - SPV_OPERAND_TYPE_ID, // 862 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 861 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 862 SPV_OPERAND_TYPE_ID, // 863 - SPV_OPERAND_TYPE_ID, // 864 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 864 SPV_OPERAND_TYPE_ID, // 865 - SPV_OPERAND_TYPE_VARIABLE_ID, // 866 + SPV_OPERAND_TYPE_ID, // 866 SPV_OPERAND_TYPE_ID, // 867 - SPV_OPERAND_TYPE_ID, // 868 - SPV_OPERAND_TYPE_ID, // 869 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 868 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 869 SPV_OPERAND_TYPE_ID, // 870 - SPV_OPERAND_TYPE_ID, // 871 - SPV_OPERAND_TYPE_ID, // 872 - SPV_OPERAND_TYPE_ID, // 873 + SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 871 + SPV_OPERAND_TYPE_DEBUG_OPERATION, // 872 + SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 873 SPV_OPERAND_TYPE_ID, // 874 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 875 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 875 SPV_OPERAND_TYPE_ID, // 876 - SPV_OPERAND_TYPE_ID, // 877 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 877 SPV_OPERAND_TYPE_ID, // 878 - SPV_OPERAND_TYPE_ID, // 879 - SPV_OPERAND_TYPE_VARIABLE_ID, // 880 - SPV_OPERAND_TYPE_ID, // 881 - SPV_OPERAND_TYPE_ID, // 882 + 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_ID, // 883 SPV_OPERAND_TYPE_ID, // 884 SPV_OPERAND_TYPE_ID, // 885 SPV_OPERAND_TYPE_ID, // 886 - SPV_OPERAND_TYPE_ID, // 887 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 887 SPV_OPERAND_TYPE_ID, // 888 SPV_OPERAND_TYPE_ID, // 889 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 890 + SPV_OPERAND_TYPE_ID, // 890 SPV_OPERAND_TYPE_ID, // 891 SPV_OPERAND_TYPE_ID, // 892 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 893 + SPV_OPERAND_TYPE_ID, // 893 SPV_OPERAND_TYPE_ID, // 894 SPV_OPERAND_TYPE_ID, // 895 - SPV_OPERAND_TYPE_ID, // 896 + SPV_OPERAND_TYPE_VARIABLE_ID, // 896 SPV_OPERAND_TYPE_ID, // 897 SPV_OPERAND_TYPE_ID, // 898 SPV_OPERAND_TYPE_ID, // 899 SPV_OPERAND_TYPE_ID, // 900 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 901 + SPV_OPERAND_TYPE_ID, // 901 SPV_OPERAND_TYPE_ID, // 902 SPV_OPERAND_TYPE_ID, // 903 SPV_OPERAND_TYPE_ID, // 904 - SPV_OPERAND_TYPE_VARIABLE_ID, // 905 - SPV_OPERAND_TYPE_ID, // 906 + SPV_OPERAND_TYPE_ID, // 905 + SPV_OPERAND_TYPE_VARIABLE_ID, // 906 SPV_OPERAND_TYPE_ID, // 907 SPV_OPERAND_TYPE_ID, // 908 SPV_OPERAND_TYPE_ID, // 909 @@ -9575,12 +9676,12 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 912 SPV_OPERAND_TYPE_ID, // 913 SPV_OPERAND_TYPE_ID, // 914 - SPV_OPERAND_TYPE_ID, // 915 + 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_ID, // 920 + SPV_OPERAND_TYPE_VARIABLE_ID, // 920 SPV_OPERAND_TYPE_ID, // 921 SPV_OPERAND_TYPE_ID, // 922 SPV_OPERAND_TYPE_ID, // 923 @@ -9590,10 +9691,10 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 927 SPV_OPERAND_TYPE_ID, // 928 SPV_OPERAND_TYPE_ID, // 929 - SPV_OPERAND_TYPE_ID, // 930 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 930 SPV_OPERAND_TYPE_ID, // 931 SPV_OPERAND_TYPE_ID, // 932 - SPV_OPERAND_TYPE_ID, // 933 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 933 SPV_OPERAND_TYPE_ID, // 934 SPV_OPERAND_TYPE_ID, // 935 SPV_OPERAND_TYPE_ID, // 936 @@ -9601,11 +9702,11 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 938 SPV_OPERAND_TYPE_ID, // 939 SPV_OPERAND_TYPE_ID, // 940 - SPV_OPERAND_TYPE_ID, // 941 + SPV_OPERAND_TYPE_OPTIONAL_ID, // 941 SPV_OPERAND_TYPE_ID, // 942 SPV_OPERAND_TYPE_ID, // 943 SPV_OPERAND_TYPE_ID, // 944 - SPV_OPERAND_TYPE_ID, // 945 + SPV_OPERAND_TYPE_VARIABLE_ID, // 945 SPV_OPERAND_TYPE_ID, // 946 SPV_OPERAND_TYPE_ID, // 947 SPV_OPERAND_TYPE_ID, // 948 @@ -9633,104 +9734,144 @@ static const spv_operand_type_t kOperandSpans[] = { SPV_OPERAND_TYPE_ID, // 970 SPV_OPERAND_TYPE_ID, // 971 SPV_OPERAND_TYPE_ID, // 972 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 973 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 974 + SPV_OPERAND_TYPE_ID, // 973 + SPV_OPERAND_TYPE_ID, // 974 SPV_OPERAND_TYPE_ID, // 975 - SPV_OPERAND_TYPE_SOURCE_LANGUAGE, // 976 + SPV_OPERAND_TYPE_ID, // 976 SPV_OPERAND_TYPE_ID, // 977 SPV_OPERAND_TYPE_ID, // 978 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 979 + SPV_OPERAND_TYPE_ID, // 979 SPV_OPERAND_TYPE_ID, // 980 - SPV_OPERAND_TYPE_STORAGE_CLASS, // 981 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 982 + SPV_OPERAND_TYPE_ID, // 981 + SPV_OPERAND_TYPE_ID, // 982 SPV_OPERAND_TYPE_ID, // 983 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER, // 984 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 985 + SPV_OPERAND_TYPE_ID, // 984 + SPV_OPERAND_TYPE_ID, // 985 SPV_OPERAND_TYPE_ID, // 986 - SPV_OPERAND_TYPE_VARIABLE_ID, // 987 + SPV_OPERAND_TYPE_ID, // 987 SPV_OPERAND_TYPE_ID, // 988 SPV_OPERAND_TYPE_ID, // 989 SPV_OPERAND_TYPE_ID, // 990 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 991 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 992 + SPV_OPERAND_TYPE_ID, // 991 + SPV_OPERAND_TYPE_ID, // 992 SPV_OPERAND_TYPE_ID, // 993 SPV_OPERAND_TYPE_ID, // 994 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 995 - SPV_OPERAND_TYPE_VARIABLE_ID, // 996 + SPV_OPERAND_TYPE_ID, // 995 + SPV_OPERAND_TYPE_ID, // 996 SPV_OPERAND_TYPE_ID, // 997 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE, // 998 + SPV_OPERAND_TYPE_ID, // 998 SPV_OPERAND_TYPE_ID, // 999 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1000 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1001 + SPV_OPERAND_TYPE_ID, // 1000 + SPV_OPERAND_TYPE_ID, // 1001 SPV_OPERAND_TYPE_ID, // 1002 SPV_OPERAND_TYPE_ID, // 1003 SPV_OPERAND_TYPE_ID, // 1004 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1005 - SPV_OPERAND_TYPE_VARIABLE_ID, // 1006 + SPV_OPERAND_TYPE_ID, // 1005 + SPV_OPERAND_TYPE_ID, // 1006 SPV_OPERAND_TYPE_ID, // 1007 SPV_OPERAND_TYPE_ID, // 1008 SPV_OPERAND_TYPE_ID, // 1009 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1010 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1011 + SPV_OPERAND_TYPE_ID, // 1010 + SPV_OPERAND_TYPE_ID, // 1011 SPV_OPERAND_TYPE_ID, // 1012 - SPV_OPERAND_TYPE_ID, // 1013 - SPV_OPERAND_TYPE_ID, // 1014 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1015 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 1016 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1013 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1014 + SPV_OPERAND_TYPE_ID, // 1015 + SPV_OPERAND_TYPE_SOURCE_LANGUAGE, // 1016 SPV_OPERAND_TYPE_ID, // 1017 SPV_OPERAND_TYPE_ID, // 1018 - SPV_OPERAND_TYPE_ID, // 1019 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_BASE_TYPE_ATTRIBUTE_ENCODING, // 1019 SPV_OPERAND_TYPE_ID, // 1020 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1021 - SPV_OPERAND_TYPE_ID, // 1022 + SPV_OPERAND_TYPE_STORAGE_CLASS, // 1021 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1022 SPV_OPERAND_TYPE_ID, // 1023 - SPV_OPERAND_TYPE_ID, // 1024 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1025 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1026 - SPV_OPERAND_TYPE_ID, // 1027 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_TYPE_QUALIFIER, // 1024 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1025 + SPV_OPERAND_TYPE_ID, // 1026 + SPV_OPERAND_TYPE_VARIABLE_ID, // 1027 SPV_OPERAND_TYPE_ID, // 1028 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1029 + SPV_OPERAND_TYPE_ID, // 1029 SPV_OPERAND_TYPE_ID, // 1030 - SPV_OPERAND_TYPE_ID, // 1031 - SPV_OPERAND_TYPE_ID, // 1032 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1033 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1034 - SPV_OPERAND_TYPE_ID, // 1035 - SPV_OPERAND_TYPE_ID, // 1036 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1037 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1038 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1031 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 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, // 1037 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_COMPOSITE_TYPE, // 1038 SPV_OPERAND_TYPE_ID, // 1039 - SPV_OPERAND_TYPE_OPTIONAL_ID, // 1040 - SPV_OPERAND_TYPE_ID, // 1041 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1040 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1041 SPV_OPERAND_TYPE_ID, // 1042 SPV_OPERAND_TYPE_ID, // 1043 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1044 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1045 - SPV_OPERAND_TYPE_ID, // 1046 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1047 - SPV_OPERAND_TYPE_OPTIONAL_LITERAL_INTEGER, // 1048 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_OPERATION, // 1049 - SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // 1050 - SPV_OPERAND_TYPE_ID, // 1051 - SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY, // 1052 + 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, // 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_ID, // 1053 SPV_OPERAND_TYPE_ID, // 1054 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1055 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1056 + 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, // 1059 SPV_OPERAND_TYPE_ID, // 1060 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1061 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1061 SPV_OPERAND_TYPE_ID, // 1062 SPV_OPERAND_TYPE_ID, // 1063 SPV_OPERAND_TYPE_ID, // 1064 SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1065 - SPV_OPERAND_TYPE_ID, // 1066 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1066 SPV_OPERAND_TYPE_ID, // 1067 - SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1068 - SPV_OPERAND_TYPE_ID, // 1069 + SPV_OPERAND_TYPE_ID, // 1068 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_INFO_FLAGS, // 1069 SPV_OPERAND_TYPE_ID, // 1070 SPV_OPERAND_TYPE_ID, // 1071 - SPV_OPERAND_TYPE_FP_ROUNDING_MODE, // 1072 + 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, // 1081 + SPV_OPERAND_TYPE_ID, // 1082 + SPV_OPERAND_TYPE_ID, // 1083 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1084 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 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, // 1091 + SPV_OPERAND_TYPE_CLDEBUG100_DEBUG_IMPORTED_ENTITY, // 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_ID, // 1097 + SPV_OPERAND_TYPE_ID, // 1098 + SPV_OPERAND_TYPE_ID, // 1099 + SPV_OPERAND_TYPE_ID, // 1100 + SPV_OPERAND_TYPE_LITERAL_INTEGER, // 1101 + SPV_OPERAND_TYPE_ID, // 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, // 1109 + SPV_OPERAND_TYPE_ID, // 1110 + SPV_OPERAND_TYPE_ID, // 1111 + SPV_OPERAND_TYPE_FP_ROUNDING_MODE, // 1112 }; diff --git a/3rdparty/spirv-tools/include/generated/core_tables_header.inc b/3rdparty/spirv-tools/include/generated/core_tables_header.inc index 3e1067fc4..4e508d38c 100644 --- a/3rdparty/spirv-tools/include/generated/core_tables_header.inc +++ b/3rdparty/spirv-tools/include/generated/core_tables_header.inc @@ -13,6 +13,7 @@ enum class PrintingClass : uint32_t { kDevice_Side_Enqueue, kExtension, kFunction, + kGraph, kGroup, kImage, kMemory, @@ -43,6 +44,7 @@ enum Extension : uint32_t { kSPV_AMD_texture_gather_bias_lod, 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, @@ -91,6 +93,7 @@ enum Extension : uint32_t { 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, @@ -182,6 +185,7 @@ enum Extension : uint32_t { 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_tile_shading, diff --git a/3rdparty/spirv-tools/include/spirv-tools/libspirv.h b/3rdparty/spirv-tools/include/spirv-tools/libspirv.h index 7a076c02d..74a5a345f 100644 --- a/3rdparty/spirv-tools/include/spirv-tools/libspirv.h +++ b/3rdparty/spirv-tools/include/spirv-tools/libspirv.h @@ -80,6 +80,8 @@ typedef enum spv_result_t { SPV_ERROR_INVALID_DATA = -14, // Indicates data rules validation failure. SPV_ERROR_MISSING_EXTENSION = -15, SPV_ERROR_WRONG_VERSION = -16, // Indicates wrong SPIR-V version + SPV_ERROR_FNVAR = + -17, // Error related to SPV_INTEL_function_variants extension SPV_FORCE_32_BIT_ENUM(spv_result_t) } spv_result_t; @@ -189,36 +191,24 @@ typedef enum spv_operand_type_t { SPV_OPERAND_TYPE_MEMORY_ACCESS, // SPIR-V Sec 3.26 SPV_OPERAND_TYPE_FRAGMENT_SHADING_RATE, // SPIR-V Sec 3.FSR -// NOTE: New concrete enum values should be added at the end. + // NOTE: New concrete enum values should be added at the end. -// The "optional" and "variable" operand types are only used internally by -// the assembler and the binary parser. -// There are two categories: -// Optional : expands to 0 or 1 operand, like ? in regular expressions. -// Variable : expands to 0, 1 or many operands or pairs of operands. -// This is similar to * in regular expressions. + // The "optional" and "variable" operand types are only used internally by + // the assembler and the binary parser. + // There are two categories: + // Optional : expands to 0 or 1 operand, like ? in regular expressions. + // Variable : expands to 0, 1 or many operands or pairs of operands. + // This is similar to * in regular expressions. -// NOTE: These FIRST_* and LAST_* enum values are DEPRECATED. -// The concept of "optional" and "variable" operand types are only intended -// for use as an implementation detail of parsing SPIR-V, either in text or -// binary form. Instead of using enum ranges, use characteristic function -// spvOperandIsConcrete. -// The use of enum value ranges in a public API makes it difficult to insert -// new values into a range without also breaking binary compatibility. -// -// Macros for defining bounds on optional and variable operand types. -// Any variable operand type is also optional. -// TODO(dneto): Remove SPV_OPERAND_TYPE_FIRST_* and SPV_OPERAND_TYPE_LAST_* -#define FIRST_OPTIONAL(ENUM) ENUM, SPV_OPERAND_TYPE_FIRST_OPTIONAL_TYPE = ENUM -#define FIRST_VARIABLE(ENUM) ENUM, SPV_OPERAND_TYPE_FIRST_VARIABLE_TYPE = ENUM -#define LAST_VARIABLE(ENUM) \ - ENUM, SPV_OPERAND_TYPE_LAST_VARIABLE_TYPE = ENUM, \ - SPV_OPERAND_TYPE_LAST_OPTIONAL_TYPE = ENUM + // Use characteristic function spvOperandIsConcrete to classify the + // operand types; when it returns false, the operand is optional or variable. + // + // Any variable operand type is also optional. // An optional operand represents zero or one logical operands. // In an instruction definition, this may only appear at the end of the // operand types. - FIRST_OPTIONAL(SPV_OPERAND_TYPE_OPTIONAL_ID), + SPV_OPERAND_TYPE_OPTIONAL_ID, // An optional image operand type. SPV_OPERAND_TYPE_OPTIONAL_IMAGE, // An optional memory access type. @@ -243,7 +233,7 @@ typedef enum spv_operand_type_t { // A variable operand represents zero or more logical operands. // In an instruction definition, this may only appear at the end of the // operand types. - FIRST_VARIABLE(SPV_OPERAND_TYPE_VARIABLE_ID), + SPV_OPERAND_TYPE_VARIABLE_ID, SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER, // A sequence of zero or more pairs of (typed literal integer, Id). // Expands to zero or more: @@ -251,7 +241,7 @@ typedef enum spv_operand_type_t { // where the literal number must always be an integer of some sort. SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER_ID, // A sequence of zero or more pairs of (Id, Literal integer) - LAST_VARIABLE(SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER), + SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER, // The following are concrete enum types from the DebugInfo extended // instruction set. @@ -344,6 +334,10 @@ typedef enum spv_operand_type_t { SPV_OPERAND_TYPE_TENSOR_OPERANDS, SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS, + // SPV_INTEL_function_variants + SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY, + SPV_OPERAND_TYPE_VARIABLE_CAPABILITY, + // This is a sentinel value, and does not represent an operand type. // It should come last. SPV_OPERAND_TYPE_NUM_OPERAND_TYPES, @@ -370,6 +364,7 @@ typedef enum spv_ext_inst_type_t { SPV_EXT_INST_TYPE_NONSEMANTIC_CLSPVREFLECTION, SPV_EXT_INST_TYPE_NONSEMANTIC_SHADER_DEBUGINFO_100, SPV_EXT_INST_TYPE_NONSEMANTIC_VKSPREFLECTION, + SPV_EXT_INST_TYPE_TOSA_001000_1, // Multiple distinct extended instruction set types could return this // value, if they are prefixed with NonSemantic. and are otherwise @@ -438,7 +433,7 @@ typedef enum spv_binary_to_text_options_t { // The default id bound is to the minimum value for the id limit // in the spir-v specification under the section "Universal Limits". -const uint32_t kDefaultMaxIdBound = 0x3FFFFF; +const static uint32_t kDefaultMaxIdBound = 0x3FFFFF; // Structures @@ -772,6 +767,7 @@ SPIRV_TOOLS_EXPORT void spvValidatorOptionsSetAllowOffsetTextureOperand( spv_validator_options options, bool val); // Allow base operands of some bit operations to be non-32-bit wide. +// Was added for VK_KHR_maintenance9 SPIRV_TOOLS_EXPORT void spvValidatorOptionsSetAllowVulkan32BitBitwise( spv_validator_options options, bool val); diff --git a/3rdparty/spirv-tools/include/spirv-tools/libspirv.hpp b/3rdparty/spirv-tools/include/spirv-tools/libspirv.hpp index 2cbb74927..1b3ed86a8 100644 --- a/3rdparty/spirv-tools/include/spirv-tools/libspirv.hpp +++ b/3rdparty/spirv-tools/include/spirv-tools/libspirv.hpp @@ -133,6 +133,7 @@ class SPIRV_TOOLS_EXPORT ValidatorOptions { } // Allow base operands of some bit operations to be non-32-bit wide. + // Was added for VK_KHR_maintenance9 void SetAllowVulkan32BitBitwise(bool val) { spvValidatorOptionsSetAllowVulkan32BitBitwise(options_, val); } diff --git a/3rdparty/spirv-tools/include/spirv-tools/linker.hpp b/3rdparty/spirv-tools/include/spirv-tools/linker.hpp index 9037b9488..99527ed6d 100644 --- a/3rdparty/spirv-tools/include/spirv-tools/linker.hpp +++ b/3rdparty/spirv-tools/include/spirv-tools/linker.hpp @@ -67,12 +67,36 @@ class SPIRV_TOOLS_EXPORT LinkerOptions { allow_ptr_type_mismatch_ = allow_ptr_type_mismatch; } + std::string GetFnVarTargetsCsv() const { return fnvar_targets_csv_; } + void SetFnVarTargetsCsv(std::string fnvar_targets_csv) { + fnvar_targets_csv_ = fnvar_targets_csv; + } + + std::string GetFnVarArchitecturesCsv() const { + return fnvar_architectures_csv_; + } + void SetFnVarArchitecturesCsv(std::string fnvar_architectures_csv) { + fnvar_architectures_csv_ = fnvar_architectures_csv; + } + + bool GetHasFnVarCapabilities() const { return has_fnvar_capabilities_; } + void SetHasFnVarCapabilities(bool fnvar_capabilities) { + has_fnvar_capabilities_ = fnvar_capabilities; + } + + std::vector GetInFiles() const { return in_files_; } + void SetInFiles(std::vector in_files) { in_files_ = in_files; } + private: bool create_library_{false}; bool verify_ids_{false}; bool allow_partial_linkage_{false}; bool use_highest_version_{false}; bool allow_ptr_type_mismatch_{false}; + std::string fnvar_targets_csv_{""}; + std::string fnvar_architectures_csv_{""}; + bool has_fnvar_capabilities_ = false; + std::vector in_files_{{}}; }; // Links one or more SPIR-V modules into a new SPIR-V module. That is, combine diff --git a/3rdparty/spirv-tools/include/spirv-tools/optimizer.hpp b/3rdparty/spirv-tools/include/spirv-tools/optimizer.hpp index 5fb9a339c..b25ad47ec 100644 --- a/3rdparty/spirv-tools/include/spirv-tools/optimizer.hpp +++ b/3rdparty/spirv-tools/include/spirv-tools/optimizer.hpp @@ -1022,6 +1022,16 @@ Optimizer::PassToken CreateSplitCombinedImageSamplerPass(); // This pass assumes binding numbers are not applid via decoration groups // (OpDecorationGroup). Optimizer::PassToken CreateResolveBindingConflictsPass(); + +// Create a pass to canonicalize IDs to improve compression of SPIR-V binary +// files. The resulting modules have an increased ID range (IDs are not as +// tightly packed around zero), but will compress better when multiple modules +// are compressed together, since the compressor's dictionary can find better +// cross module commonality. This pass should be run after most optimization +// passes except for +// --strip-debug because this pass will use OpName to canonicalize IDs. i.e. Run +// --strip-debug after this pass. +Optimizer::PassToken CreateCanonicalizeIdsPass(); } // namespace spvtools #endif // INCLUDE_SPIRV_TOOLS_OPTIMIZER_HPP_ diff --git a/3rdparty/spirv-tools/source/binary.cpp b/3rdparty/spirv-tools/source/binary.cpp index 180d0a999..997a30c61 100644 --- a/3rdparty/spirv-tools/source/binary.cpp +++ b/3rdparty/spirv-tools/source/binary.cpp @@ -636,6 +636,7 @@ spv_result_t Parser::parseOperand(size_t inst_offset, } break; case SPV_OPERAND_TYPE_CAPABILITY: + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: case SPV_OPERAND_TYPE_EXECUTION_MODEL: case SPV_OPERAND_TYPE_ADDRESSING_MODEL: case SPV_OPERAND_TYPE_MEMORY_MODEL: @@ -689,6 +690,8 @@ spv_result_t Parser::parseOperand(size_t inst_offset, parsed_operand.type = SPV_OPERAND_TYPE_PACKED_VECTOR_FORMAT; if (type == SPV_OPERAND_TYPE_OPTIONAL_FPENCODING) parsed_operand.type = SPV_OPERAND_TYPE_FPENCODING; + if (type == SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY) + parsed_operand.type = SPV_OPERAND_TYPE_CAPABILITY; const spvtools::OperandDesc* entry = nullptr; if (spvtools::LookupOperand(type, word, &entry)) { @@ -853,7 +856,7 @@ void Parser::recordNumberType(size_t inst_offset, info.type = SPV_NUMBER_FLOATING; info.bit_width = peekAt(inst_offset + 2); if (inst->num_words >= 4) { - const spvtools::OperandDesc* desc; + const spvtools::OperandDesc* desc = nullptr; spv_result_t status = spvtools::LookupOperand( SPV_OPERAND_TYPE_FPENCODING, peekAt(inst_offset + 3), &desc); if (status == SPV_SUCCESS) { diff --git a/3rdparty/spirv-tools/source/disassemble.cpp b/3rdparty/spirv-tools/source/disassemble.cpp index 2d9bb0ff0..43db1daa2 100644 --- a/3rdparty/spirv-tools/source/disassemble.cpp +++ b/3rdparty/spirv-tools/source/disassemble.cpp @@ -694,12 +694,12 @@ void InstructionDisassembler::EmitInstructionImpl( } if (inst.result_id) { - SetBlue(); + SetBlue(line); const std::string id_name = name_mapper_(inst.result_id); if (indent_) line << std::setw(std::max(0, indent_ - 3 - int(id_name.size()))); line << "%" << id_name; - ResetColor(); + ResetColor(line); line << " = "; } else { line << std::string(indent_, ' '); @@ -907,6 +907,7 @@ void InstructionDisassembler::EmitOperand(std::ostream& stream, stream << '"'; } break; case SPV_OPERAND_TYPE_CAPABILITY: + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: case SPV_OPERAND_TYPE_SOURCE_LANGUAGE: case SPV_OPERAND_TYPE_EXECUTION_MODEL: case SPV_OPERAND_TYPE_ADDRESSING_MODEL: diff --git a/3rdparty/spirv-tools/source/ext_inst.cpp b/3rdparty/spirv-tools/source/ext_inst.cpp index c8fe8bb47..761b8d2f2 100644 --- a/3rdparty/spirv-tools/source/ext_inst.cpp +++ b/3rdparty/spirv-tools/source/ext_inst.cpp @@ -55,6 +55,9 @@ spv_ext_inst_type_t spvExtInstImportTypeGet(const char* name) { if (!strncmp("NonSemantic.VkspReflection.", name, 27)) { return SPV_EXT_INST_TYPE_NONSEMANTIC_VKSPREFLECTION; } + if (!strcmp("TOSA.001000.1", name)) { + return SPV_EXT_INST_TYPE_TOSA_001000_1; + } // ensure to add any known non-semantic extended instruction sets // above this point, and update spvExtInstIsNonSemantic() if (!strncmp("NonSemantic.", name, 12)) { diff --git a/3rdparty/spirv-tools/source/extensions.cpp b/3rdparty/spirv-tools/source/extensions.cpp index 91136e6a7..ab4caa000 100644 --- a/3rdparty/spirv-tools/source/extensions.cpp +++ b/3rdparty/spirv-tools/source/extensions.cpp @@ -24,18 +24,24 @@ namespace spvtools { std::string GetExtensionString(const spv_parsed_instruction_t* inst) { - if (inst->opcode != static_cast(spv::Op::OpExtension)) { + if ((inst->opcode != static_cast(spv::Op::OpExtension)) && + (inst->opcode != + static_cast(spv::Op::OpConditionalExtensionINTEL))) { return "ERROR_not_op_extension"; } - assert(inst->num_operands == 1); + const bool is_conditional = + inst->opcode == + static_cast(spv::Op::OpConditionalExtensionINTEL); + assert(inst->num_operands == (is_conditional ? 2 : 1)); + const uint16_t op_i = is_conditional ? 1 : 0; - const auto& operand = inst->operands[0]; + const auto& operand = inst->operands[op_i]; assert(operand.type == SPV_OPERAND_TYPE_LITERAL_STRING); assert(inst->num_words > operand.offset); (void)operand; /* No unused variables in release builds. */ - return spvDecodeLiteralStringOperand(*inst, 0); + return spvDecodeLiteralStringOperand(*inst, op_i); } std::string ExtensionSetToString(const ExtensionSet& extensions) { diff --git a/3rdparty/spirv-tools/source/link/fnvar.cpp b/3rdparty/spirv-tools/source/link/fnvar.cpp new file mode 100644 index 000000000..352e7ea33 --- /dev/null +++ b/3rdparty/spirv-tools/source/link/fnvar.cpp @@ -0,0 +1,1011 @@ +// Copyright 2025 The Khronos Group Inc. +// +// 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 "fnvar.h" + +#include +#include +#include + +#include "source/opt/instruction.h" + +namespace spvtools { + +using opt::Function; +using opt::Instruction; +using opt::analysis::Type; + +namespace { +// Helper functions + +// Parses a CSV source string for the purpose of this extension. +// +// Required columns must be known in advance and supplied as the required_cols +// argument -- this is used for error checking. Values are assumed to be +// separated by CSV_SEP. The input source string is assumed to be the output of +// io::ReadTextFile and no other validation, apart from the CSV parsing, is +// performed. +// +// Returns true on success, false on error (with error message stored in +// err_msg). +bool ParseCsv(const std::string& source, + const std::vector& required_cols, + std::stringstream& err_msg, + std::vector>& result) { + std::stringstream fn_variants_csv_stream(source); + std::string line; + std::vector columns; + constexpr char CSV_SEP = ','; + bool first_line = true; + + while (std::getline(fn_variants_csv_stream, line, '\n')) { + if (line.empty()) { + continue; + } + + std::vector vals; + std::string val; + std::stringstream line_stream(line); + auto* vec = first_line ? &columns : &vals; + + while (std::getline(line_stream, val, CSV_SEP)) { + vec->push_back(val); + } + + if (!line_stream && val.empty()) { + vec->push_back(""); + } + + if (!first_line) { + if (vals.size() != columns.size()) { + err_msg << "Number of values does not match the number of columns. " + "Offending line:\n" + << line; + return false; + } + result.push_back(vals); + } + + first_line = false; + } + + // check if required columns match actual columns (ordering matters) + + if (columns.size() != required_cols.size()) { + err_msg << "Invalid number of CSV columns: " << columns.size() + << ", expected " << required_cols.size() << "."; + return false; + } + + for (size_t i = 0; i < columns.size(); ++i) { + if (columns[i] != required_cols[i]) { + err_msg << "Invalid name of column " << i + 1 << ". Expected '" + << required_cols[i] << "', got '" << columns[i] << "'."; + return false; + } + } + + return true; +} + +// Annotate ID with ConditionalINTEL decoration +void DecorateConditional(IRContext* context, uint32_t id_to_decorate, + uint32_t spec_const_id) { + auto decor_instr = + std::make_unique(context, spv::Op::OpDecorate); + decor_instr->AddOperand({SPV_OPERAND_TYPE_ID, {id_to_decorate}}); + decor_instr->AddOperand({SPV_OPERAND_TYPE_DECORATION, + {uint32_t(spv::Decoration::ConditionalINTEL)}}); + decor_instr->AddOperand({SPV_OPERAND_TYPE_ID, {spec_const_id}}); + context->module()->AddAnnotationInst(std::move(decor_instr)); +} + +// Finds entry point corresponding to a function +// +// Returns null if not found, otherwise returns pointer to the EP Instruction. +Instruction* FindEntryPoint(const Instruction& fn_inst) { + auto* mod = fn_inst.context()->module(); + for (auto& entry_point : mod->entry_points()) { + const int ep_i = + entry_point.opcode() == spv::Op::OpConditionalEntryPointINTEL ? 2 : 1; + if (entry_point.GetOperand(ep_i).AsId() == fn_inst.result_id()) { + return &entry_point; + } + } + return nullptr; +} + +// If the function has an entry point, converts it to a conditional one +void ConvertEPToConditional(Module* module, const Function& fn, + uint32_t spec_const_id) { + for (const auto& ep_inst : module->entry_points()) { + if (ep_inst.opcode() == spv::Op::OpEntryPoint) { + auto* entry_point = FindEntryPoint(fn.DefInst()); + if (entry_point != nullptr) { + std::vector old_operands; + for (auto operand : *entry_point) { + old_operands.push_back(operand); + } + entry_point->ToNop(); + entry_point->SetOpcode(spv::Op::OpConditionalEntryPointINTEL); + entry_point->AddOperand({SPV_OPERAND_TYPE_ID, {spec_const_id}}); + for (auto old_operand : old_operands) { + entry_point->AddOperand(old_operand); + } + } + } + } +} + +// Finds ID of a bool type (returns 0 if not found) +uint32_t FindIdOfBoolType(const Module* const mod) { + return mod->context()->get_type_mgr()->GetBoolTypeId(); +} + +// Combines IDs using OpSpecConstantOp with the operation defined by cmp_op. +// +// Returns the ID of the final result. If there are no IDs, returns 0. If there +// is one ID, does not generate any instructions and returns the ID. +uint32_t CombineIds(IRContext* const context, const std::vector& ids, + spv::Op cmp_op) { + if (ids.empty()) { + return 0; + } else if (ids.size() == 1) { + return ids[0]; + } else { + uint32_t bool_id = FindIdOfBoolType(context->module()); + assert(bool_id != 0); + + uint32_t prev_spec_const_id = ids[0]; + + for (size_t i = 1; i < ids.size(); ++i) { + const uint32_t id = ids[i]; + const uint32_t spec_const_op_id = context->TakeNextId(); + + auto inst = std::make_unique( + context, spv::Op::OpSpecConstantOp, bool_id, spec_const_op_id, + std::initializer_list{ + {SPV_OPERAND_TYPE_SPEC_CONSTANT_OP_NUMBER, {(uint32_t)(cmp_op)}}, + {SPV_OPERAND_TYPE_ID, {prev_spec_const_id}}, + {SPV_OPERAND_TYPE_ID, {id}}}); + context->module()->AddType(std::move(inst)); + + prev_spec_const_id = spec_const_op_id; + } + + return prev_spec_const_id; + } +} + +// Returns whether instruction can be shared between variant modules and +// combined using spec constants (such as conditional capabilities). +bool CanBeFnVarCombined(const Instruction* inst) { + const spv::Op opcode = inst->opcode(); + + if ((opcode != spv::Op::OpExtInstImport) && + (opcode != spv::Op::OpCapability) && (opcode != spv::Op::OpExtension) && + !spvOpcodeGeneratesType(opcode)) { + return false; + } + + if ((opcode == spv::Op::OpCapability) && + ((inst->GetSingleWordOperand(0) == + static_cast(spv::Capability::FunctionVariantsINTEL)) || + (inst->GetSingleWordOperand(0) == + static_cast(spv::Capability::SpecConditionalINTEL)))) { + // Always enabled + return false; + } + + if ((opcode == spv::Op::OpExtension) && + (inst->GetOperand(0).AsString() == FNVAR_EXT_NAME)) { + // Always enabled + return false; + } + + return true; +} + +// Calculates hash of an instruction. +// +// Applicable only to instructions that can be combined (ie. with +// CanBeFnVarCombined being true) and from those, hash can be only computed for +// selected instructions. Computing hash from other instruction is unsupported. +size_t HashInst(const Instruction* inst) { + if (CanBeFnVarCombined(inst)) { + if (spvOpcodeGeneratesType(inst->opcode())) { + const Type* t = + inst->context()->get_type_mgr()->GetType(inst->result_id()); + assert(t != nullptr); + return t->HashValue(); + } + + if (inst->opcode() == spv::Op::OpExtension) { + const auto name = inst->GetOperand(0).AsString(); + return std::hash()(name); + } + + if (inst->opcode() == spv::Op::OpCapability) { + const auto cap = inst->GetSingleWordOperand(0); + return std::hash()(cap); + } + + if (inst->opcode() == spv::Op::OpExtInstImport) { + const auto name = inst->GetOperand(1).AsString(); + return std::hash()(name); + } + } + + assert(false && "Unsupported instruction hash"); + return std::hash()(inst); +} + +std::string GetFnName(const Instruction& fn_inst) { + // Check entry point + const auto* ep_inst = FindEntryPoint(fn_inst); + if (ep_inst != nullptr) { + const int name_i = + ep_inst->opcode() == spv::Op::OpConditionalEntryPointINTEL ? 3 : 2; + return ep_inst->GetOperand(name_i).AsString(); + } + + // Check name of export linkage attribute decoration + const auto* decor_mgr = fn_inst.context()->get_decoration_mgr(); + for (const auto* inst : + decor_mgr->GetDecorationsFor(fn_inst.result_id(), true)) { + const auto decoration = inst->GetOperand(1); + if ((decoration.type == SPV_OPERAND_TYPE_DECORATION) && + (decoration.words.size() == 1) && + (decoration.words[0] == + static_cast(spv::Decoration::LinkageAttributes))) { + const auto linkage = inst->GetOperand(3); + if ((linkage.type == SPV_OPERAND_TYPE_LINKAGE_TYPE) && + (linkage.words.size() == 1) && + (linkage.words[0] == + static_cast(spv::LinkageType::Export))) { + // decorates fn with LinkageAttribute and Export linkage type -> get the + // name + return inst->GetOperand(2).AsString(); + } + } + } + + return ""; +} + +uint32_t FindSpecConstByName(const Module* mod, std::string name) { + for (const auto* const_inst : mod->context()->GetConstants()) { + if (opt::IsSpecConstantInst(const_inst->opcode())) { + const auto id = const_inst->result_id(); + for (const auto& name_inst : mod->debugs2()) { + if ((name_inst.opcode() == spv::Op::OpName) && + (name_inst.GetOperand(0).AsId() == id) && + (name_inst.GetOperand(1).AsString() == name)) { + return id; + } + } + } + } + return 0; +} + +uint32_t CombineVariantDefs(const std::vector& variant_defs, + const std::vector var_ids, + IRContext* context, + std::map, uint32_t>& cache) { + assert(var_ids.size() <= variant_defs.size()); + uint32_t spec_const_comb_id = 0; + if (var_ids.size() != variant_defs.size()) { + // if not used by all variants + if (cache.find(var_ids) == cache.end()) { + // cache variant combinations + std::vector spec_const_ids; + for (const auto& var_id : var_ids) { + const auto var_name = variant_defs[var_id].GetName(); + const auto var_spec_id = + FindSpecConstByName(context->module(), var_name); + spec_const_ids.push_back(var_spec_id); + } + spec_const_comb_id = + CombineIds(context, spec_const_ids, spv::Op::OpLogicalOr); + assert(spec_const_comb_id != 0); + cache.insert({var_ids, spec_const_comb_id}); + } else { + spec_const_comb_id = cache[var_ids]; + } + } + return spec_const_comb_id; +} + +bool strToInt(std::string s, uint32_t* x) { + for (const char& c : s) { + if (c < '0' || c > '9') { + return false; + } + } + if (!(std::stringstream(s) >> *x)) { + return false; + } + return true; +} + +} // anonymous namespace + +bool VariantDefs::ProcessFnVar(const LinkerOptions& options, + const std::vector& modules) { + assert(variant_defs_.empty()); + assert(modules.size() == options.GetInFiles().size()); + + for (size_t i = 0; i < modules.size(); ++i) { + const auto* feat_mgr = modules[i]->context()->get_feature_mgr(); + if ((feat_mgr->HasCapability(spv::Capability::FunctionVariantsINTEL)) || + (feat_mgr->HasCapability(spv::Capability::SpecConditionalINTEL)) || + (feat_mgr->HasExtension(kSPV_INTEL_function_variants))) { + // In principle, it can be done but it's complicated due to having to + // combine the existing conditionals with the new ones. For example, + // conditional capabilities would need to become "doubly-conditional". + err_ << "Creating multitarget modules from multitarget modules is not " + "supported. Offending file: " + << options.GetInFiles()[i]; + return false; + } + } + + std::vector> target_rows; + std::vector> architecture_rows; + + if (!options.GetFnVarTargetsCsv().empty()) { + const std::vector tgt_cols = {"module", "target", "features"}; + if (!ParseCsv(options.GetFnVarTargetsCsv(), tgt_cols, err_, target_rows)) { + return false; + } + } + + if (!options.GetFnVarArchitecturesCsv().empty()) { + const std::vector arch_cols = {"module", "category", "family", + "op", "architecture"}; + if (!ParseCsv(options.GetFnVarArchitecturesCsv(), arch_cols, err_, + architecture_rows)) { + return false; + } + } + + // check that all modules defined in the CSV exist + + for (const auto& tgt_vals : target_rows) { + bool found = false; + for (const auto& in_file : options.GetInFiles()) { + if (tgt_vals[0] == in_file) { + found = true; + } + } + if (!found) { + err_ << "Module '" << tgt_vals[0] + << "' found in targets CSV not passed to the CLI."; + return false; + } + } + + for (const auto& arch_vals : architecture_rows) { + bool found = false; + for (const auto& in_file : options.GetInFiles()) { + if (arch_vals[0] == in_file) { + found = true; + } + } + if (!found) { + err_ << "Module '" << arch_vals[0] + << "' found in architectures CSV not passed to the CLI."; + return false; + } + } + + // create per-module variant defs + + for (size_t i = 0; i < modules.size(); ++i) { + // first module passed to the CLI is considered the base module + bool is_base = i == 0; + const auto name = options.GetInFiles()[i]; + auto variant_def = VariantDef(is_base, name, modules[i]); + + for (const auto& arch_row : architecture_rows) { + const auto row_name = arch_row[0]; + if (row_name == name) { + uint32_t category, family, op, architecture; + + if (!strToInt(arch_row[1], &category)) { + err_ << "Error converting " << arch_row[1] + << " to architecture category."; + return false; + } + if (!strToInt(arch_row[2], &family)) { + err_ << "Error converting " << arch_row[2] + << " to architecture family."; + return false; + } + if (!strToInt(arch_row[3], &op)) { + err_ << "Error converting " << arch_row[3] << " to architecture op."; + return false; + } + if (!strToInt(arch_row[4], &architecture)) { + err_ << "Error converting " << arch_row[4] << " to architecture."; + return false; + } + + variant_def.AddArchDef(category, family, op, architecture); + } + } + + for (const auto& tgt_row : target_rows) { + const auto row_name = tgt_row[0]; + if (row_name == name) { + uint32_t target; + std::vector features; + + if (!strToInt(tgt_row[1], &target)) { + err_ << "Error converting " << tgt_row[1] << " to target."; + return false; + } + + // get features as FEAT_SEP-delimited integers + + std::stringstream feat_stream(tgt_row[2]); + std::string feat; + while (std::getline(feat_stream, feat, FEAT_SEP)) { + uint32_t ufeat; + // if (!(std::stringstream(feat) >> ufeat)) { + if (!strToInt(feat, &ufeat)) { + err_ << "Error converting " << feat << " in " << tgt_row[2] + << " to target feature."; + return false; + } + features.push_back(ufeat); + } + + variant_def.AddTgtDef(target, features); + } + } + + if (options.GetHasFnVarCapabilities()) { + variant_def.InferCapabilities(); + } + + variant_defs_.push_back(variant_def); + } + + return true; +} + +bool VariantDefs::ProcessVariantDefs() { + EnsureBoolType(); + CollectVarInsts(); + if (!GenerateFnVarConstants()) { + return false; + } + CollectBaseFnCalls(); + return true; +} + +void VariantDefs::GenerateHeader(IRContext* linked_context) { + linked_context->AddCapability(spv::Capability::SpecConditionalINTEL); + linked_context->AddCapability(spv::Capability::FunctionVariantsINTEL); + linked_context->AddExtension(std::string(FNVAR_EXT_NAME)); + + // Specifies used registry version + auto inst = + std::make_unique(linked_context, spv::Op::OpModuleProcessed); + std::stringstream line; + line << "SPV_INTEL_function_variants registry version " + << FNVAR_REGISTRY_VERSION; + inst->AddOperand( + {SPV_OPERAND_TYPE_LITERAL_STRING, utils::MakeVector(line.str())}); + linked_context->AddDebug3Inst(std::move(inst)); +} + +void VariantDefs::CombineVariantInstructions(IRContext* linked_context) { + CombineBaseFnCalls(linked_context); + CombineInstructions(linked_context); +} + +void VariantDefs::EnsureBoolType() { + for (auto& variant_def : variant_defs_) { + Module* module = variant_def.GetModule(); + IRContext* context = module->context(); + + uint32_t bool_id = FindIdOfBoolType(module); + if (bool_id == 0) { + bool_id = context->TakeNextId(); + auto variant_bool = std::make_unique( + context, spv::Op::OpTypeBool, 0, bool_id, + std::initializer_list{}); + module->AddType(std::move(variant_bool)); + } + } +} + +void VariantDefs::CollectVarInsts() { + for (size_t i = 0; i < variant_defs_.size(); ++i) { + const auto variant_def = variant_defs_[i]; + const auto* var_mod = variant_def.GetModule(); + + var_mod->ForEachInst([this, &i](const Instruction* inst) { + if (CanBeFnVarCombined(inst)) { + const size_t inst_hash = HashInst(inst); + if (fnvar_usage_.find(inst_hash) == fnvar_usage_.end()) { + fnvar_usage_.insert({inst_hash, {i}}); + } else { + assert(fnvar_usage_[inst_hash].size() < variant_defs_.size()); + fnvar_usage_[inst_hash].push_back(i); + } + } + }); + } +} + +bool VariantDefs::GenerateFnVarConstants() { + assert(variant_defs_.size() > 0); + assert(variant_defs_[0].IsBase()); + + if (variant_defs_.size() == 1) { + return true; + } + + for (auto& variant_def : variant_defs_) { + Module* module = variant_def.GetModule(); + IRContext* context = module->context(); + + uint32_t bool_id = FindIdOfBoolType(module); + if (bool_id == 0) { + // add a bool type if not present already + bool_id = context->TakeNextId(); + auto variant_bool = std::make_unique( + context, spv::Op::OpTypeBool, 0, bool_id, + std::initializer_list{}); + module->AddType(std::move(variant_bool)); + } + + // Spec constant architecture and target + + std::vector spec_const_arch_ids; + for (const auto& arch_def : variant_def.GetArchDefs()) { + const uint32_t spec_const_arch_id = context->TakeNextId(); + spec_const_arch_ids.push_back(spec_const_arch_id); + + auto inst = std::make_unique( + context, spv::Op::OpSpecConstantArchitectureINTEL, bool_id, + spec_const_arch_id, + std::initializer_list{ + {SPV_OPERAND_TYPE_LITERAL_INTEGER, {arch_def.category}}, + {SPV_OPERAND_TYPE_LITERAL_INTEGER, {arch_def.family}}, + // Using spec op opcode here expects then next operand to be + // a type: + {SPV_OPERAND_TYPE_LITERAL_INTEGER, {arch_def.op}}, + {SPV_OPERAND_TYPE_LITERAL_INTEGER, {arch_def.architecture}}, + }); + module->AddType(std::move(inst)); + } + + std::vector spec_const_tgt_ids; + for (const auto& tgt_def : variant_def.GetTgtDefs()) { + const uint32_t spec_const_tgt_id = context->TakeNextId(); + spec_const_tgt_ids.push_back(spec_const_tgt_id); + + auto inst = std::make_unique( + context, spv::Op::OpSpecConstantTargetINTEL, bool_id, + spec_const_tgt_id, + std::initializer_list{ + {SPV_OPERAND_TYPE_LITERAL_INTEGER, {tgt_def.target}}, + }); + for (const auto& feat : tgt_def.features) { + inst->AddOperand({SPV_OPERAND_TYPE_LITERAL_INTEGER, {feat}}); + } + module->AddType(std::move(inst)); + } + + std::vector spec_const_ids; + + // Spec constant capabilities + + const auto variant_capabilities = variant_def.GetCapabilities(); + if (!variant_capabilities.empty()) { + const uint32_t spec_const_cap_id = context->TakeNextId(); + auto inst = std::make_unique( + context, spv::Op::OpSpecConstantCapabilitiesINTEL, bool_id, + spec_const_cap_id, std::initializer_list{}); + for (const auto& cap : variant_capabilities) { + inst->AddOperand({SPV_OPERAND_TYPE_CAPABILITY, {uint32_t(cap)}}); + } + module->AddType(std::move(inst)); + spec_const_ids.push_back(spec_const_cap_id); + } + + // Combine architectures such that, for the same module, those with the same + // category and family are combined with AND and different cat/fam are + // combined with OR. + // This lets you create combinations like "architecture between X and Y". + + // map (category, family) -> IDs + std::map, std::vector> arch_map_and; + + for (size_t i = 0; i < spec_const_arch_ids.size(); ++i) { + const auto& arch_def = variant_def.GetArchDefs()[i]; + const auto id = spec_const_arch_ids[i]; + const auto key = std::make_pair(arch_def.category, arch_def.family); + if (arch_map_and.find(key) == arch_map_and.end()) { + arch_map_and[key] = {id}; + } else { + arch_map_and[key].push_back(id); + } + } + + std::vector arch_ids_or; + for (const auto& it : arch_map_and) { + const auto id = CombineIds(context, it.second, spv::Op::OpLogicalAnd); + if (id > 0) { + arch_ids_or.push_back(id); + } + } + + const uint32_t spec_const_arch_id = + CombineIds(context, arch_ids_or, spv::Op::OpLogicalOr); + if (spec_const_arch_id > 0) { + spec_const_ids.push_back(spec_const_arch_id); + } + + const uint32_t spec_const_tgt_id = + CombineIds(context, spec_const_tgt_ids, spv::Op::OpLogicalOr); + if (spec_const_tgt_id > 0) { + spec_const_ids.push_back(spec_const_tgt_id); + } + + uint32_t combined_spec_const_id = + CombineIds(context, spec_const_ids, spv::Op::OpLogicalAnd); + if (combined_spec_const_id == 0) { + // If the variant module has no constraints, use SpecConstantTrue + combined_spec_const_id = context->TakeNextId(); + auto inst = std::make_unique( + context, spv::Op::OpSpecConstantTrue, bool_id, combined_spec_const_id, + std::initializer_list{}); + context->module()->AddType(std::move(inst)); + } + assert(combined_spec_const_id != 0); + + // Add a name the combined boolean ID so we can look it up after the IDs are + // shifted + auto inst = std::make_unique(context, spv::Op::OpName); + inst->AddOperand({SPV_OPERAND_TYPE_ID, {combined_spec_const_id}}); + std::vector str_words; + utils::AppendToVector(variant_def.GetName(), &str_words); + inst->AddOperand({SPV_OPERAND_TYPE_LITERAL_STRING, {str_words}}); + module->AddDebug2Inst(std::move(inst)); + + // Annotate all instructions in the types section (eg. constants) with + // ConditionalINTEL, unless they can be shared between variant_defs_ (eg. + // types). Spec constants are excluded because they might have been + // generated by this extension. + for (const auto& type_inst : module->types_values()) { + if (!CanBeFnVarCombined(&type_inst) && + !spvOpcodeIsSpecConstant(type_inst.opcode())) { + DecorateConditional(context, type_inst.result_id(), + combined_spec_const_id); + } + } + } + + // Annotate functions with ConditionalINTEL + + for (const auto& base_fn : *variant_defs_[0].GetModule()) { + // For each function of the base module, find matching variant functions in + // other modules + + auto base_fn_name = GetFnName(base_fn.DefInst()); + if (base_fn_name.empty()) { + err_ << "Could not find name of a function " << base_fn.result_id() + << " in a base module " << variant_defs_[0].GetName() + << ". To be usable by SPV_INTEL_function_variants, a function " + "must either have an entry point or an export " + "LinkAttribute decoration."; + return false; + } + + bool base_fn_needs_conditional = false; + for (size_t i = 1; i < variant_defs_.size(); ++i) { + const auto& variant_def = variant_defs_[i]; + auto* variant_module = variant_def.GetModule(); + auto* variant_context = variant_module->context(); + + for (const auto& var_fn : *variant_module) { + auto var_fn_name = GetFnName(var_fn.DefInst()); + if (var_fn_name.empty()) { + err_ << "Could not find name of a function " << var_fn.result_id() + << " in a base module " << variant_def.GetName() + << ". To be usable by SPV_INTEL_function_variants, a function " + "must either have an entry point or an export " + "LinkAttribute decoration."; + return false; + } + + if (base_fn_name == var_fn_name) { + base_fn_needs_conditional = true; + } + + // each function in a variant module gets a ConditionalINTEL decoration + + uint32_t spec_const_id = + FindSpecConstByName(variant_module, variant_def.GetName()); + assert(spec_const_id != 0); + DecorateConditional(variant_context, var_fn.result_id(), spec_const_id); + ConvertEPToConditional(variant_module, var_fn, spec_const_id); + } + } + + if (base_fn_needs_conditional) { + // only a base function that has a variant in another module gets a + // ConditionalINTEL decoration, the others are common for all + // variant_defs_ + auto* base_module = variant_defs_[0].GetModule(); + auto* base_context = base_module->context(); + uint32_t spec_const_id = + FindSpecConstByName(base_module, variant_defs_[0].GetName()); + assert(spec_const_id != 0); + DecorateConditional(base_context, base_fn.result_id(), spec_const_id); + ConvertEPToConditional(base_module, base_fn, spec_const_id); + } + } + + return true; +} + +void VariantDefs::CollectBaseFnCalls() { + auto* base_mod = variant_defs_[0].GetModule(); + assert(variant_defs_[0].IsBase()); + const auto* base_def_use_mgr = base_mod->context()->get_def_use_mgr(); + + base_mod->ForEachInst([this, &base_def_use_mgr](const Instruction* inst) { + if (inst->opcode() == spv::Op::OpFunctionCall) { + // For each function call in base module, get the function name + const auto fn_id = inst->GetOperand(2).AsId(); + const auto* called_fn_inst = base_def_use_mgr->GetDef(fn_id); + assert(called_fn_inst != nullptr); + const auto called_fn_name = GetFnName(*called_fn_inst); + assert(!called_fn_name.empty()); + + std::vector> called_fns; + for (size_t i = 1; i < variant_defs_.size(); ++i) { + // ... then see in which variant the called function was defined + const auto& variant_def = variant_defs_[i]; + assert(!variant_def.IsBase()); + + for (const auto& fn : *variant_def.GetModule()) { + const auto fn_name = GetFnName(fn.DefInst()); + if (fn_name == called_fn_name) { + called_fns.push_back(std::make_pair(variant_def.GetName(), &fn)); + } + } + } + + if (!called_fns.empty()) { + base_fn_calls_[inst->result_id()] = called_fns; + } + } + }); +} + +void VariantDefs::CombineBaseFnCalls(IRContext* linked_context) { + for (auto kv : base_fn_calls_) { + const uint32_t call_id = kv.first; + const auto called_fns = kv.second; + + if (called_fns.empty()) { + return; + } + + opt::BasicBlock* fn_call_bb = linked_context->get_instr_block(call_id); + + Instruction* found_call_inst = nullptr; + auto bb_iter = fn_call_bb->begin(); + while (bb_iter != fn_call_bb->end() && found_call_inst == nullptr) { + if (bb_iter->HasResultId() && bb_iter->result_id() == call_id) { + found_call_inst = &*bb_iter; + } + ++bb_iter; + } + + if (found_call_inst == nullptr) { + return; + } + + const auto base_spec_const_id = FindSpecConstByName( + variant_defs_[0].GetModule(), variant_defs_[0].GetName()); + const auto base_type_op = found_call_inst->context() + ->get_def_use_mgr() + ->GetDef(found_call_inst->type_id()) + ->opcode(); + const auto base_call_id = found_call_inst->result_id(); + + // decorate the base call with ConditionalINTEL + DecorateConditional(linked_context, base_call_id, base_spec_const_id); + + // Add OpFunctionCall for each variant + Instruction* last_inst = found_call_inst; + std::vector> var_call_ids; + for (const auto& kv2 : called_fns) { + const std::string var_name = kv2.first; + const opt::Function* fn = kv2.second; + const uint32_t spec_const_id = + FindSpecConstByName(linked_context->module(), var_name); + assert(spec_const_id != 0); + const uint32_t var_call_id = linked_context->TakeNextId(); + var_call_ids.push_back(std::make_pair(spec_const_id, var_call_id)); + + auto* var_call_inst = found_call_inst->Clone(linked_context); + var_call_inst->SetResultId(var_call_id); + var_call_inst->SetOperand(2, {fn->result_id()}); + var_call_inst->InsertAfter(last_inst); + linked_context->set_instr_block(var_call_inst, fn_call_bb); + last_inst = var_call_inst; + + // decorate the variant call with ConditionalINTEL + DecorateConditional(linked_context, var_call_id, spec_const_id); + } + + if (base_type_op != spv::Op::OpTypeVoid) { + // Add OpConditionalCopyObjectINTEL combining the function calls + const uint32_t result_id = linked_context->TakeNextId(); + auto conditional_copy_inst = new Instruction( + linked_context, spv::Op::OpConditionalCopyObjectINTEL, + found_call_inst->type_id(), result_id, + {{SPV_OPERAND_TYPE_ID, {base_spec_const_id}}, + {SPV_OPERAND_TYPE_ID, {found_call_inst->result_id()}}}); + + for (const auto& kv3 : var_call_ids) { + const auto spec_const_id = kv3.first; + const auto var_call_id = kv3.second; + conditional_copy_inst->AddOperand( + {SPV_OPERAND_TYPE_ID, {spec_const_id}}); + conditional_copy_inst->AddOperand({SPV_OPERAND_TYPE_ID, {var_call_id}}); + } + conditional_copy_inst->InsertAfter(last_inst); + linked_context->set_instr_block(conditional_copy_inst, fn_call_bb); + last_inst = conditional_copy_inst; + + // In all remaining instructions within the basic block, replace all + // usages of the base call ID with the result of + // OpConditionalCopyObjectINTEL + do { + last_inst = last_inst->NextNode(); + last_inst->ForEachInId([base_call_id, result_id](uint32_t* id) { + if (*id == base_call_id) { + *id = result_id; + } + }); + } while (last_inst != nullptr && *last_inst != *fn_call_bb->tail()); + } + } + + // Combine spec consts for the base module (base module is activated if all + // variant defs are inactive AND the base module constraints are satisfied) + + std::vector var_spec_const_ids; + for (const auto& variant_def : variant_defs_) { + if (variant_def.IsBase()) { + continue; + } + + const auto id = + FindSpecConstByName(linked_context->module(), variant_def.GetName()); + assert(id != 0); + var_spec_const_ids.push_back(id); + } + const uint32_t base_or_id = + CombineIds(linked_context, var_spec_const_ids, spv::Op::OpLogicalOr); + + if (base_or_id != 0) { + const uint32_t bool_id = FindIdOfBoolType(linked_context->module()); + assert(bool_id != 0); + + const uint32_t base_not_id = linked_context->TakeNextId(); + auto spec_const_op_inst = std::make_unique( + linked_context, spv::Op::OpSpecConstantOp, bool_id, base_not_id, + std::initializer_list{ + {SPV_OPERAND_TYPE_SPEC_CONSTANT_OP_NUMBER, + {(uint32_t)(spv::Op::OpLogicalNot)}}, + {SPV_OPERAND_TYPE_ID, {base_or_id}}}); + linked_context->module()->AddType(std::move(spec_const_op_inst)); + + // Update any ConditionalINTEL annotations, names and entry points + // referencing the old spec const ID to use the new one + + const uint32_t old_base_spec_const_id = FindSpecConstByName( + linked_context->module(), variant_defs_[0].GetName()); + assert(old_base_spec_const_id != 0); + const uint32_t base_spec_const_id = + CombineIds(linked_context, {old_base_spec_const_id, base_not_id}, + spv::Op::OpLogicalAnd); + + for (auto& annot_inst : linked_context->module()->annotations()) { + if ((annot_inst.GetSingleWordOperand(1) == + uint32_t(spv::Decoration::ConditionalINTEL)) && + (annot_inst.GetOperand(2).AsId() == old_base_spec_const_id)) { + annot_inst.SetOperand(2, {base_spec_const_id}); + } + } + + for (auto& name_inst : linked_context->module()->debugs2()) { + if ((name_inst.opcode() == spv::Op::OpName) && + (name_inst.GetOperand(0).AsId() == old_base_spec_const_id)) { + name_inst.SetOperand(0, {base_spec_const_id}); + } + } + + for (auto& ep_inst : linked_context->module()->entry_points()) { + if ((ep_inst.opcode() == spv::Op::OpConditionalEntryPointINTEL) && + (ep_inst.GetOperand(0).AsId() == old_base_spec_const_id)) { + ep_inst.SetOperand(0, {base_spec_const_id}); + } + } + + linked_context->module()->ForEachInst( + [old_base_spec_const_id, base_spec_const_id](Instruction* inst) { + if (inst->opcode() == spv::Op::OpConditionalCopyObjectINTEL) { + inst->ForEachInId( + [old_base_spec_const_id, base_spec_const_id](uint32_t* id) { + if (*id == old_base_spec_const_id) { + *id = base_spec_const_id; + } + }); + } + }); + } +} + +void VariantDefs::CombineInstructions(IRContext* linked_context) { + // cache for existing variant ID combinations + std::map, uint32_t> spec_const_comb_ids; + + linked_context->module()->ForEachInst( + [this, &linked_context, &spec_const_comb_ids](Instruction* inst) { + if (!CanBeFnVarCombined(inst)) { + return; + } + + const size_t inst_hash = HashInst(inst); + if (fnvar_usage_.find(inst_hash) != fnvar_usage_.end()) { + const std::vector var_ids = fnvar_usage_[inst_hash]; + const uint32_t spec_const_comb_id = CombineVariantDefs( + variant_defs_, var_ids, linked_context, spec_const_comb_ids); + if (spec_const_comb_id != 0) { + if (inst->HasResultId()) { + DecorateConditional(linked_context, inst->result_id(), + spec_const_comb_id); + } else if (inst->opcode() == spv::Op::OpCapability) { + const uint32_t cap = inst->GetSingleWordOperand(0); + inst->SetOpcode(spv::Op::OpConditionalCapabilityINTEL); + inst->SetInOperands({{SPV_OPERAND_TYPE_ID, {spec_const_comb_id}}, + {SPV_OPERAND_TYPE_CAPABILITY, {cap}}}); + } else if (inst->opcode() == spv::Op::OpExtension) { + const std::string ext_name = inst->GetOperand(0).AsString(); + inst->SetOpcode(spv::Op::OpConditionalExtensionINTEL); + inst->SetInOperands({{SPV_OPERAND_TYPE_ID, {spec_const_comb_id}}, + {SPV_OPERAND_TYPE_LITERAL_STRING, + {utils::MakeVector(ext_name)}}}); + } else { + assert(false && "Unsupported"); + } + } + } + }); +} + +} // namespace spvtools diff --git a/3rdparty/spirv-tools/source/link/fnvar.h b/3rdparty/spirv-tools/source/link/fnvar.h new file mode 100644 index 000000000..49db030b1 --- /dev/null +++ b/3rdparty/spirv-tools/source/link/fnvar.h @@ -0,0 +1,244 @@ +// Copyright 2025 The Khronos Group Inc. +// +// 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. + +// Implementation of generating multitarget modules according to the +// *SPV_INTEL_function_variants* extension +// +// Multitarget module is generated by linking separate modules: a base module +// and variant modules containing device-specific variants of the functions in +// the base module. The behavior is controlled by Comma-Separated Values (CSV) +// files passed to the following flags: +// --fnvar-targets: Required columns: +// module - module file name +// target - device target ISA value +// features - feature values for the target separated by '/' (FEAT_SEP) +// --fnvar-architectures: Required columns: +// module - module file name +// category - device category value +// family - device family value +// op - opcode of the comparison instruction +// architecture - device architecture +// The values (except module) are decimal strings with their meaning defined in +// the 'targets registry' as described in the extension spec. The decimal +// strings may only encode unsigned 32-bit integers (characters 0-9), possibly +// with leading zeros. +// +// In addition, --fnvar-capabilities generates OpSpecConstantCapabilitiesINTEL +// for each module with operands corresponding to the module's capabilities. +// +// Each line in the targets/architectures CSV file defines one +// OpSpecConstantINTEL instruction, the columns correspond +// to the operands of these instructions. One module can have multiple lines, in +// which case they are combined into a single boolean spec constant using +// OpSpecConstantOp and OpLogicalOr (except when category and family in the +// architectures CSV are the same, then the lines are combined with +// OpLogicalAnd). For example, the following architectures CSV +// +// module,category,family,op,architecture +// foo.spv,1,7,174,1 +// foo.spv,1,7,178,3 +// foo.spv,1,8,170,1 +// +// is combined as follows: +// +// %53 = OpSpecConstantArchitectureINTEL %bool 1 7 174 1 +// %54 = OpSpecConstantArchitectureINTEL %bool 1 7 178 3 +// %55 = OpSpecConstantArchitectureINTEL %bool 1 8 170 1 +// %56 = OpSpecConstantOp %bool LogicalAnd %53 %54 +// %foo_spv = OpSpecConstantOp %bool LogicalOr %55 %56 +// +// The %foo_spv is annotated with OpName "foo.spv" (the module's name) which +// serves as an identifier to find the constant later. We cannot use IDs for it +// because the IDs get shifted during linking. +// +// The first module passed to `spirv-link` is considered the 'base' module. For +// example, if base module defines functions 'foo' and 'bar' and the other +// modules define only 'foo', only the 'foo' is treated as a function variant +// guarded by spec constants. The 'bar' function will be untouched and therefore +// present for all variants. The function variants are matched by name, and +// therefore they must either have an entry point, or an Export linkage +// attribute. + +#ifndef FNVAR_H +#define FNVAR_H + +#include +#include +#include +#include + +#include "source/opt/ir_context.h" +#include "source/opt/module.h" +#include "spirv-tools/linker.hpp" + +namespace spvtools { + +using opt::IRContext; +using opt::Module; + +// Map of instruction hash -> which variants are using the instruction (denoted +// by the index to the variants vector) +using FnVarUsage = std::unordered_map>; + +// Map of base function call ID -> variant functions corresponding to the +// called function (along with the variant name) +using BaseFnCalls = + std::map>>; + +constexpr char FNVAR_EXT_NAME[] = "SPV_INTEL_function_variants"; +constexpr uint32_t FNVAR_REGISTRY_VERSION = 0; +constexpr char FEAT_SEP = '/'; + +struct FnVarArchDef { + uint32_t category; + uint32_t family; + uint32_t op; + uint32_t architecture; +}; + +struct FnVarTargetDef { + uint32_t target; + std::vector features; +}; + +// Definition of a variant +// +// Stores architecture and target definitions inferred from lines in the CSV +// files for a single module (as well as a pointer to the Module). +class VariantDef { + public: + VariantDef(bool isbase, std::string nm, Module* mod) + : is_base(isbase), name(nm), module(mod) {} + + bool IsBase() const { return this->is_base; } + std::string GetName() const { return this->name; } + Module* GetModule() const { return this->module; } + + void AddArchDef(uint32_t category, uint32_t family, uint32_t op, + uint32_t architecture) { + FnVarArchDef arch_def; + arch_def.category = category; + arch_def.family = family; + arch_def.op = op; + arch_def.architecture = architecture; + this->arch_defs.push_back(arch_def); + } + const std::vector& GetArchDefs() const { + return this->arch_defs; + } + + void AddTgtDef(uint32_t target, std::vector features) { + FnVarTargetDef tgt_def; + tgt_def.target = target; + tgt_def.features = features; + this->tgt_defs.push_back(tgt_def); + } + const std::vector& GetTgtDefs() const { + return this->tgt_defs; + } + + void InferCapabilities() { + for (const auto& cap_inst : module->capabilities()) { + capabilities.insert(spv::Capability(cap_inst.GetOperand(0).words[0])); + } + } + const std::set& GetCapabilities() const { + return this->capabilities; + } + + private: + bool is_base; + std::string name; + Module* module; + std::vector tgt_defs; + std::vector arch_defs; + std::set capabilities; +}; + +// Collection of VariantDef instances +// +// Apart from being a wrapper around a vector of VariantDef instances, it +// defines the main API for generating SPV_INTEL_function_variants instructions +// based on the CSV files. +class VariantDefs { + public: + // Returns last error message. + std::string GetErr() { return err_.str(); } + + // Processes CSV files passed to the CLI and populate _variants. + // + // Returns true on success, false on error. + bool ProcessFnVar(const LinkerOptions& options, + const std::vector& modules); + + // Analyses each variant def module and generates those instructions that are + // module-specific, ie., not requiring knowledge from other modules. + // + // Returns true on success, false on error. + bool ProcessVariantDefs(); + + // Generates basic instructions required for this extension to work. + void GenerateHeader(IRContext* linked_context); + + // Generates instructions from this extension that result from combining + // several variant def modules. + void CombineVariantInstructions(IRContext* linked_context); + + private: + // Adds a boolean type to every module if there is none. + // + // These are necessary for spec constants. + void EnsureBoolType(); + + // Collects which combinable instructions are defined in which modules + void CollectVarInsts(); + + // Generates OpSpecConstantINTEL and + // combines them as necessary. Also converts entry points to conditional ones + // and decorates module-specific instructions with ConditionalINTEL. + // + // Returns true on success, false on error. + bool GenerateFnVarConstants(); + + // Determines which functions in the base module are called by which function + // variants. + void CollectBaseFnCalls(); + + // Combines OpFunctionCall instructions collected with CollectBaseFnCalls() + // using conditional copy. + void CombineBaseFnCalls(IRContext* linked_context); + + // Decorates instructions shared between modules with ConditionalINTEL or + // generates conditional capabilities and extensions, depending on which + // variants are used by each. + void CombineInstructions(IRContext* linked_context); + + // Accumulates all errors encountered during processing. + std::stringstream err_; + + // Collection of VariantDef instances + std::vector variant_defs_; + + // Used for combining OpFunctionCall instructions + BaseFnCalls base_fn_calls_; + + // Used for determining which function variant uses which (applicable) + // instruction + FnVarUsage fnvar_usage_; +}; + +} // namespace spvtools + +#endif // FNVAR_H diff --git a/3rdparty/spirv-tools/source/link/linker.cpp b/3rdparty/spirv-tools/source/link/linker.cpp index 5fb4478f4..002cc41f1 100644 --- a/3rdparty/spirv-tools/source/link/linker.cpp +++ b/3rdparty/spirv-tools/source/link/linker.cpp @@ -15,9 +15,10 @@ #include "spirv-tools/linker.hpp" #include +#include #include #include -#include +#include #include #include #include @@ -26,18 +27,17 @@ #include #include +#include "fnvar.h" #include "source/diagnostic.h" #include "source/opt/build_module.h" #include "source/opt/compact_ids_pass.h" #include "source/opt/decoration_manager.h" #include "source/opt/ir_builder.h" -#include "source/opt/ir_loader.h" #include "source/opt/pass_manager.h" #include "source/opt/remove_duplicates_pass.h" #include "source/opt/remove_unused_interface_variables_pass.h" #include "source/opt/type_manager.h" #include "source/spirv_constant.h" -#include "source/spirv_target_env.h" #include "source/table2.h" #include "source/util/make_unique.h" #include "source/util/string_utils.h" @@ -328,7 +328,10 @@ spv_result_t MergeModules(const MessageConsumer& consumer, for (const auto& module : input_modules) for (const auto& inst : module->entry_points()) { const uint32_t model = inst.GetSingleWordInOperand(0); - const std::string name = inst.GetInOperand(2).AsString(); + const std::string name = + inst.opcode() == spv::Op::OpConditionalEntryPointINTEL + ? inst.GetOperand(3).AsString() + : inst.GetOperand(2).AsString(); const auto i = std::find_if( entry_points.begin(), entry_points.end(), [model, name](const std::pair& v) { @@ -728,8 +731,7 @@ spv_result_t VerifyLimits(const MessageConsumer& consumer, if (max_id_bound >= SPV_LIMIT_RESULT_ID_BOUND) DiagnosticStream({0u, 0u, 4u}, consumer, "", SPV_WARNING) << "The minimum limit of IDs, " << (SPV_LIMIT_RESULT_ID_BOUND - 1) - << ", was exceeded:" - << " " << max_id_bound << " is the current ID bound.\n" + << ", was exceeded: " << max_id_bound << " is the current ID bound.\n" << "The resulting module might not be supported by all " "implementations."; @@ -740,8 +742,8 @@ spv_result_t VerifyLimits(const MessageConsumer& consumer, if (num_global_values >= SPV_LIMIT_GLOBAL_VARIABLES_MAX) DiagnosticStream(position, consumer, "", SPV_WARNING) << "The minimum limit of global values, " - << (SPV_LIMIT_GLOBAL_VARIABLES_MAX - 1) << ", was exceeded;" - << " " << num_global_values << " global values were found.\n" + << (SPV_LIMIT_GLOBAL_VARIABLES_MAX - 1) << ", was exceeded; " + << num_global_values << " global values were found.\n" << "The resulting module might not be supported by all " "implementations."; @@ -853,6 +855,22 @@ spv_result_t Link(const Context& context, const uint32_t* const* binaries, ir_contexts.push_back(std::move(ir_context)); } + const bool make_multitarget = !options.GetFnVarArchitecturesCsv().empty() || + !options.GetFnVarTargetsCsv().empty(); + + VariantDefs variant_defs; + + if (make_multitarget) { + if (!variant_defs.ProcessFnVar(options, modules)) { + return DiagnosticStream(position, consumer, "", SPV_ERROR_FNVAR) + << variant_defs.GetErr(); + } + if (!variant_defs.ProcessVariantDefs()) { + return DiagnosticStream(position, consumer, "", SPV_ERROR_FNVAR) + << variant_defs.GetErr(); + } + } + // Phase 1: Shift the IDs used in each binary so that they occupy a disjoint // range from the other binaries, and compute the new ID bound. uint32_t max_id_bound = 0u; @@ -866,6 +884,10 @@ spv_result_t Link(const Context& context, const uint32_t* const* binaries, IRContext linked_context(c_context->target_env, consumer); linked_context.module()->SetHeader(header); + if (make_multitarget) { + variant_defs.GenerateHeader(&linked_context); + } + // Phase 3: Merge all the binaries into a single one. res = MergeModules(consumer, modules, &linked_context); if (res != SPV_SUCCESS) return res; @@ -882,6 +904,10 @@ spv_result_t Link(const Context& context, const uint32_t* const* binaries, opt::Pass::Status pass_res = manager.Run(&linked_context); if (pass_res == opt::Pass::Status::Failure) return SPV_ERROR_INVALID_DATA; + if (make_multitarget) { + variant_defs.CombineVariantInstructions(&linked_context); + } + // Phase 5: Find the import/export pairs LinkageTable linkings_to_do; res = GetImportExportPairs(consumer, linked_context, diff --git a/3rdparty/spirv-tools/source/mimalloc.cpp b/3rdparty/spirv-tools/source/mimalloc.cpp new file mode 100644 index 000000000..8e086d583 --- /dev/null +++ b/3rdparty/spirv-tools/source/mimalloc.cpp @@ -0,0 +1,15 @@ +// Copyright (c) 2025 The Khronos Group Inc. +// +// 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 "mimalloc-new-delete.h" diff --git a/3rdparty/spirv-tools/source/opcode.cpp b/3rdparty/spirv-tools/source/opcode.cpp index 665574aa1..a8b4102ed 100644 --- a/3rdparty/spirv-tools/source/opcode.cpp +++ b/3rdparty/spirv-tools/source/opcode.cpp @@ -120,6 +120,9 @@ int32_t spvOpcodeIsSpecConstant(const spv::Op opcode) { case spv::Op::OpSpecConstantComposite: case spv::Op::OpSpecConstantCompositeReplicateEXT: case spv::Op::OpSpecConstantOp: + case spv::Op::OpSpecConstantArchitectureINTEL: + case spv::Op::OpSpecConstantTargetINTEL: + case spv::Op::OpSpecConstantCapabilitiesINTEL: return true; default: return false; @@ -144,6 +147,12 @@ int32_t spvOpcodeIsConstant(const spv::Op opcode) { case spv::Op::OpSpecConstantCompositeReplicateEXT: case spv::Op::OpSpecConstantOp: case spv::Op::OpSpecConstantStringAMDX: + case spv::Op::OpGraphConstantARM: + case spv::Op::OpAsmTargetINTEL: + case spv::Op::OpAsmINTEL: + case spv::Op::OpSpecConstantArchitectureINTEL: + case spv::Op::OpSpecConstantTargetINTEL: + case spv::Op::OpSpecConstantCapabilitiesINTEL: return true; default: return false; @@ -264,6 +273,7 @@ int32_t spvOpcodeGeneratesType(spv::Op op) { case spv::Op::OpTypeTensorViewNV: case spv::Op::OpTypeTensorARM: case spv::Op::OpTypeTaskSequenceINTEL: + case spv::Op::OpTypeGraphARM: return true; default: // In particular, OpTypeForwardPointer does not generate a type, diff --git a/3rdparty/spirv-tools/source/operand.cpp b/3rdparty/spirv-tools/source/operand.cpp index c635c72d6..033c01a57 100644 --- a/3rdparty/spirv-tools/source/operand.cpp +++ b/3rdparty/spirv-tools/source/operand.cpp @@ -111,6 +111,7 @@ const char* spvOperandTypeStr(spv_operand_type_t type) { case SPV_OPERAND_TYPE_KERNEL_PROFILING_INFO: return "kernel profiling info"; case SPV_OPERAND_TYPE_CAPABILITY: + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return "capability"; case SPV_OPERAND_TYPE_RAY_FLAGS: return "ray flags"; @@ -394,6 +395,7 @@ bool spvOperandIsOptional(spv_operand_type_t type) { case SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS: case SPV_OPERAND_TYPE_OPTIONAL_FPENCODING: case SPV_OPERAND_TYPE_OPTIONAL_TENSOR_OPERANDS: + case SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY: return true; default: break; @@ -408,6 +410,7 @@ bool spvOperandIsVariable(spv_operand_type_t type) { case SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER: case SPV_OPERAND_TYPE_VARIABLE_LITERAL_INTEGER_ID: case SPV_OPERAND_TYPE_VARIABLE_ID_LITERAL_INTEGER: + case SPV_OPERAND_TYPE_VARIABLE_CAPABILITY: return true; default: break; @@ -439,6 +442,10 @@ bool spvExpandOperandSequenceOnce(spv_operand_type_t type, pattern->push_back(SPV_OPERAND_TYPE_LITERAL_INTEGER); pattern->push_back(SPV_OPERAND_TYPE_OPTIONAL_ID); return true; + case SPV_OPERAND_TYPE_VARIABLE_CAPABILITY: + pattern->push_back(type); + pattern->push_back(SPV_OPERAND_TYPE_OPTIONAL_CAPABILITY); + return true; default: break; } @@ -521,6 +528,9 @@ std::function spvOperandCanBeForwardDeclaredFunction( case spv::Op::OpMemberDecorateStringGOOGLE: case spv::Op::OpBranch: case spv::Op::OpLoopMerge: + case spv::Op::OpConditionalEntryPointINTEL: + case spv::Op::OpConditionalCapabilityINTEL: + case spv::Op::OpConditionalExtensionINTEL: out = [](unsigned) { return true; }; break; case spv::Op::OpGroupDecorate: @@ -571,6 +581,9 @@ std::function spvOperandCanBeForwardDeclaredFunction( // approximate, due to variable operands out = [](unsigned index) { return index > 6; }; break; + case spv::Op::OpGraphEntryPointARM: + out = [](unsigned index) { return index == 0; }; + break; default: out = [](unsigned) { return false; }; break; diff --git a/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp b/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp index 51f2f1aff..10ec1426a 100644 --- a/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp @@ -44,6 +44,9 @@ constexpr uint32_t kExtInstSetInIdx = 0; constexpr uint32_t kExtInstOpInIdx = 1; constexpr uint32_t kInterpolantInIdx = 2; constexpr uint32_t kCooperativeMatrixLoadSourceAddrInIdx = 0; +constexpr uint32_t kDebugValueLocalVariable = 2; +constexpr uint32_t kDebugValueValue = 3; +constexpr uint32_t kDebugValueExpression = 4; // Sorting functor to present annotation instructions in an easy-to-process // order. The functor orders by opcode first and falls back on unique id @@ -277,9 +280,53 @@ bool AggressiveDCEPass::AggressiveDCE(Function* func) { live_local_vars_.clear(); InitializeWorkList(func, structured_order); ProcessWorkList(func); + ProcessDebugInformation(structured_order); + ProcessWorkList(func); return KillDeadInstructions(func, structured_order); } +void AggressiveDCEPass::ProcessDebugInformation( + std::list& structured_order) { + for (auto bi = structured_order.begin(); bi != structured_order.end(); bi++) { + (*bi)->ForEachInst([this](Instruction* inst) { + // DebugDeclare is not dead. It must be converted to DebugValue in a + // later pass + if (inst->IsNonSemanticInstruction() && + inst->GetShader100DebugOpcode() == + NonSemanticShaderDebugInfo100DebugDeclare) { + AddToWorklist(inst); + return; + } + + // If the Value of a DebugValue is killed, set Value operand to Undef + if (inst->IsNonSemanticInstruction() && + inst->GetShader100DebugOpcode() == + NonSemanticShaderDebugInfo100DebugValue) { + uint32_t id = inst->GetSingleWordInOperand(kDebugValueValue); + auto def = get_def_use_mgr()->GetDef(id); + if (!live_insts_.Set(def->unique_id())) { + AddToWorklist(inst); + context()->get_def_use_mgr()->UpdateDefUse(inst); + worklist_.push(def); + def->SetOpcode(spv::Op::OpUndef); + def->SetInOperands({}); + id = inst->GetSingleWordInOperand(kDebugValueLocalVariable); + auto localVar = get_def_use_mgr()->GetDef(id); + AddToWorklist(localVar); + context()->get_def_use_mgr()->UpdateDefUse(localVar); + AddOperandsToWorkList(localVar); + context()->get_def_use_mgr()->UpdateDefUse(def); + id = inst->GetSingleWordInOperand(kDebugValueExpression); + auto expression = get_def_use_mgr()->GetDef(id); + AddToWorklist(expression); + context()->get_def_use_mgr()->UpdateDefUse(expression); + return; + } + } + }); + } +} + bool AggressiveDCEPass::KillDeadInstructions( const Function* func, std::list& structured_order) { bool modified = false; @@ -916,8 +963,17 @@ bool AggressiveDCEPass::ProcessGlobalValues() { } // Save debug build identifier even if no other instructions refer to it. if (dbg.GetShader100DebugOpcode() == - NonSemanticShaderDebugInfo100DebugBuildIdentifier) + NonSemanticShaderDebugInfo100DebugBuildIdentifier) { + // The debug build identifier refers to other instructions that + // can potentially be removed, they also need to be kept alive. + dbg.ForEachInId([this](const uint32_t* id) { + Instruction* ref_inst = get_def_use_mgr()->GetDef(*id); + if (ref_inst) { + live_insts_.Set(ref_inst->unique_id()); + } + }); continue; + } to_kill_.push_back(&dbg); modified = true; } diff --git a/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.h b/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.h index fbe08ad03..c898d9195 100644 --- a/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.h +++ b/3rdparty/spirv-tools/source/opt/aggressive_dead_code_elim_pass.h @@ -150,6 +150,12 @@ class AggressiveDCEPass : public MemPass { // will be empty at the end. void ProcessWorkList(Function* func); + // Process each DebugDeclare and DebugValue in |func| that has not been + // marked as live in the work list. DebugDeclare's are marked live now, and + // DebugValue Value operands are set to OpUndef. The work list will be empty + // at the end. + void ProcessDebugInformation(std::list& structured_order); + // Kills any instructions in |func| that have not been marked as live. bool KillDeadInstructions(const Function* func, std::list& structured_order); diff --git a/3rdparty/spirv-tools/source/opt/canonicalize_ids_pass.cpp b/3rdparty/spirv-tools/source/opt/canonicalize_ids_pass.cpp new file mode 100644 index 000000000..658dec521 --- /dev/null +++ b/3rdparty/spirv-tools/source/opt/canonicalize_ids_pass.cpp @@ -0,0 +1,516 @@ +// Copyright (c) 2025 LunarG Inc. +// +// 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 "source/opt/canonicalize_ids_pass.h" + +#include +#include + +namespace spvtools { +namespace opt { + +Pass::Status CanonicalizeIdsPass::Process() { + // Initialize the new ID map. + new_id_.resize(GetBound(), unused_); + + // Scan the IDs and set to unmapped. + ScanIds(); + + // Create new IDs for types and consts. + CanonicalizeTypeAndConst(); + + // Create new IDs for names. + CanonicalizeNames(); + + // Create new IDs for functions. + CanonicalizeFunctions(); + + // Create new IDs for everything else. + CanonicalizeRemainders(); + + // Apply the new IDs to the module. + auto const modified = ApplyMap(); + + // Update bound in the header. + if (modified) { + UpdateBound(); + } + + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; +} + +void CanonicalizeIdsPass::ScanIds() { + get_module()->ForEachInst( + [this](Instruction* inst) { + // Look for types and constants. + if (spvOpcodeGeneratesType(inst->opcode()) || + spvOpcodeIsConstant(inst->opcode())) { + type_and_const_ids_.push_back(inst->result_id()); + SetNewId(inst->result_id(), unmapped_); + } + // Look for names. + else if (inst->opcode() == spv::Op::OpName) { + // store name string in map so that we can compute the hash later + auto const name = inst->GetOperand(1).AsString(); + auto const target = inst->GetSingleWordInOperand(0); + name_ids_[name] = target; + SetNewId(target, unmapped_); + } + // Look for function IDs. + else if (inst->opcode() == spv::Op::OpFunction) { + auto const res_id = inst->result_id(); + function_ids_.push_back(res_id); + SetNewId(res_id, unmapped_); + } + // Look for remaining result IDs. + else if (inst->HasResultId()) { + auto const res_id = inst->result_id(); + SetNewId(res_id, unmapped_); + } + }, + true); +} + +void CanonicalizeIdsPass::CanonicalizeTypeAndConst() { + // Remap type IDs. + static constexpr std::uint32_t soft_type_id_limit = 3011; // small prime. + static constexpr std::uint32_t first_mapped_id = 8; // offset into ID space + for (auto const id : type_and_const_ids_) { + if (!IsOldIdUnmapped(id)) { + continue; + } + + // Compute the hash value. + auto const hash_value = HashTypeAndConst(id); + if (hash_value != unmapped_) { + SetNewId(id, hash_value % soft_type_id_limit + first_mapped_id); + } + } +} + +// Hash types to canonical values. This can return ID collisions (it's a bit +// inevitable): it's up to the caller to handle that gracefully. +spv::Id CanonicalizeIdsPass::HashTypeAndConst(spv::Id const id) const { + spv::Id value = 0; + + auto const inst = get_def_use_mgr()->GetDef(id); + auto const op_code = inst->opcode(); + switch (op_code) { + case spv::Op::OpTypeVoid: + value = 0; + break; + case spv::Op::OpTypeBool: + value = 1; + break; + case spv::Op::OpTypeInt: { + auto const signedness = inst->GetSingleWordOperand(2); + value = 3 + signedness; + break; + } + case spv::Op::OpTypeFloat: + value = 5; + break; + case spv::Op::OpTypeVector: { + auto const component_type = inst->GetSingleWordOperand(1); + auto const component_count = inst->GetSingleWordOperand(2); + value = 6 + HashTypeAndConst(component_type) * (component_count - 1); + break; + } + case spv::Op::OpTypeMatrix: { + auto const column_type = inst->GetSingleWordOperand(1); + auto const column_count = inst->GetSingleWordOperand(2); + value = 30 + HashTypeAndConst(column_type) * (column_count - 1); + break; + } + case spv::Op::OpTypeImage: { + // TODO: Why isn't the format used to compute the hash value? + auto const sampled_type = inst->GetSingleWordOperand(1); + auto const dim = inst->GetSingleWordOperand(2); + auto const depth = inst->GetSingleWordOperand(3); + auto const arrayed = inst->GetSingleWordOperand(4); + auto const ms = inst->GetSingleWordOperand(5); + auto const sampled = inst->GetSingleWordOperand(6); + value = 120 + HashTypeAndConst(sampled_type) + dim + depth * 8 * 16 + + arrayed * 4 * 16 + ms * 2 * 16 + sampled * 1 * 16; + break; + } + case spv::Op::OpTypeSampler: + value = 500; + break; + case spv::Op::OpTypeSampledImage: + value = 502; + break; + case spv::Op::OpTypeArray: { + auto const element_type = inst->GetSingleWordOperand(1); + auto const length = inst->GetSingleWordOperand(2); + value = 501 + HashTypeAndConst(element_type) * length; + break; + } + case spv::Op::OpTypeRuntimeArray: { + auto const element_type = inst->GetSingleWordOperand(1); + value = 5000 + HashTypeAndConst(element_type); + break; + } + case spv::Op::OpTypeStruct: + value = 10000; + for (uint32_t w = 1; w < inst->NumOperandWords(); ++w) { + value += (w + 1) * HashTypeAndConst(inst->GetSingleWordOperand(w)); + } + break; + case spv::Op::OpTypeOpaque: { + // TODO: Name is a literal that may have more than one word. + auto const name = inst->GetSingleWordOperand(1); + value = 6000 + name; + break; + } + case spv::Op::OpTypePointer: { + auto const type = inst->GetSingleWordOperand(2); + value = 100000 + HashTypeAndConst(type); + break; + } + case spv::Op::OpTypeFunction: + value = 200000; + for (uint32_t w = 1; w < inst->NumOperandWords(); ++w) { + value += (w + 1) * HashTypeAndConst(inst->GetSingleWordOperand(w)); + } + break; + case spv::Op::OpTypeEvent: + value = 300000; + break; + case spv::Op::OpTypeDeviceEvent: + value = 300001; + break; + case spv::Op::OpTypeReserveId: + value = 300002; + break; + case spv::Op::OpTypeQueue: + value = 300003; + break; + case spv::Op::OpTypePipe: + value = 300004; + break; + case spv::Op::OpTypePipeStorage: + value = 300005; + break; + case spv::Op::OpTypeNamedBarrier: + value = 300006; + break; + case spv::Op::OpConstantTrue: + value = 300007; + break; + case spv::Op::OpConstantFalse: + value = 300008; + break; + case spv::Op::OpTypeRayQueryKHR: + value = 300009; + break; + case spv::Op::OpTypeAccelerationStructureKHR: + value = 300010; + break; + // Don't map the following types. + // TODO: These types were not remapped in the glslang version of the + // remapper. Support should be added as necessary. + case spv::Op::OpTypeCooperativeMatrixNV: + case spv::Op::OpTypeCooperativeMatrixKHR: + case spv::Op::OpTypeCooperativeVectorNV: + case spv::Op::OpTypeHitObjectNV: + case spv::Op::OpTypeUntypedPointerKHR: + case spv::Op::OpTypeNodePayloadArrayAMDX: + case spv::Op::OpTypeTensorLayoutNV: + case spv::Op::OpTypeTensorViewNV: + case spv::Op::OpTypeTensorARM: + case spv::Op::OpTypeTaskSequenceINTEL: + value = unmapped_; + break; + case spv::Op::OpConstant: { + auto const result_type = inst->GetSingleWordOperand(0); + value = 400011 + HashTypeAndConst(result_type); + auto const literal = inst->GetOperand(2); + for (uint32_t w = 0; w < literal.words.size(); ++w) { + value += (w + 3) * literal.words[w]; + } + break; + } + case spv::Op::OpConstantComposite: { + auto const result_type = inst->GetSingleWordOperand(0); + value = 300011 + HashTypeAndConst(result_type); + for (uint32_t w = 2; w < inst->NumOperandWords(); ++w) { + value += (w + 1) * HashTypeAndConst(inst->GetSingleWordOperand(w)); + } + break; + } + case spv::Op::OpConstantNull: { + auto const result_type = inst->GetSingleWordOperand(0); + value = 500009 + HashTypeAndConst(result_type); + break; + } + case spv::Op::OpConstantSampler: { + auto const result_type = inst->GetSingleWordOperand(0); + value = 600011 + HashTypeAndConst(result_type); + for (uint32_t w = 2; w < inst->NumOperandWords(); ++w) { + value += (w + 1) * inst->GetSingleWordOperand(w); + } + break; + } + // Don't map the following constants. + // TODO: These constants were not remapped in the glslang version of the + // remapper. Support should be added as necessary. + case spv::Op::OpConstantCompositeReplicateEXT: + case spv::Op::OpConstantFunctionPointerINTEL: + case spv::Op::OpConstantStringAMDX: + case spv::Op::OpSpecConstantTrue: + case spv::Op::OpSpecConstantFalse: + case spv::Op::OpSpecConstant: + case spv::Op::OpSpecConstantComposite: + case spv::Op::OpSpecConstantCompositeReplicateEXT: + case spv::Op::OpSpecConstantOp: + case spv::Op::OpSpecConstantStringAMDX: + value = unmapped_; + break; + // TODO: Add additional types/constants as needed. See + // spvOpcodeGeneratesType and spvOpcodeIsConstant. + default: + context()->consumer()(SPV_MSG_WARNING, "", {0, 0, 0}, + "unhandled opcode will not be canonicalized"); + break; + } + + return value; +} + +void CanonicalizeIdsPass::CanonicalizeNames() { + static constexpr std::uint32_t soft_type_id_limit = 3011; // Small prime. + static constexpr std::uint32_t first_mapped_id = + 3019; // Offset into ID space. + + for (auto const& [name, target] : name_ids_) { + if (!IsOldIdUnmapped(target)) { + continue; + } + + spv::Id hash_value = 1911; + for (const char c : name) { + hash_value = hash_value * 1009 + c; + } + + if (IsOldIdUnmapped(target)) { + SetNewId(target, hash_value % soft_type_id_limit + first_mapped_id); + } + } +} + +void CanonicalizeIdsPass::CanonicalizeFunctions() { + static constexpr std::uint32_t soft_type_id_limit = 19071; // Small prime. + static constexpr std::uint32_t first_mapped_id = + 6203; // Offset into ID space. + // Window size for context-sensitive canonicalization values + // Empirical best size from a single data set. TODO: Would be a good tunable. + // We essentially perform a little convolution around each instruction, + // to capture the flavor of nearby code, to hopefully match to similar + // code in other modules. + static const int32_t window_size = 2; + + for (auto const func_id : function_ids_) { + // Store the instructions and opcode hash values in vectors so that the + // window of instructions can be easily accessed and avoid having to + // recompute the hash value repeatedly in overlapping windows. + std::vector insts; + std::vector opcode_hashvals; + auto const func = context()->GetFunction(func_id); + func->WhileEachInst([&](Instruction* inst) { + insts.emplace_back(inst); + opcode_hashvals.emplace_back(HashOpCode(inst)); + return true; + }); + + // For every instruction in the function, compute the hash value using the + // instruction and a small window of surrounding instructions. + assert(insts.size() < (size_t)std::numeric_limits::max()); + for (int32_t i = 0; i < (int32_t)insts.size(); ++i) { + auto const inst = insts[i]; + if (!inst->HasResultId()) { + continue; + } + + auto const old_id = inst->result_id(); + if (!IsOldIdUnmapped(old_id)) { + continue; + } + + int32_t const lower_bound = std::max(0, i - window_size); + int32_t const upper_bound = + std::min((int32_t)insts.size() - 1, i + window_size); + spv::Id hash_value = func_id * 17; // Small prime. + // Include the hash value of the preceding instructions in the hash but + // don't include instructions before the OpFunction. + for (int32_t j = i - 1; j >= lower_bound; --j) { + auto const local_inst = insts[j]; + if (local_inst->opcode() == spv::Op::OpFunction) { + break; + } + + hash_value = hash_value * 30103 + + opcode_hashvals[j]; // 30103 is a semi-arbitrary prime. + } + + // Include the hash value of the subsequent instructions in the hash but + // don't include instructions past OpFunctionEnd. + for (int32_t j = i; j <= upper_bound; ++j) { + auto const local_inst = insts[j]; + if (local_inst->opcode() == spv::Op::OpFunctionEnd) { + break; + } + + hash_value = hash_value * 30103 + + opcode_hashvals[j]; // 30103 is a semiarbitrary prime. + } + + SetNewId(old_id, hash_value % soft_type_id_limit + first_mapped_id); + } + } +} + +spv::Id CanonicalizeIdsPass::HashOpCode(Instruction const* const inst) const { + auto const op_code = inst->opcode(); + std::uint32_t offset = 0; + if (op_code == spv::Op::OpExtInst) { + // offset is literal instruction + offset = inst->GetSingleWordOperand(3); + } + + return (std::uint32_t)op_code * 19 + offset; // 19 is a small prime. +} + +// Assign remaining IDs sequentially from remaining holes in the new ID space. +void CanonicalizeIdsPass::CanonicalizeRemainders() { + spv::Id next_id = 1; + for (uint32_t old_id = 0; old_id < new_id_.size(); ++old_id) { + if (IsOldIdUnmapped(old_id)) { + next_id = SetNewId(old_id, next_id); + } + } +} + +bool CanonicalizeIdsPass::ApplyMap() { + bool modified = false; + context()->module()->ForEachInst( + [this, &modified](Instruction* inst) { + for (auto operand = inst->begin(); operand != inst->end(); ++operand) { + const auto type = operand->type; + if (spvIsIdType(type)) { + uint32_t& id = operand->words[0]; + uint32_t const new_id = GetNewId(id); + if (new_id == unused_) { + continue; + } + + assert(new_id != unmapped_ && "new_id should not be unmapped_"); + + if (id != new_id) { + modified = true; + id = new_id; + if (type == SPV_OPERAND_TYPE_RESULT_ID) { + inst->SetResultId(new_id); + } else if (type == SPV_OPERAND_TYPE_TYPE_ID) { + inst->SetResultType(new_id); + } + } + } + } + }, + true); + + return modified; +} + +spv::Id CanonicalizeIdsPass::GetBound() const { + return context()->module()->id_bound(); +} + +void CanonicalizeIdsPass::UpdateBound() { + context()->module()->SetIdBound(context()->module()->ComputeIdBound()); + + context()->ResetFeatureManager(); +} + +// Set a new ID. If the new ID is alreadly claimed, the next consecutive ID +// will be claimed, mapped, and returned to the caller. +spv::Id CanonicalizeIdsPass::SetNewId(spv::Id const old_id, spv::Id new_id) { + assert(old_id < GetBound() && "don't remap an ID that is out of bounds"); + + if (old_id >= new_id_.size()) { + new_id_.resize(old_id + 1, unused_); + } + + if (new_id != unmapped_ && new_id != unused_) { + assert(!IsOldIdUnused(old_id) && "don't remap unused IDs"); + assert(IsOldIdUnmapped(old_id) && "don't remap already mapped IDs"); + + new_id = ClaimNewId(new_id); + } + + new_id_[old_id] = new_id; + + return new_id; +} + +// Helper function for SetNewID. Claim a new ID. If the new ID is already +// claimed, the next consecutive ID will be claimed and returned to the caller. +spv::Id CanonicalizeIdsPass::ClaimNewId(spv::Id new_id) { + // Return the ID if it's not taken. + auto iter = claimed_new_ids_.find(new_id); + if (iter != claimed_new_ids_.end()) { + // Otherwise, search for the next unused ID using our current iterator. + // Technically, it's a linear search across the set starting at the + // iterator, but it's not as bad as it would appear in practice assuming the + // hash values are well distributed. + iter = std::adjacent_find(iter, claimed_new_ids_.end(), [](int a, int b) { + return a + 1 != b; // Stop at the first non-consecutive pair. + }); + if (iter != claimed_new_ids_.end()) { + new_id = + *iter + 1; // We need the next ID after where the search stopped. + } else { + new_id = *(--iter) + 1; // We reached the end so we use the next ID. + } + } + + assert(!IsNewIdClaimed(new_id) && + "don't remap to an ID that is already claimed"); + iter = claimed_new_ids_.insert(iter, new_id); + assert(*iter == new_id); + + return new_id; +} + +std::string CanonicalizeIdsPass::IdAsString(spv::Id const id) const { + if (id == unused_) { + return "unused"; + } else if (id == unmapped_) { + return "unmapped"; + } else { + return std::to_string(id); + } +} + +void CanonicalizeIdsPass::PrintNewIds() const { + for (spv::Id id = 0; id < new_id_.size(); ++id) { + auto const message = + "new id[" + IdAsString(id) + "]: " + IdAsString(new_id_[id]); + context()->consumer()(SPV_MSG_INFO, "", {0, 0, 0}, message.c_str()); + } +} + +} // namespace opt +} // namespace spvtools diff --git a/3rdparty/spirv-tools/source/opt/canonicalize_ids_pass.h b/3rdparty/spirv-tools/source/opt/canonicalize_ids_pass.h new file mode 100644 index 000000000..6c38d3412 --- /dev/null +++ b/3rdparty/spirv-tools/source/opt/canonicalize_ids_pass.h @@ -0,0 +1,115 @@ +// Copyright (c) 2025 LunarG Inc. +// +// 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 + +#include "source/opt/pass.h" + +namespace spvtools { +namespace opt { + +// The canonicalize IDs pass is an optimization to improve compression of SPIR-V +// binary files via entropy reduction. It transforms SPIR-V to SPIR-V, remapping +// IDs. The resulting modules have an increased ID range (IDs are not as tightly +// packed around zero), but will compress better when multiple modules are +// compressed together, since the compressor's dictionary can find better cross +// module commonality. Remapping is accomplished via canonicalization. Thus, +// modules can be compressed one at a time with no loss of quality relative to +// operating on many modules at once. + +// This pass should be run after most optimization passes except for +// --strip-debug because this pass will use OpName to canonicalize IDs. i.e. Run +// --strip-debug after this pass. + +// This is a port of remap utility in glslang. There are great deal of magic +// numbers that are present throughout this code. The general goal is to replace +// the IDs with a hash value such that the distribution of IDs is deterministic +// and minimizes collisions. The magic numbers in the glslang version were +// chosen semi-arbitrarily and have been preserved in this port in order to +// maintain backward compatibility. + +class CanonicalizeIdsPass : public Pass { + public: + CanonicalizeIdsPass() = default; + virtual ~CanonicalizeIdsPass() = default; + + Pass::Status Process() override; + + const char* name() const override { return "canonicalize-ids"; } + + private: + // Special values for IDs. + static constexpr spv::Id unmapped_{spv::Id(-10000)}; + static constexpr spv::Id unused_{spv::Id(-10001)}; + + // Scans the module for IDs and sets them to unmapped_. + void ScanIds(); + + // Functions to compute new IDs. + void CanonicalizeTypeAndConst(); + spv::Id HashTypeAndConst( + spv::Id const id) const; // Helper for CanonicalizeTypeAndConst. + void CanonicalizeNames(); + void CanonicalizeFunctions(); + spv::Id HashOpCode(Instruction const* const inst) + const; // Helper for CanonicalizeFunctions. + void CanonicalizeRemainders(); + + // Applies the new IDs. + bool ApplyMap(); + + // Methods to manage the bound field in header. + spv::Id GetBound() const; // All IDs must satisfy 0 < ID < bound. + void UpdateBound(); + + // Methods to map from old IDs to new IDs. + spv::Id GetNewId(spv::Id const old_id) const { return new_id_[old_id]; } + spv::Id SetNewId(spv::Id const old_id, spv::Id new_id); + + // Methods to manage claimed IDs. + spv::Id ClaimNewId(spv::Id new_id); + bool IsNewIdClaimed(spv::Id const new_id) const { + return claimed_new_ids_.find(new_id) != claimed_new_ids_.end(); + } + + // Queries for old IDs. + bool IsOldIdUnmapped(spv::Id const old_id) const { + return GetNewId(old_id) == unmapped_; + } + bool IsOldIdUnused(spv::Id const old_id) const { + return GetNewId(old_id) == unused_; + } + + // Container to map old IDs to new IDs. e.g. new_id_[old_id] = new_id + std::vector new_id_; + + // IDs from the new ID space that have been claimed (faster than searching + // through new_id_). + std::set claimed_new_ids_; + + // Helper functions for printing IDs (useful for debugging). + std::string IdAsString(spv::Id const id) const; + void PrintNewIds() const; + + // Containers to track IDs we want to canonicalize. + std::vector type_and_const_ids_; + std::map name_ids_; + std::vector function_ids_; +}; + +} // namespace opt +} // namespace spvtools diff --git a/3rdparty/spirv-tools/source/opt/ccp_pass.cpp b/3rdparty/spirv-tools/source/opt/ccp_pass.cpp index 46bfc907d..a15e5a018 100644 --- a/3rdparty/spirv-tools/source/opt/ccp_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/ccp_pass.cpp @@ -360,6 +360,13 @@ void CCPPass::Initialize() { } } + // Mark the extended instruction imports as `kVarying`. We know they + // will not be constants, and will be used by `OpExtInst` instructions. + // This allows those instructions to be fully processed. + for (const auto& inst : get_module()->ext_inst_imports()) { + values_[inst.result_id()] = kVaryingSSAId; + } + original_id_bound_ = context()->module()->IdBound(); } diff --git a/3rdparty/spirv-tools/source/opt/const_folding_rules.cpp b/3rdparty/spirv-tools/source/opt/const_folding_rules.cpp index a5d4cbe75..58b53207c 100644 --- a/3rdparty/spirv-tools/source/opt/const_folding_rules.cpp +++ b/3rdparty/spirv-tools/source/opt/const_folding_rules.cpp @@ -1395,9 +1395,12 @@ ConstantFoldingRule FoldFMix() { if (base_type->AsFloat()->width() == 32) { one = const_mgr->GetConstant(base_type, utils::FloatProxy(1.0f).GetWords()); - } else { + } else if (base_type->AsFloat()->width() == 64) { one = const_mgr->GetConstant(base_type, utils::FloatProxy(1.0).GetWords()); + } else { + // We won't support folding half types. + return nullptr; } if (is_vector) { @@ -1433,14 +1436,29 @@ const analysis::Constant* FoldMin(const analysis::Type* result_type, const analysis::Constant* b, analysis::ConstantManager*) { if (const analysis::Integer* int_type = result_type->AsInteger()) { - if (int_type->width() == 32) { + if (int_type->width() <= 32) { + assert( + (a->AsIntConstant() != nullptr || a->AsNullConstant() != nullptr) && + "Must be an integer or null constant."); + assert( + (b->AsIntConstant() != nullptr || b->AsNullConstant() != nullptr) && + "Must be an integer or null constant."); + if (int_type->IsSigned()) { - int32_t va = a->GetS32(); - int32_t vb = b->GetS32(); + int32_t va = (a->AsIntConstant() != nullptr) + ? a->AsIntConstant()->GetS32BitValue() + : 0; + int32_t vb = (b->AsIntConstant() != nullptr) + ? b->AsIntConstant()->GetS32BitValue() + : 0; return (va < vb ? a : b); } else { - uint32_t va = a->GetU32(); - uint32_t vb = b->GetU32(); + uint32_t va = (a->AsIntConstant() != nullptr) + ? a->AsIntConstant()->GetU32BitValue() + : 0; + uint32_t vb = (b->AsIntConstant() != nullptr) + ? b->AsIntConstant()->GetU32BitValue() + : 0; return (va < vb ? a : b); } } else if (int_type->width() == 64) { @@ -1473,14 +1491,29 @@ const analysis::Constant* FoldMax(const analysis::Type* result_type, const analysis::Constant* b, analysis::ConstantManager*) { if (const analysis::Integer* int_type = result_type->AsInteger()) { - if (int_type->width() == 32) { + if (int_type->width() <= 32) { + assert( + (a->AsIntConstant() != nullptr || a->AsNullConstant() != nullptr) && + "Must be an integer or null constant."); + assert( + (b->AsIntConstant() != nullptr || b->AsNullConstant() != nullptr) && + "Must be an integer or null constant."); + if (int_type->IsSigned()) { - int32_t va = a->GetS32(); - int32_t vb = b->GetS32(); + int32_t va = (a->AsIntConstant() != nullptr) + ? a->AsIntConstant()->GetS32BitValue() + : 0; + int32_t vb = (b->AsIntConstant() != nullptr) + ? b->AsIntConstant()->GetS32BitValue() + : 0; return (va > vb ? a : b); } else { - uint32_t va = a->GetU32(); - uint32_t vb = b->GetU32(); + uint32_t va = (a->AsIntConstant() != nullptr) + ? a->AsIntConstant()->GetU32BitValue() + : 0; + uint32_t vb = (b->AsIntConstant() != nullptr) + ? b->AsIntConstant()->GetU32BitValue() + : 0; return (va > vb ? a : b); } } else if (int_type->width() == 64) { diff --git a/3rdparty/spirv-tools/source/opt/constants.cpp b/3rdparty/spirv-tools/source/opt/constants.cpp index 7dc02deaa..00682d089 100644 --- a/3rdparty/spirv-tools/source/opt/constants.cpp +++ b/3rdparty/spirv-tools/source/opt/constants.cpp @@ -315,6 +315,7 @@ const Constant* ConstantManager::GetConstantFromInst(const Instruction* inst) { case spv::Op::OpConstant: case spv::Op::OpConstantComposite: case spv::Op::OpSpecConstantComposite: + case spv::Op::OpSpecConstantCompositeReplicateEXT: break; default: return nullptr; diff --git a/3rdparty/spirv-tools/source/opt/debug_info_manager.cpp b/3rdparty/spirv-tools/source/opt/debug_info_manager.cpp index 24094b36e..cc309da15 100644 --- a/3rdparty/spirv-tools/source/opt/debug_info_manager.cpp +++ b/3rdparty/spirv-tools/source/opt/debug_info_manager.cpp @@ -558,11 +558,11 @@ bool DebugInfoManager::IsDeclareVisibleToInstr(Instruction* dbg_declare, return false; } -bool DebugInfoManager::AddDebugValueForVariable(Instruction* scope_and_line, +bool DebugInfoManager::AddDebugValueForVariable(Instruction* line, uint32_t variable_id, uint32_t value_id, Instruction* insert_pos) { - assert(scope_and_line != nullptr); + assert(line != nullptr); auto dbg_decl_itr = var_id_to_dbg_decl_.find(variable_id); if (dbg_decl_itr == var_id_to_dbg_decl_.end()) return false; @@ -577,14 +577,15 @@ bool DebugInfoManager::AddDebugValueForVariable(Instruction* scope_and_line, insert_before = insert_before->NextNode(); } modified |= AddDebugValueForDecl(dbg_decl_or_val, value_id, insert_before, - scope_and_line) != nullptr; + line) != nullptr; } return modified; } -Instruction* DebugInfoManager::AddDebugValueForDecl( - Instruction* dbg_decl, uint32_t value_id, Instruction* insert_before, - Instruction* scope_and_line) { +Instruction* DebugInfoManager::AddDebugValueForDecl(Instruction* dbg_decl, + uint32_t value_id, + Instruction* insert_before, + Instruction* line) { if (dbg_decl == nullptr || !IsDebugDeclare(dbg_decl)) return nullptr; std::unique_ptr dbg_val(dbg_decl->Clone(context())); @@ -593,7 +594,7 @@ Instruction* DebugInfoManager::AddDebugValueForDecl( dbg_val->SetOperand(kDebugDeclareOperandVariableIndex, {value_id}); dbg_val->SetOperand(kDebugValueOperandExpressionIndex, {GetEmptyDebugExpression()->result_id()}); - dbg_val->UpdateDebugInfoFrom(scope_and_line); + dbg_val->UpdateDebugInfoFrom(dbg_decl, line); auto* added_dbg_val = insert_before->InsertBefore(std::move(dbg_val)); AnalyzeDebugInst(added_dbg_val); diff --git a/3rdparty/spirv-tools/source/opt/debug_info_manager.h b/3rdparty/spirv-tools/source/opt/debug_info_manager.h index abb7b9a08..631aeddfc 100644 --- a/3rdparty/spirv-tools/source/opt/debug_info_manager.h +++ b/3rdparty/spirv-tools/source/opt/debug_info_manager.h @@ -143,22 +143,21 @@ class DebugInfoManager { bool KillDebugDeclares(uint32_t variable_id); // Generates a DebugValue instruction with value |value_id| for every local - // variable that is in the scope of |scope_and_line| and whose memory is - // |variable_id| and inserts it after the instruction |insert_pos|. + // variable that is in the scope of |line| and whose memory is |variable_id| + // and inserts it after the instruction |insert_pos|. // Returns whether a DebugValue is added or not. - bool AddDebugValueForVariable(Instruction* scope_and_line, - uint32_t variable_id, uint32_t value_id, - Instruction* insert_pos); + bool AddDebugValueForVariable(Instruction* line, uint32_t variable_id, + uint32_t value_id, Instruction* insert_pos); // Creates a DebugValue for DebugDeclare |dbg_decl| and inserts it before - // |insert_before|. The new DebugValue has the same line and scope as - // |scope_and_line|, or no scope and line information if |scope_and_line| - // is nullptr. The new DebugValue has the same operands as DebugDeclare - // but it uses |value_id| for the value. Returns the created DebugValue, + // |insert_before|. The new DebugValue has the same line as |line} and the + // same scope as |dbg_decl|. The new DebugValue has the same operands as + // DebugDeclare but it uses |value_id| for the value. Returns the created + // DebugValue, // or nullptr if fails to create one. Instruction* AddDebugValueForDecl(Instruction* dbg_decl, uint32_t value_id, Instruction* insert_before, - Instruction* scope_and_line); + Instruction* line); // Erases |instr| from data structures of this class. void ClearDebugInfo(Instruction* instr); diff --git a/3rdparty/spirv-tools/source/opt/desc_sroa.cpp b/3rdparty/spirv-tools/source/opt/desc_sroa.cpp index 124a3d3a8..b2f12684c 100644 --- a/3rdparty/spirv-tools/source/opt/desc_sroa.cpp +++ b/3rdparty/spirv-tools/source/opt/desc_sroa.cpp @@ -58,7 +58,7 @@ bool DescriptorScalarReplacement::ReplaceCandidate(Instruction* var) { std::vector access_chain_work_list; std::vector load_work_list; std::vector entry_point_work_list; - bool failed = !get_def_use_mgr()->WhileEachUser( + bool ok = get_def_use_mgr()->WhileEachUser( var->result_id(), [this, &access_chain_work_list, &load_work_list, &entry_point_work_list](Instruction* use) { if (use->opcode() == spv::Op::OpName) { @@ -88,7 +88,7 @@ bool DescriptorScalarReplacement::ReplaceCandidate(Instruction* var) { return true; }); - if (failed) { + if (!ok) { return false; } @@ -128,6 +128,9 @@ bool DescriptorScalarReplacement::ReplaceAccessChain(Instruction* var, uint32_t idx = const_index->GetU32(); uint32_t replacement_var = GetReplacementVariable(var, idx); + if (replacement_var == 0) { + return false; + } if (use->NumInOperands() == 2) { // We are not indexing into the replacement variable. We can replaces the @@ -186,8 +189,11 @@ bool DescriptorScalarReplacement::ReplaceEntryPoint(Instruction* var, uint32_t num_replacement_vars = descsroautil::GetNumberOfElementsForArrayOrStruct(context(), var); for (uint32_t i = 0; i < num_replacement_vars; i++) { - new_operands.push_back( - {SPV_OPERAND_TYPE_ID, {GetReplacementVariable(var, i)}}); + uint32_t replacement_var_id = GetReplacementVariable(var, i); + if (replacement_var_id == 0) { + return false; + } + new_operands.push_back({SPV_OPERAND_TYPE_ID, {replacement_var_id}}); } use->ReplaceOperands(new_operands); @@ -310,7 +316,10 @@ uint32_t DescriptorScalarReplacement::CreateReplacementVariable( element_type_id, storage_class); // Create the variable. - uint32_t id = TakeNextId(); + uint32_t id = context()->TakeNextId(); + if (id == 0) { + return 0; + } std::unique_ptr variable( new Instruction(context(), spv::Op::OpVariable, ptr_element_type_id, id, std::initializer_list{ @@ -444,10 +453,16 @@ bool DescriptorScalarReplacement::ReplaceCompositeExtract( uint32_t replacement_var = GetReplacementVariable(var, extract->GetSingleWordInOperand(1)); + if (replacement_var == 0) { + return false; + } // The result type of the OpLoad is the same as the result type of the // OpCompositeExtract. - uint32_t load_id = TakeNextId(); + uint32_t load_id = context()->TakeNextId(); + if (load_id == 0) { + return false; + } std::unique_ptr load( new Instruction(context(), spv::Op::OpLoad, extract->type_id(), load_id, std::initializer_list{ diff --git a/3rdparty/spirv-tools/source/opt/feature_manager.cpp b/3rdparty/spirv-tools/source/opt/feature_manager.cpp index 2810739e2..e4d152be5 100644 --- a/3rdparty/spirv-tools/source/opt/feature_manager.cpp +++ b/3rdparty/spirv-tools/source/opt/feature_manager.cpp @@ -34,10 +34,13 @@ void FeatureManager::AddExtensions(Module* module) { } void FeatureManager::AddExtension(Instruction* ext) { - assert(ext->opcode() == spv::Op::OpExtension && + assert((ext->opcode() == spv::Op::OpExtension || + ext->opcode() == spv::Op::OpConditionalExtensionINTEL) && "Expecting an extension instruction."); - const std::string name = ext->GetInOperand(0u).AsString(); + const uint32_t name_i = + ext->opcode() == spv::Op::OpConditionalExtensionINTEL ? 1u : 0u; + const std::string name = ext->GetInOperand(name_i).AsString(); Extension extension; if (GetExtensionFromString(name.c_str(), &extension)) { extensions_.insert(extension); @@ -72,7 +75,10 @@ void FeatureManager::RemoveCapability(spv::Capability cap) { void FeatureManager::AddCapabilities(Module* module) { for (Instruction& inst : module->capabilities()) { - AddCapability(static_cast(inst.GetSingleWordInOperand(0))); + const uint32_t i_cap = + inst.opcode() == spv::Op::OpConditionalCapabilityINTEL ? 1 : 0; + AddCapability( + static_cast(inst.GetSingleWordInOperand(i_cap))); } } diff --git a/3rdparty/spirv-tools/source/opt/fold_spec_constant_op_and_composite_pass.cpp b/3rdparty/spirv-tools/source/opt/fold_spec_constant_op_and_composite_pass.cpp index ddfe59f75..f52d2e05a 100644 --- a/3rdparty/spirv-tools/source/opt/fold_spec_constant_op_and_composite_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/fold_spec_constant_op_and_composite_pass.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2016 Google Inc. +// Copyright (c) 2025 Arm Ltd. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,21 +32,20 @@ Pass::Status FoldSpecConstantOpAndCompositePass::Process() { // instructions, records their values in two internal maps: id_to_const_val_ // and const_val_to_id_ so that we can use them to infer the value of Spec // Constants later. - // For Spec Constants defined with OpSpecConstantComposite instructions, if - // all of their components are Normal Constants, they will be turned into - // Normal Constants too. For Spec Constants defined with OpSpecConstantOp - // instructions, we check if they only depends on Normal Constants and fold - // them when possible. The two maps for Normal Constants: id_to_const_val_ - // and const_val_to_id_ will be updated along the traversal so that the new - // Normal Constants generated from folding can be used to fold following Spec - // Constants. - // This algorithm depends on the SSA property of SPIR-V when - // defining constants. The dependent constants must be defined before the - // dependee constants. So a dependent Spec Constant must be defined and - // will be processed before its dependee Spec Constant. When we encounter - // the dependee Spec Constants, all its dependent constants must have been - // processed and all its dependent Spec Constants should have been folded if - // possible. + // For Spec Constants defined with OpSpecConstantComposite or + // OpSpecConstantCompositeReplicateEXT instructions, if all of their + // components are Normal Constants, they will be turned into Normal Constants + // too. For Spec Constants defined with OpSpecConstantOp instructions, we + // check if they only depends on Normal Constants and fold them when possible. + // The two maps for Normal Constants: id_to_const_val_ and const_val_to_id_ + // will be updated along the traversal so that the new Normal Constants + // generated from folding can be used to fold following Spec Constants. This + // algorithm depends on the SSA property of SPIR-V when defining constants. + // The dependent constants must be defined before the dependee constants. So a + // dependent Spec Constant must be defined and will be processed before its + // dependee Spec Constant. When we encounter the dependee Spec Constants, all + // its dependent constants must have been processed and all its dependent Spec + // Constants should have been folded if possible. Module::inst_iterator next_inst = context()->types_values_begin(); for (Module::inst_iterator inst_iter = next_inst; // Need to re-evaluate the end iterator since we may modify the list of @@ -54,8 +54,9 @@ Pass::Status FoldSpecConstantOpAndCompositePass::Process() { ++next_inst; Instruction* inst = &*inst_iter; // Collect constant values of normal constants and process the - // OpSpecConstantOp and OpSpecConstantComposite instructions if possible. - // The constant values will be stored in analysis::Constant instances. + // OpSpecConstantOp, OpSpecConstantComposite, and + // OpSpecConstantCompositeReplicateEXT instructions if possible. The + // constant values will be stored in analysis::Constant instances. // OpConstantSampler instruction is not collected here because it cannot be // used in OpSpecConstant{Composite|Op} instructions. // TODO(qining): If the constant or its type has decoration, we may need @@ -70,21 +71,29 @@ Pass::Status FoldSpecConstantOpAndCompositePass::Process() { case spv::Op::OpConstant: case spv::Op::OpConstantNull: case spv::Op::OpConstantComposite: - case spv::Op::OpSpecConstantComposite: { + case spv::Op::OpSpecConstantComposite: + case spv::Op::OpSpecConstantCompositeReplicateEXT: { // A Constant instance will be created if the given instruction is a // Normal Constant whose value(s) are fixed. Note that for a composite - // Spec Constant defined with OpSpecConstantComposite instruction, if - // all of its components are Normal Constants already, the Spec - // Constant will be turned in to a Normal Constant. In that case, a - // Constant instance should also be created successfully and recorded - // in the id_to_const_val_ and const_val_to_id_ mapps. + // Spec Constant defined with OpSpecConstantComposite or + // OpSpecConstantCompositeReplicateEXT instruction, if all of its + // components are Normal Constants already, the Spec Constant will be + // turned in to a Normal Constant. In that case, a Constant instance + // should also be created successfully and recorded in the + // id_to_const_val_ and const_val_to_id_ mapps. if (auto const_value = const_mgr->GetConstantFromInst(inst)) { - // Need to replace the OpSpecConstantComposite instruction with a - // corresponding OpConstantComposite instruction. + // Need to replace the OpSpecConstantComposite or + // OpSpecConstantCompositeReplicateEXT instruction with a + // corresponding OpConstantComposite or + // OpConstantCompositeReplicateEXT instruction. if (opcode == spv::Op::OpSpecConstantComposite) { inst->SetOpcode(spv::Op::OpConstantComposite); modified = true; } + if (opcode == spv::Op::OpSpecConstantCompositeReplicateEXT) { + inst->SetOpcode(spv::Op::OpConstantCompositeReplicateEXT); + modified = true; + } const_mgr->MapConstantToInst(const_value, inst); } break; diff --git a/3rdparty/spirv-tools/source/opt/folding_rules.cpp b/3rdparty/spirv-tools/source/opt/folding_rules.cpp index 3f5f79a22..fed677d88 100644 --- a/3rdparty/spirv-tools/source/opt/folding_rules.cpp +++ b/3rdparty/spirv-tools/source/opt/folding_rules.cpp @@ -1998,6 +1998,15 @@ FoldingRule FMixFeedingExtract() { bool use_x = false; assert(a_const->type()->AsFloat()); + + const analysis::Type* type = + context->get_type_mgr()->GetType(inst->type_id()); + uint32_t width = ElementWidth(type); + if (width != 32 && width != 64) { + // We won't support folding half float values. + return false; + } + double element_value = a_const->GetValueAsDouble(); if (element_value == 0.0) { use_x = true; diff --git a/3rdparty/spirv-tools/source/opt/graphics_robust_access_pass.cpp b/3rdparty/spirv-tools/source/opt/graphics_robust_access_pass.cpp index e765c3976..15076ec0e 100644 --- a/3rdparty/spirv-tools/source/opt/graphics_robust_access_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/graphics_robust_access_pass.cpp @@ -283,9 +283,14 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( // use 0 for %min_value). auto clamp_index = [&inst, type_mgr, this, &replace_index]( uint32_t operand_index, Instruction* old_value, - Instruction* min_value, Instruction* max_value) { + Instruction* min_value, + Instruction* max_value) -> spv_result_t { auto* clamp_inst = MakeSClampInst(*type_mgr, old_value, min_value, max_value, &inst); + if (clamp_inst == nullptr) { + Fail(); + return SPV_ERROR_INTERNAL; + } return replace_index(operand_index, clamp_inst); }; @@ -304,7 +309,11 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( if (count <= 1) { // Replace the index with 0. - return replace_index(operand_index, GetValueForType(0, index_type)); + Instruction* new_value = GetValueForType(0, index_type); + if (new_value == nullptr) { + return Fail(); + } + return replace_index(operand_index, new_value); } uint64_t maxval = count - 1; @@ -318,8 +327,15 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( // Determine the type for |maxval|. uint32_t next_id = context()->module()->IdBound(); analysis::Integer signed_type_for_query(maxval_width, true); - auto* maxval_type = - type_mgr->GetRegisteredType(&signed_type_for_query)->AsInteger(); + auto* maxval_type_registered = + type_mgr->GetRegisteredType(&signed_type_for_query); + if (maxval_type_registered == nullptr) { + return Fail(); + } + auto* maxval_type = maxval_type_registered->AsInteger(); + if (maxval_type == nullptr) { + return Fail(); + } if (next_id != context()->module()->IdBound()) { module_status_.modified = true; } @@ -352,15 +368,22 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( value = int_index_constant->GetS64BitValue(); } if (value < 0) { - return replace_index(operand_index, GetValueForType(0, index_type)); + Instruction* new_value = GetValueForType(0, index_type); + if (new_value == nullptr) { + return Fail(); + } + return replace_index(operand_index, new_value); } else if (uint64_t(value) <= maxval) { // Nothing to do. return SPV_SUCCESS; } else { // Replace with maxval. assert(count > 0); // Already took care of this case above. - return replace_index(operand_index, - GetValueForType(maxval, maxval_type)); + Instruction* new_value = GetValueForType(maxval, maxval_type); + if (new_value == nullptr) { + return Fail(); + } + return replace_index(operand_index, new_value); } } else { // Generate a clamp instruction. @@ -389,6 +412,9 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( } index_inst = WidenInteger(index_type->IsSigned(), maxval_width, index_inst, &inst); + if (index_inst == nullptr) { + return Fail(); + } } // Finally, clamp the index. @@ -438,28 +464,51 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( if (index_type->width() < target_width) { // Access chain indices are treated as signed integers. index_inst = WidenInteger(true, target_width, index_inst, &inst); + if (index_inst == nullptr) { + return Fail(); + } } else if (count_type->width() < target_width) { // Assume type sizes are treated as unsigned. count_inst = WidenInteger(false, target_width, count_inst, &inst); + if (count_inst == nullptr) { + return Fail(); + } } // Compute count - 1. // It doesn't matter if 1 is signed or unsigned. auto* one = GetValueForType(1, wider_type); - auto* count_minus_1 = InsertInst( - &inst, spv::Op::OpISub, type_mgr->GetId(wider_type), TakeNextId(), - {{SPV_OPERAND_TYPE_ID, {count_inst->result_id()}}, - {SPV_OPERAND_TYPE_ID, {one->result_id()}}}); + if (!one) { + return Fail(); + } + auto* count_minus_1 = + InsertInst(&inst, spv::Op::OpISub, type_mgr->GetId(wider_type), + context()->TakeNextId(), + {{SPV_OPERAND_TYPE_ID, {count_inst->result_id()}}, + {SPV_OPERAND_TYPE_ID, {one->result_id()}}}); + if (count_minus_1 == nullptr) { + return Fail(); + } auto* zero = GetValueForType(0, wider_type); + if (!zero) { + return Fail(); + } // Make sure we clamp to an upper bound that is at most the signed max // for the target type. const uint64_t max_signed_value = ((uint64_t(1) << (target_width - 1)) - 1); + Instruction* max_signed_inst = + GetValueForType(max_signed_value, wider_type); + if (!max_signed_inst) { + return Fail(); + } // Use unsigned-min to ensure that the result is always non-negative. // That ensures we satisfy the invariant for SClamp, where the "min" // argument we give it (zero), is no larger than the third argument. auto* upper_bound = - MakeUMinInst(*type_mgr, count_minus_1, - GetValueForType(max_signed_value, wider_type), &inst); + MakeUMinInst(*type_mgr, count_minus_1, max_signed_inst, &inst); + if (upper_bound == nullptr) { + return Fail(); + } // Now clamp the index to this upper bound. return clamp_index(operand_index, index_inst, zero, upper_bound); } @@ -485,7 +534,7 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( case spv::Op::OpTypeVector: // Use component count { const uint32_t count = pointee_type->GetSingleWordOperand(2); - clamp_to_literal_count(idx, count); + if (clamp_to_literal_count(idx, count) != SPV_SUCCESS) return; pointee_type = GetDef(pointee_type->GetSingleWordOperand(1)); } break; @@ -493,7 +542,7 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( // The array length can be a spec constant, so go through the general // case. Instruction* array_len = GetDef(pointee_type->GetSingleWordOperand(2)); - clamp_to_count(idx, array_len); + if (clamp_to_count(idx, array_len) != SPV_SUCCESS) return; pointee_type = GetDef(pointee_type->GetSingleWordOperand(1)); } break; @@ -537,7 +586,7 @@ void GraphicsRobustAccessPass::ClampIndicesForAccessChain( if (!array_len) { // We've already signaled an error. return; } - clamp_to_count(idx, array_len); + if (clamp_to_count(idx, array_len) != SPV_SUCCESS) return; if (module_status_.failed) return; pointee_type = GetDef(pointee_type->GetSingleWordOperand(1)); } break; @@ -563,7 +612,10 @@ uint32_t GraphicsRobustAccessPass::GetGlslInsts() { } if (module_status_.glsl_insts_id == 0) { // Make a new import instruction. - module_status_.glsl_insts_id = TakeNextId(); + module_status_.glsl_insts_id = context()->TakeNextId(); + if (module_status_.glsl_insts_id == 0) { + return 0; + } std::vector words = spvtools::utils::MakeVector(glsl); auto import_inst = MakeUnique( context(), spv::Op::OpExtInstImport, 0, module_status_.glsl_insts_id, @@ -602,7 +654,10 @@ opt::Instruction* opt::GraphicsRobustAccessPass::WidenInteger( auto* type_mgr = context()->get_type_mgr(); auto* unsigned_type = type_mgr->GetRegisteredType(&unsigned_type_for_query); auto type_id = context()->get_type_mgr()->GetId(unsigned_type); - auto conversion_id = TakeNextId(); + auto conversion_id = context()->TakeNextId(); + if (conversion_id == 0) { + return nullptr; + } auto* conversion = InsertInst( before_inst, (sign_extend ? spv::Op::OpSConvert : spv::Op::OpUConvert), type_id, conversion_id, {{SPV_OPERAND_TYPE_ID, {value->result_id()}}}); @@ -616,7 +671,13 @@ Instruction* GraphicsRobustAccessPass::MakeUMinInst( // the function so we force a deterministic ordering in case both of them need // to take a new ID. const uint32_t glsl_insts_id = GetGlslInsts(); - uint32_t smin_id = TakeNextId(); + if (glsl_insts_id == 0) { + return nullptr; + } + uint32_t smin_id = context()->TakeNextId(); + if (smin_id == 0) { + return nullptr; + } const auto xwidth = tm.GetType(x->type_id())->AsInteger()->width(); const auto ywidth = tm.GetType(y->type_id())->AsInteger()->width(); assert(xwidth == ywidth); @@ -640,7 +701,13 @@ Instruction* GraphicsRobustAccessPass::MakeSClampInst( // the function so we force a deterministic ordering in case both of them need // to take a new ID. const uint32_t glsl_insts_id = GetGlslInsts(); - uint32_t clamp_id = TakeNextId(); + if (glsl_insts_id == 0) { + return nullptr; + } + uint32_t clamp_id = context()->TakeNextId(); + if (clamp_id == 0) { + return nullptr; + } const auto xwidth = tm.GetType(x->type_id())->AsInteger()->width(); const auto minwidth = tm.GetType(min->type_id())->AsInteger()->width(); const auto maxwidth = tm.GetType(max->type_id())->AsInteger()->width(); @@ -755,7 +822,11 @@ Instruction* GraphicsRobustAccessPass::MakeRuntimeArrayLengthInst( base_ptr_type->storage_class()); // Create the instruction and insert it. - const auto new_access_chain_id = TakeNextId(); + const auto new_access_chain_id = context()->TakeNextId(); + if (new_access_chain_id == 0) { + Fail(); + return nullptr; + } auto* new_access_chain = InsertInst(current_access_chain, current_access_chain->opcode(), new_access_chain_type_id, new_access_chain_id, ops); @@ -784,7 +855,11 @@ Instruction* GraphicsRobustAccessPass::MakeRuntimeArrayLengthInst( uint32_t(struct_type->element_types().size() - 1); // Create the length-of-array instruction before the original access chain, // but after the generation of the pointer to the struct. - const auto array_len_id = TakeNextId(); + const auto array_len_id = context()->TakeNextId(); + if (array_len_id == 0) { + Fail(); + return nullptr; + } analysis::Integer uint_type_for_query(32, false); auto* uint_type = type_mgr->GetRegisteredType(&uint_type_for_query); auto* array_len = InsertInst( @@ -935,12 +1010,18 @@ spv_result_t GraphicsRobustAccessPass::ClampCoordinateForImageTexelPointer( return type_mgr->GetRegisteredType(&proposed); }(); - const uint32_t image_id = TakeNextId(); + const uint32_t image_id = context()->TakeNextId(); + if (image_id == 0) { + return Fail(); + } auto* image = InsertInst(image_texel_pointer, spv::Op::OpLoad, image_type_id, image_id, {{SPV_OPERAND_TYPE_ID, {image_ptr->result_id()}}}); - const uint32_t query_size_id = TakeNextId(); + const uint32_t query_size_id = context()->TakeNextId(); + if (query_size_id == 0) { + return Fail(); + } auto* query_size = InsertInst(image_texel_pointer, spv::Op::OpImageQuerySize, type_mgr->GetTypeInstruction(query_size_type), query_size_id, @@ -968,7 +1049,10 @@ spv_result_t GraphicsRobustAccessPass::ClampCoordinateForImageTexelPointer( query_size_type, {component_1_id, component_1_id, component_6_id}); auto* multiplicand_inst = constant_mgr->GetDefiningInstruction(multiplicand); - const auto query_size_including_faces_id = TakeNextId(); + const auto query_size_including_faces_id = context()->TakeNextId(); + if (query_size_including_faces_id == 0) { + return Fail(); + } query_size_including_faces = InsertInst( image_texel_pointer, spv::Op::OpIMul, type_mgr->GetTypeInstruction(query_size_type), @@ -992,7 +1076,10 @@ spv_result_t GraphicsRobustAccessPass::ClampCoordinateForImageTexelPointer( query_size_type, std::vector(query_num_components, component_0_id)); - const uint32_t query_max_including_faces_id = TakeNextId(); + const uint32_t query_max_including_faces_id = context()->TakeNextId(); + if (query_max_including_faces_id == 0) { + return Fail(); + } auto* query_max_including_faces = InsertInst( image_texel_pointer, spv::Op::OpISub, type_mgr->GetTypeInstruction(query_size_type), @@ -1005,18 +1092,27 @@ spv_result_t GraphicsRobustAccessPass::ClampCoordinateForImageTexelPointer( auto* clamp_coord = MakeSClampInst( *type_mgr, coord, constant_mgr->GetDefiningInstruction(coordinate_0), query_max_including_faces, image_texel_pointer); + if (clamp_coord == nullptr) { + return Fail(); + } image_texel_pointer->SetInOperand(1, {clamp_coord->result_id()}); // Clamp the sample index if (multisampled) { // Get the sample count via OpImageQuerySamples - const auto query_samples_id = TakeNextId(); + const auto query_samples_id = context()->TakeNextId(); + if (query_samples_id == 0) { + return Fail(); + } auto* query_samples = InsertInst( image_texel_pointer, spv::Op::OpImageQuerySamples, constant_mgr->GetDefiningInstruction(component_0)->type_id(), query_samples_id, {{SPV_OPERAND_TYPE_ID, {image->result_id()}}}); - const auto max_samples_id = TakeNextId(); + const auto max_samples_id = context()->TakeNextId(); + if (max_samples_id == 0) { + return Fail(); + } auto* max_samples = InsertInst(image_texel_pointer, spv::Op::OpImageQuerySamples, query_samples->type_id(), max_samples_id, {{SPV_OPERAND_TYPE_ID, {query_samples_id}}, @@ -1025,6 +1121,9 @@ spv_result_t GraphicsRobustAccessPass::ClampCoordinateForImageTexelPointer( auto* clamp_samples = MakeSClampInst( *type_mgr, samples, constant_mgr->GetDefiningInstruction(coordinate_0), max_samples, image_texel_pointer); + if (clamp_samples == nullptr) { + return Fail(); + } image_texel_pointer->SetInOperand(2, {clamp_samples->result_id()}); } else { @@ -1041,6 +1140,9 @@ spv_result_t GraphicsRobustAccessPass::ClampCoordinateForImageTexelPointer( opt::Instruction* GraphicsRobustAccessPass::InsertInst( opt::Instruction* where_inst, spv::Op opcode, uint32_t type_id, uint32_t result_id, const Instruction::OperandList& operands) { + if (result_id == 0) { + return nullptr; + } module_status_.modified = true; auto* result = where_inst->InsertBefore( MakeUnique(context(), opcode, type_id, result_id, operands)); diff --git a/3rdparty/spirv-tools/source/opt/instruction.cpp b/3rdparty/spirv-tools/source/opt/instruction.cpp index 883e47f0d..7127da5e3 100644 --- a/3rdparty/spirv-tools/source/opt/instruction.cpp +++ b/3rdparty/spirv-tools/source/opt/instruction.cpp @@ -546,11 +546,13 @@ void Instruction::ClearDbgLineInsts() { clear_dbg_line_insts(); } -void Instruction::UpdateDebugInfoFrom(const Instruction* from) { +void Instruction::UpdateDebugInfoFrom(const Instruction* from, + const Instruction* line) { if (from == nullptr) return; ClearDbgLineInsts(); - if (!from->dbg_line_insts().empty()) - AddDebugLine(&from->dbg_line_insts().back()); + const Instruction* fromLine = line != nullptr ? line : from; + if (!fromLine->dbg_line_insts().empty()) + AddDebugLine(&fromLine->dbg_line_insts().back()); SetDebugScope(from->GetDebugScope()); if (!IsLineInst() && context()->AreAnalysesValid(IRContext::kAnalysisDebugInfo)) { @@ -1033,6 +1035,12 @@ bool Instruction::IsOpcodeSafeToDelete() const { return true; } + if (IsNonSemanticInstruction() && + (GetShader100DebugOpcode() == NonSemanticShaderDebugInfo100DebugDeclare || + GetShader100DebugOpcode() == NonSemanticShaderDebugInfo100DebugValue)) { + return true; + } + switch (opcode()) { case spv::Op::OpDPdx: case spv::Op::OpDPdy: diff --git a/3rdparty/spirv-tools/source/opt/instruction.h b/3rdparty/spirv-tools/source/opt/instruction.h index c2617fba5..c026b21ce 100644 --- a/3rdparty/spirv-tools/source/opt/instruction.h +++ b/3rdparty/spirv-tools/source/opt/instruction.h @@ -338,7 +338,8 @@ class Instruction : public utils::IntrusiveNodeBase { // Updates lexical scope of DebugScope and OpLine. void UpdateLexicalScope(uint32_t scope); // Updates OpLine and DebugScope based on the information of |from|. - void UpdateDebugInfoFrom(const Instruction* from); + void UpdateDebugInfoFrom(const Instruction* from, + const Instruction* line = nullptr); // Remove the |index|-th operand void RemoveOperand(uint32_t index) { operands_.erase(operands_.begin() + index); diff --git a/3rdparty/spirv-tools/source/opt/interface_var_sroa.cpp b/3rdparty/spirv-tools/source/opt/interface_var_sroa.cpp index 08477cbdd..8c0b91fd9 100644 --- a/3rdparty/spirv-tools/source/opt/interface_var_sroa.cpp +++ b/3rdparty/spirv-tools/source/opt/interface_var_sroa.cpp @@ -239,28 +239,34 @@ void InterfaceVariableScalarReplacement::KillLocationAndComponentDecorations( }); } -bool InterfaceVariableScalarReplacement::ReplaceInterfaceVariableWithScalars( +Pass::Status +InterfaceVariableScalarReplacement::ReplaceInterfaceVariableWithScalars( Instruction* interface_var, Instruction* interface_var_type, uint32_t location, uint32_t component, uint32_t extra_array_length) { - NestedCompositeComponents scalar_interface_vars = + std::optional scalar_interface_vars = CreateScalarInterfaceVarsForReplacement(interface_var_type, GetStorageClass(interface_var), extra_array_length); - AddLocationAndComponentDecorations(scalar_interface_vars, &location, + if (!scalar_interface_vars) { + return Status::Failure; + } + + AddLocationAndComponentDecorations(*scalar_interface_vars, &location, component); KillLocationAndComponentDecorations(interface_var->result_id()); - if (!ReplaceInterfaceVarWith(interface_var, extra_array_length, - scalar_interface_vars)) { - return false; + Status status = ReplaceInterfaceVarWith(interface_var, extra_array_length, + *scalar_interface_vars); + if (status == Status::Failure) { + return status; } context()->KillInst(interface_var); - return true; + return status; } -bool InterfaceVariableScalarReplacement::ReplaceInterfaceVarWith( +Pass::Status InterfaceVariableScalarReplacement::ReplaceInterfaceVarWith( Instruction* interface_var, uint32_t extra_array_length, const NestedCompositeComponents& scalar_interface_vars) { std::vector users; @@ -276,21 +282,24 @@ bool InterfaceVariableScalarReplacement::ReplaceInterfaceVarWith( // interface variable. for (uint32_t index = 0; index < extra_array_length; ++index) { std::unordered_map loads_to_component_values; - if (!ReplaceComponentsOfInterfaceVarWith( - interface_var, users, scalar_interface_vars, - interface_var_component_indices, &index, - &loads_to_component_values, - &loads_for_access_chain_to_composites)) { - return false; + Status status = ReplaceComponentsOfInterfaceVarWith( + interface_var, users, scalar_interface_vars, + interface_var_component_indices, &index, &loads_to_component_values, + &loads_for_access_chain_to_composites); + if (status == Status::Failure) { + return Status::Failure; } AddComponentsToCompositesForLoads(loads_to_component_values, &loads_to_composites, 0); } - } else if (!ReplaceComponentsOfInterfaceVarWith( - interface_var, users, scalar_interface_vars, - interface_var_component_indices, nullptr, &loads_to_composites, - &loads_for_access_chain_to_composites)) { - return false; + } else { + Status status = ReplaceComponentsOfInterfaceVarWith( + interface_var, users, scalar_interface_vars, + interface_var_component_indices, nullptr, &loads_to_composites, + &loads_for_access_chain_to_composites); + if (status == Status::Failure) { + return Status::Failure; + } } ReplaceLoadWithCompositeConstruct(context(), loads_to_composites); @@ -298,7 +307,7 @@ bool InterfaceVariableScalarReplacement::ReplaceInterfaceVarWith( loads_for_access_chain_to_composites); KillInstructionsAndUsers(users); - return true; + return Status::SuccessWithChange; } void InterfaceVariableScalarReplacement::AddLocationAndComponentDecorations( @@ -318,7 +327,8 @@ void InterfaceVariableScalarReplacement::AddLocationAndComponentDecorations( } } -bool InterfaceVariableScalarReplacement::ReplaceComponentsOfInterfaceVarWith( +Pass::Status +InterfaceVariableScalarReplacement::ReplaceComponentsOfInterfaceVarWith( Instruction* interface_var, const std::vector& interface_var_users, const NestedCompositeComponents& scalar_interface_vars, @@ -329,15 +339,16 @@ bool InterfaceVariableScalarReplacement::ReplaceComponentsOfInterfaceVarWith( loads_for_access_chain_to_composites) { if (!scalar_interface_vars.HasMultipleComponents()) { for (Instruction* interface_var_user : interface_var_users) { - if (!ReplaceComponentOfInterfaceVarWith( - interface_var, interface_var_user, - scalar_interface_vars.GetComponentVariable(), - interface_var_component_indices, extra_array_index, - loads_to_composites, loads_for_access_chain_to_composites)) { - return false; + Status status = ReplaceComponentOfInterfaceVarWith( + interface_var, interface_var_user, + scalar_interface_vars.GetComponentVariable(), + interface_var_component_indices, extra_array_index, + loads_to_composites, loads_for_access_chain_to_composites); + if (status == Status::Failure) { + return Status::Failure; } } - return true; + return Status::SuccessWithChange; } return ReplaceMultipleComponentsOfInterfaceVarWith( interface_var, interface_var_users, scalar_interface_vars.GetComponents(), @@ -345,27 +356,28 @@ bool InterfaceVariableScalarReplacement::ReplaceComponentsOfInterfaceVarWith( loads_for_access_chain_to_composites); } -bool InterfaceVariableScalarReplacement:: - ReplaceMultipleComponentsOfInterfaceVarWith( - Instruction* interface_var, - const std::vector& interface_var_users, - const std::vector& components, - std::vector& interface_var_component_indices, - const uint32_t* extra_array_index, - std::unordered_map* loads_to_composites, - std::unordered_map* - loads_for_access_chain_to_composites) { +Pass::Status +InterfaceVariableScalarReplacement::ReplaceMultipleComponentsOfInterfaceVarWith( + Instruction* interface_var, + const std::vector& interface_var_users, + const std::vector& components, + std::vector& interface_var_component_indices, + const uint32_t* extra_array_index, + std::unordered_map* loads_to_composites, + std::unordered_map* + loads_for_access_chain_to_composites) { for (uint32_t i = 0; i < components.size(); ++i) { interface_var_component_indices.push_back(i); std::unordered_map loads_to_component_values; std::unordered_map loads_for_access_chain_to_component_values; - if (!ReplaceComponentsOfInterfaceVarWith( - interface_var, interface_var_users, components[i], - interface_var_component_indices, extra_array_index, - &loads_to_component_values, - &loads_for_access_chain_to_component_values)) { - return false; + Status status = ReplaceComponentsOfInterfaceVarWith( + interface_var, interface_var_users, components[i], + interface_var_component_indices, extra_array_index, + &loads_to_component_values, + &loads_for_access_chain_to_component_values); + if (status == Status::Failure) { + return Status::Failure; } interface_var_component_indices.pop_back(); @@ -378,10 +390,11 @@ bool InterfaceVariableScalarReplacement:: AddComponentsToCompositesForLoads(loads_to_component_values, loads_to_composites, depth_to_component); } - return true; + return Status::SuccessWithChange; } -bool InterfaceVariableScalarReplacement::ReplaceComponentOfInterfaceVarWith( +Pass::Status +InterfaceVariableScalarReplacement::ReplaceComponentOfInterfaceVarWith( Instruction* interface_var, Instruction* interface_var_user, Instruction* scalar_var, const std::vector& interface_var_component_indices, @@ -395,42 +408,49 @@ bool InterfaceVariableScalarReplacement::ReplaceComponentOfInterfaceVarWith( StoreComponentOfValueToScalarVar(value_id, interface_var_component_indices, scalar_var, extra_array_index, interface_var_user); - return true; + return Status::SuccessWithChange; } if (opcode == spv::Op::OpLoad) { Instruction* scalar_load = LoadScalarVar(scalar_var, extra_array_index, interface_var_user); + if (scalar_load == nullptr) { + return Status::Failure; + } loads_to_component_values->insert({interface_var_user, scalar_load}); - return true; + return Status::SuccessWithChange; } // Copy OpName and annotation instructions only once. Therefore, we create // them only for the first element of the extra array. - if (extra_array_index && *extra_array_index != 0) return true; + if (extra_array_index && *extra_array_index != 0) + return Status::SuccessWithChange; if (opcode == spv::Op::OpDecorateId || opcode == spv::Op::OpDecorateString || opcode == spv::Op::OpDecorate) { CloneAnnotationForVariable(interface_var_user, scalar_var->result_id()); - return true; + return Status::SuccessWithChange; } if (opcode == spv::Op::OpName) { std::unique_ptr new_inst(interface_var_user->Clone(context())); new_inst->SetInOperand(0, {scalar_var->result_id()}); context()->AddDebug2Inst(std::move(new_inst)); - return true; + return Status::SuccessWithChange; } if (opcode == spv::Op::OpEntryPoint) { - return ReplaceInterfaceVarInEntryPoint(interface_var, interface_var_user, - scalar_var->result_id()); + if (ReplaceInterfaceVarInEntryPoint(interface_var, interface_var_user, + scalar_var->result_id())) { + return Status::SuccessWithChange; + } + return Status::Failure; } if (opcode == spv::Op::OpAccessChain) { ReplaceAccessChainWith(interface_var_user, interface_var_component_indices, scalar_var, loads_for_access_chain_to_component_values); - return true; + return Status::SuccessWithChange; } std::string message("Unhandled instruction"); @@ -440,7 +460,7 @@ bool InterfaceVariableScalarReplacement::ReplaceComponentOfInterfaceVarWith( "\nfor interface variable scalar replacement\n " + interface_var->PrettyPrint(SPV_BINARY_TO_TEXT_OPTION_FRIENDLY_NAMES); context()->consumer()(SPV_MSG_ERROR, "", {0, 0, 0}, message.c_str()); - return false; + return Status::Failure; } void InterfaceVariableScalarReplacement::UseBaseAccessChainForAccessChain( @@ -470,10 +490,14 @@ Instruction* InterfaceVariableScalarReplacement::CreateAccessChainToVar( uint32_t ptr_type_id = GetPointerType(*component_type_id, GetStorageClass(var)); - std::unique_ptr new_access_chain(new Instruction( - context(), spv::Op::OpAccessChain, ptr_type_id, TakeNextId(), - std::initializer_list{ - {SPV_OPERAND_TYPE_ID, {var->result_id()}}})); + uint32_t new_id = TakeNextId(); + if (new_id == 0) { + return nullptr; + } + std::unique_ptr new_access_chain( + new Instruction(context(), spv::Op::OpAccessChain, ptr_type_id, new_id, + std::initializer_list{ + {SPV_OPERAND_TYPE_ID, {var->result_id()}}})); for (uint32_t index_id : index_ids) { new_access_chain->AddOperand({SPV_OPERAND_TYPE_ID, {index_id}}); } @@ -490,12 +514,16 @@ Instruction* InterfaceVariableScalarReplacement::CreateAccessChainWithIndex( uint32_t ptr_type_id = GetPointerType(component_type_id, GetStorageClass(var)); uint32_t index_id = context()->get_constant_mgr()->GetUIntConstId(index); - std::unique_ptr new_access_chain(new Instruction( - context(), spv::Op::OpAccessChain, ptr_type_id, TakeNextId(), - std::initializer_list{ - {SPV_OPERAND_TYPE_ID, {var->result_id()}}, - {SPV_OPERAND_TYPE_ID, {index_id}}, - })); + uint32_t new_id = TakeNextId(); + if (new_id == 0) { + return nullptr; + } + std::unique_ptr new_access_chain( + new Instruction(context(), spv::Op::OpAccessChain, ptr_type_id, new_id, + std::initializer_list{ + {SPV_OPERAND_TYPE_ID, {var->result_id()}}, + {SPV_OPERAND_TYPE_ID, {index_id}}, + })); Instruction* inst = new_access_chain.get(); context()->get_def_use_mgr()->AnalyzeInstDefUse(inst); insert_before->InsertBefore(std::move(new_access_chain)); @@ -617,6 +645,9 @@ void InterfaceVariableScalarReplacement::StoreComponentOfValueToScalarVar( component_type_id = ty_mgr->GetTypeInstruction(array_type->element_type()); ptr = CreateAccessChainWithIndex(component_type_id, scalar_var, *extra_array_index, insert_before); + if (ptr == nullptr) { + return; + } } StoreComponentOfValueTo(component_type_id, value_id, component_indices, ptr, @@ -635,6 +666,9 @@ Instruction* InterfaceVariableScalarReplacement::LoadScalarVar( component_type_id = ty_mgr->GetTypeInstruction(array_type->element_type()); ptr = CreateAccessChainWithIndex(component_type_id, scalar_var, *extra_array_index, insert_before); + if (ptr == nullptr) { + return nullptr; + } } return CreateLoad(component_type_id, ptr, insert_before); @@ -642,8 +676,12 @@ Instruction* InterfaceVariableScalarReplacement::LoadScalarVar( Instruction* InterfaceVariableScalarReplacement::CreateLoad( uint32_t type_id, Instruction* ptr, Instruction* insert_before) { + uint32_t new_id = TakeNextId(); + if (new_id == 0) { + return nullptr; + } std::unique_ptr load( - new Instruction(context(), spv::Op::OpLoad, type_id, TakeNextId(), + new Instruction(context(), spv::Op::OpLoad, type_id, new_id, std::initializer_list{ {SPV_OPERAND_TYPE_ID, {ptr->result_id()}}})); Instruction* load_inst = load.get(); @@ -658,6 +696,9 @@ void InterfaceVariableScalarReplacement::StoreComponentOfValueTo( const uint32_t* extra_array_index, Instruction* insert_before) { std::unique_ptr composite_extract(CreateCompositeExtract( component_type_id, value_id, component_indices, extra_array_index)); + if (composite_extract == nullptr) { + return; + } std::unique_ptr new_store( new Instruction(context(), spv::Op::OpStore)); @@ -677,6 +718,9 @@ Instruction* InterfaceVariableScalarReplacement::CreateCompositeExtract( uint32_t type_id, uint32_t composite_id, const std::vector& indexes, const uint32_t* extra_first_index) { uint32_t component_id = TakeNextId(); + if (component_id == 0) { + return nullptr; + } Instruction* composite_extract = new Instruction( context(), spv::Op::OpCompositeExtract, type_id, component_id, std::initializer_list{{SPV_OPERAND_TYPE_ID, {composite_id}}}); @@ -716,6 +760,9 @@ Instruction* InterfaceVariableScalarReplacement::LoadAccessChainToVar( if (!indexes.empty()) { ptr = CreateAccessChainToVar(component_type_id, var, indexes, insert_before, &component_type_id); + if (ptr == nullptr) { + return nullptr; + } } return CreateLoad(component_type_id, ptr, insert_before); @@ -730,7 +777,10 @@ InterfaceVariableScalarReplacement::CreateCompositeConstructForComponentOfLoad( type_id = GetComponentTypeOfArrayMatrix(def_use_mgr, load->type_id(), depth_to_component); } - uint32_t new_id = context()->TakeNextId(); + uint32_t new_id = TakeNextId(); + if (new_id == 0) { + return nullptr; + } std::unique_ptr new_composite_construct(new Instruction( context(), spv::Op::OpCompositeConstruct, type_id, new_id, {})); Instruction* composite_construct = new_composite_construct.get(); @@ -767,6 +817,10 @@ void InterfaceVariableScalarReplacement::AddComponentsToCompositesForLoads( if (itr == loads_to_composites->end()) { composite_construct = CreateCompositeConstructForComponentOfLoad(load, depth_to_component); + if (composite_construct == nullptr) { + assert(false && "Could not create composite construct"); + return; + } loads_to_composites->insert({load, composite_construct}); } else { composite_construct = itr->second; @@ -795,7 +849,7 @@ uint32_t InterfaceVariableScalarReplacement::GetPointerType( return context()->get_type_mgr()->GetTypeInstruction(&ptr_type); } -InterfaceVariableScalarReplacement::NestedCompositeComponents +std::optional InterfaceVariableScalarReplacement::CreateScalarInterfaceVarsForArray( Instruction* interface_var_type, spv::StorageClass storage_class, uint32_t extra_array_length) { @@ -807,16 +861,19 @@ InterfaceVariableScalarReplacement::CreateScalarInterfaceVarsForArray( NestedCompositeComponents scalar_vars; while (array_length > 0) { - NestedCompositeComponents scalar_vars_for_element = + std::optional scalar_vars_for_element = CreateScalarInterfaceVarsForReplacement(elem_type, storage_class, extra_array_length); - scalar_vars.AddComponent(scalar_vars_for_element); + if (!scalar_vars_for_element) { + return std::nullopt; + } + scalar_vars.AddComponent(*scalar_vars_for_element); --array_length; } return scalar_vars; } -InterfaceVariableScalarReplacement::NestedCompositeComponents +std::optional InterfaceVariableScalarReplacement::CreateScalarInterfaceVarsForMatrix( Instruction* interface_var_type, spv::StorageClass storage_class, uint32_t extra_array_length) { @@ -830,16 +887,19 @@ InterfaceVariableScalarReplacement::CreateScalarInterfaceVarsForMatrix( NestedCompositeComponents scalar_vars; while (column_count > 0) { - NestedCompositeComponents scalar_vars_for_column = + std::optional scalar_vars_for_column = CreateScalarInterfaceVarsForReplacement(column_type, storage_class, extra_array_length); - scalar_vars.AddComponent(scalar_vars_for_column); + if (!scalar_vars_for_column) { + return std::nullopt; + } + scalar_vars.AddComponent(*scalar_vars_for_column); --column_count; } return scalar_vars; } -InterfaceVariableScalarReplacement::NestedCompositeComponents +std::optional InterfaceVariableScalarReplacement::CreateScalarInterfaceVarsForReplacement( Instruction* interface_var_type, spv::StorageClass storage_class, uint32_t extra_array_length) { @@ -864,6 +924,9 @@ InterfaceVariableScalarReplacement::CreateScalarInterfaceVarsForReplacement( uint32_t ptr_type_id = context()->get_type_mgr()->FindPointerToType(type_id, storage_class); uint32_t id = TakeNextId(); + if (id == 0) { + return std::nullopt; + } std::unique_ptr variable( new Instruction(context(), spv::Op::OpVariable, ptr_type_id, id, std::initializer_list{ @@ -953,9 +1016,9 @@ InterfaceVariableScalarReplacement::ReplaceInterfaceVarsWithScalars( continue; } - if (!ReplaceInterfaceVariableWithScalars(interface_var, interface_var_type, - location, component, - extra_array_length)) { + if (ReplaceInterfaceVariableWithScalars( + interface_var, interface_var_type, location, component, + extra_array_length) == Pass::Status::Failure) { return Pass::Status::Failure; } status = Pass::Status::SuccessWithChange; diff --git a/3rdparty/spirv-tools/source/opt/interface_var_sroa.h b/3rdparty/spirv-tools/source/opt/interface_var_sroa.h index 45ed3717a..743cdfbe2 100644 --- a/3rdparty/spirv-tools/source/opt/interface_var_sroa.h +++ b/3rdparty/spirv-tools/source/opt/interface_var_sroa.h @@ -15,6 +15,7 @@ #ifndef SOURCE_OPT_INTERFACE_VAR_SROA_H_ #define SOURCE_OPT_INTERFACE_VAR_SROA_H_ +#include #include #include "source/opt/pass.h" @@ -100,25 +101,26 @@ class InterfaceVariableScalarReplacement : public Pass { // If |extra_array_length| is 0, it means |interface_var| has a Patch // decoration. Otherwise, |extra_array_length| denotes the length of the extra // array of |interface_var|. - bool ReplaceInterfaceVariableWithScalars(Instruction* interface_var, - Instruction* interface_var_type, - uint32_t location, - uint32_t component, - uint32_t extra_array_length); + Status ReplaceInterfaceVariableWithScalars(Instruction* interface_var, + Instruction* interface_var_type, + uint32_t location, + uint32_t component, + uint32_t extra_array_length); // Creates scalar variables with the storage classe |storage_class| to replace // an interface variable whose type is |interface_var_type|. If // |extra_array_length| is not zero, adds the extra arrayness to the created // scalar variables. - NestedCompositeComponents CreateScalarInterfaceVarsForReplacement( - Instruction* interface_var_type, spv::StorageClass storage_class, - uint32_t extra_array_length); + std::optional + CreateScalarInterfaceVarsForReplacement(Instruction* interface_var_type, + spv::StorageClass storage_class, + uint32_t extra_array_length); // Creates scalar variables with the storage classe |storage_class| to replace // the interface variable whose type is OpTypeArray |interface_var_type| with. // If |extra_array_length| is not zero, adds the extra arrayness to all the // scalar variables. - NestedCompositeComponents CreateScalarInterfaceVarsForArray( + std::optional CreateScalarInterfaceVarsForArray( Instruction* interface_var_type, spv::StorageClass storage_class, uint32_t extra_array_length); @@ -126,7 +128,7 @@ class InterfaceVariableScalarReplacement : public Pass { // the interface variable whose type is OpTypeMatrix |interface_var_type| // with. If |extra_array_length| is not zero, adds the extra arrayness to all // the scalar variables. - NestedCompositeComponents CreateScalarInterfaceVarsForMatrix( + std::optional CreateScalarInterfaceVarsForMatrix( Instruction* interface_var_type, spv::StorageClass storage_class, uint32_t extra_array_length); @@ -142,7 +144,7 @@ class InterfaceVariableScalarReplacement : public Pass { // |extra_arrayness| is the extra arrayness of the interface variable. // |scalar_interface_vars| contains the nested variables to replace the // interface variable with. - bool ReplaceInterfaceVarWith( + Status ReplaceInterfaceVarWith( Instruction* interface_var, uint32_t extra_arrayness, const NestedCompositeComponents& scalar_interface_vars); @@ -155,7 +157,7 @@ class InterfaceVariableScalarReplacement : public Pass { // construct instructions to be replaced with load instructions of access // chain instructions in |interface_var_users| via // |loads_for_access_chain_to_composites|. - bool ReplaceComponentsOfInterfaceVarWith( + Status ReplaceComponentsOfInterfaceVarWith( Instruction* interface_var, const std::vector& interface_var_users, const NestedCompositeComponents& scalar_interface_vars, @@ -174,7 +176,7 @@ class InterfaceVariableScalarReplacement : public Pass { // via |loads_to_composites|. Returns composite construct instructions to be // replaced with load instructions of access chain instructions in // |interface_var_users| via |loads_for_access_chain_to_composites|. - bool ReplaceMultipleComponentsOfInterfaceVarWith( + Status ReplaceMultipleComponentsOfInterfaceVarWith( Instruction* interface_var, const std::vector& interface_var_users, const std::vector& components, @@ -192,7 +194,7 @@ class InterfaceVariableScalarReplacement : public Pass { // |loads_to_component_values|. If |interface_var_user| is an access chain, // returns the component value for loads of |interface_var_user| via // |loads_for_access_chain_to_component_values|. - bool ReplaceComponentOfInterfaceVarWith( + Status ReplaceComponentOfInterfaceVarWith( Instruction* interface_var, Instruction* interface_var_user, Instruction* scalar_var, const std::vector& interface_var_component_indices, @@ -389,6 +391,9 @@ class InterfaceVariableScalarReplacement : public Pass { // A set of interface variables without the extra arrayness for any of the // entry points. std::unordered_set vars_without_extra_arrayness; + + // Returns the next available id, or 0 if the id overflows. + uint32_t TakeNextId() { return context()->TakeNextId(); } }; } // namespace opt diff --git a/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.cpp b/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.cpp index f25f55476..b31697cd6 100644 --- a/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.cpp @@ -294,8 +294,12 @@ bool InvocationInterlockPlacementPass::removeUnneededInstructions( BasicBlock* InvocationInterlockPlacementPass::splitEdge(BasicBlock* block, uint32_t succ_id) { // Create a new block to replace the critical edge. + uint32_t new_id = context()->TakeNextId(); + if (new_id == 0) { + return nullptr; + } auto new_succ_temp = MakeUnique( - MakeUnique(context(), spv::Op::OpLabel, 0, TakeNextId(), + MakeUnique(context(), spv::Op::OpLabel, 0, new_id, std::initializer_list{})); auto* new_succ = new_succ_temp.get(); @@ -325,7 +329,7 @@ BasicBlock* InvocationInterlockPlacementPass::splitEdge(BasicBlock* block, return new_succ; } -bool InvocationInterlockPlacementPass::placeInstructionsForEdge( +Pass::Status InvocationInterlockPlacementPass::placeInstructionsForEdge( BasicBlock* block, uint32_t next_id, BlockSet& inside, BlockSet& previous_inside, spv::Op opcode, bool reverse_cfg) { bool modified = false; @@ -372,31 +376,45 @@ bool InvocationInterlockPlacementPass::placeInstructionsForEdge( new_branch = splitEdge(cfg()->block(next_id), block->id()); } + if (!new_branch) { + return Status::Failure; + } + auto inst = new Instruction(context(), opcode); inst->InsertBefore(&*new_branch->tail()); } } - return modified; + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } -bool InvocationInterlockPlacementPass::placeInstructions(BasicBlock* block) { - bool modified = false; +Pass::Status InvocationInterlockPlacementPass::placeInstructions( + BasicBlock* block) { + Status status = Status::SuccessWithoutChange; - block->ForEachSuccessorLabel([this, block, &modified](uint32_t succ_id) { - modified |= placeInstructionsForEdge( + block->ForEachSuccessorLabel([this, block, &status](uint32_t succ_id) { + if (status == Status::Failure) { + return; + } + Status edge_status = placeInstructionsForEdge( block, succ_id, after_begin_, predecessors_after_begin_, spv::Op::OpBeginInvocationInterlockEXT, /* reverse_cfg= */ true); - modified |= placeInstructionsForEdge(cfg()->block(succ_id), block->id(), - before_end_, successors_before_end_, - spv::Op::OpEndInvocationInterlockEXT, - /* reverse_cfg= */ false); + status = CombineStatus(status, edge_status); + if (status == Status::Failure) { + return; + } + + edge_status = placeInstructionsForEdge(cfg()->block(succ_id), block->id(), + before_end_, successors_before_end_, + spv::Op::OpEndInvocationInterlockEXT, + /* reverse_cfg= */ false); + status = CombineStatus(status, edge_status); }); - return modified; + return status; } -bool InvocationInterlockPlacementPass::processFragmentShaderEntry( +Pass::Status InvocationInterlockPlacementPass::processFragmentShaderEntry( Function* entry_func) { bool modified = false; @@ -417,9 +435,15 @@ bool InvocationInterlockPlacementPass::processFragmentShaderEntry( for (BasicBlock* block : original_blocks) { modified |= removeUnneededInstructions(block); - modified |= placeInstructions(block); + Status place_status = placeInstructions(block); + if (place_status == Status::Failure) { + return Status::Failure; + } + if (place_status == Status::SuccessWithChange) { + modified = true; + } } - return modified; + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } bool InvocationInterlockPlacementPass::isFragmentShaderInterlockEnabled() { @@ -452,7 +476,7 @@ Pass::Status InvocationInterlockPlacementPass::Process() { return Status::SuccessWithoutChange; } - bool modified = false; + Status status = Status::SuccessWithoutChange; std::unordered_set entry_points; for (Instruction& entry_inst : context()->module()->entry_points()) { @@ -466,7 +490,9 @@ Pass::Status InvocationInterlockPlacementPass::Process() { Function* func = &*fi; recordBeginOrEndInFunction(func); if (!entry_points.count(func) && extracted_functions_.count(func)) { - modified |= removeBeginAndEndInstructionsFromFunction(func); + if (removeBeginAndEndInstructionsFromFunction(func)) { + status = Status::SuccessWithChange; + } } } @@ -482,11 +508,14 @@ Pass::Status InvocationInterlockPlacementPass::Process() { continue; } - modified |= processFragmentShaderEntry(entry_func); + Status frag_status = processFragmentShaderEntry(entry_func); + if (frag_status == Status::Failure) { + return Status::Failure; + } + status = CombineStatus(status, frag_status); } - return modified ? Pass::Status::SuccessWithChange - : Pass::Status::SuccessWithoutChange; + return status; } } // namespace opt diff --git a/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.h b/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.h index 4e85be858..497af2821 100644 --- a/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.h +++ b/3rdparty/spirv-tools/source/opt/invocation_interlock_placement_pass.h @@ -120,14 +120,14 @@ class InvocationInterlockPlacementPass : public Pass { // For the edge from block to next_id, places a begin or end instruction on // the edge, based on the direction we are walking the CFG, specified in // reverse_cfg. - bool placeInstructionsForEdge(BasicBlock* block, uint32_t next_id, - BlockSet& inside, BlockSet& previous_inside, - spv::Op opcode, bool reverse_cfg); + Status placeInstructionsForEdge(BasicBlock* block, uint32_t next_id, + BlockSet& inside, BlockSet& previous_inside, + spv::Op opcode, bool reverse_cfg); // Calls placeInstructionsForEdge for each edge in block. - bool placeInstructions(BasicBlock* block); + Status placeInstructions(BasicBlock* block); // Processes a single fragment shader entry function. - bool processFragmentShaderEntry(Function* entry_func); + Status processFragmentShaderEntry(Function* entry_func); // Returns whether the module has the SPV_EXT_fragment_shader_interlock // extension and one of the FragmentShader*InterlockEXT capabilities. diff --git a/3rdparty/spirv-tools/source/opt/ir_context.cpp b/3rdparty/spirv-tools/source/opt/ir_context.cpp index 3f41965ea..83b36cfe3 100644 --- a/3rdparty/spirv-tools/source/opt/ir_context.cpp +++ b/3rdparty/spirv-tools/source/opt/ir_context.cpp @@ -201,7 +201,9 @@ Instruction* IRContext::KillInst(Instruction* inst) { constant_mgr_->RemoveId(inst->result_id()); } if (inst->opcode() == spv::Op::OpCapability || - inst->opcode() == spv::Op::OpExtension) { + inst->opcode() == spv::Op::OpConditionalCapabilityINTEL || + inst->opcode() == spv::Op::OpExtension || + inst->opcode() == spv::Op::OpConditionalExtensionINTEL) { // We reset the feature manager, instead of updating it, because it is just // as much work. We would have to remove all capabilities implied by this // capability that are not also implied by the remaining OpCapability @@ -382,6 +384,7 @@ bool IRContext::IsConsistent() { } } + return true; if (AreAnalysesValid(kAnalysisIdToFuncMapping)) { for (auto& fn : *module_) { if (id_to_func_[fn.result_id()] != &fn) { @@ -398,8 +401,9 @@ bool IRContext::IsConsistent() { return false; } return true; - })) + })) { return false; + } } } } diff --git a/3rdparty/spirv-tools/source/opt/ir_loader.cpp b/3rdparty/spirv-tools/source/opt/ir_loader.cpp index 567b180b7..b69aa123f 100644 --- a/3rdparty/spirv-tools/source/opt/ir_loader.cpp +++ b/3rdparty/spirv-tools/source/opt/ir_loader.cpp @@ -181,9 +181,11 @@ bool IrLoader::AddInstruction(const spv_parsed_instruction_t* inst) { } else { if (function_ == nullptr) { // Outside function definition SPIRV_ASSERT(consumer_, block_ == nullptr); - if (opcode == spv::Op::OpCapability) { + if (opcode == spv::Op::OpCapability || + opcode == spv::Op::OpConditionalCapabilityINTEL) { module_->AddCapability(std::move(spv_inst)); - } else if (opcode == spv::Op::OpExtension) { + } else if (opcode == spv::Op::OpExtension || + opcode == spv::Op::OpConditionalExtensionINTEL) { module_->AddExtension(std::move(spv_inst)); } else if (opcode == spv::Op::OpExtInstImport) { module_->AddExtInstImport(std::move(spv_inst)); diff --git a/3rdparty/spirv-tools/source/opt/loop_fission.cpp b/3rdparty/spirv-tools/source/opt/loop_fission.cpp index 1bbe4baa3..fbbee11f4 100644 --- a/3rdparty/spirv-tools/source/opt/loop_fission.cpp +++ b/3rdparty/spirv-tools/source/opt/loop_fission.cpp @@ -362,14 +362,19 @@ Loop* LoopFissionImpl::SplitLoop() { LoopUtils util{context_, loop_}; LoopUtils::LoopCloningResult clone_results; Loop* cloned_loop = util.CloneAndAttachLoopToHeader(&clone_results); + if (!cloned_loop) { + return nullptr; + } // Update the OpLoopMerge in the cloned loop. cloned_loop->UpdateLoopMergeInst(); // Add the loop_ to the module. - // TODO(1841): Handle failure to create pre-header. - Function::iterator it = - util.GetFunction()->FindBlock(loop_->GetOrCreatePreHeaderBlock()->id()); + BasicBlock* pre_header = loop_->GetOrCreatePreHeaderBlock(); + if (!pre_header) { + return nullptr; + } + Function::iterator it = util.GetFunction()->FindBlock(pre_header->id()); util.GetFunction()->AddBasicBlocks(clone_results.cloned_bb_.begin(), clone_results.cloned_bb_.end(), ++it); loop_->SetPreHeaderBlock(cloned_loop->GetMergeBlock()); @@ -478,6 +483,9 @@ Pass::Status LoopFissionPass::Process() { if (impl.CanPerformSplit()) { Loop* second_loop = impl.SplitLoop(); + if (!second_loop) { + return Status::Failure; + } changed = true; context()->InvalidateAnalysesExceptFor( IRContext::kAnalysisLoopAnalysis); diff --git a/3rdparty/spirv-tools/source/opt/loop_peeling.cpp b/3rdparty/spirv-tools/source/opt/loop_peeling.cpp index 25c6db120..f0dffc0e9 100644 --- a/3rdparty/spirv-tools/source/opt/loop_peeling.cpp +++ b/3rdparty/spirv-tools/source/opt/loop_peeling.cpp @@ -45,7 +45,7 @@ void GetBlocksInPath(uint32_t block, uint32_t entry, size_t LoopPeelingPass::code_grow_threshold_ = 1000; -void LoopPeeling::DuplicateAndConnectLoop( +bool LoopPeeling::DuplicateAndConnectLoop( LoopUtils::LoopCloningResult* clone_results) { CFG& cfg = *context_->cfg(); analysis::DefUseManager* def_use_mgr = context_->get_def_use_mgr(); @@ -53,12 +53,17 @@ void LoopPeeling::DuplicateAndConnectLoop( assert(CanPeelLoop() && "Cannot peel loop!"); std::vector ordered_loop_blocks; - // TODO(1841): Handle failure to create pre-header. BasicBlock* pre_header = loop_->GetOrCreatePreHeaderBlock(); + if (!pre_header) { + return false; + } loop_->ComputeLoopStructuredOrder(&ordered_loop_blocks); cloned_loop_ = loop_utils_.CloneLoop(clone_results, ordered_loop_blocks); + if (!cloned_loop_) { + return false; + } // Add the basic block to the function. Function::iterator it = @@ -146,17 +151,21 @@ void LoopPeeling::DuplicateAndConnectLoop( // Force the creation of a new preheader for the original loop and set it as // the merge block for the cloned loop. - // TODO(1841): Handle failure to create pre-header. - cloned_loop_->SetMergeBlock(loop_->GetOrCreatePreHeaderBlock()); + BasicBlock* new_pre_header = loop_->GetOrCreatePreHeaderBlock(); + if (!new_pre_header) { + return false; + } + cloned_loop_->SetMergeBlock(new_pre_header); + return true; } -void LoopPeeling::InsertCanonicalInductionVariable( +bool LoopPeeling::InsertCanonicalInductionVariable( LoopUtils::LoopCloningResult* clone_results) { if (original_loop_canonical_induction_variable_) { canonical_induction_variable_ = context_->get_def_use_mgr()->GetDef(clone_results->value_map_.at( original_loop_canonical_induction_variable_->result_id())); - return; + return true; } BasicBlock::iterator insert_point = GetClonedLoop()->GetLatchBlock()->tail(); @@ -168,19 +177,25 @@ void LoopPeeling::InsertCanonicalInductionVariable( IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping); Instruction* uint_1_cst = builder.GetIntConstant(1, int_type_->IsSigned()); + if (!uint_1_cst) return false; // Create the increment. // Note that we do "1 + 1" here, one of the operand should the phi // value but we don't have it yet. The operand will be set latter. Instruction* iv_inc = builder.AddIAdd( uint_1_cst->type_id(), uint_1_cst->result_id(), uint_1_cst->result_id()); + if (!iv_inc) return false; builder.SetInsertPoint(&*GetClonedLoop()->GetHeaderBlock()->begin()); + Instruction* initial_value = + builder.GetIntConstant(0, int_type_->IsSigned()); + if (!initial_value) return false; + canonical_induction_variable_ = builder.AddPhi( uint_1_cst->type_id(), - {builder.GetIntConstant(0, int_type_->IsSigned())->result_id(), - GetClonedLoop()->GetPreHeaderBlock()->id(), iv_inc->result_id(), - GetClonedLoop()->GetLatchBlock()->id()}); + {initial_value->result_id(), GetClonedLoop()->GetPreHeaderBlock()->id(), + iv_inc->result_id(), GetClonedLoop()->GetLatchBlock()->id()}); + if (!canonical_induction_variable_) return false; // Connect everything. iv_inc->SetInOperand(0, {canonical_induction_variable_->result_id()}); @@ -191,6 +206,7 @@ void LoopPeeling::InsertCanonicalInductionVariable( if (do_while_form_) { canonical_induction_variable_ = iv_inc; } + return true; } void LoopPeeling::GetIteratorUpdateOperations( @@ -308,7 +324,7 @@ void LoopPeeling::GetIteratingExitValues() { } } -void LoopPeeling::FixExitCondition( +bool LoopPeeling::FixExitCondition( const std::function& condition_builder) { CFG& cfg = *context_->cfg(); @@ -329,7 +345,11 @@ void LoopPeeling::FixExitCondition( --insert_point; } - exit_condition->SetInOperand(0, {condition_builder(&*insert_point)}); + uint32_t new_cond_id = condition_builder(&*insert_point); + if (new_cond_id == 0) { + return false; + } + exit_condition->SetInOperand(0, {new_cond_id}); uint32_t to_continue_block_idx = GetClonedLoop()->IsInsideLoop(exit_condition->GetSingleWordInOperand(1)) @@ -341,6 +361,7 @@ void LoopPeeling::FixExitCondition( // Update def/use manager. context_->get_def_use_mgr()->AnalyzeInstUse(exit_condition); + return true; } BasicBlock* LoopPeeling::CreateBlockBefore(BasicBlock* bb) { @@ -348,10 +369,13 @@ BasicBlock* LoopPeeling::CreateBlockBefore(BasicBlock* bb) { CFG& cfg = *context_->cfg(); assert(cfg.preds(bb->id()).size() == 1 && "More than one predecessor"); - // TODO(1841): Handle id overflow. + uint32_t new_id = context_->TakeNextId(); + if (new_id == 0) { + return nullptr; + } std::unique_ptr new_bb = - MakeUnique(std::unique_ptr(new Instruction( - context_, spv::Op::OpLabel, 0, context_->TakeNextId(), {}))); + MakeUnique(std::unique_ptr( + new Instruction(context_, spv::Op::OpLabel, 0, new_id, {}))); // Update the loop descriptor. Loop* in_loop = (*loop_utils_.GetLoopDescriptor())[bb]; if (in_loop) { @@ -394,8 +418,10 @@ BasicBlock* LoopPeeling::CreateBlockBefore(BasicBlock* bb) { BasicBlock* LoopPeeling::ProtectLoop(Loop* loop, Instruction* condition, BasicBlock* if_merge) { - // TODO(1841): Handle failure to create pre-header. BasicBlock* if_block = loop->GetOrCreatePreHeaderBlock(); + if (!if_block) { + return nullptr; + } // Will no longer be a pre-header because of the if. loop->SetPreHeaderBlock(nullptr); // Kill the branch to the header. @@ -411,48 +437,63 @@ BasicBlock* LoopPeeling::ProtectLoop(Loop* loop, Instruction* condition, return if_block; } -void LoopPeeling::PeelBefore(uint32_t peel_factor) { +bool LoopPeeling::PeelBefore(uint32_t peel_factor) { assert(CanPeelLoop() && "Cannot peel loop"); LoopUtils::LoopCloningResult clone_results; // Clone the loop and insert the cloned one before the loop. - DuplicateAndConnectLoop(&clone_results); + if (!DuplicateAndConnectLoop(&clone_results)) { + return false; + } // Add a canonical induction variable "canonical_induction_variable_". - InsertCanonicalInductionVariable(&clone_results); + if (!InsertCanonicalInductionVariable(&clone_results)) { + return false; + } InstructionBuilder builder( context_, &*cloned_loop_->GetPreHeaderBlock()->tail(), IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping); Instruction* factor = builder.GetIntConstant(peel_factor, int_type_->IsSigned()); + if (!factor) return false; Instruction* has_remaining_iteration = builder.AddLessThan( factor->result_id(), loop_iteration_count_->result_id()); + if (!has_remaining_iteration) return false; Instruction* max_iteration = builder.AddSelect( factor->type_id(), has_remaining_iteration->result_id(), factor->result_id(), loop_iteration_count_->result_id()); + if (!max_iteration) return false; // Change the exit condition of the cloned loop to be (exit when become // false): // "canonical_induction_variable_" < min("factor", "loop_iteration_count_") - FixExitCondition([max_iteration, this](Instruction* insert_before_point) { - return InstructionBuilder(context_, insert_before_point, - IRContext::kAnalysisDefUse | - IRContext::kAnalysisInstrToBlockMapping) - .AddLessThan(canonical_induction_variable_->result_id(), - max_iteration->result_id()) - ->result_id(); - }); + if (!FixExitCondition( + [max_iteration, this](Instruction* insert_before_point) { + Instruction* new_cond = + InstructionBuilder(context_, insert_before_point, + IRContext::kAnalysisDefUse | + IRContext::kAnalysisInstrToBlockMapping) + .AddLessThan(canonical_induction_variable_->result_id(), + max_iteration->result_id()); + return new_cond ? new_cond->result_id() : 0; + })) { + return false; + } // "Protect" the second loop: the second loop can only be executed if // |has_remaining_iteration| is true (i.e. factor < loop_iteration_count_). BasicBlock* if_merge_block = loop_->GetMergeBlock(); - loop_->SetMergeBlock(CreateBlockBefore(loop_->GetMergeBlock())); + BasicBlock* new_merge_block = CreateBlockBefore(loop_->GetMergeBlock()); + if (!new_merge_block) return false; + loop_->SetMergeBlock(new_merge_block); // Prevent the second loop from being executed if we already executed all the // required iterations. BasicBlock* if_block = ProtectLoop(loop_, has_remaining_iteration, if_merge_block); + if (!if_block) return false; + // Patch the phi of the merge block. if_merge_block->ForEachPhiInst( [&clone_results, if_block, this](Instruction* phi) { @@ -471,14 +512,17 @@ void LoopPeeling::PeelBefore(uint32_t peel_factor) { context_->InvalidateAnalysesExceptFor( IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping | IRContext::kAnalysisLoopAnalysis | IRContext::kAnalysisCFG); + return true; } -void LoopPeeling::PeelAfter(uint32_t peel_factor) { +bool LoopPeeling::PeelAfter(uint32_t peel_factor) { assert(CanPeelLoop() && "Cannot peel loop"); LoopUtils::LoopCloningResult clone_results; // Clone the loop and insert the cloned one before the loop. - DuplicateAndConnectLoop(&clone_results); + if (!DuplicateAndConnectLoop(&clone_results)) { + return false; + } // Add a canonical induction variable "canonical_induction_variable_". InsertCanonicalInductionVariable(&clone_results); @@ -488,28 +532,33 @@ void LoopPeeling::PeelAfter(uint32_t peel_factor) { IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping); Instruction* factor = builder.GetIntConstant(peel_factor, int_type_->IsSigned()); + if (!factor) return false; Instruction* has_remaining_iteration = builder.AddLessThan( factor->result_id(), loop_iteration_count_->result_id()); + if (!has_remaining_iteration) return false; // Change the exit condition of the cloned loop to be (exit when become // false): // "canonical_induction_variable_" + "factor" < "loop_iteration_count_" - FixExitCondition([factor, this](Instruction* insert_before_point) { - InstructionBuilder cond_builder( - context_, insert_before_point, - IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping); - // Build the following check: canonical_induction_variable_ + factor < - // iteration_count - return cond_builder - .AddLessThan(cond_builder - .AddIAdd(canonical_induction_variable_->type_id(), - canonical_induction_variable_->result_id(), - factor->result_id()) - ->result_id(), - loop_iteration_count_->result_id()) - ->result_id(); - }); + if (!FixExitCondition([factor, + this](Instruction* insert_before_point) -> uint32_t { + InstructionBuilder cond_builder( + context_, insert_before_point, + IRContext::kAnalysisDefUse | + IRContext::kAnalysisInstrToBlockMapping); + // Build the following check: canonical_induction_variable_ + factor < + // iteration_count + Instruction* add = cond_builder.AddIAdd( + canonical_induction_variable_->type_id(), + canonical_induction_variable_->result_id(), factor->result_id()); + if (!add) return 0; + Instruction* new_cond = cond_builder.AddLessThan( + add->result_id(), loop_iteration_count_->result_id()); + return new_cond ? new_cond->result_id() : 0; + })) { + return false; + } // "Protect" the first loop: the first loop can only be executed if // factor < loop_iteration_count_. @@ -517,11 +566,17 @@ void LoopPeeling::PeelAfter(uint32_t peel_factor) { // The original loop's pre-header was the cloned loop merge block. GetClonedLoop()->SetMergeBlock( CreateBlockBefore(GetOriginalLoop()->GetPreHeaderBlock())); + if (!GetClonedLoop()->GetMergeBlock()) { + return false; + } // Use the second loop preheader as if merge block. // Prevent the first loop if only the peeled loop needs it. BasicBlock* if_block = ProtectLoop(cloned_loop_, has_remaining_iteration, GetOriginalLoop()->GetPreHeaderBlock()); + if (!if_block) { + return false; + } // Patch the phi of the header block. // We added an if to enclose the first loop and because the phi node are @@ -529,8 +584,10 @@ void LoopPeeling::PeelAfter(uint32_t peel_factor) { // dominate the preheader. // We had to the preheader (our if merge block) the required phi instruction // and patch the header phi. + bool ok = true; GetOriginalLoop()->GetHeaderBlock()->ForEachPhiInst( - [&clone_results, if_block, this](Instruction* phi) { + [&clone_results, if_block, &ok, this](Instruction* phi) { + if (!ok) return; analysis::DefUseManager* def_use_mgr = context_->get_def_use_mgr(); auto find_value_idx = [](Instruction* phi_inst, Loop* loop) { @@ -554,15 +611,21 @@ void LoopPeeling::PeelAfter(uint32_t peel_factor) { find_value_idx(phi, GetOriginalLoop())), GetClonedLoop()->GetMergeBlock()->id(), cloned_preheader_value, if_block->id()}); + if (!new_phi) { + ok = false; + return; + } phi->SetInOperand(find_value_idx(phi, GetOriginalLoop()), {new_phi->result_id()}); def_use_mgr->AnalyzeInstUse(phi); }); + if (!ok) return false; context_->InvalidateAnalysesExceptFor( IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping | IRContext::kAnalysisLoopAnalysis | IRContext::kAnalysisCFG); + return true; } Pass::Status LoopPeelingPass::Process() { @@ -571,13 +634,19 @@ Pass::Status LoopPeelingPass::Process() { // Process each function in the module for (Function& f : *module) { - modified |= ProcessFunction(&f); + Pass::Status status = ProcessFunction(&f); + if (status == Status::Failure) { + return Status::Failure; + } + if (status == Status::SuccessWithChange) { + modified = true; + } } return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } -bool LoopPeelingPass::ProcessFunction(Function* f) { +Pass::Status LoopPeelingPass::ProcessFunction(Function* f) { bool modified = false; LoopDescriptor& loop_descriptor = *context()->GetLoopDescriptor(f); @@ -593,41 +662,54 @@ bool LoopPeelingPass::ProcessFunction(Function* f) { CodeMetrics loop_size; loop_size.Analyze(*loop); - auto try_peel = [&loop_size, &modified, this](Loop* loop_to_peel) -> Loop* { + auto try_peel = [&loop_size, &modified, this]( + Loop* loop_to_peel) -> std::pair { if (!loop_to_peel->IsLCSSA()) { LoopUtils(context(), loop_to_peel).MakeLoopClosedSSA(); } - bool peeled_loop; + Pass::Status status; Loop* still_peelable_loop; - std::tie(peeled_loop, still_peelable_loop) = + std::tie(status, still_peelable_loop) = ProcessLoop(loop_to_peel, &loop_size); - if (peeled_loop) { + if (status == Pass::Status::SuccessWithChange) { modified = true; } - return still_peelable_loop; + return {status, still_peelable_loop}; }; - Loop* still_peelable_loop = try_peel(loop); + Pass::Status status; + Loop* still_peelable_loop; + std::tie(status, still_peelable_loop) = try_peel(loop); + + if (status == Pass::Status::Failure) { + return Pass::Status::Failure; + } + // The pass is working out the maximum factor by which a loop can be peeled. // If the loop can potentially be peeled again, then there is only one // possible direction, so only one call is still needed. if (still_peelable_loop) { - try_peel(loop); + std::tie(status, still_peelable_loop) = try_peel(still_peelable_loop); + if (status == Pass::Status::Failure) { + return Pass::Status::Failure; + } } } - return modified; + return modified ? Pass::Status::SuccessWithChange + : Pass::Status::SuccessWithoutChange; } -std::pair LoopPeelingPass::ProcessLoop(Loop* loop, - CodeMetrics* loop_size) { +std::tuple LoopPeelingPass::ProcessLoop( + Loop* loop, CodeMetrics* loop_size) { ScalarEvolutionAnalysis* scev_analysis = context()->GetScalarEvolutionAnalysis(); // Default values for bailing out. - std::pair bail_out{false, nullptr}; + std::tuple bail_out{Pass::Status::SuccessWithoutChange, + nullptr}; BasicBlock* exit_block = loop->FindConditionBlock(); if (!exit_block) { @@ -744,7 +826,9 @@ std::pair LoopPeelingPass::ProcessLoop(Loop* loop, Loop* extra_opportunity = nullptr; if (direction == PeelDirection::kBefore) { - peeler.PeelBefore(factor); + if (!peeler.PeelBefore(factor)) { + return {Pass::Status::Failure, nullptr}; + } if (stats_) { stats_->peeled_loops_.emplace_back(loop, PeelDirection::kBefore, factor); } @@ -753,7 +837,9 @@ std::pair LoopPeelingPass::ProcessLoop(Loop* loop, extra_opportunity = peeler.GetOriginalLoop(); } } else { - peeler.PeelAfter(factor); + if (!peeler.PeelAfter(factor)) { + return {Pass::Status::Failure, nullptr}; + } if (stats_) { stats_->peeled_loops_.emplace_back(loop, PeelDirection::kAfter, factor); } @@ -763,7 +849,7 @@ std::pair LoopPeelingPass::ProcessLoop(Loop* loop, } } - return {true, extra_opportunity}; + return {Pass::Status::SuccessWithChange, extra_opportunity}; } uint32_t LoopPeelingPass::LoopPeelingInfo::GetFirstLoopInvariantOperand( diff --git a/3rdparty/spirv-tools/source/opt/loop_peeling.h b/3rdparty/spirv-tools/source/opt/loop_peeling.h index 2a55fe44d..a794793d5 100644 --- a/3rdparty/spirv-tools/source/opt/loop_peeling.h +++ b/3rdparty/spirv-tools/source/opt/loop_peeling.h @@ -148,11 +148,11 @@ class LoopPeeling { // Moves the execution of the |factor| first iterations of the loop into a // dedicated loop. - void PeelBefore(uint32_t factor); + bool PeelBefore(uint32_t factor); // Moves the execution of the |factor| last iterations of the loop into a // dedicated loop. - void PeelAfter(uint32_t factor); + bool PeelAfter(uint32_t factor); // Returns the cloned loop. Loop* GetClonedLoop() { return cloned_loop_; } @@ -184,19 +184,19 @@ class LoopPeeling { // Duplicate |loop_| and place the new loop before the cloned loop. Iterating // values from the cloned loop are then connected to the original loop as // initializer. - void DuplicateAndConnectLoop(LoopUtils::LoopCloningResult* clone_results); + bool DuplicateAndConnectLoop(LoopUtils::LoopCloningResult* clone_results); // Insert the canonical induction variable into the first loop as a simplified - // counter. - void InsertCanonicalInductionVariable( + // counter. Returns true on success. + bool InsertCanonicalInductionVariable( LoopUtils::LoopCloningResult* clone_results); // Fixes the exit condition of the before loop. The function calls // |condition_builder| to get the condition to use in the conditional branch // of the loop exit. The loop will be exited if the condition evaluate to // true. |condition_builder| takes an Instruction* that represent the - // insertion point. - void FixExitCondition( + // insertion point. Returns true on success. + bool FixExitCondition( const std::function& condition_builder); // Gathers all operations involved in the update of |iterator| into @@ -321,10 +321,14 @@ class LoopPeelingPass : public Pass { ScalarEvolutionAnalysis* scev_analysis_; size_t loop_max_iterations_; }; - // Peel profitable loops in |f|. - bool ProcessFunction(Function* f); - // Peel |loop| if profitable. - std::pair ProcessLoop(Loop* loop, CodeMetrics* loop_size); + // Peel profitable loops in |f|. Returns Pass::Status::Failure if an error + // occurs. + Pass::Status ProcessFunction(Function* f); + // Peel |loop| if profitable. Returns Pass::Status::Failure if an error + // occurs. Returns {Pass::Status::SuccessWithChange, Loop*} if the loop is + // peeled and there is another peeling opportunity. + std::tuple ProcessLoop(Loop* loop, + CodeMetrics* loop_size); static size_t code_grow_threshold_; LoopPeelingStats* stats_; diff --git a/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.cpp b/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.cpp index 41f1a804b..d0acac9db 100644 --- a/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.cpp @@ -92,12 +92,16 @@ class LoopUnswitch { // position |ip|. This function preserves the def/use and instr to block // managers. BasicBlock* CreateBasicBlock(Function::iterator ip) { + uint32_t new_label_id = TakeNextId(); + if (new_label_id == 0) { + return nullptr; + } + analysis::DefUseManager* def_use_mgr = context_->get_def_use_mgr(); - // TODO(1841): Handle id overflow. BasicBlock* bb = &*ip.InsertBefore(std::unique_ptr( new BasicBlock(std::unique_ptr(new Instruction( - context_, spv::Op::OpLabel, 0, context_->TakeNextId(), {}))))); + context_, spv::Op::OpLabel, 0, new_label_id, {}))))); bb->SetParent(function_); def_use_mgr->AnalyzeInstDef(bb->GetLabelInst()); context_->set_instr_block(bb->GetLabelInst(), bb); @@ -135,7 +139,7 @@ class LoopUnswitch { } // Unswitches |loop_|. - void PerformUnswitch() { + bool PerformUnswitch() { assert(CanUnswitchLoop() && "Cannot unswitch if there is not constant condition"); assert(loop_->GetPreHeaderBlock() && "This loop has no pre-header block"); @@ -165,6 +169,9 @@ class LoopUnswitch { if_merge_block ? CreateBasicBlock(FindBasicBlockPosition(if_merge_block)) : nullptr; + if (if_merge_block && !loop_merge_block) { + return false; + } if (loop_merge_block) { // Add the instruction and update managers. InstructionBuilder builder( @@ -174,17 +181,24 @@ class LoopUnswitch { builder.SetInsertPoint(&*loop_merge_block->begin()); cfg.RegisterBlock(loop_merge_block); def_use_mgr->AnalyzeInstDef(loop_merge_block->GetLabelInst()); - // Update CFG. + bool ok = true; if_merge_block->ForEachPhiInst( - [loop_merge_block, &builder, this](Instruction* phi) { + [loop_merge_block, &ok, &builder, this](Instruction* phi) -> bool { Instruction* cloned = phi->Clone(context_); - cloned->SetResultId(TakeNextId()); + uint32_t new_id = TakeNextId(); + if (new_id == 0) { + ok = false; + return false; + } + cloned->SetResultId(new_id); builder.AddInstruction(std::unique_ptr(cloned)); phi->SetInOperand(0, {cloned->result_id()}); phi->SetInOperand(1, {loop_merge_block->id()}); for (uint32_t j = phi->NumInOperands() - 1; j > 1; j--) phi->RemoveInOperand(j); + return true; }); + if (!ok) return false; // Copy the predecessor list (will get invalidated otherwise). std::vector preds = cfg.preds(if_merge_block->id()); for (uint32_t pid : preds) { @@ -227,6 +241,9 @@ class LoopUnswitch { // we need to create a dedicated block for the if. BasicBlock* loop_pre_header = CreateBasicBlock(++FindBasicBlockPosition(if_block)); + if (!loop_pre_header) { + return false; + } InstructionBuilder( context_, loop_pre_header, IRContext::kAnalysisDefUse | IRContext::kAnalysisInstrToBlockMapping) @@ -308,6 +325,12 @@ class LoopUnswitch { // specific value. original_loop_constant_value = GetValueForDefaultPathForSwitch(iv_condition); + if (!original_loop_constant_value) { + return false; + } + if (!original_loop_constant_value) { + return false; + } for (uint32_t i = 2; i < iv_condition->NumInOperands(); i += 2) { constant_branch.emplace_back( @@ -341,6 +364,9 @@ class LoopUnswitch { Loop* cloned_loop = loop_utils.CloneLoop(&clone_result, ordered_loop_blocks_); + if (!cloned_loop) { + return false; + } specialisation_pair.second = cloned_loop->GetPreHeaderBlock(); //////////////////////////////////// @@ -416,6 +442,7 @@ class LoopUnswitch { context_->InvalidateAnalysesExceptFor( IRContext::Analysis::kAnalysisLoopAnalysis); + return true; } private: @@ -434,10 +461,7 @@ class LoopUnswitch { std::vector ordered_loop_blocks_; // Returns the next usable id for the context. - uint32_t TakeNextId() { - // TODO(1841): Handle id overflow. - return context_->TakeNextId(); - } + uint32_t TakeNextId() { return context_->TakeNextId(); } // Simplifies |loop| assuming the instruction |to_version_insn| takes the // value |cst_value|. |block_range| is an iterator range returning the loop @@ -573,13 +597,15 @@ Pass::Status LoopUnswitchPass::Process() { // Process each function in the module for (Function& f : *module) { - modified |= ProcessFunction(&f); + Pass::Status status = ProcessFunction(&f); + if (status == Status::Failure) return Status::Failure; + if (status == Status::SuccessWithChange) modified = true; } return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } -bool LoopUnswitchPass::ProcessFunction(Function* f) { +Pass::Status LoopUnswitchPass::ProcessFunction(Function* f) { bool modified = false; std::unordered_set processed_loop; @@ -599,15 +625,17 @@ bool LoopUnswitchPass::ProcessFunction(Function* f) { if (!loop.IsLCSSA()) { LoopUtils(context(), &loop).MakeLoopClosedSSA(); } + if (!unswitcher.PerformUnswitch()) { + return Status::Failure; + } modified = true; loop_changed = true; - unswitcher.PerformUnswitch(); } if (loop_changed) break; } } - return modified; + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } } // namespace opt diff --git a/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.h b/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.h index 4f7295d43..66a757ff2 100644 --- a/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.h +++ b/3rdparty/spirv-tools/source/opt/loop_unswitch_pass.h @@ -34,7 +34,8 @@ class LoopUnswitchPass : public Pass { Pass::Status Process() override; private: - bool ProcessFunction(Function* f); + // Process the given function. + Pass::Status ProcessFunction(Function* f); }; } // namespace opt diff --git a/3rdparty/spirv-tools/source/opt/loop_utils.cpp b/3rdparty/spirv-tools/source/opt/loop_utils.cpp index 20494e12b..2decc0ab7 100644 --- a/3rdparty/spirv-tools/source/opt/loop_utils.cpp +++ b/3rdparty/spirv-tools/source/opt/loop_utils.cpp @@ -488,12 +488,18 @@ Loop* LoopUtils::CloneLoop(LoopCloningResult* cloning_result) const { Loop* LoopUtils::CloneAndAttachLoopToHeader(LoopCloningResult* cloning_result) { // Clone the loop. - Loop* new_loop = CloneLoop(cloning_result); + Loop* cloned_loop = CloneLoop(cloning_result); + if (!cloned_loop) { + return nullptr; + } // Create a new exit block/label for the new loop. - // TODO(1841): Handle id overflow. - std::unique_ptr new_label{new Instruction( - context_, spv::Op::OpLabel, 0, context_->TakeNextId(), {})}; + uint32_t new_label_id = context_->TakeNextId(); + if (new_label_id == 0) { + return nullptr; + } + std::unique_ptr new_label{ + new Instruction(context_, spv::Op::OpLabel, 0, new_label_id, {})}; std::unique_ptr new_exit_bb{new BasicBlock(std::move(new_label))}; new_exit_bb->SetParent(loop_->GetMergeBlock()->GetParent()); @@ -520,7 +526,7 @@ Loop* LoopUtils::CloneAndAttachLoopToHeader(LoopCloningResult* cloning_result) { } const uint32_t old_header = loop_->GetHeaderBlock()->id(); - const uint32_t new_header = new_loop->GetHeaderBlock()->id(); + const uint32_t new_header = cloned_loop->GetHeaderBlock()->id(); analysis::DefUseManager* def_use = context_->get_def_use_mgr(); def_use->ForEachUse(old_header, @@ -529,22 +535,24 @@ Loop* LoopUtils::CloneAndAttachLoopToHeader(LoopCloningResult* cloning_result) { inst->SetOperand(operand, {new_header}); }); - // TODO(1841): Handle failure to create pre-header. + BasicBlock* pre_header = loop_->GetOrCreatePreHeaderBlock(); + if (!pre_header) { + return nullptr; + } def_use->ForEachUse( - loop_->GetOrCreatePreHeaderBlock()->id(), + pre_header->id(), [new_merge_block, this](Instruction* inst, uint32_t operand) { if (this->loop_->IsInsideLoop(inst)) inst->SetOperand(operand, {new_merge_block}); - }); - new_loop->SetMergeBlock(new_exit_bb.get()); + cloned_loop->SetMergeBlock(new_exit_bb.get()); - new_loop->SetPreHeaderBlock(loop_->GetPreHeaderBlock()); + cloned_loop->SetPreHeaderBlock(loop_->GetPreHeaderBlock()); // Add the new block into the cloned instructions. cloning_result->cloned_bb_.push_back(std::move(new_exit_bb)); - return new_loop; + return cloned_loop; } Loop* LoopUtils::CloneLoop( @@ -562,8 +570,11 @@ Loop* LoopUtils::CloneLoop( // between old and new ids. BasicBlock* new_bb = old_bb->Clone(context_); new_bb->SetParent(&function_); - // TODO(1841): Handle id overflow. - new_bb->GetLabelInst()->SetResultId(context_->TakeNextId()); + uint32_t new_label_id = context_->TakeNextId(); + if (new_label_id == 0) { + return nullptr; + } + new_bb->GetLabelInst()->SetResultId(new_label_id); def_use_mgr->AnalyzeInstDef(new_bb->GetLabelInst()); context_->set_instr_block(new_bb->GetLabelInst(), new_bb); cloning_result->cloned_bb_.emplace_back(new_bb); @@ -578,8 +589,11 @@ Loop* LoopUtils::CloneLoop( new_inst != new_bb->end(); ++new_inst, ++old_inst) { cloning_result->ptr_map_[&*new_inst] = &*old_inst; if (new_inst->HasResultId()) { - // TODO(1841): Handle id overflow. - new_inst->SetResultId(context_->TakeNextId()); + uint32_t new_result_id = context_->TakeNextId(); + if (new_result_id == 0) { + return nullptr; + } + new_inst->SetResultId(new_result_id); cloning_result->value_map_[old_inst->result_id()] = new_inst->result_id(); diff --git a/3rdparty/spirv-tools/source/opt/loop_utils.h b/3rdparty/spirv-tools/source/opt/loop_utils.h index 70060fc4f..cb35970c1 100644 --- a/3rdparty/spirv-tools/source/opt/loop_utils.h +++ b/3rdparty/spirv-tools/source/opt/loop_utils.h @@ -114,6 +114,7 @@ class LoopUtils { // The function preserves the def/use, cfg and instr to block analyses. // The cloned loop nest will be added to the loop descriptor and will have // ownership. + // Returns the cloned loop, or nullptr if the loop could not be cloned. Loop* CloneLoop(LoopCloningResult* cloning_result, const std::vector& ordered_loop_blocks) const; // Clone |loop_| and remap its instructions, as above. Overload to compute @@ -121,6 +122,7 @@ class LoopUtils { Loop* CloneLoop(LoopCloningResult* cloning_result) const; // Clone the |loop_| and make the new loop branch to the second loop on exit. + // Returns the cloned loop, or nullptr if the loop could not be cloned. Loop* CloneAndAttachLoopToHeader(LoopCloningResult* cloning_result); // Perform a partial unroll of |loop| by given |factor|. This will copy the diff --git a/3rdparty/spirv-tools/source/opt/merge_return_pass.cpp b/3rdparty/spirv-tools/source/opt/merge_return_pass.cpp index c262ea073..18a602aa7 100644 --- a/3rdparty/spirv-tools/source/opt/merge_return_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/merge_return_pass.cpp @@ -58,7 +58,9 @@ Pass::Status MergeReturnPass::Process() { failed = true; } } else { - MergeReturnBlocks(function, return_blocks); + if (!MergeReturnBlocks(function, return_blocks)) { + failed = true; + } } return true; }; @@ -171,10 +173,14 @@ bool MergeReturnPass::ProcessStructured( return true; } -void MergeReturnPass::CreateReturnBlock() { +bool MergeReturnPass::CreateReturnBlock() { // Create a label for the new return block + uint32_t label_id = TakeNextId(); + if (label_id == 0) { + return false; + } std::unique_ptr return_label( - new Instruction(context(), spv::Op::OpLabel, 0u, TakeNextId(), {})); + new Instruction(context(), spv::Op::OpLabel, 0u, label_id, {})); // Create the new basic block std::unique_ptr return_block( @@ -186,14 +192,18 @@ void MergeReturnPass::CreateReturnBlock() { final_return_block_); assert(final_return_block_->GetParent() == function_ && "The function should have been set when the block was created."); + return true; } -void MergeReturnPass::CreateReturn(BasicBlock* block) { +bool MergeReturnPass::CreateReturn(BasicBlock* block) { AddReturnValue(); if (return_value_) { // Load and return the final return value uint32_t loadId = TakeNextId(); + if (loadId == 0) { + return false; + } block->AddInstruction(MakeUnique( context(), spv::Op::OpLoad, function_->type_id(), loadId, std::initializer_list{ @@ -216,6 +226,7 @@ void MergeReturnPass::CreateReturn(BasicBlock* block) { context()->AnalyzeDefUse(block->terminator()); context()->set_instr_block(block->terminator(), block); } + return true; } void MergeReturnPass::ProcessStructuredBlock(BasicBlock* block) { @@ -663,14 +674,16 @@ std::vector MergeReturnPass::CollectReturnBlocks( return return_blocks; } -void MergeReturnPass::MergeReturnBlocks( +bool MergeReturnPass::MergeReturnBlocks( Function* function, const std::vector& return_blocks) { if (return_blocks.size() <= 1) { // No work to do. - return; + return true; } - CreateReturnBlock(); + if (!CreateReturnBlock()) { + return false; + } uint32_t return_id = final_return_block_->id(); auto ret_block_iter = --function->end(); // Create the PHI for the merged block (if necessary). @@ -687,6 +700,9 @@ void MergeReturnPass::MergeReturnBlocks( if (!phi_ops.empty()) { // Need a PHI node to select the correct return value. uint32_t phi_result_id = TakeNextId(); + if (phi_result_id == 0) { + return false; + } uint32_t phi_type_id = function->type_id(); std::unique_ptr phi_inst(new Instruction( context(), spv::Op::OpPhi, phi_type_id, phi_result_id, phi_ops)); @@ -718,6 +734,7 @@ void MergeReturnPass::MergeReturnBlocks( } get_def_use_mgr()->AnalyzeInstDefUse(ret_block_iter->GetLabelInst()); + return true; } void MergeReturnPass::AddNewPhiNodes() { @@ -781,8 +798,12 @@ void MergeReturnPass::InsertAfterElement(BasicBlock* element, } bool MergeReturnPass::AddSingleCaseSwitchAroundFunction() { - CreateReturnBlock(); - CreateReturn(final_return_block_); + if (!CreateReturnBlock()) { + return false; + } + if (!CreateReturn(final_return_block_)) { + return false; + } if (context()->AreAnalysesValid(IRContext::kAnalysisCFG)) { cfg()->RegisterBlock(final_return_block_); @@ -828,7 +849,8 @@ BasicBlock* MergeReturnPass::CreateContinueTarget(uint32_t header_label_id) { bool MergeReturnPass::CreateSingleCaseSwitch(BasicBlock* merge_target) { // Insert the switch before any code is run. We have to split the entry - // block to make sure the OpVariable instructions remain in the entry block. + // block to make sure the OpVariable instructions and DebugFunctionDefinition + // instructions remain in the entry block. BasicBlock* start_block = &*function_->begin(); auto split_pos = start_block->begin(); while (split_pos->opcode() == spv::Op::OpVariable) { @@ -838,6 +860,18 @@ bool MergeReturnPass::CreateSingleCaseSwitch(BasicBlock* merge_target) { BasicBlock* old_block = start_block->SplitBasicBlock(context(), TakeNextId(), split_pos); + // Find DebugFunctionDefinition inst in the old block, and if we can find it, + // move it to the entry block. Since DebugFunctionDefinition is not necessary + // after OpVariable inst, we have to traverse the whole block to find it. + for (auto pos = old_block->begin(); pos != old_block->end(); ++pos) { + if (pos->GetShader100DebugOpcode() == + NonSemanticShaderDebugInfo100DebugFunctionDefinition) { + start_block->AddInstruction(MakeUnique(*pos)); + pos.Erase(); + break; + } + } + // Add the switch to the end of the entry block. InstructionBuilder builder( context(), start_block, diff --git a/3rdparty/spirv-tools/source/opt/merge_return_pass.h b/3rdparty/spirv-tools/source/opt/merge_return_pass.h index d15db2f67..d39c1d954 100644 --- a/3rdparty/spirv-tools/source/opt/merge_return_pass.h +++ b/3rdparty/spirv-tools/source/opt/merge_return_pass.h @@ -149,8 +149,9 @@ class MergeReturnPass : public MemPass { // Creates a new basic block with a single return. If |function| returns a // value, a phi node is created to select the correct value to return. - // Replaces old returns with an unconditional branch to the new block. - void MergeReturnBlocks(Function* function, + // Replaces old returns with an unconditional branch to the new block. Returns + // true if successful. + bool MergeReturnBlocks(Function* function, const std::vector& returnBlocks); // Generate and push new control flow state if |block| contains a merge. @@ -231,11 +232,12 @@ class MergeReturnPass : public MemPass { // Add an |OpReturn| or |OpReturnValue| to the end of |block|. If an // |OpReturnValue| is needed, the return value is loaded from |return_value_|. - void CreateReturn(BasicBlock* block); + // Returns true if successful. + bool CreateReturn(BasicBlock* block); // Creates a block at the end of the function that will become the single // return block at the end of the pass. - void CreateReturnBlock(); + bool CreateReturnBlock(); // Creates a Phi node in |merge_block| for the result of |inst|. // Any uses of the result of |inst| that are no longer @@ -332,4 +334,4 @@ class MergeReturnPass : public MemPass { } // namespace opt } // namespace spvtools -#endif // SOURCE_OPT_MERGE_RETURN_PASS_H_ +#endif // SOURCE_OPT_MERGE_RETURN_PASS_H_ \ No newline at end of file diff --git a/3rdparty/spirv-tools/source/opt/optimizer.cpp b/3rdparty/spirv-tools/source/opt/optimizer.cpp index aedca998f..138020412 100644 --- a/3rdparty/spirv-tools/source/opt/optimizer.cpp +++ b/3rdparty/spirv-tools/source/opt/optimizer.cpp @@ -641,6 +641,8 @@ bool Optimizer::RegisterPassFromFlag(const std::string& flag, RegisterPass(CreateSplitCombinedImageSamplerPass()); } else if (pass_name == "resolve-binding-conflicts") { RegisterPass(CreateResolveBindingConflictsPass()); + } else if (pass_name == "canonicalize-ids") { + RegisterPass(CreateCanonicalizeIdsPass()); } else { Errorf(consumer(), nullptr, {}, "Unknown flag '--%s'. Use --help for a list of valid flags", @@ -1202,6 +1204,11 @@ Optimizer::PassToken CreateResolveBindingConflictsPass() { MakeUnique()); } +Optimizer::PassToken CreateCanonicalizeIdsPass() { + return MakeUnique( + MakeUnique()); +} + } // namespace spvtools extern "C" { diff --git a/3rdparty/spirv-tools/source/opt/passes.h b/3rdparty/spirv-tools/source/opt/passes.h index 6c329787e..d00537739 100644 --- a/3rdparty/spirv-tools/source/opt/passes.h +++ b/3rdparty/spirv-tools/source/opt/passes.h @@ -21,6 +21,7 @@ #include "source/opt/amd_ext_to_khr.h" #include "source/opt/analyze_live_input_pass.h" #include "source/opt/block_merge_pass.h" +#include "source/opt/canonicalize_ids_pass.h" #include "source/opt/ccp_pass.h" #include "source/opt/cfg_cleanup_pass.h" #include "source/opt/code_sink.h" diff --git a/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.cpp b/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.cpp index 0df559b34..a38815547 100644 --- a/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.cpp @@ -29,6 +29,7 @@ namespace opt { Pass::Status RemoveDuplicatesPass::Process() { bool modified = RemoveDuplicateCapabilities(); + modified |= RemoveDuplicateExtensions(); modified |= RemoveDuplicatesExtInstImports(); modified |= RemoveDuplicateTypes(); modified |= RemoveDuplicateDecorations(); @@ -36,6 +37,41 @@ Pass::Status RemoveDuplicatesPass::Process() { return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } +bool RemoveDuplicatesPass::RemoveDuplicateExtensions() const { + bool modified = false; + + if (context()->extensions().empty()) { + return modified; + } + + // set of {condition ID, extension name} + // ID 0 means unconditional extension, ie., OpExtension, otherwise the ID is + // the condition operand of OpConditionalExtensionINTEL. + std::set> extensions; + for (auto* inst = &*context()->extension_begin(); inst;) { + uint32_t cond_id = 0; + uint32_t i_name = 0; + if (inst->opcode() == spv::Op::OpConditionalExtensionINTEL) { + cond_id = inst->GetOperand(0).AsId(); + i_name = 1; + } + + auto res = + extensions.insert({cond_id, inst->GetOperand(i_name).AsString()}); + + if (res.second) { + // Never seen before, keep it. + inst = inst->NextNode(); + } else { + // It's a duplicate, remove it. + inst = context()->KillInst(inst); + modified = true; + } + } + + return modified; +} + bool RemoveDuplicatesPass::RemoveDuplicateCapabilities() const { bool modified = false; @@ -43,16 +79,27 @@ bool RemoveDuplicatesPass::RemoveDuplicateCapabilities() const { return modified; } - std::unordered_set capabilities; - for (auto* i = &*context()->capability_begin(); i;) { - auto res = capabilities.insert(i->GetSingleWordOperand(0u)); + // set of {condition ID, capability} + // ID 0 means unconditional capability, ie., OpCapability, otherwise the ID is + // the condition operand of OpConditionalCapabilityINTEL. + std::set> capabilities; + for (auto* inst = &*context()->capability_begin(); inst;) { + uint32_t cond_id = 0; + uint32_t i_cap = 0; + if (inst->opcode() == spv::Op::OpConditionalCapabilityINTEL) { + cond_id = inst->GetOperand(0).AsId(); + i_cap = 1; + } + + auto res = + capabilities.insert({cond_id, inst->GetSingleWordOperand(i_cap)}); if (res.second) { // Never seen before, keep it. - i = i->NextNode(); + inst = inst->NextNode(); } else { // It's a duplicate, remove it. - i = context()->KillInst(i); + inst = context()->KillInst(inst); modified = true; } } diff --git a/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.h b/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.h index 038caa8b9..e5b3925dd 100644 --- a/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.h +++ b/3rdparty/spirv-tools/source/opt/remove_duplicates_pass.h @@ -37,6 +37,10 @@ class RemoveDuplicatesPass : public Pass { Status Process() override; private: + // Remove duplicate extensions from the module + // + // Returns true if the module was modified, false otherwise. + bool RemoveDuplicateExtensions() const; // Remove duplicate capabilities from the module // // Returns true if the module was modified, false otherwise. diff --git a/3rdparty/spirv-tools/source/opt/remove_unused_interface_variables_pass.cpp b/3rdparty/spirv-tools/source/opt/remove_unused_interface_variables_pass.cpp index c3a4b775a..e52f0729d 100644 --- a/3rdparty/spirv-tools/source/opt/remove_unused_interface_variables_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/remove_unused_interface_variables_pass.cpp @@ -13,6 +13,7 @@ // limitations under the License. #include "remove_unused_interface_variables_pass.h" + #include "source/spirv_constant.h" namespace spvtools { namespace opt { @@ -55,7 +56,9 @@ class RemoveUnusedInterfaceVariablesContext { void CollectUsedVariables() { std::queue roots; - roots.push(entry_.GetSingleWordInOperand(1)); + const int op_i = + entry_.opcode() == spv::Op::OpConditionalEntryPointINTEL ? 2 : 1; + roots.push(entry_.GetSingleWordInOperand(op_i)); parent_.context()->ProcessCallTreeFromRoots(pfn_, &roots); } @@ -73,7 +76,9 @@ class RemoveUnusedInterfaceVariablesContext { } void Modify() { - for (int i = entry_.NumInOperands() - 1; i >= 3; --i) + const int min_num_operands = + entry_.opcode() == spv::Op::OpConditionalEntryPointINTEL ? 4 : 3; + for (int i = entry_.NumInOperands() - 1; i >= min_num_operands; --i) entry_.RemoveInOperand(i); for (auto id : operands_to_add_) { entry_.AddOperand(Operand(SPV_OPERAND_TYPE_ID, {id})); diff --git a/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.cpp b/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.cpp index ff81fae3f..cdda3804b 100644 --- a/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.cpp @@ -186,7 +186,7 @@ bool ScalarReplacementPass::ReplaceWholeDebugDeclare( Instruction* added_dbg_value = context()->get_debug_info_mgr()->AddDebugValueForDecl( dbg_decl, /*value_id=*/var->result_id(), - /*insert_before=*/insert_before, /*scope_and_line=*/dbg_decl); + /*insert_before=*/insert_before, /*line=*/dbg_decl); if (added_dbg_value == nullptr) return false; added_dbg_value->AddOperand( @@ -475,6 +475,7 @@ void ScalarReplacementPass::CreateVariable( if (id == 0) { replacements->push_back(nullptr); + return; } std::unique_ptr variable( @@ -488,7 +489,10 @@ void ScalarReplacementPass::CreateVariable( Instruction* inst = &*block->begin(); // If varInst was initialized, make sure to initialize its replacement. - GetOrCreateInitialValue(var_inst, index, inst); + if (!GetOrCreateInitialValue(var_inst, index, inst)) { + replacements->push_back(nullptr); + return; + } get_def_use_mgr()->AnalyzeInstDefUse(inst); context()->set_instr_block(inst, block); @@ -509,11 +513,11 @@ uint32_t ScalarReplacementPass::GetOrCreatePointerType(uint32_t id) { return ptr_type_id; } -void ScalarReplacementPass::GetOrCreateInitialValue(Instruction* source, +bool ScalarReplacementPass::GetOrCreateInitialValue(Instruction* source, uint32_t index, Instruction* newVar) { assert(source->opcode() == spv::Op::OpVariable); - if (source->NumInOperands() < 2) return; + if (source->NumInOperands() < 2) return true; uint32_t initId = source->GetSingleWordInOperand(1u); uint32_t storageId = GetStorageType(newVar)->result_id(); @@ -525,6 +529,7 @@ void ScalarReplacementPass::GetOrCreateInitialValue(Instruction* source, auto iter = type_to_null_.find(storageId); if (iter == type_to_null_.end()) { newInitId = TakeNextId(); + if (newInitId == 0) return false; type_to_null_[storageId] = newInitId; context()->AddGlobalValue( MakeUnique(context(), spv::Op::OpConstantNull, storageId, @@ -537,6 +542,7 @@ void ScalarReplacementPass::GetOrCreateInitialValue(Instruction* source, } else if (IsSpecConstantInst(init->opcode())) { // Create a new constant extract. newInitId = TakeNextId(); + if (newInitId == 0) return false; context()->AddGlobalValue(MakeUnique( context(), spv::Op::OpSpecConstantOp, storageId, newInitId, std::initializer_list{ @@ -561,6 +567,7 @@ void ScalarReplacementPass::GetOrCreateInitialValue(Instruction* source, if (newInitId != 0) { newVar->AddOperand({SPV_OPERAND_TYPE_ID, {newInitId}}); } + return true; } uint64_t ScalarReplacementPass::GetArrayLength( diff --git a/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.h b/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.h index 61d341e5c..77d5bd5f1 100644 --- a/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.h +++ b/3rdparty/spirv-tools/source/opt/scalar_replacement_pass.h @@ -199,7 +199,9 @@ class ScalarReplacementPass : public MemPass { // If there is an initial value for |source| for element |index|, it is // appended as an operand on |newVar|. If the initial value is OpUndef, no // initial value is added to |newVar|. - void GetOrCreateInitialValue(Instruction* source, uint32_t index, + // + // Returns true if the value was successfully created. + bool GetOrCreateInitialValue(Instruction* source, uint32_t index, Instruction* newVar); // Replaces the load to the entire composite. diff --git a/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp b/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp index 0af4dba6c..630059fb1 100644 --- a/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/split_combined_image_sampler_pass.cpp @@ -556,10 +556,14 @@ spv_result_t SplitCombinedImageSamplerPass::RemapFunctions() { Instruction* sampler; }; std::vector replacements; + bool error = false; Function::RewriteParamFn rewriter = [&](std::unique_ptr&& param, std::back_insert_iterator& appender) { + if (error) { + return; + } if (combined_types_.count(param->type_id()) == 0) { appender = std::move(param); return; @@ -569,12 +573,22 @@ 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); + uint32_t image_param_id = context()->TakeNextId(); + if (image_param_id == 0) { + error = true; + return; + } auto image_param = MakeUnique( context(), spv::Op::OpFunctionParameter, image_type->result_id(), - context()->TakeNextId(), Instruction::OperandList{}); + image_param_id, Instruction::OperandList{}); + uint32_t sampler_param_id = context()->TakeNextId(); + if (sampler_param_id == 0) { + error = true; + return; + } auto sampler_param = MakeUnique( context(), spv::Op::OpFunctionParameter, - sampler_type->result_id(), context()->TakeNextId(), + sampler_type->result_id(), sampler_param_id, Instruction::OperandList{}); replacements.push_back( {combined_inst, image_param.get(), sampler_param.get()}); @@ -583,6 +597,10 @@ spv_result_t SplitCombinedImageSamplerPass::RemapFunctions() { }; fn.RewriteParams(rewriter); + if (error) { + return SPV_ERROR_INTERNAL; + } + for (auto& r : replacements) { modified_ = true; def_use_mgr_->AnalyzeInstDefUse(r.image); diff --git a/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.cpp b/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.cpp index 3eb4ec3f8..615b129bf 100644 --- a/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.cpp @@ -87,13 +87,15 @@ std::string SSARewriter::PhiCandidate::PrettyPrint(const CFG* cfg) const { return str.str(); } -SSARewriter::PhiCandidate& SSARewriter::CreatePhiCandidate(uint32_t var_id, +SSARewriter::PhiCandidate* SSARewriter::CreatePhiCandidate(uint32_t var_id, BasicBlock* bb) { - // TODO(1841): Handle id overflow. uint32_t phi_result_id = pass_->context()->TakeNextId(); + if (phi_result_id == 0) { + return nullptr; + } auto result = phi_candidates_.emplace( phi_result_id, PhiCandidate(var_id, phi_result_id, bb)); - PhiCandidate& phi_candidate = result.first->second; + PhiCandidate* phi_candidate = &result.first->second; return phi_candidate; } @@ -268,11 +270,12 @@ uint32_t SSARewriter::GetReachingDef(uint32_t var_id, BasicBlock* bb) { // If there is more than one predecessor, this is a join block which may // require a Phi instruction. This will act as |var_id|'s current // definition to break potential cycles. - PhiCandidate& phi_candidate = CreatePhiCandidate(var_id, bb); + PhiCandidate* phi_candidate = CreatePhiCandidate(var_id, bb); + if (phi_candidate == nullptr) return 0; // Set the value for |bb| to avoid an infinite recursion. - WriteVariable(var_id, bb, phi_candidate.result_id()); - val_id = AddPhiOperands(&phi_candidate); + WriteVariable(var_id, bb, phi_candidate->result_id()); + val_id = AddPhiOperands(phi_candidate); } // If we could not find a store for this variable in the path from the root diff --git a/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.h b/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.h index 2470f85f6..076d9e165 100644 --- a/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.h +++ b/3rdparty/spirv-tools/source/opt/ssa_rewrite_pass.h @@ -232,7 +232,7 @@ class SSARewriter { // during rewriting. // // Once the candidate Phi is created, it returns its ID. - PhiCandidate& CreatePhiCandidate(uint32_t var_id, BasicBlock* bb); + PhiCandidate* CreatePhiCandidate(uint32_t var_id, BasicBlock* bb); // Attempts to remove a trivial Phi candidate |phi_cand|. Trivial Phis are // those that only reference themselves and one other value |val| any number diff --git a/3rdparty/spirv-tools/source/opt/strength_reduction_pass.cpp b/3rdparty/spirv-tools/source/opt/strength_reduction_pass.cpp index 16a7869ec..b9d62650b 100644 --- a/3rdparty/spirv-tools/source/opt/strength_reduction_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/strength_reduction_pass.cpp @@ -53,17 +53,15 @@ bool IsPowerOf2(uint32_t val) { Pass::Status StrengthReductionPass::Process() { // Initialize the member variables on a per module basis. - bool modified = false; int32_type_id_ = 0; uint32_type_id_ = 0; std::memset(constant_ids_, 0, sizeof(constant_ids_)); FindIntTypesAndConstants(); - modified = ScanFunctions(); - return (modified ? Status::SuccessWithChange : Status::SuccessWithoutChange); + return ScanFunctions(); } -bool StrengthReductionPass::ReplaceMultiplyByPowerOf2( +Pass::Status StrengthReductionPass::ReplaceMultiplyByPowerOf2( BasicBlock::iterator* inst) { assert((*inst)->opcode() == spv::Op::OpIMul && "Only works for multiplication of integers."); @@ -72,7 +70,7 @@ bool StrengthReductionPass::ReplaceMultiplyByPowerOf2( // Currently only works on 32-bit integers. if ((*inst)->type_id() != int32_type_id_ && (*inst)->type_id() != uint32_type_id_) { - return modified; + return Status::SuccessWithoutChange; } // Check the operands for a constant that is a power of 2. @@ -87,9 +85,11 @@ bool StrengthReductionPass::ReplaceMultiplyByPowerOf2( modified = true; uint32_t shiftAmount = CountTrailingZeros(constVal); uint32_t shiftConstResultId = GetConstantId(shiftAmount); + if (shiftConstResultId == 0) return Status::Failure; // Create the new instruction. uint32_t newResultId = TakeNextId(); + if (newResultId == 0) return Status::Failure; std::vector newOperands; newOperands.push_back((*inst)->GetInOperand(1 - i)); Operand shiftOperand(spv_operand_type_t::SPV_OPERAND_TYPE_ID, @@ -117,7 +117,7 @@ bool StrengthReductionPass::ReplaceMultiplyByPowerOf2( } } - return modified; + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } void StrengthReductionPass::FindIntTypesAndConstants() { @@ -152,6 +152,7 @@ uint32_t StrengthReductionPass::GetConstantId(uint32_t val) { // Construct the constant. uint32_t resultId = TakeNextId(); + if (resultId == 0) return 0; Operand constant(spv_operand_type_t::SPV_OPERAND_TYPE_LITERAL_INTEGER, {val}); std::unique_ptr newConstant(new Instruction( @@ -169,7 +170,7 @@ uint32_t StrengthReductionPass::GetConstantId(uint32_t val) { return constant_ids_[val]; } -bool StrengthReductionPass::ScanFunctions() { +Pass::Status StrengthReductionPass::ScanFunctions() { // I did not use |ForEachInst| in the module because the function that acts on // the instruction gets a pointer to the instruction. We cannot use that to // insert a new instruction. I want an iterator. @@ -178,16 +179,19 @@ bool StrengthReductionPass::ScanFunctions() { for (auto& bb : func) { for (auto inst = bb.begin(); inst != bb.end(); ++inst) { switch (inst->opcode()) { - case spv::Op::OpIMul: - if (ReplaceMultiplyByPowerOf2(&inst)) modified = true; + case spv::Op::OpIMul: { + Status s = ReplaceMultiplyByPowerOf2(&inst); + if (s == Status::Failure) return Status::Failure; + if (s == Status::SuccessWithChange) modified = true; break; + } default: break; } } } } - return modified; + return modified ? Status::SuccessWithChange : Status::SuccessWithoutChange; } } // namespace opt diff --git a/3rdparty/spirv-tools/source/opt/strength_reduction_pass.h b/3rdparty/spirv-tools/source/opt/strength_reduction_pass.h index 1cbbbcc6d..48e72abe7 100644 --- a/3rdparty/spirv-tools/source/opt/strength_reduction_pass.h +++ b/3rdparty/spirv-tools/source/opt/strength_reduction_pass.h @@ -32,7 +32,7 @@ class StrengthReductionPass : public Pass { private: // Replaces multiple by power of 2 with an equivalent bit shift. // Returns true if something changed. - bool ReplaceMultiplyByPowerOf2(BasicBlock::iterator*); + Status ReplaceMultiplyByPowerOf2(BasicBlock::iterator*); // Scan the types and constants in the module looking for the integer // types that we are @@ -47,7 +47,7 @@ class StrengthReductionPass : public Pass { // Replaces certain instructions in function bodies with presumably cheaper // ones. Returns true if something changed. - bool ScanFunctions(); + Status ScanFunctions(); // Type ids for the types of interest, or 0 if they do not exist. uint32_t int32_type_id_; diff --git a/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.cpp b/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.cpp index cc0e331bb..47f2cb2d1 100644 --- a/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.cpp +++ b/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.cpp @@ -427,20 +427,20 @@ Handler_OpImageSparseRead_StorageImageReadWithoutFormat( // Opcode of interest to determine capabilities requirements. constexpr std::array, 14> kOpcodeHandlers{{ // clang-format off - {spv::Op::OpImageRead, Handler_OpImageRead_StorageImageReadWithoutFormat}, - {spv::Op::OpImageWrite, Handler_OpImageWrite_StorageImageWriteWithoutFormat}, - {spv::Op::OpImageSparseRead, Handler_OpImageSparseRead_StorageImageReadWithoutFormat}, - {spv::Op::OpTypeFloat, Handler_OpTypeFloat_Float16 }, - {spv::Op::OpTypeFloat, Handler_OpTypeFloat_Float64 }, - {spv::Op::OpTypeImage, Handler_OpTypeImage_ImageMSArray}, - {spv::Op::OpTypeInt, Handler_OpTypeInt_Int16 }, - {spv::Op::OpTypeInt, Handler_OpTypeInt_Int64 }, - {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageInputOutput16}, - {spv::Op::OpTypePointer, Handler_OpTypePointer_StoragePushConstant16}, - {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageUniform16}, - {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageUniform16}, - {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageUniformBufferBlock16}, - {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageBuffer16BitAccess}, + {spv::Op::OpImageRead, Handler_OpImageRead_StorageImageReadWithoutFormat}, + {spv::Op::OpImageWrite, Handler_OpImageWrite_StorageImageWriteWithoutFormat}, + {spv::Op::OpImageSparseRead, Handler_OpImageSparseRead_StorageImageReadWithoutFormat}, + {spv::Op::OpTypeFloat, Handler_OpTypeFloat_Float16 }, + {spv::Op::OpTypeFloat, Handler_OpTypeFloat_Float64 }, + {spv::Op::OpTypeImage, Handler_OpTypeImage_ImageMSArray}, + {spv::Op::OpTypeInt, Handler_OpTypeInt_Int16 }, + {spv::Op::OpTypeInt, Handler_OpTypeInt_Int64 }, + {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageInputOutput16}, + {spv::Op::OpTypePointer, Handler_OpTypePointer_StoragePushConstant16}, + {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageUniform16}, + {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageUniform16}, + {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageUniformBufferBlock16}, + {spv::Op::OpTypePointer, Handler_OpTypePointer_StorageBuffer16BitAccess}, // clang-format on }}; @@ -612,7 +612,9 @@ void TrimCapabilitiesPass::addInstructionRequirements( ExtensionSet* extensions) const { // Ignoring OpCapability and OpExtension instructions. if (instruction->opcode() == spv::Op::OpCapability || - instruction->opcode() == spv::Op::OpExtension) { + instruction->opcode() == spv::Op::OpConditionalCapabilityINTEL || + instruction->opcode() == spv::Op::OpExtension || + instruction->opcode() == spv::Op::OpConditionalExtensionINTEL) { return; } @@ -631,7 +633,7 @@ void TrimCapabilitiesPass::addInstructionRequirements( } // Last case: some complex logic needs to be run to determine capabilities. - auto[begin, end] = opcodeHandlers_.equal_range(instruction->opcode()); + auto [begin, end] = opcodeHandlers_.equal_range(instruction->opcode()); for (auto it = begin; it != end; it++) { const OpcodeHandler handler = it->second; auto result = handler(instruction); @@ -754,7 +756,7 @@ Pass::Status TrimCapabilitiesPass::Process() { return Status::SuccessWithoutChange; } - auto[required_capabilities, required_extensions] = + auto [required_capabilities, required_extensions] = DetermineRequiredCapabilitiesAndExtensions(); Pass::Status capStatus = TrimUnrequiredCapabilities(required_capabilities); diff --git a/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.h b/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.h index d2369b15e..06e989b91 100644 --- a/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.h +++ b/3rdparty/spirv-tools/source/opt/trim_capabilities_pass.h @@ -82,6 +82,7 @@ class TrimCapabilitiesPass : public Pass { spv::Capability::FragmentShaderPixelInterlockEXT, spv::Capability::FragmentShaderSampleInterlockEXT, spv::Capability::FragmentShaderShadingRateInterlockEXT, + spv::Capability::Geometry, spv::Capability::GroupNonUniform, spv::Capability::GroupNonUniformArithmetic, spv::Capability::GroupNonUniformClustered, diff --git a/3rdparty/spirv-tools/source/opt/type_manager.cpp b/3rdparty/spirv-tools/source/opt/type_manager.cpp index be7dbc8f6..43e82cf75 100644 --- a/3rdparty/spirv-tools/source/opt/type_manager.cpp +++ b/3rdparty/spirv-tools/source/opt/type_manager.cpp @@ -495,6 +495,49 @@ uint32_t TypeManager::GetTypeInstruction(const Type* type) { {SPV_OPERAND_TYPE_ID, {coop_vec->components()}}}); break; } + case Type::kTensorARM: { + auto tensor_type = type->AsTensorARM(); + uint32_t const element_type = + GetTypeInstruction(tensor_type->element_type()); + if (element_type == 0) { + return 0; + } + if (tensor_type->rank_id() != 0) { + if (tensor_type->shape_id() != 0) { + typeInst = MakeUnique( + context(), spv::Op::OpTypeTensorARM, 0, id, + std::initializer_list{ + {SPV_OPERAND_TYPE_ID, {element_type}}, + {SPV_OPERAND_TYPE_ID, {tensor_type->rank_id()}}, + {SPV_OPERAND_TYPE_ID, {tensor_type->shape_id()}}}); + } else { + typeInst = MakeUnique( + context(), spv::Op::OpTypeTensorARM, 0, id, + std::initializer_list{ + {SPV_OPERAND_TYPE_ID, {element_type}}, + {SPV_OPERAND_TYPE_ID, {tensor_type->rank_id()}}}); + } + } else { + typeInst = + MakeUnique(context(), spv::Op::OpTypeTensorARM, 0, id, + std::initializer_list{ + {SPV_OPERAND_TYPE_ID, {element_type}}}); + } + break; + } + case Type::kGraphARM: { + auto const gty = type->AsGraphARM(); + std::vector ops; + ops.push_back( + Operand(SPV_OPERAND_TYPE_LITERAL_INTEGER, {gty->num_inputs()})); + for (auto iotype : gty->io_types()) { + uint32_t iotype_id = GetTypeInstruction(iotype); + ops.push_back(Operand(SPV_OPERAND_TYPE_ID, {iotype_id})); + } + typeInst = MakeUnique(context(), spv::Op::OpTypeGraphARM, 0, + id, ops); + break; + } default: assert(false && "Unexpected type"); break; @@ -754,6 +797,23 @@ Type* TypeManager::RebuildType(uint32_t type_id, const Type& type) { cv_type->components()); break; } + case Type::kTensorARM: { + const TensorARM* tensor_type = type.AsTensorARM(); + const Type* element_type = tensor_type->element_type(); + rebuilt_ty = MakeUnique( + RebuildType(GetId(element_type), *element_type), + tensor_type->rank_id(), tensor_type->shape_id()); + break; + } + case Type::kGraphARM: { + const GraphARM* graph_type = type.AsGraphARM(); + std::vector io_types; + for (auto ioty : graph_type->io_types()) { + io_types.push_back(RebuildType(GetId(ioty), *ioty)); + } + rebuilt_ty = MakeUnique(graph_type->num_inputs(), io_types); + break; + } default: assert(false && "Unhandled type"); return nullptr; @@ -1036,6 +1096,31 @@ Type* TypeManager::RecordIfTypeDefinition(const Instruction& inst) { inst.GetSingleWordInOperand(1), perm); break; } + case spv::Op::OpTypeTensorARM: { + switch (inst.NumInOperands()) { + case 1: + type = new TensorARM(GetType(inst.GetSingleWordInOperand(0))); + break; + case 2: + type = new TensorARM(GetType(inst.GetSingleWordInOperand(0)), + inst.GetSingleWordInOperand(1)); + break; + case 3: + type = new TensorARM(GetType(inst.GetSingleWordInOperand(0)), + inst.GetSingleWordInOperand(1), + inst.GetSingleWordInOperand(2)); + break; + } + break; + } + case spv::Op::OpTypeGraphARM: { + std::vector io_types; + for (unsigned i = 1; i < inst.NumInOperands(); i++) { + io_types.push_back(GetType(inst.GetSingleWordInOperand(i))); + } + type = new GraphARM(inst.GetSingleWordInOperand(0), io_types); + break; + } default: assert(false && "Type not handled by the type manager."); break; @@ -1067,7 +1152,11 @@ void TypeManager::AttachDecoration(const Instruction& inst, Type* type) { const auto count = inst.NumOperands(); std::vector data; for (uint32_t i = 1; i < count; ++i) { - data.push_back(inst.GetSingleWordOperand(i)); + // LinkageAttributes has a literal string as an operand, which is a + // varible length word. We cannot assume that all operands are single + // word. + const Operand::OperandData& words = inst.GetOperand(i).words; + data.insert(data.end(), words.begin(), words.end()); } type->AddDecoration(std::move(data)); } break; diff --git a/3rdparty/spirv-tools/source/opt/types.cpp b/3rdparty/spirv-tools/source/opt/types.cpp index bb761a464..f0dc1c679 100644 --- a/3rdparty/spirv-tools/source/opt/types.cpp +++ b/3rdparty/spirv-tools/source/opt/types.cpp @@ -135,6 +135,8 @@ std::unique_ptr Type::Clone() const { DeclareKindCase(CooperativeVectorNV); DeclareKindCase(RayQueryKHR); DeclareKindCase(HitObjectNV); + DeclareKindCase(TensorARM); + DeclareKindCase(GraphARM); #undef DeclareKindCase default: assert(false && "Unhandled type"); @@ -187,6 +189,8 @@ bool Type::operator==(const Type& other) const { DeclareKindCase(HitObjectNV); DeclareKindCase(TensorLayoutNV); DeclareKindCase(TensorViewNV); + DeclareKindCase(TensorARM); + DeclareKindCase(GraphARM); #undef DeclareKindCase default: assert(false && "Unhandled type"); @@ -247,6 +251,8 @@ size_t Type::ComputeHashValue(size_t hash, SeenTypes* seen) const { DeclareKindCase(HitObjectNV); DeclareKindCase(TensorLayoutNV); DeclareKindCase(TensorViewNV); + DeclareKindCase(TensorARM); + DeclareKindCase(GraphARM); #undef DeclareKindCase default: assert(false && "Unhandled type"); @@ -899,6 +905,91 @@ bool CooperativeVectorNV::IsSameImpl(const Type* that, components_ == mt->components_ && HasSameDecorations(that); } +TensorARM::TensorARM(const Type* elty, const uint32_t rank, + const uint32_t shape) + : Type(kTensorARM), element_type_(elty), rank_id_(rank), shape_id_(shape) { + assert(elty != nullptr); + if (shape != 0) { + assert(rank != 0); + } +} + +std::string TensorARM::str() const { + std::ostringstream oss; + oss << "tensor<" << element_type_->str() << ", id(" << rank_id_ << "), id(" + << shape_id_ << ")>"; + return oss.str(); +} + +size_t TensorARM::ComputeExtraStateHash(size_t hash, SeenTypes* seen) const { + hash = hash_combine(hash, rank_id_); + hash = hash_combine(hash, shape_id_); + return element_type_->ComputeHashValue(hash, seen); +} + +bool TensorARM::IsSameImpl(const Type* that, IsSameCache* seen) const { + const TensorARM* tt = that->AsTensorARM(); + if (!tt) return false; + return element_type_->IsSameImpl(tt->element_type_, seen) && + rank_id_ == tt->rank_id_ && shape_id_ == tt->shape_id_ && + HasSameDecorations(that); +} + +GraphARM::GraphARM(const uint32_t num_inputs, + const std::vector& io_types) + : Type(kGraphARM), num_inputs_(num_inputs), io_types_(io_types) { + assert(io_types.size() > 0); +} + +std::string GraphARM::str() const { + std::ostringstream oss; + oss << "graph<" << num_inputs_; + for (auto ioty : io_types_) { + oss << "," << ioty->str(); + } + oss << ">"; + return oss.str(); +} + +bool GraphARM::is_shaped() const { + // A graph is considered to be shaped if all its interface tensors are shaped + for (auto ioty : io_types_) { + auto tensor_type = ioty->AsTensorARM(); + assert(tensor_type); + if (!tensor_type->is_shaped()) { + return false; + } + } + return true; +} + +size_t GraphARM::ComputeExtraStateHash(size_t hash, SeenTypes* seen) const { + hash = hash_combine(hash, num_inputs_); + for (auto ioty : io_types_) { + hash = ioty->ComputeHashValue(hash, seen); + } + return hash; +} + +bool GraphARM::IsSameImpl(const Type* that, IsSameCache* seen) const { + const GraphARM* og = that->AsGraphARM(); + if (!og) { + return false; + } + if (num_inputs_ != og->num_inputs_) { + return false; + } + if (io_types_.size() != og->io_types_.size()) { + return false; + } + for (size_t i = 0; i < io_types_.size(); i++) { + if (!io_types_[i]->IsSameImpl(og->io_types_[i], seen)) { + return false; + } + } + return true; +} + } // namespace analysis } // namespace opt } // namespace spvtools diff --git a/3rdparty/spirv-tools/source/opt/types.h b/3rdparty/spirv-tools/source/opt/types.h index 9b12d5f94..2dd6c75bb 100644 --- a/3rdparty/spirv-tools/source/opt/types.h +++ b/3rdparty/spirv-tools/source/opt/types.h @@ -69,6 +69,8 @@ class RayQueryKHR; class HitObjectNV; class TensorLayoutNV; class TensorViewNV; +class TensorARM; +class GraphARM; // Abstract class for a SPIR-V type. It has a bunch of As() methods, // which is used as a way to probe the actual . @@ -114,6 +116,8 @@ class Type { kHitObjectNV, kTensorLayoutNV, kTensorViewNV, + kTensorARM, + kGraphARM, kLast }; @@ -220,6 +224,8 @@ class Type { DeclareCastMethod(HitObjectNV) DeclareCastMethod(TensorLayoutNV) DeclareCastMethod(TensorViewNV) + DeclareCastMethod(TensorARM) + DeclareCastMethod(GraphARM) #undef DeclareCastMethod protected: @@ -774,6 +780,56 @@ class CooperativeVectorNV : public Type { const uint32_t components_; }; +class TensorARM : public Type { + public: + TensorARM(const Type* elty, const uint32_t rank = 0, + const uint32_t shape = 0); + TensorARM(const TensorARM&) = default; + + std::string str() const override; + + TensorARM* AsTensorARM() override { return this; } + const TensorARM* AsTensorARM() const override { return this; } + + size_t ComputeExtraStateHash(size_t hash, SeenTypes* seen) const override; + + const Type* element_type() const { return element_type_; } + uint32_t rank_id() const { return rank_id_; } + uint32_t shape_id() const { return shape_id_; } + bool is_ranked() const { return rank_id_ != 0; } + bool is_shaped() const { return shape_id_ != 0; } + + private: + bool IsSameImpl(const Type* that, IsSameCache*) const override; + + const Type* element_type_; + const uint32_t rank_id_; + const uint32_t shape_id_; +}; + +class GraphARM : public Type { + public: + GraphARM(const uint32_t num_inputs, const std::vector& io_types); + GraphARM(const GraphARM&) = default; + + std::string str() const override; + + GraphARM* AsGraphARM() override { return this; } + const GraphARM* AsGraphARM() const override { return this; } + + uint32_t num_inputs() const { return num_inputs_; } + const std::vector& io_types() const { return io_types_; } + bool is_shaped() const; + + size_t ComputeExtraStateHash(size_t hash, SeenTypes* seen) const override; + + private: + bool IsSameImpl(const Type* that, IsSameCache*) const override; + + const uint32_t num_inputs_; + const std::vector io_types_; +}; + #define DefineParameterlessType(type, name) \ class type : public Type { \ public: \ diff --git a/3rdparty/spirv-tools/source/opt/upgrade_memory_model.cpp b/3rdparty/spirv-tools/source/opt/upgrade_memory_model.cpp index 1b439a6ef..5d3b863f1 100644 --- a/3rdparty/spirv-tools/source/opt/upgrade_memory_model.cpp +++ b/3rdparty/spirv-tools/source/opt/upgrade_memory_model.cpp @@ -160,14 +160,38 @@ void UpgradeMemoryModel::UpgradeMemoryAndImages() { } switch (inst->opcode()) { - case spv::Op::OpLoad: + case spv::Op::OpLoad: { + Instruction* src_pointer = context()->get_def_use_mgr()->GetDef( + inst->GetSingleWordInOperand(0u)); + analysis::Type* src_type = + context()->get_type_mgr()->GetType(src_pointer->type_id()); + auto storage_class = src_type->AsPointer()->storage_class(); + if (storage_class == spv::StorageClass::Function || + storage_class == spv::StorageClass::Private) { + // If the buffer from function variable or private variable, flag + // NonPrivatePointer is unnecessary. + is_coherent = false; + } UpgradeFlags(inst, 1u, is_coherent, is_volatile, kVisibility, kMemory); break; - case spv::Op::OpStore: + } + case spv::Op::OpStore: { + Instruction* src_pointer = context()->get_def_use_mgr()->GetDef( + inst->GetSingleWordInOperand(0u)); + analysis::Type* src_type = + context()->get_type_mgr()->GetType(src_pointer->type_id()); + auto storage_class = src_type->AsPointer()->storage_class(); + if (storage_class == spv::StorageClass::Function || + storage_class == spv::StorageClass::Private) { + // If the buffer from function variable or private variable, flag + // NonPrivatePointer is unnecessary. + is_coherent = false; + } UpgradeFlags(inst, 2u, is_coherent, is_volatile, kAvailability, kMemory); break; + } case spv::Op::OpCopyMemory: case spv::Op::OpCopyMemorySized: start_operand = inst->opcode() == spv::Op::OpCopyMemory ? 2u : 3u; @@ -366,6 +390,21 @@ std::pair UpgradeMemoryModel::TraceInstruction( indices.push_back(inst->GetSingleWordInOperand(i)); } break; + case spv::Op::OpLoad: + if (context()->get_type_mgr()->GetType(inst->type_id())->AsPointer()) { + analysis::Integer int_ty(32, false); + uint32_t int_id = + context()->get_type_mgr()->GetTypeInstruction(&int_ty); + const analysis::Constant* constant = + context()->get_constant_mgr()->GetConstant( + context()->get_type_mgr()->GetType(int_id), {0u}); + uint32_t constant_id = context() + ->get_constant_mgr() + ->GetDefiningInstruction(constant) + ->result_id(); + + indices.push_back(constant_id); + } default: break; } @@ -661,22 +700,29 @@ void UpgradeMemoryModel::UpgradeBarriers() { roots.push(e.GetSingleWordInOperand(1u)); if (context()->ProcessCallTreeFromRoots(CollectBarriers, &roots)) { for (auto barrier : barriers) { - // Add OutputMemoryKHR to the semantics of the barriers. + // Add OutputMemoryKHR to the semantics of the non-relaxed barriers. uint32_t semantics_id = barrier->GetSingleWordInOperand(2u); Instruction* semantics_inst = context()->get_def_use_mgr()->GetDef(semantics_id); analysis::Type* semantics_type = context()->get_type_mgr()->GetType(semantics_inst->type_id()); uint64_t semantics_value = GetIndexValue(semantics_inst); - const analysis::Constant* constant = - context()->get_constant_mgr()->GetConstant( - semantics_type, - {static_cast(semantics_value) | - uint32_t(spv::MemorySemanticsMask::OutputMemoryKHR)}); - barrier->SetInOperand(2u, {context() - ->get_constant_mgr() - ->GetDefiningInstruction(constant) - ->result_id()}); + const uint64_t memory_order_mask = + uint64_t(spv::MemorySemanticsMask::Acquire | + spv::MemorySemanticsMask::Release | + spv::MemorySemanticsMask::AcquireRelease | + spv::MemorySemanticsMask::SequentiallyConsistent); + if (semantics_value & memory_order_mask) { + const analysis::Constant* constant = + context()->get_constant_mgr()->GetConstant( + semantics_type, + {static_cast(semantics_value) | + uint32_t(spv::MemorySemanticsMask::OutputMemoryKHR)}); + barrier->SetInOperand(2u, {context() + ->get_constant_mgr() + ->GetDefiningInstruction(constant) + ->result_id()}); + } } } barriers.clear(); diff --git a/3rdparty/spirv-tools/source/parsed_operand.cpp b/3rdparty/spirv-tools/source/parsed_operand.cpp index 649b9d62e..5b4c68c58 100644 --- a/3rdparty/spirv-tools/source/parsed_operand.cpp +++ b/3rdparty/spirv-tools/source/parsed_operand.cpp @@ -59,7 +59,10 @@ void EmitNumericLiteral(std::ostream* out, const spv_parsed_instruction_t& inst, *out << spvtools::utils::FloatProxy( uint8_t(word & 0xFF)); break; - // TODO Bfloat16 + case SPV_FP_ENCODING_BFLOAT16: + *out << spvtools::utils::FloatProxy( + uint16_t(word & 0xFFFF)); + break; case SPV_FP_ENCODING_UNKNOWN: switch (operand.number_bit_width) { case 16: diff --git a/3rdparty/spirv-tools/source/text_handler.cpp b/3rdparty/spirv-tools/source/text_handler.cpp index 1f1f1e8c2..df0cc39d5 100644 --- a/3rdparty/spirv-tools/source/text_handler.cpp +++ b/3rdparty/spirv-tools/source/text_handler.cpp @@ -336,7 +336,7 @@ spv_result_t AssemblyContext::recordTypeDefinition( return diagnostic() << "Invalid OpTypeFloat instruction"; spv_fp_encoding_t enc = SPV_FP_ENCODING_UNKNOWN; if (pInst->words.size() >= 4) { - const spvtools::OperandDesc* desc; + const spvtools::OperandDesc* desc = nullptr; spv_result_t status = spvtools::LookupOperand(SPV_OPERAND_TYPE_FPENCODING, pInst->words[3], &desc); if (status == SPV_SUCCESS) { diff --git a/3rdparty/spirv-tools/source/util/hex_float.h b/3rdparty/spirv-tools/source/util/hex_float.h index 83b1c09c2..9bb3203d9 100644 --- a/3rdparty/spirv-tools/source/util/hex_float.h +++ b/3rdparty/spirv-tools/source/util/hex_float.h @@ -103,6 +103,34 @@ class Float16 { uint16_t val; }; +class BFloat16 { + public: + BFloat16(uint16_t v) : val(v) {} + BFloat16() = default; + BFloat16(const BFloat16& other) { val = other.val; } + + // Exponent mask: 0x7F80, Mantissa mask: 0x007F + static bool isNan(const BFloat16& val) { + return ((val.val & 0x7F80) == 0x7F80) && ((val.val & 0x007F) != 0); + } + static bool isInfinity(const BFloat16& val) { + return ((val.val & 0x7F80) == 0x7F80) && ((val.val & 0x007F) == 0); + } + + uint16_t get_value() const { return val; } + + // a sign bit of 0, and an all 1 mantissa. + static BFloat16 max() { return BFloat16(0x7F7F); } + // a sign bit of 1, and an all 1 mantissa. + static BFloat16 lowest() { return BFloat16(0xFF7F); } + + private: + // 15: Sign + // 14-7: Exponent + // 6-0: Mantissa + uint16_t val; +}; + // To specialize this type, you must override uint_type to define // an unsigned integer that can fit your floating point type. // You must also add a isNan function that returns true if @@ -212,6 +240,24 @@ struct FloatProxyTraits { static uint32_t width() { return 16u; } }; +template <> +struct FloatProxyTraits { + using uint_type = uint16_t; + static bool isNan(BFloat16 f) { return BFloat16::isNan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(BFloat16 f) { return BFloat16::isInfinity(f); } + // Returns the maximum normal value. + static BFloat16 max() { return BFloat16::max(); } + // Returns the lowest normal value. + static BFloat16 lowest() { return BFloat16::lowest(); } + // Returns the value as the native floating point format. + static BFloat16 getAsFloat(const uint_type& t) { return BFloat16(t); } + // Returns the bits from the given floating pointer number. + static uint_type getBitsFromFloat(const BFloat16& t) { return t.get_value(); } + // Returns the bitwidth. + static uint32_t width() { return 16u; } +}; + // Since copying a floating point number (especially if it is NaN) // does not guarantee that bits are preserved, this class lets us // store the type and use it as a float when necessary. @@ -403,6 +449,23 @@ struct HexFloatTraits> { static const uint_type NaN_pattern = 0x7c00; }; +// Traits for BFloat16. +// 1 sign bit, 7 exponent bits, 8 fractional bits. +template <> +struct HexFloatTraits> { + using uint_type = uint16_t; + using int_type = int16_t; + using underlying_type = FloatProxy; + using underlying_typetraits = FloatProxyTraits; + using native_type = uint16_t; + static const uint_type num_used_bits = 16; + static const uint_type num_exponent_bits = 8; + static const uint_type num_fraction_bits = 7; + static const uint_type exponent_bias = 127; + static const bool has_infinity = true; + static const uint_type NaN_pattern = 0x7F80; +}; + enum class round_direction { kToZero, kToNearestEven, @@ -1038,6 +1101,26 @@ ParseNormalFloat, HexFloatTraits>>( } return is; } + +// Same flow as Float16 +template <> +inline std::istream& +ParseNormalFloat, HexFloatTraits>>( + std::istream& is, bool negate_value, + HexFloat, HexFloatTraits>>& + value) { + HexFloat> float_val(0.0f); + ParseNormalFloat(is, negate_value, float_val); + + float_val.castTo(value, round_direction::kToZero); + + if (BFloat16::isInfinity(value.value().getAsFloat())) { + value.set_value(value.isNegative() ? BFloat16::lowest() : BFloat16::max()); + is.setstate(std::ios_base::failbit); + } + return is; +} + // Specialization of ParseNormalFloat for FloatProxy values. // This will parse the float as it were a 32-bit floating point number, // and then round it down to fit into a Float8_E4M3 value. @@ -1468,6 +1551,13 @@ inline std::ostream& operator<<(std::ostream& os, return os; } +template <> +inline std::ostream& operator<< (std::ostream& os, + const FloatProxy& value) { + os << HexFloat>(value); + return os; +} + template <> inline std::ostream& operator<< ( std::ostream& os, const FloatProxy& value) { diff --git a/3rdparty/spirv-tools/source/util/parse_number.cpp b/3rdparty/spirv-tools/source/util/parse_number.cpp index 3aa075278..117e6f293 100644 --- a/3rdparty/spirv-tools/source/util/parse_number.cpp +++ b/3rdparty/spirv-tools/source/util/parse_number.cpp @@ -185,7 +185,15 @@ EncodeNumberStatus ParseAndEncodeFloatingPointNumber( emit(static_cast(hVal.value().getAsFloat().get_value())); return EncodeNumberStatus::kSuccess; } break; - case SPV_FP_ENCODING_BFLOAT16: // FIXME this likely needs separate handling + case SPV_FP_ENCODING_BFLOAT16: { + HexFloat> hVal(0); + if (!ParseNumber(text, &hVal)) { + ErrorMsgStream(error_msg) << "Invalid bfloat16 literal: " << text; + return EncodeNumberStatus::kInvalidText; + } + emit(static_cast(hVal.value().getAsFloat().get_value())); + return EncodeNumberStatus::kSuccess; + } break; case SPV_FP_ENCODING_IEEE754_BINARY16: { HexFloat> hVal(0); if (!ParseNumber(text, &hVal)) { diff --git a/3rdparty/spirv-tools/source/val/validate.cpp b/3rdparty/spirv-tools/source/val/validate.cpp index f553a26d9..90bb480bd 100644 --- a/3rdparty/spirv-tools/source/val/validate.cpp +++ b/3rdparty/spirv-tools/source/val/validate.cpp @@ -64,9 +64,12 @@ void RegisterExtension(ValidationState_t& _, spv_result_t ProcessExtensions(void* user_data, const spv_parsed_instruction_t* inst) { const spv::Op opcode = static_cast(inst->opcode); - if (opcode == spv::Op::OpCapability) return SPV_SUCCESS; + if (opcode == spv::Op::OpCapability || + opcode == spv::Op::OpConditionalCapabilityINTEL) + return SPV_SUCCESS; - if (opcode == spv::Op::OpExtension) { + if (opcode == spv::Op::OpExtension || + opcode == spv::Op::OpConditionalExtensionINTEL) { ValidationState_t& _ = *(reinterpret_cast(user_data)); RegisterExtension(_, inst); return SPV_SUCCESS; @@ -115,10 +118,11 @@ spv_result_t ValidateEntryPoints(ValidationState_t& _) { _.ComputeFunctionToEntryPointMapping(); _.ComputeRecursiveEntryPoints(); - if (_.entry_points().empty() && !_.HasCapability(spv::Capability::Linkage)) { + if (_.entry_points().empty() && !_.HasCapability(spv::Capability::Linkage) && + !_.HasCapability(spv::Capability::GraphARM)) { return _.diag(SPV_ERROR_INVALID_BINARY, nullptr) << "No OpEntryPoint instruction was found. This is only allowed if " - "the Linkage capability is being used."; + "the Linkage or GraphARM capability is being used."; } for (const auto& entry_point : _.entry_points()) { @@ -151,6 +155,16 @@ spv_result_t ValidateEntryPoints(ValidationState_t& _) { return SPV_SUCCESS; } +spv_result_t ValidateGraphEntryPoints(ValidationState_t& _) { + if (_.graph_entry_points().empty() && + _.HasCapability(spv::Capability::GraphARM)) { + return _.diag(SPV_ERROR_INVALID_BINARY, nullptr) + << "No OpGraphEntryPointARM instruction was found but the GraphARM " + "capability is declared."; + } + return SPV_SUCCESS; +} + spv_result_t ValidateBinaryUsingContextAndValidationState( const spv_context_t& context, const uint32_t* words, const size_t num_words, spv_diagnostic* pDiagnostic, ValidationState_t* vstate) { @@ -217,43 +231,59 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( // able to, briefly, de-const the instruction. Instruction* inst = const_cast(&instruction); - if (inst->opcode() == spv::Op::OpEntryPoint) { - const auto entry_point = inst->GetOperandAs(1); - const auto execution_model = inst->GetOperandAs(0); - const std::string desc_name = inst->GetOperandAs(2); + if ((inst->opcode() == spv::Op::OpEntryPoint) || + (inst->opcode() == spv::Op::OpConditionalEntryPointINTEL)) { + const int i_model = inst->opcode() == spv::Op::OpEntryPoint ? 0 : 1; + const int i_point = inst->opcode() == spv::Op::OpEntryPoint ? 1 : 2; + const int i_name = inst->opcode() == spv::Op::OpEntryPoint ? 2 : 3; + const int min_num_operands = + inst->opcode() == spv::Op::OpEntryPoint ? 3 : 4; + + const auto entry_point = inst->GetOperandAs(i_point); + const auto execution_model = + inst->GetOperandAs(i_model); + const std::string desc_name = inst->GetOperandAs(i_name); ValidationState_t::EntryPointDescription desc; desc.name = desc_name; std::vector interfaces; - for (size_t j = 3; j < inst->operands().size(); ++j) + for (size_t j = min_num_operands; j < inst->operands().size(); ++j) desc.interfaces.push_back(inst->word(inst->operand(j).offset)); vstate->RegisterEntryPoint(entry_point, execution_model, std::move(desc)); - if (visited_entry_points.size() > 0) { - for (const Instruction* check_inst : visited_entry_points) { - const auto check_execution_model = - check_inst->GetOperandAs(0); - const std::string check_name = - check_inst->GetOperandAs(2); + if (inst->opcode() == spv::Op::OpEntryPoint) { + // conditional entry points are allowed to share the same name and + // exec mode + if (visited_entry_points.size() > 0) { + for (const Instruction* check_inst : visited_entry_points) { + const auto check_execution_model = + check_inst->GetOperandAs(i_model); + const std::string check_name = + check_inst->GetOperandAs(i_name); - if (desc_name == check_name && - execution_model == check_execution_model) { - return vstate->diag(SPV_ERROR_INVALID_DATA, inst) - << "2 Entry points cannot share the same name and " - "ExecutionMode."; + if (desc_name == check_name && + execution_model == check_execution_model) { + return vstate->diag(SPV_ERROR_INVALID_DATA, inst) + << "2 Entry points cannot share the same name and " + "ExecutionMode."; + } } } + visited_entry_points.push_back(inst); } - visited_entry_points.push_back(inst); has_mask_task_nv |= (execution_model == spv::ExecutionModel::TaskNV || execution_model == spv::ExecutionModel::MeshNV); has_mask_task_ext |= (execution_model == spv::ExecutionModel::TaskEXT || execution_model == spv::ExecutionModel::MeshEXT); } + if (inst->opcode() == spv::Op::OpGraphEntryPointARM) { + const auto graph = inst->GetOperandAs(1); + vstate->RegisterGraphEntryPoint(graph); + } if (inst->opcode() == spv::Op::OpFunctionCall) { if (!vstate->in_function_body()) { return vstate->diag(SPV_ERROR_INVALID_LAYOUT, &instruction) @@ -299,6 +329,10 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( return vstate->diag(SPV_ERROR_INVALID_LAYOUT, nullptr) << "Missing OpFunctionEnd at end of module."; + if (vstate->graph_definition_region() != kGraphDefinitionOutside) + return vstate->diag(SPV_ERROR_INVALID_LAYOUT, nullptr) + << "Missing OpGraphEndARM at end of module."; + if (vstate->HasCapability(spv::Capability::BindlessTextureNV) && !vstate->has_samplerimage_variable_address_mode_specified()) return vstate->diag(SPV_ERROR_INVALID_LAYOUT, nullptr) @@ -314,7 +348,7 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( if (auto error = ValidateForwardDecls(*vstate)) return error; // Calculate reachability after all the blocks are parsed, but early that it - // can be relied on in subsequent pases. + // can be relied on in subsequent passes. ReachabilityPass(*vstate); // ID usage needs be handled in its own iteration of the instructions, @@ -368,6 +402,7 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( if (auto error = MeshShadingPass(*vstate, &instruction)) return error; if (auto error = TensorLayoutPass(*vstate, &instruction)) return error; if (auto error = TensorPass(*vstate, &instruction)) return error; + if (auto error = GraphPass(*vstate, &instruction)) return error; if (auto error = InvalidTypePass(*vstate, &instruction)) return error; } @@ -377,6 +412,7 @@ spv_result_t ValidateBinaryUsingContextAndValidationState( if (auto error = ValidateAdjacency(*vstate)) return error; if (auto error = ValidateEntryPoints(*vstate)) return error; + if (auto error = ValidateGraphEntryPoints(*vstate)) return error; // CFG checks are performed after the binary has been parsed // and the CFGPass has collected information about the control flow if (auto error = PerformCfgChecks(*vstate)) return error; diff --git a/3rdparty/spirv-tools/source/val/validate.h b/3rdparty/spirv-tools/source/val/validate.h index 2b4dee2c0..7c6faa1d6 100644 --- a/3rdparty/spirv-tools/source/val/validate.h +++ b/3rdparty/spirv-tools/source/val/validate.h @@ -195,8 +195,8 @@ spv_result_t NonUniformPass(ValidationState_t& _, const Instruction* inst); /// Validates correctness of debug instructions. spv_result_t DebugPass(ValidationState_t& _, const Instruction* inst); -// Validates that capability declarations use operands allowed in the current -// context. +/// Validates that capability declarations use operands allowed in the current +/// context. spv_result_t CapabilityPass(ValidationState_t& _, const Instruction* inst); /// Validates correctness of primitive instructions. @@ -226,6 +226,9 @@ spv_result_t MeshShadingPass(ValidationState_t& _, const Instruction* inst); /// Validates correctness of tensor instructions. spv_result_t TensorPass(ValidationState_t& _, const Instruction* inst); +/// Validates correctness of graph instructions. +spv_result_t GraphPass(ValidationState_t& _, const Instruction* inst); + /// Validates correctness of certain special type instructions. spv_result_t InvalidTypePass(ValidationState_t& _, const Instruction* inst); diff --git a/3rdparty/spirv-tools/source/val/validate_annotation.cpp b/3rdparty/spirv-tools/source/val/validate_annotation.cpp index eaca8f0f7..2545f2fa5 100644 --- a/3rdparty/spirv-tools/source/val/validate_annotation.cpp +++ b/3rdparty/spirv-tools/source/val/validate_annotation.cpp @@ -333,6 +333,14 @@ spv_result_t ValidateDecorate(ValidationState_t& _, const Instruction* inst) { } spv_result_t ValidateDecorateId(ValidationState_t& _, const Instruction* inst) { + const auto target_id = inst->GetOperandAs(0); + const auto target = _.FindDef(target_id); + if (target && spv::Op::OpDecorationGroup == target->opcode()) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "OpMemberDecorate Target " << _.getIdName(target_id) + << " must not be an OpDecorationGroup instruction."; + } + const auto decoration = inst->GetOperandAs(1); if (!DecorationTakesIdParameters(decoration)) { return _.diag(SPV_ERROR_INVALID_ID, inst) @@ -340,6 +348,20 @@ spv_result_t ValidateDecorateId(ValidationState_t& _, const Instruction* inst) { "OpDecorateId"; } + for (uint32_t i = 2; i < inst->operands().size(); ++i) { + const auto param_id = inst->GetOperandAs(i); + const auto param = _.FindDef(param_id); + + // Both target and param are elements of ordered_instructions we can + // determine their relative positions in the SPIR-V module by comparing + // pointers. + if (target <= param) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "Parameter " << _.getIdName(param_id) + << " must appear earlier in the binary than the target"; + } + } + // No member decorations take id parameters, so we don't bother checking if // we are using a member only decoration here. @@ -388,8 +410,7 @@ spv_result_t ValidateDecorationGroup(ValidationState_t& _, if (use->opcode() != spv::Op::OpDecorate && use->opcode() != spv::Op::OpGroupDecorate && use->opcode() != spv::Op::OpGroupMemberDecorate && - use->opcode() != spv::Op::OpName && - use->opcode() != spv::Op::OpDecorateId && !use->IsNonSemantic()) { + use->opcode() != spv::Op::OpName && !use->IsNonSemantic()) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "Result id of OpDecorationGroup can only " << "be targeted by OpName, OpGroupDecorate, " diff --git a/3rdparty/spirv-tools/source/val/validate_atomics.cpp b/3rdparty/spirv-tools/source/val/validate_atomics.cpp index 990ed3151..510960ba1 100644 --- a/3rdparty/spirv-tools/source/val/validate_atomics.cpp +++ b/3rdparty/spirv-tools/source/val/validate_atomics.cpp @@ -388,27 +388,6 @@ spv_result_t AtomicsPass(ValidationState_t& _, const Instruction* inst) { if (auto error = ValidateMemorySemantics( _, inst, unequal_semantics_index, memory_scope)) return error; - - // Volatile bits must match for equal and unequal semantics. Previous - // checks guarantee they are 32-bit constants, but we need to recheck - // whether they are evaluatable constants. - bool is_int32 = false; - bool is_equal_const = false; - bool is_unequal_const = false; - uint32_t equal_value = 0; - uint32_t unequal_value = 0; - std::tie(is_int32, is_equal_const, equal_value) = _.EvalInt32IfConst( - inst->GetOperandAs(equal_semantics_index)); - std::tie(is_int32, is_unequal_const, unequal_value) = - _.EvalInt32IfConst( - inst->GetOperandAs(unequal_semantics_index)); - if (is_equal_const && is_unequal_const && - ((equal_value & uint32_t(spv::MemorySemanticsMask::Volatile)) ^ - (unequal_value & uint32_t(spv::MemorySemanticsMask::Volatile)))) { - return _.diag(SPV_ERROR_INVALID_ID, inst) - << "Volatile mask setting must match for Equal and Unequal " - "memory semantics"; - } } if (opcode == spv::Op::OpAtomicStore) { diff --git a/3rdparty/spirv-tools/source/val/validate_barriers.cpp b/3rdparty/spirv-tools/source/val/validate_barriers.cpp index 0abd5c859..b7d2ea090 100644 --- a/3rdparty/spirv-tools/source/val/validate_barriers.cpp +++ b/3rdparty/spirv-tools/source/val/validate_barriers.cpp @@ -45,10 +45,10 @@ spv_result_t BarriersPass(ValidationState_t& _, const Instruction* inst) { model != spv::ExecutionModel::MeshNV) { if (message) { *message = - "OpControlBarrier requires one of the following " - "Execution " - "Models: TessellationControl, GLCompute, Kernel, " - "MeshNV or TaskNV"; + "In SPIR-V 1.2 or earlier, OpControlBarrier requires " + "one of the following " + "Execution Models: TessellationControl, GLCompute, " + "Kernel, MeshNV or TaskNV"; } return false; } diff --git a/3rdparty/spirv-tools/source/val/validate_bitwise.cpp b/3rdparty/spirv-tools/source/val/validate_bitwise.cpp index 4acc99822..3f739b4cc 100644 --- a/3rdparty/spirv-tools/source/val/validate_bitwise.cpp +++ b/3rdparty/spirv-tools/source/val/validate_bitwise.cpp @@ -39,9 +39,11 @@ spv_result_t ValidateBaseType(ValidationState_t& _, const Instruction* inst, if (_.GetBitWidth(base_type) != 32 && !_.options()->allow_vulkan_32_bit_bitwise) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4781) + << _.VkErrorID(10824) << "Expected 32-bit int type for Base operand: " - << spvOpcodeString(opcode); + << spvOpcodeString(opcode) + << _.MissingFeature("maintenance9 feature", + "--allow-vulkan-32-bit-bitwise", false); } } diff --git a/3rdparty/spirv-tools/source/val/validate_builtins.cpp b/3rdparty/spirv-tools/source/val/validate_builtins.cpp index d25ebaf50..ba0204739 100644 --- a/3rdparty/spirv-tools/source/val/validate_builtins.cpp +++ b/3rdparty/spirv-tools/source/val/validate_builtins.cpp @@ -17,21 +17,22 @@ // Validates correctness of built-in variables. #include +#include #include #include #include #include #include -#include #include +#include #include #include "source/opcode.h" #include "source/spirv_target_env.h" -#include "source/util/bitutils.h" #include "source/val/instruction.h" #include "source/val/validate.h" #include "source/val/validation_state.h" +#include "spirv/unified1/spirv.hpp11" namespace spvtools { namespace val { @@ -373,6 +374,18 @@ class BuiltInsValidator { spv_result_t ValidateMeshShadingEXTBuiltinsAtDefinition( const Decoration& decoration, const Instruction& inst); + // Used as a common method for validating MeshEXT builtins + spv_result_t ValidateMeshBuiltinInterfaceRules( + const Decoration& decoration, const Instruction& inst, + spv::Op scalar_type, const Instruction& referenced_from_inst); + spv_result_t ValidatePrimitiveShadingRateInterfaceRules( + const Decoration& decoration, const Instruction& inst, + const Instruction& referenced_from_inst); + // Builtin that needs check incase **not** used with MeshEXT + spv_result_t ValidateNonMeshInterfaceRules( + const Decoration& decoration, const Instruction& inst, + const Instruction& referenced_from_inst); + // The following section contains functions which are called when id defined // by |referenced_inst| is // 1. referenced by |referenced_from_inst| @@ -590,8 +603,9 @@ class BuiltInsValidator { spv_result_t ValidateBool( const Decoration& decoration, const Instruction& inst, const std::function& diag); - spv_result_t ValidateBlockBoolOrArrayedBool( + spv_result_t ValidateBlockTypeOrArrayedType( const Decoration& decoration, const Instruction& inst, + bool& present_in_block, spv::Op expected_scalar_type, const std::function& diag); spv_result_t ValidateI( const Decoration& decoration, const Instruction& inst, @@ -675,20 +689,50 @@ class BuiltInsValidator { // UniformConstant". std::string GetStorageClassDesc(const Instruction& inst) const; + uint64_t GetArrayLength(uint32_t interface_var_id); + // Updates inner working of the class. Is called sequentially for every // instruction. void Update(const Instruction& inst); - // Check if "inst" is an interface variable - // or type of a interface varibale of any mesh entry point - bool isMeshInterfaceVar(const Instruction& inst) { - auto getUnderlyingTypeId = [&](const Instruction* ifxVar) { - auto pointerTypeInst = _.FindDef(ifxVar->type_id()); - auto typeInst = _.FindDef(pointerTypeInst->GetOperandAs(2)); - while (typeInst->opcode() == spv::Op::OpTypeArray) { - typeInst = _.FindDef(typeInst->GetOperandAs(1)); + bool IsBulitinInEntryPoint(const Instruction& inst, uint32_t entry_point) { + auto get_underlying_type_id = [&](const Instruction* ifx_var) { + auto pointer_type_inst = _.FindDef(ifx_var->type_id()); + auto type_inst = _.FindDef(pointer_type_inst->GetOperandAs(2)); + while (type_inst->opcode() == spv::Op::OpTypeArray) { + type_inst = _.FindDef(type_inst->GetOperandAs(1)); }; - return typeInst->id(); + return type_inst->id(); + }; + + for (const auto& desc : _.entry_point_descriptions(entry_point)) { + for (auto interface : desc.interfaces) { + if (inst.opcode() == spv::Op::OpTypeStruct) { + auto varInst = _.FindDef(interface); + if (inst.id() == get_underlying_type_id(varInst)) { + return true; + } + } else if (inst.id() == interface) { + return true; + } + } + } + return false; + } + + // Check if "inst" is an interface variable or type of a interface varibale + // of any mesh entry point. Populate entry_point_interface_id with all + // entry points and interface variables that refer to the "inst" + bool IsMeshInterfaceVar( + const Instruction& inst, + std::map& entry_point_interface_id) { + auto get_underlying_type_id = [&](const Instruction* ifx_var) { + auto pointer_type_inst = _.FindDef(ifx_var->type_id()); + auto type_inst = _.FindDef(pointer_type_inst->GetOperandAs(2)); + while (type_inst->opcode() == spv::Op::OpTypeArray) { + type_inst = _.FindDef(type_inst->GetOperandAs(1)); + }; + return type_inst->id(); }; for (const uint32_t entry_point : _.entry_points()) { @@ -699,15 +743,19 @@ class BuiltInsValidator { for (auto interface : desc.interfaces) { if (inst.opcode() == spv::Op::OpTypeStruct) { auto varInst = _.FindDef(interface); - if (inst.id() == getUnderlyingTypeId(varInst)) return true; + if (inst.id() == get_underlying_type_id(varInst)) { + entry_point_interface_id[entry_point] = interface; + break; + } } else if (inst.id() == interface) { - return true; + entry_point_interface_id[entry_point] = interface; + break; } } } } } - return false; + return !entry_point_interface_id.empty(); } ValidationState_t& _; @@ -730,6 +778,10 @@ class BuiltInsValidator { // Execution models with which the current function can be called. std::set execution_models_; + + // For Builtin that can only be declared once in an entry point, keep track if + // the entry point has it already + std::set cull_primitive_entry_points_; }; void BuiltInsValidator::Update(const Instruction& inst) { @@ -807,6 +859,29 @@ std::string BuiltInsValidator::GetStorageClassDesc( return ss.str(); } +uint64_t BuiltInsValidator::GetArrayLength(uint32_t interface_var_id) { + uint32_t underlying_type; + spv::StorageClass storage_class; + uint64_t array_len = -1; + const Instruction* inst = _.FindDef(interface_var_id); + if (inst->opcode() != spv::Op::OpVariable) { + return -1; + } + + if (!_.GetPointerTypeInfo(inst->type_id(), &underlying_type, + &storage_class)) { + return 0; + } + if (_.GetIdOpcode(underlying_type) == spv::Op::OpTypeArray) { + // Get the array length + const auto length_id = _.FindDef(underlying_type)->word(3u); + if (!_.EvalConstantValUint64(length_id, &array_len)) { + return 0; + } + } + return array_len; +} + spv_result_t BuiltInsValidator::ValidateBool( const Decoration& decoration, const Instruction& inst, const std::function& diag) { @@ -823,25 +898,50 @@ spv_result_t BuiltInsValidator::ValidateBool( return SPV_SUCCESS; } -spv_result_t BuiltInsValidator::ValidateBlockBoolOrArrayedBool( - const Decoration& decoration, const Instruction& inst, +spv_result_t BuiltInsValidator::ValidateBlockTypeOrArrayedType( + const Decoration& decoration, const Instruction& inst, bool& isBlock, + spv::Op expected_scalar_type, const std::function& diag) { uint32_t underlying_type = 0; + int64_t array_len = -1; + isBlock = true; if (spv_result_t error = GetUnderlyingType(_, decoration, inst, &underlying_type)) { return error; } // Strip the array, if present. if (_.GetIdOpcode(underlying_type) == spv::Op::OpTypeArray) { + // Get the array length + const auto length_id = _.FindDef(underlying_type)->word(3u); + if (!_.EvalConstantValInt64(length_id, &array_len)) { + return diag(GetDefinitionDesc(decoration, inst) + + " Failed to find the array length."); + } underlying_type = _.FindDef(underlying_type)->word(2u); + isBlock = false; } else if (!_.HasDecoration(inst.id(), spv::Decoration::Block)) { // If not in array, and bool is in a struct, must be in a Block struct return diag(GetDefinitionDesc(decoration, inst) + " Scalar boolean must be in a Block."); } - if (!_.IsBoolScalarType(underlying_type)) { - return diag(GetDefinitionDesc(decoration, inst) + " is not a bool scalar."); + switch (expected_scalar_type) { + case spv::Op::OpTypeBool: + if (!_.IsBoolScalarType(underlying_type)) { + return diag(GetDefinitionDesc(decoration, inst) + + " is not a bool scalar."); + } + break; + case spv::Op::OpTypeInt: + if (!_.IsIntScalarType(underlying_type)) { + return diag(GetDefinitionDesc(decoration, inst) + + " is not an integer scalar."); + } + break; + default: + assert(0 && "Unhandled scalar type"); + return diag(GetDefinitionDesc(decoration, inst) + + " is not a recognized scalar type."); } return SPV_SUCCESS; @@ -2188,49 +2288,6 @@ spv_result_t BuiltInsValidator::ValidatePositionAtReference( spv_result_t BuiltInsValidator::ValidatePrimitiveIdAtDefinition( const Decoration& decoration, const Instruction& inst) { - if (spvIsVulkanEnv(_.context()->target_env)) { - // PrimitiveId can be a per-primitive variable for mesh shader stage. - // In such cases variable will have an array of 32-bit integers. - if (decoration.struct_member_index() != Decoration::kInvalidMember) { - // This must be a 32-bit int scalar. - if (spv_result_t error = ValidateI32( - decoration, inst, - [this, &inst](const std::string& message) -> spv_result_t { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(4337) - << "According to the Vulkan spec BuiltIn PrimitiveId " - "variable needs to be a 32-bit int scalar. " - << message; - })) { - return error; - } - } else { - if (spv_result_t error = ValidateOptionalArrayedI32( - decoration, inst, - [this, &inst](const std::string& message) -> spv_result_t { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(4337) - << "According to the Vulkan spec BuiltIn PrimitiveId " - "variable needs to be a 32-bit int scalar. " - << message; - })) { - return error; - } - } - - if (_.HasCapability(spv::Capability::MeshShadingEXT)) { - if (isMeshInterfaceVar(inst) && - !_.HasDecoration(inst.id(), spv::Decoration::PerPrimitiveEXT)) { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(7040) - << "According to the Vulkan spec the variable decorated with " - "Builtin PrimitiveId within the MeshEXT Execution Model must " - "also be decorated with the PerPrimitiveEXT decoration. "; - } - } - } - - // Seed at reference checks with this built-in. return ValidatePrimitiveIdAtReference(decoration, inst, inst, inst); } @@ -2297,6 +2354,27 @@ spv_result_t BuiltInsValidator::ValidatePrimitiveIdAtReference( referenced_from_inst, std::placeholders::_1)); } + if (!_.HasCapability(spv::Capability::MeshShadingEXT) && + !_.HasCapability(spv::Capability::MeshShadingNV) && + !_.HasCapability(spv::Capability::Geometry) && + !_.HasCapability(spv::Capability::Tessellation)) { + id_to_at_reference_checks_[referenced_from_inst.id()].push_back(std::bind( + &BuiltInsValidator::ValidateNotCalledWithExecutionModel, this, 4333, + "Vulkan spec doesn't allow BuiltIn PrimitiveId to be used for " + "variables in the Fragment execution model unless it declares " + "Geometry, Tessellation, or MeshShader capabilities.", + spv::ExecutionModel::Fragment, decoration, built_in_inst, + referenced_from_inst, std::placeholders::_1)); + } + + id_to_at_reference_checks_[referenced_from_inst.id()].push_back(std::bind( + &BuiltInsValidator::ValidateMeshBuiltinInterfaceRules, this, decoration, + built_in_inst, spv::Op::OpTypeInt, std::placeholders::_1)); + + id_to_at_reference_checks_[referenced_from_inst.id()].push_back( + std::bind(&BuiltInsValidator::ValidateNonMeshInterfaceRules, this, + decoration, built_in_inst, std::placeholders::_1)); + for (const spv::ExecutionModel execution_model : execution_models_) { switch (execution_model) { case spv::ExecutionModel::Fragment: @@ -2593,6 +2671,13 @@ spv_result_t BuiltInsValidator::ValidateTessLevelOuterAtDefinition( })) { return error; } + + if (!_.HasDecoration(inst.id(), spv::Decoration::Patch)) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(10880) + << "BuiltIn TessLevelOuter variable needs to also have a Patch " + "decoration."; + } } // Seed at reference checks with this built-in. @@ -2607,13 +2692,20 @@ spv_result_t BuiltInsValidator::ValidateTessLevelInnerAtDefinition( [this, &inst](const std::string& message) -> spv_result_t { return _.diag(SPV_ERROR_INVALID_DATA, &inst) << _.VkErrorID(4397) - << "According to the Vulkan spec BuiltIn TessLevelOuter " + << "According to the Vulkan spec BuiltIn TessLevelInner " "variable needs to be a 2-component 32-bit float " "array. " << message; })) { return error; } + + if (!_.HasDecoration(inst.id(), spv::Decoration::Patch)) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(10880) + << "BuiltIn TessLevelInner variable needs to also have a Patch " + "decoration."; + } } // Seed at reference checks with this built-in. @@ -2796,67 +2888,180 @@ spv_result_t BuiltInsValidator::ValidateVertexIndexAtReference( return SPV_SUCCESS; } -spv_result_t BuiltInsValidator::ValidateLayerOrViewportIndexAtDefinition( - const Decoration& decoration, const Instruction& inst) { - if (spvIsVulkanEnv(_.context()->target_env)) { - // This can be a per-primitive variable for mesh shader stage. - // In such cases variable will have an array of 32-bit integers. - if (decoration.struct_member_index() != Decoration::kInvalidMember) { - // This must be a 32-bit int scalar. +typedef struct { + uint32_t array_type; + uint32_t array_size; + uint32_t block_array_size; + uint32_t perprim_deco; +} MeshBuiltinVUIDs; + +spv_result_t BuiltInsValidator::ValidateMeshBuiltinInterfaceRules( + const Decoration& decoration, const Instruction& inst, spv::Op scalar_type, + const Instruction& referenced_from_inst) { + if (function_id_) { + if (execution_models_.count(spv::ExecutionModel::MeshEXT)) { + bool is_block = false; + const spv::BuiltIn builtin = decoration.builtin(); + + static const std::unordered_map + mesh_vuid_map = {{ + {spv::BuiltIn::CullPrimitiveEXT, {7036, 10589, 10590, 7038}}, + {spv::BuiltIn::PrimitiveId, {10595, 10596, 10597, 7040}}, + {spv::BuiltIn::Layer, {10592, 10593, 10594, 7039}}, + {spv::BuiltIn::ViewportIndex, {10601, 10602, 10603, 7060}}, + {spv::BuiltIn::PrimitiveShadingRateKHR, + {10598, 10599, 10600, 7059}}, + }}; + const MeshBuiltinVUIDs& vuids = mesh_vuid_map.at(builtin); + if (spv_result_t error = ValidateBlockTypeOrArrayedType( + decoration, inst, is_block, scalar_type, + [this, &inst, &builtin, &scalar_type, + &vuids](const std::string& message) -> spv_result_t { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(vuids.array_type) + << "According to the Vulkan specspec BuiltIn " + << _.grammar().lookupOperandName( + SPV_OPERAND_TYPE_BUILT_IN, (uint32_t)builtin) + << " variable needs to be a either a " + << spvOpcodeString(scalar_type) + << " or an " + "array of " + << spvOpcodeString(scalar_type) << ". " << message; + })) { + return error; + } + + if (!_.HasDecoration(inst.id(), spv::Decoration::PerPrimitiveEXT)) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(vuids.perprim_deco) + << "According to the Vulkan spec the variable decorated with " + "Builtin " + << _.grammar().lookupOperandName(SPV_OPERAND_TYPE_BUILT_IN, + (uint32_t)builtin) + << " within the MeshEXT Execution Model must also be " + << "decorated with the PerPrimitiveEXT decoration. "; + } + + // These builtin have the ability to be an array with MeshEXT + // When an array, we need to make sure the array size lines up + std::map entry_interface_id_map; + bool found = IsMeshInterfaceVar(inst, entry_interface_id_map); + if (found) { + for (const auto& id : entry_interface_id_map) { + uint32_t entry_point_id = id.first; + uint32_t interface_var_id = id.second; + + const uint64_t interface_size = GetArrayLength(interface_var_id); + const uint32_t output_prim_size = + _.GetOutputPrimitivesEXT(entry_point_id); + if (interface_size != output_prim_size) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(is_block ? vuids.block_array_size + : vuids.array_size) + << " The size of the array decorated with " + << _.grammar().lookupOperandName(SPV_OPERAND_TYPE_BUILT_IN, + (uint32_t)builtin) + << " (" << interface_size + << ") must match the value specified by OutputPrimitivesEXT " + "(" + << output_prim_size << "). "; + } + } + } + } + } else { + // Propagate this rule to all dependant ids in the global scope. + id_to_at_reference_checks_[referenced_from_inst.id()].push_back( + std::bind(&BuiltInsValidator::ValidateMeshBuiltinInterfaceRules, this, + decoration, inst, scalar_type, std::placeholders::_1)); + } + return SPV_SUCCESS; +} + +spv_result_t BuiltInsValidator::ValidatePrimitiveShadingRateInterfaceRules( + const Decoration& decoration, const Instruction& inst, + const Instruction& referenced_from_inst) { + if (function_id_) { + if (!execution_models_.count(spv::ExecutionModel::MeshEXT)) { if (spv_result_t error = ValidateI32( decoration, inst, - [this, &decoration, - &inst](const std::string& message) -> spv_result_t { - uint32_t vuid = - (decoration.builtin() == spv::BuiltIn::Layer) ? 4276 : 4408; + [this, &inst, + &decoration](const std::string& message) -> spv_result_t { return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(vuid) + << _.VkErrorID(4486) << "According to the Vulkan spec BuiltIn " << _.grammar().lookupOperandName( SPV_OPERAND_TYPE_BUILT_IN, (uint32_t)decoration.builtin()) - << "variable needs to be a 32-bit int scalar. " - << message; - })) { - return error; - } - } else { - if (spv_result_t error = ValidateOptionalArrayedI32( - decoration, inst, - [this, &decoration, - &inst](const std::string& message) -> spv_result_t { - uint32_t vuid = - (decoration.builtin() == spv::BuiltIn::Layer) ? 4276 : 4408; - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(vuid) - << "According to the Vulkan spec BuiltIn " - << _.grammar().lookupOperandName( - SPV_OPERAND_TYPE_BUILT_IN, - (uint32_t)decoration.builtin()) - << "variable needs to be a 32-bit int scalar. " + << " variable needs to be a 32-bit int scalar. " << message; })) { return error; } } - - if (isMeshInterfaceVar(inst) && - _.HasCapability(spv::Capability::MeshShadingEXT) && - !_.HasDecoration(inst.id(), spv::Decoration::PerPrimitiveEXT)) { - const spv::BuiltIn label = spv::BuiltIn(decoration.params()[0]); - uint32_t vkerrid = (label == spv::BuiltIn::Layer) ? 7039 : 7060; - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(vkerrid) - << "According to the Vulkan spec the variable decorated with " - "Builtin " - << _.grammar().lookupOperandName(SPV_OPERAND_TYPE_BUILT_IN, - decoration.params()[0]) - << " within the MeshEXT Execution Model must also be decorated " - "with the PerPrimitiveEXT decoration. "; - } + } else { + // Propagate this rule to all dependant ids in the global scope. + id_to_at_reference_checks_[referenced_from_inst.id()].push_back(std::bind( + &BuiltInsValidator::ValidatePrimitiveShadingRateInterfaceRules, this, + decoration, inst, std::placeholders::_1)); } + return SPV_SUCCESS; +} - // Seed at reference checks with this built-in. +// For Layer, ViewportIndex, and PrimitiveId +spv_result_t BuiltInsValidator::ValidateNonMeshInterfaceRules( + const Decoration& decoration, const Instruction& inst, + const Instruction& referenced_from_inst) { + if (function_id_) { + // This can be a per-primitive variable for NV mesh shader stage. + // In such cases variable will have an array of 32-bit integers. + if (!execution_models_.count(spv::ExecutionModel::MeshEXT)) { + const spv::BuiltIn builtin = decoration.builtin(); + const uint32_t vuid = (builtin == spv::BuiltIn::Layer) ? 4276 + : (builtin == spv::BuiltIn::ViewportIndex) ? 4408 + : 4337; + if (decoration.struct_member_index() != Decoration::kInvalidMember) { + if (spv_result_t error = ValidateI32( + decoration, inst, + [this, &vuid, builtin, + &inst](const std::string& message) -> spv_result_t { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(vuid) + << "According to the Vulkan spec BuiltIn " + << _.grammar().lookupOperandName( + SPV_OPERAND_TYPE_BUILT_IN, (uint32_t)builtin) + << "variable needs to be a 32-bit int scalar. " + << message; + })) { + return error; + } + } else if (spv_result_t error = ValidateOptionalArrayedI32( + decoration, inst, + [this, &vuid, builtin, + &inst](const std::string& message) -> spv_result_t { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(vuid) + << "According to the Vulkan spec BuiltIn " + << _.grammar().lookupOperandName( + SPV_OPERAND_TYPE_BUILT_IN, + (uint32_t)builtin) + << "variable needs to be a 32-bit int scalar. " + << message; + })) { + return error; + } + } + } else { + // Propagate this rule to all dependant ids in the global scope. + id_to_at_reference_checks_[referenced_from_inst.id()].push_back( + std::bind(&BuiltInsValidator::ValidateNonMeshInterfaceRules, this, + decoration, inst, std::placeholders::_1)); + } + return SPV_SUCCESS; +} + +spv_result_t BuiltInsValidator::ValidateLayerOrViewportIndexAtDefinition( + const Decoration& decoration, const Instruction& inst) { return ValidateLayerOrViewportIndexAtReference(decoration, inst, inst, inst); } @@ -2914,6 +3119,14 @@ spv_result_t BuiltInsValidator::ValidateLayerOrViewportIndexAtReference( referenced_from_inst, std::placeholders::_1)); } + id_to_at_reference_checks_[referenced_from_inst.id()].push_back(std::bind( + &BuiltInsValidator::ValidateMeshBuiltinInterfaceRules, this, decoration, + built_in_inst, spv::Op::OpTypeInt, std::placeholders::_1)); + + id_to_at_reference_checks_[referenced_from_inst.id()].push_back( + std::bind(&BuiltInsValidator::ValidateNonMeshInterfaceRules, this, + decoration, built_in_inst, std::placeholders::_1)); + for (const spv::ExecutionModel execution_model : execution_models_) { switch (execution_model) { case spv::ExecutionModel::Geometry: @@ -3338,12 +3551,47 @@ spv_result_t BuiltInsValidator::ValidateWorkgroupSizeAtDefinition( bool static_x = _.EvalConstantValUint64(inst.word(3), &x_size); bool static_y = _.EvalConstantValUint64(inst.word(4), &y_size); bool static_z = _.EvalConstantValUint64(inst.word(5), &z_size); - if (static_x && static_y && static_z && - ((x_size * y_size * z_size) == 0)) { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << "WorkgroupSize decorations must not have a static " - "product of zero (X = " - << x_size << ", Y = " << y_size << ", Z = " << z_size << ")."; + if (static_x && static_y && static_z) { + const uint64_t product_size = x_size * y_size * z_size; + if (product_size == 0) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << "WorkgroupSize decorations must not have a static " + "product of zero (X = " + << x_size << ", Y = " << y_size << ", Z = " << z_size << ")."; + } + + // If there is a known static workgroup size, all entrypoints with + // explicit derivative execution modes can be validated. These are only + // found in execution models that support explicit workgroup sizes + for (const uint32_t entry_point : _.entry_points()) { + const auto* modes = _.GetExecutionModes(entry_point); + if (!modes) continue; + if (modes->count(spv::ExecutionMode::DerivativeGroupQuadsKHR)) { + if (x_size % 2 != 0 || y_size % 2 != 0) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(10151) + << "WorkgroupSize decorations has a static dimensions of " + "(X = " + << x_size << ", Y = " << y_size << ") but Entry Point id " + << entry_point + << " has an DerivativeGroupQuadsKHR execution mode, so " + "both dimensions must be a multiple of 2"; + } + } + if (modes->count(spv::ExecutionMode::DerivativeGroupLinearKHR)) { + if (product_size % 4 != 0) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(10152) + << "WorkgroupSize decorations has a static dimensions of " + "(X = " + << x_size << ", Y = " << y_size << ", Z = " << z_size + << ") but Entry Point id " << entry_point + << " has an DerivativeGroupLinearKHR execution mode, so " + "the product (" + << product_size << ") must be a multiple of 4"; + } + } + } } } } @@ -3986,34 +4234,6 @@ spv_result_t BuiltInsValidator::ValidateNVSMOrARMCoreBuiltinsAtReference( spv_result_t BuiltInsValidator::ValidatePrimitiveShadingRateAtDefinition( const Decoration& decoration, const Instruction& inst) { - if (spvIsVulkanEnv(_.context()->target_env)) { - if (spv_result_t error = ValidateI32( - decoration, inst, - [this, &inst, - &decoration](const std::string& message) -> spv_result_t { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(4486) - << "According to the Vulkan spec BuiltIn " - << _.grammar().lookupOperandName( - SPV_OPERAND_TYPE_BUILT_IN, - (uint32_t)decoration.builtin()) - << " variable needs to be a 32-bit int scalar. " - << message; - })) { - return error; - } - if (isMeshInterfaceVar(inst) && - _.HasCapability(spv::Capability::MeshShadingEXT) && - !_.HasDecoration(inst.id(), spv::Decoration::PerPrimitiveEXT)) { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(7059) - << "The variable decorated with PrimitiveShadingRateKHR " - "within the MeshEXT Execution Model must also be " - "decorated with the PerPrimitiveEXT decoration"; - } - } - - // Seed at reference checks with this built-in. return ValidatePrimitiveShadingRateAtReference(decoration, inst, inst, inst); } @@ -4035,6 +4255,14 @@ spv_result_t BuiltInsValidator::ValidatePrimitiveShadingRateAtReference( << " " << GetStorageClassDesc(referenced_from_inst); } + id_to_at_reference_checks_[referenced_from_inst.id()].push_back(std::bind( + &BuiltInsValidator::ValidateMeshBuiltinInterfaceRules, this, decoration, + built_in_inst, spv::Op::OpTypeInt, std::placeholders::_1)); + + id_to_at_reference_checks_[referenced_from_inst.id()].push_back(std::bind( + &BuiltInsValidator::ValidatePrimitiveShadingRateInterfaceRules, this, + decoration, built_in_inst, std::placeholders::_1)); + for (const spv::ExecutionModel execution_model : execution_models_) { switch (execution_model) { case spv::ExecutionModel::Vertex: @@ -4365,48 +4593,61 @@ spv_result_t BuiltInsValidator::ValidateMeshShadingEXTBuiltinsAtDefinition( return error; } break; - case spv::BuiltIn::CullPrimitiveEXT: - if (spv_result_t error = ValidateBlockBoolOrArrayedBool( - decoration, inst, - [this, &inst, &decoration, - &vuid](const std::string& message) -> spv_result_t { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(vuid) << "According to the " - << spvLogStringForEnv(_.context()->target_env) - << " spec BuiltIn " - << _.grammar().lookupOperandName( - SPV_OPERAND_TYPE_BUILT_IN, - (uint32_t)decoration.builtin()) - << " variable needs to be a either a boolean or an " - "array of booleans." - << message; - })) { + case spv::BuiltIn::CullPrimitiveEXT: { + // We know this only allowed for Mesh Execution Model + if (spv_result_t error = ValidateMeshBuiltinInterfaceRules( + decoration, inst, spv::Op::OpTypeBool, inst)) { return error; } - if (!_.HasDecoration(inst.id(), spv::Decoration::PerPrimitiveEXT)) { - return _.diag(SPV_ERROR_INVALID_DATA, &inst) - << _.VkErrorID(7038) - << "The variable decorated with CullPrimitiveEXT within the " - "MeshEXT Execution Model must also be decorated with the " - "PerPrimitiveEXT decoration "; + + for (const uint32_t entry_point : _.entry_points()) { + auto* models = _.GetExecutionModels(entry_point); + if (models->find(spv::ExecutionModel::MeshEXT) == models->end() && + models->find(spv::ExecutionModel::MeshNV) == models->end()) { + continue; + } + + if (IsBulitinInEntryPoint(inst, entry_point)) { + if (cull_primitive_entry_points_.find(entry_point) != + cull_primitive_entry_points_.end()) { + return _.diag(SPV_ERROR_INVALID_DATA, &inst) + << _.VkErrorID(10591) + << "There must be only one declaration of the " + "CullPrimitiveEXT associated in entry point's " + "interface. " + << GetIdDesc(*_.FindDef(entry_point)); + } else { + cull_primitive_entry_points_.insert(entry_point); + } + } } + break; + } default: assert(0 && "Unexpected mesh EXT builtin"); } for (const uint32_t entry_point : _.entry_points()) { + // execution modes and builtin are both global, so only check these + // buildit definitions if we know the entrypoint is Mesh + auto* models = _.GetExecutionModels(entry_point); + if (models->find(spv::ExecutionModel::MeshEXT) == models->end() && + models->find(spv::ExecutionModel::MeshNV) == models->end()) { + continue; + } + const auto* modes = _.GetExecutionModes(entry_point); - uint64_t maxOutputPrimitives = _.GetOutputPrimitivesEXT(entry_point); + uint64_t max_output_primitives = _.GetOutputPrimitivesEXT(entry_point); uint32_t underlying_type = 0; if (spv_result_t error = GetUnderlyingType(_, decoration, inst, &underlying_type)) { return error; } - uint64_t primitiveArrayDim = 0; + uint64_t primitive_array_dim = 0; if (_.GetIdOpcode(underlying_type) == spv::Op::OpTypeArray) { underlying_type = _.FindDef(underlying_type)->word(3u); - if (!_.EvalConstantValUint64(underlying_type, &primitiveArrayDim)) { + if (!_.EvalConstantValUint64(underlying_type, &primitive_array_dim)) { assert(0 && "Array type definition is corrupt"); } } @@ -4419,7 +4660,8 @@ spv_result_t BuiltInsValidator::ValidateMeshShadingEXTBuiltinsAtDefinition( "with " "the OutputPoints Execution Mode. "; } - if (primitiveArrayDim && primitiveArrayDim != maxOutputPrimitives) { + if (primitive_array_dim && + primitive_array_dim != max_output_primitives) { return _.diag(SPV_ERROR_INVALID_DATA, &inst) << _.VkErrorID(7046) << "The size of the array decorated with " @@ -4435,7 +4677,8 @@ spv_result_t BuiltInsValidator::ValidateMeshShadingEXTBuiltinsAtDefinition( "with " "the OutputLinesEXT Execution Mode. "; } - if (primitiveArrayDim && primitiveArrayDim != maxOutputPrimitives) { + if (primitive_array_dim && + primitive_array_dim != max_output_primitives) { return _.diag(SPV_ERROR_INVALID_DATA, &inst) << _.VkErrorID(7052) << "The size of the array decorated with " @@ -4451,7 +4694,8 @@ spv_result_t BuiltInsValidator::ValidateMeshShadingEXTBuiltinsAtDefinition( "with " "the OutputTrianglesEXT Execution Mode. "; } - if (primitiveArrayDim && primitiveArrayDim != maxOutputPrimitives) { + if (primitive_array_dim && + primitive_array_dim != max_output_primitives) { return _.diag(SPV_ERROR_INVALID_DATA, &inst) << _.VkErrorID(7058) << "The size of the array decorated with " @@ -4692,6 +4936,7 @@ spv_result_t BuiltInsValidator::ValidateSingleBuiltInAtDefinitionVulkan( case spv::BuiltIn::CullMaskKHR: { return ValidateRayTracingBuiltinsAtDefinition(decoration, inst); } + // These are only for Mesh, not Task execution model case spv::BuiltIn::CullPrimitiveEXT: case spv::BuiltIn::PrimitivePointIndicesEXT: case spv::BuiltIn::PrimitiveLineIndicesEXT: diff --git a/3rdparty/spirv-tools/source/val/validate_capability.cpp b/3rdparty/spirv-tools/source/val/validate_capability.cpp index 05ccb11bf..ac8f824e0 100644 --- a/3rdparty/spirv-tools/source/val/validate_capability.cpp +++ b/3rdparty/spirv-tools/source/val/validate_capability.cpp @@ -345,11 +345,18 @@ bool IsEnabledByCapabilityOpenCL_2_0(ValidationState_t& _, // Validates that capability declarations use operands allowed in the current // context. spv_result_t CapabilityPass(ValidationState_t& _, const Instruction* inst) { - if (inst->opcode() != spv::Op::OpCapability) return SPV_SUCCESS; + if (inst->opcode() != spv::Op::OpCapability && + inst->opcode() != spv::Op::OpConditionalCapabilityINTEL) + return SPV_SUCCESS; - assert(inst->operands().size() == 1); + assert(!((inst->opcode() == spv::Op::OpCapability) ^ + (inst->operands().size() == 1))); + assert(!((inst->opcode() == spv::Op::OpConditionalCapabilityINTEL) ^ + (inst->operands().size() == 2))); - const spv_parsed_operand_t& operand = inst->operand(0); + const uint32_t i_cap = + inst->opcode() == spv::Op::OpConditionalCapabilityINTEL ? 1 : 0; + const spv_parsed_operand_t& operand = inst->operand(i_cap); assert(operand.num_words == 1); assert(operand.offset < inst->words().size()); diff --git a/3rdparty/spirv-tools/source/val/validate_composites.cpp b/3rdparty/spirv-tools/source/val/validate_composites.cpp index 2afeae78a..68636f3b5 100644 --- a/3rdparty/spirv-tools/source/val/validate_composites.cpp +++ b/3rdparty/spirv-tools/source/val/validate_composites.cpp @@ -16,6 +16,8 @@ // Validates correctness of composite SPIR-V instructions. +#include + #include "source/opcode.h" #include "source/spirv_target_env.h" #include "source/val/instruction.h" @@ -618,8 +620,464 @@ spv_result_t ValidateCopyLogical(ValidationState_t& _, return SPV_SUCCESS; } -} // anonymous namespace +spv_result_t ValidateCompositeConstructCoopMatQCOM(ValidationState_t& _, + const Instruction* inst) { + // Is the result of coop mat ? + const auto result_type_inst = _.FindDef(inst->type_id()); + if (!result_type_inst || + result_type_inst->opcode() != spv::Op::OpTypeCooperativeMatrixKHR) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the result type be OpTypeCooperativeMatrixKHR"; + } + const auto source = _.FindDef(inst->GetOperandAs(2u)); + const auto source_type_inst = _.FindDef(source->type_id()); + + if (!source_type_inst || source_type_inst->opcode() != spv::Op::OpTypeArray) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the input operand be an OpTypeArray."; + } + + // Is the scope Subgrouop ? + { + unsigned scope = UINT_MAX; + unsigned scope_id = result_type_inst->GetOperandAs(2u); + bool status = _.GetConstantValueAs(scope_id, scope); + bool is_scope_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(scope_id)->opcode()); + if (!is_scope_spec_const && + (!status || scope != static_cast(spv::Scope::Subgroup))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the result type's scope be Subgroup."; + } + } + + unsigned ar_len = UINT_MAX; + unsigned src_arr_len_id = source_type_inst->GetOperandAs(2u); + bool ar_len_status = _.GetConstantValueAs(src_arr_len_id, ar_len); + bool is_src_arr_len_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(src_arr_len_id)->opcode()); + + const auto source_elt_type = _.GetComponentType(source_type_inst->id()); + const auto result_elt_type = result_type_inst->GetOperandAs(1u); + + if ((source_elt_type != result_elt_type) && + !(_.ContainsSizedIntOrFloatType(source_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(source_elt_type))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires ether the input element type is equal to the result " + "element type or it is the unsigned 32-bit integer."; + } + + unsigned res_row_id = result_type_inst->GetOperandAs(3u); + unsigned res_col_id = result_type_inst->GetOperandAs(4u); + unsigned res_use_id = result_type_inst->GetOperandAs(5u); + + unsigned cm_use = UINT_MAX; + bool cm_use_status = _.GetConstantValueAs(res_use_id, cm_use); + + switch (static_cast(cm_use)) { + case spv::CooperativeMatrixUse::MatrixAKHR: { + // result coopmat component type check + if (!_.IsIntNOrFP32OrFP16<8>(result_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the result element type is one of 8-bit OpTypeInt " + "signed/unsigned, 16- or 32-bit OpTypeFloat" + << " when result coopmat's use is MatrixAKHR"; + } + + // result coopmat column length check + unsigned n_cols = UINT_MAX; + bool status = _.GetConstantValueAs(res_col_id, n_cols); + bool is_res_col_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(res_col_id)->opcode()); + if (!is_res_col_spec_const && + (!status || (!(_.ContainsSizedIntOrFloatType(result_elt_type, + spv::Op::OpTypeInt, 8) && + n_cols == 32) && + !(_.ContainsSizedIntOrFloatType( + result_elt_type, spv::Op::OpTypeFloat, 16) && + n_cols == 16) && + !(_.ContainsSizedIntOrFloatType( + result_elt_type, spv::Op::OpTypeFloat, 32) && + n_cols == 8)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the columns of the result coopmat have the bit " + "length of 256" + << " when result coopmat's use is MatrixAKHR"; + } + // source array length check + if (!is_src_arr_len_spec_const && + (!ar_len_status || + (!(_.ContainsSizedIntOrFloatType(source_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(source_elt_type) && (ar_len == 8)) && + !(n_cols == ar_len)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source array length be 8 if its elt type is " + "32-bit unsigned OpTypeInt and be the result's number of " + "columns, otherwise" + << " when result coopmat's use is MatrixAKHR"; + } + break; + } + case spv::CooperativeMatrixUse::MatrixBKHR: { + // result coopmat component type check + if (!_.IsIntNOrFP32OrFP16<8>(result_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the result element type is one of 8-bit OpTypeInt " + "signed/unsigned, 16- or 32-bit OpTypeFloat" + << " when result coopmat's use is MatrixBKHR"; + } + + // result coopmat row length check + unsigned n_rows = UINT_MAX; + bool status = _.GetConstantValueAs(res_row_id, n_rows); + bool is_res_row_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(res_row_id)->opcode()); + if (!is_res_row_spec_const && + (!status || (!(_.ContainsSizedIntOrFloatType(result_elt_type, + spv::Op::OpTypeInt, 8) && + n_rows == 32) && + !(_.ContainsSizedIntOrFloatType( + result_elt_type, spv::Op::OpTypeFloat, 16) && + n_rows == 16) && + !(_.ContainsSizedIntOrFloatType( + result_elt_type, spv::Op::OpTypeFloat, 32) && + n_rows == 8)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the rows of the result operand have the bit " + "length of 256" + << " when result coopmat's use is MatrixBKHR"; + } + // source array length check + if (!is_src_arr_len_spec_const && + (!ar_len_status || + (!(_.ContainsSizedIntOrFloatType(source_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(source_elt_type) && (ar_len == 8)) && + !(n_rows == ar_len)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source array length be 8 if its elt type is " + "32-bit unsigned OpTypeInt and be the result's number of " + "rows, otherwise" + << " when result coopmat's use is MatrixBKHR"; + } + break; + } + case spv::CooperativeMatrixUse::MatrixAccumulatorKHR: { + // result coopmat component type check + if (!_.IsIntNOrFP32OrFP16<32>(result_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the result element type is one of 32-bit " + "OpTypeInt signed/unsigned, 16- or 32-bit OpTypeFloat" + << " when result coopmat's use is MatrixAccumulatorKHR"; + } + + // source array length check + unsigned n_cols = UINT_MAX; + bool status = _.GetConstantValueAs(res_col_id, n_cols); + bool is_res_col_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(res_col_id)->opcode()); + if (!is_res_col_spec_const && !is_src_arr_len_spec_const && + (!status || !ar_len_status || + (!(_.ContainsSizedIntOrFloatType(source_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(source_elt_type) && + (_.ContainsSizedIntOrFloatType(result_elt_type, + spv::Op::OpTypeFloat, 16) + ? (n_cols / 2 == ar_len) + : n_cols == ar_len)) && + (n_cols != ar_len)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source array length be a half of the number " + "of columns of the resulting cooerative matrix if the " + "matrix's componet type is 16-bit OpTypeFloat and be equal " + "to the number of columns, otherwise," + << " when result coopmat's use is MatrixAccumulatorKHR"; + } + break; + } + default: { + bool is_cm_use_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(res_use_id)->opcode()); + if (!is_cm_use_spec_const || !cm_use_status) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the the resulting cooerative matrix's use be " + << " one of MatrixAKHR (== 0), MatrixBKHR (== 1), and " + "MatrixAccumulatorKHR (== 2)"; + } + break; + } + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateCompositeExtractCoopMatQCOM(ValidationState_t& _, + const Instruction* inst) { + const auto result_type_inst = _.FindDef(inst->type_id()); + if (!result_type_inst || result_type_inst->opcode() != spv::Op::OpTypeArray) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the input operand be an OpTypeArray."; + } + + const auto source = _.FindDef(inst->GetOperandAs(2u)); + const auto source_type_inst = _.FindDef(source->type_id()); + + // Is the source of coop mat ? + if (!source_type_inst || + source_type_inst->opcode() != spv::Op::OpTypeCooperativeMatrixKHR) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source type be OpTypeCooperativeMatrixKHR"; + } + + // Is the scope Subgrouop ? + { + unsigned scope = UINT_MAX; + unsigned scope_id = source_type_inst->GetOperandAs(2u); + bool status = _.GetConstantValueAs(scope_id, scope); + bool is_scope_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(scope_id)->opcode()); + if (!is_scope_spec_const && + (!status || scope != static_cast(spv::Scope::Subgroup))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source type's scope be Subgroup."; + } + } + + unsigned ar_len = UINT_MAX; + unsigned res_arr_len_id = result_type_inst->GetOperandAs(2u); + bool ar_len_status = _.GetConstantValueAs(res_arr_len_id, ar_len); + bool is_res_arr_len_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(res_arr_len_id)->opcode()); + + const auto source_elt_type = _.GetComponentType(source_type_inst->id()); + const auto result_elt_type = result_type_inst->GetOperandAs(1u); + + unsigned src_row_id = source_type_inst->GetOperandAs(3u); + unsigned src_col_id = source_type_inst->GetOperandAs(4u); + unsigned src_use_id = source_type_inst->GetOperandAs(5u); + + unsigned cm_use = UINT_MAX; + bool cm_use_status = _.GetConstantValueAs(src_use_id, cm_use); + + switch (static_cast(cm_use)) { + case spv::CooperativeMatrixUse::MatrixAKHR: { + // source coopmat component type check + if (!_.IsIntNOrFP32OrFP16<8>(source_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source element type be one of 8-bit OpTypeInt " + "signed/unsigned, 16- or 32-bit OpTypeFloat" + << " when source coopmat's use is MatrixAKHR"; + } + + // source coopmat column length check + unsigned n_cols = UINT_MAX; + bool status = _.GetConstantValueAs(src_col_id, n_cols); + bool is_src_col_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(src_col_id)->opcode()); + if (!is_src_col_spec_const && + (!status || (!(_.ContainsSizedIntOrFloatType(source_elt_type, + spv::Op::OpTypeInt, 8) && + n_cols == 32) && + !(_.ContainsSizedIntOrFloatType( + source_elt_type, spv::Op::OpTypeFloat, 16) && + n_cols == 16) && + !(_.ContainsSizedIntOrFloatType( + source_elt_type, spv::Op::OpTypeFloat, 32) && + n_cols == 8)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the columns of the source coopmat have the bit " + "length of 256" + << " when source coopmat's use is MatrixAKHR"; + } + // result type check + if (!is_res_arr_len_spec_const && + !(source_elt_type == result_elt_type && (n_cols == ar_len)) && + !(_.ContainsSizedIntOrFloatType(result_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(result_elt_type) && (ar_len == 8))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires either the result element type be the same as the " + "source cooperative matrix's component type" + << " and its length be the same as the number of columns of the " + "matrix or the result element type be" + << " unsigned 32-bit OpTypeInt and the length be 8" + << " when source coopmat's use is MatrixAKHR"; + } + break; + } + case spv::CooperativeMatrixUse::MatrixBKHR: { + // source coopmat component type check + if (!_.IsIntNOrFP32OrFP16<8>(source_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source element type be one of 8-bit OpTypeInt " + "signed/unsigned, 16- or 32-bit OpTypeFloat" + << " when source coopmat's use is MatrixBKHR"; + } + + // source coopmat row length check + unsigned n_rows = UINT_MAX; + bool status = _.GetConstantValueAs(src_row_id, n_rows); + bool is_src_row_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(src_row_id)->opcode()); + if (!is_src_row_spec_const && + (!status || (!(_.ContainsSizedIntOrFloatType(source_elt_type, + spv::Op::OpTypeInt, 8) && + n_rows == 32) && + !(_.ContainsSizedIntOrFloatType( + source_elt_type, spv::Op::OpTypeFloat, 16) && + n_rows == 16) && + !(_.ContainsSizedIntOrFloatType( + source_elt_type, spv::Op::OpTypeFloat, 32) && + n_rows == 8)))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the rows of the source coopmat have the bit " + "length of 256" + << " when source coopmat's use is MatrixBKHR"; + } + // result type check + if (!is_res_arr_len_spec_const && + !(source_elt_type == result_elt_type && (n_rows == ar_len)) && + !(_.ContainsSizedIntOrFloatType(result_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(result_elt_type) && (ar_len == 8))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires either the result element type be the same as the " + "source cooperative matrix's component type" + << " and its length be the same as the number of rows of the " + "matrix or the result element type be" + << " unsigned 32-bit OpTypeInt and the length be 8" + << " when source coopmat's use is MatrixBKHR"; + } + break; + } + case spv::CooperativeMatrixUse::MatrixAccumulatorKHR: { + // source coopmat component type check + if (!_.IsIntNOrFP32OrFP16<32>(source_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source element type be one of 32-bit " + "OpTypeInt signed/unsigned, 16- or 32-bit OpTypeFloat" + << " when source coopmat's use is MatrixAccumulatorKHR"; + } + + // result type check + unsigned n_cols = UINT_MAX; + bool status = _.GetConstantValueAs(src_col_id, n_cols); + bool is_src_col_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(src_col_id)->opcode()); + if (!is_src_col_spec_const && !is_res_arr_len_spec_const && + (!status || !ar_len_status || + (!(source_elt_type == result_elt_type && (n_cols == ar_len)) && + !(_.ContainsSizedIntOrFloatType(result_elt_type, spv::Op::OpTypeInt, + 32) && + _.IsUnsignedIntScalarType(result_elt_type) && + (_.ContainsSizedIntOrFloatType(source_elt_type, + spv::Op::OpTypeFloat, 16) + ? (n_cols / 2 == ar_len) + : (n_cols == ar_len)))))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires either the result element type be the same as the " + "source cooperative matrix's component type" + << " and its length be the same as the number of columns of the " + "matrix or the result element type be" + << " unsigned 32-bit OpTypeInt and the length be the number of " + "the columns of the matrix if its component" + << " type is 32-bit OpTypeFloat and be a half of the number of " + "the columns of the matrix if its component" + << " type is 16-bit OpTypeFloat" + << " when source coopmat's use is MatrixAccumulatorKHR"; + } + break; + } + default: { + bool is_cm_use_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(src_use_id)->opcode()); + if (!is_cm_use_spec_const || !cm_use_status) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the the source cooerative matrix's use be " + << " one of MatrixAKHR (== 0), MatrixBKHR (== 1), and " + "MatrixAccumulatorKHR (== 2)"; + } + break; + } + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateExtractSubArrayQCOM(ValidationState_t& _, + const Instruction* inst) { + const auto result_type_inst = _.FindDef(inst->type_id()); + const auto source = _.FindDef(inst->GetOperandAs(2u)); + const auto source_type_inst = _.FindDef(source->type_id()); + + // Are the input and the result arrays? + if (result_type_inst->opcode() != spv::Op::OpTypeArray || + source_type_inst->opcode() != spv::Op::OpTypeArray) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires OpTypeArray operands for the input and the result."; + } + + const auto source_elt_type = _.GetComponentType(source_type_inst->id()); + const auto result_elt_type = _.GetComponentType(result_type_inst->id()); + + // Do the input and result element types match? + if (source_elt_type != result_elt_type) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the input and result element types match."; + } + + // Elt type must be one of int32_t/uint32_t/float32/float16 + if (!_.IsIntNOrFP32OrFP16<32>(source_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the element type be one of 32-bit OpTypeInt " + "(signed/unsigned), 32-bit OpTypeFloat and 16-bit OpTypeFloat"; + } + + const auto start_index = _.FindDef(inst->GetOperandAs(3u)); + if (!start_index || !_.ContainsSizedIntOrFloatType(start_index->type_id(), + spv::Op::OpTypeInt, 32)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the type of the start index operand be 32-bit " + "OpTypeInt"; + } + + return SPV_SUCCESS; +} + +} // anonymous namespace // Validates correctness of composite instructions. spv_result_t CompositesPass(ValidationState_t& _, const Instruction* inst) { switch (inst->opcode()) { @@ -641,6 +1099,12 @@ spv_result_t CompositesPass(ValidationState_t& _, const Instruction* inst) { return ValidateTranspose(_, inst); case spv::Op::OpCopyLogical: return ValidateCopyLogical(_, inst); + case spv::Op::OpCompositeConstructCoopMatQCOM: + return ValidateCompositeConstructCoopMatQCOM(_, inst); + case spv::Op::OpCompositeExtractCoopMatQCOM: + return ValidateCompositeExtractCoopMatQCOM(_, inst); + case spv::Op::OpExtractSubArrayQCOM: + return ValidateExtractSubArrayQCOM(_, inst); default: break; } diff --git a/3rdparty/spirv-tools/source/val/validate_conversion.cpp b/3rdparty/spirv-tools/source/val/validate_conversion.cpp index be50a6f1e..acd70e7a4 100644 --- a/3rdparty/spirv-tools/source/val/validate_conversion.cpp +++ b/3rdparty/spirv-tools/source/val/validate_conversion.cpp @@ -14,6 +14,8 @@ // Validates correctness of conversion instructions. +#include + #include "source/opcode.h" #include "source/spirv_constant.h" #include "source/spirv_target_env.h" @@ -572,26 +574,38 @@ spv_result_t ConversionPass(ValidationState_t& _, const Instruction* inst) { if (result_is_pointer && !input_is_pointer && !input_is_int_scalar && !(input_is_int_vector && input_has_int32)) return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Expected input to be a pointer, int scalar or 32-bit int " + << "In SPIR-V 1.5 or later (or with " + "SPV_KHR_physical_storage_buffer), expected input to be a " + "pointer, " + "int scalar or 32-bit int " "vector if Result Type is pointer: " << spvOpcodeString(opcode); if (input_is_pointer && !result_is_pointer && !result_is_int_scalar && !(result_is_int_vector && result_has_int32)) return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Pointer can only be converted to another pointer, int " + << "In SPIR-V 1.5 or later (or with " + "SPV_KHR_physical_storage_buffer), pointer can only be " + "converted to " + "another pointer, int " "scalar or 32-bit int vector: " << spvOpcodeString(opcode); } else { if (result_is_pointer && !input_is_pointer && !input_is_int_scalar) return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Expected input to be a pointer or int scalar if Result " + << "In SPIR-V 1.4 or earlier (and without " + "SPV_KHR_physical_storage_buffer), expected input to be a " + "pointer " + "or int scalar if Result " "Type is pointer: " << spvOpcodeString(opcode); if (input_is_pointer && !result_is_pointer && !result_is_int_scalar) return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Pointer can only be converted to another pointer or int " + << "In SPIR-V 1.4 or earlier (and without " + "SPV_KHR_physical_storage_buffer), pointer can only be " + "converted " + "to another pointer or int " "scalar: " << spvOpcodeString(opcode); } @@ -664,6 +678,69 @@ spv_result_t ConversionPass(ValidationState_t& _, const Instruction* inst) { break; } + case spv::Op::OpBitCastArrayQCOM: { + const auto result_type_inst = _.FindDef(inst->type_id()); + const auto source = _.FindDef(inst->GetOperandAs(2u)); + const auto source_type_inst = _.FindDef(source->type_id()); + + // Are the input and the result arrays? + if (result_type_inst->opcode() != spv::Op::OpTypeArray || + source_type_inst->opcode() != spv::Op::OpTypeArray) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires OpTypeArray operands for the input and the " + "result."; + } + + const auto source_elt_type = _.GetComponentType(source_type_inst->id()); + const auto result_elt_type = _.GetComponentType(result_type_inst->id()); + + if (!_.IsIntNOrFP32OrFP16<32>(source_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the source element type be one of 32-bit " + "OpTypeInt " + "(signed/unsigned), 32-bit OpTypeFloat and 16-bit " + "OpTypeFloat"; + } + + if (!_.IsIntNOrFP32OrFP16<32>(result_elt_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires the result element type be one of 32-bit " + "OpTypeInt " + "(signed/unsigned), 32-bit OpTypeFloat and 16-bit " + "OpTypeFloat"; + } + + unsigned src_arr_len_id = source_type_inst->GetOperandAs(2u); + unsigned res_arr_len_id = result_type_inst->GetOperandAs(2u); + + // Are the input and result element types compatible? + unsigned src_arr_len = UINT_MAX, res_arr_len = UINT_MAX; + bool src_arr_len_status = + _.GetConstantValueAs(src_arr_len_id, src_arr_len); + bool res_arr_len_status = + _.GetConstantValueAs(res_arr_len_id, res_arr_len); + + bool is_src_arr_len_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(src_arr_len_id)->opcode()); + bool is_res_arr_len_spec_const = + spvOpcodeIsSpecConstant(_.FindDef(res_arr_len_id)->opcode()); + + unsigned source_bitlen = _.GetBitWidth(source_elt_type) * src_arr_len; + unsigned result_bitlen = _.GetBitWidth(result_elt_type) * res_arr_len; + if (!is_src_arr_len_spec_const && !is_res_arr_len_spec_const && + (!src_arr_len_status || !res_arr_len_status || + source_bitlen != result_bitlen)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Opcode " << spvOpcodeString(inst->opcode()) + << " requires source and result types be compatible for " + "conversion."; + } + break; + } + default: break; } diff --git a/3rdparty/spirv-tools/source/val/validate_decorations.cpp b/3rdparty/spirv-tools/source/val/validate_decorations.cpp index e62eda8d4..db6f3c0bd 100644 --- a/3rdparty/spirv-tools/source/val/validate_decorations.cpp +++ b/3rdparty/spirv-tools/source/val/validate_decorations.cpp @@ -398,11 +398,29 @@ bool IsAlignedTo(uint32_t offset, uint32_t alignment) { return 0 == (offset % alignment); } +std::string getStorageClassString(spv::StorageClass sc) { + switch (sc) { + case spv::StorageClass::Uniform: + return "Uniform"; + case spv::StorageClass::UniformConstant: + return "UniformConstant"; + case spv::StorageClass::PushConstant: + return "PushConstant"; + case spv::StorageClass::Workgroup: + return "Workgroup"; + case spv::StorageClass::PhysicalStorageBuffer: + return "PhysicalStorageBuffer"; + default: + // Only other valid storage class in these checks + return "StorageBuffer"; + } +} + // Returns SPV_SUCCESS if the given struct satisfies standard layout rules for // Block or BufferBlocks in Vulkan. Otherwise emits a diagnostic and returns // something other than SPV_SUCCESS. Matrices inherit the specified column // or row major-ness. -spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, +spv_result_t checkLayout(uint32_t struct_id, spv::StorageClass storage_class, const char* decoration_str, bool blockRules, bool scalar_block_layout, uint32_t incoming_offset, MemberConstraints& constraints, @@ -418,22 +436,48 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, // is more permissive than relaxed layout. const bool relaxed_block_layout = vstate.IsRelaxedBlockLayout(); - auto fail = [&vstate, struct_id, storage_class_str, decoration_str, - blockRules, relaxed_block_layout, + auto fail = [&vstate, struct_id, storage_class, decoration_str, blockRules, + relaxed_block_layout, scalar_block_layout](uint32_t member_idx) -> DiagnosticStream { - DiagnosticStream ds = - std::move(vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(struct_id)) - << "Structure id " << struct_id << " decorated as " - << decoration_str << " for variable in " << storage_class_str - << " storage class must follow " - << (scalar_block_layout - ? "scalar " - : (relaxed_block_layout ? "relaxed " : "standard ")) - << (blockRules ? "uniform buffer" : "storage buffer") - << " layout rules: member " << member_idx << " "); + DiagnosticStream ds = std::move( + vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(struct_id)) + << "Structure id " << struct_id << " decorated as " << decoration_str + << " for variable in " << getStorageClassString(storage_class) + << " storage class must follow " + << (scalar_block_layout + ? "scalar " + : (relaxed_block_layout ? "relaxed " : "standard ")) + << (blockRules ? "uniform buffer" : "storage buffer") + << " layout rules: member " << member_idx << " "); return ds; }; + // People often use spirv-val from Vulkan Validation Layers, it ends up + // mapping the various block layout rules from the enabled feature. This + // offers a hint to help the user understand possbily why things are not + // working when the shader itself "seems" valid, but just was a lack of adding + // a supported feature + auto extra = [&vstate, scalar_block_layout, storage_class, + relaxed_block_layout, blockRules]() { + if (!scalar_block_layout) { + if (storage_class == spv::StorageClass::Workgroup) { + return vstate.MissingFeature( + "workgroupMemoryExplicitLayoutScalarBlockLayout feature", + "--workgroup-scalar-block-layout", true); + } else if (!relaxed_block_layout) { + return vstate.MissingFeature("VK_KHR_relaxed_block_layout extension", + "--relax-block-layout", true); + } else if (blockRules) { + return vstate.MissingFeature("uniformBufferStandardLayout feature", + "--uniform-buffer-standard-layout", true); + } else { + return vstate.MissingFeature("scalarBlockLayout feature", + "--scalar-block-layout", true); + } + } + return std::string(""); + }; + // If we are checking the layout of untyped pointers or physical storage // buffer pointers, we may not actually have a struct here. Instead, pretend // we have a struct with a single member at offset 0. @@ -507,7 +551,7 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, const auto size = getSize(id, constraint, constraints, vstate); // Check offset. if (offset == 0xffffffff) - return fail(memberIdx) << "is missing an Offset decoration"; + return fail(memberIdx) << "is missing an Offset decoration" << extra(); if (opcode == spv::Op::OpTypeRuntimeArray && ordered_member_idx != member_offsets.size() - 1) { @@ -524,42 +568,44 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, const auto componentId = inst->words()[2]; const auto scalar_alignment = getScalarAlignment(componentId, vstate); if (!IsAlignedTo(offset, scalar_alignment)) { - return fail(memberIdx) - << "at offset " << offset - << " is not aligned to scalar element size " << scalar_alignment; + return fail(memberIdx) << "at offset " << offset + << " is not aligned to scalar element size " + << scalar_alignment << extra(); } } else { // Without relaxed block layout, the offset must be divisible by the // alignment requirement. if (!IsAlignedTo(offset, alignment)) { - return fail(memberIdx) - << "at offset " << offset << " is not aligned to " << alignment; + return fail(memberIdx) << "at offset " << offset + << " is not aligned to " << alignment << extra(); } } if (offset < nextValidOffset) return fail(memberIdx) << "at offset " << offset << " overlaps previous member ending at offset " - << nextValidOffset - 1; + << nextValidOffset - 1 << extra(); if (!scalar_block_layout && relaxed_block_layout) { // Check improper straddle of vectors. if (spv::Op::OpTypeVector == opcode && hasImproperStraddle(id, offset, constraint, constraints, vstate)) return fail(memberIdx) - << "is an improperly straddling vector at offset " << offset; + << "is an improperly straddling vector at offset " << offset + << extra(); } // Check struct members recursively. spv_result_t recursive_status = SPV_SUCCESS; if (spv::Op::OpTypeStruct == opcode && SPV_SUCCESS != (recursive_status = checkLayout( - id, storage_class_str, decoration_str, blockRules, + id, storage_class, decoration_str, blockRules, scalar_block_layout, offset, constraints, vstate))) return recursive_status; // Check matrix stride. if (spv::Op::OpTypeMatrix == opcode) { const auto stride = constraint.matrix_stride; if (!IsAlignedTo(stride, alignment)) { - return fail(memberIdx) << "is a matrix with stride " << stride - << " not satisfying alignment to " << alignment; + return fail(memberIdx) + << "is a matrix with stride " << stride + << " not satisfying alignment to " << alignment << extra(); } } @@ -576,12 +622,13 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, if (spv::Decoration::ArrayStride == decoration.dec_type()) { array_stride = decoration.params()[0]; if (array_stride == 0) { - return fail(memberIdx) << "contains an array with stride 0"; + return fail(memberIdx) + << "contains an array with stride 0" << extra(); } if (!IsAlignedTo(array_stride, array_alignment)) return fail(memberIdx) << "contains an array with stride " << decoration.params()[0] - << " not satisfying alignment to " << alignment; + << " not satisfying alignment to " << alignment << extra(); } } @@ -608,7 +655,7 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, if (SPV_SUCCESS != (recursive_status = checkLayout( - typeId, storage_class_str, decoration_str, blockRules, + typeId, storage_class, decoration_str, blockRules, scalar_block_layout, next_offset, constraints, vstate))) return recursive_status; @@ -620,7 +667,7 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, if (!IsAlignedTo(stride, alignment)) { return fail(memberIdx) << "is a matrix with stride " << stride - << " not satisfying alignment to " << alignment; + << " not satisfying alignment to " << alignment << extra(); } } @@ -636,7 +683,7 @@ spv_result_t checkLayout(uint32_t struct_id, const char* storage_class_str, if (element_size > array_stride) { return fail(memberIdx) << "contains an array with stride " << array_stride - << ", but with an element size of " << element_size; + << ", but with an element size of " << element_size << extra(); } } nextValidOffset = offset + size; @@ -801,32 +848,35 @@ spv_result_t CheckDecorationsOfEntryPoints(ValidationState_t& vstate) { if (storage_class == spv::StorageClass::TaskPayloadWorkgroupEXT) { if (has_task_payload) { return vstate.diag(SPV_ERROR_INVALID_ID, var_instr) - << "There can be at most one OpVariable with storage " + << "There can be at most one " + "OpVariable with storage " "class TaskPayloadWorkgroupEXT associated with " "an OpEntryPoint"; } has_task_payload = true; } - } - if (vstate.version() >= SPV_SPIRV_VERSION_WORD(1, 4)) { + // Starting in 1.4, OpEntryPoint must list all global variables // it statically uses and those interfaces must be unique. if (storage_class == spv::StorageClass::Function) { return vstate.diag(SPV_ERROR_INVALID_ID, var_instr) - << "OpEntryPoint interfaces should only list global " + << "In SPIR-V 1.4 or later, OpEntryPoint interfaces should " + "only list global " "variables"; } if (!seen_vars.insert(var_instr).second) { return vstate.diag(SPV_ERROR_INVALID_ID, var_instr) - << "Non-unique OpEntryPoint interface " + << "In SPIR-V 1.4 or later, non-unique OpEntryPoint " + "interface " << vstate.getIdName(interface) << " is disallowed"; } } else { if (storage_class != spv::StorageClass::Input && storage_class != spv::StorageClass::Output) { return vstate.diag(SPV_ERROR_INVALID_ID, var_instr) - << "OpEntryPoint interfaces must be OpVariables with " + << "In SPIR-V 1.3 or earlier, OpEntryPoint interfaces must " + "be OpVariables with " "Storage Class of Input(1) or Output(3). Found Storage " "Class " << uint32_t(storage_class) << " for Entry Point id " @@ -1129,6 +1179,56 @@ void ComputeMemberConstraintsForArray(MemberConstraints* constraints, } } +spv_result_t CheckDecorationsOfVariables(ValidationState_t& vstate) { + if (!spvIsVulkanEnv(vstate.context()->target_env)) { + return SPV_SUCCESS; + } + for (const auto& inst : vstate.ordered_instructions()) { + if ((spv::Op::OpVariable == inst.opcode()) || + (spv::Op::OpUntypedVariableKHR == inst.opcode())) { + const auto var_id = inst.id(); + const auto storageClass = inst.GetOperandAs(2); + const bool uniform = storageClass == spv::StorageClass::Uniform; + const bool uniform_constant = + storageClass == spv::StorageClass::UniformConstant; + const bool storage_buffer = + storageClass == spv::StorageClass::StorageBuffer; + + const char* sc_str = uniform ? "Uniform" + : uniform_constant ? "UniformConstant" + : "StorageBuffer"; + // Check variables in the UniformConstant, StorageBuffer, and Uniform + // storage classes are decorated with DescriptorSet and Binding + // (VUID-06677). + if (uniform_constant || storage_buffer || uniform) { + // Skip validation if the variable is not used and we're looking + // at a module coming from HLSL that has not been legalized yet. + if (vstate.options()->before_hlsl_legalization && + vstate.EntryPointReferences(var_id).empty()) { + continue; + } + if (!hasDecoration(var_id, spv::Decoration::DescriptorSet, vstate)) { + return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) + << vstate.VkErrorID(6677) << sc_str << " id '" << var_id + << "' is missing DescriptorSet decoration.\n" + << "From Vulkan spec:\n" + << "These variables must have DescriptorSet and Binding " + "decorations specified"; + } + if (!hasDecoration(var_id, spv::Decoration::Binding, vstate)) { + return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) + << vstate.VkErrorID(6677) << sc_str << " id '" << var_id + << "' is missing Binding decoration.\n" + << "From Vulkan spec:\n" + << "These variables must have DescriptorSet and Binding " + "decorations specified"; + } + } + } + } + return SPV_SUCCESS; +} + spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { // Set of entry points that are known to use a push constant. std::unordered_set uses_push_constant; @@ -1148,8 +1248,6 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { const auto storageClassVal = words[3]; const auto storageClass = spv::StorageClass(storageClassVal); const bool uniform = storageClass == spv::StorageClass::Uniform; - const bool uniform_constant = - storageClass == spv::StorageClass::UniformConstant; const bool push_constant = storageClass == spv::StorageClass::PushConstant; const bool storage_buffer = @@ -1172,29 +1270,6 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { } } } - // Vulkan: Check DescriptorSet and Binding decoration for - // UniformConstant which cannot be a struct. - if (uniform_constant) { - auto entry_points = vstate.EntryPointReferences(var_id); - if (!entry_points.empty() && - !hasDecoration(var_id, spv::Decoration::DescriptorSet, vstate)) { - return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) - << vstate.VkErrorID(6677) << "UniformConstant id '" << var_id - << "' is missing DescriptorSet decoration.\n" - << "From Vulkan spec:\n" - << "These variables must have DescriptorSet and Binding " - "decorations specified"; - } - if (!entry_points.empty() && - !hasDecoration(var_id, spv::Decoration::Binding, vstate)) { - return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) - << vstate.VkErrorID(6677) << "UniformConstant id '" << var_id - << "' is missing Binding decoration.\n" - << "From Vulkan spec:\n" - << "These variables must have DescriptorSet and Binding " - "decorations specified"; - } - } } if (spvIsOpenGLEnv(vstate.context()->target_env)) { @@ -1207,8 +1282,8 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { if (!entry_points.empty() && !hasDecoration(var_id, spv::Decoration::Binding, vstate)) { return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) - << (uniform ? "Uniform" : "Storage Buffer") << " id '" - << var_id << "' is missing Binding decoration.\n" + << getStorageClassString(storageClass) << " id '" << var_id + << "' is missing Binding decoration.\n" << "From ARB_gl_spirv extension:\n" << "Uniform and shader storage block variables must " << "also be decorated with a *Binding*."; @@ -1243,12 +1318,6 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { ComputeMemberConstraintsForStruct(&constraints, id, LayoutConstraints(), vstate); } - // Prepare for messages - const char* sc_str = - uniform - ? "Uniform" - : (push_constant ? "PushConstant" - : (workgroup ? "Workgroup" : "StorageBuffer")); if (spvIsVulkanEnv(vstate.context()->target_env)) { const bool block = hasDecoration(id, spv::Decoration::Block, vstate); @@ -1286,30 +1355,6 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { << "Such variables must be identified with a Block or " "BufferBlock decoration"; } - // Vulkan: Check DescriptorSet and Binding decoration for - // Uniform and StorageBuffer variables. - if (uniform || storage_buffer) { - auto entry_points = vstate.EntryPointReferences(var_id); - if (!entry_points.empty() && - !hasDecoration(var_id, spv::Decoration::DescriptorSet, - vstate)) { - return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) - << vstate.VkErrorID(6677) << sc_str << " id '" << var_id - << "' is missing DescriptorSet decoration.\n" - << "From Vulkan spec:\n" - << "These variables must have DescriptorSet and Binding " - "decorations specified"; - } - if (!entry_points.empty() && - !hasDecoration(var_id, spv::Decoration::Binding, vstate)) { - return vstate.diag(SPV_ERROR_INVALID_ID, vstate.FindDef(var_id)) - << vstate.VkErrorID(6677) << sc_str << " id '" << var_id - << "' is missing Binding decoration.\n" - << "From Vulkan spec:\n" - << "These variables must have DescriptorSet and Binding " - "decorations specified"; - } - } } if (id != 0) { @@ -1386,14 +1431,14 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { if (spvIsVulkanEnv(vstate.context()->target_env)) { if (blockRules && (SPV_SUCCESS != - (recursive_status = checkLayout(id, sc_str, deco_str, true, - scalar_block_layout, 0, - constraints, vstate)))) { + (recursive_status = checkLayout( + id, storageClass, deco_str, true, scalar_block_layout, + 0, constraints, vstate)))) { return recursive_status; } else if (bufferRules && (SPV_SUCCESS != (recursive_status = checkLayout( - id, sc_str, deco_str, false, - scalar_block_layout, 0, + id, storageClass, deco_str, + false, scalar_block_layout, 0, constraints, vstate)))) { return recursive_status; } @@ -1413,9 +1458,9 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { ComputeMemberConstraintsForStruct(&constraints, pointee_type_id, LayoutConstraints(), vstate); } - if (auto res = checkLayout(pointee_type_id, "PhysicalStorageBuffer", - "Block", !buffer, scalar_block_layout, 0, - constraints, vstate)) { + if (auto res = checkLayout( + pointee_type_id, spv::StorageClass::PhysicalStorageBuffer, + "Block", !buffer, scalar_block_layout, 0, constraints, vstate)) { return res; } } else if (vstate.HasCapability(spv::Capability::UntypedPointersKHR) && @@ -1464,14 +1509,6 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { const auto sc = vstate.FindDef(ptr_ty_id)->GetOperandAs(1); - const char* sc_str = - sc == spv::StorageClass::Uniform - ? "Uniform" - : (sc == spv::StorageClass::PushConstant - ? "PushConstant" - : (sc == spv::StorageClass::Workgroup ? "Workgroup" - : "StorageBuffer")); - auto data_type = vstate.FindDef(data_type_id); scalar_block_layout = sc == spv::StorageClass::Workgroup @@ -1511,7 +1548,7 @@ spv_result_t CheckDecorationsOfBuffers(ValidationState_t& vstate) { ? (sc == spv::StorageClass::Uniform ? "BufferBlock" : "Block") : "Block"; if (auto result = - checkLayout(data_type_id, sc_str, deco_str, !bufferRules, + checkLayout(data_type_id, sc, deco_str, !bufferRules, scalar_block_layout, 0, constraints, vstate)) { return result; } @@ -1732,14 +1769,19 @@ spv_result_t CheckFPRoundingModeForShaders(ValidationState_t& vstate, return SPV_SUCCESS; } -// Returns SPV_SUCCESS if validation rules are satisfied for the NonWritable +// Returns SPV_SUCCESS if validation rules are satisfied for the NonReadable or +// NonWritable // decoration. Otherwise emits a diagnostic and returns something other than // SPV_SUCCESS. The |inst| parameter is the object being decorated. This must // be called after TypePass and AnnotateCheckDecorationsOfBuffers are called. -spv_result_t CheckNonWritableDecoration(ValidationState_t& vstate, - const Instruction& inst, - const Decoration& decoration) { +spv_result_t CheckNonReadableWritableDecorations(ValidationState_t& vstate, + const Instruction& inst, + const Decoration& decoration) { assert(inst.id() && "Parser ensures the target of the decoration has an ID"); + const bool is_non_writable = + decoration.dec_type() == spv::Decoration::NonWritable; + assert(is_non_writable || + decoration.dec_type() == spv::Decoration::NonReadable); if (decoration.struct_member_index() == Decoration::kInvalidMember) { // The target must be a memory object declaration. @@ -1751,7 +1793,10 @@ spv_result_t CheckNonWritableDecoration(ValidationState_t& vstate, opcode != spv::Op::OpFunctionParameter && opcode != spv::Op::OpRawAccessChainNV) { return vstate.diag(SPV_ERROR_INVALID_ID, &inst) - << "Target of NonWritable decoration must be a memory object " + << "Target of " + << (is_non_writable ? "NonWritable" : "NonReadable") + << " decoration must be a " + "memory object " "declaration (a variable or a function parameter)"; } const auto var_storage_class = @@ -1762,7 +1807,8 @@ spv_result_t CheckNonWritableDecoration(ValidationState_t& vstate, : spv::StorageClass::Max; if ((var_storage_class == spv::StorageClass::Function || var_storage_class == spv::StorageClass::Private) && - vstate.features().nonwritable_var_in_function_or_private) { + vstate.features().nonwritable_var_in_function_or_private && + is_non_writable) { // New permitted feature in SPIR-V 1.4. } else if (var_storage_class == spv::StorageClass::TileAttachmentQCOM) { } else if ( @@ -1770,12 +1816,18 @@ spv_result_t CheckNonWritableDecoration(ValidationState_t& vstate, vstate.IsPointerToUniformBlock(type_id) || vstate.IsPointerToStorageBuffer(type_id) || vstate.IsPointerToStorageImage(type_id) || + vstate.IsPointerToTensor(type_id) || opcode == spv::Op::OpRawAccessChainNV) { } else { return vstate.diag(SPV_ERROR_INVALID_ID, &inst) - << "Target of NonWritable decoration is invalid: must point to a " - "storage image, uniform block, " - << (vstate.features().nonwritable_var_in_function_or_private + << "Target of " + << (is_non_writable ? "NonWritable" : "NonReadable") + << " decoration is invalid: " + "must point to a " + "storage image, tensor variable in UniformConstant storage " + "class, uniform block, " + << (vstate.features().nonwritable_var_in_function_or_private && + is_non_writable ? "storage buffer, or variable in Private or Function " "storage class" : "or storage buffer"); @@ -2063,8 +2115,10 @@ spv_result_t CheckDecorationsFromDecoration(ValidationState_t& vstate) { PASS_OR_BAIL( CheckFPRoundingModeForShaders(vstate, *inst, decoration)); break; + case spv::Decoration::NonReadable: case spv::Decoration::NonWritable: - PASS_OR_BAIL(CheckNonWritableDecoration(vstate, *inst, decoration)); + PASS_OR_BAIL( + CheckNonReadableWritableDecorations(vstate, *inst, decoration)); break; case spv::Decoration::Uniform: case spv::Decoration::UniformId: @@ -2298,6 +2352,7 @@ spv_result_t ValidateDecorations(ValidationState_t& vstate) { if (auto error = CheckImportedVariableInitialization(vstate)) return error; if (auto error = CheckDecorationsOfEntryPoints(vstate)) return error; if (auto error = CheckDecorationsOfBuffers(vstate)) return error; + if (auto error = CheckDecorationsOfVariables(vstate)) return error; if (auto error = CheckDecorationsCompatibility(vstate)) return error; if (auto error = CheckLinkageAttrOfFunctions(vstate)) return error; if (auto error = CheckVulkanMemoryModelDeprecatedDecorations(vstate)) diff --git a/3rdparty/spirv-tools/source/val/validate_extensions.cpp b/3rdparty/spirv-tools/source/val/validate_extensions.cpp index 58aaf5272..5cb3642b7 100644 --- a/3rdparty/spirv-tools/source/val/validate_extensions.cpp +++ b/3rdparty/spirv-tools/source/val/validate_extensions.cpp @@ -1052,7 +1052,9 @@ bool IsDebugVariableWithIntScalarType(ValidationState_t& _, spv_result_t ValidateExtension(ValidationState_t& _, const Instruction* inst) { std::string extension = GetExtensionString(&(inst->c_inst())); if (_.version() < SPV_SPIRV_VERSION_WORD(1, 3)) { - if (extension == ExtensionToString(kSPV_KHR_vulkan_memory_model)) { + if (extension == ExtensionToString(kSPV_KHR_vulkan_memory_model) || + extension == + ExtensionToString(kSPV_QCOM_cooperative_matrix_conversion)) { return _.diag(SPV_ERROR_WRONG_VERSION, inst) << extension << " extension requires SPIR-V version 1.3 or later."; } @@ -1064,7 +1066,9 @@ spv_result_t ValidateExtension(ValidationState_t& _, const Instruction* inst) { extension == ExtensionToString(kSPV_NV_shader_invocation_reorder) || extension == ExtensionToString(kSPV_NV_cluster_acceleration_structure) || - extension == ExtensionToString(kSPV_NV_linear_swept_spheres)) { + extension == ExtensionToString(kSPV_NV_linear_swept_spheres) || + extension == ExtensionToString(kSPV_QCOM_image_processing) || + extension == ExtensionToString(kSPV_QCOM_image_processing2)) { return _.diag(SPV_ERROR_WRONG_VERSION, inst) << extension << " extension requires SPIR-V version 1.4 or later."; } @@ -1081,8 +1085,10 @@ spv_result_t ValidateExtInstImport(ValidationState_t& _, const std::string name = inst->GetOperandAs(name_id); if (name.find("NonSemantic.") == 0) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "NonSemantic extended instruction sets cannot be declared " - "without SPV_KHR_non_semantic_info."; + << "NonSemantic extended instruction " + "sets cannot be declared " + "without SPV_KHR_non_semantic_info. (This can also be fixed " + "having SPIR-V 1.6 or later)"; } } diff --git a/3rdparty/spirv-tools/source/val/validate_function.cpp b/3rdparty/spirv-tools/source/val/validate_function.cpp index b08c5b4da..265cbbdc3 100644 --- a/3rdparty/spirv-tools/source/val/validate_function.cpp +++ b/3rdparty/spirv-tools/source/val/validate_function.cpp @@ -89,7 +89,10 @@ spv_result_t ValidateFunction(ValidationState_t& _, const Instruction* inst) { spv::Op::OpName, spv::Op::OpCooperativeMatrixPerElementOpNV, spv::Op::OpCooperativeMatrixReduceNV, - spv::Op::OpCooperativeMatrixLoadTensorNV}; + spv::Op::OpCooperativeMatrixLoadTensorNV, + spv::Op::OpConditionalEntryPointINTEL, + }; + for (auto& pair : inst->uses()) { const auto* use = pair.first; if (std::find(acceptable.begin(), acceptable.end(), use->opcode()) == @@ -109,11 +112,6 @@ spv_result_t ValidateFunctionParameter(ValidationState_t& _, // NOTE: Find OpFunction & ensure OpFunctionParameter is not out of place. size_t param_index = 0; size_t inst_num = inst->LineNum() - 1; - if (inst_num == 0) { - return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) - << "Function parameter cannot be the first instruction."; - } - auto func_inst = &_.ordered_instructions()[inst_num]; while (--inst_num) { func_inst = &_.ordered_instructions()[inst_num]; diff --git a/3rdparty/spirv-tools/source/val/validate_graph.cpp b/3rdparty/spirv-tools/source/val/validate_graph.cpp new file mode 100644 index 000000000..09d53ead9 --- /dev/null +++ b/3rdparty/spirv-tools/source/val/validate_graph.cpp @@ -0,0 +1,547 @@ +// Copyright (c) 2023-2025 Arm Ltd. +// +// 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. + +// Validates correctness of graph instructions. + +#include + +#include "source/opcode.h" +#include "source/val/validate.h" +#include "source/val/validation_state.h" + +namespace spvtools { +namespace val { +namespace { + +bool IsTensorArray(ValidationState_t& _, uint32_t id) { + auto def = _.FindDef(id); + if (!def || (def->opcode() != spv::Op::OpTypeArray && + def->opcode() != spv::Op::OpTypeRuntimeArray)) { + return false; + } + auto tdef = _.FindDef(def->word(2)); + if (!tdef || tdef->opcode() != spv::Op::OpTypeTensorARM) { + return false; + } + return true; +} + +bool IsGraphInterfaceType(ValidationState_t& _, uint32_t id) { + return _.IsTensorType(id) || IsTensorArray(_, id); +} + +bool IsGraph(ValidationState_t& _, uint32_t id) { + auto def = _.FindDef(id); + if (!def || def->opcode() != spv::Op::OpGraphARM) { + return false; + } + return true; +} + +bool IsGraphType(ValidationState_t& _, uint32_t id) { + auto def = _.FindDef(id); + if (!def || def->opcode() != spv::Op::OpTypeGraphARM) { + return false; + } + return true; +} + +const uint32_t kGraphTypeIOStartWord = 3; + +uint32_t GraphTypeInstNumIO(const Instruction* inst) { + return static_cast(inst->words().size()) - kGraphTypeIOStartWord; +} + +uint32_t GraphTypeInstNumInputs(const Instruction* inst) { + return inst->word(2); +} + +uint32_t GraphTypeInstNumOutputs(const Instruction* inst) { + return GraphTypeInstNumIO(inst) - GraphTypeInstNumInputs(inst); +} + +uint32_t GraphTypeInstGetOutputAtIndex(const Instruction* inst, + uint64_t index) { + return inst->word(kGraphTypeIOStartWord + GraphTypeInstNumInputs(inst) + + static_cast(index)); +} + +uint32_t GraphTypeInstGetInputAtIndex(const Instruction* inst, uint64_t index) { + return inst->word(kGraphTypeIOStartWord + static_cast(index)); +} + +spv_result_t ValidateGraphType(ValidationState_t& _, const Instruction* inst) { + // Check there are at least NumInputs types + uint32_t NumInputs = GraphTypeInstNumInputs(inst); + size_t NumIOTypes = GraphTypeInstNumIO(inst); + if (NumIOTypes < NumInputs) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << NumIOTypes << " I/O types were provided but the graph has " + << NumInputs << " inputs."; + } + + // Check there is at least one output + if (NumIOTypes == NumInputs) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "A graph type must have at least one output."; + } + + // Check all I/O types are graph interface type + for (unsigned i = kGraphTypeIOStartWord; i < inst->words().size(); i++) { + auto tid = inst->word(i); + if (!IsGraphInterfaceType(_, tid)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "I/O type " << _.getIdName(tid) + << " is not a Graph Interface Type."; + } + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateGraphConstant(ValidationState_t& _, + const Instruction* inst) { + // Check Result Type + if (!_.IsTensorType(inst->type_id())) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " must have a Result Type that is a tensor type."; + } + + // Check the instruction is not preceded by another OpGraphConstantARM with + // the same ID + const uint32_t cst_id = inst->word(3); + size_t inst_num = inst->LineNum() - 1; + while (--inst_num) { + auto prev_inst = &_.ordered_instructions()[inst_num]; + if (prev_inst->opcode() == spv::Op::OpGraphConstantARM) { + const uint32_t prev_cst_id = prev_inst->word(3); + if (prev_cst_id == cst_id) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "No two OpGraphConstantARM instructions may have the same " + "GraphConstantID"; + } + } + } + return SPV_SUCCESS; +} + +spv_result_t ValidateGraphEntryPoint(ValidationState_t& _, + const Instruction* inst) { + // Graph must be an OpGraphARM + uint32_t graph = inst->GetOperandAs(0); + auto graph_inst = _.FindDef(graph); + if (!IsGraph(_, graph)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " Graph must be a OpGraphARM but found " + << spvOpcodeString(graph_inst->opcode()) << "."; + } + + // Check number of Interface IDs matches number of I/Os of graph + auto graph_type_inst = _.FindDef(graph_inst->type_id()); + size_t graph_type_num_io = GraphTypeInstNumIO(graph_type_inst); + size_t graph_entry_point_num_interface_id = inst->operands().size() - 2; + if (graph_type_inst->opcode() != spv::Op::OpTypeGraphARM) { + // This is invalid but we want ValidateGraph to report a clear error + // so stop validating the graph entry point instruction + return SPV_SUCCESS; + } + if (graph_type_num_io != graph_entry_point_num_interface_id) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) << " Interface list contains " + << graph_entry_point_num_interface_id << " IDs but Graph's type " + << _.getIdName(graph_inst->type_id()) << " has " << graph_type_num_io + << " inputs and outputs."; + } + + // Check Interface IDs + for (uint32_t i = 2; i < inst->operands().size(); i++) { + uint32_t interface_id = inst->GetOperandAs(i); + auto interface_inst = _.FindDef(interface_id); + + // Check interface IDs come from OpVariable + if ((interface_inst->opcode() != spv::Op::OpVariable) || + (interface_inst->GetOperandAs(2) != + spv::StorageClass::UniformConstant)) { + return _.diag(SPV_ERROR_INVALID_DATA, interface_inst) + << spvOpcodeString(inst->opcode()) << " Interface ID " + << _.getIdName(interface_id) + << " must come from OpVariable with UniformConstant Storage " + "Class."; + } + + // Check type of interface variable matches type of the corresponding graph + // I/O + uint32_t corresponding_graph_io_type = + graph_type_inst->GetOperandAs(i); + + uint32_t interface_ptr_type = interface_inst->type_id(); + auto interface_ptr_inst = _.FindDef(interface_ptr_type); + auto interface_pointee_type = interface_ptr_inst->GetOperandAs(2); + if (interface_pointee_type != corresponding_graph_io_type) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) << " Interface ID type " + << _.getIdName(interface_pointee_type) + << " must match the type of the corresponding graph I/O " + << _.getIdName(corresponding_graph_io_type); + } + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateGraph(ValidationState_t& _, const Instruction* inst) { + // Result Type must be an OpTypeGraphARM + if (!IsGraphType(_, inst->type_id())) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " Result Type must be an OpTypeGraphARM."; + } + + return SPV_SUCCESS; +} + +spv_result_t ValidateGraphInput(ValidationState_t& _, const Instruction* inst) { + // Check type of InputIndex + auto input_index_inst = _.FindDef(inst->GetOperandAs(2)); + if (!input_index_inst || + !_.IsIntScalarType(input_index_inst->type_id(), 32)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " InputIndex must be a 32-bit integer."; + } + + bool has_element_index = inst->operands().size() > 3; + + // Check type of ElementIndex + if (has_element_index) { + auto element_index_inst = _.FindDef(inst->GetOperandAs(3)); + if (!element_index_inst || + !_.IsIntScalarType(element_index_inst->type_id(), 32)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " ElementIndex must be a 32-bit integer."; + } + } + + // Find graph definition + size_t inst_num = inst->LineNum() - 1; + auto graph_inst = &_.ordered_instructions()[inst_num]; + while (--inst_num) { + graph_inst = &_.ordered_instructions()[inst_num]; + if (graph_inst->opcode() == spv::Op::OpGraphARM) { + break; + } + } + + // Can the InputIndex be evaluated? + // If not, there's nothing more we can validate here. + uint64_t input_index; + if (!_.EvalConstantValUint64(inst->GetOperandAs(2), &input_index)) { + return SPV_SUCCESS; + } + + auto const graph_type_inst = _.FindDef(graph_inst->type_id()); + size_t graph_type_num_inputs = graph_type_inst->GetOperandAs(1); + + // Check InputIndex is in range + if (input_index >= graph_type_num_inputs) { + std::string disassembly = _.Disassemble(*inst); + return _.diag(SPV_ERROR_INVALID_DATA, nullptr) + << "Type " << _.getIdName(graph_type_inst->id()) << " for graph " + << _.getIdName(graph_inst->id()) << " has " << graph_type_num_inputs + << " inputs but found an OpGraphInputARM instruction with an " + "InputIndex that is " + << input_index << ": " << disassembly; + } + + uint32_t graph_type_input_type = + GraphTypeInstGetInputAtIndex(graph_type_inst, input_index); + + if (has_element_index) { + // Check ElementIndex is allowed + if (!IsTensorArray(_, graph_type_input_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "OpGraphInputARM ElementIndex not allowed when the graph input " + "selected by " + << "InputIndex is not an OpTypeArray or OpTypeRuntimeArray"; + } + + // Check ElementIndex is in range if it can be evaluated and the input is a + // fixed-sized array whose Length can be evaluated + uint64_t element_index; + if (_.IsArrayType(graph_type_input_type) && + _.EvalConstantValUint64(inst->GetOperandAs(3), + &element_index)) { + uint64_t array_length; + auto graph_type_input_type_inst = _.FindDef(graph_type_input_type); + if (_.EvalConstantValUint64( + graph_type_input_type_inst->GetOperandAs(2), + &array_length)) { + if (element_index >= array_length) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "OpGraphInputARM ElementIndex out of range. The type of " + "the graph input being accessed " + << _.getIdName(graph_type_input_type) << " is an array of " + << array_length << " elements but " << "ElementIndex is " + << element_index; + } + } + } + } + + // Check result type matches with graph type + if (has_element_index) { + uint32_t expected_type = _.GetComponentType(graph_type_input_type); + if (inst->type_id() != expected_type) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Result Type " << _.getIdName(inst->type_id()) + << " of graph input instruction " << _.getIdName(inst->id()) + << " does not match the component type " + << _.getIdName(expected_type) << " of input " << input_index + << " in the graph type."; + } + } else { + if (inst->type_id() != graph_type_input_type) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Result Type " << _.getIdName(inst->type_id()) + << " of graph input instruction " << _.getIdName(inst->id()) + << " does not match the type " + << _.getIdName(graph_type_input_type) << " of input " + << input_index << " in the graph type."; + } + } + return SPV_SUCCESS; +} + +spv_result_t ValidateGraphSetOutput(ValidationState_t& _, + const Instruction* inst) { + // Check type of OutputIndex + auto output_index_inst = _.FindDef(inst->GetOperandAs(1)); + if (!output_index_inst || + !_.IsIntScalarType(output_index_inst->type_id(), 32)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " OutputIndex must be a 32-bit integer."; + } + + bool has_element_index = inst->operands().size() > 2; + + // Check type of ElementIndex + if (has_element_index) { + auto element_index_inst = _.FindDef(inst->GetOperandAs(2)); + if (!element_index_inst || + !_.IsIntScalarType(element_index_inst->type_id(), 32)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) + << " ElementIndex must be a 32-bit integer."; + } + } + + // Find graph definition + size_t inst_num = inst->LineNum() - 1; + auto graph_inst = &_.ordered_instructions()[inst_num]; + while (--inst_num) { + graph_inst = &_.ordered_instructions()[inst_num]; + if (graph_inst->opcode() == spv::Op::OpGraphARM) { + break; + } + } + + // Can the OutputIndex be evaluated? + // If not, there's nothing more we can validate here. + uint64_t output_index; + if (!_.EvalConstantValUint64(inst->GetOperandAs(1), + &output_index)) { + return SPV_SUCCESS; + } + + // Check that the OutputIndex is valid with respect to the graph type + auto graph_type_inst = _.FindDef(graph_inst->type_id()); + size_t graph_type_num_outputs = GraphTypeInstNumOutputs(graph_type_inst); + + if (output_index >= graph_type_num_outputs) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(inst->opcode()) << " setting OutputIndex " + << output_index << " but graph only has " << graph_type_num_outputs + << " outputs."; + } + + uint32_t graph_type_output_type = + GraphTypeInstGetOutputAtIndex(graph_type_inst, output_index); + + if (has_element_index) { + // Check ElementIndex is allowed + if (!IsTensorArray(_, graph_type_output_type)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "OpGraphSetOutputARM ElementIndex not allowed when the graph " + "output selected by " + << "OutputIndex is not an OpTypeArray or OpTypeRuntimeArray"; + } + + // Check ElementIndex is in range if it can be evaluated and the output is a + // fixed-sized array whose Length can be evaluated + uint64_t element_index; + if (_.IsArrayType(graph_type_output_type) && + _.EvalConstantValUint64(inst->GetOperandAs(2), + &element_index)) { + uint64_t array_length; + auto graph_type_output_type_inst = _.FindDef(graph_type_output_type); + if (_.EvalConstantValUint64( + graph_type_output_type_inst->GetOperandAs(2), + &array_length)) { + if (element_index >= array_length) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "OpGraphSetOutputARM ElementIndex out of range. The type " + "of the graph output being accessed " + << _.getIdName(graph_type_output_type) << " is an array of " + << array_length << " elements but " << "ElementIndex is " + << element_index; + } + } + } + } + + // Check Value's type matches with graph type + uint32_t value = inst->GetOperandAs(0); + uint32_t value_type = _.FindDef(value)->type_id(); + if (has_element_index) { + uint32_t expected_type = _.GetComponentType(graph_type_output_type); + if (value_type != expected_type) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "The type " << _.getIdName(value_type) + << " of Value provided to the graph output instruction " + << _.getIdName(value) << " does not match the component type " + << _.getIdName(expected_type) << " of output " << output_index + << " in the graph type."; + } + } else { + if (value_type != graph_type_output_type) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "The type " << _.getIdName(value_type) + << " of Value provided to the graph output instruction " + << _.getIdName(value) << " does not match the type " + << _.getIdName(graph_type_output_type) << " of output " + << output_index << " in the graph type."; + } + } + return SPV_SUCCESS; +} + +bool InputOutputInstructionsHaveDuplicateIndices( + ValidationState_t& _, std::deque& inout_insts, + const Instruction** first_dup) { + std::set> inout_element_indices; + for (auto const inst : inout_insts) { + const bool is_input = inst->opcode() == spv::Op::OpGraphInputARM; + bool has_element_index = inst->operands().size() > (is_input ? 3 : 2); + uint64_t inout_index; + if (!_.EvalConstantValUint64(inst->GetOperandAs(is_input ? 2 : 1), + &inout_index)) { + continue; + } + uint64_t element_index = -1; // -1 means no ElementIndex + if (has_element_index) { + if (!_.EvalConstantValUint64( + inst->GetOperandAs(is_input ? 3 : 2), &element_index)) { + continue; + } + } + auto inout_element_pair = std::make_pair(inout_index, element_index); + auto inout_noelement_pair = std::make_pair(inout_index, -1); + if (inout_element_indices.count(inout_element_pair) || + inout_element_indices.count(inout_noelement_pair)) { + *first_dup = inst; + return true; + } + inout_element_indices.insert(inout_element_pair); + } + return false; +} + +spv_result_t ValidateGraphEnd(ValidationState_t& _, const Instruction* inst) { + size_t end_inst_num = inst->LineNum() - 1; + + // Gather OpGraphInputARM and OpGraphSetOutputARM instructions + std::deque graph_inputs, graph_outputs; + size_t in_inst_num = end_inst_num; + auto graph_inst = &_.ordered_instructions()[in_inst_num]; + while (--in_inst_num) { + graph_inst = &_.ordered_instructions()[in_inst_num]; + if (graph_inst->opcode() == spv::Op::OpGraphInputARM) { + graph_inputs.push_front(graph_inst); + continue; + } + if (graph_inst->opcode() == spv::Op::OpGraphSetOutputARM) { + graph_outputs.push_front(graph_inst); + continue; + } + if (graph_inst->opcode() == spv::Op::OpGraphARM) { + break; + } + } + + const Instruction* first_dup; + + // Check that there are no duplicate InputIndex and ElementIndex values + if (InputOutputInstructionsHaveDuplicateIndices(_, graph_inputs, + &first_dup)) { + return _.diag(SPV_ERROR_INVALID_DATA, first_dup) + << "Two OpGraphInputARM instructions with the same InputIndex " + "must not be part of the same " + << "graph definition unless ElementIndex is present in both with " + "different values."; + } + + // Check that there are no duplicate OutputIndex and ElementIndex values + if (InputOutputInstructionsHaveDuplicateIndices(_, graph_outputs, + &first_dup)) { + return _.diag(SPV_ERROR_INVALID_DATA, first_dup) + << "Two OpGraphSetOutputARM instructions with the same " + "OutputIndex must not be part of the same " + << "graph definition unless ElementIndex is present in both with " + "different values."; + } + + return SPV_SUCCESS; +} + +} // namespace + +// Validates correctness of graph instructions. +spv_result_t GraphPass(ValidationState_t& _, const Instruction* inst) { + switch (inst->opcode()) { + case spv::Op::OpTypeGraphARM: + return ValidateGraphType(_, inst); + case spv::Op::OpGraphConstantARM: + return ValidateGraphConstant(_, inst); + case spv::Op::OpGraphEntryPointARM: + return ValidateGraphEntryPoint(_, inst); + case spv::Op::OpGraphARM: + return ValidateGraph(_, inst); + case spv::Op::OpGraphInputARM: + return ValidateGraphInput(_, inst); + case spv::Op::OpGraphSetOutputARM: + return ValidateGraphSetOutput(_, inst); + case spv::Op::OpGraphEndARM: + return ValidateGraphEnd(_, inst); + default: + break; + } + return SPV_SUCCESS; +} + +} // namespace val +} // namespace spvtools diff --git a/3rdparty/spirv-tools/source/val/validate_id.cpp b/3rdparty/spirv-tools/source/val/validate_id.cpp index 00be150cb..f43e98275 100644 --- a/3rdparty/spirv-tools/source/val/validate_id.cpp +++ b/3rdparty/spirv-tools/source/val/validate_id.cpp @@ -115,6 +115,57 @@ spv_result_t CheckIdDefinitionDominateUse(ValidationState_t& _) { return SPV_SUCCESS; } +bool InstructionCanHaveTypeOperand(const Instruction* inst) { + static std::unordered_set instruction_allow_set{ + spv::Op::OpSizeOf, + spv::Op::OpCooperativeMatrixLengthNV, + spv::Op::OpCooperativeMatrixLengthKHR, + spv::Op::OpUntypedArrayLengthKHR, + spv::Op::OpFunction, + spv::Op::OpAsmINTEL, + }; + const auto opcode = inst->opcode(); + bool type_instruction = spvOpcodeGeneratesType(opcode); + bool debug_instruction = spvOpcodeIsDebug(opcode) || inst->IsDebugInfo(); + bool coop_matrix_spec_constant_op_length = + (opcode == spv::Op::OpSpecConstantOp) && + (spv::Op(inst->word(3)) == spv::Op::OpCooperativeMatrixLengthNV || + spv::Op(inst->word(3)) == spv::Op::OpCooperativeMatrixLengthKHR); + return type_instruction || debug_instruction || inst->IsNonSemantic() || + spvOpcodeIsDecoration(opcode) || instruction_allow_set.count(opcode) || + spvOpcodeGeneratesUntypedPointer(opcode) || + coop_matrix_spec_constant_op_length; +} + +bool InstructionRequiresTypeOperand(const Instruction* inst) { + static std::unordered_set instruction_deny_set{ + spv::Op::OpExtInst, + spv::Op::OpExtInstWithForwardRefsKHR, + spv::Op::OpExtInstImport, + spv::Op::OpSelectionMerge, + spv::Op::OpLoopMerge, + spv::Op::OpFunction, + spv::Op::OpSizeOf, + spv::Op::OpCooperativeMatrixLengthNV, + spv::Op::OpCooperativeMatrixLengthKHR, + spv::Op::OpPhi, + spv::Op::OpUntypedArrayLengthKHR, + spv::Op::OpAsmINTEL, + }; + const auto opcode = inst->opcode(); + bool debug_instruction = spvOpcodeIsDebug(opcode) || inst->IsDebugInfo(); + bool coop_matrix_spec_constant_op_length = + opcode == spv::Op::OpSpecConstantOp && + (spv::Op(inst->word(3)) == spv::Op::OpCooperativeMatrixLengthNV || + spv::Op(inst->word(3)) == spv::Op::OpCooperativeMatrixLengthKHR); + + return !debug_instruction && !inst->IsNonSemantic() && + !spvOpcodeIsDecoration(opcode) && !spvOpcodeIsBranch(opcode) && + !instruction_deny_set.count(opcode) && + !spvOpcodeGeneratesUntypedPointer(opcode) && + !coop_matrix_spec_constant_op_length; +} + // Performs SSA validation on the IDs of an instruction. The // can_have_forward_declared_ids functor should return true if the // instruction operand's ID can be forward referenced. @@ -158,44 +209,14 @@ spv_result_t IdPass(ValidationState_t& _, Instruction* inst) { case SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID: case SPV_OPERAND_TYPE_SCOPE_ID: if (const auto def = _.FindDef(operand_word)) { - const auto opcode = inst->opcode(); if (spvOpcodeGeneratesType(def->opcode()) && - !spvOpcodeGeneratesType(opcode) && !spvOpcodeIsDebug(opcode) && - !inst->IsDebugInfo() && !inst->IsNonSemantic() && - !spvOpcodeIsDecoration(opcode) && opcode != spv::Op::OpFunction && - opcode != spv::Op::OpSizeOf && - opcode != spv::Op::OpCooperativeMatrixLengthNV && - opcode != spv::Op::OpCooperativeMatrixLengthKHR && - !spvOpcodeGeneratesUntypedPointer(opcode) && - opcode != spv::Op::OpUntypedArrayLengthKHR && - !(opcode == spv::Op::OpSpecConstantOp && - (spv::Op(inst->word(3)) == - spv::Op::OpCooperativeMatrixLengthNV || - spv::Op(inst->word(3)) == - spv::Op::OpCooperativeMatrixLengthKHR))) { + !InstructionCanHaveTypeOperand(inst)) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "Operand " << _.getIdName(operand_word) << " cannot be a type"; - } else if (def->type_id() == 0 && !spvOpcodeGeneratesType(opcode) && - !spvOpcodeIsDebug(opcode) && !inst->IsDebugInfo() && - !inst->IsNonSemantic() && !spvOpcodeIsDecoration(opcode) && - !spvOpcodeIsBranch(opcode) && opcode != spv::Op::OpPhi && - opcode != spv::Op::OpExtInst && - opcode != spv::Op::OpExtInstWithForwardRefsKHR && - opcode != spv::Op::OpExtInstImport && - opcode != spv::Op::OpSelectionMerge && - opcode != spv::Op::OpLoopMerge && - opcode != spv::Op::OpFunction && - opcode != spv::Op::OpSizeOf && - opcode != spv::Op::OpCooperativeMatrixLengthNV && - opcode != spv::Op::OpCooperativeMatrixLengthKHR && - !spvOpcodeGeneratesUntypedPointer(opcode) && - opcode != spv::Op::OpUntypedArrayLengthKHR && - !(opcode == spv::Op::OpSpecConstantOp && - (spv::Op(inst->word(3)) == - spv::Op::OpCooperativeMatrixLengthNV || - spv::Op(inst->word(3)) == - spv::Op::OpCooperativeMatrixLengthKHR))) { + } else if (def->type_id() == 0 && + !spvOpcodeGeneratesType(def->opcode()) && + InstructionRequiresTypeOperand(inst)) { return _.diag(SPV_ERROR_INVALID_ID, inst) << "Operand " << _.getIdName(operand_word) << " requires a type"; diff --git a/3rdparty/spirv-tools/source/val/validate_image.cpp b/3rdparty/spirv-tools/source/val/validate_image.cpp index a5f91f7f7..58f22f2ab 100644 --- a/3rdparty/spirv-tools/source/val/validate_image.cpp +++ b/3rdparty/spirv-tools/source/val/validate_image.cpp @@ -464,7 +464,9 @@ spv_result_t ValidateImageOperands(ValidationState_t& _, return _.diag(SPV_ERROR_INVALID_DATA, inst) << _.VkErrorID(10213) << "Image Operand Offset can only be used with " - "OpImage*Gather operations"; + "OpImage*Gather operations." + << _.MissingFeature("maintenance8 feature", + "--allow-offset-texture-operand", false); } } } diff --git a/3rdparty/spirv-tools/source/val/validate_instruction.cpp b/3rdparty/spirv-tools/source/val/validate_instruction.cpp index 655408d09..26273afe7 100644 --- a/3rdparty/spirv-tools/source/val/validate_instruction.cpp +++ b/3rdparty/spirv-tools/source/val/validate_instruction.cpp @@ -195,7 +195,8 @@ spv_result_t CheckRequiredCapabilities(ValidationState_t& state, // registers a capability with the module *before* checking capabilities. // So in the case of an OpCapability instruction, don't bother checking // enablement by another capability. - if (inst->opcode() != spv::Op::OpCapability) { + if (inst->opcode() != spv::Op::OpCapability && + inst->opcode() != spv::Op::OpConditionalCapabilityINTEL) { const bool enabled_by_cap = state.HasAnyOfCapabilities(enabling_capabilities); if (!enabling_capabilities.empty() && !enabled_by_cap) { @@ -461,10 +462,13 @@ spv_result_t CheckIfKnownExtension(ValidationState_t& _, spv_result_t InstructionPass(ValidationState_t& _, const Instruction* inst) { const spv::Op opcode = inst->opcode(); - if (opcode == spv::Op::OpExtension) { + if (opcode == spv::Op::OpExtension || + opcode == spv::Op::OpConditionalExtensionINTEL) { CheckIfKnownExtension(_, inst); } else if (opcode == spv::Op::OpCapability) { _.RegisterCapability(inst->GetOperandAs(0)); + } else if (opcode == spv::Op::OpConditionalCapabilityINTEL) { + _.RegisterCapability(inst->GetOperandAs(1)); } else if (opcode == spv::Op::OpMemoryModel) { if (_.has_memory_model_specified()) { return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) diff --git a/3rdparty/spirv-tools/source/val/validate_interfaces.cpp b/3rdparty/spirv-tools/source/val/validate_interfaces.cpp index fcb5e3269..b80c7d85e 100644 --- a/3rdparty/spirv-tools/source/val/validate_interfaces.cpp +++ b/3rdparty/spirv-tools/source/val/validate_interfaces.cpp @@ -166,20 +166,17 @@ spv_result_t NumConsumedLocations(ValidationState_t& _, const Instruction* type, } break; case spv::Op::OpTypeMatrix: - // Matrices consume locations equivalent to arrays. - if (auto error = NumConsumedLocations( - _, _.FindDef(type->GetOperandAs(1)), num_locations)) { - return error; - } + // Matrices consume locations equal to the underlying vector type for + // each column. + NumConsumedLocations(_, _.FindDef(type->GetOperandAs(1)), + num_locations); *num_locations *= type->GetOperandAs(2); break; case spv::Op::OpTypeArray: { // Arrays consume locations equal to the underlying type times the number // of elements in the vector. - if (auto error = NumConsumedLocations( - _, _.FindDef(type->GetOperandAs(1)), num_locations)) { - return error; - } + NumConsumedLocations(_, _.FindDef(type->GetOperandAs(1)), + num_locations); bool is_int = false; bool is_const = false; uint32_t value = 0; @@ -249,31 +246,10 @@ uint32_t NumConsumedComponents(ValidationState_t& _, const Instruction* type) { NumConsumedComponents(_, _.FindDef(type->GetOperandAs(1))); num_components *= type->GetOperandAs(2); break; - case spv::Op::OpTypeMatrix: - // Matrices consume all components of the location. - // Round up to next multiple of 4. - num_components = - NumConsumedComponents(_, _.FindDef(type->GetOperandAs(1))); - num_components *= type->GetOperandAs(2); - num_components = ((num_components + 3) / 4) * 4; - break; - case spv::Op::OpTypeArray: { - // Arrays consume all components of the location. - // Round up to next multiple of 4. - num_components = - NumConsumedComponents(_, _.FindDef(type->GetOperandAs(1))); - - bool is_int = false; - bool is_const = false; - uint32_t value = 0; - // Attempt to evaluate the number of array elements. - std::tie(is_int, is_const, value) = - _.EvalInt32IfConst(type->GetOperandAs(2)); - if (is_int && is_const) num_components *= value; - - num_components = ((num_components + 3) / 4) * 4; - return num_components; - } + case spv::Op::OpTypeArray: + // Skip the array. + return NumConsumedComponents(_, + _.FindDef(type->GetOperandAs(1))); case spv::Op::OpTypePointer: if (_.addressing_model() == spv::AddressingModel::PhysicalStorageBuffer64 && @@ -356,10 +332,9 @@ spv_result_t GetLocationsForVariable( } } - // Vulkan 15.1.3 (Interface Matching): Tessellation control and mesh - // per-vertex outputs and tessellation control, evaluation and geometry - // per-vertex inputs have a layer of arraying that is not included in - // interface matching. + // Vulkan 14.1.3: Tessellation control and mesh per-vertex outputs and + // tessellation control, evaluation and geometry per-vertex inputs have a + // layer of arraying that is not included in interface matching. bool is_arrayed = false; switch (entry_point->GetOperandAs(0)) { case spv::ExecutionModel::TessellationControl: @@ -413,33 +388,51 @@ spv_result_t GetLocationsForVariable( const std::string storage_class = is_output ? "output" : "input"; if (has_location) { + auto sub_type = type; + bool is_int = false; + bool is_const = false; + uint32_t array_size = 1; + // If the variable is still arrayed, mark the locations/components per + // index. + if (type->opcode() == spv::Op::OpTypeArray) { + // Determine the array size if possible and get the element type. + std::tie(is_int, is_const, array_size) = + _.EvalInt32IfConst(type->GetOperandAs(2)); + if (!is_int || !is_const) array_size = 1; + auto sub_type_id = type->GetOperandAs(1); + sub_type = _.FindDef(sub_type_id); + } + uint32_t num_locations = 0; - if (auto error = NumConsumedLocations(_, type, &num_locations)) + if (auto error = NumConsumedLocations(_, sub_type, &num_locations)) return error; - uint32_t num_components = NumConsumedComponents(_, type); + uint32_t num_components = NumConsumedComponents(_, sub_type); - uint32_t start = location * 4; - uint32_t end = (location + num_locations) * 4; - if (num_components % 4 != 0) { - start += component; - end = start + num_components; - } + for (uint32_t array_idx = 0; array_idx < array_size; ++array_idx) { + uint32_t array_location = location + (num_locations * array_idx); + uint32_t start = array_location * 4; + if (kMaxLocations <= start) { + // Too many locations, give up. + break; + } - if (kMaxLocations <= start) { - // Too many locations, give up. - return SPV_SUCCESS; - } + uint32_t end = (array_location + num_locations) * 4; + if (num_components != 0) { + start += component; + end = array_location * 4 + component + num_components; + } - auto locs = locations; - if (has_index && index == 1) locs = output_index1_locations; + auto locs = locations; + if (has_index && index == 1) locs = output_index1_locations; - for (uint32_t i = start; i < end; ++i) { - if (!locs->insert(i).second) { - return _.diag(SPV_ERROR_INVALID_DATA, entry_point) - << (is_output ? _.VkErrorID(8722) : _.VkErrorID(8721)) - << "Entry-point has conflicting " << storage_class - << " location assignment at location " << i / 4 << ", component " - << i % 4; + for (uint32_t i = start; i < end; ++i) { + if (!locs->insert(i).second) { + return _.diag(SPV_ERROR_INVALID_DATA, entry_point) + << (is_output ? _.VkErrorID(8722) : _.VkErrorID(8721)) + << "Entry-point has conflicting " << storage_class + << " location assignment at location " << i / 4 + << ", component " << i % 4; + } } } } else { @@ -498,19 +491,38 @@ spv_result_t GetLocationsForVariable( continue; } - uint32_t end = (location + num_locations) * 4; - if (num_components % 4 != 0) { - start += component; - end = location * 4 + component + num_components; - } - - for (uint32_t l = start; l < end; ++l) { - if (!locations->insert(l).second) { - return _.diag(SPV_ERROR_INVALID_DATA, entry_point) - << (is_output ? _.VkErrorID(8722) : _.VkErrorID(8721)) - << "Entry-point has conflicting " << storage_class - << " location assignment at location " << l / 4 - << ", component " << l % 4; + if (member->opcode() == spv::Op::OpTypeArray && num_components >= 1 && + num_components < 4) { + // When an array has an element that takes less than a location in + // size, calculate the used locations in a strided manner. + for (uint32_t l = location; l < num_locations + location; ++l) { + for (uint32_t c = component; c < component + num_components; ++c) { + uint32_t check = 4 * l + c; + if (!locations->insert(check).second) { + return _.diag(SPV_ERROR_INVALID_DATA, entry_point) + << (is_output ? _.VkErrorID(8722) : _.VkErrorID(8721)) + << "Entry-point has conflicting " << storage_class + << " location assignment at location " << l + << ", component " << c; + } + } + } + } else { + // TODO: There is a hole here is the member is an array of 3- or + // 4-element vectors of 64-bit types. + uint32_t end = (location + num_locations) * 4; + if (num_components != 0) { + start += component; + end = location * 4 + component + num_components; + } + for (uint32_t l = start; l < end; ++l) { + if (!locations->insert(l).second) { + return _.diag(SPV_ERROR_INVALID_DATA, entry_point) + << (is_output ? _.VkErrorID(8722) : _.VkErrorID(8721)) + << "Entry-point has conflicting " << storage_class + << " location assignment at location " << l / 4 + << ", component " << l % 4; + } } } } diff --git a/3rdparty/spirv-tools/source/val/validate_invalid_type.cpp b/3rdparty/spirv-tools/source/val/validate_invalid_type.cpp index bc4827ce0..6afc0f810 100644 --- a/3rdparty/spirv-tools/source/val/validate_invalid_type.cpp +++ b/3rdparty/spirv-tools/source/val/validate_invalid_type.cpp @@ -69,12 +69,11 @@ spv_result_t InvalidTypePass(ValidationState_t& _, const Instruction* inst) { case spv::Op::OpGroupNonUniformFMul: case spv::Op::OpGroupNonUniformFMin: { const uint32_t result_type = inst->type_id(); - if (_.IsBfloat16ScalarType(result_type) || - _.IsBfloat16VectorType(result_type)) { + if (_.IsBfloat16Type(result_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support BFloat16 type."; } - if (_.IsFP8ScalarOrVectorType(result_type)) { + if (_.IsFP8Type(result_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support FP8 E4M3/E5M2 types."; @@ -103,12 +102,11 @@ spv_result_t InvalidTypePass(ValidationState_t& _, const Instruction* inst) { case spv::Op::OpIsNormal: case spv::Op::OpSignBitSet: { const uint32_t operand_type = _.GetOperandTypeId(inst, 2); - if (_.IsBfloat16ScalarType(operand_type) || - _.IsBfloat16VectorType(operand_type)) { + if (_.IsBfloat16Type(operand_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support BFloat16 type."; } - if (_.IsFP8ScalarOrVectorType(operand_type)) { + if (_.IsFP8Type(operand_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support FP8 E4M3/E5M2 types."; @@ -118,12 +116,11 @@ spv_result_t InvalidTypePass(ValidationState_t& _, const Instruction* inst) { case spv::Op::OpGroupNonUniformAllEqual: { const auto value_type = _.GetOperandTypeId(inst, 3); - if (_.IsBfloat16ScalarType(value_type) || - _.IsBfloat16VectorType(value_type)) { + if (_.IsBfloat16Type(value_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support BFloat16 type."; } - if (_.IsFP8ScalarOrVectorType(value_type)) { + if (_.IsFP8Type(value_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support FP8 E4M3/E5M2 types."; @@ -140,12 +137,12 @@ spv_result_t InvalidTypePass(ValidationState_t& _, const Instruction* inst) { uint32_t res_component_type = 0; if (_.GetMatrixTypeInfo(result_type, &res_num_rows, &res_num_cols, &res_col_type, &res_component_type)) { - if (_.IsBfloat16ScalarType(res_component_type)) { + if (_.IsBfloat16Type(res_component_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support BFloat16 type."; } - if (_.IsFP8ScalarOrVectorType(res_component_type)) { + if (_.IsFP8Type(res_component_type)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << " doesn't support FP8 E4M3/E5M2 types."; diff --git a/3rdparty/spirv-tools/source/val/validate_layout.cpp b/3rdparty/spirv-tools/source/val/validate_layout.cpp index baf36b89b..dcc4e5bb8 100644 --- a/3rdparty/spirv-tools/source/val/validate_layout.cpp +++ b/3rdparty/spirv-tools/source/val/validate_layout.cpp @@ -342,13 +342,84 @@ spv_result_t FunctionScopedInstructions(ValidationState_t& _, break; } } else { - return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) - << spvOpcodeString(opcode) - << " cannot appear in a function declaration"; + _.ProgressToNextLayoutSectionOrder(); + // All function sections have been processed. Recursively call + // ModuleLayoutPass to process the next section of the module + return ModuleLayoutPass(_, inst); } return SPV_SUCCESS; } +spv_result_t GraphScopedInstructions(ValidationState_t& _, + const Instruction* inst, spv::Op opcode) { + if (_.IsOpcodeInCurrentLayoutSection(opcode)) { + switch (opcode) { + case spv::Op::OpGraphARM: { + if (_.graph_definition_region() > kGraphDefinitionOutside) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << "Cannot define a graph in a graph"; + } + _.SetGraphDefinitionRegion(kGraphDefinitionBegin); + } break; + case spv::Op::OpGraphInputARM: { + if ((_.graph_definition_region() != kGraphDefinitionBegin) && + (_.graph_definition_region() != kGraphDefinitionInputs)) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << "OpGraphInputARM" + << " must immediately follow an OpGraphARM or OpGraphInputARM " + "instruction."; + } + _.SetGraphDefinitionRegion(kGraphDefinitionInputs); + } break; + case spv::Op::OpGraphSetOutputARM: { + if ((_.graph_definition_region() != kGraphDefinitionBegin) && + (_.graph_definition_region() != kGraphDefinitionInputs) && + (_.graph_definition_region() != kGraphDefinitionBody) && + (_.graph_definition_region() != kGraphDefinitionOutputs)) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << "Op" << spvOpcodeString(opcode) + << " must immediately precede an OpGraphEndARM or " + "OpGraphSetOutputARM instruction."; + } + _.SetGraphDefinitionRegion(kGraphDefinitionOutputs); + } break; + case spv::Op::OpGraphEndARM: { + if (_.graph_definition_region() != kGraphDefinitionOutputs) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << spvOpcodeString(opcode) + << " must be preceded by at least one OpGraphSetOutputARM " + "instruction"; + } + _.SetGraphDefinitionRegion(kGraphDefinitionOutside); + } break; + case spv::Op::OpGraphEntryPointARM: + if (_.graph_definition_region() != kGraphDefinitionOutside) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << spvOpcodeString(opcode) + << " cannot appear in the definition of a graph"; + } + break; + default: + if (_.graph_definition_region() == kGraphDefinitionOutside) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << "Op" << spvOpcodeString(opcode) + << " must appear in a graph body"; + } + if (_.graph_definition_region() == kGraphDefinitionOutputs) { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << spvOpcodeString(opcode) + << " cannot appear after a graph output instruction"; + } + _.SetGraphDefinitionRegion(kGraphDefinitionBody); + break; + } + } else { + return _.diag(SPV_ERROR_INVALID_LAYOUT, inst) + << "Op" << spvOpcodeString(opcode) + << " cannot appear in the graph definitions section"; + } + return SPV_SUCCESS; +} } // namespace // TODO(umar): Check linkage capabilities for function declarations @@ -379,6 +450,11 @@ spv_result_t ModuleLayoutPass(ValidationState_t& _, const Instruction* inst) { return error; } break; + case kLayoutGraphDefinitions: + if (auto error = GraphScopedInstructions(_, inst, opcode)) { + return error; + } + break; } return SPV_SUCCESS; } diff --git a/3rdparty/spirv-tools/source/val/validate_memory.cpp b/3rdparty/spirv-tools/source/val/validate_memory.cpp index ae7de40d9..7dbd9f99f 100644 --- a/3rdparty/spirv-tools/source/val/validate_memory.cpp +++ b/3rdparty/spirv-tools/source/val/validate_memory.cpp @@ -196,10 +196,10 @@ bool ContainsInvalidBool(ValidationState_t& _, const Instruction* storage, return false; } -std::pair GetStorageClass( - ValidationState_t& _, const Instruction* inst) { - spv::StorageClass dst_sc = spv::StorageClass::Max; - spv::StorageClass src_sc = spv::StorageClass::Max; +std::pair GetPointerTypes(ValidationState_t& _, + const Instruction* inst) { + Instruction* dst_pointer_type = nullptr; + Instruction* src_pointer_type = nullptr; switch (inst->opcode()) { case spv::Op::OpCooperativeMatrixLoadNV: case spv::Op::OpCooperativeMatrixLoadTensorNV: @@ -207,8 +207,7 @@ std::pair GetStorageClass( case spv::Op::OpCooperativeVectorLoadNV: case spv::Op::OpLoad: { auto load_pointer = _.FindDef(inst->GetOperandAs(2)); - auto load_pointer_type = _.FindDef(load_pointer->type_id()); - dst_sc = load_pointer_type->GetOperandAs(1); + dst_pointer_type = _.FindDef(load_pointer->type_id()); break; } case spv::Op::OpCooperativeMatrixStoreNV: @@ -217,25 +216,23 @@ std::pair GetStorageClass( case spv::Op::OpCooperativeVectorStoreNV: case spv::Op::OpStore: { auto store_pointer = _.FindDef(inst->GetOperandAs(0)); - auto store_pointer_type = _.FindDef(store_pointer->type_id()); - dst_sc = store_pointer_type->GetOperandAs(1); + dst_pointer_type = _.FindDef(store_pointer->type_id()); break; } + // Spec: "Matching Storage Class is not required" case spv::Op::OpCopyMemory: case spv::Op::OpCopyMemorySized: { - auto dst = _.FindDef(inst->GetOperandAs(0)); - auto dst_type = _.FindDef(dst->type_id()); - dst_sc = dst_type->GetOperandAs(1); - auto src = _.FindDef(inst->GetOperandAs(1)); - auto src_type = _.FindDef(src->type_id()); - src_sc = src_type->GetOperandAs(1); + auto dst_pointer = _.FindDef(inst->GetOperandAs(0)); + dst_pointer_type = _.FindDef(dst_pointer->type_id()); + auto src_pointer = _.FindDef(inst->GetOperandAs(1)); + src_pointer_type = _.FindDef(src_pointer->type_id()); break; } default: break; } - return std::make_pair(dst_sc, src_sc); + return std::make_pair(dst_pointer_type, src_pointer_type); } // Returns the number of instruction words taken up by a memory access @@ -288,8 +285,17 @@ bool DoesStructContainRTA(const ValidationState_t& _, const Instruction* inst) { spv_result_t CheckMemoryAccess(ValidationState_t& _, const Instruction* inst, uint32_t index) { - spv::StorageClass dst_sc, src_sc; - std::tie(dst_sc, src_sc) = GetStorageClass(_, inst); + Instruction* dst_pointer_type = nullptr; + Instruction* src_pointer_type = nullptr; // only used for OpCopyMemory + std::tie(dst_pointer_type, src_pointer_type) = GetPointerTypes(_, inst); + + const spv::StorageClass dst_sc = + dst_pointer_type ? dst_pointer_type->GetOperandAs(1) + : spv::StorageClass::Max; + const spv::StorageClass src_sc = + src_pointer_type ? src_pointer_type->GetOperandAs(1) + : spv::StorageClass::Max; + if (inst->operands().size() <= index) { // Cases where lack of some operand is invalid if (src_sc == spv::StorageClass::PhysicalStorageBuffer || @@ -390,6 +396,23 @@ spv_result_t CheckMemoryAccess(ValidationState_t& _, const Instruction* inst, << "Memory accesses Aligned operand value " << aligned_value << " is not a power of two."; } + + uint32_t largest_scalar = 0; + if (dst_sc == spv::StorageClass::PhysicalStorageBuffer) { + largest_scalar = + _.GetLargestScalarType(dst_pointer_type->GetOperandAs(2)); + } + if (src_sc == spv::StorageClass::PhysicalStorageBuffer) { + largest_scalar = std::max( + largest_scalar, + _.GetLargestScalarType(src_pointer_type->GetOperandAs(2))); + } + if (aligned_value < largest_scalar) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << _.VkErrorID(6314) << "Memory accesses Aligned operand value " + << aligned_value << " is too small, the largest scalar type is " + << largest_scalar << " bytes."; + } } return SPV_SUCCESS; @@ -435,6 +458,7 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) { } if (spvIsVulkanEnv(_.context()->target_env)) { return _.diag(SPV_ERROR_INVALID_ID, inst) + << _.VkErrorID(11167) << "Vulkan requires that data type be specified"; } } @@ -1555,6 +1579,60 @@ spv_result_t ValidateAccessChain(ValidationState_t& _, return _.diag(SPV_ERROR_INVALID_ID, inst) << "Base type must be a non-pointer type"; } + + const auto ContainsBlock = [&_](const Instruction* type_inst) { + if (type_inst->opcode() == spv::Op::OpTypeStruct) { + if (_.HasDecoration(type_inst->id(), spv::Decoration::Block) || + _.HasDecoration(type_inst->id(), spv::Decoration::BufferBlock)) { + return true; + } + } + return false; + }; + + // Block (and BufferBlock) arrays cannot be reinterpreted via untyped access + // chains. + const bool base_type_block_array = + base_type->opcode() == spv::Op::OpTypeArray && + _.ContainsType(base_type->id(), ContainsBlock, + /* traverse_all_types = */ false); + + const auto base_index = untyped_pointer ? 3 : 2; + const auto base_id = inst->GetOperandAs(base_index); + auto base = _.FindDef(base_id); + // Strictly speaking this misses trivial access chains and function + // parameter chasing, but that would be a significant complication in the + // traversal. + while (base->opcode() == spv::Op::OpCopyObject) { + base = _.FindDef(base->GetOperandAs(2)); + } + const Instruction* base_data_type = nullptr; + if (base->opcode() == spv::Op::OpVariable) { + const auto ptr_type = _.FindDef(base->type_id()); + base_data_type = _.FindDef(ptr_type->GetOperandAs(2)); + } else if (base->opcode() == spv::Op::OpUntypedVariableKHR) { + if (base->operands().size() > 3) { + base_data_type = _.FindDef(base->GetOperandAs(3)); + } + } + + if (base_data_type) { + const bool base_block_array = + base_data_type->opcode() == spv::Op::OpTypeArray && + _.ContainsType(base_data_type->id(), ContainsBlock, + /* traverse_all_types = */ false); + + if (base_type_block_array != base_block_array) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "Both Base Type and Base must be Block or BufferBlock arrays " + "or neither can be"; + } else if (base_type_block_array && base_block_array && + base_type->id() != base_data_type->id()) { + return _.diag(SPV_ERROR_INVALID_ID, inst) + << "If Base or Base Type is a Block or BufferBlock array, the " + "other must also be the same array"; + } + } } // Base must be a pointer, pointing to the base of a composite object. @@ -1845,14 +1923,34 @@ spv_result_t ValidatePtrAccessChain(ValidationState_t& _, const bool untyped_pointer = spvOpcodeGeneratesUntypedPointer(inst->opcode()); - const auto base_id = inst->GetOperandAs(2); - const auto base = _.FindDef(base_id); - const auto base_type = untyped_pointer - ? _.FindDef(inst->GetOperandAs(2)) - : _.FindDef(base->type_id()); + const auto base_idx = untyped_pointer ? 3 : 2; + const auto base = _.FindDef(inst->GetOperandAs(base_idx)); + const auto base_type = _.FindDef(base->type_id()); const auto base_type_storage_class = base_type->GetOperandAs(1); + const auto element_idx = untyped_pointer ? 4 : 3; + const auto element = _.FindDef(inst->GetOperandAs(element_idx)); + const auto element_type = _.FindDef(element->type_id()); + if (!element_type || element_type->opcode() != spv::Op::OpTypeInt) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) << "Element must be an integer"; + } + uint64_t element_val = 0; + if (_.EvalConstantValUint64(element->id(), &element_val)) { + if (element_val != 0) { + const auto interp_type = + untyped_pointer ? _.FindDef(inst->GetOperandAs(2)) + : _.FindDef(base_type->GetOperandAs(2)); + if (interp_type->opcode() == spv::Op::OpTypeStruct && + (_.HasDecoration(interp_type->id(), spv::Decoration::Block) || + _.HasDecoration(interp_type->id(), spv::Decoration::BufferBlock))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "Element must be 0 if the interpretation type is a Block- or " + "BufferBlock-decorated structure"; + } + } + } + if (_.HasCapability(spv::Capability::Shader) && (base_type_storage_class == spv::StorageClass::Uniform || base_type_storage_class == spv::StorageClass::StorageBuffer || diff --git a/3rdparty/spirv-tools/source/val/validate_memory_semantics.cpp b/3rdparty/spirv-tools/source/val/validate_memory_semantics.cpp index d94d37dbf..1cee9f123 100644 --- a/3rdparty/spirv-tools/source/val/validate_memory_semantics.cpp +++ b/3rdparty/spirv-tools/source/val/validate_memory_semantics.cpp @@ -32,6 +32,9 @@ spv_result_t ValidateMemorySemantics(ValidationState_t& _, uint32_t value = 0; std::tie(is_int32, is_const_int32, value) = _.EvalInt32IfConst(id); + const bool is_vulkan = spvIsVulkanEnv(_.context()->target_env) || + _.memory_model() == spv::MemoryModel::VulkanKHR; + if (!is_int32) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) @@ -56,6 +59,21 @@ spv_result_t ValidateMemorySemantics(ValidationState_t& _, return SPV_SUCCESS; } + if (value & uint32_t(spv::MemorySemanticsMask::UniformMemory) && + !_.HasCapability(spv::Capability::Shader)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(opcode) + << ": Memory Semantics UniformMemory requires capability Shader"; + } + + if (value & uint32_t(spv::MemorySemanticsMask::OutputMemoryKHR) && + !_.HasCapability(spv::Capability::VulkanMemoryModel)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(opcode) + << ": Memory Semantics OutputMemoryKHR requires capability " + << "VulkanMemoryModelKHR"; + } + const size_t num_memory_order_set_bits = spvtools::utils::CountSetBits( value & uint32_t(spv::MemorySemanticsMask::Acquire | spv::MemorySemanticsMask::Release | @@ -64,197 +82,207 @@ spv_result_t ValidateMemorySemantics(ValidationState_t& _, if (num_memory_order_set_bits > 1) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": Memory Semantics can have at most one of the following " - "bits set: Acquire, Release, AcquireRelease or " - "SequentiallyConsistent"; + << _.VkErrorID(10865) << spvOpcodeString(opcode) + << ": Memory Semantics must have at most one non-relaxed " + "memory order bit set"; } - if (_.memory_model() == spv::MemoryModel::VulkanKHR && - value & uint32_t(spv::MemorySemanticsMask::SequentiallyConsistent)) { + if (is_vulkan && + (value & uint32_t(spv::MemorySemanticsMask::SequentiallyConsistent))) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "SequentiallyConsistent memory " - "semantics cannot be used with " - "the VulkanKHR memory model."; + << _.VkErrorID(10866) << spvOpcodeString(opcode) + << ": Memory Semantics with SequentiallyConsistent memory order " + "must not be used in the Vulkan API"; } - if (value & uint32_t(spv::MemorySemanticsMask::MakeAvailableKHR) && - !_.HasCapability(spv::Capability::VulkanMemoryModelKHR)) { + if ((opcode == spv::Op::OpAtomicStore || + opcode == spv::Op::OpAtomicFlagClear) && + (value & uint32_t(spv::MemorySemanticsMask::Acquire) || + value & uint32_t(spv::MemorySemanticsMask::AcquireRelease))) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": Memory Semantics MakeAvailableKHR requires capability " - << "VulkanMemoryModelKHR"; + << _.VkErrorID(10867) << spvOpcodeString(opcode) + << ": MemorySemantics must not use Acquire or AcquireRelease " + "memory order with " + << spvOpcodeString(opcode); } - if (value & uint32_t(spv::MemorySemanticsMask::MakeVisibleKHR) && - !_.HasCapability(spv::Capability::VulkanMemoryModelKHR)) { + if (opcode == spv::Op::OpAtomicLoad && + (value & uint32_t(spv::MemorySemanticsMask::Release) || + value & uint32_t(spv::MemorySemanticsMask::AcquireRelease))) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": Memory Semantics MakeVisibleKHR requires capability " - << "VulkanMemoryModelKHR"; + << _.VkErrorID(10868) << spvOpcodeString(opcode) + << ": MemorySemantics must not use Release or AcquireRelease " + "memory order with " + << spvOpcodeString(opcode); } - if (value & uint32_t(spv::MemorySemanticsMask::OutputMemoryKHR) && - !_.HasCapability(spv::Capability::VulkanMemoryModelKHR)) { + // In OpenCL, a relaxed fence has no effect but is not explicitly forbidden + if (is_vulkan && opcode == spv::Op::OpMemoryBarrier && + !num_memory_order_set_bits) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": Memory Semantics OutputMemoryKHR requires capability " - << "VulkanMemoryModelKHR"; + << _.VkErrorID(10869) << spvOpcodeString(opcode) + << ": MemorySemantics must not use Relaxed memory order with " + << spvOpcodeString(opcode); + } + + if (is_vulkan) { + const bool includes_storage_class = + value & uint32_t(spv::MemorySemanticsMask::UniformMemory | + spv::MemorySemanticsMask::WorkgroupMemory | + spv::MemorySemanticsMask::ImageMemory | + spv::MemorySemanticsMask::OutputMemoryKHR); + + if (num_memory_order_set_bits && !includes_storage_class) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << _.VkErrorID(10870) << spvOpcodeString(opcode) + << ": Memory Semantics with a non-relaxed memory order (Acquire, " + "Release, or AcquireRelease) must have at least one " + "Vulkan-supported storage class semantics bit set " + "(UniformMemory, WorkgroupMemory, ImageMemory, or " + "OutputMemory)"; + } + + if (!num_memory_order_set_bits && includes_storage_class) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << _.VkErrorID(10871) << spvOpcodeString(opcode) + << ": Memory Semantics with at least one Vulkan-supported " + "storage class semantics bit set (UniformMemory, " + "WorkgroupMemory, ImageMemory, or OutputMemory) must use " + "a non-relaxed memory order (Acquire, Release, or " + "AcquireRelease)"; + } + } + + if (value & uint32_t(spv::MemorySemanticsMask::MakeAvailableKHR)) { + if (!_.HasCapability(spv::Capability::VulkanMemoryModel)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(opcode) + << ": Memory Semantics MakeAvailableKHR requires capability " + << "VulkanMemoryModelKHR"; + } + if (!(value & uint32_t(spv::MemorySemanticsMask::Release | + spv::MemorySemanticsMask::AcquireRelease))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << _.VkErrorID(10872) << spvOpcodeString(opcode) + << ": Memory Semantics with MakeAvailable bit set must use " + "Release or AcquireRelease memory order"; + } + } + + if (value & uint32_t(spv::MemorySemanticsMask::MakeVisibleKHR)) { + if (!_.HasCapability(spv::Capability::VulkanMemoryModel)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << spvOpcodeString(opcode) + << ": Memory Semantics MakeVisibleKHR requires capability " + << "VulkanMemoryModelKHR"; + } + if (!(value & uint32_t(spv::MemorySemanticsMask::Acquire | + spv::MemorySemanticsMask::AcquireRelease))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << _.VkErrorID(10873) << spvOpcodeString(opcode) + << ": Memory Semantics with MakeVisible bit set must use Acquire " + "or AcquireRelease memory order"; + } } if (value & uint32_t(spv::MemorySemanticsMask::Volatile)) { - if (!_.HasCapability(spv::Capability::VulkanMemoryModelKHR)) { + if (!_.HasCapability(spv::Capability::VulkanMemoryModel)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << spvOpcodeString(opcode) << ": Memory Semantics Volatile requires capability " "VulkanMemoryModelKHR"; } - if (!spvOpcodeIsAtomicOp(inst->opcode())) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Memory Semantics Volatile can only be used with atomic " - "instructions"; + << _.VkErrorID(10874) << spvOpcodeString(opcode) + << ": Memory Semantics with Volatile bit set must not be used " + "with barrier instructions"; } } - if (value & uint32_t(spv::MemorySemanticsMask::UniformMemory) && - !_.HasCapability(spv::Capability::Shader)) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": Memory Semantics UniformMemory requires capability Shader"; - } - - // Checking for spv::Capability::AtomicStorage is intentionally not done here. - // See https://github.com/KhronosGroup/glslang/issues/1618 for the reasoning - // why. - - if (value & uint32_t(spv::MemorySemanticsMask::MakeAvailableKHR | - spv::MemorySemanticsMask::MakeVisibleKHR)) { - const bool includes_storage_class = - value & uint32_t(spv::MemorySemanticsMask::UniformMemory | - spv::MemorySemanticsMask::SubgroupMemory | - spv::MemorySemanticsMask::WorkgroupMemory | - spv::MemorySemanticsMask::CrossWorkgroupMemory | - spv::MemorySemanticsMask::AtomicCounterMemory | - spv::MemorySemanticsMask::ImageMemory | - spv::MemorySemanticsMask::OutputMemoryKHR); - - if (!includes_storage_class) { + if ((opcode == spv::Op::OpAtomicCompareExchange || + opcode == spv::Op::OpAtomicCompareExchangeWeak) && + operand_index == 5) { + if (value & uint32_t(spv::MemorySemanticsMask::Release) || + value & uint32_t(spv::MemorySemanticsMask::AcquireRelease)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": expected Memory Semantics to include a storage class"; + << _.VkErrorID(10875) << spvOpcodeString(opcode) + << " Unequal Memory Semantics must not use Release or " + "AcquireRelease memory order"; } - } - if (value & uint32_t(spv::MemorySemanticsMask::MakeVisibleKHR) && - !(value & uint32_t(spv::MemorySemanticsMask::Acquire | - spv::MemorySemanticsMask::AcquireRelease))) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": MakeVisibleKHR Memory Semantics also requires either Acquire " - "or AcquireRelease Memory Semantics"; - } + bool is_equal_int32 = false; + bool is_equal_const = false; + uint32_t equal_value = 0; + std::tie(is_equal_int32, is_equal_const, equal_value) = + _.EvalInt32IfConst(inst->GetOperandAs(4)); - if (value & uint32_t(spv::MemorySemanticsMask::MakeAvailableKHR) && - !(value & uint32_t(spv::MemorySemanticsMask::Release | - spv::MemorySemanticsMask::AcquireRelease))) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": MakeAvailableKHR Memory Semantics also requires either " - "Release or AcquireRelease Memory Semantics"; - } + const auto equal_mask_seq_cst = + uint32_t(spv::MemorySemanticsMask::SequentiallyConsistent); + const auto equal_mask_acquire = uint32_t( + // Allow EqualMemorySemantics Release with UnequalMemorySemantics + // Acquire, since the C standard doesn't clearly forbid it. + spv::MemorySemanticsMask::SequentiallyConsistent | + spv::MemorySemanticsMask::AcquireRelease | + spv::MemorySemanticsMask::Release | spv::MemorySemanticsMask::Acquire); - if (spvIsVulkanEnv(_.context()->target_env)) { - const bool includes_storage_class = - value & uint32_t(spv::MemorySemanticsMask::UniformMemory | - spv::MemorySemanticsMask::WorkgroupMemory | - spv::MemorySemanticsMask::ImageMemory | - spv::MemorySemanticsMask::OutputMemoryKHR); - - if (opcode == spv::Op::OpMemoryBarrier && !num_memory_order_set_bits) { + if (((value & uint32_t(spv::MemorySemanticsMask::SequentiallyConsistent)) && + !(equal_value & equal_mask_seq_cst)) || + ((value & uint32_t(spv::MemorySemanticsMask::Acquire)) && + !(equal_value & equal_mask_acquire))) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4732) << spvOpcodeString(opcode) - << ": Vulkan specification requires Memory Semantics to have " - "one of the following bits set: Acquire, Release, " - "AcquireRelease or SequentiallyConsistent"; - } else if (opcode != spv::Op::OpMemoryBarrier && - num_memory_order_set_bits) { - // should leave only atomics and control barriers for Vulkan env - bool memory_is_int32 = false, memory_is_const_int32 = false; - uint32_t memory_value = 0; - std::tie(memory_is_int32, memory_is_const_int32, memory_value) = - _.EvalInt32IfConst(memory_scope); - if (memory_is_int32 && - spv::Scope(memory_value) == spv::Scope::Invocation) { + << _.VkErrorID(10876) << spvOpcodeString(opcode) + << " Unequal Memory Semantics must not use a stronger memory " + "order than the corresponding Equal Memory Semantics"; + } + + if (is_vulkan) { + auto storage_class_semantics_mask = + uint32_t(spv::MemorySemanticsMask::UniformMemory | + spv::MemorySemanticsMask::WorkgroupMemory | + spv::MemorySemanticsMask::ImageMemory | + spv::MemorySemanticsMask::OutputMemoryKHR); + + if (value & ~equal_value & storage_class_semantics_mask) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4641) << spvOpcodeString(opcode) - << ": Vulkan specification requires Memory Semantics to be None " - "if used with Invocation Memory Scope"; + << _.VkErrorID(10877) << spvOpcodeString(opcode) + << " Unequal Memory Semantics must not have any " + "Vulkan-supported storage class semantics bit set " + "(UniformMemory, WorkgroupMemory, ImageMemory, or " + "OutputMemory) unless this bit is also set in the " + "corresponding Equal Memory Semantics"; } - } - if (opcode == spv::Op::OpMemoryBarrier && !includes_storage_class) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4733) << spvOpcodeString(opcode) - << ": expected Memory Semantics to include a Vulkan-supported " - "storage class"; - } - - if (opcode == spv::Op::OpControlBarrier && value) { - if (!num_memory_order_set_bits) { + if (value & ~equal_value & + uint32_t(spv::MemorySemanticsMask::MakeVisibleKHR)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(10609) << spvOpcodeString(opcode) - << ": Vulkan specification requires non-zero Memory Semantics " - "to have one of the following bits set: Acquire, Release, " - "AcquireRelease or SequentiallyConsistent"; + << _.VkErrorID(10878) << spvOpcodeString(opcode) + << " Unequal Memory Semantics must not have MakeVisible bit set " + "unless this bit is also set in the corresponding Equal " + "Memory Semantics"; } - if (!includes_storage_class) { + + if ((equal_value & uint32_t(spv::MemorySemanticsMask::Volatile)) ^ + (value & uint32_t(spv::MemorySemanticsMask::Volatile))) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4650) << spvOpcodeString(opcode) - << ": expected Memory Semantics to include a Vulkan-supported " - "storage class if Memory Semantics is not None"; + << _.VkErrorID(10879) << spvOpcodeString(opcode) + << " Unequal Memory Semantics must have Volatile bit set if and " + "only if this bit is also set in the corresponding Equal " + "Memory Semantics"; } } } - if (opcode == spv::Op::OpAtomicFlagClear && - (value & uint32_t(spv::MemorySemanticsMask::Acquire) || - value & uint32_t(spv::MemorySemanticsMask::AcquireRelease))) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Memory Semantics Acquire and AcquireRelease cannot be used " - "with " - << spvOpcodeString(opcode); - } - - if (opcode == spv::Op::OpAtomicCompareExchange && operand_index == 5 && - (value & uint32_t(spv::MemorySemanticsMask::Release) || - value & uint32_t(spv::MemorySemanticsMask::AcquireRelease))) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << spvOpcodeString(opcode) - << ": Memory Semantics Release and AcquireRelease cannot be " - "used " - "for operand Unequal"; - } - - if (spvIsVulkanEnv(_.context()->target_env)) { - if (opcode == spv::Op::OpAtomicLoad && - (value & uint32_t(spv::MemorySemanticsMask::Release) || - value & uint32_t(spv::MemorySemanticsMask::AcquireRelease) || - value & uint32_t(spv::MemorySemanticsMask::SequentiallyConsistent))) { + if (is_vulkan && num_memory_order_set_bits) { + bool memory_is_int32 = false, memory_is_const_int32 = false; + uint32_t memory_value = 0; + std::tie(memory_is_int32, memory_is_const_int32, memory_value) = + _.EvalInt32IfConst(memory_scope); + if (memory_is_int32 && spv::Scope(memory_value) == spv::Scope::Invocation) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4731) - << "Vulkan spec disallows OpAtomicLoad with Memory Semantics " - "Release, AcquireRelease and SequentiallyConsistent"; - } - - if (opcode == spv::Op::OpAtomicStore && - (value & uint32_t(spv::MemorySemanticsMask::Acquire) || - value & uint32_t(spv::MemorySemanticsMask::AcquireRelease) || - value & uint32_t(spv::MemorySemanticsMask::SequentiallyConsistent))) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << _.VkErrorID(4730) - << "Vulkan spec disallows OpAtomicStore with Memory Semantics " - "Acquire, AcquireRelease and SequentiallyConsistent"; + << _.VkErrorID(4641) << spvOpcodeString(opcode) + << ": Vulkan specification requires Memory Semantics to be " + "Relaxed if used with Invocation Memory Scope"; } } diff --git a/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp b/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp index 24b9db9db..0de494363 100644 --- a/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp +++ b/3rdparty/spirv-tools/source/val/validate_mode_setting.cpp @@ -59,20 +59,22 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { } const auto* execution_modes = _.GetExecutionModes(entry_point_id); + auto has_mode = [&execution_modes](spv::ExecutionMode mode) { + return execution_modes && execution_modes->count(mode); + }; + if (_.HasCapability(spv::Capability::Shader)) { switch (execution_model) { case spv::ExecutionModel::Fragment: - if (execution_modes && - execution_modes->count(spv::ExecutionMode::OriginUpperLeft) && - execution_modes->count(spv::ExecutionMode::OriginLowerLeft)) { + if (has_mode(spv::ExecutionMode::OriginUpperLeft) && + has_mode(spv::ExecutionMode::OriginLowerLeft)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "Fragment execution model entry points can only specify " "one of OriginUpperLeft or OriginLowerLeft execution " "modes."; } - if (!execution_modes || - (!execution_modes->count(spv::ExecutionMode::OriginUpperLeft) && - !execution_modes->count(spv::ExecutionMode::OriginLowerLeft))) { + if (!has_mode(spv::ExecutionMode::OriginUpperLeft) && + !has_mode(spv::ExecutionMode::OriginLowerLeft)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "Fragment execution model entry points require either an " "OriginUpperLeft or OriginLowerLeft execution mode."; @@ -285,36 +287,31 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { } } + bool has_workgroup_size = false; + bool has_local_size_id = false; + for (auto& i : _.ordered_instructions()) { + if (i.opcode() == spv::Op::OpFunction) break; + if (i.opcode() == spv::Op::OpDecorate && i.operands().size() > 2) { + if (i.GetOperandAs(1) == spv::Decoration::BuiltIn && + i.GetOperandAs(2) == spv::BuiltIn::WorkgroupSize) { + has_workgroup_size = true; + } + } + if (i.opcode() == spv::Op::OpExecutionModeId) { + if (i.GetOperandAs(1) == + spv::ExecutionMode::LocalSizeId) { + has_local_size_id = true; + } + } + } + if (spvIsVulkanEnv(_.context()->target_env)) { switch (execution_model) { case spv::ExecutionModel::GLCompute: - if (!execution_modes || - !execution_modes->count(spv::ExecutionMode::LocalSize)) { - bool ok = false; - for (auto& i : _.ordered_instructions()) { - if (i.opcode() == spv::Op::OpDecorate) { - if (i.operands().size() > 2) { - if (i.GetOperandAs(1) == - spv::Decoration::BuiltIn && - i.GetOperandAs(2) == - spv::BuiltIn::WorkgroupSize) { - ok = true; - break; - } - } - } - if (i.opcode() == spv::Op::OpExecutionModeId) { - const auto mode = i.GetOperandAs(1); - if (mode == spv::ExecutionMode::LocalSizeId) { - ok = true; - break; - } - } - } + if (!has_mode(spv::ExecutionMode::LocalSize)) { + bool ok = has_workgroup_size || has_local_size_id; if (!ok && _.HasCapability(spv::Capability::TileShadingQCOM)) { - ok = - execution_modes && - execution_modes->count(spv::ExecutionMode::TileShadingRateQCOM); + ok = has_mode(spv::ExecutionMode::TileShadingRateQCOM); } if (!ok) { return _.diag(SPV_ERROR_INVALID_DATA, inst) @@ -332,25 +329,20 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { } if (_.HasCapability(spv::Capability::TileShadingQCOM)) { - if (execution_modes) { - if (execution_modes->count( - spv::ExecutionMode::TileShadingRateQCOM) && - (execution_modes->count(spv::ExecutionMode::LocalSize) || - execution_modes->count(spv::ExecutionMode::LocalSizeId))) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "If the TileShadingRateQCOM execution mode is used, " - << "LocalSize and LocalSizeId must not be specified."; - } - if (execution_modes->count( - spv::ExecutionMode::NonCoherentTileAttachmentReadQCOM)) { - return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "The NonCoherentTileAttachmentQCOM execution mode must " - "not be used in any stage other than fragment."; - } + if (has_mode(spv::ExecutionMode::TileShadingRateQCOM) && + (has_mode(spv::ExecutionMode::LocalSize) || + has_mode(spv::ExecutionMode::LocalSizeId))) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "If the TileShadingRateQCOM execution mode is used, " + << "LocalSize and LocalSizeId must not be specified."; + } + if (has_mode(spv::ExecutionMode::NonCoherentTileAttachmentReadQCOM)) { + return _.diag(SPV_ERROR_INVALID_DATA, inst) + << "The NonCoherentTileAttachmentQCOM execution mode must " + "not be used in any stage other than fragment."; } } else { - if (execution_modes && - execution_modes->count(spv::ExecutionMode::TileShadingRateQCOM)) { + if (has_mode(spv::ExecutionMode::TileShadingRateQCOM)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "If the TileShadingRateQCOM execution mode is used, the " "TileShadingQCOM capability must be enabled."; @@ -358,16 +350,13 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { } break; default: - if (execution_modes && - execution_modes->count(spv::ExecutionMode::TileShadingRateQCOM)) { + if (has_mode(spv::ExecutionMode::TileShadingRateQCOM)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "The TileShadingRateQCOM execution mode must not be used " "in any stage other than compute."; } if (execution_model != spv::ExecutionModel::Fragment) { - if (execution_modes && - execution_modes->count( - spv::ExecutionMode::NonCoherentTileAttachmentReadQCOM)) { + if (has_mode(spv::ExecutionMode::NonCoherentTileAttachmentReadQCOM)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "The NonCoherentTileAttachmentQCOM execution mode must " "not be used in any stage other than fragment."; @@ -378,9 +367,7 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { "any stage other than compute or fragment."; } } else { - if (execution_modes && - execution_modes->count( - spv::ExecutionMode::NonCoherentTileAttachmentReadQCOM)) { + if (has_mode(spv::ExecutionMode::NonCoherentTileAttachmentReadQCOM)) { if (!_.HasCapability(spv::Capability::TileShadingQCOM)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "If the NonCoherentTileAttachmentReadQCOM execution " @@ -393,7 +380,9 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { } } - if (_.EntryPointHasLocalSizeOrId(entry_point_id)) { + // WorkgroupSize decoration takes precedence over any LocalSize or LocalSizeId + // execution mode, so the values can be ignored + if (_.EntryPointHasLocalSizeOrId(entry_point_id) && !has_workgroup_size) { const Instruction* local_size_inst = _.EntryPointLocalSizeOrId(entry_point_id); if (local_size_inst) { @@ -402,7 +391,8 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { const uint32_t operand_y = local_size_inst->GetOperandAs(3); const uint32_t operand_z = local_size_inst->GetOperandAs(4); if (mode == spv::ExecutionMode::LocalSize) { - if ((operand_x * operand_y * operand_z) == 0) { + const uint64_t product_size = operand_x * operand_y * operand_z; + if (product_size == 0) { return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) << "Local Size execution mode must not have a product of zero " "(X " @@ -410,6 +400,32 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { << operand_x << ", Y = " << operand_y << ", Z = " << operand_z << ")."; } + if (has_mode(spv::ExecutionMode::DerivativeGroupQuadsKHR)) { + if (operand_x % 2 != 0 || operand_y % 2 != 0) { + return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) + << _.VkErrorID(10151) + << "Local Size execution mode dimensions is " + "(X = " + << operand_x << ", Y = " << operand_y + << ") but Entry Point id " << entry_point_id + << " also has an DerivativeGroupQuadsKHR execution mode, so " + "both dimensions must be a multiple of 2"; + } + } + if (has_mode(spv::ExecutionMode::DerivativeGroupLinearKHR)) { + if (product_size % 4 != 0) { + return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) + << _.VkErrorID(10152) + << "Local Size execution mode dimensions is (X = " + << operand_x << ", Y = " << operand_y + << ", Z = " << operand_z << ") but Entry Point id " + << entry_point_id + << " also has an DerivativeGroupLinearKHR execution mode, " + "so " + "the product (" + << product_size << ") must be a multiple of 4"; + } + } } else if (mode == spv::ExecutionMode::LocalSizeId) { // can only validate product if static and not spec constant // (This is done for us in EvalConstantValUint64) @@ -417,13 +433,42 @@ spv_result_t ValidateEntryPoint(ValidationState_t& _, const Instruction* inst) { bool static_x = _.EvalConstantValUint64(operand_x, &x_size); bool static_y = _.EvalConstantValUint64(operand_y, &y_size); bool static_z = _.EvalConstantValUint64(operand_z, &z_size); - if (static_x && static_y && static_z && - ((x_size * y_size * z_size) == 0)) { - return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) - << "Local Size Id execution mode must not have a product of " - "zero " - "(X = " - << x_size << ", Y = " << y_size << ", Z = " << z_size << ")."; + if (static_x && static_y && static_z) { + const uint64_t product_size = x_size * y_size * z_size; + if (product_size == 0) { + return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) + << "LocalSizeId execution mode must not have a product of " + "zero " + "(X = " + << x_size << ", Y = " << y_size << ", Z = " << z_size + << ")."; + } + if (has_mode(spv::ExecutionMode::DerivativeGroupQuadsKHR)) { + if (x_size % 2 != 0 || y_size % 2 != 0) { + return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) + << _.VkErrorID(10151) + << "LocalSizeId execution mode dimensions is " + "(X = " + << x_size << ", Y = " << y_size << ") but Entry Point id " + << entry_point_id + << " also has an DerivativeGroupQuadsKHR execution mode, " + "so " + "both dimensions must be a multiple of 2"; + } + } + if (has_mode(spv::ExecutionMode::DerivativeGroupLinearKHR)) { + if (product_size % 4 != 0) { + return _.diag(SPV_ERROR_INVALID_DATA, local_size_inst) + << _.VkErrorID(10152) + << "LocalSizeId execution mode dimensions is (X = " + << x_size << ", Y = " << y_size << ", Z = " << z_size + << ") but Entry Point id " << entry_point_id + << " also has an DerivativeGroupLinearKHR execution mode, " + "so " + "the product (" + << product_size << ") must be a multiple of 4"; + } + } } } } @@ -557,6 +602,7 @@ spv_result_t ValidateExecutionMode(ValidationState_t& _, "Operands that are not id operands."; } + const bool is_vulkan_env = (spvIsVulkanEnv(_.context()->target_env)); const auto* models = _.GetExecutionModels(entry_point_id); switch (mode) { case spv::ExecutionMode::Invocations: @@ -667,7 +713,7 @@ spv_result_t ValidateExecutionMode(ValidationState_t& _, "tessellation execution model."; } } - if (spvIsVulkanEnv(_.context()->target_env)) { + if (is_vulkan_env) { if (_.HasCapability(spv::Capability::MeshShadingEXT) && inst->GetOperandAs(2) == 0) { return _.diag(SPV_ERROR_INVALID_DATA, inst) @@ -690,8 +736,7 @@ spv_result_t ValidateExecutionMode(ValidationState_t& _, "execution " "model."; } - if (mode == spv::ExecutionMode::OutputPrimitivesEXT && - spvIsVulkanEnv(_.context()->target_env)) { + if (mode == spv::ExecutionMode::OutputPrimitivesEXT && is_vulkan_env) { if (_.HasCapability(spv::Capability::MeshShadingEXT) && inst->GetOperandAs(2) == 0) { return _.diag(SPV_ERROR_INVALID_DATA, inst) @@ -761,9 +806,15 @@ spv_result_t ValidateExecutionMode(ValidationState_t& _, break; case spv::ExecutionMode::LocalSize: case spv::ExecutionMode::LocalSizeId: - if (mode == spv::ExecutionMode::LocalSizeId && !_.IsLocalSizeIdAllowed()) + if (mode == spv::ExecutionMode::LocalSizeId && + !_.IsLocalSizeIdAllowed()) { return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "LocalSizeId mode is not allowed by the current environment."; + << "LocalSizeId mode is not allowed by the current environment." + << (is_vulkan_env + ? _.MissingFeature("maintenance4 feature", + "--allow-localsizeid", false) + : ""); + } if (!std::all_of( models->begin(), models->end(), @@ -812,7 +863,7 @@ spv_result_t ValidateExecutionMode(ValidationState_t& _, } } - if (spvIsVulkanEnv(_.context()->target_env)) { + if (is_vulkan_env) { if (mode == spv::ExecutionMode::OriginLowerLeft) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << _.VkErrorID(4653) diff --git a/3rdparty/spirv-tools/source/val/validate_non_uniform.cpp b/3rdparty/spirv-tools/source/val/validate_non_uniform.cpp index fd422a50e..97118658f 100644 --- a/3rdparty/spirv-tools/source/val/validate_non_uniform.cpp +++ b/3rdparty/spirv-tools/source/val/validate_non_uniform.cpp @@ -130,7 +130,7 @@ spv_result_t ValidateGroupNonUniformBroadcastShuffle(ValidationState_t& _, if (!spvOpcodeIsConstant(id_op)) { std::string operand = GetOperandName(inst->opcode()); return _.diag(SPV_ERROR_INVALID_DATA, inst) - << "Before SPIR-V 1.5, " << operand + << "In SPIR-V 1.4 or earlier, " << operand << " must be a constant instruction"; } } diff --git a/3rdparty/spirv-tools/source/val/validate_scopes.cpp b/3rdparty/spirv-tools/source/val/validate_scopes.cpp index 6b493538a..c7ef5f22d 100644 --- a/3rdparty/spirv-tools/source/val/validate_scopes.cpp +++ b/3rdparty/spirv-tools/source/val/validate_scopes.cpp @@ -94,7 +94,7 @@ spv_result_t ValidateExecutionScope(ValidationState_t& _, // Vulkan specific rules if (spvIsVulkanEnv(_.context()->target_env)) { - // Vulkan 1.1 specific rules + // Subgroups were not added until 1.1 if (_.context()->target_env != SPV_ENV_VULKAN_1_0) { // Scope for Non Uniform Group Operations must be limited to Subgroup if ((spvOpcodeIsNonUniformGroupOperation(opcode) && diff --git a/3rdparty/spirv-tools/source/val/validate_tensor.cpp b/3rdparty/spirv-tools/source/val/validate_tensor.cpp index 4906aa2cc..0b5412905 100644 --- a/3rdparty/spirv-tools/source/val/validate_tensor.cpp +++ b/3rdparty/spirv-tools/source/val/validate_tensor.cpp @@ -83,8 +83,7 @@ spv_result_t ValidateTensorRead(ValidationState_t& _, const Instruction* inst) { auto op_coord = inst->word(4); auto inst_coord = _.FindDef(op_coord); auto tensor_rank = GetTensorTypeRank(_, inst_tensor->type_id()); - if (tensor_rank == 0 || - !_.IsIntArrayType(inst_coord->type_id(), tensor_rank)) { + if (!_.IsIntArrayType(inst_coord->type_id(), tensor_rank)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "Expected Coordinates to be an array whose Element Type is an " "integer type and whose Length is equal to the Rank of Tensor."; @@ -143,8 +142,7 @@ spv_result_t ValidateTensorWrite(ValidationState_t& _, auto op_coord = inst->word(2); auto inst_coord = _.FindDef(op_coord); auto tensor_rank = GetTensorTypeRank(_, inst_tensor->type_id()); - if (tensor_rank == 0 || - !_.IsIntArrayType(inst_coord->type_id(), tensor_rank)) { + if (!_.IsIntArrayType(inst_coord->type_id(), tensor_rank)) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "Expected Coordinates to be an array whose Element Type is an " "integer type and whose Length is equal to the Rank of Tensor."; diff --git a/3rdparty/spirv-tools/source/val/validate_type.cpp b/3rdparty/spirv-tools/source/val/validate_type.cpp index 7a3105af3..786a22414 100644 --- a/3rdparty/spirv-tools/source/val/validate_type.cpp +++ b/3rdparty/spirv-tools/source/val/validate_type.cpp @@ -140,7 +140,7 @@ spv_result_t ValidateTypeFloat(ValidationState_t& _, const Instruction* inst) { return _.diag(SPV_ERROR_INVALID_DATA, inst) << "8-bit floating point type requires an encoding."; } - const spvtools::OperandDesc* desc; + const spvtools::OperandDesc* desc = nullptr; const std::set known_encodings{ spv::FPEncoding::Float8E4M3EXT, spv::FPEncoding::Float8E5M2EXT}; spv_result_t status = spvtools::LookupOperand(SPV_OPERAND_TYPE_FPENCODING, @@ -433,10 +433,9 @@ spv_result_t ValidateTypeStruct(ValidationState_t& _, const Instruction* inst) { << "Structure " << _.getIdName(member_type_id) << " contains members with BuiltIn decoration. Therefore this " << "structure may not be contained as a member of another " - << "structure " - << "type. Structure " << _.getIdName(struct_id) - << " contains structure " << _.getIdName(member_type_id) - << "."; + << "structure " << "type. Structure " + << _.getIdName(struct_id) << " contains structure " + << _.getIdName(member_type_id) << "."; } if (spvIsVulkanEnv(_.context()->target_env) && @@ -562,6 +561,9 @@ spv_result_t ValidateTypePointer(ValidationState_t& _, // a storage image. if (sampled == 2) _.RegisterPointerToStorageImage(inst->id()); } + if (type->opcode() == spv::Op::OpTypeTensorARM) { + _.RegisterPointerToTensor(inst->id()); + } } if (!_.IsValidStorageClass(storage_class)) { @@ -614,6 +616,7 @@ spv_result_t ValidateTypeFunction(ValidationState_t& _, for (auto& pair : inst->uses()) { const auto* use = pair.first; if (use->opcode() != spv::Op::OpFunction && + use->opcode() != spv::Op::OpAsmINTEL && !spvOpcodeIsDebug(use->opcode()) && !use->IsNonSemantic() && !spvOpcodeIsDecoration(use->opcode())) { return _.diag(SPV_ERROR_INVALID_ID, use) diff --git a/3rdparty/spirv-tools/source/val/validation_state.cpp b/3rdparty/spirv-tools/source/val/validation_state.cpp index f3028413b..e7d7a0b01 100644 --- a/3rdparty/spirv-tools/source/val/validation_state.cpp +++ b/3rdparty/spirv-tools/source/val/validation_state.cpp @@ -42,14 +42,17 @@ ModuleLayoutSection InstructionLayoutSection( switch (op) { case spv::Op::OpCapability: + case spv::Op::OpConditionalCapabilityINTEL: return kLayoutCapabilities; case spv::Op::OpExtension: + case spv::Op::OpConditionalExtensionINTEL: return kLayoutExtensions; case spv::Op::OpExtInstImport: return kLayoutExtInstImport; case spv::Op::OpMemoryModel: return kLayoutMemoryModel; case spv::Op::OpEntryPoint: + case spv::Op::OpConditionalEntryPointINTEL: return kLayoutEntryPoint; case spv::Op::OpExecutionMode: case spv::Op::OpExecutionModeId: @@ -85,6 +88,9 @@ ModuleLayoutSection InstructionLayoutSection( // spv::Op::OpExtInst is only allowed in types section for certain // extended instruction sets. This will be checked separately. if (current_section == kLayoutTypes) return kLayoutTypes; + // SpvOpExtInst is allowed in graph definitions. + if (current_section == kLayoutGraphDefinitions) + return kLayoutGraphDefinitions; return kLayoutFunctionDefinitions; case spv::Op::OpLine: case spv::Op::OpNoLine: @@ -99,6 +105,16 @@ ModuleLayoutSection InstructionLayoutSection( return kLayoutFunctionDefinitions; case spv::Op::OpSamplerImageAddressingModeNV: return kLayoutSamplerImageAddressMode; + case spv::Op::OpGraphEntryPointARM: + case spv::Op::OpGraphARM: + case spv::Op::OpGraphInputARM: + case spv::Op::OpGraphSetOutputARM: + case spv::Op::OpGraphEndARM: + return kLayoutGraphDefinitions; + case spv::Op::OpCompositeExtract: + if (current_section == kLayoutGraphDefinitions) + return kLayoutGraphDefinitions; + return kLayoutFunctionDefinitions; default: break; } @@ -174,6 +190,7 @@ ValidationState_t::ValidationState_t(const spv_const_context ctx, pointer_size_and_alignment_(0), sampler_image_addressing_mode_(0), in_function_(false), + graph_definition_region_(kGraphDefinitionOutside), num_of_warnings_(0), max_num_of_warnings_(max_warnings) { assert(opt && "Validator options may not be Null."); @@ -362,6 +379,10 @@ bool ValidationState_t::in_block() const { module_functions_.back().current_block() != nullptr; } +GraphDefinitionRegion ValidationState_t::graph_definition_region() const { + return graph_definition_region_; +} + void ValidationState_t::RegisterCapability(spv::Capability cap) { // Avoid redundant work. Otherwise the recursion could induce work // quadrdatic in the capability dependency depth. (Ok, not much, but @@ -532,6 +553,13 @@ spv_result_t ValidationState_t::RegisterFunctionEnd() { return SPV_SUCCESS; } +void ValidationState_t::SetGraphDefinitionRegion(GraphDefinitionRegion region) { + assert((region == kGraphDefinitionOutside && + graph_definition_region_ == kGraphDefinitionOutputs) || + region >= graph_definition_region_); + graph_definition_region_ = region; +} + Instruction* ValidationState_t::AddOrderedInstruction( const spv_parsed_instruction_t* inst) { ordered_instructions_.emplace_back(inst); @@ -875,9 +903,12 @@ uint32_t ValidationState_t::GetComponentType(uint32_t id) const { case spv::Op::OpTypeFloat: case spv::Op::OpTypeInt: case spv::Op::OpTypeBool: + case spv::Op::OpTypePointer: + case spv::Op::OpTypeUntypedPointerKHR: return id; case spv::Op::OpTypeArray: + case spv::Op::OpTypeRuntimeArray: return inst->word(2); case spv::Op::OpTypeVector: @@ -939,11 +970,20 @@ uint32_t ValidationState_t::GetBitWidth(uint32_t id) const { const Instruction* inst = FindDef(component_type_id); assert(inst); - if (inst->opcode() == spv::Op::OpTypeFloat || - inst->opcode() == spv::Op::OpTypeInt) - return inst->word(2); - - if (inst->opcode() == spv::Op::OpTypeBool) return 1; + switch (inst->opcode()) { + case spv::Op::OpTypeFloat: + case spv::Op::OpTypeInt: + return inst->word(2); + case spv::Op::OpTypeBool: + return 1; + case spv::Op::OpTypePointer: + case spv::Op::OpTypeUntypedPointerKHR: + assert(inst->GetOperandAs(1) == + spv::StorageClass::PhysicalStorageBuffer); + return 64; // all pointers to another PSB is 64-bit + default: + break; + } assert(0); return 0; @@ -958,6 +998,23 @@ bool ValidationState_t::IsScalarType(uint32_t id) const { return IsIntScalarType(id) || IsFloatScalarType(id) || IsBoolScalarType(id); } +bool ValidationState_t::IsArrayType(uint32_t id, uint64_t length) const { + const Instruction* inst = FindDef(id); + if (!inst || inst->opcode() != spv::Op::OpTypeArray) { + return false; + } + if (length != 0) { + const auto len_id = inst->GetOperandAs(2); + const auto len = FindDef(len_id); + uint64_t len_value = 0; + if (!len || !spvOpcodeIsConstant(len->opcode()) || + (EvalConstantValUint64(len_id, &len_value) && (length != len_value))) { + return false; + } + } + return true; +} + bool ValidationState_t::IsBfloat16ScalarType(uint32_t id) const { const Instruction* inst = FindDef(id); if (inst && inst->opcode() == spv::Op::OpTypeFloat) { @@ -984,6 +1041,24 @@ bool ValidationState_t::IsBfloat16VectorType(uint32_t id) const { return false; } +bool ValidationState_t::IsBfloat16CoopMatType(uint32_t id) const { + const Instruction* inst = FindDef(id); + if (!inst) { + return false; + } + + if (inst->opcode() == spv::Op::OpTypeCooperativeMatrixKHR) { + return IsBfloat16ScalarType(inst->word(2)); + } + + return false; +} + +bool ValidationState_t::IsBfloat16Type(uint32_t id) const { + return IsBfloat16ScalarType(id) || IsBfloat16VectorType(id) || + IsBfloat16CoopMatType(id); +} + bool ValidationState_t::IsFP8ScalarType(uint32_t id) const { const Instruction* inst = FindDef(id); if (inst && inst->opcode() == spv::Op::OpTypeFloat) { @@ -1011,8 +1086,21 @@ bool ValidationState_t::IsFP8VectorType(uint32_t id) const { return false; } -bool ValidationState_t::IsFP8ScalarOrVectorType(uint32_t id) const { - return IsFP8ScalarType(id) || IsFP8VectorType(id); +bool ValidationState_t::IsFP8CoopMatType(uint32_t id) const { + const Instruction* inst = FindDef(id); + if (!inst) { + return false; + } + + if (inst->opcode() == spv::Op::OpTypeCooperativeMatrixKHR) { + return IsFP8ScalarType(inst->word(2)); + } + + return false; +} + +bool ValidationState_t::IsFP8Type(uint32_t id) const { + return IsFP8ScalarType(id) || IsFP8VectorType(id) || IsFP8CoopMatType(id); } bool ValidationState_t::IsFloatScalarType(uint32_t id) const { @@ -1021,16 +1109,7 @@ bool ValidationState_t::IsFloatScalarType(uint32_t id) const { } bool ValidationState_t::IsFloatArrayType(uint32_t id) const { - const Instruction* inst = FindDef(id); - if (!inst) { - return false; - } - - if (inst->opcode() == spv::Op::OpTypeArray) { - return IsFloatScalarType(GetComponentType(id)); - } - - return false; + return IsArrayType(id) && IsFloatScalarType(GetComponentType(id)); } bool ValidationState_t::IsFloatVectorType(uint32_t id) const { @@ -1077,36 +1156,27 @@ bool ValidationState_t::IsFloatScalarOrVectorType(uint32_t id) const { return false; } -bool ValidationState_t::IsIntScalarType(uint32_t id) const { +bool ValidationState_t::IsIntScalarType(uint32_t id, uint32_t width) const { const Instruction* inst = FindDef(id); - return inst && inst->opcode() == spv::Op::OpTypeInt; + bool is_int = inst && inst->opcode() == spv::Op::OpTypeInt; + if (!is_int) { + return false; + } + if ((width != 0) && (width != inst->word(2))) { + return false; + } + return true; +} + +bool ValidationState_t::IsIntScalarTypeWithSignedness( + uint32_t id, uint32_t signedness) const { + const Instruction* inst = FindDef(id); + return inst && inst->opcode() == spv::Op::OpTypeInt && + inst->word(3) == signedness; } bool ValidationState_t::IsIntArrayType(uint32_t id, uint64_t length) const { - const Instruction* inst = FindDef(id); - if (!inst) { - return false; - } - - if (inst->opcode() != spv::Op::OpTypeArray) { - return false; - } - - if (!IsIntScalarType(GetComponentType(id))) { - return false; - } - - if (length != 0) { - const auto len_id = inst->GetOperandAs(2); - const auto len = FindDef(len_id); - uint64_t len_value = 0; - if (!len || !spvOpcodeIsConstant(len->opcode()) || - (EvalConstantValUint64(len_id, &len_value) && (length != len_value))) { - return false; - } - } - - return true; + return IsArrayType(id, length) && IsIntScalarType(GetComponentType(id)); } bool ValidationState_t::IsIntVectorType(uint32_t id) const { @@ -1140,8 +1210,7 @@ bool ValidationState_t::IsIntScalarOrVectorType(uint32_t id) const { } bool ValidationState_t::IsUnsignedIntScalarType(uint32_t id) const { - const Instruction* inst = FindDef(id); - return inst && inst->opcode() == spv::Op::OpTypeInt && inst->word(3) == 0; + return IsIntScalarTypeWithSignedness(id, 0); } bool ValidationState_t::IsUnsignedIntVectorType(uint32_t id) const { @@ -1312,6 +1381,28 @@ bool ValidationState_t::GetPointerTypeInfo( return true; } +uint32_t ValidationState_t::GetLargestScalarType(uint32_t id) const { + const Instruction* inst = FindDef(id); + + switch (inst->opcode()) { + case spv::Op::OpTypeStruct: { + uint32_t size = 0; + for (uint32_t i = 1; i < inst->operands().size(); ++i) { + const uint32_t member_size = + GetLargestScalarType(inst->GetOperandAs(i)); + size = std::max(size, member_size); + } + return size; + } + case spv::Op::OpTypeArray: + return GetLargestScalarType(inst->GetOperandAs(1)); + case spv::Op::OpTypeVector: + return GetLargestScalarType(inst->GetOperandAs(1)); + default: + return GetBitWidth(id) / 8; + } +} + bool ValidationState_t::IsAccelerationStructureType(uint32_t id) const { const Instruction* inst = FindDef(id); return inst && inst->opcode() == spv::Op::OpTypeAccelerationStructureKHR; @@ -1411,6 +1502,11 @@ bool ValidationState_t::IsUnsignedIntCooperativeVectorNVType( return IsUnsignedIntScalarType(FindDef(id)->word(2)); } +bool ValidationState_t::IsTensorType(uint32_t id) const { + const Instruction* inst = FindDef(id); + return inst && inst->opcode() == spv::Op::OpTypeTensorARM; +} + spv_result_t ValidationState_t::CooperativeMatrixShapesMatch( const Instruction* inst, uint32_t result_type_id, uint32_t m2, bool is_conversion, bool swap_row_col) { @@ -1445,8 +1541,7 @@ spv_result_t ValidationState_t::CooperativeMatrixShapesMatch( if (m1_is_const_int32 && m2_is_const_int32 && m1_value != m2_value) { return diag(SPV_ERROR_INVALID_DATA, inst) - << "Expected scopes of Matrix and Result Type to be " - << "identical"; + << "Expected scopes of Matrix and Result Type to be " << "identical"; } std::tie(m1_is_int32, m1_is_const_int32, m1_value) = @@ -1949,6 +2044,14 @@ bool ValidationState_t::IsValidStorageClass( return true; } +std::string ValidationState_t::MissingFeature(const std::string& feature, + const std::string& cmdline, + bool hint) const { + return "\nThis is " + (hint ? std::string("may be ") : "") + + "allowed if you enable the " + feature + " (or use the " + cmdline + + " command line flag)"; +} + #define VUID_WRAP(vuid) "[" #vuid "] " // Currently no 2 VUID share the same id, so no need for |reference| @@ -2211,6 +2314,8 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-Position-Position-04321); case 4330: return VUID_WRAP(VUID-PrimitiveId-PrimitiveId-04330); + case 4333: + return VUID_WRAP(VUID-PrimitiveId-Fragment-04333); case 4334: return VUID_WRAP(VUID-PrimitiveId-PrimitiveId-04334); case 4336: @@ -2399,10 +2504,6 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-None-04644); case 4645: return VUID_WRAP(VUID-StandaloneSpirv-None-04645); - case 10609: - return VUID_WRAP(VUID-StandaloneSpirv-OpControlBarrier-10609); - case 4650: - return VUID_WRAP(VUID-StandaloneSpirv-OpControlBarrier-04650); case 4651: return VUID_WRAP(VUID-StandaloneSpirv-OpVariable-04651); case 4652: @@ -2469,14 +2570,6 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710); case 4711: return VUID_WRAP(VUID-StandaloneSpirv-OpTypeForwardPointer-04711); - case 4730: - return VUID_WRAP(VUID-StandaloneSpirv-OpAtomicStore-04730); - case 4731: - return VUID_WRAP(VUID-StandaloneSpirv-OpAtomicLoad-04731); - case 4732: - return VUID_WRAP(VUID-StandaloneSpirv-OpMemoryBarrier-04732); - case 4733: - return VUID_WRAP(VUID-StandaloneSpirv-OpMemoryBarrier-04733); case 4734: return VUID_WRAP(VUID-StandaloneSpirv-OpVariable-04734); case 4744: @@ -2485,8 +2578,6 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-OpImage-04777); case 4780: return VUID_WRAP(VUID-StandaloneSpirv-Result-04780); - case 4781: - return VUID_WRAP(VUID-StandaloneSpirv-Base-04781); case 4915: return VUID_WRAP(VUID-StandaloneSpirv-Location-04915); case 4916: @@ -2511,6 +2602,8 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-Flat-06202); case 6214: return VUID_WRAP(VUID-StandaloneSpirv-OpTypeImage-06214); + case 6314: + return VUID_WRAP(VUID-StandaloneSpirv-PhysicalStorageBuffer64-06314); case 6491: return VUID_WRAP(VUID-StandaloneSpirv-DescriptorSet-06491); case 6671: @@ -2621,6 +2714,10 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-OpEntryPoint-09658); case 9659: return VUID_WRAP(VUID-StandaloneSpirv-OpEntryPoint-09659); + case 10151: + return VUID_WRAP(VUID-StandaloneSpirv-DerivativeGroupQuadsKHR-10151); + case 10152: + return VUID_WRAP(VUID-StandaloneSpirv-DerivativeGroupLinearKHR-10152); case 10213: // This use to be a standalone, but maintenance8 will set allow_offset_texture_operand now return VUID_WRAP(VUID-RuntimeSpirv-Offset-10213); @@ -2628,10 +2725,71 @@ std::string ValidationState_t::VkErrorID(uint32_t id, return VUID_WRAP(VUID-StandaloneSpirv-OpTypeFloat-10370); case 10583: return VUID_WRAP(VUID-StandaloneSpirv-Component-10583); + case 10589: + return VUID_WRAP(VUID-CullPrimitiveEXT-CullPrimitiveEXT-10589); + case 10590: + return VUID_WRAP(VUID-CullPrimitiveEXT-CullPrimitiveEXT-10590); + case 10591: + return VUID_WRAP(VUID-CullPrimitiveEXT-CullPrimitiveEXT-10591); + case 10592: + return VUID_WRAP(VUID-Layer-Layer-10592); + case 10593: + return VUID_WRAP(VUID-Layer-Layer-10593); + case 10594: + return VUID_WRAP(VUID-Layer-Layer-10594); + case 10598: + return VUID_WRAP(VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10598); + case 10599: + return VUID_WRAP(VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10599); + case 10600: + return VUID_WRAP(VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10600); + case 10601: + return VUID_WRAP(VUID-ViewportIndex-ViewportIndex-10601); + case 10602: + return VUID_WRAP(VUID-ViewportIndex-ViewportIndex-10602); + case 10603: + return VUID_WRAP(VUID-ViewportIndex-ViewportIndex-10603); case 10684: return VUID_WRAP(VUID-StandaloneSpirv-None-10684); case 10685: return VUID_WRAP(VUID-StandaloneSpirv-None-10685); + 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); + case 10865: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10865); + case 10866: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10866); + case 10867: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10867); + case 10868: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10868); + case 10869: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10869); + case 10870: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10870); + case 10871: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10871); + case 10872: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10872); + case 10873: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10873); + case 10874: + return VUID_WRAP(VUID-StandaloneSpirv-MemorySemantics-10874); + case 10875: + return VUID_WRAP(VUID-StandaloneSpirv-UnequalMemorySemantics-10875); + case 10876: + return VUID_WRAP(VUID-StandaloneSpirv-UnequalMemorySemantics-10876); + case 10877: + return VUID_WRAP(VUID-StandaloneSpirv-UnequalMemorySemantics-10877); + case 10878: + return VUID_WRAP(VUID-StandaloneSpirv-UnequalMemorySemantics-10878); + case 10879: + return VUID_WRAP(VUID-StandaloneSpirv-UnequalMemorySemantics-10879); + case 10880: + return VUID_WRAP(VUID-StandaloneSpirv-TessLevelInner-10880); + case 11167: + return VUID_WRAP(VUID-StandaloneSpirv-OpUntypedVariableKHR-11167); default: return ""; // unknown id } diff --git a/3rdparty/spirv-tools/source/val/validation_state.h b/3rdparty/spirv-tools/source/val/validation_state.h index 366fb8437..7305f26a4 100644 --- a/3rdparty/spirv-tools/source/val/validation_state.h +++ b/3rdparty/spirv-tools/source/val/validation_state.h @@ -50,6 +50,7 @@ enum ModuleLayoutSection { kLayoutExtInstImport, /// < Section 2.4 #3 kLayoutMemoryModel, /// < Section 2.4 #4 kLayoutSamplerImageAddressMode, /// < Section 2.4 #5 + /// (SPV_NV_bindless_texture) kLayoutEntryPoint, /// < Section 2.4 #6 kLayoutExecutionMode, /// < Section 2.4 #7 kLayoutDebug1, /// < Section 2.4 #8 > 1 @@ -58,7 +59,18 @@ enum ModuleLayoutSection { kLayoutAnnotations, /// < Section 2.4 #9 kLayoutTypes, /// < Section 2.4 #10 kLayoutFunctionDeclarations, /// < Section 2.4 #11 - kLayoutFunctionDefinitions /// < Section 2.4 #12 + kLayoutFunctionDefinitions, /// < Section 2.4 #12 + kLayoutGraphDefinitions /// < Section 2.4 #13 (SPV_ARM_graph) +}; + +/// This enum represents the regions of a graph definition. The relative +/// ordering of the values is significant. +enum GraphDefinitionRegion { + kGraphDefinitionOutside, + kGraphDefinitionBegin, + kGraphDefinitionInputs, + kGraphDefinitionBody, + kGraphDefinitionOutputs, }; /// This class manages the state of the SPIR-V validation as it is being parsed. @@ -213,6 +225,9 @@ class ValidationState_t { /// instruction bool in_block() const; + /// Returns the region of a graph definition we are in. + GraphDefinitionRegion graph_definition_region() const; + struct EntryPointDescription { std::string name; std::vector interfaces; @@ -313,6 +328,16 @@ class ValidationState_t { /// ComputeFunctionToEntryPointMapping. void ComputeRecursiveEntryPoints(); + /// Registers |id| as a graph entry point. + void RegisterGraphEntryPoint(const uint32_t id) { + graph_entry_points_.push_back(id); + } + + /// Returns a list of graph entry point graph ids + const std::vector& graph_entry_points() const { + return graph_entry_points_; + } + /// Returns all the entry points that can call |func|. const std::vector& FunctionEntryPoints(uint32_t func) const; @@ -350,6 +375,9 @@ class ValidationState_t { /// Register a function end instruction spv_result_t RegisterFunctionEnd(); + /// Sets the region of a graph definition we're in. + void SetGraphDefinitionRegion(GraphDefinitionRegion region); + /// Returns true if the capability is enabled in the module. bool HasCapability(spv::Capability cap) const { return module_capabilities_.contains(cap); @@ -632,23 +660,26 @@ class ValidationState_t { bool GetStructMemberTypes(uint32_t struct_type_id, std::vector* member_types) const; - // Returns true iff |id| is a type corresponding to the name of the function. + // Returns true if |id| is a type corresponding to the name of the function. // Only works for types not for objects. bool IsVoidType(uint32_t id) const; bool IsScalarType(uint32_t id) const; bool IsBfloat16ScalarType(uint32_t id) const; bool IsBfloat16VectorType(uint32_t id) const; + bool IsBfloat16CoopMatType(uint32_t id) const; + bool IsBfloat16Type(uint32_t id) const; bool IsFP8ScalarType(uint32_t id) const; bool IsFP8VectorType(uint32_t id) const; - bool IsFP8ScalarOrVectorType(uint32_t id) const; + bool IsFP8CoopMatType(uint32_t id) const; + bool IsFP8Type(uint32_t id) const; bool IsFloatScalarType(uint32_t id) const; bool IsFloatArrayType(uint32_t id) const; bool IsFloatVectorType(uint32_t id) const; bool IsFloat16Vector2Or4Type(uint32_t id) const; bool IsFloatScalarOrVectorType(uint32_t id) const; bool IsFloatMatrixType(uint32_t id) const; - bool IsIntScalarType(uint32_t id) const; - bool IsIntArrayType(uint32_t id, uint64_t length = 0) const; + bool IsIntScalarType(uint32_t id, uint32_t width = 0) const; + bool IsIntScalarTypeWithSignedness(uint32_t id, uint32_t signedness) const; bool IsIntVectorType(uint32_t id) const; bool IsIntScalarOrVectorType(uint32_t id) const; bool IsUnsignedIntScalarType(uint32_t id) const; @@ -675,6 +706,36 @@ class ValidationState_t { bool IsFloatCooperativeVectorNVType(uint32_t id) const; bool IsIntCooperativeVectorNVType(uint32_t id) const; bool IsUnsignedIntCooperativeVectorNVType(uint32_t id) const; + bool IsTensorType(uint32_t id) const; + // When |length| is not 0, return true only if the array length is equal to + // |length| and the array length is not defined by a specialization constant. + bool IsArrayType(uint32_t id, uint64_t length = 0) const; + bool IsIntArrayType(uint32_t id, uint64_t length = 0) const; + template + bool IsIntNOrFP32OrFP16(unsigned int type_id) { + return this->ContainsType( + type_id, + [](const Instruction* inst) { + if (inst->opcode() == spv::Op::OpTypeInt) { + return inst->GetOperandAs(1) == N; + } else if (inst->opcode() == spv::Op::OpTypeFloat) { + if (inst->operands().size() > 2) { + // Not IEEE + return false; + } + auto width = inst->GetOperandAs(1); + return width == 32 || width == 16; + } + return false; + }, + /* traverse_all_types = */ false); + } + + // Will walk the type to find the largest scalar value size. + // Returns value is in bytes. + // This is designed to pass in the %type from a PSB pointer + // %ptr = OpTypePointer PhysicalStorageBuffer %type + uint32_t GetLargestScalarType(uint32_t id) const; // Returns true if |id| is a type id that contains |type| (or integer or // floating point type) of |width| bits. @@ -715,6 +776,17 @@ class ValidationState_t { bool GetPointerTypeInfo(uint32_t id, uint32_t* data_type, spv::StorageClass* storage_class) const; + // Returns the value assocated with id via 'value' if id is an OpConstant + template + bool GetConstantValueAs(unsigned int id, T& value) { + const auto inst = FindDef(id); + uint64_t ui64_val = 0u; + bool status = (inst && spvOpcodeIsConstant(inst->opcode()) && + EvalConstantValUint64(id, &ui64_val)); + if (status == true) value = static_cast(ui64_val); + return status; + } + // Is the ID the type of a pointer to a uniform block: Block-decorated struct // in uniform storage class? The result is only valid after internal method // CheckDecorationsOfBuffers has been called. @@ -772,6 +844,16 @@ class ValidationState_t { pointer_to_storage_image_.insert(type_id); } + // Is the ID the type of a pointer to a tensor? That is, the pointee + // type is a tensor type. + bool IsPointerToTensor(uint32_t type_id) const { + return pointer_to_tensor_.find(type_id) != pointer_to_tensor_.cend(); + } + // Save the ID of a pointer to a tensor. + void RegisterPointerToTensor(uint32_t type_id) { + pointer_to_tensor_.insert(type_id); + } + // Tries to evaluate a any scalar integer OpConstant as uint64. // OpConstantNull is defined as zero for scalar int (will return true) // OpSpecConstant* return false since their values cannot be relied upon @@ -844,6 +926,12 @@ class ValidationState_t { // Validates the storage class for the target environment. bool IsValidStorageClass(spv::StorageClass storage_class) const; + // Helps formulate a mesesage to user that setting one of the validator + // options might make their SPIR-V actually valid The |hint| option is because + // some checks are intertwined with each other, so hard to give confirmation + std::string MissingFeature(const std::string& feature, + const std::string& cmdline, bool hint) const; + // Takes a Vulkan Valid Usage ID (VUID) as |id| and optional |reference| and // will return a non-empty string only if ID is known and targeting Vulkan. // VUIDs are found in the Vulkan-Docs repo in the form "[[VUID-ref-ref-id]]" @@ -939,6 +1027,9 @@ class ValidationState_t { /// graph that recurses. std::set recursive_entry_points_; + /// IDs that are graph entry points, ie, arguments to OpGraphEntryPointARM. + std::vector graph_entry_points_; + /// Functions IDs that are target of OpFunctionCall. std::unordered_set function_call_targets_; @@ -981,9 +1072,13 @@ class ValidationState_t { /// bit width of sampler/image type variables. Valid values are 32 and 64 uint32_t sampler_image_addressing_mode_; - /// NOTE: See correspoding getter functions + /// NOTE: See corresponding getter functions bool in_function_; + /// Where in a graph definition we are + /// NOTE: See corresponding getter/setter functions + GraphDefinitionRegion graph_definition_region_; + /// The state of optional features. These are determined by capabilities /// declared by the module and the environment. Feature features_; @@ -1030,6 +1125,9 @@ class ValidationState_t { // The IDs of types of pointers to storage images. This is populated in the // TypePass. std::unordered_set pointer_to_storage_image_; + // The IDs of types of pointers to tensors. This is populated in the + // TypePass. + std::unordered_set pointer_to_tensor_; /// Maps ids to friendly names. std::unique_ptr friendly_mapper_;