Lines Matching refs:intrinsic
31 """Class that represents all the information about an intrinsic opcode.
38 - name: the intrinsic name
47 - sysval: is this a system-value intrinsic
93 # intrinsic
96 # intrinsic
106 # Parameter index for a load_param intrinsic
133 # Defines a new NIR intrinsic. By default, the intrinsic will have no sources
136 # You can set dest_comp=n to enable a destination for the intrinsic, in which
143 # the intrinsic has based on the dest_comp.
144 def intrinsic(name, src_comp=[], dest_comp=-1, indices=[],
150 intrinsic("nop", flags=[CAN_ELIMINATE])
152 intrinsic("load_param", dest_comp=0, indices=[PARAM_IDX], flags=[CAN_ELIMINATE])
154 intrinsic("load_deref", dest_comp=0, src_comp=[-1],
156 intrinsic("store_deref", src_comp=[-1, 0], indices=[WRMASK, ACCESS])
157 intrinsic("copy_deref", src_comp=[-1, -1], indices=[DST_ACCESS, SRC_ACCESS])
160 # load_var intrinsic acting on a shader input except that they interpolate the
165 intrinsic("interp_deref_at_centroid", dest_comp=0, src_comp=[1],
167 intrinsic("interp_deref_at_sample", src_comp=[1, 1], dest_comp=0,
169 intrinsic("interp_deref_at_offset", src_comp=[1, 2], dest_comp=0,
173 intrinsic("deref_buffer_array_length", src_comp=[-1], dest_comp=1,
178 intrinsic("get_buffer_size", src_comp=[-1], dest_comp=1,
181 # a barrier is an intrinsic with no inputs/outputs but which can't be moved
184 intrinsic(name)
190 # intrinsic.
193 # Shader clock intrinsic with semantics analogous to the clock2x32ARB()
194 # GLSL intrinsic.
197 intrinsic("shader_clock", dest_comp=2, flags=[CAN_ELIMINATE])
206 intrinsic("ballot", src_comp=[1], dest_comp=0, flags=[CAN_ELIMINATE])
207 intrinsic("read_invocation", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
208 intrinsic("read_first_invocation", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
216 intrinsic("elect", dest_comp=1, flags=[CAN_ELIMINATE])
217 intrinsic("first_invocation", dest_comp=1, flags=[CAN_ELIMINATE])
231 intrinsic("discard_if", src_comp=[1])
234 intrinsic("vote_any", src_comp=[1], dest_comp=1, flags=[CAN_ELIMINATE])
235 intrinsic("vote_all", src_comp=[1], dest_comp=1, flags=[CAN_ELIMINATE])
236 intrinsic("vote_feq", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE])
237 intrinsic("vote_ieq", src_comp=[0], dest_comp=1, flags=[CAN_ELIMINATE])
244 intrinsic("ballot_bitfield_extract", src_comp=[4, 1], dest_comp=1, flags=[CAN_ELIMINATE])
245 intrinsic("ballot_bit_count_reduce", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
246 intrinsic("ballot_bit_count_inclusive", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
247 intrinsic("ballot_bit_count_exclusive", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
248 intrinsic("ballot_find_lsb", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
249 intrinsic("ballot_find_msb", src_comp=[4], dest_comp=1, flags=[CAN_ELIMINATE])
252 intrinsic("shuffle", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
253 intrinsic("shuffle_xor", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
254 intrinsic("shuffle_up", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
255 intrinsic("shuffle_down", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
258 intrinsic("quad_broadcast", src_comp=[0, 1], dest_comp=0, flags=[CAN_ELIMINATE])
259 intrinsic("quad_swap_horizontal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
260 intrinsic("quad_swap_vertical", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
261 intrinsic("quad_swap_diagonal", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINATE])
263 intrinsic("reduce", src_comp=[0], dest_comp=0, indices=[REDUCTION_OP, CLUSTER_SIZE],
265 intrinsic("inclusive_scan", src_comp=[0], dest_comp=0, indices=[REDUCTION_OP],
267 intrinsic("exclusive_scan", src_comp=[0], dest_comp=0, indices=[REDUCTION_OP],
276 intrinsic("emit_vertex", indices=[STREAM_ID])
277 intrinsic("end_primitive", indices=[STREAM_ID])
286 intrinsic("emit_vertex_with_counter", src_comp=[1], indices=[STREAM_ID])
287 intrinsic("end_primitive_with_counter", src_comp=[1], indices=[STREAM_ID])
288 intrinsic("set_vertex_count", src_comp=[1])
296 intrinsic(name + "_deref", src_comp=[-1], dest_comp=1, flags=flags)
297 intrinsic(name, src_comp=[1], dest_comp=1, indices=[BASE], flags=flags)
300 intrinsic(name + "_deref", src_comp=[-1, 1], dest_comp=1)
301 intrinsic(name, src_comp=[1, 1], dest_comp=1, indices=[BASE])
304 intrinsic(name + "_deref", src_comp=[-1, 1, 1], dest_comp=1)
305 intrinsic(name, src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
326 # qualifiers that influence the semantics of the intrinsic. In the second and
332 # accessed by the intrinsic. Components not applicable to the image target
338 intrinsic("image_deref_" + name, src_comp=[1] + src_comp,
340 intrinsic("image_" + name, src_comp=[1] + src_comp,
342 intrinsic("bindless_image_" + name, src_comp=[1] + src_comp,
362 intrinsic("image_deref_load_param_intel", src_comp=[1], dest_comp=0,
376 # vulkan_surface_index intrinsic takes the descriptor set and binding as
383 # The vulkan_resource_reindex intrinsic takes a resource index in src0
387 intrinsic("vulkan_resource_index", src_comp=[1], dest_comp=0,
390 intrinsic("vulkan_resource_reindex", src_comp=[0, 1], dest_comp=0,
392 intrinsic("load_vulkan_descriptor", src_comp=[-1], dest_comp=0,
408 intrinsic("deref_atomic_add", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
409 intrinsic("deref_atomic_imin", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
410 intrinsic("deref_atomic_umin", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
411 intrinsic("deref_atomic_imax", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
412 intrinsic("deref_atomic_umax", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
413 intrinsic("deref_atomic_and", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
414 intrinsic("deref_atomic_or", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
415 intrinsic("deref_atomic_xor", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
416 intrinsic("deref_atomic_exchange", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
417 intrinsic("deref_atomic_comp_swap", src_comp=[-1, 1, 1], dest_comp=1, indices=[ACCESS])
418 intrinsic("deref_atomic_fadd", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
419 intrinsic("deref_atomic_fmin", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
420 intrinsic("deref_atomic_fmax", src_comp=[-1, 1], dest_comp=1, indices=[ACCESS])
421 intrinsic("deref_atomic_fcomp_swap", src_comp=[-1, 1, 1], dest_comp=1, indices=[ACCESS])
438 intrinsic("ssbo_atomic_add", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
439 intrinsic("ssbo_atomic_imin", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
440 intrinsic("ssbo_atomic_umin", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
441 intrinsic("ssbo_atomic_imax", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
442 intrinsic("ssbo_atomic_umax", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
443 intrinsic("ssbo_atomic_and", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
444 intrinsic("ssbo_atomic_or", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
445 intrinsic("ssbo_atomic_xor", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
446 intrinsic("ssbo_atomic_exchange", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
447 intrinsic("ssbo_atomic_comp_swap", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
448 intrinsic("ssbo_atomic_fadd", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
449 intrinsic("ssbo_atomic_fmin", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
450 intrinsic("ssbo_atomic_fmax", src_comp=[1, 1, 1], dest_comp=1, indices=[ACCESS])
451 intrinsic("ssbo_atomic_fcomp_swap", src_comp=[1, 1, 1, 1], dest_comp=1, indices=[ACCESS])
467 intrinsic("shared_atomic_add", src_comp=[1, 1], dest_comp=1, indices=[BASE])
468 intrinsic("shared_atomic_imin", src_comp=[1, 1], dest_comp=1, indices=[BASE])
469 intrinsic("shared_atomic_umin", src_comp=[1, 1], dest_comp=1, indices=[BASE])
470 intrinsic("shared_atomic_imax", src_comp=[1, 1], dest_comp=1, indices=[BASE])
471 intrinsic("shared_atomic_umax", src_comp=[1, 1], dest_comp=1, indices=[BASE])
472 intrinsic("shared_atomic_and", src_comp=[1, 1], dest_comp=1, indices=[BASE])
473 intrinsic("shared_atomic_or", src_comp=[1, 1], dest_comp=1, indices=[BASE])
474 intrinsic("shared_atomic_xor", src_comp=[1, 1], dest_comp=1, indices=[BASE])
475 intrinsic("shared_atomic_exchange", src_comp=[1, 1], dest_comp=1, indices=[BASE])
476 intrinsic("shared_atomic_comp_swap", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
477 intrinsic("shared_atomic_fadd", src_comp=[1, 1], dest_comp=1, indices=[BASE])
478 intrinsic("shared_atomic_fmin", src_comp=[1, 1], dest_comp=1, indices=[BASE])
479 intrinsic("shared_atomic_fmax", src_comp=[1, 1], dest_comp=1, indices=[BASE])
480 intrinsic("shared_atomic_fcomp_swap", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
495 intrinsic("global_atomic_add", src_comp=[1, 1], dest_comp=1, indices=[BASE])
496 intrinsic("global_atomic_imin", src_comp=[1, 1], dest_comp=1, indices=[BASE])
497 intrinsic("global_atomic_umin", src_comp=[1, 1], dest_comp=1, indices=[BASE])
498 intrinsic("global_atomic_imax", src_comp=[1, 1], dest_comp=1, indices=[BASE])
499 intrinsic("global_atomic_umax", src_comp=[1, 1], dest_comp=1, indices=[BASE])
500 intrinsic("global_atomic_and", src_comp=[1, 1], dest_comp=1, indices=[BASE])
501 intrinsic("global_atomic_or", src_comp=[1, 1], dest_comp=1, indices=[BASE])
502 intrinsic("global_atomic_xor", src_comp=[1, 1], dest_comp=1, indices=[BASE])
503 intrinsic("global_atomic_exchange", src_comp=[1, 1], dest_comp=1, indices=[BASE])
504 intrinsic("global_atomic_comp_swap", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
505 intrinsic("global_atomic_fadd", src_comp=[1, 1], dest_comp=1, indices=[BASE])
506 intrinsic("global_atomic_fmin", src_comp=[1, 1], dest_comp=1, indices=[BASE])
507 intrinsic("global_atomic_fmax", src_comp=[1, 1], dest_comp=1, indices=[BASE])
508 intrinsic("global_atomic_fcomp_swap", src_comp=[1, 1, 1], dest_comp=1, indices=[BASE])
511 intrinsic("load_" + name, [], dest_comp, indices,
593 # barycoord source of a load_interpolated_input intrinsic.
596 intrinsic("load_barycentric_" + name, src_comp=src_comp, dest_comp=2,
612 intrinsic("load_sample_pos_from_id", src_comp=[1], dest_comp=2,
616 intrinsic("load_size_ir3", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER])
639 intrinsic("load_" + name, [1] * num_srcs, dest_comp=0, indices=indices,
651 intrinsic("load_interpolated_input", src_comp=[2, 1], dest_comp=0,
679 intrinsic("store_" + name, [0] + ([1] * (num_srcs - 1)), indices=indices, flags=flags)
705 intrinsic("store_ssbo_ir3", src_comp=[0, 1, 1, 1],
707 intrinsic("load_ssbo_ir3", src_comp=[1, 1, 1], dest_comp=0,
709 intrinsic("ssbo_atomic_add_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
710 intrinsic("ssbo_atomic_imin_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
711 intrinsic("ssbo_atomic_umin_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
712 intrinsic("ssbo_atomic_imax_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
713 intrinsic("ssbo_atomic_umax_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
714 intrinsic("ssbo_atomic_and_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
715 intrinsic("ssbo_atomic_or_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
716 intrinsic("ssbo_atomic_xor_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
717 intrinsic("ssbo_atomic_exchange_ir3", src_comp=[1, 1, 1, 1], dest_comp=1)
718 intrinsic("ssbo_atomic_comp_swap_ir3", src_comp=[1, 1, 1, 1, 1], dest_comp=1)