From b8f264cfe4eb490b6ca4a73bddc1dd9d68ab5c9b Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 6 Aug 2024 00:56:51 -0700 Subject: [PATCH] intel/brw: Handle load/stores in lsc_op_for_nir_intrinsic() Reviewed-by: Lionel Landwerlin Reviewed-by: Caio Oliveira Reviewed-by: Rohan Garg Part-of: --- src/intel/compiler/brw_nir.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index b344a9a9601..e3cb188e09f 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -2040,6 +2040,41 @@ brw_cmod_for_nir_comparison(nir_op op) enum lsc_opcode 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)) { case nir_atomic_op_iadd: { unsigned src_idx;