nir_intrinsics.h revision 96c5ddc4
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 28typedef 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 537typedef 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 579extern const char *nir_intrinsic_index_names[NIR_INTRINSIC_NUM_INDEX_FLAGS]; 580 581#endif /* _NIR_INTRINSICS_ */