···1515- AC8.3: FREE on shared frame preserves other lanes' data
1616- AC8.4: ALLOC_REMOTE emits ALLOC_SHARED when fref+2 is non-zero
1717- AC8.5: ALLOC_REMOTE emits ALLOC when fref+2 is zero (backwards compatible)
1818+- AC8.6: Full loop pipelining scenario — two iterations concurrent on different lanes
1819"""
19202021import pytest
···10521053 assert out_tok_1.target == 1, "Output should route to target_pe=1"
1053105410541055 # Interleaved verification: confirm independent lanes
10551055- all_matched = [e for e in matched if isinstance(e, Matched)]
10561056 matches_by_id = {}
10571057- for m in all_matched:
10571057+ for m in matched:
10581058 if m.act_id not in matches_by_id:
10591059 matches_by_id[m.act_id] = []
10601060 matches_by_id[m.act_id].append(m)
···11141114 assert matches_by_id[1][-1].left + matches_by_id[1][-1].right == 3000, \
11151115 "Iteration 2 arithmetic correct"
1116111611171117- # Both iterations ran on SAME frame
11181118- assert pe.tag_store.__class__.__name__ == 'dict' or True, "tag_store structure OK"
11171117+ # Both iterations ran on SAME frame (verified at allocation, re-confirmed)
11181118+ assert frame_id_1 == frame_id, "Both iterations ran on same frame"
1119111911201120 # Both iterations used DIFFERENT lanes
11211121 assert lane_0 != lane_1, "Iterations used different lanes"