COMPMID-583 - Implemented reference implementation and validation tests (NEON and CL) for Histogram

Change-Id: Iccf6b4483cb8394dab2f861a737583126f9bed81
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/91601
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
diff --git a/src/core/NEON/kernels/NEHistogramKernel.cpp b/src/core/NEON/kernels/NEHistogramKernel.cpp
index 6e402ae..02de566 100644
--- a/src/core/NEON/kernels/NEHistogramKernel.cpp
+++ b/src/core/NEON/kernels/NEHistogramKernel.cpp
@@ -87,8 +87,8 @@
         }
     };
 
-    const unsigned int x_start = win.x().start();
-    const unsigned int x_end   = win.x().end();
+    const int x_start = win.x().start();
+    const int x_end   = win.x().end();
 
     // Handle X dimension manually to split into two loops
     // First one will use vector operations, second one processes the left over
@@ -100,7 +100,7 @@
     // Calculate local histogram
     execute_window_loop(win, [&](const Coordinates &)
     {
-        unsigned int x = x_start;
+        int x = x_start;
 
         // Vector loop
         for(; x <= x_end - 8; x += 8)
@@ -136,8 +136,8 @@
 
     std::array<uint32_t, _max_range_size> local_hist{ { 0 } };
 
-    const unsigned int x_start = win.x().start();
-    const unsigned int x_end   = win.x().end();
+    const int x_start = win.x().start();
+    const int x_end   = win.x().end();
 
     // Handle X dimension manually to split into two loops
     // First one will use vector operations, second one processes the left over
@@ -149,7 +149,7 @@
     // Calculate local histogram
     execute_window_loop(win, [&](const Coordinates &)
     {
-        unsigned int x = x_start;
+        int x = x_start;
 
         // Vector loop
         for(; x <= x_end - 8; x += 8)