mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 19:30:11 +01:00
aco: simplify and fix operand/definition sizes
These are mainly needed for constant propagation and subdword register allocation. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8425>
This commit is contained in:
parent
d495a5c183
commit
7b669ff789
1 changed files with 16 additions and 17 deletions
|
|
@ -212,25 +212,24 @@ class Opcode(object):
|
|||
self.operand_size = op_dtype_sizes.get(op_dtype, 32)
|
||||
self.definition_size = def_dtype_sizes.get(def_dtype, self.operand_size)
|
||||
|
||||
# exceptions
|
||||
if self.operand_size == 16 and op_dtype != 'f16':
|
||||
self.operand_size = 16
|
||||
# exceptions for operands:
|
||||
if 'sad_' in name:
|
||||
self.operand_size = 0
|
||||
elif name in ['v_mad_u64_u32', 'v_mad_i64_i32']:
|
||||
self.operand_size = 0
|
||||
elif self.operand_size == 24:
|
||||
self.operand_size = 32
|
||||
elif name in ['s_sext_i32_i8', 's_sext_i32_i16', 'v_msad_u8', 'v_cvt_pk_u16_u32', 'v_cvt_pk_i16_i32']:
|
||||
self.operand_size = 32
|
||||
elif name in ['v_qsad_pk_u16_u8', 'v_mqsad_pk_u16_u8', 'v_mqsad_u32_u8']:
|
||||
self.definition_size = 0
|
||||
self.operand_size = 0
|
||||
elif name in ['v_mad_u64_u32', 'v_mad_i64_i32']:
|
||||
self.operand_size = 0
|
||||
elif '_pk' in name or name in ['v_lerp_u8', 'v_sad_u8', 'v_sad_u16',
|
||||
'v_cvt_f32_ubyte0', 'v_cvt_f32_ubyte1',
|
||||
'v_cvt_f32_ubyte2', 'v_cvt_f32_ubyte3']:
|
||||
self.operand_size = 32
|
||||
self.definition_size = 32
|
||||
elif '_pknorm_' in name:
|
||||
self.definition_size = 32
|
||||
elif op_dtype == 'u8' or op_dtype == 'i8':
|
||||
self.operand_size = 32
|
||||
elif name in ['v_cvt_f32_ubyte0', 'v_cvt_f32_ubyte1',
|
||||
'v_cvt_f32_ubyte2', 'v_cvt_f32_ubyte3']:
|
||||
self.operand_size = 32
|
||||
|
||||
# exceptions for definitions:
|
||||
if 'sad_' in name:
|
||||
self.definition_size = 0
|
||||
elif '_pk' in name:
|
||||
self.definition_size = 32
|
||||
|
||||
|
||||
# global dictionary of opcodes
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue