MLBEDSW-7331: Reinstate max stride height constraint of 3 for Conv2D

Reinstate constraint for stride height to (1,3) instead of (1,4) for
Conv2D and update unit tests.

Change-Id: I17389ee040eeff0cea08279cab1c038e951569ea
Signed-off-by: Raul Farkas <raul.farkas@arm.com>
diff --git a/SUPPORTED_OPS.md b/SUPPORTED_OPS.md
index 3d04592..1ed37bd 100644
--- a/SUPPORTED_OPS.md
+++ b/SUPPORTED_OPS.md
@@ -1,7 +1,7 @@
 # Supported Ops
 
 This file was automatically generated by Vela using the `--supported-ops-report` parameter.  
-Vela version: `3.6.1.dev18+g34cbb970`
+Vela version: `3.6.1.dev18+g090f18a5`
 
 This file complies with
 [**Gitiles Markdown syntax**](https://github.com/google/gitiles/blob/master/Documentation/markdown.md)
@@ -123,7 +123,7 @@
 
 - Stride values for both width and height must be integer types
 - Dilation factor values for both width and height must be integer types
-- Stride values for both width and height must be between 1 and 4
+- Stride values for height must be between 1 and 3 and for width between 1 and 4
 - Dilated kernel height must be in the range [1, 64]
 - Product of dilated kernel width and height must be in the range [1, 4096]
 - Weight tensor must be 8-bit
diff --git a/ethosu/vela/test/test_tflite_supported_operators.py b/ethosu/vela/test/test_tflite_supported_operators.py
index efe0d00..2713adf 100644
--- a/ethosu/vela/test/test_tflite_supported_operators.py
+++ b/ethosu/vela/test/test_tflite_supported_operators.py
@@ -107,7 +107,18 @@
 
 @pytest.mark.parametrize(
     "stride_w, stride_h, supported",
-    [[0, 20, False], [4, 4, True], [4, 5, False], [5, 4, False], [3, 3, True], [1, 1, True], [2, 4, True]],
+    [
+        [0, 20, False],
+        [4, 1, True],
+        [4, 2, True],
+        [2, 2, True],
+        [4, 4, False],
+        [4, 5, False],
+        [5, 4, False],
+        [3, 3, True],
+        [1, 1, True],
+        [2, 4, False],
+    ],
 )
 def test_constraint_stride_range(stride_w: int, stride_h: int, supported: bool):
     # Stride width and height must lie within a certain range
diff --git a/ethosu/vela/tflite_supported_operators.py b/ethosu/vela/tflite_supported_operators.py
index 2a1eba7..26ccfeb 100644
--- a/ethosu/vela/tflite_supported_operators.py
+++ b/ethosu/vela/tflite_supported_operators.py
@@ -537,10 +537,12 @@
 
     @staticmethod
     def constraint_conv_stride(op):
-        "Stride values for both width and height must be between 1 and 4"
+        "Stride values for height must be between 1 and 3 and for width between 1 and 4"
         w, h = op.get_kernel_stride()
-        stride_min, stride_max = 1, 4
-        valid = (stride_min <= w <= stride_max) and (stride_min <= h <= stride_max)
+        stride_min_w_h = 1
+        stride_max_w = 4
+        stride_max_h = 3
+        valid = (stride_min_w_h <= w <= stride_max_w) and (stride_min_w_h <= h <= stride_max_h)
         return valid, f"Op has stride WxH as: {w}x{h}"
 
     @staticmethod