IVGCVSW-657 : fix asymmetric padding for 3x3 depthwise conv

Change-Id: Ied6b3c41d988b9ff6a93f938117dc29ad4c85e9f
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/93421
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
diff --git a/src/core/CL/kernels/CLDepthwiseConvolution3x3Kernel.cpp b/src/core/CL/kernels/CLDepthwiseConvolution3x3Kernel.cpp
index 2d0c416..7b5dfd6 100644
--- a/src/core/CL/kernels/CLDepthwiseConvolution3x3Kernel.cpp
+++ b/src/core/CL/kernels/CLDepthwiseConvolution3x3Kernel.cpp
@@ -37,7 +37,7 @@
 using namespace arm_compute;
 
 CLDepthwiseConvolution3x3Kernel::CLDepthwiseConvolution3x3Kernel()
-    : _border_size(0), _input(), _output(), _weights(), _biases(), _conv_stride_x(0), _conv_stride_y(0), _conv_pad_x(0), _conv_pad_y(0)
+    : _border_size(0), _input(), _output(), _weights(), _biases(), _conv_stride_x(0), _conv_stride_y(0), _conv_pad_left(0), _conv_pad_top(0)
 {
 }
 
@@ -74,9 +74,9 @@
     _biases        = biases;
     _conv_stride_x = conv_info.stride().first;
     _conv_stride_y = conv_info.stride().second;
-    _conv_pad_x    = conv_info.pad().first;
-    _conv_pad_y    = conv_info.pad().second;
-    _border_size   = BorderSize(_conv_pad_y, _conv_pad_x);
+    _conv_pad_left = conv_info.pad_left();
+    _conv_pad_top  = conv_info.pad_top();
+    _border_size   = BorderSize(_conv_pad_top, conv_info.pad_right(), conv_info.pad_bottom(), _conv_pad_left);
 
     // Set build options
     ARM_COMPUTE_ERROR_ON(_conv_stride_x < 1 || _conv_stride_x > 3);
@@ -116,8 +116,8 @@
     Window slice_out     = window.first_slice_window_3D();
     Window slice_weights = window.first_slice_window_3D();
 
-    slice_in.adjust(Window::DimX, -_conv_pad_x, true);
-    slice_in.adjust(Window::DimY, -_conv_pad_y, true);
+    slice_in.adjust(Window::DimX, -_conv_pad_left, true);
+    slice_in.adjust(Window::DimY, -_conv_pad_top, true);
     slice_in.set_dimension_step(Window::DimX, window.x().step() * _conv_stride_x);
     slice_in.set_dimension_step(Window::DimY, window.y().step() * _conv_stride_y);
     slice_weights.set_dimension_step(Window::DimX, 0);