intel/compiler: Delete all the A64 atomic variants for type sizes
These are handled identically in almost all cases. There is one place in the legacy surface lowering that was obtaining the bitsize from the opcode, but the LSC-based lowering uses (type_sz(inst->dst.type) * 8) for that and works just fine. If we just do that in the legacy lowering too, then we don't need this plethora of opcodes. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Rohan Garg <rohan.garg@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20604>
This commit is contained in:

committed by
Marge Bot

parent
03ddde1230
commit
780f3e2e6b
@@ -2035,12 +2035,7 @@ lower_lsc_a64_logical_send(const fs_builder &bld, fs_inst *inst)
|
||||
LSC_CACHE_STORE_L1STATE_L3MOCS,
|
||||
false /* has_dest */);
|
||||
break;
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_INT16_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_INT64_LOGICAL: {
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT16_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT32_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT64_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_LOGICAL: {
|
||||
/* Bspec: Atomic instruction -> Cache section:
|
||||
*
|
||||
* Atomic messages are always forced to "un-cacheable" in the L1
|
||||
@@ -2211,35 +2206,18 @@ lower_a64_logical_send(const fs_builder &bld, fs_inst *inst)
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_LOGICAL:
|
||||
desc = brw_dp_a64_untyped_atomic_desc(devinfo, inst->exec_size, 32,
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_INT16_LOGICAL:
|
||||
desc = brw_dp_a64_untyped_atomic_desc(devinfo, inst->exec_size, 16,
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_INT64_LOGICAL:
|
||||
desc = brw_dp_a64_untyped_atomic_desc(devinfo, inst->exec_size, 64,
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT16_LOGICAL:
|
||||
desc = brw_dp_a64_untyped_atomic_float_desc(devinfo, inst->exec_size,
|
||||
16, /* bit_size */
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT32_LOGICAL:
|
||||
desc = brw_dp_a64_untyped_atomic_float_desc(devinfo, inst->exec_size,
|
||||
32, /* bit_size */
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
if (lsc_opcode_is_atomic_float((enum lsc_opcode) arg)) {
|
||||
desc =
|
||||
brw_dp_a64_untyped_atomic_float_desc(devinfo, inst->exec_size,
|
||||
type_sz(inst->dst.type) * 8,
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
} else {
|
||||
desc = brw_dp_a64_untyped_atomic_desc(devinfo, inst->exec_size,
|
||||
type_sz(inst->dst.type) * 8,
|
||||
lsc_op_to_legacy_atomic(arg),
|
||||
!inst->dst.is_null());
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -2729,11 +2707,6 @@ fs_visitor::lower_logical_sends()
|
||||
case SHADER_OPCODE_A64_BYTE_SCATTERED_WRITE_LOGICAL:
|
||||
case SHADER_OPCODE_A64_BYTE_SCATTERED_READ_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_INT16_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_INT64_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT16_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT32_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNTYPED_ATOMIC_FLOAT64_LOGICAL:
|
||||
case SHADER_OPCODE_A64_OWORD_BLOCK_READ_LOGICAL:
|
||||
case SHADER_OPCODE_A64_UNALIGNED_OWORD_BLOCK_READ_LOGICAL:
|
||||
case SHADER_OPCODE_A64_OWORD_BLOCK_WRITE_LOGICAL:
|
||||
|
Reference in New Issue
Block a user