Home | History | Annotate | Line # | Download | only in nir
      1 /* Copyright (C) 2018 Red Hat
      2  *
      3  * Permission is hereby granted, free of charge, to any person obtaining a
      4  * copy of this software and associated documentation files (the "Software"),
      5  * to deal in the Software without restriction, including without limitation
      6  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      7  * and/or sell copies of the Software, and to permit persons to whom the
      8  * Software is furnished to do so, subject to the following conditions:
      9  *
     10  * The above copyright notice and this permission notice (including the next
     11  * paragraph) shall be included in all copies or substantial portions of the
     12  * Software.
     13  *
     14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
     20  * IN THE SOFTWARE.
     21  */
     22 
     23 #ifndef _NIR_INTRINSICS_
     24 #define _NIR_INTRINSICS_
     25 
     26 
     27 
     28 typedef enum {
     29    nir_intrinsic_accept_ray_intersection,
     30    nir_intrinsic_addr_mode_is,
     31    nir_intrinsic_alloc_vertices_and_primitives_amd,
     32    nir_intrinsic_atomic_counter_add,
     33    nir_intrinsic_atomic_counter_add_deref,
     34    nir_intrinsic_atomic_counter_and,
     35    nir_intrinsic_atomic_counter_and_deref,
     36    nir_intrinsic_atomic_counter_comp_swap,
     37    nir_intrinsic_atomic_counter_comp_swap_deref,
     38    nir_intrinsic_atomic_counter_exchange,
     39    nir_intrinsic_atomic_counter_exchange_deref,
     40    nir_intrinsic_atomic_counter_inc,
     41    nir_intrinsic_atomic_counter_inc_deref,
     42    nir_intrinsic_atomic_counter_max,
     43    nir_intrinsic_atomic_counter_max_deref,
     44    nir_intrinsic_atomic_counter_min,
     45    nir_intrinsic_atomic_counter_min_deref,
     46    nir_intrinsic_atomic_counter_or,
     47    nir_intrinsic_atomic_counter_or_deref,
     48    nir_intrinsic_atomic_counter_post_dec,
     49    nir_intrinsic_atomic_counter_post_dec_deref,
     50    nir_intrinsic_atomic_counter_pre_dec,
     51    nir_intrinsic_atomic_counter_pre_dec_deref,
     52    nir_intrinsic_atomic_counter_read,
     53    nir_intrinsic_atomic_counter_read_deref,
     54    nir_intrinsic_atomic_counter_xor,
     55    nir_intrinsic_atomic_counter_xor_deref,
     56    nir_intrinsic_ballot,
     57    nir_intrinsic_ballot_bit_count_exclusive,
     58    nir_intrinsic_ballot_bit_count_inclusive,
     59    nir_intrinsic_ballot_bit_count_reduce,
     60    nir_intrinsic_ballot_bitfield_extract,
     61    nir_intrinsic_ballot_find_lsb,
     62    nir_intrinsic_ballot_find_msb,
     63    nir_intrinsic_begin_invocation_interlock,
     64    nir_intrinsic_bindless_image_atomic_add,
     65    nir_intrinsic_bindless_image_atomic_and,
     66    nir_intrinsic_bindless_image_atomic_comp_swap,
     67    nir_intrinsic_bindless_image_atomic_dec_wrap,
     68    nir_intrinsic_bindless_image_atomic_exchange,
     69    nir_intrinsic_bindless_image_atomic_fadd,
     70    nir_intrinsic_bindless_image_atomic_fmax,
     71    nir_intrinsic_bindless_image_atomic_fmin,
     72    nir_intrinsic_bindless_image_atomic_imax,
     73    nir_intrinsic_bindless_image_atomic_imin,
     74    nir_intrinsic_bindless_image_atomic_inc_wrap,
     75    nir_intrinsic_bindless_image_atomic_or,
     76    nir_intrinsic_bindless_image_atomic_umax,
     77    nir_intrinsic_bindless_image_atomic_umin,
     78    nir_intrinsic_bindless_image_atomic_xor,
     79    nir_intrinsic_bindless_image_format,
     80    nir_intrinsic_bindless_image_load,
     81    nir_intrinsic_bindless_image_load_raw_intel,
     82    nir_intrinsic_bindless_image_order,
     83    nir_intrinsic_bindless_image_samples,
     84    nir_intrinsic_bindless_image_size,
     85    nir_intrinsic_bindless_image_sparse_load,
     86    nir_intrinsic_bindless_image_store,
     87    nir_intrinsic_bindless_image_store_raw_intel,
     88    nir_intrinsic_bindless_resource_ir3,
     89    nir_intrinsic_btd_retire_intel,
     90    nir_intrinsic_btd_spawn_intel,
     91    nir_intrinsic_btd_stack_push_intel,
     92    nir_intrinsic_bvh64_intersect_ray_amd,
     93    nir_intrinsic_byte_permute_amd,
     94    nir_intrinsic_cond_end_ir3,
     95    nir_intrinsic_control_barrier,
     96    nir_intrinsic_convert_alu_types,
     97    nir_intrinsic_copy_deref,
     98    nir_intrinsic_demote,
     99    nir_intrinsic_demote_if,
    100    nir_intrinsic_deref_atomic_add,
    101    nir_intrinsic_deref_atomic_and,
    102    nir_intrinsic_deref_atomic_comp_swap,
    103    nir_intrinsic_deref_atomic_exchange,
    104    nir_intrinsic_deref_atomic_fadd,
    105    nir_intrinsic_deref_atomic_fcomp_swap,
    106    nir_intrinsic_deref_atomic_fmax,
    107    nir_intrinsic_deref_atomic_fmin,
    108    nir_intrinsic_deref_atomic_imax,
    109    nir_intrinsic_deref_atomic_imin,
    110    nir_intrinsic_deref_atomic_or,
    111    nir_intrinsic_deref_atomic_umax,
    112    nir_intrinsic_deref_atomic_umin,
    113    nir_intrinsic_deref_atomic_xor,
    114    nir_intrinsic_deref_buffer_array_length,
    115    nir_intrinsic_deref_mode_is,
    116    nir_intrinsic_discard,
    117    nir_intrinsic_discard_if,
    118    nir_intrinsic_elect,
    119    nir_intrinsic_emit_vertex,
    120    nir_intrinsic_emit_vertex_with_counter,
    121    nir_intrinsic_end_invocation_interlock,
    122    nir_intrinsic_end_patch_ir3,
    123    nir_intrinsic_end_primitive,
    124    nir_intrinsic_end_primitive_with_counter,
    125    nir_intrinsic_exclusive_scan,
    126    nir_intrinsic_execute_callable,
    127    nir_intrinsic_export_primitive_amd,
    128    nir_intrinsic_export_vertex_amd,
    129    nir_intrinsic_first_invocation,
    130    nir_intrinsic_gds_atomic_add_amd,
    131    nir_intrinsic_get_ssbo_size,
    132    nir_intrinsic_get_ubo_size,
    133    nir_intrinsic_global_atomic_add,
    134    nir_intrinsic_global_atomic_and,
    135    nir_intrinsic_global_atomic_comp_swap,
    136    nir_intrinsic_global_atomic_exchange,
    137    nir_intrinsic_global_atomic_fadd,
    138    nir_intrinsic_global_atomic_fcomp_swap,
    139    nir_intrinsic_global_atomic_fmax,
    140    nir_intrinsic_global_atomic_fmin,
    141    nir_intrinsic_global_atomic_imax,
    142    nir_intrinsic_global_atomic_imin,
    143    nir_intrinsic_global_atomic_or,
    144    nir_intrinsic_global_atomic_umax,
    145    nir_intrinsic_global_atomic_umin,
    146    nir_intrinsic_global_atomic_xor,
    147    nir_intrinsic_group_memory_barrier,
    148    nir_intrinsic_has_input_primitive_amd,
    149    nir_intrinsic_has_input_vertex_amd,
    150    nir_intrinsic_ignore_ray_intersection,
    151    nir_intrinsic_image_atomic_add,
    152    nir_intrinsic_image_atomic_and,
    153    nir_intrinsic_image_atomic_comp_swap,
    154    nir_intrinsic_image_atomic_dec_wrap,
    155    nir_intrinsic_image_atomic_exchange,
    156    nir_intrinsic_image_atomic_fadd,
    157    nir_intrinsic_image_atomic_fmax,
    158    nir_intrinsic_image_atomic_fmin,
    159    nir_intrinsic_image_atomic_imax,
    160    nir_intrinsic_image_atomic_imin,
    161    nir_intrinsic_image_atomic_inc_wrap,
    162    nir_intrinsic_image_atomic_or,
    163    nir_intrinsic_image_atomic_umax,
    164    nir_intrinsic_image_atomic_umin,
    165    nir_intrinsic_image_atomic_xor,
    166    nir_intrinsic_image_deref_atomic_add,
    167    nir_intrinsic_image_deref_atomic_and,
    168    nir_intrinsic_image_deref_atomic_comp_swap,
    169    nir_intrinsic_image_deref_atomic_dec_wrap,
    170    nir_intrinsic_image_deref_atomic_exchange,
    171    nir_intrinsic_image_deref_atomic_fadd,
    172    nir_intrinsic_image_deref_atomic_fmax,
    173    nir_intrinsic_image_deref_atomic_fmin,
    174    nir_intrinsic_image_deref_atomic_imax,
    175    nir_intrinsic_image_deref_atomic_imin,
    176    nir_intrinsic_image_deref_atomic_inc_wrap,
    177    nir_intrinsic_image_deref_atomic_or,
    178    nir_intrinsic_image_deref_atomic_umax,
    179    nir_intrinsic_image_deref_atomic_umin,
    180    nir_intrinsic_image_deref_atomic_xor,
    181    nir_intrinsic_image_deref_format,
    182    nir_intrinsic_image_deref_load,
    183    nir_intrinsic_image_deref_load_param_intel,
    184    nir_intrinsic_image_deref_load_raw_intel,
    185    nir_intrinsic_image_deref_order,
    186    nir_intrinsic_image_deref_samples,
    187    nir_intrinsic_image_deref_size,
    188    nir_intrinsic_image_deref_sparse_load,
    189    nir_intrinsic_image_deref_store,
    190    nir_intrinsic_image_deref_store_raw_intel,
    191    nir_intrinsic_image_format,
    192    nir_intrinsic_image_load,
    193    nir_intrinsic_image_load_raw_intel,
    194    nir_intrinsic_image_order,
    195    nir_intrinsic_image_samples,
    196    nir_intrinsic_image_size,
    197    nir_intrinsic_image_sparse_load,
    198    nir_intrinsic_image_store,
    199    nir_intrinsic_image_store_raw_intel,
    200    nir_intrinsic_inclusive_scan,
    201    nir_intrinsic_interp_deref_at_centroid,
    202    nir_intrinsic_interp_deref_at_offset,
    203    nir_intrinsic_interp_deref_at_sample,
    204    nir_intrinsic_interp_deref_at_vertex,
    205    nir_intrinsic_is_helper_invocation,
    206    nir_intrinsic_is_sparse_texels_resident,
    207    nir_intrinsic_lane_permute_16_amd,
    208    nir_intrinsic_last_invocation,
    209    nir_intrinsic_load_aa_line_width,
    210    nir_intrinsic_load_back_face_agx,
    211    nir_intrinsic_load_barycentric_at_offset,
    212    nir_intrinsic_load_barycentric_at_sample,
    213    nir_intrinsic_load_barycentric_centroid,
    214    nir_intrinsic_load_barycentric_model,
    215    nir_intrinsic_load_barycentric_pixel,
    216    nir_intrinsic_load_barycentric_sample,
    217    nir_intrinsic_load_base_global_invocation_id,
    218    nir_intrinsic_load_base_instance,
    219    nir_intrinsic_load_base_vertex,
    220    nir_intrinsic_load_base_workgroup_id,
    221    nir_intrinsic_load_blend_const_color_a_float,
    222    nir_intrinsic_load_blend_const_color_aaaa8888_unorm,
    223    nir_intrinsic_load_blend_const_color_b_float,
    224    nir_intrinsic_load_blend_const_color_g_float,
    225    nir_intrinsic_load_blend_const_color_r_float,
    226    nir_intrinsic_load_blend_const_color_rgba,
    227    nir_intrinsic_load_blend_const_color_rgba8888_unorm,
    228    nir_intrinsic_load_btd_dss_id_intel,
    229    nir_intrinsic_load_btd_global_arg_addr_intel,
    230    nir_intrinsic_load_btd_local_arg_addr_intel,
    231    nir_intrinsic_load_btd_resume_sbt_addr_intel,
    232    nir_intrinsic_load_btd_stack_id_intel,
    233    nir_intrinsic_load_buffer_amd,
    234    nir_intrinsic_load_callable_sbt_addr_intel,
    235    nir_intrinsic_load_callable_sbt_stride_intel,
    236    nir_intrinsic_load_color0,
    237    nir_intrinsic_load_color1,
    238    nir_intrinsic_load_constant,
    239    nir_intrinsic_load_constant_base_ptr,
    240    nir_intrinsic_load_cull_any_enabled_amd,
    241    nir_intrinsic_load_cull_back_face_enabled_amd,
    242    nir_intrinsic_load_cull_ccw_amd,
    243    nir_intrinsic_load_cull_front_face_enabled_amd,
    244    nir_intrinsic_load_cull_small_prim_precision_amd,
    245    nir_intrinsic_load_cull_small_primitives_enabled_amd,
    246    nir_intrinsic_load_deref,
    247    nir_intrinsic_load_deref_block_intel,
    248    nir_intrinsic_load_desc_set_address_intel,
    249    nir_intrinsic_load_draw_id,
    250    nir_intrinsic_load_fb_layers_v3d,
    251    nir_intrinsic_load_first_vertex,
    252    nir_intrinsic_load_frag_coord,
    253    nir_intrinsic_load_frag_shading_rate,
    254    nir_intrinsic_load_front_face,
    255    nir_intrinsic_load_fs_input_interp_deltas,
    256    nir_intrinsic_load_global,
    257    nir_intrinsic_load_global_block_intel,
    258    nir_intrinsic_load_global_const_block_intel,
    259    nir_intrinsic_load_global_constant,
    260    nir_intrinsic_load_global_constant_bounded,
    261    nir_intrinsic_load_global_constant_offset,
    262    nir_intrinsic_load_global_invocation_id,
    263    nir_intrinsic_load_global_invocation_id_zero_base,
    264    nir_intrinsic_load_global_invocation_index,
    265    nir_intrinsic_load_global_ir3,
    266    nir_intrinsic_load_gs_header_ir3,
    267    nir_intrinsic_load_gs_vertex_offset_amd,
    268    nir_intrinsic_load_helper_invocation,
    269    nir_intrinsic_load_hs_patch_stride_ir3,
    270    nir_intrinsic_load_initial_edgeflags_amd,
    271    nir_intrinsic_load_input,
    272    nir_intrinsic_load_input_vertex,
    273    nir_intrinsic_load_instance_id,
    274    nir_intrinsic_load_interpolated_input,
    275    nir_intrinsic_load_intersection_opaque_amd,
    276    nir_intrinsic_load_invocation_id,
    277    nir_intrinsic_load_is_indexed_draw,
    278    nir_intrinsic_load_kernel_input,
    279    nir_intrinsic_load_layer_id,
    280    nir_intrinsic_load_leaf_opaque_intel,
    281    nir_intrinsic_load_leaf_procedural_intel,
    282    nir_intrinsic_load_line_coord,
    283    nir_intrinsic_load_line_width,
    284    nir_intrinsic_load_local_invocation_id,
    285    nir_intrinsic_load_local_invocation_index,
    286    nir_intrinsic_load_local_shared_r600,
    287    nir_intrinsic_load_num_subgroups,
    288    nir_intrinsic_load_num_workgroups,
    289    nir_intrinsic_load_output,
    290    nir_intrinsic_load_packed_passthrough_primitive_amd,
    291    nir_intrinsic_load_param,
    292    nir_intrinsic_load_patch_vertices_in,
    293    nir_intrinsic_load_per_primitive_output,
    294    nir_intrinsic_load_per_vertex_input,
    295    nir_intrinsic_load_per_vertex_output,
    296    nir_intrinsic_load_point_coord,
    297    nir_intrinsic_load_primitive_id,
    298    nir_intrinsic_load_primitive_location_ir3,
    299    nir_intrinsic_load_printf_buffer_address,
    300    nir_intrinsic_load_ptr_dxil,
    301    nir_intrinsic_load_push_constant,
    302    nir_intrinsic_load_raw_output_pan,
    303    nir_intrinsic_load_ray_base_mem_addr_intel,
    304    nir_intrinsic_load_ray_flags,
    305    nir_intrinsic_load_ray_geometry_index,
    306    nir_intrinsic_load_ray_hit_kind,
    307    nir_intrinsic_load_ray_hit_sbt_addr_intel,
    308    nir_intrinsic_load_ray_hit_sbt_stride_intel,
    309    nir_intrinsic_load_ray_hw_stack_size_intel,
    310    nir_intrinsic_load_ray_instance_custom_index,
    311    nir_intrinsic_load_ray_launch_id,
    312    nir_intrinsic_load_ray_launch_size,
    313    nir_intrinsic_load_ray_miss_sbt_addr_intel,
    314    nir_intrinsic_load_ray_miss_sbt_stride_intel,
    315    nir_intrinsic_load_ray_num_dss_rt_stacks_intel,
    316    nir_intrinsic_load_ray_object_direction,
    317    nir_intrinsic_load_ray_object_origin,
    318    nir_intrinsic_load_ray_object_to_world,
    319    nir_intrinsic_load_ray_sw_stack_size_intel,
    320    nir_intrinsic_load_ray_t_max,
    321    nir_intrinsic_load_ray_t_min,
    322    nir_intrinsic_load_ray_world_direction,
    323    nir_intrinsic_load_ray_world_origin,
    324    nir_intrinsic_load_ray_world_to_object,
    325    nir_intrinsic_load_rel_patch_id_ir3,
    326    nir_intrinsic_load_reloc_const_intel,
    327    nir_intrinsic_load_ring_es2gs_offset_amd,
    328    nir_intrinsic_load_ring_esgs_amd,
    329    nir_intrinsic_load_ring_tess_factors_amd,
    330    nir_intrinsic_load_ring_tess_factors_offset_amd,
    331    nir_intrinsic_load_ring_tess_offchip_amd,
    332    nir_intrinsic_load_ring_tess_offchip_offset_amd,
    333    nir_intrinsic_load_rt_arg_scratch_offset_amd,
    334    nir_intrinsic_load_sample_id,
    335    nir_intrinsic_load_sample_id_no_per_sample,
    336    nir_intrinsic_load_sample_mask_in,
    337    nir_intrinsic_load_sample_pos,
    338    nir_intrinsic_load_sample_pos_from_id,
    339    nir_intrinsic_load_sample_positions_pan,
    340    nir_intrinsic_load_sampler_lod_parameters_pan,
    341    nir_intrinsic_load_sbt_amd,
    342    nir_intrinsic_load_scratch,
    343    nir_intrinsic_load_scratch_base_ptr,
    344    nir_intrinsic_load_scratch_dxil,
    345    nir_intrinsic_load_shader_query_enabled_amd,
    346    nir_intrinsic_load_shader_record_ptr,
    347    nir_intrinsic_load_shared,
    348    nir_intrinsic_load_shared_base_ptr,
    349    nir_intrinsic_load_shared_block_intel,
    350    nir_intrinsic_load_shared_dxil,
    351    nir_intrinsic_load_shared_ir3,
    352    nir_intrinsic_load_simd_width_intel,
    353    nir_intrinsic_load_size_ir3,
    354    nir_intrinsic_load_ssbo,
    355    nir_intrinsic_load_ssbo_address,
    356    nir_intrinsic_load_ssbo_block_intel,
    357    nir_intrinsic_load_ssbo_ir3,
    358    nir_intrinsic_load_subgroup_eq_mask,
    359    nir_intrinsic_load_subgroup_ge_mask,
    360    nir_intrinsic_load_subgroup_gt_mask,
    361    nir_intrinsic_load_subgroup_id,
    362    nir_intrinsic_load_subgroup_id_shift_ir3,
    363    nir_intrinsic_load_subgroup_invocation,
    364    nir_intrinsic_load_subgroup_le_mask,
    365    nir_intrinsic_load_subgroup_lt_mask,
    366    nir_intrinsic_load_subgroup_size,
    367    nir_intrinsic_load_tcs_header_ir3,
    368    nir_intrinsic_load_tcs_in_param_base_r600,
    369    nir_intrinsic_load_tcs_num_patches_amd,
    370    nir_intrinsic_load_tcs_out_param_base_r600,
    371    nir_intrinsic_load_tcs_rel_patch_id_r600,
    372    nir_intrinsic_load_tcs_tess_factor_base_r600,
    373    nir_intrinsic_load_tess_coord,
    374    nir_intrinsic_load_tess_coord_r600,
    375    nir_intrinsic_load_tess_factor_base_ir3,
    376    nir_intrinsic_load_tess_level_inner,
    377    nir_intrinsic_load_tess_level_inner_default,
    378    nir_intrinsic_load_tess_level_outer,
    379    nir_intrinsic_load_tess_level_outer_default,
    380    nir_intrinsic_load_tess_param_base_ir3,
    381    nir_intrinsic_load_tess_rel_patch_id_amd,
    382    nir_intrinsic_load_texture_rect_scaling,
    383    nir_intrinsic_load_tlb_color_v3d,
    384    nir_intrinsic_load_ubo,
    385    nir_intrinsic_load_ubo_dxil,
    386    nir_intrinsic_load_ubo_vec4,
    387    nir_intrinsic_load_uniform,
    388    nir_intrinsic_load_user_clip_plane,
    389    nir_intrinsic_load_user_data_amd,
    390    nir_intrinsic_load_vertex_id,
    391    nir_intrinsic_load_vertex_id_zero_base,
    392    nir_intrinsic_load_view_index,
    393    nir_intrinsic_load_viewport_offset,
    394    nir_intrinsic_load_viewport_scale,
    395    nir_intrinsic_load_viewport_x_offset,
    396    nir_intrinsic_load_viewport_x_scale,
    397    nir_intrinsic_load_viewport_y_offset,
    398    nir_intrinsic_load_viewport_y_scale,
    399    nir_intrinsic_load_viewport_z_offset,
    400    nir_intrinsic_load_viewport_z_scale,
    401    nir_intrinsic_load_vs_primitive_stride_ir3,
    402    nir_intrinsic_load_vs_vertex_stride_ir3,
    403    nir_intrinsic_load_vulkan_descriptor,
    404    nir_intrinsic_load_work_dim,
    405    nir_intrinsic_load_workgroup_id,
    406    nir_intrinsic_load_workgroup_id_zero_base,
    407    nir_intrinsic_load_workgroup_num_input_primitives_amd,
    408    nir_intrinsic_load_workgroup_num_input_vertices_amd,
    409    nir_intrinsic_load_workgroup_size,
    410    nir_intrinsic_masked_swizzle_amd,
    411    nir_intrinsic_mbcnt_amd,
    412    nir_intrinsic_memcpy_deref,
    413    nir_intrinsic_memory_barrier,
    414    nir_intrinsic_memory_barrier_atomic_counter,
    415    nir_intrinsic_memory_barrier_buffer,
    416    nir_intrinsic_memory_barrier_image,
    417    nir_intrinsic_memory_barrier_shared,
    418    nir_intrinsic_memory_barrier_tcs_patch,
    419    nir_intrinsic_nop,
    420    nir_intrinsic_overwrite_tes_arguments_amd,
    421    nir_intrinsic_overwrite_vs_arguments_amd,
    422    nir_intrinsic_printf,
    423    nir_intrinsic_quad_broadcast,
    424    nir_intrinsic_quad_swap_diagonal,
    425    nir_intrinsic_quad_swap_horizontal,
    426    nir_intrinsic_quad_swap_vertical,
    427    nir_intrinsic_quad_swizzle_amd,
    428    nir_intrinsic_read_first_invocation,
    429    nir_intrinsic_read_invocation,
    430    nir_intrinsic_read_invocation_cond_ir3,
    431    nir_intrinsic_reduce,
    432    nir_intrinsic_report_ray_intersection,
    433    nir_intrinsic_rt_execute_callable,
    434    nir_intrinsic_rt_resume,
    435    nir_intrinsic_rt_return_amd,
    436    nir_intrinsic_rt_trace_ray,
    437    nir_intrinsic_scoped_barrier,
    438    nir_intrinsic_set_vertex_and_primitive_count,
    439    nir_intrinsic_shader_clock,
    440    nir_intrinsic_shared_atomic_add,
    441    nir_intrinsic_shared_atomic_add_dxil,
    442    nir_intrinsic_shared_atomic_and,
    443    nir_intrinsic_shared_atomic_and_dxil,
    444    nir_intrinsic_shared_atomic_comp_swap,
    445    nir_intrinsic_shared_atomic_comp_swap_dxil,
    446    nir_intrinsic_shared_atomic_exchange,
    447    nir_intrinsic_shared_atomic_exchange_dxil,
    448    nir_intrinsic_shared_atomic_fadd,
    449    nir_intrinsic_shared_atomic_fcomp_swap,
    450    nir_intrinsic_shared_atomic_fmax,
    451    nir_intrinsic_shared_atomic_fmin,
    452    nir_intrinsic_shared_atomic_imax,
    453    nir_intrinsic_shared_atomic_imax_dxil,
    454    nir_intrinsic_shared_atomic_imin,
    455    nir_intrinsic_shared_atomic_imin_dxil,
    456    nir_intrinsic_shared_atomic_or,
    457    nir_intrinsic_shared_atomic_or_dxil,
    458    nir_intrinsic_shared_atomic_umax,
    459    nir_intrinsic_shared_atomic_umax_dxil,
    460    nir_intrinsic_shared_atomic_umin,
    461    nir_intrinsic_shared_atomic_umin_dxil,
    462    nir_intrinsic_shared_atomic_xor,
    463    nir_intrinsic_shared_atomic_xor_dxil,
    464    nir_intrinsic_shuffle,
    465    nir_intrinsic_shuffle_down,
    466    nir_intrinsic_shuffle_up,
    467    nir_intrinsic_shuffle_xor,
    468    nir_intrinsic_sparse_residency_code_and,
    469    nir_intrinsic_ssbo_atomic_add,
    470    nir_intrinsic_ssbo_atomic_add_ir3,
    471    nir_intrinsic_ssbo_atomic_and,
    472    nir_intrinsic_ssbo_atomic_and_ir3,
    473    nir_intrinsic_ssbo_atomic_comp_swap,
    474    nir_intrinsic_ssbo_atomic_comp_swap_ir3,
    475    nir_intrinsic_ssbo_atomic_exchange,
    476    nir_intrinsic_ssbo_atomic_exchange_ir3,
    477    nir_intrinsic_ssbo_atomic_fadd,
    478    nir_intrinsic_ssbo_atomic_fcomp_swap,
    479    nir_intrinsic_ssbo_atomic_fmax,
    480    nir_intrinsic_ssbo_atomic_fmin,
    481    nir_intrinsic_ssbo_atomic_imax,
    482    nir_intrinsic_ssbo_atomic_imax_ir3,
    483    nir_intrinsic_ssbo_atomic_imin,
    484    nir_intrinsic_ssbo_atomic_imin_ir3,
    485    nir_intrinsic_ssbo_atomic_or,
    486    nir_intrinsic_ssbo_atomic_or_ir3,
    487    nir_intrinsic_ssbo_atomic_umax,
    488    nir_intrinsic_ssbo_atomic_umax_ir3,
    489    nir_intrinsic_ssbo_atomic_umin,
    490    nir_intrinsic_ssbo_atomic_umin_ir3,
    491    nir_intrinsic_ssbo_atomic_xor,
    492    nir_intrinsic_ssbo_atomic_xor_ir3,
    493    nir_intrinsic_store_buffer_amd,
    494    nir_intrinsic_store_combined_output_pan,
    495    nir_intrinsic_store_deref,
    496    nir_intrinsic_store_deref_block_intel,
    497    nir_intrinsic_store_global,
    498    nir_intrinsic_store_global_block_intel,
    499    nir_intrinsic_store_global_ir3,
    500    nir_intrinsic_store_local_shared_r600,
    501    nir_intrinsic_store_output,
    502    nir_intrinsic_store_per_primitive_output,
    503    nir_intrinsic_store_per_vertex_output,
    504    nir_intrinsic_store_raw_output_pan,
    505    nir_intrinsic_store_scratch,
    506    nir_intrinsic_store_scratch_dxil,
    507    nir_intrinsic_store_shared,
    508    nir_intrinsic_store_shared_block_intel,
    509    nir_intrinsic_store_shared_dxil,
    510    nir_intrinsic_store_shared_ir3,
    511    nir_intrinsic_store_shared_masked_dxil,
    512    nir_intrinsic_store_ssbo,
    513    nir_intrinsic_store_ssbo_block_intel,
    514    nir_intrinsic_store_ssbo_ir3,
    515    nir_intrinsic_store_ssbo_masked_dxil,
    516    nir_intrinsic_store_tf_r600,
    517    nir_intrinsic_store_tlb_sample_color_v3d,
    518    nir_intrinsic_terminate,
    519    nir_intrinsic_terminate_if,
    520    nir_intrinsic_terminate_ray,
    521    nir_intrinsic_trace_ray,
    522    nir_intrinsic_trace_ray_commit_intel,
    523    nir_intrinsic_trace_ray_continue_intel,
    524    nir_intrinsic_trace_ray_initial_intel,
    525    nir_intrinsic_vote_all,
    526    nir_intrinsic_vote_any,
    527    nir_intrinsic_vote_feq,
    528    nir_intrinsic_vote_ieq,
    529    nir_intrinsic_vulkan_resource_index,
    530    nir_intrinsic_vulkan_resource_reindex,
    531    nir_intrinsic_write_invocation_amd,
    532 
    533    nir_last_intrinsic = nir_intrinsic_write_invocation_amd,
    534    nir_num_intrinsics = nir_last_intrinsic + 1
    535 } nir_intrinsic_op;
    536 
    537 typedef enum {
    538    NIR_INTRINSIC_BASE,
    539    NIR_INTRINSIC_WRITE_MASK,
    540    NIR_INTRINSIC_STREAM_ID,
    541    NIR_INTRINSIC_UCP_ID,
    542    NIR_INTRINSIC_RANGE_BASE,
    543    NIR_INTRINSIC_RANGE,
    544    NIR_INTRINSIC_DESC_SET,
    545    NIR_INTRINSIC_BINDING,
    546    NIR_INTRINSIC_COMPONENT,
    547    NIR_INTRINSIC_COLUMN,
    548    NIR_INTRINSIC_INTERP_MODE,
    549    NIR_INTRINSIC_REDUCTION_OP,
    550    NIR_INTRINSIC_CLUSTER_SIZE,
    551    NIR_INTRINSIC_PARAM_IDX,
    552    NIR_INTRINSIC_IMAGE_DIM,
    553    NIR_INTRINSIC_IMAGE_ARRAY,
    554    NIR_INTRINSIC_FORMAT,
    555    NIR_INTRINSIC_ACCESS,
    556    NIR_INTRINSIC_CALL_IDX,
    557    NIR_INTRINSIC_STACK_SIZE,
    558    NIR_INTRINSIC_ALIGN_MUL,
    559    NIR_INTRINSIC_ALIGN_OFFSET,
    560    NIR_INTRINSIC_DESC_TYPE,
    561    NIR_INTRINSIC_SRC_TYPE,
    562    NIR_INTRINSIC_DEST_TYPE,
    563    NIR_INTRINSIC_SWIZZLE_MASK,
    564    NIR_INTRINSIC_IS_SWIZZLED,
    565    NIR_INTRINSIC_SLC_AMD,
    566    NIR_INTRINSIC_DST_ACCESS,
    567    NIR_INTRINSIC_SRC_ACCESS,
    568    NIR_INTRINSIC_DRIVER_LOCATION,
    569    NIR_INTRINSIC_MEMORY_SEMANTICS,
    570    NIR_INTRINSIC_MEMORY_MODES,
    571    NIR_INTRINSIC_MEMORY_SCOPE,
    572    NIR_INTRINSIC_EXECUTION_SCOPE,
    573    NIR_INTRINSIC_IO_SEMANTICS,
    574    NIR_INTRINSIC_ROUNDING_MODE,
    575    NIR_INTRINSIC_SATURATE,
    576    NIR_INTRINSIC_NUM_INDEX_FLAGS,
    577 } nir_intrinsic_index_flag;
    578 
    579 extern const char *nir_intrinsic_index_names[NIR_INTRINSIC_NUM_INDEX_FLAGS];
    580 
    581 #endif /* _NIR_INTRINSICS_ */