110e230b6Smaya/* Copyright (C) 2018 Red Hat
210e230b6Smaya *
310e230b6Smaya * Permission is hereby granted, free of charge, to any person obtaining a
410e230b6Smaya * copy of this software and associated documentation files (the "Software"),
510e230b6Smaya * to deal in the Software without restriction, including without limitation
610e230b6Smaya * the rights to use, copy, modify, merge, publish, distribute, sublicense,
710e230b6Smaya * and/or sell copies of the Software, and to permit persons to whom the
810e230b6Smaya * Software is furnished to do so, subject to the following conditions:
910e230b6Smaya *
1010e230b6Smaya * The above copyright notice and this permission notice (including the next
1110e230b6Smaya * paragraph) shall be included in all copies or substantial portions of the
1210e230b6Smaya * Software.
1310e230b6Smaya *
1410e230b6Smaya * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1510e230b6Smaya * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1610e230b6Smaya * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1710e230b6Smaya * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1810e230b6Smaya * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1910e230b6Smaya * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
2010e230b6Smaya * IN THE SOFTWARE.
2110e230b6Smaya */
2210e230b6Smaya
2310e230b6Smaya#ifndef _NIR_INTRINSICS_
2410e230b6Smaya#define _NIR_INTRINSICS_
2510e230b6Smaya
2610e230b6Smaya
2710e230b6Smaya
2810e230b6Smayatypedef enum {
2996c5ddc4Srjs   nir_intrinsic_accept_ray_intersection,
3096c5ddc4Srjs   nir_intrinsic_addr_mode_is,
3196c5ddc4Srjs   nir_intrinsic_alloc_vertices_and_primitives_amd,
3210e230b6Smaya   nir_intrinsic_atomic_counter_add,
3310e230b6Smaya   nir_intrinsic_atomic_counter_add_deref,
3410e230b6Smaya   nir_intrinsic_atomic_counter_and,
3510e230b6Smaya   nir_intrinsic_atomic_counter_and_deref,
3610e230b6Smaya   nir_intrinsic_atomic_counter_comp_swap,
3710e230b6Smaya   nir_intrinsic_atomic_counter_comp_swap_deref,
3810e230b6Smaya   nir_intrinsic_atomic_counter_exchange,
3910e230b6Smaya   nir_intrinsic_atomic_counter_exchange_deref,
4010e230b6Smaya   nir_intrinsic_atomic_counter_inc,
4110e230b6Smaya   nir_intrinsic_atomic_counter_inc_deref,
4210e230b6Smaya   nir_intrinsic_atomic_counter_max,
4310e230b6Smaya   nir_intrinsic_atomic_counter_max_deref,
4410e230b6Smaya   nir_intrinsic_atomic_counter_min,
4510e230b6Smaya   nir_intrinsic_atomic_counter_min_deref,
4610e230b6Smaya   nir_intrinsic_atomic_counter_or,
4710e230b6Smaya   nir_intrinsic_atomic_counter_or_deref,
4810e230b6Smaya   nir_intrinsic_atomic_counter_post_dec,
4910e230b6Smaya   nir_intrinsic_atomic_counter_post_dec_deref,
5010e230b6Smaya   nir_intrinsic_atomic_counter_pre_dec,
5110e230b6Smaya   nir_intrinsic_atomic_counter_pre_dec_deref,
5210e230b6Smaya   nir_intrinsic_atomic_counter_read,
5310e230b6Smaya   nir_intrinsic_atomic_counter_read_deref,
5410e230b6Smaya   nir_intrinsic_atomic_counter_xor,
5510e230b6Smaya   nir_intrinsic_atomic_counter_xor_deref,
5610e230b6Smaya   nir_intrinsic_ballot,
5710e230b6Smaya   nir_intrinsic_ballot_bit_count_exclusive,
5810e230b6Smaya   nir_intrinsic_ballot_bit_count_inclusive,
5910e230b6Smaya   nir_intrinsic_ballot_bit_count_reduce,
6010e230b6Smaya   nir_intrinsic_ballot_bitfield_extract,
6110e230b6Smaya   nir_intrinsic_ballot_find_lsb,
6210e230b6Smaya   nir_intrinsic_ballot_find_msb,
6310e230b6Smaya   nir_intrinsic_begin_invocation_interlock,
6410e230b6Smaya   nir_intrinsic_bindless_image_atomic_add,
6510e230b6Smaya   nir_intrinsic_bindless_image_atomic_and,
6610e230b6Smaya   nir_intrinsic_bindless_image_atomic_comp_swap,
6796c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_dec_wrap,
6810e230b6Smaya   nir_intrinsic_bindless_image_atomic_exchange,
6910e230b6Smaya   nir_intrinsic_bindless_image_atomic_fadd,
7096c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_fmax,
7196c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_fmin,
7296c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_imax,
7396c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_imin,
7496c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_inc_wrap,
7510e230b6Smaya   nir_intrinsic_bindless_image_atomic_or,
7696c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_umax,
7796c5ddc4Srjs   nir_intrinsic_bindless_image_atomic_umin,
7810e230b6Smaya   nir_intrinsic_bindless_image_atomic_xor,
7996c5ddc4Srjs   nir_intrinsic_bindless_image_format,
8010e230b6Smaya   nir_intrinsic_bindless_image_load,
8110e230b6Smaya   nir_intrinsic_bindless_image_load_raw_intel,
8296c5ddc4Srjs   nir_intrinsic_bindless_image_order,
8310e230b6Smaya   nir_intrinsic_bindless_image_samples,
8410e230b6Smaya   nir_intrinsic_bindless_image_size,
8596c5ddc4Srjs   nir_intrinsic_bindless_image_sparse_load,
8610e230b6Smaya   nir_intrinsic_bindless_image_store,
8710e230b6Smaya   nir_intrinsic_bindless_image_store_raw_intel,
8896c5ddc4Srjs   nir_intrinsic_bindless_resource_ir3,
8996c5ddc4Srjs   nir_intrinsic_btd_retire_intel,
9096c5ddc4Srjs   nir_intrinsic_btd_spawn_intel,
9196c5ddc4Srjs   nir_intrinsic_btd_stack_push_intel,
9296c5ddc4Srjs   nir_intrinsic_bvh64_intersect_ray_amd,
9396c5ddc4Srjs   nir_intrinsic_byte_permute_amd,
9496c5ddc4Srjs   nir_intrinsic_cond_end_ir3,
9596c5ddc4Srjs   nir_intrinsic_control_barrier,
9696c5ddc4Srjs   nir_intrinsic_convert_alu_types,
9710e230b6Smaya   nir_intrinsic_copy_deref,
9896c5ddc4Srjs   nir_intrinsic_demote,
9996c5ddc4Srjs   nir_intrinsic_demote_if,
10010e230b6Smaya   nir_intrinsic_deref_atomic_add,
10110e230b6Smaya   nir_intrinsic_deref_atomic_and,
10210e230b6Smaya   nir_intrinsic_deref_atomic_comp_swap,
10310e230b6Smaya   nir_intrinsic_deref_atomic_exchange,
10410e230b6Smaya   nir_intrinsic_deref_atomic_fadd,
10510e230b6Smaya   nir_intrinsic_deref_atomic_fcomp_swap,
10610e230b6Smaya   nir_intrinsic_deref_atomic_fmax,
10710e230b6Smaya   nir_intrinsic_deref_atomic_fmin,
10810e230b6Smaya   nir_intrinsic_deref_atomic_imax,
10910e230b6Smaya   nir_intrinsic_deref_atomic_imin,
11010e230b6Smaya   nir_intrinsic_deref_atomic_or,
11110e230b6Smaya   nir_intrinsic_deref_atomic_umax,
11210e230b6Smaya   nir_intrinsic_deref_atomic_umin,
11310e230b6Smaya   nir_intrinsic_deref_atomic_xor,
11410e230b6Smaya   nir_intrinsic_deref_buffer_array_length,
11596c5ddc4Srjs   nir_intrinsic_deref_mode_is,
11610e230b6Smaya   nir_intrinsic_discard,
11710e230b6Smaya   nir_intrinsic_discard_if,
11810e230b6Smaya   nir_intrinsic_elect,
11910e230b6Smaya   nir_intrinsic_emit_vertex,
12010e230b6Smaya   nir_intrinsic_emit_vertex_with_counter,
12110e230b6Smaya   nir_intrinsic_end_invocation_interlock,
12296c5ddc4Srjs   nir_intrinsic_end_patch_ir3,
12310e230b6Smaya   nir_intrinsic_end_primitive,
12410e230b6Smaya   nir_intrinsic_end_primitive_with_counter,
12510e230b6Smaya   nir_intrinsic_exclusive_scan,
12696c5ddc4Srjs   nir_intrinsic_execute_callable,
12796c5ddc4Srjs   nir_intrinsic_export_primitive_amd,
12896c5ddc4Srjs   nir_intrinsic_export_vertex_amd,
12910e230b6Smaya   nir_intrinsic_first_invocation,
13096c5ddc4Srjs   nir_intrinsic_gds_atomic_add_amd,
13196c5ddc4Srjs   nir_intrinsic_get_ssbo_size,
13296c5ddc4Srjs   nir_intrinsic_get_ubo_size,
13310e230b6Smaya   nir_intrinsic_global_atomic_add,
13410e230b6Smaya   nir_intrinsic_global_atomic_and,
13510e230b6Smaya   nir_intrinsic_global_atomic_comp_swap,
13610e230b6Smaya   nir_intrinsic_global_atomic_exchange,
13710e230b6Smaya   nir_intrinsic_global_atomic_fadd,
13810e230b6Smaya   nir_intrinsic_global_atomic_fcomp_swap,
13910e230b6Smaya   nir_intrinsic_global_atomic_fmax,
14010e230b6Smaya   nir_intrinsic_global_atomic_fmin,
14110e230b6Smaya   nir_intrinsic_global_atomic_imax,
14210e230b6Smaya   nir_intrinsic_global_atomic_imin,
14310e230b6Smaya   nir_intrinsic_global_atomic_or,
14410e230b6Smaya   nir_intrinsic_global_atomic_umax,
14510e230b6Smaya   nir_intrinsic_global_atomic_umin,
14610e230b6Smaya   nir_intrinsic_global_atomic_xor,
14710e230b6Smaya   nir_intrinsic_group_memory_barrier,
14896c5ddc4Srjs   nir_intrinsic_has_input_primitive_amd,
14996c5ddc4Srjs   nir_intrinsic_has_input_vertex_amd,
15096c5ddc4Srjs   nir_intrinsic_ignore_ray_intersection,
15110e230b6Smaya   nir_intrinsic_image_atomic_add,
15210e230b6Smaya   nir_intrinsic_image_atomic_and,
15310e230b6Smaya   nir_intrinsic_image_atomic_comp_swap,
15496c5ddc4Srjs   nir_intrinsic_image_atomic_dec_wrap,
15510e230b6Smaya   nir_intrinsic_image_atomic_exchange,
15610e230b6Smaya   nir_intrinsic_image_atomic_fadd,
15796c5ddc4Srjs   nir_intrinsic_image_atomic_fmax,
15896c5ddc4Srjs   nir_intrinsic_image_atomic_fmin,
15996c5ddc4Srjs   nir_intrinsic_image_atomic_imax,
16096c5ddc4Srjs   nir_intrinsic_image_atomic_imin,
16196c5ddc4Srjs   nir_intrinsic_image_atomic_inc_wrap,
16210e230b6Smaya   nir_intrinsic_image_atomic_or,
16396c5ddc4Srjs   nir_intrinsic_image_atomic_umax,
16496c5ddc4Srjs   nir_intrinsic_image_atomic_umin,
16510e230b6Smaya   nir_intrinsic_image_atomic_xor,
16610e230b6Smaya   nir_intrinsic_image_deref_atomic_add,
16710e230b6Smaya   nir_intrinsic_image_deref_atomic_and,
16810e230b6Smaya   nir_intrinsic_image_deref_atomic_comp_swap,
16996c5ddc4Srjs   nir_intrinsic_image_deref_atomic_dec_wrap,
17010e230b6Smaya   nir_intrinsic_image_deref_atomic_exchange,
17110e230b6Smaya   nir_intrinsic_image_deref_atomic_fadd,
17296c5ddc4Srjs   nir_intrinsic_image_deref_atomic_fmax,
17396c5ddc4Srjs   nir_intrinsic_image_deref_atomic_fmin,
17496c5ddc4Srjs   nir_intrinsic_image_deref_atomic_imax,
17596c5ddc4Srjs   nir_intrinsic_image_deref_atomic_imin,
17696c5ddc4Srjs   nir_intrinsic_image_deref_atomic_inc_wrap,
17710e230b6Smaya   nir_intrinsic_image_deref_atomic_or,
17896c5ddc4Srjs   nir_intrinsic_image_deref_atomic_umax,
17996c5ddc4Srjs   nir_intrinsic_image_deref_atomic_umin,
18010e230b6Smaya   nir_intrinsic_image_deref_atomic_xor,
18196c5ddc4Srjs   nir_intrinsic_image_deref_format,
18210e230b6Smaya   nir_intrinsic_image_deref_load,
18310e230b6Smaya   nir_intrinsic_image_deref_load_param_intel,
18410e230b6Smaya   nir_intrinsic_image_deref_load_raw_intel,
18596c5ddc4Srjs   nir_intrinsic_image_deref_order,
18610e230b6Smaya   nir_intrinsic_image_deref_samples,
18710e230b6Smaya   nir_intrinsic_image_deref_size,
18896c5ddc4Srjs   nir_intrinsic_image_deref_sparse_load,
18910e230b6Smaya   nir_intrinsic_image_deref_store,
19010e230b6Smaya   nir_intrinsic_image_deref_store_raw_intel,
19196c5ddc4Srjs   nir_intrinsic_image_format,
19210e230b6Smaya   nir_intrinsic_image_load,
19310e230b6Smaya   nir_intrinsic_image_load_raw_intel,
19496c5ddc4Srjs   nir_intrinsic_image_order,
19510e230b6Smaya   nir_intrinsic_image_samples,
19610e230b6Smaya   nir_intrinsic_image_size,
19796c5ddc4Srjs   nir_intrinsic_image_sparse_load,
19810e230b6Smaya   nir_intrinsic_image_store,
19910e230b6Smaya   nir_intrinsic_image_store_raw_intel,
20010e230b6Smaya   nir_intrinsic_inclusive_scan,
20110e230b6Smaya   nir_intrinsic_interp_deref_at_centroid,
20210e230b6Smaya   nir_intrinsic_interp_deref_at_offset,
20310e230b6Smaya   nir_intrinsic_interp_deref_at_sample,
20496c5ddc4Srjs   nir_intrinsic_interp_deref_at_vertex,
20596c5ddc4Srjs   nir_intrinsic_is_helper_invocation,
20696c5ddc4Srjs   nir_intrinsic_is_sparse_texels_resident,
20796c5ddc4Srjs   nir_intrinsic_lane_permute_16_amd,
20896c5ddc4Srjs   nir_intrinsic_last_invocation,
20996c5ddc4Srjs   nir_intrinsic_load_aa_line_width,
21096c5ddc4Srjs   nir_intrinsic_load_back_face_agx,
21110e230b6Smaya   nir_intrinsic_load_barycentric_at_offset,
21210e230b6Smaya   nir_intrinsic_load_barycentric_at_sample,
21310e230b6Smaya   nir_intrinsic_load_barycentric_centroid,
21496c5ddc4Srjs   nir_intrinsic_load_barycentric_model,
21510e230b6Smaya   nir_intrinsic_load_barycentric_pixel,
21610e230b6Smaya   nir_intrinsic_load_barycentric_sample,
21796c5ddc4Srjs   nir_intrinsic_load_base_global_invocation_id,
21810e230b6Smaya   nir_intrinsic_load_base_instance,
21910e230b6Smaya   nir_intrinsic_load_base_vertex,
22096c5ddc4Srjs   nir_intrinsic_load_base_workgroup_id,
22110e230b6Smaya   nir_intrinsic_load_blend_const_color_a_float,
22210e230b6Smaya   nir_intrinsic_load_blend_const_color_aaaa8888_unorm,
22310e230b6Smaya   nir_intrinsic_load_blend_const_color_b_float,
22410e230b6Smaya   nir_intrinsic_load_blend_const_color_g_float,
22510e230b6Smaya   nir_intrinsic_load_blend_const_color_r_float,
22696c5ddc4Srjs   nir_intrinsic_load_blend_const_color_rgba,
22710e230b6Smaya   nir_intrinsic_load_blend_const_color_rgba8888_unorm,
22896c5ddc4Srjs   nir_intrinsic_load_btd_dss_id_intel,
22996c5ddc4Srjs   nir_intrinsic_load_btd_global_arg_addr_intel,
23096c5ddc4Srjs   nir_intrinsic_load_btd_local_arg_addr_intel,
23196c5ddc4Srjs   nir_intrinsic_load_btd_resume_sbt_addr_intel,
23296c5ddc4Srjs   nir_intrinsic_load_btd_stack_id_intel,
23396c5ddc4Srjs   nir_intrinsic_load_buffer_amd,
23496c5ddc4Srjs   nir_intrinsic_load_callable_sbt_addr_intel,
23596c5ddc4Srjs   nir_intrinsic_load_callable_sbt_stride_intel,
23696c5ddc4Srjs   nir_intrinsic_load_color0,
23796c5ddc4Srjs   nir_intrinsic_load_color1,
23810e230b6Smaya   nir_intrinsic_load_constant,
23996c5ddc4Srjs   nir_intrinsic_load_constant_base_ptr,
24096c5ddc4Srjs   nir_intrinsic_load_cull_any_enabled_amd,
24196c5ddc4Srjs   nir_intrinsic_load_cull_back_face_enabled_amd,
24296c5ddc4Srjs   nir_intrinsic_load_cull_ccw_amd,
24396c5ddc4Srjs   nir_intrinsic_load_cull_front_face_enabled_amd,
24496c5ddc4Srjs   nir_intrinsic_load_cull_small_prim_precision_amd,
24596c5ddc4Srjs   nir_intrinsic_load_cull_small_primitives_enabled_amd,
24610e230b6Smaya   nir_intrinsic_load_deref,
24796c5ddc4Srjs   nir_intrinsic_load_deref_block_intel,
24896c5ddc4Srjs   nir_intrinsic_load_desc_set_address_intel,
24910e230b6Smaya   nir_intrinsic_load_draw_id,
25096c5ddc4Srjs   nir_intrinsic_load_fb_layers_v3d,
25110e230b6Smaya   nir_intrinsic_load_first_vertex,
25210e230b6Smaya   nir_intrinsic_load_frag_coord,
25396c5ddc4Srjs   nir_intrinsic_load_frag_shading_rate,
25410e230b6Smaya   nir_intrinsic_load_front_face,
25596c5ddc4Srjs   nir_intrinsic_load_fs_input_interp_deltas,
25610e230b6Smaya   nir_intrinsic_load_global,
25796c5ddc4Srjs   nir_intrinsic_load_global_block_intel,
25896c5ddc4Srjs   nir_intrinsic_load_global_const_block_intel,
25996c5ddc4Srjs   nir_intrinsic_load_global_constant,
26096c5ddc4Srjs   nir_intrinsic_load_global_constant_bounded,
26196c5ddc4Srjs   nir_intrinsic_load_global_constant_offset,
26210e230b6Smaya   nir_intrinsic_load_global_invocation_id,
26396c5ddc4Srjs   nir_intrinsic_load_global_invocation_id_zero_base,
26410e230b6Smaya   nir_intrinsic_load_global_invocation_index,
26596c5ddc4Srjs   nir_intrinsic_load_global_ir3,
26696c5ddc4Srjs   nir_intrinsic_load_gs_header_ir3,
26796c5ddc4Srjs   nir_intrinsic_load_gs_vertex_offset_amd,
26810e230b6Smaya   nir_intrinsic_load_helper_invocation,
26996c5ddc4Srjs   nir_intrinsic_load_hs_patch_stride_ir3,
27096c5ddc4Srjs   nir_intrinsic_load_initial_edgeflags_amd,
27110e230b6Smaya   nir_intrinsic_load_input,
27296c5ddc4Srjs   nir_intrinsic_load_input_vertex,
27310e230b6Smaya   nir_intrinsic_load_instance_id,
27410e230b6Smaya   nir_intrinsic_load_interpolated_input,
27596c5ddc4Srjs   nir_intrinsic_load_intersection_opaque_amd,
27610e230b6Smaya   nir_intrinsic_load_invocation_id,
27710e230b6Smaya   nir_intrinsic_load_is_indexed_draw,
27810e230b6Smaya   nir_intrinsic_load_kernel_input,
27910e230b6Smaya   nir_intrinsic_load_layer_id,
28096c5ddc4Srjs   nir_intrinsic_load_leaf_opaque_intel,
28196c5ddc4Srjs   nir_intrinsic_load_leaf_procedural_intel,
28296c5ddc4Srjs   nir_intrinsic_load_line_coord,
28396c5ddc4Srjs   nir_intrinsic_load_line_width,
28410e230b6Smaya   nir_intrinsic_load_local_invocation_id,
28510e230b6Smaya   nir_intrinsic_load_local_invocation_index,
28696c5ddc4Srjs   nir_intrinsic_load_local_shared_r600,
28710e230b6Smaya   nir_intrinsic_load_num_subgroups,
28896c5ddc4Srjs   nir_intrinsic_load_num_workgroups,
28910e230b6Smaya   nir_intrinsic_load_output,
29096c5ddc4Srjs   nir_intrinsic_load_packed_passthrough_primitive_amd,
29110e230b6Smaya   nir_intrinsic_load_param,
29210e230b6Smaya   nir_intrinsic_load_patch_vertices_in,
29396c5ddc4Srjs   nir_intrinsic_load_per_primitive_output,
29410e230b6Smaya   nir_intrinsic_load_per_vertex_input,
29510e230b6Smaya   nir_intrinsic_load_per_vertex_output,
29696c5ddc4Srjs   nir_intrinsic_load_point_coord,
29710e230b6Smaya   nir_intrinsic_load_primitive_id,
29896c5ddc4Srjs   nir_intrinsic_load_primitive_location_ir3,
29996c5ddc4Srjs   nir_intrinsic_load_printf_buffer_address,
30096c5ddc4Srjs   nir_intrinsic_load_ptr_dxil,
30110e230b6Smaya   nir_intrinsic_load_push_constant,
30296c5ddc4Srjs   nir_intrinsic_load_raw_output_pan,
30396c5ddc4Srjs   nir_intrinsic_load_ray_base_mem_addr_intel,
30496c5ddc4Srjs   nir_intrinsic_load_ray_flags,
30596c5ddc4Srjs   nir_intrinsic_load_ray_geometry_index,
30696c5ddc4Srjs   nir_intrinsic_load_ray_hit_kind,
30796c5ddc4Srjs   nir_intrinsic_load_ray_hit_sbt_addr_intel,
30896c5ddc4Srjs   nir_intrinsic_load_ray_hit_sbt_stride_intel,
30996c5ddc4Srjs   nir_intrinsic_load_ray_hw_stack_size_intel,
31096c5ddc4Srjs   nir_intrinsic_load_ray_instance_custom_index,
31196c5ddc4Srjs   nir_intrinsic_load_ray_launch_id,
31296c5ddc4Srjs   nir_intrinsic_load_ray_launch_size,
31396c5ddc4Srjs   nir_intrinsic_load_ray_miss_sbt_addr_intel,
31496c5ddc4Srjs   nir_intrinsic_load_ray_miss_sbt_stride_intel,
31596c5ddc4Srjs   nir_intrinsic_load_ray_num_dss_rt_stacks_intel,
31696c5ddc4Srjs   nir_intrinsic_load_ray_object_direction,
31796c5ddc4Srjs   nir_intrinsic_load_ray_object_origin,
31896c5ddc4Srjs   nir_intrinsic_load_ray_object_to_world,
31996c5ddc4Srjs   nir_intrinsic_load_ray_sw_stack_size_intel,
32096c5ddc4Srjs   nir_intrinsic_load_ray_t_max,
32196c5ddc4Srjs   nir_intrinsic_load_ray_t_min,
32296c5ddc4Srjs   nir_intrinsic_load_ray_world_direction,
32396c5ddc4Srjs   nir_intrinsic_load_ray_world_origin,
32496c5ddc4Srjs   nir_intrinsic_load_ray_world_to_object,
32596c5ddc4Srjs   nir_intrinsic_load_rel_patch_id_ir3,
32696c5ddc4Srjs   nir_intrinsic_load_reloc_const_intel,
32796c5ddc4Srjs   nir_intrinsic_load_ring_es2gs_offset_amd,
32896c5ddc4Srjs   nir_intrinsic_load_ring_esgs_amd,
32996c5ddc4Srjs   nir_intrinsic_load_ring_tess_factors_amd,
33096c5ddc4Srjs   nir_intrinsic_load_ring_tess_factors_offset_amd,
33196c5ddc4Srjs   nir_intrinsic_load_ring_tess_offchip_amd,
33296c5ddc4Srjs   nir_intrinsic_load_ring_tess_offchip_offset_amd,
33396c5ddc4Srjs   nir_intrinsic_load_rt_arg_scratch_offset_amd,
33410e230b6Smaya   nir_intrinsic_load_sample_id,
33510e230b6Smaya   nir_intrinsic_load_sample_id_no_per_sample,
33610e230b6Smaya   nir_intrinsic_load_sample_mask_in,
33710e230b6Smaya   nir_intrinsic_load_sample_pos,
33810e230b6Smaya   nir_intrinsic_load_sample_pos_from_id,
33996c5ddc4Srjs   nir_intrinsic_load_sample_positions_pan,
34096c5ddc4Srjs   nir_intrinsic_load_sampler_lod_parameters_pan,
34196c5ddc4Srjs   nir_intrinsic_load_sbt_amd,
34210e230b6Smaya   nir_intrinsic_load_scratch,
34396c5ddc4Srjs   nir_intrinsic_load_scratch_base_ptr,
34496c5ddc4Srjs   nir_intrinsic_load_scratch_dxil,
34596c5ddc4Srjs   nir_intrinsic_load_shader_query_enabled_amd,
34696c5ddc4Srjs   nir_intrinsic_load_shader_record_ptr,
34710e230b6Smaya   nir_intrinsic_load_shared,
34896c5ddc4Srjs   nir_intrinsic_load_shared_base_ptr,
34996c5ddc4Srjs   nir_intrinsic_load_shared_block_intel,
35096c5ddc4Srjs   nir_intrinsic_load_shared_dxil,
35196c5ddc4Srjs   nir_intrinsic_load_shared_ir3,
35296c5ddc4Srjs   nir_intrinsic_load_simd_width_intel,
35310e230b6Smaya   nir_intrinsic_load_size_ir3,
35410e230b6Smaya   nir_intrinsic_load_ssbo,
35596c5ddc4Srjs   nir_intrinsic_load_ssbo_address,
35696c5ddc4Srjs   nir_intrinsic_load_ssbo_block_intel,
35710e230b6Smaya   nir_intrinsic_load_ssbo_ir3,
35810e230b6Smaya   nir_intrinsic_load_subgroup_eq_mask,
35910e230b6Smaya   nir_intrinsic_load_subgroup_ge_mask,
36010e230b6Smaya   nir_intrinsic_load_subgroup_gt_mask,
36110e230b6Smaya   nir_intrinsic_load_subgroup_id,
36296c5ddc4Srjs   nir_intrinsic_load_subgroup_id_shift_ir3,
36310e230b6Smaya   nir_intrinsic_load_subgroup_invocation,
36410e230b6Smaya   nir_intrinsic_load_subgroup_le_mask,
36510e230b6Smaya   nir_intrinsic_load_subgroup_lt_mask,
36610e230b6Smaya   nir_intrinsic_load_subgroup_size,
36796c5ddc4Srjs   nir_intrinsic_load_tcs_header_ir3,
36896c5ddc4Srjs   nir_intrinsic_load_tcs_in_param_base_r600,
36996c5ddc4Srjs   nir_intrinsic_load_tcs_num_patches_amd,
37096c5ddc4Srjs   nir_intrinsic_load_tcs_out_param_base_r600,
37196c5ddc4Srjs   nir_intrinsic_load_tcs_rel_patch_id_r600,
37296c5ddc4Srjs   nir_intrinsic_load_tcs_tess_factor_base_r600,
37310e230b6Smaya   nir_intrinsic_load_tess_coord,
37496c5ddc4Srjs   nir_intrinsic_load_tess_coord_r600,
37596c5ddc4Srjs   nir_intrinsic_load_tess_factor_base_ir3,
37610e230b6Smaya   nir_intrinsic_load_tess_level_inner,
37796c5ddc4Srjs   nir_intrinsic_load_tess_level_inner_default,
37810e230b6Smaya   nir_intrinsic_load_tess_level_outer,
37996c5ddc4Srjs   nir_intrinsic_load_tess_level_outer_default,
38096c5ddc4Srjs   nir_intrinsic_load_tess_param_base_ir3,
38196c5ddc4Srjs   nir_intrinsic_load_tess_rel_patch_id_amd,
38296c5ddc4Srjs   nir_intrinsic_load_texture_rect_scaling,
38396c5ddc4Srjs   nir_intrinsic_load_tlb_color_v3d,
38410e230b6Smaya   nir_intrinsic_load_ubo,
38596c5ddc4Srjs   nir_intrinsic_load_ubo_dxil,
38696c5ddc4Srjs   nir_intrinsic_load_ubo_vec4,
38710e230b6Smaya   nir_intrinsic_load_uniform,
38810e230b6Smaya   nir_intrinsic_load_user_clip_plane,
38996c5ddc4Srjs   nir_intrinsic_load_user_data_amd,
39010e230b6Smaya   nir_intrinsic_load_vertex_id,
39110e230b6Smaya   nir_intrinsic_load_vertex_id_zero_base,
39210e230b6Smaya   nir_intrinsic_load_view_index,
39310e230b6Smaya   nir_intrinsic_load_viewport_offset,
39410e230b6Smaya   nir_intrinsic_load_viewport_scale,
39596c5ddc4Srjs   nir_intrinsic_load_viewport_x_offset,
39610e230b6Smaya   nir_intrinsic_load_viewport_x_scale,
39796c5ddc4Srjs   nir_intrinsic_load_viewport_y_offset,
39810e230b6Smaya   nir_intrinsic_load_viewport_y_scale,
39910e230b6Smaya   nir_intrinsic_load_viewport_z_offset,
40010e230b6Smaya   nir_intrinsic_load_viewport_z_scale,
40196c5ddc4Srjs   nir_intrinsic_load_vs_primitive_stride_ir3,
40296c5ddc4Srjs   nir_intrinsic_load_vs_vertex_stride_ir3,
40310e230b6Smaya   nir_intrinsic_load_vulkan_descriptor,
40410e230b6Smaya   nir_intrinsic_load_work_dim,
40596c5ddc4Srjs   nir_intrinsic_load_workgroup_id,
40696c5ddc4Srjs   nir_intrinsic_load_workgroup_id_zero_base,
40796c5ddc4Srjs   nir_intrinsic_load_workgroup_num_input_primitives_amd,
40896c5ddc4Srjs   nir_intrinsic_load_workgroup_num_input_vertices_amd,
40996c5ddc4Srjs   nir_intrinsic_load_workgroup_size,
41096c5ddc4Srjs   nir_intrinsic_masked_swizzle_amd,
41196c5ddc4Srjs   nir_intrinsic_mbcnt_amd,
41296c5ddc4Srjs   nir_intrinsic_memcpy_deref,
41310e230b6Smaya   nir_intrinsic_memory_barrier,
41410e230b6Smaya   nir_intrinsic_memory_barrier_atomic_counter,
41510e230b6Smaya   nir_intrinsic_memory_barrier_buffer,
41610e230b6Smaya   nir_intrinsic_memory_barrier_image,
41710e230b6Smaya   nir_intrinsic_memory_barrier_shared,
41896c5ddc4Srjs   nir_intrinsic_memory_barrier_tcs_patch,
41910e230b6Smaya   nir_intrinsic_nop,
42096c5ddc4Srjs   nir_intrinsic_overwrite_tes_arguments_amd,
42196c5ddc4Srjs   nir_intrinsic_overwrite_vs_arguments_amd,
42296c5ddc4Srjs   nir_intrinsic_printf,
42310e230b6Smaya   nir_intrinsic_quad_broadcast,
42410e230b6Smaya   nir_intrinsic_quad_swap_diagonal,
42510e230b6Smaya   nir_intrinsic_quad_swap_horizontal,
42610e230b6Smaya   nir_intrinsic_quad_swap_vertical,
42796c5ddc4Srjs   nir_intrinsic_quad_swizzle_amd,
42810e230b6Smaya   nir_intrinsic_read_first_invocation,
42910e230b6Smaya   nir_intrinsic_read_invocation,
43096c5ddc4Srjs   nir_intrinsic_read_invocation_cond_ir3,
43110e230b6Smaya   nir_intrinsic_reduce,
43296c5ddc4Srjs   nir_intrinsic_report_ray_intersection,
43396c5ddc4Srjs   nir_intrinsic_rt_execute_callable,
43496c5ddc4Srjs   nir_intrinsic_rt_resume,
43596c5ddc4Srjs   nir_intrinsic_rt_return_amd,
43696c5ddc4Srjs   nir_intrinsic_rt_trace_ray,
43796c5ddc4Srjs   nir_intrinsic_scoped_barrier,
43896c5ddc4Srjs   nir_intrinsic_set_vertex_and_primitive_count,
43910e230b6Smaya   nir_intrinsic_shader_clock,
44010e230b6Smaya   nir_intrinsic_shared_atomic_add,
44196c5ddc4Srjs   nir_intrinsic_shared_atomic_add_dxil,
44210e230b6Smaya   nir_intrinsic_shared_atomic_and,
44396c5ddc4Srjs   nir_intrinsic_shared_atomic_and_dxil,
44410e230b6Smaya   nir_intrinsic_shared_atomic_comp_swap,
44596c5ddc4Srjs   nir_intrinsic_shared_atomic_comp_swap_dxil,
44610e230b6Smaya   nir_intrinsic_shared_atomic_exchange,
44796c5ddc4Srjs   nir_intrinsic_shared_atomic_exchange_dxil,
44810e230b6Smaya   nir_intrinsic_shared_atomic_fadd,
44910e230b6Smaya   nir_intrinsic_shared_atomic_fcomp_swap,
45010e230b6Smaya   nir_intrinsic_shared_atomic_fmax,
45110e230b6Smaya   nir_intrinsic_shared_atomic_fmin,
45210e230b6Smaya   nir_intrinsic_shared_atomic_imax,
45396c5ddc4Srjs   nir_intrinsic_shared_atomic_imax_dxil,
45410e230b6Smaya   nir_intrinsic_shared_atomic_imin,
45596c5ddc4Srjs   nir_intrinsic_shared_atomic_imin_dxil,
45610e230b6Smaya   nir_intrinsic_shared_atomic_or,
45796c5ddc4Srjs   nir_intrinsic_shared_atomic_or_dxil,
45810e230b6Smaya   nir_intrinsic_shared_atomic_umax,
45996c5ddc4Srjs   nir_intrinsic_shared_atomic_umax_dxil,
46010e230b6Smaya   nir_intrinsic_shared_atomic_umin,
46196c5ddc4Srjs   nir_intrinsic_shared_atomic_umin_dxil,
46210e230b6Smaya   nir_intrinsic_shared_atomic_xor,
46396c5ddc4Srjs   nir_intrinsic_shared_atomic_xor_dxil,
46410e230b6Smaya   nir_intrinsic_shuffle,
46510e230b6Smaya   nir_intrinsic_shuffle_down,
46610e230b6Smaya   nir_intrinsic_shuffle_up,
46710e230b6Smaya   nir_intrinsic_shuffle_xor,
46896c5ddc4Srjs   nir_intrinsic_sparse_residency_code_and,
46910e230b6Smaya   nir_intrinsic_ssbo_atomic_add,
47010e230b6Smaya   nir_intrinsic_ssbo_atomic_add_ir3,
47110e230b6Smaya   nir_intrinsic_ssbo_atomic_and,
47210e230b6Smaya   nir_intrinsic_ssbo_atomic_and_ir3,
47310e230b6Smaya   nir_intrinsic_ssbo_atomic_comp_swap,
47410e230b6Smaya   nir_intrinsic_ssbo_atomic_comp_swap_ir3,
47510e230b6Smaya   nir_intrinsic_ssbo_atomic_exchange,
47610e230b6Smaya   nir_intrinsic_ssbo_atomic_exchange_ir3,
47710e230b6Smaya   nir_intrinsic_ssbo_atomic_fadd,
47810e230b6Smaya   nir_intrinsic_ssbo_atomic_fcomp_swap,
47910e230b6Smaya   nir_intrinsic_ssbo_atomic_fmax,
48010e230b6Smaya   nir_intrinsic_ssbo_atomic_fmin,
48110e230b6Smaya   nir_intrinsic_ssbo_atomic_imax,
48210e230b6Smaya   nir_intrinsic_ssbo_atomic_imax_ir3,
48310e230b6Smaya   nir_intrinsic_ssbo_atomic_imin,
48410e230b6Smaya   nir_intrinsic_ssbo_atomic_imin_ir3,
48510e230b6Smaya   nir_intrinsic_ssbo_atomic_or,
48610e230b6Smaya   nir_intrinsic_ssbo_atomic_or_ir3,
48710e230b6Smaya   nir_intrinsic_ssbo_atomic_umax,
48810e230b6Smaya   nir_intrinsic_ssbo_atomic_umax_ir3,
48910e230b6Smaya   nir_intrinsic_ssbo_atomic_umin,
49010e230b6Smaya   nir_intrinsic_ssbo_atomic_umin_ir3,
49110e230b6Smaya   nir_intrinsic_ssbo_atomic_xor,
49210e230b6Smaya   nir_intrinsic_ssbo_atomic_xor_ir3,
49396c5ddc4Srjs   nir_intrinsic_store_buffer_amd,
49496c5ddc4Srjs   nir_intrinsic_store_combined_output_pan,
49510e230b6Smaya   nir_intrinsic_store_deref,
49696c5ddc4Srjs   nir_intrinsic_store_deref_block_intel,
49710e230b6Smaya   nir_intrinsic_store_global,
49896c5ddc4Srjs   nir_intrinsic_store_global_block_intel,
49996c5ddc4Srjs   nir_intrinsic_store_global_ir3,
50096c5ddc4Srjs   nir_intrinsic_store_local_shared_r600,
50110e230b6Smaya   nir_intrinsic_store_output,
50296c5ddc4Srjs   nir_intrinsic_store_per_primitive_output,
50310e230b6Smaya   nir_intrinsic_store_per_vertex_output,
50496c5ddc4Srjs   nir_intrinsic_store_raw_output_pan,
50510e230b6Smaya   nir_intrinsic_store_scratch,
50696c5ddc4Srjs   nir_intrinsic_store_scratch_dxil,
50710e230b6Smaya   nir_intrinsic_store_shared,
50896c5ddc4Srjs   nir_intrinsic_store_shared_block_intel,
50996c5ddc4Srjs   nir_intrinsic_store_shared_dxil,
51096c5ddc4Srjs   nir_intrinsic_store_shared_ir3,
51196c5ddc4Srjs   nir_intrinsic_store_shared_masked_dxil,
51210e230b6Smaya   nir_intrinsic_store_ssbo,
51396c5ddc4Srjs   nir_intrinsic_store_ssbo_block_intel,
51410e230b6Smaya   nir_intrinsic_store_ssbo_ir3,
51596c5ddc4Srjs   nir_intrinsic_store_ssbo_masked_dxil,
51696c5ddc4Srjs   nir_intrinsic_store_tf_r600,
51796c5ddc4Srjs   nir_intrinsic_store_tlb_sample_color_v3d,
51896c5ddc4Srjs   nir_intrinsic_terminate,
51996c5ddc4Srjs   nir_intrinsic_terminate_if,
52096c5ddc4Srjs   nir_intrinsic_terminate_ray,
52196c5ddc4Srjs   nir_intrinsic_trace_ray,
52296c5ddc4Srjs   nir_intrinsic_trace_ray_commit_intel,
52396c5ddc4Srjs   nir_intrinsic_trace_ray_continue_intel,
52496c5ddc4Srjs   nir_intrinsic_trace_ray_initial_intel,
52510e230b6Smaya   nir_intrinsic_vote_all,
52610e230b6Smaya   nir_intrinsic_vote_any,
52710e230b6Smaya   nir_intrinsic_vote_feq,
52810e230b6Smaya   nir_intrinsic_vote_ieq,
52910e230b6Smaya   nir_intrinsic_vulkan_resource_index,
53010e230b6Smaya   nir_intrinsic_vulkan_resource_reindex,
53196c5ddc4Srjs   nir_intrinsic_write_invocation_amd,
53210e230b6Smaya
53396c5ddc4Srjs   nir_last_intrinsic = nir_intrinsic_write_invocation_amd,
53410e230b6Smaya   nir_num_intrinsics = nir_last_intrinsic + 1
53510e230b6Smaya} nir_intrinsic_op;
53610e230b6Smaya
53796c5ddc4Srjstypedef enum {
53896c5ddc4Srjs   NIR_INTRINSIC_BASE,
53996c5ddc4Srjs   NIR_INTRINSIC_WRITE_MASK,
54096c5ddc4Srjs   NIR_INTRINSIC_STREAM_ID,
54196c5ddc4Srjs   NIR_INTRINSIC_UCP_ID,
54296c5ddc4Srjs   NIR_INTRINSIC_RANGE_BASE,
54396c5ddc4Srjs   NIR_INTRINSIC_RANGE,
54496c5ddc4Srjs   NIR_INTRINSIC_DESC_SET,
54596c5ddc4Srjs   NIR_INTRINSIC_BINDING,
54696c5ddc4Srjs   NIR_INTRINSIC_COMPONENT,
54796c5ddc4Srjs   NIR_INTRINSIC_COLUMN,
54896c5ddc4Srjs   NIR_INTRINSIC_INTERP_MODE,
54996c5ddc4Srjs   NIR_INTRINSIC_REDUCTION_OP,
55096c5ddc4Srjs   NIR_INTRINSIC_CLUSTER_SIZE,
55196c5ddc4Srjs   NIR_INTRINSIC_PARAM_IDX,
55296c5ddc4Srjs   NIR_INTRINSIC_IMAGE_DIM,
55396c5ddc4Srjs   NIR_INTRINSIC_IMAGE_ARRAY,
55496c5ddc4Srjs   NIR_INTRINSIC_FORMAT,
55596c5ddc4Srjs   NIR_INTRINSIC_ACCESS,
55696c5ddc4Srjs   NIR_INTRINSIC_CALL_IDX,
55796c5ddc4Srjs   NIR_INTRINSIC_STACK_SIZE,
55896c5ddc4Srjs   NIR_INTRINSIC_ALIGN_MUL,
55996c5ddc4Srjs   NIR_INTRINSIC_ALIGN_OFFSET,
56096c5ddc4Srjs   NIR_INTRINSIC_DESC_TYPE,
56196c5ddc4Srjs   NIR_INTRINSIC_SRC_TYPE,
56296c5ddc4Srjs   NIR_INTRINSIC_DEST_TYPE,
56396c5ddc4Srjs   NIR_INTRINSIC_SWIZZLE_MASK,
56496c5ddc4Srjs   NIR_INTRINSIC_IS_SWIZZLED,
56596c5ddc4Srjs   NIR_INTRINSIC_SLC_AMD,
56696c5ddc4Srjs   NIR_INTRINSIC_DST_ACCESS,
56796c5ddc4Srjs   NIR_INTRINSIC_SRC_ACCESS,
56896c5ddc4Srjs   NIR_INTRINSIC_DRIVER_LOCATION,
56996c5ddc4Srjs   NIR_INTRINSIC_MEMORY_SEMANTICS,
57096c5ddc4Srjs   NIR_INTRINSIC_MEMORY_MODES,
57196c5ddc4Srjs   NIR_INTRINSIC_MEMORY_SCOPE,
57296c5ddc4Srjs   NIR_INTRINSIC_EXECUTION_SCOPE,
57396c5ddc4Srjs   NIR_INTRINSIC_IO_SEMANTICS,
57496c5ddc4Srjs   NIR_INTRINSIC_ROUNDING_MODE,
57596c5ddc4Srjs   NIR_INTRINSIC_SATURATE,
57696c5ddc4Srjs   NIR_INTRINSIC_NUM_INDEX_FLAGS,
57796c5ddc4Srjs} nir_intrinsic_index_flag;
57896c5ddc4Srjs
57996c5ddc4Srjsextern const char *nir_intrinsic_index_names[NIR_INTRINSIC_NUM_INDEX_FLAGS];
58096c5ddc4Srjs
58110e230b6Smaya#endif /* _NIR_INTRINSICS_ */