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.
275 intrinsic("nop", flags=[CAN_ELIMINATE])
277 intrinsic("convert_alu_types", dest_comp=0, src_comp=[0],
281 intrinsic("load_param", dest_comp=0, indices=[PARAM_IDX], flags=[CAN_ELIMINATE])
283 intrinsic("load_deref", dest_comp=0, src_comp=[-1],
285 intrinsic("store_deref", src_comp=[-1, 0], indices=[WRITE_MASK, ACCESS])
286 intrinsic("copy_deref", src_comp=[-1, -1], indices=[DST_ACCESS, SRC_ACCESS])
287 intrinsic("memcpy_deref", src_comp=[-1, -1, 1], indices=[DST_ACCESS, SRC_ACCESS])
290 # load_var intrinsic acting on a shader input except that they interpolate the
295 intrinsic("interp_deref_at_centroid", dest_comp=0, src_comp=[1],
297 intrinsic("interp_deref_at_sample", src_comp=[1, 1], dest_comp=0,
299 intrinsic("interp_deref_at_offset", src_comp=[1, 2], dest_comp=0,
301 intrinsic("interp_deref_at_vertex", src_comp=[1, 1], dest_comp=0,
305 intrinsic("deref_buffer_array_length", src_comp=[-1], dest_comp=1,
310 intrinsic("get_ssbo_size", src_comp=[-1], dest_comp=1, bit_sizes=[32],
312 intrinsic("get_ubo_size", src_comp=[-1], dest_comp=1,
317 intrinsic("deref_mode_is", src_comp=[-1], dest_comp=1,
319 intrinsic("addr_mode_is", src_comp=[-1], dest_comp=1,
322 intrinsic("is_sparse_texels_resident", dest_comp=1, src_comp=[1], bit_sizes=[1,32],
325 intrinsic("sparse_residency_code_and", dest_comp=1, src_comp=[1, 1], bit_sizes=[32],
328 # a barrier is an intrinsic with no inputs/outputs but which can't be moved
331 intrinsic(name)
342 intrinsic("is_helper_invocation", dest_comp=1, flags=[CAN_ELIMINATE])
351 # patch. This intrinsic does not imply any sort of memory barrier.
355 # intrinsic.
362 intrinsic("scoped_barrier",
365 # Shader clock intrinsic with semantics analogous to the clock2x32ARB()
366 # GLSL intrinsic.
369 intrinsic("shader_clock", dest_comp=2, bit_sizes=[32], flags=[CAN_ELIMINATE],
379 intrinsic("ballot", src_comp=[1], dest_comp=0, flags=[CAN_ELIMINATE])
380 intrinsic("read_invocation", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
381 intrinsic("read_first_invocation", src_comp=[0], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
385 intrinsic("read_invocation_cond_ir3", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
393 intrinsic("elect", dest_comp=1, flags=[CAN_ELIMINATE])
394 intrinsic("first_invocation", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
395 intrinsic("last_invocation", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
412 intrinsic("discard_if", src_comp=[1])
413 intrinsic("demote_if", src_comp=[1])
414 intrinsic("terminate_if", src_comp=[1])
417 intrinsic("vote_any", src_comp=[1], dest_comp=1, flags=[CAN_ELIMINATE])
418 intrinsic("vote_all", src_comp=[1], dest_comp=1, flags=[CAN_ELIMINATE])
419 intrinsic("vote_feq", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE])
420 intrinsic("vote_ieq", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE])
427 intrinsic("ballot_bitfield_extract", src_comp=[4, 1], dest_comp=1, flags=[CAN_ELIMINATE])
428 intrinsic("ballot_bit_count_reduce", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
429 intrinsic("ballot_bit_count_inclusive", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
430 intrinsic("ballot_bit_count_exclusive", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
431 intrinsic("ballot_find_lsb", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
432 intrinsic("ballot_find_msb", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
435 intrinsic("shuffle", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
436 intrinsic("shuffle_xor", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
437 intrinsic("shuffle_up", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
438 intrinsic("shuffle_down", src_comp=[0, 1], dest_comp=0, bit_sizes=src0, flags=[CAN_ELIMINATE])
441 intrinsic("quad_broadcast", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
442 intrinsic("quad_swap_horizontal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
443 intrinsic("quad_swap_vertical", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
444 intrinsic("quad_swap_diagonal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
446 intrinsic("reduce", src_comp=[0], dest_comp=0, bit_sizes=src0,
448 intrinsic("inclusive_scan", src_comp=[0], dest_comp=0, bit_sizes=src0,
450 intrinsic("exclusive_scan", src_comp=[0], dest_comp=0, bit_sizes=src0,
454 intrinsic("quad_swizzle_amd", src_comp=[0], dest_comp=0, bit_sizes=src0,
456 intrinsic("masked_swizzle_amd", src_comp=[0], dest_comp=0, bit_sizes=src0,
458 intrinsic("write_invocation_amd", src_comp=[0, 0, 1], dest_comp=0, bit_sizes=src0,
461 intrinsic("mbcnt_amd", src_comp=[1, 1], dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
463 intrinsic("byte_permute_amd", src_comp=[1, 1, 1], dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER])
465 intrinsic("lane_permute_16_amd", src_comp=[1, 1, 1], dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE])
473 intrinsic("emit_vertex", indices=[STREAM_ID])
474 intrinsic("end_primitive", indices=[STREAM_ID])
485 intrinsic("emit_vertex_with_counter", src_comp=[1, 1], indices=[STREAM_ID])
486 intrinsic("end_primitive_with_counter", src_comp=[1, 1], indices=[STREAM_ID])
488 intrinsic("set_vertex_and_primitive_count", src_comp=[1, 1], indices=[STREAM_ID])
501 intrinsic("launch_mesh_workgroups", src_comp=[3], indices=[BASE, RANGE])
517 intrinsic("trace_ray", src_comp=[-1, 1, 1, 1, 1, 1, 3, 1, 3, 1, -1])
519 intrinsic("report_ray_intersection", src_comp=[1, 1], dest_comp=1)
520 intrinsic("ignore_ray_intersection")
521 intrinsic("accept_ray_intersection") # Not in SPIR-V; useful for lowering
522 intrinsic("terminate_ray")
524 intrinsic("execute_callable", src_comp=[1, -1])
536 intrinsic("rq_initialize", src_comp=[-1, -1, 1, 1, 3, 1, 3, 1])
538 intrinsic("rq_terminate", src_comp=[-1])
540 intrinsic("rq_proceed", src_comp=[-1], dest_comp=1)
542 intrinsic("rq_generate_intersection", src_comp=[-1, 1])
544 intrinsic("rq_confirm_intersection", src_comp=[-1])
546 intrinsic("rq_load", src_comp=[-1, 1], dest_comp=0, indices=[BASE,COLUMN])
555 intrinsic("rt_resume", indices=[CALL_IDX, STACK_SIZE])
561 intrinsic("rt_execute_callable", src_comp=[1, -1], indices=[CALL_IDX,STACK_SIZE])
565 intrinsic("rt_trace_ray", src_comp=[-1, 1, 1, 1, 1, 1, 3, 1, 3, 1, -1],
581 intrinsic(name + "_deref", src_comp=[-1], dest_comp=1, flags=flags)
582 intrinsic(name, src_comp=[1], dest_comp=1, indices=[BASE], flags=flags)
585 intrinsic(name + "_deref", src_comp=[-1, 1], dest_comp=1)
586 intrinsic(name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
589 intrinsic(name + "_deref", src_comp=[-1, 1, 1], dest_comp=1)
590 intrinsic(name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
611 # qualifiers that influence the semantics of the intrinsic. In the second and
619 # accessed by the intrinsic. Components not applicable to the image target
625 intrinsic("image_deref_" + name, src_comp=[-1] + src_comp,
627 intrinsic("image_" + name, src_comp=[1] + src_comp,
629 intrinsic("bindless_image_" + name, src_comp=[-1] + src_comp,
664 # vulkan_surface_index intrinsic takes the descriptor set and binding as
671 # The vulkan_resource_reindex intrinsic takes a resource index in src0
675 intrinsic("vulkan_resource_index", src_comp=[1], dest_comp=0,
678 intrinsic("vulkan_resource_reindex", src_comp=[0, 1], dest_comp=0,
680 intrinsic("load_vulkan_descriptor", src_comp=[-1], dest_comp=0,
733 intrinsic("deref_atomic_" + name, src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
734 intrinsic("ssbo_atomic_" + name, src_comp=[-1, 1, 1], dest_comp=1, indices=[ACCESS])
735 intrinsic("shared_atomic_" + name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
736 intrinsic("task_payload_atomic_" + name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
737 intrinsic("global_atomic_" + name, src_comp=[1, 1], dest_comp=1, indices=[])
738 intrinsic("global_atomic_" + name + "_2x32", src_comp=[2, 1], dest_comp=1, indices=[])
739 intrinsic("global_atomic_" + name + "_amd", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
741 intrinsic("global_atomic_" + name + "_ir3", src_comp=[2, 1], dest_comp=1, indices=[BASE])
744 intrinsic("deref_atomic_" + name, src_comp=[-1, 1, 1], dest_comp=1, indices=[ACCESS])
745 intrinsic("ssbo_atomic_" + name, src_comp=[-1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
746 intrinsic("shared_atomic_" + name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
747 intrinsic("task_payload_atomic_" + name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
748 intrinsic("global_atomic_" + name, src_comp=[1, 1, 1], dest_comp=1, indices=[])
749 intrinsic("global_atomic_" + name + "_2x32", src_comp=[2, 1, 1], dest_comp=1, indices=[])
750 intrinsic("global_atomic_" + name + "_amd", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[BASE])
752 intrinsic("global_atomic_" + name + "_ir3", src_comp=[2, 1, 1], dest_comp=1, indices=[BASE])
770 intrinsic("load_" + name, [], dest_comp, indices,
917 # barycoord source of a load_interpolated_input intrinsic.
920 intrinsic("load_barycentric_" + name, src_comp=src_comp, dest_comp=dst_comp,
937 intrinsic("load_sample_pos_from_id", src_comp=[1], dest_comp=2,
940 intrinsic("load_persp_center_rhw_ir3", dest_comp=1,
947 intrinsic("load_texture_rect_scaling", src_comp=[1], dest_comp=2,
950 # Fragment shader input interpolation delta intrinsic.
960 intrinsic("load_fs_input_interp_deltas", src_comp=[1], dest_comp=3,
988 intrinsic("load_" + name, src_comp, dest_comp=0, indices=indices,
1049 intrinsic("store_" + name, [0] + srcs, indices=indices, flags=flags)
1076 intrinsic("load_frag_shading_rate", dest_comp=1, bit_sizes=[32],
1083 intrinsic("printf", src_comp=[1, 1], dest_comp=1, bit_sizes=[32])
1115 intrinsic("ssbo_atomic_add_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1116 intrinsic("ssbo_atomic_imin_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1117 intrinsic("ssbo_atomic_umin_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1118 intrinsic("ssbo_atomic_imax_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1119 intrinsic("ssbo_atomic_umax_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1120 intrinsic("ssbo_atomic_and_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1121 intrinsic("ssbo_atomic_or_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1122 intrinsic("ssbo_atomic_xor_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1123 intrinsic("ssbo_atomic_exchange_ir3", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1124 intrinsic("ssbo_atomic_comp_swap_ir3", src_comp=[1, 1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
1145 intrinsic("cond_end_ir3", src_comp=[1])
1148 intrinsic("end_patch_ir3")
1173 intrinsic("bindless_resource_ir3", [1], dest_comp=1, indices=[DESC_SET], flags=[CAN_ELIMINATE, CAN_REORDER])
1188 intrinsic("preamble_start_ir3", [], dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
1192 # IR3-specific intrinsic for stc. Should be used in the shader preamble.
1195 # IR3-specific intrinsic for ldc.k. Copies UBO to constant file.
1198 intrinsic("copy_ubo_to_uniform_ir3", [1, 1], indices=[BASE, RANGE])
1202 intrinsic("store_ssbo_masked_dxil", [1, 1, 1, 1])
1204 intrinsic("store_shared_dxil", [1, 1])
1206 intrinsic("store_shared_masked_dxil", [1, 1, 1])
1208 intrinsic("store_scratch_dxil", [1, 1])
1229 intrinsic("shared_atomic_add_dxil", src_comp=[1, 1], dest_comp=1)
1230 intrinsic("shared_atomic_imin_dxil", src_comp=[1, 1], dest_comp=1)
1231 intrinsic("shared_atomic_umin_dxil", src_comp=[1, 1], dest_comp=1)
1232 intrinsic("shared_atomic_imax_dxil", src_comp=[1, 1], dest_comp=1)
1233 intrinsic("shared_atomic_umax_dxil", src_comp=[1, 1], dest_comp=1)
1234 intrinsic("shared_atomic_and_dxil", src_comp=[1, 1], dest_comp=1)
1235 intrinsic("shared_atomic_or_dxil", src_comp=[1, 1], dest_comp=1)
1236 intrinsic("shared_atomic_xor_dxil", src_comp=[1, 1], dest_comp=1)
1237 intrinsic("shared_atomic_exchange_dxil", src_comp=[1, 1], dest_comp=1)
1238 intrinsic("shared_atomic_comp_swap_dxil", src_comp=[1, 1, 1], dest_comp=1)
1276 intrinsic("load_local_shared_r600", src_comp=[0], dest_comp=0, indices = [], flags = [CAN_ELIMINATE])
1284 intrinsic("load_buffer_amd", src_comp=[4, 1, 1], dest_comp=0, indices=[BASE, IS_SWIZZLED, SLC_AMD, MEMORY_MODES], flags=[CAN_ELIMINATE])
1286 intrinsic("store_buffer_amd", src_comp=[0, 4, 1, 1], indices=[BASE, WRITE_MASK, IS_SWIZZLED, SLC_AMD, MEMORY_MODES])
1294 intrinsic("gds_atomic_add_amd", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
1330 intrinsic("has_input_vertex_amd", src_comp=[], dest_comp=1, bit_sizes=[1], indices=[])
1331 intrinsic("has_input_primitive_amd", src_comp=[], dest_comp=1, bit_sizes=[1], indices=[])
1344 intrinsic("load_cull_front_face_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1346 intrinsic("load_cull_back_face_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1348 intrinsic("load_cull_ccw_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1350 intrinsic("load_cull_small_primitives_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1352 intrinsic("load_cull_any_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
1354 intrinsic("load_cull_small_prim_precision_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER])
1356 intrinsic("load_initial_edgeflags_amd", src_comp=[], dest_comp=1, bit_sizes=[32], indices=[])
1358 intrinsic("export_vertex_amd", src_comp=[], indices=[])
1360 intrinsic("export_primitive_amd", src_comp=[1], indices=[])
1362 intrinsic("alloc_vertices_and_primitives_amd", src_comp=[1, 1], indices=[])
1364 intrinsic("overwrite_vs_arguments_amd", src_comp=[1, 1], indices=[])
1366 intrinsic("overwrite_tes_arguments_amd", src_comp=[1, 1, 1, 1], indices=[])
1377 intrinsic("bvh64_intersect_ray_amd", [4, 2, 1, 3, 3, 3], 4, flags=[CAN_ELIMINATE, CAN_REORDER])
1380 intrinsic("rt_return_amd")
1392 intrinsic("load_force_vrs_rates_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER])
1394 intrinsic("load_scalar_arg_amd", dest_comp=0, bit_sizes=[32], indices=[BASE, ARG_UPPER_BOUND_U32_AMD], flags=[CAN_ELIMINATE, CAN_REORDER])
1395 intrinsic("load_vector_arg_amd", dest_comp=0, bit_sizes=[32], indices=[BASE, ARG_UPPER_BOUND_U32_AMD], flags=[CAN_ELIMINATE, CAN_REORDER])
1398 intrinsic("load_smem_amd", src_comp=[1, 1], dest_comp=0, bit_sizes=[32],
1403 intrinsic("load_shared2_amd", [1], dest_comp=2, indices=[OFFSET0, OFFSET1, ST64], flags=[CAN_ELIMINATE])
1406 intrinsic("store_shared2_amd", [2, 1], indices=[OFFSET0, OFFSET1, ST64])
1432 # V3D-specific intrinsic to load the number of layers attached to
1434 intrinsic("load_fb_layers_v3d", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
1442 intrinsic("image_deref_load_param_intel", src_comp=[1], dest_comp=0,
1453 intrinsic("load_global_const_block_intel", src_comp=[1, 1], dest_comp=0,
1460 intrinsic("load_reloc_const_intel", dest_comp=1, bit_sizes=[32],
1465 intrinsic("load_desc_set_address_intel", dest_comp=1, bit_sizes=[64],
1469 intrinsic("load_deref_block_intel", dest_comp=0, src_comp=[-1],
1471 intrinsic("store_deref_block_intel", src_comp=[-1, 0], indices=[WRITE_MASK, ACCESS])
1502 intrinsic("btd_spawn_intel", src_comp=[1, 1])
1504 intrinsic("btd_stack_push_intel", indices=[STACK_SIZE])
1506 intrinsic("btd_retire_intel")
1508 # Intel-specific ray-tracing intrinsic
1510 intrinsic("trace_ray_intel", src_comp=[1, 1, 1], indices=[SYNCHRONOUS])
1538 intrinsic("load_point_coord_maybe_flipped", dest_comp=2, bit_sizes=[32])