nir: Add convert_cmat_intel intrinsic

This intrinsic will be used to implement matrix type and layout
conversions in the backend compiler.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35616>
This commit is contained in:
Matt Turner 2025-06-09 16:04:47 -04:00 committed by Marge Bot
parent 1215845b5b
commit 102d7409ef
2 changed files with 9 additions and 0 deletions

View file

@ -921,6 +921,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
case nir_intrinsic_cmat_extract:
case nir_intrinsic_cmat_muladd_amd:
case nir_intrinsic_dpas_intel:
case nir_intrinsic_convert_cmat_intel:
case nir_intrinsic_isberd_nv:
case nir_intrinsic_vild_nv:
case nir_intrinsic_al2p_nv:

View file

@ -335,6 +335,10 @@ index("unsigned", "neg_hi_amd")
index("unsigned", "systolic_depth")
index("unsigned", "repeat_count")
# For Intel convert_cmat_intel intrinsic.
index("struct glsl_cmat_description", "dst_cmat_desc")
index("struct glsl_cmat_description", "src_cmat_desc")
# For an AGX tilebuffer intrinsics, whether the coordinates are implicit or
# explicit. Implicit coordinates are used in fragment shaders, explicit
# coordinates in compute.
@ -2469,6 +2473,10 @@ intrinsic("dpas_intel", dest_comp=0, src_comp=[0, -1, -1],
indices=[DEST_BASE_TYPE, SRC_BASE_TYPE, SATURATE, SYSTOLIC_DEPTH, REPEAT_COUNT],
flags=[CAN_ELIMINATE])
intrinsic("convert_cmat_intel", dest_comp=0, src_comp=[-1],
indices=[DST_CMAT_DESC, SRC_CMAT_DESC],
flags=[CAN_ELIMINATE])
# NVIDIA-specific intrinsics
# src[] = { index, offset }.
intrinsic("ldc_nv", dest_comp=0, src_comp=[1, 1],