diff options
Diffstat (limited to 'tests/validation/reference/DepthConvertLayer.cpp')
-rw-r--r-- | tests/validation/reference/DepthConvertLayer.cpp | 21 |
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 |