From e2588184240b4850f62859ca9f3c5e95c9d8e129 Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Thu, 13 Dec 2018 18:31:18 +0000 Subject: COMPMID-1755 NEON: Extend DepthConvert to support Cast Change-Id: I8e2ed9e97cbe86d8caf162bd84ecfd9b43b0bd3b Reviewed-on: https://review.mlplatform.org/401 Tested-by: Arm Jenkins Reviewed-by: Giuseppe Rossini Reviewed-by: Georgios Pinitas --- tests/validation/reference/DepthConvertLayer.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'tests/validation/reference') 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 depth_convert(const SimpleTensor &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 depth_convert(const SimpleTensor &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(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(val); + } } } else -- cgit v1.2.1