diff --git a/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.gateway.log b/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.gateway.log
index c9e46f6..948e767 100644
--- a/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.gateway.log
+++ b/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.gateway.log
@@ -1,9 +1,24 @@
 +---------------------------------------------------------------------+
 |  Log file: mau.gateway.log                                          |
 |  Compiler version: 5.1.0 (fca32d1)                                  |
-|  Created on: Thu Sep  7 14:48:49 2017                               |
+|  Created on: Fri Sep  8 08:25:15 2017                               |
 +---------------------------------------------------------------------+
 
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
 valid:
   f = packet_out_hdr
 const:
@@ -110,7 +125,7 @@
 match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
 Search bus 0 on row 7
 
- final_parity_group_ids = [(0, []), (1, [])] 
+ final_parity_group_ids = [(0, [0]), (1, [0])] 
 
  open_parity_group_ids = [0, 1] 
 ----------------------------
@@ -120,13 +135,13 @@
 Call to _place_fields_for_constant_comparison
 constant_match_key_partition is:
 Byte Position 0
-  (68, 0)
+  (67, 0)
 Byte Position 1
-  (68, 0)
+  (67, 0)
 Byte Position 2
-  (68, 0)
+  (67, 0)
 Byte Position 3
-  (68, 0)
+  (67, 0)
 
 Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
 Available data bytes for constants are [0, 1, 2, 3]
@@ -245,7 +260,7 @@
   [42] = None
   [43] = None
  Hash Bit Mapping:
-   (0, 1) --> 40
+   (12, 1) --> 40
 
 Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
 Allocating: Gateway 15 in stage 0 for _condition_0.
@@ -341,7 +356,7 @@
 match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
 Search bus 0 on row 7
 
- final_parity_group_ids = [(0, []), (1, [])] 
+ final_parity_group_ids = [(0, [0]), (1, [0])] 
 
  open_parity_group_ids = [0, 1] 
 ----------------------------
@@ -351,13 +366,13 @@
 Call to _place_fields_for_constant_comparison
 constant_match_key_partition is:
 Byte Position 0
-  (68, 0)
+  (67, 0)
 Byte Position 1
-  (68, 0)
+  (67, 0)
 Byte Position 2
-  (68, 0)
+  (67, 0)
 Byte Position 3
-  (68, 0)
+  (67, 0)
 
 Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
 Available data bytes for constants are [0, 1, 2, 3]
@@ -476,42 +491,26 @@
   [42] = None
   [43] = None
  Hash Bit Mapping:
-   (0, 1) --> 40
+   (12, 1) --> 40
 
 Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
 Allocating: Gateway 15 in stage 0 for _condition_0.
-
-========================================================
-  Run Gateway Placement on Request List of size 0
-========================================================
-
-
-========================================================
-  Run Gateway Placement on Request List of size 0
-========================================================
-
-
-========================================================
-  Run Gateway Placement on Request List of size 0
-========================================================
-
 valid:
-  f = packet_out_hdr
 const:
 xor:
-Gateway Resource Request for P4 table _condition_1 with handle 117440514 in stage 1
+Gateway Resource Request for P4 table process_packet_out_table_always_true_condition with handle -1 in stage 0
   Validity checks:
-      Field --validity_check--packet_out_hdr [0:0]
+      <none>
   Fields to check against constants:
       <none>
   Field pairs to compare to each other:
       <none>
 
-Gateway Resource Request for table _condition_1 needs access to 1 input bits
+Gateway Resource Request for table process_packet_out_table_always_true_condition needs access to 0 input bits
 
 
 ========================================================
-  Run Gateway Placement on Request List of size 1
+  Run Gateway Placement on Request List of size 2
 ========================================================
 
 Available Gateways are: (16)
@@ -605,19 +604,19 @@
 
  open_parity_group_ids = [0, 1] 
 ----------------------------
- Trying to place Gateway Resource Request for table _condition_1 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+ Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
 ----------------------------
 --------------
 Call to _place_fields_for_constant_comparison
 constant_match_key_partition is:
 Byte Position 0
-  (68, 0)
+  (67, 0)
 Byte Position 1
-  (68, 0)
+  (67, 0)
 Byte Position 2
-  (68, 0)
+  (67, 0)
 Byte Position 3
-  (68, 0)
+  (67, 0)
 
 Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
 Available data bytes for constants are [0, 1, 2, 3]
@@ -738,11 +737,149 @@
  Hash Bit Mapping:
    (12, 1) --> 40
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 1 for gateway
-Allocating: Gateway 15 in stage 1 for _condition_1.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
+Allocating: Gateway 15 in stage 0 for _condition_0.
+Available Gateways are: (15)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+------- Phase 0 -------------
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [1], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f498e8ad150>, 0)])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+----------------------------
+ Trying to place Gateway Resource Request for table process_packet_out_table_always_true_condition needs access to 0 input bits in exact match group 0 (parity groups [1]) and hash group 0 for gateway 14.
+----------------------------
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+
+Allocating: Gateway 14 in stage 0 for process_packet_out_table_always_true_condition.
 
 ========================================================
-  Run Gateway Placement on Request List of size 1
+  Run Gateway Placement on Request List of size 2
 ========================================================
 
 Available Gateways are: (16)
@@ -836,19 +973,19 @@
 
  open_parity_group_ids = [0, 1] 
 ----------------------------
- Trying to place Gateway Resource Request for table _condition_1 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+ Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
 ----------------------------
 --------------
 Call to _place_fields_for_constant_comparison
 constant_match_key_partition is:
 Byte Position 0
-  (68, 0)
+  (67, 0)
 Byte Position 1
-  (68, 0)
+  (67, 0)
 Byte Position 2
-  (68, 0)
+  (67, 0)
 Byte Position 3
-  (68, 0)
+  (67, 0)
 
 Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
 Available data bytes for constants are [0, 1, 2, 3]
@@ -969,8 +1106,146 @@
  Hash Bit Mapping:
    (12, 1) --> 40
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 1 for gateway
-Allocating: Gateway 15 in stage 1 for _condition_1.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
+Allocating: Gateway 15 in stage 0 for _condition_0.
+Available Gateways are: (15)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+------- Phase 0 -------------
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [1], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f498e2edb10>, 0)])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+----------------------------
+ Trying to place Gateway Resource Request for table process_packet_out_table_always_true_condition needs access to 0 input bits in exact match group 0 (parity groups [1]) and hash group 0 for gateway 14.
+----------------------------
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+
+Allocating: Gateway 14 in stage 0 for process_packet_out_table_always_true_condition.
 
 ========================================================
   Run Gateway Placement on Request List of size 0
@@ -990,7 +1265,7 @@
 const:
   f = ig_intr_md_for_tm.ucast_egress_port
 xor:
-Gateway Resource Request for P4 table _condition_2 with handle 117440515 in stage 3
+Gateway Resource Request for P4 table _condition_2 with handle 117440514 in stage 2
   Validity checks:
       <none>
   Fields to check against constants:
@@ -1245,8 +1520,8 @@
    (0, 6) --> 47
    (0, 7) --> 48
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
-Allocating: Gateway 15 in stage 3 for _condition_2.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 2 for gateway
+Allocating: Gateway 15 in stage 2 for _condition_2.
 
 ========================================================
   Run Gateway Placement on Request List of size 1
@@ -1492,8 +1767,8 @@
    (0, 6) --> 47
    (0, 7) --> 48
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
-Allocating: Gateway 15 in stage 3 for _condition_2.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 2 for gateway
+Allocating: Gateway 15 in stage 2 for _condition_2.
 
 ========================================================
   Run Gateway Placement on Request List of size 1
@@ -1739,12 +2014,12 @@
    (0, 6) --> 47
    (0, 7) --> 48
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
-Allocating: Gateway 15 in stage 3 for _condition_2.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 2 for gateway
+Allocating: Gateway 15 in stage 2 for _condition_2.
 valid:
 const:
 xor:
-Gateway Resource Request for P4 table egress_port_count_table_always_true_condition with handle -1 in stage 3
+Gateway Resource Request for P4 table egress_port_count_table_always_true_condition with handle -1 in stage 2
   Validity checks:
       <none>
   Fields to check against constants:
@@ -1999,8 +2274,8 @@
    (0, 6) --> 47
    (0, 7) --> 48
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
-Allocating: Gateway 15 in stage 3 for _condition_2.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 2 for gateway
+Allocating: Gateway 15 in stage 2 for _condition_2.
 Available Gateways are: (15)
 Gateway 0
 Gateway 1
@@ -2019,7 +2294,7 @@
 Gateway 14
 ------- Phase 0 -------------
 Looking at gateway table 14
-match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f84d5cbff10>, 0)])), (1, (None, [], None, [], []))])
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f49924f5210>, 0)])), (1, (None, [], None, [], []))])
 Search bus 0 on row 7
 ----------------------------
  Trying to place Gateway Resource Request for table egress_port_count_table_always_true_condition needs access to 0 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
@@ -2138,7 +2413,7 @@
   [43] = None
  Hash Bit Mapping:
 
-Allocating: Gateway 14 in stage 3 for egress_port_count_table_always_true_condition.
+Allocating: Gateway 14 in stage 2 for egress_port_count_table_always_true_condition.
 
 ========================================================
   Run Gateway Placement on Request List of size 2
@@ -2384,8 +2659,8 @@
    (0, 6) --> 47
    (0, 7) --> 48
 
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
-Allocating: Gateway 15 in stage 3 for _condition_2.
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 2 for gateway
+Allocating: Gateway 15 in stage 2 for _condition_2.
 Available Gateways are: (15)
 Gateway 0
 Gateway 1
@@ -2404,7 +2679,7 @@
 Gateway 14
 ------- Phase 0 -------------
 Looking at gateway table 14
-match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f84d27b5710>, 0)])), (1, (None, [], None, [], []))])
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f498e781990>, 0)])), (1, (None, [], None, [], []))])
 Search bus 0 on row 7
 ----------------------------
  Trying to place Gateway Resource Request for table egress_port_count_table_always_true_condition needs access to 0 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
@@ -2523,798 +2798,4 @@
   [43] = None
  Hash Bit Mapping:
 
-Allocating: Gateway 14 in stage 3 for egress_port_count_table_always_true_condition.
-valid:
-const:
-  f = ig_intr_md_for_tm.copy_to_cpu
-xor:
-Gateway Resource Request for P4 table _condition_3 with handle 117440516 in stage 0
-  Validity checks:
-      <none>
-  Fields to check against constants:
-      Field ig_intr_md_for_tm.copy_to_cpu [0:0]
-  Field pairs to compare to each other:
-      <none>
-
-Gateway Resource Request for table _condition_3 needs access to 1 input bits
-
-
-========================================================
-  Run Gateway Placement on Request List of size 2
-========================================================
-
-Available Gateways are: (16)
-Gateway 0
-Gateway 1
-Gateway 2
-Gateway 3
-Gateway 4
-Gateway 5
-Gateway 6
-Gateway 7
-Gateway 8
-Gateway 9
-Gateway 10
-Gateway 11
-Gateway 12
-Gateway 13
-Gateway 14
-Gateway 15
-------- Phase 0 -------------
-Looking at gateway table 15
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-Search bus 1 on row 7
-Looking at gateway table 14
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-Search bus 1 on row 7
-Looking at gateway table 13
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 6
-Search bus 1 on row 6
-Looking at gateway table 12
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 6
-Search bus 1 on row 6
-Looking at gateway table 11
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 5
-Search bus 1 on row 5
-Looking at gateway table 10
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 5
-Search bus 1 on row 5
-Looking at gateway table 9
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 4
-Search bus 1 on row 4
-Looking at gateway table 8
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 4
-Search bus 1 on row 4
-Looking at gateway table 7
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 3
-Search bus 1 on row 3
-Looking at gateway table 6
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 3
-Search bus 1 on row 3
-Looking at gateway table 5
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 2
-Search bus 1 on row 2
-Looking at gateway table 4
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 2
-Search bus 1 on row 2
-Looking at gateway table 3
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 1
-Search bus 1 on row 1
-Looking at gateway table 2
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 1
-Search bus 1 on row 1
-Looking at gateway table 1
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 0
-Search bus 1 on row 0
-Looking at gateway table 0
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 0
-Search bus 1 on row 0
-------- Phase 1 -------------
-Looking at gateway table 15
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-
- final_parity_group_ids = [(0, []), (1, [])] 
-
- open_parity_group_ids = [0, 1] 
-----------------------------
- Trying to place Gateway Resource Request for table _condition_3 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
-----------------------------
---------------
-Call to _place_fields_for_constant_comparison
-constant_match_key_partition is:
-Byte Position 0
-  (80, 0)
-Byte Position 1
-  (80, 0)
-Byte Position 2
-  (80, 0)
-Byte Position 3
-  (80, 0)
-
-Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
-Available data bytes for constants are [0, 1, 2, 3]
-Put all gateway constant field bits into the hash bits.
-Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.copy_to_cpu', 0).
-Gateway data search bus packing is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = None
-  [33] = None
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
-  [44] = None
-  [45] = None
-  [46] = None
-  [47] = None
-  [48] = None
-  [49] = None
-  [50] = None
-  [51] = None
-  [52] = None
-  [53] = None
-  [54] = None
-  [55] = None
-  [56] = None
-  [57] = None
-  [58] = None
-  [59] = None
-  [60] = None
-  [61] = None
-  [62] = None
-  [63] = None
- Move Byte Mapping:
-
-Final Gateway Key is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = (('ig_intr_md_for_tm.copy_to_cpu', 0), 'exact')
-  [33] = None
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
- Hash Bit Mapping:
-   (0, 0) --> 40
-
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
-Allocating: Gateway 15 in stage 0 for _condition_3.
-Available Gateways are: (15)
-Gateway 0
-Gateway 1
-Gateway 2
-Gateway 3
-Gateway 4
-Gateway 5
-Gateway 6
-Gateway 7
-Gateway 8
-Gateway 9
-Gateway 10
-Gateway 11
-Gateway 12
-Gateway 13
-Gateway 14
-------- Phase 0 -------------
-Looking at gateway table 14
-match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f84d6772cd0>, 0)])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-----------------------------
- Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
-----------------------------
---------------
-Call to _place_fields_for_constant_comparison
-constant_match_key_partition is:
-Byte Position 0
-  (68, 0)
-Byte Position 1
-  (68, 0)
-Byte Position 2
-  (68, 0)
-Byte Position 3
-  (68, 0)
-
-Removing available byte Byte 8 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Removing available byte Byte 10 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Removing available byte Byte 12 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Removing available byte Byte 14 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
-Available data bytes for constants are [0, 1, 2, 3]
-Put all gateway constant field bits into the hash bits.
-Allocating: Hash Bit 41 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
-Gateway data search bus packing is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = None
-  [33] = None
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
-  [44] = None
-  [45] = None
-  [46] = None
-  [47] = None
-  [48] = None
-  [49] = None
-  [50] = None
-  [51] = None
-  [52] = None
-  [53] = None
-  [54] = None
-  [55] = None
-  [56] = None
-  [57] = None
-  [58] = None
-  [59] = None
-  [60] = None
-  [61] = None
-  [62] = None
-  [63] = None
- Move Byte Mapping:
-
-Final Gateway Key is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = None
-  [33] = (('--validity_check--packet_out_hdr', 0), 'exact')
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
- Hash Bit Mapping:
-   (1, 1) --> 41
-
-Allocating: Gateway 14 in stage 0 for _condition_0.
-
-========================================================
-  Run Gateway Placement on Request List of size 2
-========================================================
-
-Available Gateways are: (16)
-Gateway 0
-Gateway 1
-Gateway 2
-Gateway 3
-Gateway 4
-Gateway 5
-Gateway 6
-Gateway 7
-Gateway 8
-Gateway 9
-Gateway 10
-Gateway 11
-Gateway 12
-Gateway 13
-Gateway 14
-Gateway 15
-------- Phase 0 -------------
-Looking at gateway table 15
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-Search bus 1 on row 7
-Looking at gateway table 14
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-Search bus 1 on row 7
-Looking at gateway table 13
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 6
-Search bus 1 on row 6
-Looking at gateway table 12
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 6
-Search bus 1 on row 6
-Looking at gateway table 11
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 5
-Search bus 1 on row 5
-Looking at gateway table 10
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 5
-Search bus 1 on row 5
-Looking at gateway table 9
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 4
-Search bus 1 on row 4
-Looking at gateway table 8
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 4
-Search bus 1 on row 4
-Looking at gateway table 7
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 3
-Search bus 1 on row 3
-Looking at gateway table 6
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 3
-Search bus 1 on row 3
-Looking at gateway table 5
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 2
-Search bus 1 on row 2
-Looking at gateway table 4
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 2
-Search bus 1 on row 2
-Looking at gateway table 3
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 1
-Search bus 1 on row 1
-Looking at gateway table 2
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 1
-Search bus 1 on row 1
-Looking at gateway table 1
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 0
-Search bus 1 on row 0
-Looking at gateway table 0
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 0
-Search bus 1 on row 0
-------- Phase 1 -------------
-Looking at gateway table 15
-match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-
- final_parity_group_ids = [(0, []), (1, [])] 
-
- open_parity_group_ids = [0, 1] 
-----------------------------
- Trying to place Gateway Resource Request for table _condition_3 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
-----------------------------
---------------
-Call to _place_fields_for_constant_comparison
-constant_match_key_partition is:
-Byte Position 0
-  (80, 0)
-Byte Position 1
-  (80, 0)
-Byte Position 2
-  (80, 0)
-Byte Position 3
-  (80, 0)
-
-Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
-Available data bytes for constants are [0, 1, 2, 3]
-Put all gateway constant field bits into the hash bits.
-Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.copy_to_cpu', 0).
-Gateway data search bus packing is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = None
-  [33] = None
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
-  [44] = None
-  [45] = None
-  [46] = None
-  [47] = None
-  [48] = None
-  [49] = None
-  [50] = None
-  [51] = None
-  [52] = None
-  [53] = None
-  [54] = None
-  [55] = None
-  [56] = None
-  [57] = None
-  [58] = None
-  [59] = None
-  [60] = None
-  [61] = None
-  [62] = None
-  [63] = None
- Move Byte Mapping:
-
-Final Gateway Key is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = (('ig_intr_md_for_tm.copy_to_cpu', 0), 'exact')
-  [33] = None
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
- Hash Bit Mapping:
-   (0, 0) --> 40
-
-Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
-Allocating: Gateway 15 in stage 0 for _condition_3.
-Available Gateways are: (15)
-Gateway 0
-Gateway 1
-Gateway 2
-Gateway 3
-Gateway 4
-Gateway 5
-Gateway 6
-Gateway 7
-Gateway 8
-Gateway 9
-Gateway 10
-Gateway 11
-Gateway 12
-Gateway 13
-Gateway 14
-------- Phase 0 -------------
-Looking at gateway table 14
-match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f84d1f439d0>, 0)])), (1, (None, [], None, [], []))])
-Search bus 0 on row 7
-----------------------------
- Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
-----------------------------
---------------
-Call to _place_fields_for_constant_comparison
-constant_match_key_partition is:
-Byte Position 0
-  (68, 0)
-Byte Position 1
-  (68, 0)
-Byte Position 2
-  (68, 0)
-Byte Position 3
-  (68, 0)
-
-Removing available byte Byte 8 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Removing available byte Byte 10 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Removing available byte Byte 12 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Removing available byte Byte 14 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
-Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
-Available data bytes for constants are [0, 1, 2, 3]
-Put all gateway constant field bits into the hash bits.
-Allocating: Hash Bit 41 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
-Gateway data search bus packing is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = None
-  [33] = None
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
-  [44] = None
-  [45] = None
-  [46] = None
-  [47] = None
-  [48] = None
-  [49] = None
-  [50] = None
-  [51] = None
-  [52] = None
-  [53] = None
-  [54] = None
-  [55] = None
-  [56] = None
-  [57] = None
-  [58] = None
-  [59] = None
-  [60] = None
-  [61] = None
-  [62] = None
-  [63] = None
- Move Byte Mapping:
-
-Final Gateway Key is:
-  [0] = None
-  [1] = None
-  [2] = None
-  [3] = None
-  [4] = None
-  [5] = None
-  [6] = None
-  [7] = None
-  [8] = None
-  [9] = None
-  [10] = None
-  [11] = None
-  [12] = None
-  [13] = None
-  [14] = None
-  [15] = None
-  [16] = None
-  [17] = None
-  [18] = None
-  [19] = None
-  [20] = None
-  [21] = None
-  [22] = None
-  [23] = None
-  [24] = None
-  [25] = None
-  [26] = None
-  [27] = None
-  [28] = None
-  [29] = None
-  [30] = None
-  [31] = None
-  [32] = None
-  [33] = (('--validity_check--packet_out_hdr', 0), 'exact')
-  [34] = None
-  [35] = None
-  [36] = None
-  [37] = None
-  [38] = None
-  [39] = None
-  [40] = None
-  [41] = None
-  [42] = None
-  [43] = None
- Hash Bit Mapping:
-   (1, 1) --> 41
-
-Allocating: Gateway 14 in stage 0 for _condition_0.
+Allocating: Gateway 14 in stage 2 for egress_port_count_table_always_true_condition.
