target { pseudo.combine(%x) : (2x8) -> 8x8; pseudo.extract(%x) : (8x8) -> 2x8; tgt.load(%addr) : (mem) -> 2x8; tgt.store(%val, %addr) : (2x8, mem) -> (); tgt.xyz(%x, %y) : 8x8; }

map { lavm.load(%addr) : tgt.load(%addr); lavm.store(%val, %addr) : tgt.store(%val, %addr); lavm.xyz(%d, %a, %b) : lavm.store(pseudo.extract( tgt.xyz(pseudo.combine(lavm.load(%a)), pseudo.combine(lavm.load(%b)))), %d); }