Module: Mesa Branch: master Commit: 7b669ff7892f5367d294a0730122976f5ccafd4e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b669ff7892f5367d294a0730122976f5ccafd4e
Author: Daniel Schürmann <dan...@schuermann.dev> Date: Fri Jan 8 23:03:21 2021 +0100 aco: simplify and fix operand/definition sizes These are mainly needed for constant propagation and subdword register allocation. Reviewed-by: Rhys Perry <pendingchao...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8425> --- src/amd/compiler/aco_opcodes.py | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/amd/compiler/aco_opcodes.py b/src/amd/compiler/aco_opcodes.py index 4a839db10a5..178e448662b 100644 --- a/src/amd/compiler/aco_opcodes.py +++ b/src/amd/compiler/aco_opcodes.py @@ -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 _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit