From 08fe7a5b7e2c7c1a77968130e11267ef61490ac8 Mon Sep 17 00:00:00 2001 From: TatWai Chong Date: Thu, 21 Mar 2024 14:34:33 -0700 Subject: Take into account of `output_unsigned` in rescale operation Set QMin and QMax based on the value of attribute `output_unsigned`. Change-Id: I7f21f3edd7311295285fb3988b3c800de114777a Signed-off-by: TatWai Chong --- reference_model/include/dtype.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'reference_model/include') diff --git a/reference_model/include/dtype.h b/reference_model/include/dtype.h index 3e8bdf5..a283f39 100644 --- a/reference_model/include/dtype.h +++ b/reference_model/include/dtype.h @@ -145,6 +145,35 @@ inline TOSA_REF_TYPE ConvertDType(const DType dtype) return TOSA_REF_TYPE_UNKNOWN; } +template +bool IsSignedInt() +{ + switch (Dtype) + { + case TOSA_REF_TYPE_INT4: + case TOSA_REF_TYPE_INT8: + case TOSA_REF_TYPE_INT16: + case TOSA_REF_TYPE_INT32: + case TOSA_REF_TYPE_INT48: + return true; + + case TOSA_REF_TYPE_UINT8: + case TOSA_REF_TYPE_UINT16: + return false; + + case TOSA_REF_TYPE_BOOL: + case TOSA_REF_TYPE_FP32: + case TOSA_REF_TYPE_FP16: + case TOSA_REF_TYPE_BF16: + case TOSA_REF_TYPE_SHAPE: + case TOSA_REF_TYPE_FP8E4M3: + case TOSA_REF_TYPE_FP8E5M2: + default: + FATAL_ERROR("dtype is not an integer type"); + break; + } +} + }; // namespace TosaReference #endif -- cgit v1.2.1