intel/brw: Handle load/stores in lsc_op_for_nir_intrinsic()

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30828>
This commit is contained in:
Kenneth Graunke 2024-08-06 00:56:51 -07:00 committed by Marge Bot
parent 8a6903e50d
commit b8f264cfe4

View file

@ -2040,6 +2040,41 @@ brw_cmod_for_nir_comparison(nir_op op)
enum lsc_opcode enum lsc_opcode
lsc_op_for_nir_intrinsic(const nir_intrinsic_instr *intrin) lsc_op_for_nir_intrinsic(const nir_intrinsic_instr *intrin)
{ {
switch (intrin->intrinsic) {
case nir_intrinsic_image_load:
case nir_intrinsic_image_load_raw_intel:
case nir_intrinsic_bindless_image_load:
case nir_intrinsic_load_ssbo:
case nir_intrinsic_load_shared:
case nir_intrinsic_load_global:
case nir_intrinsic_load_global_block_intel:
case nir_intrinsic_load_global_constant:
case nir_intrinsic_load_global_constant_uniform_block_intel:
case nir_intrinsic_load_shared_block_intel:
case nir_intrinsic_load_shared_uniform_block_intel:
case nir_intrinsic_load_ssbo_block_intel:
case nir_intrinsic_load_ssbo_uniform_block_intel:
case nir_intrinsic_load_ubo_uniform_block_intel:
case nir_intrinsic_load_scratch:
return LSC_OP_LOAD;
case nir_intrinsic_image_store:
case nir_intrinsic_image_store_raw_intel:
case nir_intrinsic_bindless_image_store:
case nir_intrinsic_store_ssbo:
case nir_intrinsic_store_shared:
case nir_intrinsic_store_global:
case nir_intrinsic_store_global_block_intel:
case nir_intrinsic_store_shared_block_intel:
case nir_intrinsic_store_ssbo_block_intel:
case nir_intrinsic_store_scratch:
return LSC_OP_STORE;
default:
assert(nir_intrinsic_has_atomic_op(intrin));
break;
}
switch (nir_intrinsic_atomic_op(intrin)) { switch (nir_intrinsic_atomic_op(intrin)) {
case nir_atomic_op_iadd: { case nir_atomic_op_iadd: {
unsigned src_idx; unsigned src_idx;