COMPMID-1438: MobilenetV1 regression.

Alters the ending conditions for y dimension to use the actual end
offset as a bound and not the actual y window as this could be the whole
execution window and can lead to overlapped calculations across threads.

Change-Id: Ic6642bbaa8e85d4a4034a44234d6cb3347a2f4ff
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/142229
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/arm_compute/core/WindowIterator.h b/arm_compute/core/WindowIterator.h
index 13cb9cf..8e58d0c 100644
--- a/arm_compute/core/WindowIterator.h
+++ b/arm_compute/core/WindowIterator.h
@@ -218,7 +218,7 @@
                 // Shouldn't be possible to reach that point and not have at least one entire row to process
                 ARM_COMPUTE_ERROR_ON(_w.y().end() == _position.y());
                 // No leftover: all the rows lefts to process are full width:
-                iterate_over_dim1(_w.y().end());
+                iterate_over_dim1(end_y + _w.y().step());
             }
             else
             {
@@ -229,7 +229,7 @@
                     PRINTF("full rows\n");
                     //Switch to full row size:
                     on_new_row_size(_w[0].start(), _w.x().end());
-                    iterate_over_dim1(_w.y().end() - _w.y().step());
+                    iterate_over_dim1(end_y);
                 }
 
                 PRINTF("Final leftover\n");
diff --git a/tests/validation/UNIT/WindowIterator.cpp b/tests/validation/UNIT/WindowIterator.cpp
index 0c1ab12..402cab4 100644
--- a/tests/validation/UNIT/WindowIterator.cpp
+++ b/tests/validation/UNIT/WindowIterator.cpp
@@ -96,7 +96,7 @@
 }
 
 DATA_TEST_CASE(PartialWindow2D, framework::DatasetMode::ALL, zip(zip(zip(combine(framework::dataset::make("Window",
-                                                                                                          create_window(Window::Dimension(4, 20, 4), Window::Dimension(3, 18, 5), Window::Dimension(1, 2, 1))),
+                                                                                                          create_window(Window::Dimension(4, 20, 4), Window::Dimension(3, 32, 5), Window::Dimension(1, 2, 1))),
                                                                                  framework::dataset::make("Start", { 0, 1, 3, 2, 4 })),
                                                                          framework::dataset::make("End", { 0, 2, 5, 8, 7 })),
                                                                      framework::dataset::make("RowSize",