arm_compute v17.12
diff --git a/documentation/search/files_d.js b/documentation/search/files_d.js
index 36df7e8..c512c53 100644
--- a/documentation/search/files_d.js
+++ b/documentation/search/files_d.js
@@ -10,6 +10,8 @@
   ['nearithmeticadditionkernel_2eh',['NEArithmeticAdditionKernel.h',['../_n_e_arithmetic_addition_kernel_8h.xhtml',1,'']]],
   ['nearithmeticsubtraction_2eh',['NEArithmeticSubtraction.h',['../_n_e_arithmetic_subtraction_8h.xhtml',1,'']]],
   ['nearithmeticsubtractionkernel_2eh',['NEArithmeticSubtractionKernel.h',['../_n_e_arithmetic_subtraction_kernel_8h.xhtml',1,'']]],
+  ['neasymm_2eh',['NEAsymm.h',['../_n_e_asymm_8h.xhtml',1,'']]],
+  ['neasymm_2einl',['NEAsymm.inl',['../_n_e_asymm_8inl.xhtml',1,'']]],
   ['nebatchnormalizationlayer_2eh',['NEBatchNormalizationLayer.h',['../_n_e_batch_normalization_layer_8h.xhtml',1,'']]],
   ['nebatchnormalizationlayerkernel_2eh',['NEBatchNormalizationLayerKernel.h',['../_n_e_batch_normalization_layer_kernel_8h.xhtml',1,'']]],
   ['nebitwiseand_2eh',['NEBitwiseAnd.h',['../_n_e_bitwise_and_8h.xhtml',1,'']]],
@@ -28,6 +30,7 @@
   ['nechannelcombinekernel_2eh',['NEChannelCombineKernel.h',['../_n_e_channel_combine_kernel_8h.xhtml',1,'']]],
   ['nechannelextract_2eh',['NEChannelExtract.h',['../_n_e_channel_extract_8h.xhtml',1,'']]],
   ['nechannelextractkernel_2eh',['NEChannelExtractKernel.h',['../_n_e_channel_extract_kernel_8h.xhtml',1,'']]],
+  ['necol2im_2eh',['NECol2Im.h',['../_n_e_col2_im_8h.xhtml',1,'']]],
   ['necol2imkernel_2eh',['NECol2ImKernel.h',['../_n_e_col2_im_kernel_8h.xhtml',1,'']]],
   ['necolorconvert_2eh',['NEColorConvert.h',['../_n_e_color_convert_8h.xhtml',1,'']]],
   ['necolorconverthelper_2einl',['NEColorConvertHelper.inl',['../_n_e_color_convert_helper_8inl.xhtml',1,'']]],
@@ -36,16 +39,27 @@
   ['neconvolutionkernel_2eh',['NEConvolutionKernel.h',['../_n_e_convolution_kernel_8h.xhtml',1,'']]],
   ['neconvolutionlayer_2eh',['NEConvolutionLayer.h',['../_n_e_convolution_layer_8h.xhtml',1,'']]],
   ['necumulativedistributionkernel_2eh',['NECumulativeDistributionKernel.h',['../_n_e_cumulative_distribution_kernel_8h.xhtml',1,'']]],
-  ['nedepthconcatenate_2eh',['NEDepthConcatenate.h',['../_n_e_depth_concatenate_8h.xhtml',1,'']]],
-  ['nedepthconcatenatekernel_2eh',['NEDepthConcatenateKernel.h',['../_n_e_depth_concatenate_kernel_8h.xhtml',1,'']]],
-  ['nedepthconvert_2eh',['NEDepthConvert.h',['../_n_e_depth_convert_8h.xhtml',1,'']]],
-  ['nedepthconvertkernel_2eh',['NEDepthConvertKernel.h',['../_n_e_depth_convert_kernel_8h.xhtml',1,'']]],
+  ['nedeconvolutionlayer_2eh',['NEDeconvolutionLayer.h',['../_n_e_deconvolution_layer_8h.xhtml',1,'']]],
+  ['nedeconvolutionlayerupsample_2eh',['NEDeconvolutionLayerUpsample.h',['../_n_e_deconvolution_layer_upsample_8h.xhtml',1,'']]],
+  ['nedeconvolutionlayerupsamplekernel_2eh',['NEDeconvolutionLayerUpsampleKernel.h',['../_n_e_deconvolution_layer_upsample_kernel_8h.xhtml',1,'']]],
+  ['nedepthconcatenatelayer_2eh',['NEDepthConcatenateLayer.h',['../_n_e_depth_concatenate_layer_8h.xhtml',1,'']]],
+  ['nedepthconcatenatelayerkernel_2eh',['NEDepthConcatenateLayerKernel.h',['../_n_e_depth_concatenate_layer_kernel_8h.xhtml',1,'']]],
+  ['nedepthconvertlayer_2eh',['NEDepthConvertLayer.h',['../_n_e_depth_convert_layer_8h.xhtml',1,'']]],
+  ['nedepthconvertlayerkernel_2eh',['NEDepthConvertLayerKernel.h',['../_n_e_depth_convert_layer_kernel_8h.xhtml',1,'']]],
+  ['nedepthwiseconvolutionlayer_2eh',['NEDepthwiseConvolutionLayer.h',['../_n_e_depthwise_convolution_layer_8h.xhtml',1,'']]],
+  ['nedepthwiseconvolutionlayer3x3kernel_2eh',['NEDepthwiseConvolutionLayer3x3Kernel.h',['../_n_e_depthwise_convolution_layer3x3_kernel_8h.xhtml',1,'']]],
+  ['nedepthwiseim2colkernel_2eh',['NEDepthwiseIm2ColKernel.h',['../_n_e_depthwise_im2_col_kernel_8h.xhtml',1,'']]],
+  ['nedepthwiseseparableconvolutionlayer_2eh',['NEDepthwiseSeparableConvolutionLayer.h',['../_n_e_depthwise_separable_convolution_layer_8h.xhtml',1,'']]],
+  ['nedepthwisevectortotensorkernel_2eh',['NEDepthwiseVectorToTensorKernel.h',['../_n_e_depthwise_vector_to_tensor_kernel_8h.xhtml',1,'']]],
+  ['nedepthwiseweightsreshapekernel_2eh',['NEDepthwiseWeightsReshapeKernel.h',['../_n_e_depthwise_weights_reshape_kernel_8h.xhtml',1,'']]],
   ['nedequantizationlayer_2eh',['NEDequantizationLayer.h',['../_n_e_dequantization_layer_8h.xhtml',1,'']]],
   ['nedequantizationlayerkernel_2eh',['NEDequantizationLayerKernel.h',['../_n_e_dequantization_layer_kernel_8h.xhtml',1,'']]],
   ['nederivative_2eh',['NEDerivative.h',['../_n_e_derivative_8h.xhtml',1,'']]],
   ['nederivativekernel_2eh',['NEDerivativeKernel.h',['../_n_e_derivative_kernel_8h.xhtml',1,'']]],
   ['nedilate_2eh',['NEDilate.h',['../_n_e_dilate_8h.xhtml',1,'']]],
   ['nedilatekernel_2eh',['NEDilateKernel.h',['../_n_e_dilate_kernel_8h.xhtml',1,'']]],
+  ['nedirectconvolution3x3_2eh',['NEDirectConvolution3x3.h',['../_n_e_direct_convolution3x3_8h.xhtml',1,'']]],
+  ['nedirectconvolutiondetail_2eh',['NEDirectConvolutionDetail.h',['../_n_e_direct_convolution_detail_8h.xhtml',1,'']]],
   ['nedirectconvolutionlayer_2eh',['NEDirectConvolutionLayer.h',['../_n_e_direct_convolution_layer_8h.xhtml',1,'']]],
   ['nedirectconvolutionlayerbiasaccumulatekernel_2eh',['NEDirectConvolutionLayerBiasAccumulateKernel.h',['../_n_e_direct_convolution_layer_bias_accumulate_kernel_8h.xhtml',1,'']]],
   ['nedirectconvolutionlayerkernel_2eh',['NEDirectConvolutionLayerKernel.h',['../_n_e_direct_convolution_layer_kernel_8h.xhtml',1,'']]],
@@ -77,15 +91,27 @@
   ['negemmassemblybasekernel_2eh',['NEGEMMAssemblyBaseKernel.h',['../_n_e_g_e_m_m_assembly_base_kernel_8h.xhtml',1,'']]],
   ['negemminterleave4x4_2eh',['NEGEMMInterleave4x4.h',['../_n_e_g_e_m_m_interleave4x4_8h.xhtml',1,'']]],
   ['negemminterleave4x4kernel_2eh',['NEGEMMInterleave4x4Kernel.h',['../_n_e_g_e_m_m_interleave4x4_kernel_8h.xhtml',1,'']]],
-  ['negemmlowp_2eh',['NEGEMMLowp.h',['../_n_e_g_e_m_m_lowp_8h.xhtml',1,'']]],
+  ['negemminterleaveblockedkernel_2eh',['NEGEMMInterleaveBlockedKernel.h',['../_n_e_g_e_m_m_interleave_blocked_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpaarch64a53kernel_2eh',['NEGEMMLowpAArch64A53Kernel.h',['../_n_e_g_e_m_m_lowp_a_arch64_a53_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpaarch64kernel_2eh',['NEGEMMLowpAArch64Kernel.h',['../_n_e_g_e_m_m_lowp_a_arch64_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpaarch64v8p4kernel_2eh',['NEGEMMLowpAArch64V8P4Kernel.h',['../_n_e_g_e_m_m_lowp_a_arch64_v8_p4_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpassemblymatrixmultiplycore_2eh',['NEGEMMLowpAssemblyMatrixMultiplyCore.h',['../_n_e_g_e_m_m_lowp_assembly_matrix_multiply_core_8h.xhtml',1,'']]],
+  ['negemmlowpmatrixmultiplycore_2eh',['NEGEMMLowpMatrixMultiplyCore.h',['../_n_e_g_e_m_m_lowp_matrix_multiply_core_8h.xhtml',1,'']]],
   ['negemmlowpmatrixmultiplykernel_2eh',['NEGEMMLowpMatrixMultiplyKernel.h',['../_n_e_g_e_m_m_lowp_matrix_multiply_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpoffsetcontributionkernel_2eh',['NEGEMMLowpOffsetContributionKernel.h',['../_n_e_g_e_m_m_lowp_offset_contribution_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpoutputstage_2eh',['NEGEMMLowpOutputStage.h',['../_n_e_g_e_m_m_lowp_output_stage_8h.xhtml',1,'']]],
+  ['negemmlowpquantizedownint32touint8scalebyfixedpointkernel_2eh',['NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPointKernel.h',['../_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_by_fixed_point_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpquantizedownint32touint8scalekernel_2eh',['NEGEMMLowpQuantizeDownInt32ToUint8ScaleKernel.h',['../_n_e_g_e_m_m_lowp_quantize_down_int32_to_uint8_scale_kernel_8h.xhtml',1,'']]],
+  ['negemmlowpreductionkernel_2eh',['NEGEMMLowpReductionKernel.h',['../_n_e_g_e_m_m_lowp_reduction_kernel_8h.xhtml',1,'']]],
   ['negemmmatrixaccumulatebiaseskernel_2eh',['NEGEMMMatrixAccumulateBiasesKernel.h',['../_n_e_g_e_m_m_matrix_accumulate_biases_kernel_8h.xhtml',1,'']]],
   ['negemmmatrixadditionkernel_2eh',['NEGEMMMatrixAdditionKernel.h',['../_n_e_g_e_m_m_matrix_addition_kernel_8h.xhtml',1,'']]],
   ['negemmmatrixmultiplykernel_2eh',['NEGEMMMatrixMultiplyKernel.h',['../_n_e_g_e_m_m_matrix_multiply_kernel_8h.xhtml',1,'']]],
+  ['negemmmatrixvectormultiplykernel_2eh',['NEGEMMMatrixVectorMultiplyKernel.h',['../_n_e_g_e_m_m_matrix_vector_multiply_kernel_8h.xhtml',1,'']]],
   ['negemmtranspose1xw_2eh',['NEGEMMTranspose1xW.h',['../_n_e_g_e_m_m_transpose1x_w_8h.xhtml',1,'']]],
   ['negemmtranspose1xwkernel_2eh',['NEGEMMTranspose1xWKernel.h',['../_n_e_g_e_m_m_transpose1x_w_kernel_8h.xhtml',1,'']]],
   ['neharriscorners_2eh',['NEHarrisCorners.h',['../_n_e_harris_corners_8h.xhtml',1,'']]],
   ['neharriscornerskernel_2eh',['NEHarrisCornersKernel.h',['../_n_e_harris_corners_kernel_8h.xhtml',1,'']]],
+  ['nehgemmaarch64fp16kernel_2eh',['NEHGEMMAArch64FP16Kernel.h',['../_n_e_h_g_e_m_m_a_arch64_f_p16_kernel_8h.xhtml',1,'']]],
   ['nehistogram_2eh',['NEHistogram.h',['../_n_e_histogram_8h.xhtml',1,'']]],
   ['nehistogramkernel_2eh',['NEHistogramKernel.h',['../_n_e_histogram_kernel_8h.xhtml',1,'']]],
   ['nehogdescriptor_2eh',['NEHOGDescriptor.h',['../_n_e_h_o_g_descriptor_8h.xhtml',1,'']]],
@@ -94,12 +120,13 @@
   ['nehogdetectorkernel_2eh',['NEHOGDetectorKernel.h',['../_n_e_h_o_g_detector_kernel_8h.xhtml',1,'']]],
   ['nehoggradient_2eh',['NEHOGGradient.h',['../_n_e_h_o_g_gradient_8h.xhtml',1,'']]],
   ['nehogmultidetection_2eh',['NEHOGMultiDetection.h',['../_n_e_h_o_g_multi_detection_8h.xhtml',1,'']]],
+  ['neim2col_2eh',['NEIm2Col.h',['../_n_e_im2_col_8h.xhtml',1,'']]],
   ['neim2colkernel_2eh',['NEIm2ColKernel.h',['../_n_e_im2_col_kernel_8h.xhtml',1,'']]],
   ['neintegralimage_2eh',['NEIntegralImage.h',['../_n_e_integral_image_8h.xhtml',1,'']]],
   ['neintegralimagekernel_2eh',['NEIntegralImageKernel.h',['../_n_e_integral_image_kernel_8h.xhtml',1,'']]],
   ['nekernels_2eh',['NEKernels.h',['../_n_e_kernels_8h.xhtml',1,'']]],
-  ['nel2normalize_2eh',['NEL2Normalize.h',['../_n_e_l2_normalize_8h.xhtml',1,'']]],
-  ['nel2normalizekernel_2eh',['NEL2NormalizeKernel.h',['../_n_e_l2_normalize_kernel_8h.xhtml',1,'']]],
+  ['nel2normalizelayer_2eh',['NEL2NormalizeLayer.h',['../_n_e_l2_normalize_layer_8h.xhtml',1,'']]],
+  ['nel2normalizelayerkernel_2eh',['NEL2NormalizeLayerKernel.h',['../_n_e_l2_normalize_layer_kernel_8h.xhtml',1,'']]],
   ['nelaplacianpyramid_2eh',['NELaplacianPyramid.h',['../_n_e_laplacian_pyramid_8h.xhtml',1,'']]],
   ['nelaplacianreconstruct_2eh',['NELaplacianReconstruct.h',['../_n_e_laplacian_reconstruct_8h.xhtml',1,'']]],
   ['nelktrackerkernel_2eh',['NELKTrackerKernel.h',['../_n_e_l_k_tracker_kernel_8h.xhtml',1,'']]],
@@ -167,13 +194,17 @@
   ['newarpkernel_2eh',['NEWarpKernel.h',['../_n_e_warp_kernel_8h.xhtml',1,'']]],
   ['newarpperspective_2eh',['NEWarpPerspective.h',['../_n_e_warp_perspective_8h.xhtml',1,'']]],
   ['neweightsreshapekernel_2eh',['NEWeightsReshapeKernel.h',['../_n_e_weights_reshape_kernel_8h.xhtml',1,'']]],
+  ['newinogradlayer_2eh',['NEWinogradLayer.h',['../_n_e_winograd_layer_8h.xhtml',1,'']]],
+  ['newinogradlayerkernel_2eh',['NEWinogradLayerKernel.h',['../_n_e_winograd_layer_kernel_8h.xhtml',1,'']]],
+  ['nodecontext_2eh',['NodeContext.h',['../_node_context_8h.xhtml',1,'']]],
+  ['nodeparameter_2eh',['NodeParameter.h',['../_node_parameter_8h.xhtml',1,'']]],
   ['nodes_2eh',['Nodes.h',['../_nodes_8h.xhtml',1,'']]],
   ['non_5flinear_5ffilter3x3_2ecl',['non_linear_filter3x3.cl',['../non__linear__filter3x3_8cl.xhtml',1,'']]],
   ['non_5flinear_5ffilter5x5_2ecl',['non_linear_filter5x5.cl',['../non__linear__filter5x5_8cl.xhtml',1,'']]],
   ['non_5flinear_5ffilter_5fhelpers_2eh',['non_linear_filter_helpers.h',['../non__linear__filter__helpers_8h.xhtml',1,'']]],
   ['nonlinearfilter_2ecpp',['NonLinearFilter.cpp',['../_n_e_o_n_2_non_linear_filter_8cpp.xhtml',1,'']]],
+  ['nonlinearfilter_2ecpp',['NonLinearFilter.cpp',['../reference_2_non_linear_filter_8cpp.xhtml',1,'']]],
   ['nonlinearfilter_2ecpp',['NonLinearFilter.cpp',['../_c_l_2_non_linear_filter_8cpp.xhtml',1,'']]],
-  ['nonlinearfilter_2ecpp',['NonLinearFilter.cpp',['../_c_p_p_2_non_linear_filter_8cpp.xhtml',1,'']]],
   ['nonlinearfilter_2eh',['NonLinearFilter.h',['../_non_linear_filter_8h.xhtml',1,'']]],
   ['nonlinearfilterfixture_2eh',['NonLinearFilterFixture.h',['../_non_linear_filter_fixture_8h.xhtml',1,'']]],
   ['nonlinearfilterfunctiondataset_2eh',['NonLinearFilterFunctionDataset.h',['../_non_linear_filter_function_dataset_8h.xhtml',1,'']]],
@@ -181,12 +212,13 @@
   ['nonmaximasuppression_2ecpp',['NonMaximaSuppression.cpp',['../_non_maxima_suppression_8cpp.xhtml',1,'']]],
   ['nonmaximasuppression_2eh',['NonMaximaSuppression.h',['../_non_maxima_suppression_8h.xhtml',1,'']]],
   ['normalization_5flayer_2ecl',['normalization_layer.cl',['../normalization__layer_8cl.xhtml',1,'']]],
-  ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../validation_2_n_e_o_n_2_normalization_layer_8cpp.xhtml',1,'']]],
   ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../benchmark_2_n_e_o_n_2_normalization_layer_8cpp.xhtml',1,'']]],
-  ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../validation_2_c_p_p_2_normalization_layer_8cpp.xhtml',1,'']]],
+  ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../validation_2_n_e_o_n_2_normalization_layer_8cpp.xhtml',1,'']]],
+  ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../validation_2_g_l_e_s___c_o_m_p_u_t_e_2_normalization_layer_8cpp.xhtml',1,'']]],
   ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../benchmark_2_c_l_2_normalization_layer_8cpp.xhtml',1,'']]],
+  ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../validation_2reference_2_normalization_layer_8cpp.xhtml',1,'']]],
   ['normalizationlayer_2ecpp',['NormalizationLayer.cpp',['../validation_2_c_l_2_normalization_layer_8cpp.xhtml',1,'']]],
-  ['normalizationlayer_2eh',['NormalizationLayer.h',['../tests_2validation_2_c_p_p_2_normalization_layer_8h.xhtml',1,'']]],
+  ['normalizationlayer_2eh',['NormalizationLayer.h',['../tests_2validation_2reference_2_normalization_layer_8h.xhtml',1,'']]],
   ['normalizationlayer_2eh',['NormalizationLayer.h',['../arm__compute_2graph_2nodes_2_normalization_layer_8h.xhtml',1,'']]],
   ['normalizationlayerfixture_2eh',['NormalizationLayerFixture.h',['../validation_2fixtures_2_normalization_layer_fixture_8h.xhtml',1,'']]],
   ['normalizationlayerfixture_2eh',['NormalizationLayerFixture.h',['../benchmark_2fixtures_2_normalization_layer_fixture_8h.xhtml',1,'']]],