diff --git a/verif/frameworks/arg_gen.py b/verif/frameworks/arg_gen.py
index 8feb9b2..fa4a652 100644
--- a/verif/frameworks/arg_gen.py
+++ b/verif/frameworks/arg_gen.py
@@ -92,6 +92,16 @@
                             ):
                                 continue
 
+                            if (
+                                (shapes[1] - 1 - (filter_h - 1) * dilation_h) % stride_h
+                                != 0
+                            ) or (
+                                (shapes[2] - 1 - (filter_w - 1) * dilation_w) % stride_w
+                                != 0
+                            ):
+                                # Not an exact integer output
+                                continue
+
                             arg_list.append(
                                 [
                                     "_st{}{}_pad{}_dilat{}{}".format(
@@ -147,6 +157,14 @@
                         if shapes[1] % dilation_h != 0 or shapes[2] % dilation_w != 0:
                             continue
 
+                        if (
+                            (shapes[1] - 1 - (filter_h - 1) * dilation_h) % stride != 0
+                        ) or (
+                            (shapes[2] - 1 - (filter_w - 1) * dilation_w) % stride != 0
+                        ):
+                            # Not an exact integer output
+                            continue
+
                         arg_list.append(
                             [
                                 "_st{}{}_pad{}_dilat{}{}".format(
@@ -217,6 +235,12 @@
                             ):
                                 continue
 
+                            if ((shapes[1] - kernel_h) % stride_h != 0) or (
+                                (shapes[2] - kernel_w) % stride_w != 0
+                            ):
+                                # Not an exact integer output
+                                continue
+
                             arg_list.append(
                                 [
                                     "_st{}{}_pad{}_kern{}{}".format(
diff --git a/verif/frameworks/tosa_verif_framework_generator.py b/verif/frameworks/tosa_verif_framework_generator.py
index 8457d92..3b5d012 100755
--- a/verif/frameworks/tosa_verif_framework_generator.py
+++ b/verif/frameworks/tosa_verif_framework_generator.py
@@ -1147,7 +1147,9 @@
 
     addl_args_tuple = arg_gen_fcn(op, curr_shape, rng)
     for desc, addl_args in addl_args_tuple:
-        if not filter or filter.search(test_dir + desc):
+        # Only filter on the full test_name, not the output directory
+        _, test_name = os.path.split(test_dir + desc)
+        if not filter or filter.search(test_name):
             unit_test_args.append(
                 [
                     op_name,
