Lines Matching refs:intrinsic
42 """Class that represents all the information about an intrinsic opcode.
49 - name: the intrinsic name
58 - sysval: is this a system-value intrinsic
107 # Defines a new NIR intrinsic. By default, the intrinsic will have no sources
110 # You can set dest_comp=n to enable a destination for the intrinsic, in which
117 # the intrinsic has based on the dest_comp.
118 def intrinsic(name, src_comp=[], dest_comp=-1, indices=[],
138 # The clip-plane id for load_user_clip_plane intrinsic.
154 # The Vulkan descriptor set for vulkan_resource_index intrinsic.
157 # The Vulkan descriptor set binding for vulkan_resource_index intrinsic.
175 # Parameter index for a load_param intrinsic
188 # not set at the intrinsic if the NIR was created from SPIR-V.
201 # address parameter X of the intrinsic is guaranteed to satisfy the
211 # The Vulkan descriptor type for a vulkan_resource_[re]index intrinsic.
257 intrinsic("nop", flags=[CAN_ELIMINATE])
259 intrinsic("convert_alu_types", dest_comp=0, src_comp=[0],
263 intrinsic("load_param", dest_comp=0, indices=[PARAM_IDX], flags=[CAN_ELIMINATE])
265 intrinsic("load_deref", dest_comp=0, src_comp=[-1],
267 intrinsic("store_deref", src_comp=[-1, 0], indices=[WRITE_MASK, ACCESS])
268 intrinsic("copy_deref", src_comp=[-1, -1], indices=[DST_ACCESS, SRC_ACCESS])
269 intrinsic("memcpy_deref", src_comp=[-1, -1, 1], indices=[DST_ACCESS, SRC_ACCESS])
272 # load_var intrinsic acting on a shader input except that they interpolate the
277 intrinsic("interp_deref_at_centroid", dest_comp=0, src_comp=[1],
279 intrinsic("interp_deref_at_sample", src_comp=[1, 1], dest_comp=0,
281 intrinsic("interp_deref_at_offset", src_comp=[1, 2], dest_comp=0,
283 intrinsic("interp_deref_at_vertex", src_comp=[1, 1], dest_comp=0,
287 intrinsic("deref_buffer_array_length", src_comp=[-1], dest_comp=1,
292 intrinsic("get_ssbo_size", src_comp=[-1], dest_comp=1, bit_sizes=[32],
294 intrinsic("get_ubo_size", src_comp=[-1], dest_comp=1,
299 intrinsic("deref_mode_is", src_comp=[-1], dest_comp=1,
301 intrinsic("addr_mode_is", src_comp=[-1], dest_comp=1,
304 intrinsic("is_sparse_texels_resident", dest_comp=1, src_comp=[1], bit_sizes=[1],
307 intrinsic("sparse_residency_code_and", dest_comp=1, src_comp=[1, 1], bit_sizes=[32],
310 # a barrier is an intrinsic with no inputs/outputs but which can't be moved
313 intrinsic(name)
324 intrinsic("is_helper_invocation", dest_comp=1, flags=[CAN_ELIMINATE])
333 # patch. This intrinsic does not imply any sort of memory barrier.
337 # intrinsic.
344 intrinsic("scoped_barrier",
347 # Shader clock intrinsic with semantics analogous to the clock2x32ARB()
348 # GLSL intrinsic.
351 intrinsic("shader_clock", dest_comp=2, bit_sizes=[32], flags=[CAN_ELIMINATE],
361 intrinsic("ballot", src_comp=[1], dest_comp=0, flags=[CAN_ELIMINATE])
362 intrinsic("read_invocation", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
363 intrinsic("read_first_invocation", src_comp=[0], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
367 intrinsic("read_invocation_cond_ir3", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
375 intrinsic("elect", dest_comp=1, flags=[CAN_ELIMINATE])
376 intrinsic("first_invocation", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
377 intrinsic("last_invocation", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
394 intrinsic("discard_if", src_comp=[1])
395 intrinsic("demote_if", src_comp=[1])
396 intrinsic("terminate_if", src_comp=[1])
399 intrinsic("vote_any", src_comp=[1], dest_comp=1, flags=[CAN_ELIMINATE])
400 intrinsic("vote_all", src_comp=[1], dest_comp=1, flags=[CAN_ELIMINATE])
401 intrinsic("vote_feq", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE])
402 intrinsic("vote_ieq", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE])
409 intrinsic("ballot_bitfield_extract", src_comp=[4, 1], dest_comp=1, flags=[CAN_ELIMINATE])
410 intrinsic("ballot_bit_count_reduce", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
411 intrinsic("ballot_bit_count_inclusive", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
412 intrinsic("ballot_bit_count_exclusive", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
413 intrinsic("ballot_find_lsb", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
414 intrinsic("ballot_find_msb", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
417 intrinsic("shuffle", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
418 intrinsic("shuffle_xor", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
419 intrinsic("shuffle_up", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
420 intrinsic("shuffle_down", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
423 intrinsic("quad_broadcast", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
424 intrinsic("quad_swap_horizontal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
425 intrinsic("quad_swap_vertical", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
426 intrinsic("quad_swap_diagonal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
428 intrinsic("reduce", src_comp=[0], dest_comp=0, bit_sizes=src0,
430 intrinsic("inclusive_scan", src_comp=[0], dest_comp=0, bit_sizes=src0,
432 intrinsic("exclusive_scan", src_comp=[0], dest_comp=0, bit_sizes=src0,
436 intrinsic("quad_swizzle_amd", src_comp=[0], dest_comp=0, bit_sizes=src0,
438 intrinsic("masked_swizzle_amd", src_comp=[0], dest_comp=0, bit_sizes=src0,
440 intrinsic("write_invocation_amd", src_comp=[0, 0, 1], dest_comp=0, bit_sizes=src0,
443 intrinsic("mbcnt_amd", src_comp=[1, 1], dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
445 intrinsic("byte_permute_amd", src_comp=[1, 1, 1], dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER])
447 intrinsic("lane_permute_16_amd", src_comp=[1, 1, 1], dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
455 intrinsic("emit_vertex", indices=[STREAM_ID])
456 intrinsic("end_primitive", indices=[STREAM_ID])
467 intrinsic("emit_vertex_with_counter", src_comp=[1, 1], indices=[STREAM_ID])
468 intrinsic("end_primitive_with_counter", src_comp=[1, 1], indices=[STREAM_ID])
470 intrinsic("set_vertex_and_primitive_count", src_comp=[1, 1], indices=[STREAM_ID])
486 intrinsic("trace_ray", src_comp=[-1, 1, 1, 1, 1, 1, 3, 1, 3, 1, -1])
488 intrinsic("report_ray_intersection", src_comp=[1, 1], dest_comp=1)
489 intrinsic("ignore_ray_intersection")
490 intrinsic("accept_ray_intersection") # Not in SPIR-V; useful for lowering
491 intrinsic("terminate_ray")
493 intrinsic("execute_callable", src_comp=[1, -1])
502 intrinsic("rt_resume", indices=[CALL_IDX, STACK_SIZE])
508 intrinsic("rt_execute_callable", src_comp=[1, -1], indices=[CALL_IDX,STACK_SIZE])
512 intrinsic("rt_trace_ray", src_comp=[-1, 1, 1, 1, 1, 1, 3, 1, 3, 1, -1],
522 intrinsic(name + "_deref", src_comp=[-1], dest_comp=1, flags=flags)
523 intrinsic(name, src_comp=[1], dest_comp=1, indices=[BASE], flags=flags)
526 intrinsic(name + "_deref", src_comp=[-1, 1], dest_comp=1)
527 intrinsic(name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
530 intrinsic(name + "_deref", src_comp=[-1, 1, 1], dest_comp=1)
531 intrinsic(name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
552 # qualifiers that influence the semantics of the intrinsic. In the second and
558 # accessed by the intrinsic. Components not applicable to the image target
564 intrinsic("image_deref_" + name, src_comp=[-1] + src_comp,
566 intrinsic("image_" + name, src_comp=[1] + src_comp,
568 intrinsic("bindless_image_" + name, src_comp=[1] + src_comp,
603 # vulkan_surface_index intrinsic takes the descriptor set and binding as
610 # The vulkan_resource_reindex intrinsic takes a resource index in src0
614 intrinsic("vulkan_resource_index", src_comp=[1], dest_comp=0,
617 intrinsic("vulkan_resource_reindex", src_comp=[0, 1], dest_comp=0,
619 intrinsic("load_vulkan_descriptor", src_comp=[-1], dest_comp=0,
664 intrinsic("deref_atomic_" + name, src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
665 intrinsic("ssbo_atomic_" + name, src_comp=[-1, 1, 1], dest_comp=1, indices=[ACCESS])
666 intrinsic("shared_atomic_" + name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
667 intrinsic("global_atomic_" + name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
670 intrinsic("deref_atomic_" + name, src_comp=[-1, 1, 1], dest_comp=1, indices=[ACCESS])
671 intrinsic("ssbo_atomic_" + name, src_comp=[-1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
672 intrinsic("shared_atomic_" + name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
673 intrinsic("global_atomic_" + name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
691 intrinsic("load_" + name, [], dest_comp, indices,
827 # barycoord source of a load_interpolated_input intrinsic.
830 intrinsic("load_barycentric_" + name, src_comp=src_comp, dest_comp=dst_comp,
847 intrinsic("load_sample_pos_from_id", src_comp=[1], dest_comp=2,
851 intrinsic("load_size_ir3", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
857 intrinsic("load_texture_rect_scaling", src_comp=[1], dest_comp=2,
860 # Fragment shader input interpolation delta intrinsic.
870 intrinsic("load_fs_input_interp_deltas", src_comp=[1], dest_comp=3,
898 intrinsic("load_" + name, src_comp, dest_comp=0, indices=indices,
955 intrinsic("store_" + name, [0] + srcs, indices=indices, flags=flags)
978 intrinsic("load_frag_shading_rate", dest_comp=1, bit_sizes=[32],
985 intrinsic("printf", src_comp=[1, 1], dest_comp=1, bit_sizes=[32])
1006 intrinsic("ssbo_atomic_add_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1007 intrinsic("ssbo_atomic_imin_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1008 intrinsic("ssbo_atomic_umin_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1009 intrinsic("ssbo_atomic_imax_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1010 intrinsic("ssbo_atomic_umax_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1011 intrinsic("ssbo_atomic_and_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1012 intrinsic("ssbo_atomic_or_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1013 intrinsic("ssbo_atomic_xor_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1014 intrinsic("ssbo_atomic_exchange_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1015 intrinsic("ssbo_atomic_comp_swap_ir3", src_comp=[1, 1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1036 intrinsic("cond_end_ir3", src_comp=[1])
1039 intrinsic("end_patch_ir3")
1064 intrinsic("bindless_resource_ir3", [1], dest_comp=1, indices=[DESC_SET], flags=[CAN_ELIMINATE, CAN_REORDER])
1068 intrinsic("store_ssbo_masked_dxil", [1, 1, 1, 1])
1070 intrinsic("store_shared_dxil", [1, 1])
1072 intrinsic("store_shared_masked_dxil", [1, 1, 1])
1074 intrinsic("store_scratch_dxil", [1, 1])
1095 intrinsic("shared_atomic_add_dxil", src_comp=[1, 1], dest_comp=1)
1096 intrinsic("shared_atomic_imin_dxil", src_comp=[1, 1], dest_comp=1)
1097 intrinsic("shared_atomic_umin_dxil", src_comp=[1, 1], dest_comp=1)
1098 intrinsic("shared_atomic_imax_dxil", src_comp=[1, 1], dest_comp=1)
1099 intrinsic("shared_atomic_umax_dxil", src_comp=[1, 1], dest_comp=1)
1100 intrinsic("shared_atomic_and_dxil", src_comp=[1, 1], dest_comp=1)
1101 intrinsic("shared_atomic_or_dxil", src_comp=[1, 1], dest_comp=1)
1102 intrinsic("shared_atomic_xor_dxil", src_comp=[1, 1], dest_comp=1)
1103 intrinsic("shared_atomic_exchange_dxil", src_comp=[1, 1], dest_comp=1)
1104 intrinsic("shared_atomic_comp_swap_dxil", src_comp=[1, 1, 1], dest_comp=1)
1142 intrinsic("load_local_shared_r600", src_comp=[0], dest_comp=0, indices = [], flags = [CAN_ELIMINATE])
1150 intrinsic("load_buffer_amd", src_comp=[4, 1, 1], dest_comp=0, indices=[BASE, IS_SWIZZLED, SLC_AMD, MEMORY_MODES], flags=[CAN_ELIMINATE])
1152 intrinsic("store_buffer_amd", src_comp=[0, 4, 1, 1], indices=[BASE, WRITE_MASK, IS_SWIZZLED, SLC_AMD, MEMORY_MODES])
1155 intrinsic("gds_atomic_add_amd", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
1179 intrinsic("has_input_vertex_amd", src_comp=[], dest_comp=1, bit_sizes=[1], indices=[])
1180 intrinsic("has_input_primitive_amd", src_comp=[], dest_comp=1, bit_sizes=[1], indices=[])
1193 intrinsic("load_cull_front_face_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1195 intrinsic("load_cull_back_face_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1197 intrinsic("load_cull_ccw_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1199 intrinsic("load_cull_small_primitives_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1201 intrinsic("load_cull_any_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1203 intrinsic("load_cull_small_prim_precision_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER])
1205 intrinsic("load_initial_edgeflags_amd", src_comp=[], dest_comp=1, bit_sizes=[32], indices=[])
1207 intrinsic("export_vertex_amd", src_comp=[], indices=[])
1209 intrinsic("export_primitive_amd", src_comp=[1], indices=[])
1211 intrinsic("alloc_vertices_and_primitives_amd", src_comp=[1, 1], indices=[])
1213 intrinsic("overwrite_vs_arguments_amd", src_comp=[1, 1], indices=[])
1215 intrinsic("overwrite_tes_arguments_amd", src_comp=[1, 1, 1, 1], indices=[])
1219 intrinsic("load_sbt_amd", dest_comp=4, bit_sizes=[32], indices=[BINDING],
1228 intrinsic("bvh64_intersect_ray_amd", [4, 2, 1, 3, 3, 3], 4, flags=[CAN_ELIMINATE, CAN_REORDER])
1231 intrinsic("rt_return_amd")
1257 # V3D-specific intrinsic to load the number of layers attached to
1259 intrinsic("load_fb_layers_v3d", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
1267 intrinsic("image_deref_load_param_intel", src_comp=[1], dest_comp=0,
1278 intrinsic("load_global_const_block_intel", src_comp=[1, 1], dest_comp=0,
1285 intrinsic("load_reloc_const_intel", dest_comp=1, bit_sizes=[32],
1290 intrinsic("load_desc_set_address_intel", dest_comp=1, bit_sizes=[64],
1294 intrinsic("load_deref_block_intel", dest_comp=0, src_comp=[-1],
1296 intrinsic("store_deref_block_intel", src_comp=[-1, 0], indices=[WRITE_MASK, ACCESS])
1323 intrinsic("btd_spawn_intel", src_comp=[1, 1])
1325 intrinsic("btd_stack_push_intel", indices=[STACK_SIZE])
1327 intrinsic("btd_retire_intel")
1330 intrinsic("trace_ray_initial_intel")
1331 intrinsic("trace_ray_commit_intel")
1332 intrinsic("trace_ray_continue_intel")