As you noted, when the scheduler decides between stores and adds it always prefers the adds (first at t = 5), due to its critical path heuristic. In Jon's example, stores seem "costly" as one cannot issue a load or store immediately following a store. Perhaps the scheduler could take the (resource-related) "cost" of candidates into consideration (in addition to their latency-related critical path) when making such decisions. Still heuristically speaking, of-course. Ayal.