aboutsummaryrefslogtreecommitdiff
path: root/reference_model/include/dtype.h
diff options
context:
space:
mode:
authorTatWai Chong <tatwai.chong@arm.com>2024-03-21 14:34:33 -0700
committerEric Kunze <eric.kunze@arm.com>2024-03-28 00:35:36 +0000
commit08fe7a5b7e2c7c1a77968130e11267ef61490ac8 (patch)
tree29e974b12bc5540a4a364aaa7b0d6aa47c30c923 /reference_model/include/dtype.h
parentd5b1512b1d2cea3b87e52a0ecc123db2a7a7cad3 (diff)
downloadreference_model-08fe7a5b7e2c7c1a77968130e11267ef61490ac8.tar.gz
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 <tatwai.chong@arm.com>
Diffstat (limited to 'reference_model/include/dtype.h')
-rw-r--r--reference_model/include/dtype.h29
1 files changed, 29 insertions, 0 deletions
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 <TOSA_REF_TYPE Dtype>
+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