aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/reference/DepthConvertLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/reference/DepthConvertLayer.cpp')
-rw-r--r--tests/validation/reference/DepthConvertLayer.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/tests/validation/reference/DepthConvertLayer.cpp b/tests/validation/reference/DepthConvertLayer.cpp
index c1fd9c51f7..6d9f98db5a 100644
--- a/tests/validation/reference/DepthConvertLayer.cpp
+++ b/tests/validation/reference/DepthConvertLayer.cpp
@@ -48,7 +48,14 @@ SimpleTensor<T2> depth_convert(const SimpleTensor<T1> &src, DataType dt_out, Con
{
for(int i = 0; i < src.num_elements(); ++i)
{
- result[i] = src[i] << shift;
+ if(is_data_type_quantized(src.data_type()))
+ {
+ result[i] = scvt_f32_qasymm8(src[i], src.quantization_info().scale, src.quantization_info().offset);
+ }
+ else
+ {
+ result[i] = src[i] << shift;
+ }
}
}
// Down-casting
@@ -75,8 +82,16 @@ SimpleTensor<T2> depth_convert(const SimpleTensor<T1> &src, DataType dt_out, Con
// Always saturate on floats
for(int i = 0; i < src.num_elements(); ++i)
{
- T1 val = utils::rounding::round_half_away_from_zero(src[i]);
- result[i] = utils::cast::saturate_cast<T2>(val);
+ if(is_data_type_quantized(dt_out))
+ {
+ T1 val = utils::rounding::round_half_away_from_zero(src[i]);
+ result[i] = sqcvt_qasymm8_f32(val, src.quantization_info().scale, src.quantization_info().offset);
+ }
+ else
+ {
+ T1 val = utils::rounding::round_half_away_from_zero(src[i]);
+ result[i] = utils::cast::saturate_cast<T2>(val);
+ }
}
}
else