From 06ee88b237a5156a24cd21c9ab7c3f3bc6efb7c8 Mon Sep 17 00:00:00 2001 From: ShangkunLI Date: Thu, 19 Mar 2026 12:01:04 +0800 Subject: [PATCH 1/3] change the logic of phi->phi_start --- .clangd | 3 + .gitignore | 1 - lib/NeuraDialect/Mapping/mapping_util.cpp | 15 ++-- .../TransformCtrlToDataFlowPass.cpp | 70 +++++++++++-------- 4 files changed, 53 insertions(+), 36 deletions(-) create mode 100644 .clangd diff --git a/.clangd b/.clangd new file mode 100644 index 00000000..7e271cdf --- /dev/null +++ b/.clangd @@ -0,0 +1,3 @@ +CompileFlags: + Remove: + - -fno-lifetime-dse \ No newline at end of file diff --git a/.gitignore b/.gitignore index e3016cff..8d808b4a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ lit.cfg *.dot # vscode config -.clangd .cache .vscode diff --git a/lib/NeuraDialect/Mapping/mapping_util.cpp b/lib/NeuraDialect/Mapping/mapping_util.cpp index c007a9c3..741c7d11 100644 --- a/lib/NeuraDialect/Mapping/mapping_util.cpp +++ b/lib/NeuraDialect/Mapping/mapping_util.cpp @@ -865,6 +865,9 @@ bool mlir::neura::isMaterializedReserveUser(Operation *user) { if (isa(user)) { return true; } + if (isa(user)) { + return true; + } return false; } @@ -1127,11 +1130,11 @@ bool mlir::neura::placeAndRoute(Operation *op, const MappingLoc &target_loc, target_loc.resource, target_loc.time_step, latency, op); if (bind_success) { llvm::errs() << "[DEBUG] Bound multi-cycle op (latency=" << latency - << ") " << *op << " onto loc: " - << target_loc.resource->getType() << "#" + << ") " << *op + << " onto loc: " << target_loc.resource->getType() << "#" << target_loc.resource->getId() - << " @t=" << target_loc.time_step << " to t=" - << (target_loc.time_step + latency - 1) << "\n"; + << " @t=" << target_loc.time_step + << " to t=" << (target_loc.time_step + latency - 1) << "\n"; } } else { // For single-cycle ops, use default SINGLE_OCCUPY binding @@ -1258,6 +1261,4 @@ int mlir::neura::getOpLatency(Operation *op) { return 1; } -bool mlir::neura::isMultiCycleOp(Operation *op) { - return getOpLatency(op) > 1; -} \ No newline at end of file +bool mlir::neura::isMultiCycleOp(Operation *op) { return getOpLatency(op) > 1; } \ No newline at end of file diff --git a/lib/NeuraDialect/Transforms/TransformCtrlToDataFlowPass.cpp b/lib/NeuraDialect/Transforms/TransformCtrlToDataFlowPass.cpp index 5fedbec3..9b3c67a5 100644 --- a/lib/NeuraDialect/Transforms/TransformCtrlToDataFlowPass.cpp +++ b/lib/NeuraDialect/Transforms/TransformCtrlToDataFlowPass.cpp @@ -876,52 +876,66 @@ void transformControlFlowToDataFlow(Region ®ion, ControlFlowInfo &ctrl_info, } } -// Converts phi operations with reserve operands to phi_start operations. +// Converts only canonical loop-init phi operations to phi_start. +// Required pattern: +// one operand is produced by neura.grant_once +// the other operand is produced by neura.reserve +// Operand order is not fixed. void convertPhiToPhiStart(Region ®ion, OpBuilder &builder) { llvm::errs() << "[ctrl2data] Converting phi operations to phi_start...\n"; Block *entry_block = ®ion.front(); SmallVector phi_ops_to_convert; - // Step 1: Collects all phi operations that need conversion. + // Step 1: Collects only phi ops matching (grant_once, reserve), order-free. entry_block->walk([&](neura::PhiOp phi_op) { - // Checks if any operand is produced by a reserve operation. - for (Value operand : phi_op.getInputs()) { - if (auto def_op = operand.getDefiningOp()) { - if (isa(def_op)) { - phi_ops_to_convert.push_back(phi_op); - break; - } - } + ValueRange inputs = phi_op.getInputs(); + if (inputs.size() != 2) { + return; + } + + Operation *init_def_op = inputs[0].getDefiningOp(); + Operation *reserve_def_op = inputs[1].getDefiningOp(); + + if (!init_def_op || !reserve_def_op) { + return; + } + + bool is_grant_reserve = isa(init_def_op) && + isa(reserve_def_op); + bool is_reserve_grant = isa(init_def_op) && + isa(reserve_def_op); + + if (is_grant_reserve || is_reserve_grant) { + phi_ops_to_convert.push_back(phi_op); } }); // Step 2: Converts each collected phi operation to phi_start. for (neura::PhiOp phi_op : phi_ops_to_convert) { - Value reserve_operand; - SmallVector other_operands; - - // Separates reserve operand from other operands. - for (Value operand : phi_op.getInputs()) { - if (auto def_op = operand.getDefiningOp()) { - if (isa(def_op)) { - reserve_operand = operand; - continue; - } - } - other_operands.push_back(operand); - } + Value op0 = phi_op.getInputs()[0]; + Value op1 = phi_op.getInputs()[1]; + Operation *op0_def = op0.getDefiningOp(); + Operation *op1_def = op1.getDefiningOp(); - if (!reserve_operand || other_operands.empty()) { - llvm::errs() - << "[ctrl2data] Error: Invalid phi operands for conversion.\n"; - assert(false && "Invalid phi operands for conversion."); + Value init_operand; + Value reserve_operand; + if (op0_def && op1_def && isa(op0_def) && + isa(op1_def)) { + init_operand = op0; + reserve_operand = op1; + } else if (op0_def && op1_def && isa(op0_def) && + isa(op1_def)) { + init_operand = op1; + reserve_operand = op0; + } else { + continue; } // Creates phi_start operation. builder.setInsertionPoint(phi_op); neura::PhiStartOp phi_start_op = builder.create( - phi_op.getLoc(), phi_op.getResult().getType(), other_operands.front(), + phi_op.getLoc(), phi_op.getResult().getType(), init_operand, reserve_operand); // Replaces uses and erases the original phi operation. From b971ecbf7bc137e6b80de1ff0ebfaf798c9d760d Mon Sep 17 00:00:00 2001 From: ShangkunLI Date: Thu, 19 Mar 2026 12:15:09 +0800 Subject: [PATCH 2/3] add phi handling in codegen pass --- .../Transforms/GenerateCodePass.cpp | 1198 +++++++++++------ 1 file changed, 766 insertions(+), 432 deletions(-) diff --git a/lib/NeuraDialect/Transforms/GenerateCodePass.cpp b/lib/NeuraDialect/Transforms/GenerateCodePass.cpp index 0de51f7a..e1a33413 100644 --- a/lib/NeuraDialect/Transforms/GenerateCodePass.cpp +++ b/lib/NeuraDialect/Transforms/GenerateCodePass.cpp @@ -1,30 +1,30 @@ #include "Common/AcceleratorAttrs.h" -#include "mlir/Pass/Pass.h" +#include "mlir/Dialect/Func/IR/FuncOps.h" +#include "mlir/IR/Attributes.h" #include "mlir/IR/BuiltinOps.h" #include "mlir/IR/Operation.h" #include "mlir/IR/Value.h" -#include "mlir/IR/Attributes.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" +#include "mlir/Pass/Pass.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/Hashing.h" -#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/Support/raw_ostream.h" #include #include #include #include +#include #include -#include -#include #include -#include +#include +#include #include "NeuraDialect/Architecture/Architecture.h" -#include "NeuraDialect/NeuraOps.h" #include "NeuraDialect/NeuraAttributes.h" +#include "NeuraDialect/NeuraOps.h" using namespace mlir; using namespace neura; @@ -42,8 +42,8 @@ struct Instruction { std::string opcode; std::vector src_operands; std::vector dst_operands; - int id = -1; // Unique instruction ID for debug/DFG. - int time_step = -1; // original scheduling timestep. + int id = -1; // Unique instruction ID for debug/DFG. + int time_step = -1; // original scheduling timestep. int index_per_ii = -1; // grouping key (typically time_step % compiled_ii). int invalid_iterations = 0; // prologue length before the op becomes valid. Instruction(const std::string &op) : opcode(op) {} @@ -62,7 +62,8 @@ struct Tile { int col_idx, row_idx; int core_id; Entry entry; // single entry per tile. - Tile(int c, int r, int id) : col_idx(c), row_idx(r), core_id(id), entry("entry0", "loop") {} + Tile(int c, int r, int id) + : col_idx(c), row_idx(r), core_id(id), entry("entry0", "loop") {} }; struct ArrayConfig { @@ -80,16 +81,31 @@ struct TileLocation { }; // ---- Operation kind helpers ----. -static bool isDataMov(Operation *op) { return dyn_cast(op) != nullptr; } -static bool isCtrlMov(Operation *op) { return dyn_cast(op) != nullptr; } -static bool isPhiStart(Operation *op) { return dyn_cast(op) != nullptr; } -static bool isReserve(Operation *op) { return dyn_cast(op) != nullptr; } -static bool isConstant(Operation *op) { return dyn_cast(op) != nullptr; } -static bool isFusedOp(Operation *op) { return dyn_cast(op) != nullptr; } +static bool isDataMov(Operation *op) { + return dyn_cast(op) != nullptr; +} +static bool isCtrlMov(Operation *op) { + return dyn_cast(op) != nullptr; +} +static bool isPhiStart(Operation *op) { + return dyn_cast(op) != nullptr; +} +static bool isPhi(Operation *op) { return dyn_cast(op) != nullptr; } +static bool isReserve(Operation *op) { + return dyn_cast(op) != nullptr; +} +static bool isConstant(Operation *op) { + return dyn_cast(op) != nullptr; +} +static bool isFusedOp(Operation *op) { + return dyn_cast(op) != nullptr; +} // ---- Constant for phi_start operation ----. static constexpr unsigned kReserveOpIndex = 1; -// Returns the reserve operand for phi_start (operand #1). Guards to ReserveOp. +// Returns the reserve operand for phi_start/phi. +// - phi_start: reserve is operand #1 by definition. +// - phi: scans inputs and returns the operand defined by neura.reserve. static Value getReserveOperand(Operation *op) { if (auto phi_start = dyn_cast(op)) { assert(op->getNumOperands() > kReserveOpIndex && @@ -99,6 +115,17 @@ static Value getReserveOperand(Operation *op) { "phi_start operand #1 must be a ReserveOp"); return candidate; } + + if (auto phi = dyn_cast(op)) { + for (Value operand : phi.getInputs()) { + if (Operation *def_op = operand.getDefiningOp()) { + if (isa(def_op)) { + return operand; + } + } + } + } + return Value(); } @@ -109,23 +136,29 @@ static TileLocation getTileLocation(Operation *op) { if (auto arr = op->getAttrOfType("mapping_locs")) { for (Attribute a : arr) { auto d = dyn_cast(a); - if (!d) continue; + if (!d) + continue; auto resource = dyn_cast_or_null(d.get("resource")); if (auto timestep = dyn_cast_or_null(d.get("time_step"))) tile_location.time_step = timestep.getInt(); - if (auto index_attr = dyn_cast_or_null(d.get("index_per_ii"))) + if (auto index_attr = + dyn_cast_or_null(d.get("index_per_ii"))) tile_location.index_per_ii = index_attr.getInt(); - if (auto invalid_attr = dyn_cast_or_null(d.get("invalid_iterations"))) + if (auto invalid_attr = + dyn_cast_or_null(d.get("invalid_iterations"))) tile_location.invalid_iterations = invalid_attr.getInt(); if (resource && resource.getValue() == "tile") { - if (auto x_coord = dyn_cast_or_null(d.get("x"))) tile_location.col_idx = x_coord.getInt(); - if (auto y_coord = dyn_cast_or_null(d.get("y"))) tile_location.row_idx = y_coord.getInt(); + if (auto x_coord = dyn_cast_or_null(d.get("x"))) + tile_location.col_idx = x_coord.getInt(); + if (auto y_coord = dyn_cast_or_null(d.get("y"))) + tile_location.row_idx = y_coord.getInt(); tile_location.has_tile = true; } } } // If tile mappings exist, x/y must be valid. - assert(!tile_location.has_tile || (tile_location.col_idx >= 0 && tile_location.row_idx >= 0)); + assert(!tile_location.has_tile || + (tile_location.col_idx >= 0 && tile_location.row_idx >= 0)); return tile_location; } @@ -138,12 +171,16 @@ static std::optional getMappedRegId(Operation *op) { if (auto mapping_locations = getMappingLocations(op)) { for (Attribute location_attr : mapping_locations) { auto location_dict = dyn_cast(location_attr); - if (!location_dict) continue; - auto resource_attr = dyn_cast_or_null(location_dict.get("resource")); - if (!resource_attr) continue; - if (resource_attr.getValue() == "register" || resource_attr.getValue() == "reg") { - if (auto per_tile_register_id = - dyn_cast_or_null(location_dict.get("per_tile_register_id"))) { + if (!location_dict) + continue; + auto resource_attr = + dyn_cast_or_null(location_dict.get("resource")); + if (!resource_attr) + continue; + if (resource_attr.getValue() == "register" || + resource_attr.getValue() == "reg") { + if (auto per_tile_register_id = dyn_cast_or_null( + location_dict.get("per_tile_register_id"))) { return per_tile_register_id.getInt(); } } @@ -156,42 +193,49 @@ static std::optional getMappedRegId(Operation *op) { static std::string getOpcode(Operation *op) { std::string opcode = op->getName().getStringRef().str(); - if (opcode.rfind("neura.", 0) == 0) opcode = opcode.substr(6); - if (isConstant(op)) return "CONSTANT"; + if (opcode.rfind("neura.", 0) == 0) + opcode = opcode.substr(6); + if (isConstant(op)) + return "CONSTANT"; std::transform(opcode.begin(), opcode.end(), opcode.begin(), ::toupper); - + // For comparison operations, appends the comparison type to the opcode. if (auto icmp_op = dyn_cast(op)) { std::string cmp_type = icmp_op.getCmpType().str(); - std::transform(cmp_type.begin(), cmp_type.end(), cmp_type.begin(), ::toupper); + std::transform(cmp_type.begin(), cmp_type.end(), cmp_type.begin(), + ::toupper); return opcode + "_" + cmp_type; } if (auto fcmp_op = dyn_cast(op)) { std::string cmp_type = fcmp_op.getCmpType().str(); - std::transform(cmp_type.begin(), cmp_type.end(), cmp_type.begin(), ::toupper); + std::transform(cmp_type.begin(), cmp_type.end(), cmp_type.begin(), + ::toupper); return opcode + "_" + cmp_type; } - + // For cast operations, appends the cast type to the opcode. if (auto cast_op = dyn_cast(op)) { std::string cast_type = cast_op.getCastType().str(); - std::transform(cast_type.begin(), cast_type.end(), cast_type.begin(), ::toupper); + std::transform(cast_type.begin(), cast_type.end(), cast_type.begin(), + ::toupper); return opcode + "_" + cast_type; } - + return opcode; } // Extracts constant literal from an attribute. -// Returns formatted string like "#10" or "#3.0", or "arg0" for "%arg0", or empty string if not found. +// Returns formatted string like "#10" or "#3.0", or "arg0" for "%arg0", or +// empty string if not found. static std::string extractConstantLiteralFromAttr(Attribute attr) { - if (!attr) return ""; - + if (!attr) + return ""; + if (auto integer_attr = dyn_cast(attr)) return "#" + std::to_string(integer_attr.getInt()); if (auto float_attr = dyn_cast(attr)) return "#" + std::to_string(float_attr.getValueAsDouble()); - + // Handles string attributes like "%arg0" -> "arg0". if (auto string_attr = dyn_cast(attr)) { std::string value = string_attr.getValue().str(); @@ -200,7 +244,7 @@ static std::string extractConstantLiteralFromAttr(Attribute attr) { return value.substr(1); } } - + return ""; } @@ -209,72 +253,98 @@ static std::string getConstantLiteral(Operation *op) { if (isConstant(op)) { if (auto value_attr = op->getAttr(attr::kValue)) { std::string result = extractConstantLiteralFromAttr(value_attr); - if (!result.empty()) return result; + if (!result.empty()) + return result; } return "#0"; } - + // Checks for constant_value attribute in non-CONSTANT operations. if (auto constant_value_attr = op->getAttr(attr::kConstantValue)) { std::string result = extractConstantLiteralFromAttr(constant_value_attr); - if (!result.empty()) return result; + if (!result.empty()) + return result; } - + // Checks for rhs_value attribute (for binary operations with constant RHS). if (auto rhs_value_attr = op->getAttr(attr::kRhsValue)) { std::string result = extractConstantLiteralFromAttr(rhs_value_attr); - if (!result.empty()) return result; + if (!result.empty()) + return result; } - + return ""; } namespace mapping_utils { // ----- Topology from Architecture -----. struct Topology { - DenseMap> link_ends; // link_id -> (srcTileId, dstTileId). - DenseMap> tile_location; // tileId -> (x,y). - DenseMap, int> coord_to_tile; // (x,y) -> tileId. + DenseMap> + link_ends; // link_id -> (srcTileId, dstTileId). + DenseMap> tile_location; // tileId -> (x,y). + DenseMap, int> coord_to_tile; // (x,y) -> tileId. StringRef getDirBetween(int src_tile_id, int dst_tile_id) const { auto [src_x, src_y] = tile_location.lookup(src_tile_id); auto [dst_x, dst_y] = tile_location.lookup(dst_tile_id); int dc = dst_x - src_x, dr = dst_y - src_y; - if (dc == 1 && dr == 0) return "EAST"; - if (dc == -1 && dr == 0) return "WEST"; - if (dc == 0 && dr == 1) return "NORTH"; - if (dc == 0 && dr == -1) return "SOUTH"; - if (dc == 1 && dr == 1) return "NORTHEAST"; - if (dc == -1 && dr == 1) return "NORTHWEST"; - if (dc == 1 && dr == -1) return "SOUTHEAST"; - if (dc == -1 && dr == -1) return "SOUTHWEST"; + if (dc == 1 && dr == 0) + return "EAST"; + if (dc == -1 && dr == 0) + return "WEST"; + if (dc == 0 && dr == 1) + return "NORTH"; + if (dc == 0 && dr == -1) + return "SOUTH"; + if (dc == 1 && dr == 1) + return "NORTHEAST"; + if (dc == -1 && dr == 1) + return "NORTHWEST"; + if (dc == 1 && dr == -1) + return "SOUTHEAST"; + if (dc == -1 && dr == -1) + return "SOUTHWEST"; return "LOCAL"; } StringRef dirFromLink(int link_id) const { auto it = link_ends.find(link_id); - if (it == link_ends.end()) return "LOCAL"; + if (it == link_ends.end()) + return "LOCAL"; return getDirBetween(it->second.first, it->second.second); } StringRef invertDir(StringRef d) const { - if (d == "EAST") return "WEST"; - if (d == "WEST") return "EAST"; - if (d == "NORTH") return "SOUTH"; - if (d == "SOUTH") return "NORTH"; - if (d == "NORTHEAST") return "SOUTHWEST"; - if (d == "NORTHWEST") return "SOUTHEAST"; - if (d == "SOUTHEAST") return "NORTHWEST"; - if (d == "SOUTHWEST") return "NORTHEAST"; + if (d == "EAST") + return "WEST"; + if (d == "WEST") + return "EAST"; + if (d == "NORTH") + return "SOUTH"; + if (d == "SOUTH") + return "NORTH"; + if (d == "NORTHEAST") + return "SOUTHWEST"; + if (d == "NORTHWEST") + return "SOUTHEAST"; + if (d == "SOUTHEAST") + return "NORTHWEST"; + if (d == "SOUTHWEST") + return "NORTHEAST"; return "LOCAL"; } - int srcTileOfLink(int link_id) const { return link_ends.lookup(link_id).first; } - int dstTileOfLink(int link_id) const { return link_ends.lookup(link_id).second; } + int srcTileOfLink(int link_id) const { + return link_ends.lookup(link_id).first; + } + int dstTileOfLink(int link_id) const { + return link_ends.lookup(link_id).second; + } int tileIdAt(int x, int y) const { - auto it = coord_to_tile.find({x,y}); + auto it = coord_to_tile.find({x, y}); return (it == coord_to_tile.end()) ? -1 : it->second; } }; -static Topology getTopologyFromArchitecture(int per_cgra_rows, int per_cgra_columns) { +static Topology getTopologyFromArchitecture(int per_cgra_rows, + int per_cgra_columns) { Topology topo; const Architecture &architecture = mlir::neura::getArchitecture(); @@ -291,24 +361,37 @@ static Topology getTopologyFromArchitecture(int per_cgra_rows, int per_cgra_colu } // ----- Extract mapping steps (sorted by time) -----. -struct LinkStep { int link_id; int time_step; }; -struct RegStep { int regId; int time_step; }; +struct LinkStep { + int link_id; + int time_step; +}; +struct RegStep { + int regId; + int time_step; +}; static SmallVector collectLinkSteps(Operation *op) { SmallVector steps; if (auto mapping_locations = getMappingLocations(op)) { for (Attribute location_attr : mapping_locations) { auto location_dict = dyn_cast(location_attr); - if (!location_dict) continue; - auto resource_attr = dyn_cast_or_null(location_dict.get("resource")); - if (!resource_attr || resource_attr.getValue() != "link") continue; + if (!location_dict) + continue; + auto resource_attr = + dyn_cast_or_null(location_dict.get("resource")); + if (!resource_attr || resource_attr.getValue() != "link") + continue; auto link_id = dyn_cast_or_null(location_dict.get("id")); - auto time_step = dyn_cast_or_null(location_dict.get("time_step")); - if (!link_id || !time_step) continue; + auto time_step = + dyn_cast_or_null(location_dict.get("time_step")); + if (!link_id || !time_step) + continue; steps.push_back({(int)link_id.getInt(), (int)time_step.getInt()}); } } - llvm::sort(steps, [](const LinkStep &a, const LinkStep &b){ return a.time_step < b.time_step; }); + llvm::sort(steps, [](const LinkStep &a, const LinkStep &b) { + return a.time_step < b.time_step; + }); return steps; } @@ -317,35 +400,48 @@ static SmallVector collectRegSteps(Operation *op) { if (auto mapping_locations = getMappingLocations(op)) { for (Attribute location_attr : mapping_locations) { auto location_dict = dyn_cast(location_attr); - if (!location_dict) continue; - auto resource_attr = dyn_cast_or_null(location_dict.get("resource")); - if (!resource_attr) continue; - if (resource_attr.getValue() == "register" || resource_attr.getValue() == "reg") { - auto per_tile_register_id = dyn_cast_or_null(location_dict.get("per_tile_register_id")); - auto time_step = dyn_cast_or_null(location_dict.get("time_step")); - if (!per_tile_register_id || !time_step) continue; - steps.push_back({(int)per_tile_register_id.getInt(), (int)time_step.getInt()}); + if (!location_dict) + continue; + auto resource_attr = + dyn_cast_or_null(location_dict.get("resource")); + if (!resource_attr) + continue; + if (resource_attr.getValue() == "register" || + resource_attr.getValue() == "reg") { + auto per_tile_register_id = dyn_cast_or_null( + location_dict.get("per_tile_register_id")); + auto time_step = + dyn_cast_or_null(location_dict.get("time_step")); + if (!per_tile_register_id || !time_step) + continue; + steps.push_back( + {(int)per_tile_register_id.getInt(), (int)time_step.getInt()}); } } } - llvm::sort(steps, [](const RegStep &a, const RegStep &b){ return a.time_step < b.time_step; }); + llvm::sort(steps, [](const RegStep &a, const RegStep &b) { + return a.time_step < b.time_step; + }); return steps; } } // namespace mapping_utils -// Keep existing call sites stable (byte-identical behavior) by re-exporting the names. -using mapping_utils::Topology; -using mapping_utils::LinkStep; -using mapping_utils::RegStep; +// Keep existing call sites stable (byte-identical behavior) by re-exporting the +// names. using mapping_utils::collectLinkSteps; using mapping_utils::collectRegSteps; using mapping_utils::getMappedRegId; using mapping_utils::getMappingLocations; using mapping_utils::getTileLocation; using mapping_utils::getTopologyFromArchitecture; +using mapping_utils::LinkStep; +using mapping_utils::RegStep; +using mapping_utils::Topology; // ----- Pass -----. -struct InstructionReference { int col_idx, row_idx, t, idx; }; +struct InstructionReference { + int col_idx, row_idx, t, idx; +}; struct GenerateCodePass : public PassWrapper> { @@ -353,32 +449,38 @@ struct GenerateCodePass StringRef getArgument() const override { return "generate-code"; } StringRef getDescription() const override { - return "CGRA YAML/ASM gen (multi-hop routers + endpoint register deposit + timing-aware rewiring, with CTRL_MOV kept)."; + return "CGRA YAML/ASM gen (multi-hop routers + endpoint register deposit + " + "timing-aware rewiring, with CTRL_MOV kept)."; } void getDependentDialects(DialectRegistry ®istry) const override { registry.insert(); } - DenseMap operation_placements; + DenseMap operation_placements; // Maps of tile coordinates (x,y) -> time_step -> vector of Instructions. - std::map, std::map>> tile_time_instructions; + std::map, std::map>> + tile_time_instructions; // Back references from IR operations to emitted instructions. - DenseMap operation_to_instruction_reference; - DenseMap> operation_to_operands; + DenseMap + operation_to_instruction_reference; + DenseMap> operation_to_operands; // Map dfg_id -> op for later adjustments. - DenseMap dfg_id_to_op; + DenseMap dfg_id_to_op; // Map (col,row,index_per_ii,local_idx_in_bucket) -> global instruction id. - std::map, int> instruction_id_map; + std::map, int> instruction_id_map; int next_instruction_id = 0; int current_compiled_ii = -1; bool timing_field_error = false; // De-dup sets. - std::unordered_set hop_signatures; // (midTileId, time_step, link_id). - std::unordered_set deposit_signatures; // (dstTileId, time_step, regId). - std::unordered_set egress_signatures; // (srcTileId, time_step, regId, out_dir). + std::unordered_set + hop_signatures; // (midTileId, time_step, link_id). + std::unordered_set + deposit_signatures; // (dstTileId, time_step, regId). + std::unordered_set + egress_signatures; // (srcTileId, time_step, regId, out_dir). // ---------- helpers to place materialized instructions ----------. void placeRouterHop(const Topology &topology, int tile_id, int time_step, @@ -392,7 +494,8 @@ struct GenerateCodePass instruction.invalid_iterations = syntheticInvalidIterations(time_step); instruction.src_operands.emplace_back(input_direction.str(), "RED"); instruction.dst_operands.emplace_back(output_direction.str(), "RED"); - tile_time_instructions[{tile_x, tile_y}][instruction.index_per_ii].push_back(std::move(instruction)); + tile_time_instructions[{tile_x, tile_y}][instruction.index_per_ii] + .push_back(std::move(instruction)); } // ---------- initialization helpers ----------. @@ -414,25 +517,34 @@ struct GenerateCodePass const Architecture &architecture = mlir::neura::getArchitecture(); int columns = architecture.getPerCgraColumns(); int rows = architecture.getPerCgraRows(); - if (auto mapping_info = function->getAttrOfType(attr::kMappingInfo)) { - if (auto x_tiles = dyn_cast_or_null(mapping_info.get(attr::kXTiles))) columns = x_tiles.getInt(); - if (auto y_tiles = dyn_cast_or_null(mapping_info.get(attr::kYTiles))) rows = y_tiles.getInt(); + if (auto mapping_info = + function->getAttrOfType(attr::kMappingInfo)) { + if (auto x_tiles = + dyn_cast_or_null(mapping_info.get(attr::kXTiles))) + columns = x_tiles.getInt(); + if (auto y_tiles = + dyn_cast_or_null(mapping_info.get(attr::kYTiles))) + rows = y_tiles.getInt(); } return {columns, rows}; } int getCompiledII(func::FuncOp function) { - if (auto mapping_info = function->getAttrOfType(attr::kMappingInfo)) { - if (auto compiled_ii = dyn_cast_or_null(mapping_info.get(attr::kCompiledII))) { + if (auto mapping_info = + function->getAttrOfType(attr::kMappingInfo)) { + if (auto compiled_ii = dyn_cast_or_null( + mapping_info.get(attr::kCompiledII))) { return compiled_ii.getInt(); } } return -1; } - // Derives index_per_ii from an absolute time_step; falls back to time_step when II is unknown. + // Derives index_per_ii from an absolute time_step; falls back to time_step + // when II is unknown. int indexPerIiFromTimeStep(int time_step) const { - return current_compiled_ii > 0 ? time_step % current_compiled_ii : time_step; + return current_compiled_ii > 0 ? time_step % current_compiled_ii + : time_step; } int syntheticInvalidIterations(int time_step) const { @@ -440,19 +552,23 @@ struct GenerateCodePass } // Extracts index_per_ii and invalid_iterations from mapping_locs. - bool getIndexAndInvalid(Operation *op, int &index_per_ii, int &invalid_iterations) { + bool getIndexAndInvalid(Operation *op, int &index_per_ii, + int &invalid_iterations) { index_per_ii = -1; invalid_iterations = 0; bool has_index = false, has_invalid = false; if (auto arr = op->getAttrOfType("mapping_locs")) { for (Attribute a : arr) { auto dict = dyn_cast(a); - if (!dict) continue; - if (auto idx_attr = dyn_cast_or_null(dict.get("index_per_ii"))) { + if (!dict) + continue; + if (auto idx_attr = + dyn_cast_or_null(dict.get("index_per_ii"))) { index_per_ii = idx_attr.getInt(); has_index = true; } - if (auto inv_attr = dyn_cast_or_null(dict.get("invalid_iterations"))) { + if (auto inv_attr = + dyn_cast_or_null(dict.get("invalid_iterations"))) { invalid_iterations = inv_attr.getInt(); has_invalid = true; } @@ -481,12 +597,11 @@ struct GenerateCodePass // - materialize compute/phi/const instructions. // - collect DATA_MOV and CTRL_MOV ops. // - collect reserve_to_phi_maps (PHI's operand#0 is the reserve). - void indexIR(func::FuncOp function, - SmallVector &data_movs, - SmallVector &ctrl_movs, - DenseMap &reserve_to_phi_map) { + void indexIR(func::FuncOp function, SmallVector &data_movs, + SmallVector &ctrl_movs, + DenseMap &reserve_to_phi_map) { function.walk([&](Operation *op) { - // Skips operations inside fused_op regions. + // Skips operations inside fused_op regions. if (op->getParentOp() && isFusedOp(op->getParentOp())) { return; } @@ -495,22 +610,32 @@ struct GenerateCodePass operation_placements[op] = getTileLocation(op); // Builds reserve -> phi mapping for loop-carried dependencies. - if (isPhiStart(op)) { + // Supports both phi_start and phi forms. + if (isPhiStart(op) || isPhi(op)) { if (Value reserve = getReserveOperand(op)) { reserve_to_phi_map[reserve] = op; } } // Collects forwarders for later expansion. - if (isDataMov(op)) { data_movs.push_back(op); return; } - if (isCtrlMov(op)) { ctrl_movs.push_back(op); return; } + if (isDataMov(op)) { + data_movs.push_back(op); + return; + } + if (isCtrlMov(op)) { + ctrl_movs.push_back(op); + return; + } // Skips Reserve from materialization. - if (isReserve(op)) return; + if (isReserve(op)) + return; - // Materializes all other ops placed on tiles (compute/phi/const/fused_op/etc.). + // Materializes all other ops placed on tiles + // (compute/phi/const/fused_op/etc.). TileLocation placement = operation_placements[op]; - if (!placement.has_tile) return; + if (!placement.has_tile) + return; std::string opcode = getOpcode(op); Instruction inst(opcode); @@ -520,82 +645,101 @@ struct GenerateCodePass if (isConstant(op)) { inst.src_operands.emplace_back(getConstantLiteral(op), "RED"); } else if (op->getAttr(attr::kConstantValue)) { - // Checks if operation has constant_value attribute (for non-CONSTANT operations). + // Checks if operation has constant_value attribute (for non-CONSTANT + // operations). inst.src_operands.emplace_back(getConstantLiteral(op), "RED"); } else { - // Handles normal operands, including operations with rhs_value attribute. - SmallVector operands; operands.reserve(op->getNumOperands()); - + // Handles normal operands, including operations with rhs_value + // attribute. + SmallVector operands; + operands.reserve(op->getNumOperands()); + // Processes actual Value operands (if any). for (Value v : op->getOperands()) { operands.push_back(v); inst.src_operands.emplace_back("UNRESOLVED", "RED"); } - - // Handles cases where binary operations have the RHS constant stored as an attribute. + + // Handles cases where binary operations have the RHS constant stored as + // an attribute. if (auto rhs_value_attr = op->getAttr(attr::kRhsValue)) { - std::string rhs_literal = extractConstantLiteralFromAttr(rhs_value_attr); + std::string rhs_literal = + extractConstantLiteralFromAttr(rhs_value_attr); if (!rhs_literal.empty()) { inst.src_operands.emplace_back(rhs_literal, "RED"); } } - + operation_to_operands[op] = std::move(operands); } if (auto mapped_register_id = getMappedRegId(op)) - inst.dst_operands.emplace_back("$" + std::to_string(*mapped_register_id), "RED"); + inst.dst_operands.emplace_back( + "$" + std::to_string(*mapped_register_id), "RED"); int index_per_ii = -1, invalid_iterations = 0; - if (!getIndexAndInvalid(op, index_per_ii, invalid_iterations)) return; + if (!getIndexAndInvalid(op, index_per_ii, invalid_iterations)) + return; inst.index_per_ii = index_per_ii; inst.invalid_iterations = invalid_iterations; - auto &bucket = getInstructionBucket(placement.col_idx, placement.row_idx, index_per_ii); + auto &bucket = getInstructionBucket(placement.col_idx, placement.row_idx, + index_per_ii); bucket.push_back(std::move(inst)); operation_to_instruction_reference[op] = - InstructionReference{placement.col_idx, placement.row_idx, index_per_ii, - (int)bucket.size() - 1}; + InstructionReference{placement.col_idx, placement.row_idx, + index_per_ii, (int)bucket.size() - 1}; }); } // ---------- unified forwarder expansion helpers ----------. - static SmallVector getLinkChain(Operation *forwarder) { return collectLinkSteps(forwarder); } - static SmallVector getRegisterSteps(Operation *forwarder) { return collectRegSteps(forwarder); } + static SmallVector getLinkChain(Operation *forwarder) { + return collectLinkSteps(forwarder); + } + static SmallVector getRegisterSteps(Operation *forwarder) { + return collectRegSteps(forwarder); + } - // Validates forwarder op arities: DATA_MOV: at least 1 in/1 out; CTRL_MOV: at least 2 inputs (src,reserve). - template - bool validateForwarderShape(Operation *forwarder) { + // Validates forwarder op arities: DATA_MOV: at least 1 in/1 out; CTRL_MOV: at + // least 2 inputs (src,reserve). + template bool validateForwarderShape(Operation *forwarder) { if constexpr (!IsCtrl) { - return forwarder->getNumOperands() >= 1 && forwarder->getNumResults() >= 1; + return forwarder->getNumOperands() >= 1 && + forwarder->getNumResults() >= 1; } else { return forwarder->getNumOperands() >= 2; } } - // Computes producer first-hop directions and consumer last-hop directions (or LOCAL if link-less). - std::pair computeDirections(const SmallVector &links, const Topology &topo) { + // Computes producer first-hop directions and consumer last-hop directions (or + // LOCAL if link-less). + std::pair + computeDirections(const SmallVector &links, + const Topology &topo) { StringRef producer_direction("LOCAL"); StringRef consumer_direction("LOCAL"); if (!links.empty()) { producer_direction = topo.dirFromLink(links.front().link_id); - consumer_direction = topo.invertDir(topo.dirFromLink(links.back().link_id)); + consumer_direction = + topo.invertDir(topo.dirFromLink(links.back().link_id)); } return {producer_direction, consumer_direction}; } // Adds producer endpoints: - // - If src_reg_step exists: producer writes ONLY to $src_reg (directional port is emitted by egress at first_link_ts). - // - Else: producer writes to producer_direction if link-based, or $reg for reg-only paths. + // - If src_reg_step exists: producer writes ONLY to $src_reg (directional + // port is emitted by egress at first_link_ts). + // - Else: producer writes to producer_direction if link-based, or $reg for + // reg-only paths. void setProducerDestination(Operation *producer, StringRef producer_direction, const SmallVector ®s, std::optional src_reg_step) { if (auto *pi = getInstructionPointer(producer)) { if (src_reg_step) { - // This mov uses src_reg + egress to send on link.time_step. We still must NOT - // delete existing directional outputs, because the same producer may - // fan-out to other consumers via other mov paths. + // This mov uses src_reg + egress to send on link.time_step. We still + // must NOT delete existing directional outputs, because the same + // producer may fan-out to other consumers via other mov paths. setUniqueDestination(pi, "$" + std::to_string(src_reg_step->regId)); return; } @@ -604,17 +748,19 @@ struct GenerateCodePass setUniqueDestination(pi, producer_direction.str()); else if (!regs.empty()) setUniqueDestination(pi, "$" + std::to_string(regs.back().regId)); - } } + } // Egress: on source tile at first_link_ts, move [$src_reg] -> [out_dir]. void placeSrcEgress(const Topology &topology, int src_tile_id, int time_step, - StringRef out_dir, int reg_id, - bool asCtrlMov = false, int assigned_id = -1) { - // Signature must be stable and support arbitrary direction strings (arch-spec dependent). - uint64_t signature = - static_cast(llvm::hash_combine(src_tile_id, time_step, reg_id, out_dir)); - if (!egress_signatures.insert(signature).second) return; + StringRef out_dir, int reg_id, bool asCtrlMov = false, + int assigned_id = -1) { + // Signature must be stable and support arbitrary direction strings + // (arch-spec dependent). + uint64_t signature = static_cast( + llvm::hash_combine(src_tile_id, time_step, reg_id, out_dir)); + if (!egress_signatures.insert(signature).second) + return; auto [tile_x, tile_y] = topology.tile_location.lookup(src_tile_id); Instruction inst(asCtrlMov ? "CTRL_MOV" : "DATA_MOV"); @@ -624,94 +770,119 @@ struct GenerateCodePass inst.invalid_iterations = syntheticInvalidIterations(time_step); inst.src_operands.emplace_back("$" + std::to_string(reg_id), "RED"); inst.dst_operands.emplace_back(out_dir.str(), "RED"); - tile_time_instructions[{tile_x, tile_y}][inst.index_per_ii].push_back(std::move(inst)); + tile_time_instructions[{tile_x, tile_y}][inst.index_per_ii].push_back( + std::move(inst)); } struct MovRegSplit { - std::optional src_reg_step; // last reg with time_step < first_link_time_step - std::optional dst_reg_step; // first reg with time_step > last_link_time_step + std::optional + src_reg_step; // last reg with time_step < first_link_time_step + std::optional + dst_reg_step; // first reg with time_step > last_link_time_step }; MovRegSplit splitMovRegs(const SmallVector ®s, const SmallVector &links) const { MovRegSplit out; - if (regs.empty() || links.empty()) return out; + if (regs.empty() || links.empty()) + return out; int first_link_time_step = links.front().time_step; int last_link_time_step = links.back().time_step; for (const RegStep &r : regs) { - if (r.time_step < first_link_time_step) out.src_reg_step = r; - if (!out.dst_reg_step && r.time_step > last_link_time_step) out.dst_reg_step = r; + if (r.time_step < first_link_time_step) + out.src_reg_step = r; + if (!out.dst_reg_step && r.time_step > last_link_time_step) + out.dst_reg_step = r; } return out; } - // Emits router hops for multi-hop paths (from the second hop onwards). CTRL_MOV emits CTRL_MOV hops. - template - void generateIntermediateHops(const SmallVector &links, const Topology &topo, - int base_mov_id, size_t &hop_counter) { + // Emits router hops for multi-hop paths (from the second hop onwards). + // CTRL_MOV emits CTRL_MOV hops. + template + void generateIntermediateHops(const SmallVector &links, + const Topology &topo, int base_mov_id, + size_t &hop_counter) { for (size_t i = 1; i < links.size(); ++i) { int prev_link = links[i - 1].link_id; - int cur_link = links[i].link_id; + int cur_link = links[i].link_id; int time_step = links[i].time_step; int mid_tile = topo.srcTileOfLink(cur_link); - StringRef in = topo.invertDir(topo.dirFromLink(prev_link)); + StringRef in = topo.invertDir(topo.dirFromLink(prev_link)); StringRef out = topo.dirFromLink(cur_link); - uint64_t sig = static_cast(llvm::hash_combine(mid_tile, time_step, cur_link)); + uint64_t sig = static_cast( + llvm::hash_combine(mid_tile, time_step, cur_link)); if (hop_signatures.insert(sig).second) { - int hop_id = base_mov_id >= 0 ? base_mov_id * 10000 + static_cast(hop_counter) : -1; + int hop_id = base_mov_id >= 0 + ? base_mov_id * 10000 + static_cast(hop_counter) + : -1; ++hop_counter; - placeRouterHop(topo, mid_tile, time_step, in, out, /*asCtrlMov=*/IsCtrl, hop_id); + placeRouterHop(topo, mid_tile, time_step, in, out, /*asCtrlMov=*/IsCtrl, + hop_id); } } } // Consumers for DATA_MOV: all users of forwarder results(0). - SmallVector, 2> collectDataMovConsumers(Operation *forwarder) { - SmallVector, 2> consumers; + SmallVector, 2> + collectDataMovConsumers(Operation *forwarder) { + SmallVector, 2> consumers; Value out = forwarder->getResult(0); for (OpOperand &use : out.getUses()) consumers.push_back({use.getOwner(), use.get()}); return consumers; } - // Consumers for CTRL_MOV: find PHI via reserve->phi maps; wire the PHI's *data* inputs (sources). - SmallVector, 2> collectCtrlMovConsumers(Operation *forwarder, - const DenseMap &reserve2phi) { - SmallVector, 2> consumers; + // Consumers for CTRL_MOV: find PHI via reserve->phi maps; wire the PHI's + // *data* inputs (sources). + SmallVector, 2> + collectCtrlMovConsumers(Operation *forwarder, + const DenseMap &reserve2phi) { + SmallVector, 2> consumers; Value reserve = forwarder->getOperand(1); if (Operation *phi = reserve2phi.lookup(reserve)) consumers.push_back({phi, reserve}); else - forwarder->emitWarning("ctrl_mov dest is not consumed by a PHI operand#0; skipping."); + forwarder->emitWarning( + "ctrl_mov dest is not consumed by a PHI operand#0; skipping."); return consumers; } - // Try register-based rewiring. If cross-tile, emit deposits [incoming_dir]->[$reg] at earliest reg time_step. - // Returns true if rewiring to $reg was applied to consumers. - template - bool handleRegisterRewiring(Operation *consumer_operation, Value value_at_consumer, + // Try register-based rewiring. If cross-tile, emit deposits + // [incoming_dir]->[$reg] at earliest reg time_step. Returns true if rewiring + // to $reg was applied to consumers. + template + bool handleRegisterRewiring(Operation *consumer_operation, + Value value_at_consumer, const SmallVector ®s, std::optional dst_reg_step, - const SmallVector &links, const Topology &topo, int mov_dfg_id) { + const SmallVector &links, + const Topology &topo, int mov_dfg_id) { if (!links.empty()) { - // Cross-tile: deposit on destination tile at dst_reg_step (post-link register). - if (!dst_reg_step) return false; + // Cross-tile: deposit on destination tile at dst_reg_step (post-link + // register). + if (!dst_reg_step) + return false; int deposit_time_step = dst_reg_step->time_step; int register_id = dst_reg_step->regId; int dst_tile = topo.dstTileOfLink(links.back().link_id); // Computes incoming direction from destination tile's perspective. - StringRef incoming_dir = topo.invertDir(topo.dirFromLink(links.back().link_id)); - placeDstDeposit(topo, dst_tile, deposit_time_step, incoming_dir, register_id, + StringRef incoming_dir = + topo.invertDir(topo.dirFromLink(links.back().link_id)); + placeDstDeposit(topo, dst_tile, deposit_time_step, incoming_dir, + register_id, /*asCtrlMov=*/IsCtrl, mov_dfg_id); - TileLocation consumer_placement = operation_placements.lookup(consumer_operation); + TileLocation consumer_placement = + operation_placements.lookup(consumer_operation); if (consumer_placement.has_tile) { - // For CTRL_MOV, the destination register often represents a stateful value (reserve/control) - // that must be consumed via a local register even if the consumer's time_step is earlier - // (e.g., prologue reads default, later iterations read updated). + // For CTRL_MOV, the destination register often represents a stateful + // value (reserve/control) that must be consumed via a local register + // even if the consumer's time_step is earlier (e.g., prologue reads + // default, later iterations read updated). const bool should_rewire_to_register = IsCtrl || (consumer_placement.time_step > deposit_time_step); if (should_rewire_to_register) { @@ -722,47 +893,60 @@ struct GenerateCodePass } } else { // Same-tile: must go via register. - if (regs.empty()) return false; + if (regs.empty()) + return false; int register_id = regs.back().regId; - setConsumerSourceExact(consumer_operation, value_at_consumer, "$" + std::to_string(register_id)); + setConsumerSourceExact(consumer_operation, value_at_consumer, + "$" + std::to_string(register_id)); return true; } return false; } - template - void handleDirectionRewiring(Operation *consumer_operation, Value value_at_consumer, StringRef consumer_direction, - const SmallVector &links, const Topology &topo, - Operation *forwarder) { + template + void handleDirectionRewiring(Operation *consumer_operation, + Value value_at_consumer, + StringRef consumer_direction, + const SmallVector &links, + const Topology &topo, Operation *forwarder) { if (!links.empty()) { - // Computes the direction from the link destination tile to the consumer tile. - TileLocation consumer_placement = operation_placements.lookup(consumer_operation); + // Computes the direction from the link destination tile to the consumer + // tile. + TileLocation consumer_placement = + operation_placements.lookup(consumer_operation); if (consumer_placement.has_tile) { int dst_tile_id = topo.dstTileOfLink(links.back().link_id); - int consumer_tile_id = topo.tileIdAt(consumer_placement.col_idx, consumer_placement.row_idx); - - // If consumer is on the link destination tile, use the incoming direction. + int consumer_tile_id = topo.tileIdAt(consumer_placement.col_idx, + consumer_placement.row_idx); + + // If consumer is on the link destination tile, use the incoming + // direction. if (consumer_tile_id == dst_tile_id) { - setConsumerSourceExact(consumer_operation, value_at_consumer, consumer_direction.str()); + setConsumerSourceExact(consumer_operation, value_at_consumer, + consumer_direction.str()); } else { // Computes direction from link destination tile to consumer tile. - StringRef actual_dir = topo.invertDir(topo.getDirBetween(dst_tile_id, consumer_tile_id)); - setConsumerSourceExact(consumer_operation, value_at_consumer, actual_dir.str()); + StringRef actual_dir = + topo.invertDir(topo.getDirBetween(dst_tile_id, consumer_tile_id)); + setConsumerSourceExact(consumer_operation, value_at_consumer, + actual_dir.str()); } } else { // Falls back to consumer_direction if consumer placement is unknown. - setConsumerSourceExact(consumer_operation, value_at_consumer, consumer_direction.str()); + setConsumerSourceExact(consumer_operation, value_at_consumer, + consumer_direction.str()); } } else { - forwarder->emitError(IsCtrl - ? "same-tile ctrl_mov without register mapping is illegal. Provide a register in mapping_locs." - : "same-tile data_mov without register mapping is illegal. Provide a register in mapping_locs."); + forwarder->emitError( + IsCtrl ? "same-tile ctrl_mov without register mapping is illegal. " + "Provide a register in mapping_locs." + : "same-tile data_mov without register mapping is illegal. " + "Provide a register in mapping_locs."); assert(false && "same-tile mov without register mapping"); } } - template - struct MovBasics { + template struct MovBasics { int mov_dfg_id = -1; Operation *producer = nullptr; SmallVector links; @@ -772,7 +956,7 @@ struct GenerateCodePass StringRef consumer_direction; }; - template + template MovBasics buildMovBasics(Operation *forwarder, const Topology &topo) { MovBasics basics; basics.mov_dfg_id = getDfgId(forwarder); @@ -783,68 +967,82 @@ struct GenerateCodePass basics.links = getLinkChain(forwarder); basics.regs = getRegisterSteps(forwarder); basics.reg_split = splitMovRegs(basics.regs, basics.links); - std::pair directions = computeDirections(basics.links, topo); + std::pair directions = + computeDirections(basics.links, topo); basics.producer_direction = directions.first; basics.consumer_direction = directions.second; return basics; } - template - void emitMovRoutingInstructions(Operation *forwarder, const MovBasics &basics, - const Topology &topo) { + template + void emitMovRoutingInstructions(Operation *forwarder, + const MovBasics &basics, + const Topology &topo) { // Producer endpoints & intermediate hops. - setProducerDestination(basics.producer, basics.producer_direction, basics.regs, basics.reg_split.src_reg_step); + setProducerDestination(basics.producer, basics.producer_direction, + basics.regs, basics.reg_split.src_reg_step); if (!basics.links.empty() && basics.reg_split.src_reg_step) { int src_tile = topo.srcTileOfLink(basics.links.front().link_id); int first_link_time_step = basics.links.front().time_step; - int egress_instruction_id = basics.mov_dfg_id >= 0 ? basics.mov_dfg_id * 10000 : -1; - placeSrcEgress(topo, src_tile, first_link_time_step, basics.producer_direction, + int egress_instruction_id = + basics.mov_dfg_id >= 0 ? basics.mov_dfg_id * 10000 : -1; + placeSrcEgress(topo, src_tile, first_link_time_step, + basics.producer_direction, basics.reg_split.src_reg_step->regId, /*asCtrlMov=*/IsCtrl, egress_instruction_id); } size_t hop_counter = 1; - generateIntermediateHops(basics.links, topo, basics.mov_dfg_id, hop_counter); + generateIntermediateHops(basics.links, topo, basics.mov_dfg_id, + hop_counter); } - template - SmallVector, 2> - collectMovConsumers(Operation *forwarder, const DenseMap &reserve2phi) { + template + SmallVector, 2> + collectMovConsumers(Operation *forwarder, + const DenseMap &reserve2phi) { if constexpr (IsCtrl) { return collectCtrlMovConsumers(forwarder, reserve2phi); } else { return collectDataMovConsumers(forwarder); } - } + } - template - void rewriteMovConsumers(Operation *forwarder, - const MovBasics &basics, - const SmallVector, 2> &consumers, - const Topology &topo) { - // Wires each consumer: prefer register rewiring; fallback to direction rewiring. - for (const std::pair &consumer_pair : consumers) { + template + void rewriteMovConsumers( + Operation *forwarder, const MovBasics &basics, + const SmallVector, 2> &consumers, + const Topology &topo) { + // Wires each consumer: prefer register rewiring; fallback to direction + // rewiring. + for (const std::pair &consumer_pair : consumers) { Operation *consumer_operation = consumer_pair.first; Value value_at_consumer = consumer_pair.second; - if (!handleRegisterRewiring(consumer_operation, value_at_consumer, basics.regs, - basics.reg_split.dst_reg_step, - basics.links, topo, basics.mov_dfg_id)) - handleDirectionRewiring(consumer_operation, value_at_consumer, basics.consumer_direction, - basics.links, topo, forwarder); + if (!handleRegisterRewiring( + consumer_operation, value_at_consumer, basics.regs, + basics.reg_split.dst_reg_step, basics.links, topo, + basics.mov_dfg_id)) + handleDirectionRewiring(consumer_operation, value_at_consumer, + basics.consumer_direction, basics.links, + topo, forwarder); } } - template + template void expandMovImpl(Operation *forwarder, const Topology &topo, - const DenseMap &reserve2phi) { - if (!validateForwarderShape(forwarder)) return; + const DenseMap &reserve2phi) { + if (!validateForwarderShape(forwarder)) + return; - // Checks if this data_mov/ctrl_mov has mapping_locs assigned by MapToAcceleratorPass. + // Checks if this data_mov/ctrl_mov has mapping_locs assigned by + // MapToAcceleratorPass. auto mapping_locs = getMappingLocations(forwarder); if (!mapping_locs || mapping_locs.empty()) { - // Skips this mov operation - it will be handled by its consumer or does not need routing. - // This is expected for data_mov that only feeds into ctrl_mov. + // Skips this mov operation - it will be handled by its consumer or does + // not need routing. This is expected for data_mov that only feeds into + // ctrl_mov. if constexpr (!IsCtrl) { - // For data_mov without mapping, verifies if it is only used by ctrl_mov. + // For data_mov without mapping, verifies if it is only used by + // ctrl_mov. bool only_ctrl_mov_users = true; for (OpOperand &use : forwarder->getResult(0).getUses()) { if (!isa(use.getOwner())) { @@ -856,8 +1054,10 @@ struct GenerateCodePass // This is expected - ctrl_mov handles this data transfer implicitly. return; } else { - // This data_mov has non-ctrl_mov users but no mapping - this is an error. - forwarder->emitWarning("data_mov without mapping_locs has non-ctrl_mov users"); + // This data_mov has non-ctrl_mov users but no mapping - this is an + // error. + forwarder->emitWarning( + "data_mov without mapping_locs has non-ctrl_mov users"); } } return; @@ -867,21 +1067,21 @@ struct GenerateCodePass emitMovRoutingInstructions(forwarder, basics, topo); - SmallVector, 2> consumers = + SmallVector, 2> consumers = collectMovConsumers(forwarder, reserve2phi); if constexpr (IsCtrl) { - if (consumers.empty()) return; + if (consumers.empty()) + return; } rewriteMovConsumers(forwarder, basics, consumers, topo); } - // ---------- output generation ----------. void logUnresolvedOperands() { unsigned unsrc = 0, undst = 0; for (auto &tile_entry : tile_time_instructions) { - std::pair tile_key = tile_entry.first; + std::pair tile_key = tile_entry.first; int column = tile_key.first, row = tile_key.second; for (auto ×tep_entry : tile_entry.second) { int time_step = timestep_entry.first; @@ -891,23 +1091,30 @@ struct GenerateCodePass for (size_t si = 0; si < inst.src_operands.size(); ++si) { Operand &s = inst.src_operands[si]; if (s.operand == "UNRESOLVED") { - s.color = "ERROR"; ++unsrc; - llvm::errs() << "[UNRESOLVED SRC] tile("< &materialized_ids) { instruction_id_map.clear(); int max_assigned = -1; for (auto &[tile_key, timestep_map] : tile_time_instructions) { for (auto &[time_step, inst_vec] : timestep_map) { for (Instruction &inst : inst_vec) { - if (inst.id >= 0) max_assigned = std::max(max_assigned, inst.id); + if (inst.id >= 0) + max_assigned = std::max(max_assigned, inst.id); } } } @@ -938,7 +1149,8 @@ struct GenerateCodePass for (auto &[time_step, inst_vec] : timestep_map) { for (size_t idx = 0; idx < inst_vec.size(); ++idx) { Instruction &inst = inst_vec[idx]; - if (inst.id < 0) inst.id = next_instruction_id++; + if (inst.id < 0) + inst.id = next_instruction_id++; instruction_id_map[{col, row, time_step, (int)idx}] = inst.id; materialized_ids.insert(inst.id); } @@ -946,10 +1158,13 @@ struct GenerateCodePass } } - // Looks up instruction ID by InstructionReference (col,row,time_step,idx in bucket). + // Looks up instruction ID by InstructionReference (col,row,time_step,idx in + // bucket). int lookupInstructionId(const InstructionReference &ref) const { - auto it = instruction_id_map.find({ref.col_idx, ref.row_idx, ref.t, ref.idx}); - if (it == instruction_id_map.end()) return -1; + auto it = + instruction_id_map.find({ref.col_idx, ref.row_idx, ref.t, ref.idx}); + if (it == instruction_id_map.end()) + return -1; return it->second; } @@ -958,10 +1173,14 @@ struct GenerateCodePass std::string out; out.reserve(s.size()); for (char c : s) { - if (c == '"') out += "\\\""; - else if (c == '\\') out += "\\\\"; - else if (c == '\n') out += "\\n"; - else out += c; + if (c == '"') + out += "\\\""; + else if (c == '\\') + out += "\\\\"; + else if (c == '\n') + out += "\\n"; + else + out += c; } return out; } @@ -989,20 +1208,23 @@ struct GenerateCodePass if (auto arr = op->getAttrOfType("mapping_locs")) { for (Attribute a : arr) { auto d = dyn_cast(a); - if (!d) continue; + if (!d) + continue; auto resource = dyn_cast_or_null(d.get("resource")); - + // Extracts time_step from any resource type. if (auto ts_attr = dyn_cast_or_null(d.get("time_step"))) { info.time_step = ts_attr.getInt(); } - if (auto index_attr = dyn_cast_or_null(d.get("index_per_ii"))) { + if (auto index_attr = + dyn_cast_or_null(d.get("index_per_ii"))) { info.index_per_ii = index_attr.getInt(); } - if (auto invalid_attr = dyn_cast_or_null(d.get("invalid_iterations"))) { + if (auto invalid_attr = + dyn_cast_or_null(d.get("invalid_iterations"))) { info.invalid_iterations = invalid_attr.getInt(); } - + // Only tile resources have x/y coordinates. if (resource && resource.getValue() == "tile") { if (auto x_attr = dyn_cast_or_null(d.get("x"))) { @@ -1036,7 +1258,8 @@ struct GenerateCodePass }; void collectCtrlMovReserves(func::FuncOp func, - DenseMap> &reserve_to_ctrl_movs) const { + DenseMap> + &reserve_to_ctrl_movs) const { func.walk([&](Operation *operation) { if (auto ctrl_mov_op = dyn_cast(operation)) { if (ctrl_mov_op->getNumOperands() >= 2) { @@ -1048,19 +1271,24 @@ struct GenerateCodePass } void addEdge(DfgEdgeList &edges, int src, int dst) const { - if (src < 0 || dst < 0) return; - if (src == dst) return; // Avoids self-loop. + if (src < 0 || dst < 0) + return; + if (src == dst) + return; // Avoids self-loop. edges.emplace_back(src, dst); } - void buildSsaNodesAndEdges(func::FuncOp func, - const DenseMap> &reserve_to_ctrl_movs, - DfgNodeMap &nodes, - DfgEdgeList &edges) { + void buildSsaNodesAndEdges( + func::FuncOp func, + const DenseMap> &reserve_to_ctrl_movs, + DfgNodeMap &nodes, DfgEdgeList &edges) { func.walk([&](Operation *operation) { - if (operation == func.getOperation()) return; // Skips function itself. - if (isReserve(operation)) return; // Skips reserve nodes entirely (bypass later). - if (isa(operation)) return; // Skips yield nodes entirely (bypass later). + if (operation == func.getOperation()) + return; // Skips function itself. + if (isReserve(operation)) + return; // Skips reserve nodes entirely (bypass later). + if (isa(operation)) + return; // Skips yield nodes entirely (bypass later). // Skips operations inside fused_op regions - they are handled by hardware if (operation->getParentOp() && isFusedOp(operation->getParentOp())) { return; @@ -1068,7 +1296,8 @@ struct GenerateCodePass int dfg_id = getDfgId(operation); if (dfg_id < 0) { - llvm::errs() << "[WARN] Operation without dfg_id: " << *operation << "\n"; + llvm::errs() << "[WARN] Operation without dfg_id: " << *operation + << "\n"; return; } dfg_id_to_op[dfg_id] = operation; @@ -1076,10 +1305,13 @@ struct GenerateCodePass std::string opcode = getOpcode(operation); LocationInfo location_info = getLocationInfo(operation); - if ((isDataMov(operation) || isCtrlMov(operation)) && !location_info.has_tile) { + if ((isDataMov(operation) || isCtrlMov(operation)) && + !location_info.has_tile) { nodes[dfg_id] = DfgNodeInfo{opcode, -1, -1, location_info.time_step}; } else { - nodes[dfg_id] = DfgNodeInfo{opcode, location_info.tile_x, location_info.tile_y, location_info.time_step}; + nodes[dfg_id] = + DfgNodeInfo{opcode, location_info.tile_x, location_info.tile_y, + location_info.time_step}; } for (Value operand : operation->getOperands()) { @@ -1088,9 +1320,11 @@ struct GenerateCodePass auto it = reserve_to_ctrl_movs.find(operand); if (it != reserve_to_ctrl_movs.end()) { for (Operation *ctrl_mov_op : it->second) { - if (ctrl_mov_op == operation) continue; + if (ctrl_mov_op == operation) + continue; int producer_id = getDfgId(ctrl_mov_op); - if (producer_id >= 0) addEdge(edges, producer_id, dfg_id); + if (producer_id >= 0) + addEdge(edges, producer_id, dfg_id); } } continue; @@ -1103,16 +1337,18 @@ struct GenerateCodePass }); } - void collectHopRewrites(func::FuncOp func, const Topology &topology, - DfgNodeMap &nodes, - const DfgEdgeList &original_edges, - DfgEdgeList &edges, - llvm::SmallDenseSet, 32> &skip_edges, - std::vector &rewrites) { + void + collectHopRewrites(func::FuncOp func, const Topology &topology, + DfgNodeMap &nodes, const DfgEdgeList &original_edges, + DfgEdgeList &edges, + llvm::SmallDenseSet, 32> &skip_edges, + std::vector &rewrites) { func.walk([&](Operation *operation) { - if (!isDataMov(operation) && !isCtrlMov(operation)) return; + if (!isDataMov(operation) && !isCtrlMov(operation)) + return; int mov_dfg_id = getDfgId(operation); - if (mov_dfg_id < 0) return; + if (mov_dfg_id < 0) + return; int producer_id = -1; if (operation->getNumOperands() >= 1) { @@ -1125,30 +1361,38 @@ struct GenerateCodePass for (OpOperand &use : operation->getResult(0).getUses()) { Operation *user = use.getOwner(); while (user && isReserve(user)) { - if (user->getNumResults() == 0) { user = nullptr; break; } + if (user->getNumResults() == 0) { + user = nullptr; + break; + } bool forwarded = false; for (OpOperand &reserve_use : user->getResult(0).getUses()) { Operation *forward_user = reserve_use.getOwner(); - if (!forward_user) continue; + if (!forward_user) + continue; int consumer_id = getDfgId(forward_user); - if (consumer_id >= 0) consumer_ids.push_back(consumer_id); + if (consumer_id >= 0) + consumer_ids.push_back(consumer_id); forwarded = true; } user = nullptr; - if (forwarded) break; + if (forwarded) + break; } if (user) { int consumer_id = getDfgId(user); - if (consumer_id >= 0) consumer_ids.push_back(consumer_id); + if (consumer_id >= 0) + consumer_ids.push_back(consumer_id); } } } SmallVector link_steps = collectLinkSteps(operation); - SmallVector, 8> hop_tiles; + SmallVector, 8> hop_tiles; SmallVector hop_time_steps; - // Detect whether this mov has a src_reg_step (reg.time_step < first_link_time_step). If so, - // an egress instruction exists with id=mov_id*10000 and must participate in edges. + // Detect whether this mov has a src_reg_step (reg.time_step < + // first_link_time_step). If so, an egress instruction exists with + // id=mov_id*10000 and must participate in edges. bool has_src_reg_step = false; if (!link_steps.empty()) { SmallVector regs = collectRegSteps(operation); @@ -1159,11 +1403,12 @@ struct GenerateCodePass int egress_id = base; int src_tile_id = topology.srcTileOfLink(link_steps.front().link_id); auto coord = topology.tile_location.lookup(src_tile_id); - // Add placeholder node now (will be filled/confirmed by injectMaterializedInstructionNodes). + // Add placeholder node now (will be filled/confirmed by + // injectMaterializedInstructionNodes). if (!nodes.count(egress_id)) { nodes[egress_id] = DfgNodeInfo{ - isCtrlMov(operation) ? "CTRL_MOV" : "DATA_MOV", - coord.first, coord.second, link_steps.front().time_step}; + isCtrlMov(operation) ? "CTRL_MOV" : "DATA_MOV", coord.first, + coord.second, link_steps.front().time_step}; } } } @@ -1192,7 +1437,8 @@ struct GenerateCodePass hop_node.opcode = isCtrlMov(operation) ? "CTRL_MOV" : "DATA_MOV"; hop_node.tile_x = hop_tiles[i].first; hop_node.tile_y = hop_tiles[i].second; - hop_node.time_step = (i < hop_time_steps.size()) ? hop_time_steps[i] : -1; + hop_node.time_step = + (i < hop_time_steps.size()) ? hop_time_steps[i] : -1; nodes[node_id] = hop_node; } @@ -1201,25 +1447,28 @@ struct GenerateCodePass for (int consumer_id : consumer_ids) skip_edges.insert({mov_dfg_id, consumer_id}); - rewrites.push_back( - HopRewriteInfo{mov_dfg_id, producer_id, consumer_ids, hop_tiles, hop_time_steps}); + rewrites.push_back(HopRewriteInfo{mov_dfg_id, producer_id, consumer_ids, + hop_tiles, hop_time_steps}); } - // Also rewrite edges for single-hop (no intermediate hop nodes) when egress exists: - // producer -> egress(base) -> mov_id -> consumers - // so that DFG edges align with instruction ids. + // Also rewrite edges for single-hop (no intermediate hop nodes) when + // egress exists: producer -> egress(base) -> mov_id -> consumers so that + // DFG edges align with instruction ids. if (has_src_reg_step && hop_tiles.empty()) { if (producer_id >= 0) skip_edges.insert({producer_id, mov_dfg_id}); for (int consumer_id : consumer_ids) skip_edges.insert({mov_dfg_id, consumer_id}); // Store a rewrite with empty hop list; later we will special-case it. - rewrites.push_back(HopRewriteInfo{mov_dfg_id, producer_id, consumer_ids, /*hop_tiles*/{}, /*hop_time_steps*/{}}); + rewrites.push_back(HopRewriteInfo{mov_dfg_id, producer_id, consumer_ids, + /*hop_tiles*/ {}, + /*hop_time_steps*/ {}}); } }); for (const auto &edge : original_edges) { - if (skip_edges.count(edge)) continue; + if (skip_edges.count(edge)) + continue; edges.push_back(edge); } @@ -1229,44 +1478,58 @@ struct GenerateCodePass int previous = rewrite.producer_id; // If an egress instruction exists (id=mov_id*10000), route through it. - // This keeps DFG edges aligned with instruction ids for reg-before-link paths. + // This keeps DFG edges aligned with instruction ids for reg-before-link + // paths. if (nodes.count(egress_id)) { - if (previous >= 0) edges.emplace_back(previous, egress_id); + if (previous >= 0) + edges.emplace_back(previous, egress_id); previous = egress_id; } for (size_t i = 0; i < rewrite.hop_tiles.size(); ++i) { int node_id = base + static_cast(i) + 1; - if (previous >= 0) edges.emplace_back(previous, node_id); + if (previous >= 0) + edges.emplace_back(previous, node_id); previous = node_id; } - // Always connect the chain to mov_id; if mov_id is later pruned (non-materialized), - // pruneMovNodesWithoutCoords will bypass it and connect previous directly to consumers. - if (previous >= 0) edges.emplace_back(previous, rewrite.mov_id); + // Always connect the chain to mov_id; if mov_id is later pruned + // (non-materialized), pruneMovNodesWithoutCoords will bypass it and + // connect previous directly to consumers. + if (previous >= 0) + edges.emplace_back(previous, rewrite.mov_id); for (int consumer_id : rewrite.consumer_ids) edges.emplace_back(rewrite.mov_id, consumer_id); } } - void adjustRegisterOnlyMovCoords(DfgNodeMap &nodes, const DfgEdgeList &edges) { + void adjustRegisterOnlyMovCoords(DfgNodeMap &nodes, + const DfgEdgeList &edges) { std::unordered_map> successors; - for (const auto &edge : edges) successors[edge.first].push_back(edge.second); + for (const auto &edge : edges) + successors[edge.first].push_back(edge.second); - auto scanMappingKinds = [](Operation *op, bool &has_link, bool &has_register, int &min_register_ts) { - has_link = false; has_register = false; min_register_ts = -1; + auto scanMappingKinds = [](Operation *op, bool &has_link, + bool &has_register, int &min_register_ts) { + has_link = false; + has_register = false; + min_register_ts = -1; if (auto arr = op->getAttrOfType("mapping_locs")) { for (Attribute attr : arr) { auto dict = dyn_cast(attr); - if (!dict) continue; + if (!dict) + continue; auto res = dyn_cast_or_null(dict.get("resource")); - if (!res) continue; + if (!res) + continue; if (res.getValue() == "link") { has_link = true; } else if (res.getValue() == "register" || res.getValue() == "reg") { has_register = true; - if (auto ts_attr = dyn_cast_or_null(dict.get("time_step"))) { + if (auto ts_attr = + dyn_cast_or_null(dict.get("time_step"))) { int time_step = ts_attr.getInt(); - if (min_register_ts < 0 || time_step < min_register_ts) min_register_ts = time_step; + if (min_register_ts < 0 || time_step < min_register_ts) + min_register_ts = time_step; } } } @@ -1276,34 +1539,44 @@ struct GenerateCodePass for (auto &entry : nodes) { int node_id = entry.first; DfgNodeInfo &node = entry.second; - if (node.tile_x != -1 || node.tile_y != -1) continue; - if (node.opcode != "DATA_MOV" && node.opcode != "CTRL_MOV") continue; + if (node.tile_x != -1 || node.tile_y != -1) + continue; + if (node.opcode != "DATA_MOV" && node.opcode != "CTRL_MOV") + continue; Operation *op = dfg_id_to_op.lookup(node_id); - if (!op) continue; + if (!op) + continue; bool has_link = false, has_register = false; int min_register_ts = -1; scanMappingKinds(op, has_link, has_register, min_register_ts); - if (!has_register) continue; // if register not present, keep as is; if present, fill coords from consumer + if (!has_register) + continue; // if register not present, keep as is; if present, fill + // coords from consumer auto succ_it = successors.find(node_id); - if (succ_it == successors.end()) continue; + if (succ_it == successors.end()) + continue; for (int consumer_id : succ_it->second) { auto consumer_it = nodes.find(consumer_id); - if (consumer_it == nodes.end()) continue; + if (consumer_it == nodes.end()) + continue; const DfgNodeInfo &consumer_node = consumer_it->second; - if (consumer_node.tile_x == -1 || consumer_node.tile_y == -1) continue; + if (consumer_node.tile_x == -1 || consumer_node.tile_y == -1) + continue; node.tile_x = consumer_node.tile_x; node.tile_y = consumer_node.tile_y; - if (node.time_step < 0 && min_register_ts >= 0) node.time_step = min_register_ts; + if (node.time_step < 0 && min_register_ts >= 0) + node.time_step = min_register_ts; break; } } } - void pruneMovNodesWithoutCoords(DfgNodeMap &nodes, DfgEdgeList &edges, - const std::unordered_set &materialized_ids) { + void + pruneMovNodesWithoutCoords(DfgNodeMap &nodes, DfgEdgeList &edges, + const std::unordered_set &materialized_ids) { std::unordered_set nodes_to_remove; for (const auto &entry : nodes) { int node_id = entry.first; @@ -1317,7 +1590,8 @@ struct GenerateCodePass nodes_to_remove.insert(node_id); } } - if (nodes_to_remove.empty()) return; + if (nodes_to_remove.empty()) + return; std::unordered_map> predecessors, successors; for (const auto &edge : edges) { @@ -1325,14 +1599,18 @@ struct GenerateCodePass predecessors[edge.second].push_back(edge.first); } std::unordered_set dedup_edge_set; - auto encode = [](int from, int to)->uint64_t { return (static_cast(from) << 32) ^ static_cast(to); }; + auto encode = [](int from, int to) -> uint64_t { + return (static_cast(from) << 32) ^ static_cast(to); + }; - std::vector> new_edges; + std::vector> new_edges; for (const auto &edge : edges) { - if (nodes_to_remove.count(edge.first) || nodes_to_remove.count(edge.second)) + if (nodes_to_remove.count(edge.first) || + nodes_to_remove.count(edge.second)) continue; uint64_t key = encode(edge.first, edge.second); - if (dedup_edge_set.insert(key).second) new_edges.push_back(edge); + if (dedup_edge_set.insert(key).second) + new_edges.push_back(edge); } for (int removed : nodes_to_remove) { @@ -1340,7 +1618,8 @@ struct GenerateCodePass const auto &succs = successors[removed]; for (int pred : preds) { for (int succ : succs) { - if (pred == succ) continue; + if (pred == succ) + continue; uint64_t key = encode(pred, succ); if (dedup_edge_set.insert(key).second) new_edges.emplace_back(pred, succ); @@ -1348,26 +1627,32 @@ struct GenerateCodePass } } edges.swap(new_edges); - for (int removed : nodes_to_remove) nodes.erase(removed); + for (int removed : nodes_to_remove) + nodes.erase(removed); } void emitDotOutput(const DfgNodeMap &nodes, const DfgEdgeList &edges) const { std::error_code ec; llvm::raw_fd_ostream dot_out("tmp-generated-dfg.dot", ec); - if (ec) return; + if (ec) + return; - dot_out << "digraph DFG {\n rankdir=LR;\n node [shape=box, style=filled];\n"; + dot_out + << "digraph DFG {\n rankdir=LR;\n node [shape=box, style=filled];\n"; auto color_for = [](const std::string &op) { - if (op == "DATA_MOV") return "lightgreen"; - if (op == "CTRL_MOV") return "lightyellow"; - if (op == "CONSTANT") return "lightblue"; + if (op == "DATA_MOV") + return "lightgreen"; + if (op == "CTRL_MOV") + return "lightyellow"; + if (op == "CONSTANT") + return "lightblue"; return "white"; }; for (const auto &entry : nodes) { int id = entry.first; const DfgNodeInfo &node = entry.second; - dot_out << " n" << id << " [label=\"" - << escape(node.opcode) << "\\nID=" << id; + dot_out << " n" << id << " [label=\"" << escape(node.opcode) + << "\\nID=" << id; if (node.tile_x >= 0 && node.tile_y >= 0) { dot_out << "\\n(" << node.tile_x << "," << node.tile_y << ")"; } @@ -1385,7 +1670,8 @@ struct GenerateCodePass void emitYamlOutput(const DfgNodeMap &nodes, const DfgEdgeList &edges) const { std::error_code ec; llvm::raw_fd_ostream yaml_out("tmp-generated-dfg.yaml", ec); - if (ec) return; + if (ec) + return; yaml_out << "nodes:\n"; for (const auto &entry : nodes) { @@ -1404,10 +1690,10 @@ struct GenerateCodePass } } - // Ensures every materialized instruction (from tmp-generated-instructions.yaml) - // has a corresponding DFG node keyed by instruction.id. This is important for - // synthetic instructions that don't exist as IR ops (e.g., egress DATA_MOV with - // id=mov_id*10000). + // Ensures every materialized instruction (from + // tmp-generated-instructions.yaml) has a corresponding DFG node keyed by + // instruction.id. This is important for synthetic instructions that don't + // exist as IR ops (e.g., egress DATA_MOV with id=mov_id*10000). void injectMaterializedInstructionNodes(DfgNodeMap &nodes) const { for (const auto &[tile_key, timestep_map] : tile_time_instructions) { int tile_x = tile_key.first; @@ -1415,14 +1701,17 @@ struct GenerateCodePass for (const auto &[idx_per_ii, inst_vec] : timestep_map) { (void)idx_per_ii; for (const Instruction &inst : inst_vec) { - if (inst.id < 0) continue; - // Only inject if absent; for IR-backed ops (id == dfg_id) the existing - // node is fine, but injecting is also harmless. + if (inst.id < 0) + continue; + // Only inject if absent; for IR-backed ops (id == dfg_id) the + // existing node is fine, but injecting is also harmless. auto it = nodes.find(inst.id); if (it == nodes.end()) { - nodes[inst.id] = DfgNodeInfo{inst.opcode, tile_x, tile_y, inst.time_step}; + nodes[inst.id] = + DfgNodeInfo{inst.opcode, tile_x, tile_y, inst.time_step}; } else { - // If the existing node has no coords, prefer concrete instruction coords. + // If the existing node has no coords, prefer concrete instruction + // coords. if (it->second.tile_x < 0 || it->second.tile_y < 0) { it->second.tile_x = tile_x; it->second.tile_y = tile_y; @@ -1450,14 +1739,16 @@ struct GenerateCodePass pass.buildSsaNodesAndEdges(func, reserve_to_ctrl_movs, nodes, edges); - std::vector> original_edges = edges; + std::vector> original_edges = edges; edges.clear(); - llvm::SmallDenseSet, 32> edges_to_skip; + llvm::SmallDenseSet, 32> edges_to_skip; std::vector hop_rewrites; - pass.collectHopRewrites(func, topology, nodes, original_edges, edges, edges_to_skip, hop_rewrites); + pass.collectHopRewrites(func, topology, nodes, original_edges, edges, + edges_to_skip, hop_rewrites); - // Bring in synthetic instruction nodes (egress/deposit/hops) by instruction id. + // Bring in synthetic instruction nodes (egress/deposit/hops) by + // instruction id. pass.injectMaterializedInstructionNodes(nodes); pass.adjustRegisterOnlyMovCoords(nodes, edges); @@ -1467,15 +1758,16 @@ struct GenerateCodePass pass.emitDotOutput(nodes, edges); pass.emitYamlOutput(nodes, edges); - llvm::outs() << "[generate-code] DFG (SSA-based) emitted: nodes=" << nodes.size() - << ", edges=" << edges.size() + llvm::outs() << "[generate-code] DFG (SSA-based) emitted: nodes=" + << nodes.size() << ", edges=" << edges.size() << " -> tmp-generated-dfg.dot, tmp-generated-dfg.yaml\n"; } }; // Writes DOT and JSON DFG outputs based on SSA and dfg_id attributes. - // Applies hop-aware coordinates/middle-node insertion for DATA_MOV / CTRL_MOV, - // and bypasses reserve nodes (no node for reserve, edges direct from producer to consumer). + // Applies hop-aware coordinates/middle-node insertion for DATA_MOV / + // CTRL_MOV, and bypasses reserve nodes (no node for reserve, edges direct + // from producer to consumer). void writeDfgOutputSSA(func::FuncOp func, const Topology &topology, const std::unordered_set &materialized_ids) { DfgBuilder{*this, func, topology, materialized_ids}.run(); @@ -1483,31 +1775,38 @@ struct GenerateCodePass ArrayConfig buildArrayConfig(int columns, int rows, int compiled_ii = -1) { ArrayConfig config{columns, rows, compiled_ii, {}}; - std::map, std::vector> tile_insts; + std::map, std::vector> tile_insts; // Flattens and sorts by timesteps. for (auto &[tile_key, timestep_map] : tile_time_instructions) { auto &flat = tile_insts[tile_key]; - for (auto &[timestep, instruction_vec] : timestep_map) for (Instruction &inst : instruction_vec) flat.push_back(inst); + for (auto &[timestep, instruction_vec] : timestep_map) + for (Instruction &inst : instruction_vec) + flat.push_back(inst); std::stable_sort(flat.begin(), flat.end(), - [](const Instruction &a, const Instruction &b){ return a.time_step < b.time_step; }); + [](const Instruction &a, const Instruction &b) { + return a.time_step < b.time_step; + }); } for (int r = 0; r < rows; ++r) { for (int c = 0; c < columns; ++c) { - auto it = tile_insts.find({c,r}); - if (it == tile_insts.end()) continue; - Tile tile(c, r, r*columns + c); - for (Instruction &inst : it->second) tile.entry.instructions.push_back(inst); + auto it = tile_insts.find({c, r}); + if (it == tile_insts.end()) + continue; + Tile tile(c, r, r * columns + c); + for (Instruction &inst : it->second) + tile.entry.instructions.push_back(inst); config.cores.push_back(std::move(tile)); } } return config; } - using IndexGroups = std::map>; + using IndexGroups = std::map>; - static IndexGroups groupByIndexPerIi(const std::vector &instructions) { + static IndexGroups + groupByIndexPerIi(const std::vector &instructions) { IndexGroups index_groups; for (const Instruction &inst : instructions) index_groups[inst.index_per_ii].push_back(&inst); @@ -1515,8 +1814,9 @@ struct GenerateCodePass } void emitYamlForTile(llvm::raw_fd_ostream &yaml_out, const Tile &tile) { - yaml_out << " - column: " << tile.col_idx << "\n row: " << tile.row_idx - << "\n core_id: \"" << tile.core_id << "\"\n entries:\n"; + yaml_out << " - column: " << tile.col_idx + << "\n row: " << tile.row_idx << "\n core_id: \"" + << tile.core_id << "\"\n entries:\n"; // Groups instructions by index_per_ii. IndexGroups index_groups = groupByIndexPerIi(tile.entry.instructions); @@ -1537,20 +1837,23 @@ struct GenerateCodePass if (inst->id >= 0) yaml_out << " id: " << inst->id << "\n"; yaml_out << " time_step: " << inst->time_step << "\n" - << " invalid_iterations: " << inst->invalid_iterations << "\n"; + << " invalid_iterations: " + << inst->invalid_iterations << "\n"; // sources. if (!inst->src_operands.empty()) { yaml_out << " src_operands:\n"; for (const Operand &opnd : inst->src_operands) yaml_out << " - operand: \"" << opnd.operand - << "\"\n color: \"" << opnd.color << "\"\n"; + << "\"\n color: \"" << opnd.color + << "\"\n"; } // destinations. if (!inst->dst_operands.empty()) { yaml_out << " dst_operands:\n"; for (const Operand &opnd : inst->dst_operands) yaml_out << " - operand: \"" << opnd.operand - << "\"\n color: \"" << opnd.color << "\"\n"; + << "\"\n color: \"" << opnd.color + << "\"\n"; } } } @@ -1559,9 +1862,11 @@ struct GenerateCodePass void writeYAMLOutput(const ArrayConfig &config) { std::error_code ec; llvm::raw_fd_ostream yaml_out("tmp-generated-instructions.yaml", ec); - if (ec) return; + if (ec) + return; - yaml_out << "array_config:\n columns: " << config.columns << "\n rows: " << config.rows; + yaml_out << "array_config:\n columns: " << config.columns + << "\n rows: " << config.rows; if (config.compiled_ii >= 0) { yaml_out << "\n compiled_ii: " << config.compiled_ii; } @@ -1574,10 +1879,14 @@ struct GenerateCodePass // Direction vs const/reg helpers. static bool isDirectionalOperand(const std::string &operand) { - // Non-directional operands start with $ (registers), # (constants), or arg (function arguments). - if (operand.empty()) return false; - if (operand[0] == '$' || operand[0] == '#') return false; - // Checks if the operand starts with "arg" followed by digits (e.g., "arg0", "arg1"). + // Non-directional operands start with $ (registers), # (constants), or arg + // (function arguments). + if (operand.empty()) + return false; + if (operand[0] == '$' || operand[0] == '#') + return false; + // Checks if the operand starts with "arg" followed by digits (e.g., "arg0", + // "arg1"). if (operand.size() >= 4 && operand.substr(0, 3) == "arg") { // Verifies that the rest is digits. bool all_digits = true; @@ -1587,7 +1896,8 @@ struct GenerateCodePass break; } } - if (all_digits) return false; + if (all_digits) + return false; } return true; } @@ -1624,7 +1934,8 @@ struct GenerateCodePass if (!inst->dst_operands.empty()) { asm_out << " -> "; for (size_t j = 0; j < inst->dst_operands.size(); ++j) { - if (j > 0) asm_out << ", "; + if (j > 0) + asm_out << ", "; asm_out << formatOperand(inst->dst_operands[j]); } } @@ -1639,7 +1950,8 @@ struct GenerateCodePass void writeAsmOutput(const ArrayConfig &config) { std::error_code ec; llvm::raw_fd_ostream asm_out("tmp-generated-instructions.asm", ec); - if (ec) return; + if (ec) + return; if (config.compiled_ii >= 0) { asm_out << "# Compiled II: " << config.compiled_ii << "\n\n"; @@ -1651,12 +1963,16 @@ struct GenerateCodePass asm_out.close(); } - // Endpoint deposits: on destination tiles at earliest reg time_step, move [incoming_dir] -> [$reg]. - // CTRL_MOV paths emit CTRL_MOV deposits; DATA_MOV paths emit DATA_MOV deposits. + // Endpoint deposits: on destination tiles at earliest reg time_step, move + // [incoming_dir] -> [$reg]. CTRL_MOV paths emit CTRL_MOV deposits; DATA_MOV + // paths emit DATA_MOV deposits. void placeDstDeposit(const Topology &topo, int dst_tile_id, int time_step, - StringRef incoming_dir, int reg_id, bool asCtrlMov = false, int assigned_id = -1) { - uint64_t signature = static_cast(llvm::hash_combine(dst_tile_id, time_step, reg_id)); - if (!deposit_signatures.insert(signature).second) return; // already placed. + StringRef incoming_dir, int reg_id, + bool asCtrlMov = false, int assigned_id = -1) { + uint64_t signature = static_cast( + llvm::hash_combine(dst_tile_id, time_step, reg_id)); + if (!deposit_signatures.insert(signature).second) + return; // already placed. auto [tile_x, tile_y] = topo.tile_location.lookup(dst_tile_id); Instruction inst(asCtrlMov ? "CTRL_MOV" : "DATA_MOV"); inst.id = assigned_id; @@ -1665,40 +1981,56 @@ struct GenerateCodePass inst.invalid_iterations = syntheticInvalidIterations(time_step); inst.src_operands.emplace_back(incoming_dir.str(), "RED"); inst.dst_operands.emplace_back("$" + std::to_string(reg_id), "RED"); - tile_time_instructions[{tile_x, tile_y}][inst.index_per_ii].push_back(std::move(inst)); + tile_time_instructions[{tile_x, tile_y}][inst.index_per_ii].push_back( + std::move(inst)); } // Utilities to access instruction buckets/pointers. - std::vector &getInstructionBucket(int column, int row, int time_step) { - return tile_time_instructions[{column,row}][time_step]; + std::vector &getInstructionBucket(int column, int row, + int time_step) { + return tile_time_instructions[{column, row}][time_step]; } - Instruction* getInstructionPointer(Operation *operation) { + Instruction *getInstructionPointer(Operation *operation) { auto it = operation_to_instruction_reference.find(operation); - if (it == operation_to_instruction_reference.end()) return nullptr; + if (it == operation_to_instruction_reference.end()) + return nullptr; auto [c, r, t, idx] = it->second; - auto &vec = tile_time_instructions[{c,r}][t]; - if (idx < 0 || idx >= (int)vec.size()) return nullptr; + auto &vec = tile_time_instructions[{c, r}][t]; + if (idx < 0 || idx >= (int)vec.size()) + return nullptr; return &vec[idx]; } - // Replaces the exact source slots in consumers that correspond to `value_at_consumer`, - // or fills the first UNRESOLVED placeholder if a 1:1 match wasn't found. - void setConsumerSourceExact(Operation *consumer, Value value_at_consumer, const std::string &text) { + // Replaces the exact source slots in consumers that correspond to + // `value_at_consumer`, or fills the first UNRESOLVED placeholder if a 1:1 + // match wasn't found. + void setConsumerSourceExact(Operation *consumer, Value value_at_consumer, + const std::string &text) { Instruction *ci = getInstructionPointer(consumer); - if (!ci) return; + if (!ci) + return; auto it = operation_to_operands.find(consumer); - if (it == operation_to_operands.end()) return; + if (it == operation_to_operands.end()) + return; auto &ops = it->second; for (size_t i = 0; i < ops.size() && i < ci->src_operands.size(); ++i) { - if (ops[i] == value_at_consumer) { ci->src_operands[i].operand = text; return; } + if (ops[i] == value_at_consumer) { + ci->src_operands[i].operand = text; + return; + } } for (Operand &src : ci->src_operands) - if (src.operand == "UNRESOLVED") { src.operand = text; return; } + if (src.operand == "UNRESOLVED") { + src.operand = text; + return; + } } // Appends a destination only once. - static void setUniqueDestination(Instruction *inst, const std::string &text){ - for (Operand &d : inst->dst_operands) if (d.operand == text) return; + static void setUniqueDestination(Instruction *inst, const std::string &text) { + for (Operand &d : inst->dst_operands) + if (d.operand == text) + return; inst->dst_operands.emplace_back(text, "RED"); } @@ -1708,7 +2040,8 @@ struct GenerateCodePass for (auto func : module.getOps()) { auto accel = func->getAttrOfType(accel::kAcceleratorAttr); - if (!accel || accel.getValue() != accel::kNeuraTarget) continue; + if (!accel || accel.getValue() != accel::kNeuraTarget) + continue; auto [columns, rows] = getArrayDimensions(func); Topology topo = getTopologyFromArchitecture(columns, rows); @@ -1717,16 +2050,16 @@ struct GenerateCodePass clearState(); // Single function-level walks: index + materialize + collect. - SmallVector data_movs; - SmallVector ctrl_movs; - DenseMap reserve_to_phi_map; + SmallVector data_movs; + SmallVector ctrl_movs; + DenseMap reserve_to_phi_map; indexIR(func, data_movs, ctrl_movs, reserve_to_phi_map); // Expands forwarders without re-walking IR. for (Operation *op : data_movs) - expandMovImpl(op, topo, /*unused*/reserve_to_phi_map); + expandMovImpl(op, topo, /*unused*/ reserve_to_phi_map); for (Operation *op : ctrl_movs) - expandMovImpl(op, topo, reserve_to_phi_map); + expandMovImpl(op, topo, reserve_to_phi_map); logUnresolvedOperands(); std::unordered_set materialized_ids; @@ -1735,7 +2068,8 @@ struct GenerateCodePass writeYAMLOutput(config); writeAsmOutput(config); writeDfgOutputSSA(func, topo, materialized_ids); - if (timing_field_error) signalPassFailure(); + if (timing_field_error) + signalPassFailure(); } } }; From 364833f981e103c8a60aef6dac532a2b1fd91a6e Mon Sep 17 00:00:00 2001 From: ShangkunLI Date: Fri, 20 Mar 2026 16:03:36 +0800 Subject: [PATCH 3/3] modify tests --- .../bert/bert_node1/bert_node1.mlir | 19 +- .../bert/bert_node28/bert_node28.mlir | 41 +- .../global_mem_address/kernel.mlir | 4 +- .../non_perfect_nested.mlir | 406 -- .../complex_nested/complex_nested.cpp | 0 .../complex_nested/complex_nested.mlir | 102 +- .../non_perfect_nested/non_perfect_nested.cpp | 0 .../non_perfect_nested.mlir | 438 ++ .../perfect_nested/perfect_nested.cpp | 0 .../perfect_nested/perfect_nested.mlir | 22 +- .../perfect_reduction/perfect_reduction.cpp | 0 .../perfect_reduction/perfect_reduction.mlir | 19 +- .../simple_loop/simple_loop.cpp | 0 .../simple_loop/simple_loop.mlir | 0 .../simple_loop_reduction.cpp | 0 .../simple_loop_reduction.mlir | 0 test/e2e/bicg/bicg_int_kernel.mlir | 1386 +----- test/e2e/bicg/bicg_kernel.mlir | 3087 +----------- test/e2e/fft/fft_kernel.mlir | 4354 +---------------- test/e2e/gemm/gemm_kernel.mlir | 278 +- test/e2e/gemv/gemv_kernel.mlir | 1153 +---- test/e2e/spmv/spmv_kernel.mlir | 3614 +------------- test/neura/ctrl/nested_branch.mlir | 9 +- test/neura/fusion/test.mlir | 265 +- 24 files changed, 721 insertions(+), 14476 deletions(-) delete mode 100644 test/controflow_fuse/non_perfect_nested/non_perfect_nested.mlir rename test/{controflow_fuse => controlflow_fuse}/complex_nested/complex_nested.cpp (100%) rename test/{controflow_fuse => controlflow_fuse}/complex_nested/complex_nested.mlir (84%) rename test/{controflow_fuse => controlflow_fuse}/non_perfect_nested/non_perfect_nested.cpp (100%) create mode 100644 test/controlflow_fuse/non_perfect_nested/non_perfect_nested.mlir rename test/{controflow_fuse => controlflow_fuse}/perfect_nested/perfect_nested.cpp (100%) rename test/{controflow_fuse => controlflow_fuse}/perfect_nested/perfect_nested.mlir (91%) rename test/{controflow_fuse => controlflow_fuse}/perfect_reduction/perfect_reduction.cpp (100%) rename test/{controflow_fuse => controlflow_fuse}/perfect_reduction/perfect_reduction.mlir (91%) rename test/{controflow_fuse => controlflow_fuse}/simple_loop/simple_loop.cpp (100%) rename test/{controflow_fuse => controlflow_fuse}/simple_loop/simple_loop.mlir (100%) rename test/{controflow_fuse => controlflow_fuse}/simple_loop_reduction/simple_loop_reduction.cpp (100%) rename test/{controflow_fuse => controlflow_fuse}/simple_loop_reduction/simple_loop_reduction.mlir (100%) diff --git a/test/Conversion/affine2neura/bert/bert_node1/bert_node1.mlir b/test/Conversion/affine2neura/bert/bert_node1/bert_node1.mlir index 70132cdd..eeadcc25 100644 --- a/test/Conversion/affine2neura/bert/bert_node1/bert_node1.mlir +++ b/test/Conversion/affine2neura/bert/bert_node1/bert_node1.mlir @@ -19,7 +19,8 @@ // RUN: --canonicalize-live-in \ // RUN: --leverage-predicated-value \ // RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s --check-prefix=CTRL2DATA +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA module attributes {} { func.func @_Z10bert_node1PA1_A1_A1_A1_A128_bPA1_A128_S1_(%arg0: memref, %arg1: memref) attributes {} { affine.for %arg2 = 0 to 128 { @@ -63,7 +64,7 @@ module attributes {} { // CHECK-NEXT: "neura.return"() : () -> () // CHECK-NEXT: } -// CTRL2DATA: func.func @_Z10bert_node1PA1_A1_A1_A1_A128_bPA1_A128_S1_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate"} { +// CTRL2DATA: func.func @_Z10bert_node1PA1_A1_A1_A1_A128_bPA1_A128_S1_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate"} { // CTRL2DATA-NEXT: %0 = "neura.constant"() <{value = "%arg0"}> : () -> !neura.data, i1> // CTRL2DATA-NEXT: %1 = "neura.grant_once"(%0) : (!neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %2 = "neura.constant"() <{value = "%arg1"}> : () -> !neura.data, i1> @@ -97,19 +98,19 @@ module attributes {} { // CTRL2DATA-NEXT: %30 = neura.grant_predicate %23, %23 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: neura.return_void %30 : !neura.data // CTRL2DATA-NEXT: %31 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %32 = neura.phi_start %29, %31 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %32 = "neura.phi"(%31, %29) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %33 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %34 = neura.phi_start %28, %33 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %34 = "neura.phi"(%33, %28) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %35 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %36 = neura.phi_start %27, %35 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %36 = "neura.phi"(%35, %27) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %37 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %38 = neura.phi_start %24, %37 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %38 = "neura.phi"(%37, %24) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %39 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %40 = neura.phi_start %26, %39 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %40 = "neura.phi"(%39, %26) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %41 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %42 = neura.phi_start %25, %41 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %42 = "neura.phi"(%41, %25) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %43 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %44 = neura.phi_start %24, %43 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %44 = "neura.phi"(%43, %24) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %45 = "neura.icmp"(%44, %42) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %46 = neura.grant_predicate %40, %45 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %47 = neura.grant_predicate %38, %45 : !neura.data, !neura.data -> !neura.data diff --git a/test/Conversion/affine2neura/bert/bert_node28/bert_node28.mlir b/test/Conversion/affine2neura/bert/bert_node28/bert_node28.mlir index 75f66c35..ad6de836 100644 --- a/test/Conversion/affine2neura/bert/bert_node28/bert_node28.mlir +++ b/test/Conversion/affine2neura/bert/bert_node28/bert_node28.mlir @@ -19,7 +19,8 @@ // RUN: --canonicalize-live-in \ // RUN: --leverage-predicated-value \ // RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s --check-prefix=CTRL2DATA +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA module attributes {} { func.func @_Z11bert_node28PA128_A768_KfPA768_S0_PA128_A768_f(%arg0: memref, %arg1: memref, %arg2: memref) attributes {} { @@ -128,23 +129,23 @@ module attributes {} { // CTRL2DATA-NEXT: %40 = neura.grant_predicate %31, %31 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: neura.return_void %40 : !neura.data // CTRL2DATA-NEXT: %41 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %42 = neura.phi_start %39, %41 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %42 = "neura.phi"(%41, %39) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %43 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %44 = neura.phi_start %38, %43 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %44 = "neura.phi"(%43, %38) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %45 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %46 = neura.phi_start %37, %45 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %46 = "neura.phi"(%45, %37) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %47 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %48 = neura.phi_start %36, %47 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %48 = "neura.phi"(%47, %36) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %49 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %50 = neura.phi_start %35, %49 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %50 = "neura.phi"(%49, %35) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %51 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %52 = neura.phi_start %34, %51 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %52 = "neura.phi"(%51, %34) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %53 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %54 = neura.phi_start %32, %53 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %54 = "neura.phi"(%53, %32) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %55 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %56 = neura.phi_start %33, %55 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %56 = "neura.phi"(%55, %33) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %57 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %58 = neura.phi_start %32, %57 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %58 = "neura.phi"(%57, %32) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %59 = "neura.icmp"(%58, %56) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %60 = neura.grant_predicate %54, %59 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %61 = neura.grant_predicate %56, %59 : !neura.data, !neura.data -> !neura.data @@ -174,25 +175,25 @@ module attributes {} { // CTRL2DATA-NEXT: neura.ctrl_mov %76 -> %16 : !neura.data, i1> !neura.data, i1> // CTRL2DATA-NEXT: neura.ctrl_mov %77 -> %14 : !neura.data, i1> !neura.data, i1> // CTRL2DATA-NEXT: %79 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %80 = neura.phi_start %68, %79 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %80 = "neura.phi"(%79, %68) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %81 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %82 = neura.phi_start %67, %81 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %82 = "neura.phi"(%81, %67) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %83 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %84 = neura.phi_start %66, %83 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %84 = "neura.phi"(%83, %66) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %85 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %86 = neura.phi_start %65, %85 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %86 = "neura.phi"(%85, %65) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %87 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %88 = neura.phi_start %64, %87 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %88 = "neura.phi"(%87, %64) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %89 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %90 = neura.phi_start %63, %89 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %90 = "neura.phi"(%89, %63) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %91 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %92 = neura.phi_start %60, %91 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %92 = "neura.phi"(%91, %60) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %93 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %94 = neura.phi_start %62, %93 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %94 = "neura.phi"(%93, %62) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %95 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %96 = neura.phi_start %61, %95 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %96 = "neura.phi"(%95, %61) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %97 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %98 = neura.phi_start %60, %97 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %98 = "neura.phi"(%97, %60) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %99 = "neura.icmp"(%98, %96) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %100 = neura.grant_predicate %94, %99 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %101 = neura.grant_predicate %92, %99 : !neura.data, !neura.data -> !neura.data diff --git a/test/Conversion/c2llvm2mlir/global_mem_address/kernel.mlir b/test/Conversion/c2llvm2mlir/global_mem_address/kernel.mlir index bf4e3be1..c87c5a04 100644 --- a/test/Conversion/c2llvm2mlir/global_mem_address/kernel.mlir +++ b/test/Conversion/c2llvm2mlir/global_mem_address/kernel.mlir @@ -57,9 +57,9 @@ // DATAFLOW-NEXT: %29 = neura.grant_predicate %22, %24 : !neura.data, !neura.data -> !neura.data // DATAFLOW-NEXT: %30 = neura.grant_predicate %21, %24 : !neura.data, !neura.data -> !neura.data // DATAFLOW-NEXT: %31 = neura.reserve : !neura.data -// DATAFLOW-NEXT: %32 = neura.phi_start %30, %31 : !neura.data, !neura.data -> !neura.data +// DATAFLOW-NEXT: %32 = "neura.phi"(%31, %30) : (!neura.data, !neura.data) -> !neura.data // DATAFLOW-NEXT: %33 = neura.reserve : !neura.data -// DATAFLOW-NEXT: %34 = neura.phi_start %29, %33 : !neura.data, !neura.data -> !neura.data +// DATAFLOW-NEXT: %34 = "neura.phi"(%33, %29) : (!neura.data, !neura.data) -> !neura.data // DATAFLOW-NEXT: %35 = "neura.constant"() <{value = 0 : i32}> : () -> !neura.data // DATAFLOW-NEXT: %36 = "neura.gep"(%35, %34) <{operandSegmentSizes = array}> {lhs_value = @run_gemv_relu_gemv.y} : (!neura.data, !neura.data) -> !neura.data // DATAFLOW-NEXT: %37 = "neura.load"(%36) : (!neura.data) -> !neura.data diff --git a/test/controflow_fuse/non_perfect_nested/non_perfect_nested.mlir b/test/controflow_fuse/non_perfect_nested/non_perfect_nested.mlir deleted file mode 100644 index 95765b42..00000000 --- a/test/controflow_fuse/non_perfect_nested/non_perfect_nested.mlir +++ /dev/null @@ -1,406 +0,0 @@ -// RUN: mlir-opt %s --lower-affine --convert-scf-to-cf --convert-cf-to-llvm -o %t-llvm.mlir -// RUN: mlir-neura-opt %t-llvm.mlir \ -// RUN: --assign-accelerator \ -// RUN: --lower-arith-to-neura \ -// RUN: --lower-memref-to-neura \ -// RUN: --lower-builtin-to-neura \ -// RUN: --lower-llvm-to-neura \ -// RUN: | FileCheck %s - -// RUN: mlir-neura-opt %t-llvm.mlir \ -// RUN: --assign-accelerator \ -// RUN: --lower-arith-to-neura \ -// RUN: --lower-memref-to-neura \ -// RUN: --lower-builtin-to-neura \ -// RUN: --lower-llvm-to-neura \ -// RUN: --canonicalize-cast \ -// RUN: --promote-input-arg-to-const \ -// RUN: --canonicalize-return \ -// RUN: --canonicalize-live-in \ -// RUN: --leverage-predicated-value \ -// RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s --check-prefix=CTRL2DATA - -module attributes {} { - func.func @_Z29non_perfect_extra_computationPA128_iS0_(%arg0: memref, %arg1: memref) attributes {llvm.linkage = #llvm.linkage} { - %c100_i32 = arith.constant 100 : i32 - %c3_i32 = arith.constant 3 : i32 - %c2_i32 = arith.constant 2 : i32 - %c1000_i32 = arith.constant 1000 : i32 - %c-1000_i32 = arith.constant -1000 : i32 - %c128_i32 = arith.constant 128 : i32 - %c0_i32 = arith.constant 0 : i32 - affine.for %arg2 = 0 to 128 { - %0 = arith.index_cast %arg2 : index to i32 - %1 = arith.remsi %0, %c2_i32 : i32 - %2 = arith.cmpi eq, %1, %c0_i32 : i32 - %3 = arith.select %2, %c2_i32, %c3_i32 : i32 - %4:3 = affine.for %arg3 = 0 to 128 iter_args(%arg4 = %c1000_i32, %arg5 = %c-1000_i32, %arg6 = %c0_i32) -> (i32, i32, i32) { - %9 = affine.load %arg0[%arg2, %arg3] : memref - %10 = arith.muli %9, %3 : i32 - affine.store %10, %arg1[%arg2, %arg3] : memref - %11 = affine.load %arg0[%arg2, %arg3] : memref - %12 = arith.addi %arg6, %11 : i32 - %13 = arith.cmpi sgt, %11, %arg5 : i32 - %14 = arith.select %13, %11, %arg5 : i32 - %15 = arith.cmpi slt, %11, %arg4 : i32 - %16 = arith.select %15, %11, %arg4 : i32 - affine.yield %16, %14, %12 : i32, i32, i32 - } - %5 = arith.divsi %4#2, %c128_i32 : i32 - %6 = arith.subi %4#1, %4#0 : i32 - %7 = arith.cmpi sgt, %6, %c0_i32 : i32 - %8 = scf.if %7 -> (i32) { - %9 = arith.muli %5, %c100_i32 : i32 - %10 = arith.divsi %9, %6 : i32 - scf.yield %10 : i32 - } else { - scf.yield %5 : i32 - } - affine.store %5, %arg1[%arg2, 0] : memref - affine.store %4#1, %arg1[%arg2, 1] : memref - affine.store %4#0, %arg1[%arg2, 2] : memref - affine.store %8, %arg1[%arg2, 3] : memref - affine.store %6, %arg1[%arg2, 4] : memref - } - return - } -} - -// CHECK: func.func @_Z29non_perfect_extra_computationPA128_iS0_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", llvm.linkage = #llvm.linkage} { -// CHECK-NEXT: %0 = "neura.constant"() <{value = 4 : index}> : () -> index -// CHECK-NEXT: %1 = "neura.constant"() <{value = 3 : index}> : () -> index -// CHECK-NEXT: %2 = "neura.constant"() <{value = 2 : index}> : () -> index -// CHECK-NEXT: %3 = "neura.constant"() <{value = 1 : index}> : () -> index -// CHECK-NEXT: %4 = "neura.constant"() <{value = 128 : index}> : () -> index -// CHECK-NEXT: %5 = "neura.constant"() <{value = 100 : i32}> : () -> i32 -// CHECK-NEXT: %6 = "neura.constant"() <{value = 3 : i32}> : () -> i32 -// CHECK-NEXT: %7 = "neura.constant"() <{value = 2 : i32}> : () -> i32 -// CHECK-NEXT: %8 = "neura.constant"() <{value = 1000 : i32}> : () -> i32 -// CHECK-NEXT: %9 = "neura.constant"() <{value = -1000 : i32}> : () -> i32 -// CHECK-NEXT: %10 = "neura.constant"() <{value = 128 : i32}> : () -> i32 -// CHECK-NEXT: %11 = "neura.constant"() <{value = 0 : i32}> : () -> i32 -// CHECK-NEXT: %12 = "neura.constant"() <{value = 0 : index}> : () -> index -// CHECK-NEXT: %13 = "neura.cast"(%12) <{cast_type = "index_to_int"}> : (index) -> i64 -// CHECK-NEXT: neura.br %13 : i64 to ^bb1 -// CHECK-NEXT: ^bb1(%14: i64): // 2 preds: ^bb0, ^bb9 -// CHECK-NEXT: %15 = "neura.cast"(%14) <{cast_type = "int_to_index"}> : (i64) -> index -// CHECK-NEXT: %16 = "neura.icmp"(%15, %4) <{cmpType = "slt"}> : (index, index) -> i1 -// CHECK-NEXT: neura.cond_br %16 : i1 then to ^bb2 else to ^bb10 -// CHECK-NEXT: ^bb2: // pred: ^bb1 -// CHECK-NEXT: %17 = "neura.cast"(%15) <{cast_type = "index_to_int"}> : (index) -> i32 -// CHECK-NEXT: %18 = "neura.div"(%17, %7) : (i32, i32) -> i32 -// CHECK-NEXT: %19 = "neura.mul"(%7, %18) : (i32, i32) -> i32 -// CHECK-NEXT: %20 = "neura.sub"(%17, %19) : (i32, i32) -> i32 -// CHECK-NEXT: %21 = "neura.icmp"(%20, %11) <{cmpType = "eq"}> : (i32, i32) -> i1 -// CHECK-NEXT: %22 = "neura.sel"(%21, %7, %6) : (i1, i32, i32) -> i32 -// CHECK-NEXT: %23 = "neura.cast"(%12) <{cast_type = "index_to_int"}> : (index) -> i64 -// CHECK-NEXT: neura.br %23, %8, %9, %11 : i64, i32, i32, i32 to ^bb3 -// CHECK-NEXT: ^bb3(%24: i64, %25: i32, %26: i32, %27: i32): // 2 preds: ^bb2, ^bb4 -// CHECK-NEXT: %28 = "neura.cast"(%24) <{cast_type = "int_to_index"}> : (i64) -> index -// CHECK-NEXT: %29 = "neura.icmp"(%28, %4) <{cmpType = "slt"}> : (index, index) -> i1 -// CHECK-NEXT: neura.cond_br %29 : i1 then to ^bb4 else to ^bb5 -// CHECK-NEXT: ^bb4: // pred: ^bb3 -// CHECK-NEXT: %30 = neura.load_indexed %arg0[%15, %28 : index, index] memref : i32 -// CHECK-NEXT: %31 = "neura.mul"(%30, %22) : (i32, i32) -> i32 -// CHECK-NEXT: neura.store_indexed %31 to %arg1[%15, %28 : index, index] memref : i32 -// CHECK-NEXT: %32 = neura.load_indexed %arg0[%15, %28 : index, index] memref : i32 -// CHECK-NEXT: %33 = "neura.add"(%27, %32) : (i32, i32) -> i32 -// CHECK-NEXT: %34 = "neura.icmp"(%32, %26) <{cmpType = "sgt"}> : (i32, i32) -> i1 -// CHECK-NEXT: %35 = "neura.sel"(%34, %32, %26) : (i1, i32, i32) -> i32 -// CHECK-NEXT: %36 = "neura.icmp"(%32, %25) <{cmpType = "slt"}> : (i32, i32) -> i1 -// CHECK-NEXT: %37 = "neura.sel"(%36, %32, %25) : (i1, i32, i32) -> i32 -// CHECK-NEXT: %38 = "neura.add"(%28, %3) : (index, index) -> index -// CHECK-NEXT: %39 = "neura.cast"(%38) <{cast_type = "index_to_int"}> : (index) -> i64 -// CHECK-NEXT: neura.br %39, %37, %35, %33 : i64, i32, i32, i32 to ^bb3 -// CHECK-NEXT: ^bb5: // pred: ^bb3 -// CHECK-NEXT: %40 = "neura.div"(%27, %10) : (i32, i32) -> i32 -// CHECK-NEXT: %41 = "neura.sub"(%26, %25) : (i32, i32) -> i32 -// CHECK-NEXT: %42 = "neura.icmp"(%41, %11) <{cmpType = "sgt"}> : (i32, i32) -> i1 -// CHECK-NEXT: neura.cond_br %42 : i1 then to ^bb6 else to ^bb7 -// CHECK-NEXT: ^bb6: // pred: ^bb5 -// CHECK-NEXT: %43 = "neura.mul"(%40, %5) : (i32, i32) -> i32 -// CHECK-NEXT: %44 = "neura.div"(%43, %41) : (i32, i32) -> i32 -// CHECK-NEXT: neura.br %44 : i32 to ^bb8 -// CHECK-NEXT: ^bb7: // pred: ^bb5 -// CHECK-NEXT: neura.br %40 : i32 to ^bb8 -// CHECK-NEXT: ^bb8(%45: i32): // 2 preds: ^bb6, ^bb7 -// CHECK-NEXT: neura.br to ^bb9 -// CHECK-NEXT: ^bb9: // pred: ^bb8 -// CHECK-NEXT: neura.store_indexed %40 to %arg1[%15, %12 : index, index] memref : i32 -// CHECK-NEXT: neura.store_indexed %26 to %arg1[%15, %3 : index, index] memref : i32 -// CHECK-NEXT: neura.store_indexed %25 to %arg1[%15, %2 : index, index] memref : i32 -// CHECK-NEXT: neura.store_indexed %45 to %arg1[%15, %1 : index, index] memref : i32 -// CHECK-NEXT: neura.store_indexed %41 to %arg1[%15, %0 : index, index] memref : i32 -// CHECK-NEXT: %46 = "neura.add"(%15, %3) : (index, index) -> index -// CHECK-NEXT: %47 = "neura.cast"(%46) <{cast_type = "index_to_int"}> : (index) -> i64 -// CHECK-NEXT: neura.br %47 : i64 to ^bb1 -// CHECK-NEXT: ^bb10: // pred: ^bb1 -// CHECK-NEXT: "neura.return"() : () -> () -// CHECK-NEXT: } - - -// CTRL2DATA: func.func @_Z29non_perfect_extra_computationPA128_iS0_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { -// CTRL2DATA-NEXT: %0 = "neura.constant"() <{value = "%arg0"}> : () -> !neura.data, i1> -// CTRL2DATA-NEXT: %1 = "neura.grant_once"(%0) : (!neura.data, i1>) -> !neura.data, i1> -// CTRL2DATA-NEXT: %2 = "neura.constant"() <{value = "%arg1"}> : () -> !neura.data, i1> -// CTRL2DATA-NEXT: %3 = "neura.grant_once"(%2) : (!neura.data, i1>) -> !neura.data, i1> -// CTRL2DATA-NEXT: %4 = "neura.constant"() <{value = 4 : i64}> : () -> !neura.data -// CTRL2DATA-NEXT: %5 = "neura.grant_once"(%4) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %6 = "neura.constant"() <{value = 3 : i64}> : () -> !neura.data -// CTRL2DATA-NEXT: %7 = "neura.grant_once"(%6) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %8 = "neura.constant"() <{value = 2 : i64}> : () -> !neura.data -// CTRL2DATA-NEXT: %9 = "neura.grant_once"(%8) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %10 = "neura.constant"() <{value = 1 : i64}> : () -> !neura.data -// CTRL2DATA-NEXT: %11 = "neura.grant_once"(%10) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %12 = "neura.constant"() <{value = 128 : i64}> : () -> !neura.data -// CTRL2DATA-NEXT: %13 = "neura.grant_once"(%12) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %14 = "neura.constant"() <{value = 100 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %15 = "neura.grant_once"(%14) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %16 = "neura.constant"() <{value = 3 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %17 = "neura.grant_once"(%16) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %18 = "neura.constant"() <{value = 2 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %19 = "neura.grant_once"(%18) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %20 = "neura.constant"() <{value = 1000 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %21 = "neura.grant_once"(%20) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %22 = "neura.constant"() <{value = -1000 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %23 = "neura.grant_once"(%22) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %24 = "neura.constant"() <{value = 128 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %25 = "neura.grant_once"(%24) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %26 = "neura.constant"() <{value = 0 : i32}> : () -> !neura.data -// CTRL2DATA-NEXT: %27 = "neura.grant_once"(%26) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %28 = "neura.constant"() <{value = 0 : i64}> : () -> !neura.data -// CTRL2DATA-NEXT: %29 = "neura.grant_once"(%28) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %30 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %31 = neura.phi_start %5, %30 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %32 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %33 = neura.phi_start %7, %32 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %34 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %35 = neura.phi_start %9, %34 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %36 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %37 = neura.phi_start %15, %36 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %38 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %39 = neura.phi_start %25, %38 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %40 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %41 = neura.phi_start %11, %40 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %42 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %43 = neura.phi_start %3, %42 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> -// CTRL2DATA-NEXT: %44 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %45 = neura.phi_start %1, %44 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> -// CTRL2DATA-NEXT: %46 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %47 = neura.phi_start %23, %46 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %48 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %49 = neura.phi_start %21, %48 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %50 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %51 = neura.phi_start %29, %50 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %52 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %53 = neura.phi_start %17, %52 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %54 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %55 = neura.phi_start %27, %54 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %56 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %57 = neura.phi_start %19, %56 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %58 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %59 = neura.phi_start %13, %58 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %60 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %61 = neura.phi_start %29, %60 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %62 = "neura.icmp"(%61, %59) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %63 = "neura.not"(%62) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %64 = neura.grant_predicate %61, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %65 = neura.grant_predicate %57, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %66 = neura.grant_predicate %55, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %67 = neura.grant_predicate %53, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %68 = neura.grant_predicate %51, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %69 = neura.grant_predicate %49, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %70 = neura.grant_predicate %47, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %71 = neura.grant_predicate %59, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %72 = neura.grant_predicate %45, %62 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %73 = neura.grant_predicate %43, %62 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %74 = neura.grant_predicate %41, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %75 = neura.grant_predicate %39, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %76 = neura.grant_predicate %37, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %77 = neura.grant_predicate %35, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %78 = neura.grant_predicate %33, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %79 = neura.grant_predicate %31, %62 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %80 = neura.grant_predicate %63, %63 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: neura.return_void %80 : !neura.data -// CTRL2DATA-NEXT: %81 = "neura.cast"(%64) <{cast_type = "i64_to_i32"}> : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %82 = "neura.div"(%81, %65) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %83 = "neura.mul"(%65, %82) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %84 = "neura.sub"(%81, %83) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %85 = "neura.icmp"(%84, %66) <{cmpType = "eq"}> : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %86 = "neura.sel"(%85, %65, %67) : (!neura.data, !neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %87 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %88 = neura.phi_start %70, %87 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %89 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %90 = neura.phi_start %69, %89 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %91 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %92 = neura.phi_start %67, %91 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %93 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %94 = neura.phi_start %65, %93 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %95 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %96 = neura.phi_start %79, %95 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %97 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %98 = neura.phi_start %78, %97 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %99 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %100 = neura.phi_start %77, %99 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %101 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %102 = neura.phi_start %68, %101 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %103 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %104 = neura.phi_start %76, %103 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %105 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %106 = neura.phi_start %66, %105 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %107 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %108 = neura.phi_start %75, %107 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %109 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %110 = neura.phi_start %74, %109 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %111 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %112 = neura.phi_start %73, %111 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> -// CTRL2DATA-NEXT: %113 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %114 = neura.phi_start %86, %113 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %115 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %116 = neura.phi_start %64, %115 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %117 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %118 = neura.phi_start %72, %117 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> -// CTRL2DATA-NEXT: %119 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %120 = neura.phi_start %71, %119 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %121 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %122 = neura.phi_start %66, %121 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %123 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %124 = neura.phi_start %70, %123 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %125 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %126 = neura.phi_start %69, %125 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %127 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %128 = neura.phi_start %68, %127 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %129 = "neura.icmp"(%128, %120) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %130 = neura.grant_predicate %118, %129 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %131 = neura.grant_predicate %116, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %132 = neura.grant_predicate %128, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %133 = neura.grant_predicate %114, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %134 = neura.grant_predicate %112, %129 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %135 = neura.grant_predicate %122, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %136 = neura.grant_predicate %124, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %137 = neura.grant_predicate %126, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %138 = neura.grant_predicate %110, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %139 = neura.grant_predicate %120, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %140 = neura.grant_predicate %108, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %141 = neura.grant_predicate %106, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %142 = neura.grant_predicate %104, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %143 = neura.grant_predicate %102, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %144 = neura.grant_predicate %100, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %145 = neura.grant_predicate %98, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %146 = neura.grant_predicate %96, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %147 = neura.grant_predicate %94, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %148 = neura.grant_predicate %92, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %149 = neura.grant_predicate %90, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %150 = neura.grant_predicate %88, %129 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %151 = "neura.not"(%129) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %152 = neura.grant_predicate %122, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %153 = neura.grant_predicate %108, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %154 = neura.grant_predicate %124, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %155 = neura.grant_predicate %126, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %156 = neura.grant_predicate %106, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %157 = neura.grant_predicate %104, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %158 = neura.grant_predicate %112, %151 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %159 = neura.grant_predicate %116, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %160 = neura.grant_predicate %102, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %161 = neura.grant_predicate %110, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %162 = neura.grant_predicate %100, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %163 = neura.grant_predicate %98, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %164 = neura.grant_predicate %96, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %165 = neura.grant_predicate %120, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %166 = neura.grant_predicate %94, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %167 = neura.grant_predicate %92, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %168 = neura.grant_predicate %90, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %169 = neura.grant_predicate %88, %151 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %170 = neura.grant_predicate %118, %151 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %171 = "neura.div"(%152, %153) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %172 = "neura.sub"(%154, %155) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %173 = "neura.icmp"(%172, %156) <{cmpType = "sgt"}> : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %174 = neura.grant_predicate %171, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %175 = neura.grant_predicate %157, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %176 = neura.grant_predicate %172, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %177 = neura.grant_predicate %158, %173 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %178 = neura.grant_predicate %159, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %179 = neura.grant_predicate %160, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %180 = neura.grant_predicate %154, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %181 = neura.grant_predicate %161, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %182 = neura.grant_predicate %155, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %183 = neura.grant_predicate %162, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %184 = neura.grant_predicate %163, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %185 = neura.grant_predicate %164, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %186 = neura.grant_predicate %165, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %187 = neura.grant_predicate %166, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %188 = neura.grant_predicate %156, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %189 = neura.grant_predicate %167, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %190 = neura.grant_predicate %168, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %191 = neura.grant_predicate %169, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %192 = neura.grant_predicate %170, %173 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %193 = neura.grant_predicate %153, %173 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %194 = "neura.not"(%173) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %195 = neura.grant_predicate %171, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %196 = neura.grant_predicate %158, %194 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %197 = neura.grant_predicate %159, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %198 = neura.grant_predicate %160, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %199 = neura.grant_predicate %154, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %200 = neura.grant_predicate %161, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %201 = neura.grant_predicate %155, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %202 = neura.grant_predicate %162, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %203 = neura.grant_predicate %163, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %204 = neura.grant_predicate %172, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %205 = neura.grant_predicate %164, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %206 = neura.grant_predicate %165, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %207 = neura.grant_predicate %166, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %208 = neura.grant_predicate %156, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %209 = neura.grant_predicate %167, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %210 = neura.grant_predicate %168, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %211 = neura.grant_predicate %169, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %212 = neura.grant_predicate %170, %194 : !neura.data, i1>, !neura.data -> !neura.data, i1> -// CTRL2DATA-NEXT: %213 = neura.grant_predicate %153, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %214 = neura.grant_predicate %157, %194 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %215 = "neura.mul"(%174, %175) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %216 = "neura.div"(%215, %176) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %217 = "neura.phi"(%175, %214) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %218 = "neura.phi"(%193, %213) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %219 = "neura.phi"(%192, %212) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> -// CTRL2DATA-NEXT: %220 = "neura.phi"(%191, %211) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %221 = "neura.phi"(%190, %210) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %222 = "neura.phi"(%189, %209) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %223 = "neura.phi"(%188, %208) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %224 = "neura.phi"(%187, %207) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %225 = "neura.phi"(%186, %206) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %226 = "neura.phi"(%185, %205) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %227 = "neura.phi"(%176, %204) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %228 = "neura.phi"(%184, %203) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %229 = "neura.phi"(%183, %202) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %230 = "neura.phi"(%182, %201) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %231 = "neura.phi"(%181, %200) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %232 = "neura.phi"(%180, %199) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %233 = "neura.phi"(%179, %198) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %234 = "neura.phi"(%178, %197) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %235 = "neura.phi"(%177, %196) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> -// CTRL2DATA-NEXT: %236 = "neura.phi"(%174, %195) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: %237 = "neura.phi"(%216, %195) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: neura.store_indexed %236 to %235[%234, %233 : !neura.data, !neura.data] !neura.data, i1> : !neura.data -// CTRL2DATA-NEXT: neura.store_indexed %232 to %235[%234, %231 : !neura.data, !neura.data] !neura.data, i1> : !neura.data -// CTRL2DATA-NEXT: neura.store_indexed %230 to %235[%234, %229 : !neura.data, !neura.data] !neura.data, i1> : !neura.data -// CTRL2DATA-NEXT: neura.store_indexed %237 to %235[%234, %228 : !neura.data, !neura.data] !neura.data, i1> : !neura.data -// CTRL2DATA-NEXT: neura.store_indexed %227 to %235[%234, %226 : !neura.data, !neura.data] !neura.data, i1> : !neura.data -// CTRL2DATA-NEXT: %238 = "neura.add"(%234, %231) : (!neura.data, !neura.data) -> !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %238 -> %60 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %225 -> %58 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %224 -> %56 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %223 -> %54 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %222 -> %52 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %233 -> %50 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %221 -> %48 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %220 -> %46 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %219 -> %44 : !neura.data, i1> !neura.data, i1> -// CTRL2DATA-NEXT: neura.ctrl_mov %235 -> %42 : !neura.data, i1> !neura.data, i1> -// CTRL2DATA-NEXT: neura.ctrl_mov %231 -> %40 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %218 -> %38 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %217 -> %36 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %229 -> %34 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %228 -> %32 : !neura.data !neura.data -// CTRL2DATA-NEXT: neura.ctrl_mov %226 -> %30 : !neura.data !neura.data -// CTRL2DATA-NEXT: %239 = neura.load_indexed %130[%131, %132 : !neura.data, !neura.data] !neura.data, i1> : !neura.data -// CTRL2DATA-NEXT: %240 = "neura.mul"(%239, %133) : (!neura.data, !neura.data) -> !neura.data diff --git a/test/controflow_fuse/complex_nested/complex_nested.cpp b/test/controlflow_fuse/complex_nested/complex_nested.cpp similarity index 100% rename from test/controflow_fuse/complex_nested/complex_nested.cpp rename to test/controlflow_fuse/complex_nested/complex_nested.cpp diff --git a/test/controflow_fuse/complex_nested/complex_nested.mlir b/test/controlflow_fuse/complex_nested/complex_nested.mlir similarity index 84% rename from test/controflow_fuse/complex_nested/complex_nested.mlir rename to test/controlflow_fuse/complex_nested/complex_nested.mlir index 77a4eb2f..32291dd2 100644 --- a/test/controflow_fuse/complex_nested/complex_nested.mlir +++ b/test/controlflow_fuse/complex_nested/complex_nested.mlir @@ -19,7 +19,8 @@ // RUN: --canonicalize-live-in \ // RUN: --leverage-predicated-value \ // RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s --check-prefix=CTRL2DATA +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA module attributes {} { func.func @_Z14complex_nestedPA32_A32_iPS_(%arg0: memref, %arg1: memref) attributes {llvm.linkage = #llvm.linkage} { @@ -177,7 +178,7 @@ module attributes {} { // CHECK-NEXT: "neura.return"() : () -> () // CHECK-NEXT: } -// CTRL2DATA: func.func @_Z14complex_nestedPA32_A32_iPS_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { +// CTRL2DATA: func.func @_Z14complex_nestedPA32_A32_iPS_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { // CTRL2DATA-NEXT: %0 = "neura.constant"() <{value = "%arg0"}> : () -> !neura.data, i1> // CTRL2DATA-NEXT: %1 = "neura.grant_once"(%0) : (!neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %2 = "neura.constant"() <{value = "%arg1"}> : () -> !neura.data, i1> @@ -231,27 +232,27 @@ module attributes {} { // CTRL2DATA-NEXT: %50 = neura.grant_predicate %39, %39 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: neura.return_void %50 : !neura.data // CTRL2DATA-NEXT: %51 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %52 = neura.phi_start %49, %51 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %52 = "neura.phi"(%51, %49) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %53 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %54 = neura.phi_start %48, %53 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %54 = "neura.phi"(%53, %48) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %55 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %56 = neura.phi_start %47, %55 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %56 = "neura.phi"(%55, %47) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %57 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %58 = neura.phi_start %46, %57 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %58 = "neura.phi"(%57, %46) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %59 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %60 = neura.phi_start %45, %59 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %60 = "neura.phi"(%59, %45) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %61 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %62 = neura.phi_start %40, %61 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %62 = "neura.phi"(%61, %40) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %63 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %64 = neura.phi_start %44, %63 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %64 = "neura.phi"(%63, %44) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %65 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %66 = neura.phi_start %43, %65 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %66 = "neura.phi"(%65, %43) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %67 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %68 = neura.phi_start %42, %67 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %68 = "neura.phi"(%67, %42) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %69 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %70 = neura.phi_start %41, %69 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %70 = "neura.phi"(%69, %41) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %71 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %72 = neura.phi_start %40, %71 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %72 = "neura.phi"(%71, %40) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %73 = "neura.icmp"(%72, %70) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %74 = neura.grant_predicate %68, %73 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %75 = neura.grant_predicate %66, %73 : !neura.data, i1>, !neura.data -> !neura.data, i1> @@ -276,29 +277,29 @@ module attributes {} { // CTRL2DATA-NEXT: %94 = neura.grant_predicate %60, %85 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %95 = neura.grant_predicate %52, %85 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %96 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %97 = neura.phi_start %87, %96 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %97 = "neura.phi"(%96, %87) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %98 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %99 = neura.phi_start %95, %98 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %99 = "neura.phi"(%98, %95) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %100 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %101 = neura.phi_start %94, %100 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %101 = "neura.phi"(%100, %94) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %102 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %103 = neura.phi_start %93, %102 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %103 = "neura.phi"(%102, %93) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %104 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %105 = neura.phi_start %86, %104 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %105 = "neura.phi"(%104, %86) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %106 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %107 = neura.phi_start %92, %106 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %107 = "neura.phi"(%106, %92) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %108 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %109 = neura.phi_start %91, %108 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %109 = "neura.phi"(%108, %91) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %110 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %111 = neura.phi_start %90, %110 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %111 = "neura.phi"(%110, %90) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %112 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %113 = neura.phi_start %89, %112 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %113 = "neura.phi"(%112, %89) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %114 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %115 = neura.phi_start %88, %114 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %115 = "neura.phi"(%114, %88) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %116 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %117 = neura.phi_start %87, %116 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %117 = "neura.phi"(%116, %87) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %118 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %119 = neura.phi_start %86, %118 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %119 = "neura.phi"(%118, %86) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %120 = "neura.icmp"(%119, %115) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %121 = neura.grant_predicate %113, %120 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %122 = neura.grant_predicate %111, %120 : !neura.data, !neura.data -> !neura.data @@ -326,29 +327,29 @@ module attributes {} { // CTRL2DATA-NEXT: %144 = neura.grant_predicate %97, %133 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %145 = "neura.div"(%134, %135) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %146 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %147 = neura.phi_start %135, %146 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %147 = "neura.phi"(%146, %135) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %148 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %149 = neura.phi_start %144, %148 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %149 = "neura.phi"(%148, %144) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %150 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %151 = neura.phi_start %145, %150 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %151 = "neura.phi"(%150, %145) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %152 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %153 = neura.phi_start %143, %152 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %153 = "neura.phi"(%152, %143) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %154 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %155 = neura.phi_start %142, %154 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %155 = "neura.phi"(%154, %142) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %156 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %157 = neura.phi_start %141, %156 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %157 = "neura.phi"(%156, %141) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %158 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %159 = neura.phi_start %140, %158 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %159 = "neura.phi"(%158, %140) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %160 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %161 = neura.phi_start %139, %160 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %161 = "neura.phi"(%160, %139) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %162 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %163 = neura.phi_start %138, %162 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %163 = "neura.phi"(%162, %138) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %164 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %165 = neura.phi_start %136, %164 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %165 = "neura.phi"(%164, %136) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %166 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %167 = neura.phi_start %137, %166 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %167 = "neura.phi"(%166, %137) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %168 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %169 = neura.phi_start %136, %168 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %169 = "neura.phi"(%168, %136) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %170 = "neura.icmp"(%169, %167) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %171 = neura.grant_predicate %165, %170 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %172 = neura.grant_predicate %163, %170 : !neura.data, !neura.data -> !neura.data @@ -375,29 +376,29 @@ module attributes {} { // CTRL2DATA-NEXT: %193 = neura.grant_predicate %163, %183 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %194 = neura.grant_predicate %153, %183 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %195 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %196 = neura.phi_start %194, %195 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %196 = "neura.phi"(%195, %194) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %197 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %198 = neura.phi_start %193, %197 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %198 = "neura.phi"(%197, %193) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %199 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %200 = neura.phi_start %192, %199 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %200 = "neura.phi"(%199, %192) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %201 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %202 = neura.phi_start %191, %201 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %202 = "neura.phi"(%201, %191) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %203 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %204 = neura.phi_start %190, %203 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %204 = "neura.phi"(%203, %190) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %205 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %206 = neura.phi_start %184, %205 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %206 = "neura.phi"(%205, %184) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %207 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %208 = neura.phi_start %189, %207 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %208 = "neura.phi"(%207, %189) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %209 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %210 = neura.phi_start %188, %209 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %210 = "neura.phi"(%209, %188) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %211 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %212 = neura.phi_start %187, %211 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %212 = "neura.phi"(%211, %187) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %213 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %214 = neura.phi_start %186, %213 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %214 = "neura.phi"(%213, %186) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %215 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %216 = neura.phi_start %185, %215 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %216 = "neura.phi"(%215, %185) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %217 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %218 = neura.phi_start %184, %217 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %218 = "neura.phi"(%217, %184) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %219 = "neura.icmp"(%218, %216) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %220 = neura.grant_predicate %214, %219 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %221 = neura.grant_predicate %212, %219 : !neura.data, !neura.data -> !neura.data @@ -447,5 +448,4 @@ module attributes {} { // CTRL2DATA-NEXT: %255 = neura.grant_predicate %229, %245 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %256 = neura.grant_predicate %230, %245 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %257 = neura.grant_predicate %231, %245 : !neura.data, !neura.data -> !neura.data -// CTRL2DATA-NEXT: %258 = "neura.not"(%245) : (!neura.data) -> !neura.data -// CTRL2DATA-NEXT: %259 = neura.grant_predicate %222, %258 : !neura.data) -> !neura.data \ No newline at end of file diff --git a/test/controflow_fuse/non_perfect_nested/non_perfect_nested.cpp b/test/controlflow_fuse/non_perfect_nested/non_perfect_nested.cpp similarity index 100% rename from test/controflow_fuse/non_perfect_nested/non_perfect_nested.cpp rename to test/controlflow_fuse/non_perfect_nested/non_perfect_nested.cpp diff --git a/test/controlflow_fuse/non_perfect_nested/non_perfect_nested.mlir b/test/controlflow_fuse/non_perfect_nested/non_perfect_nested.mlir new file mode 100644 index 00000000..5962ae6c --- /dev/null +++ b/test/controlflow_fuse/non_perfect_nested/non_perfect_nested.mlir @@ -0,0 +1,438 @@ +// RUN: mlir-opt %s --lower-affine --convert-scf-to-cf --convert-cf-to-llvm -o %t-llvm.mlir +// RUN: mlir-neura-opt %t-llvm.mlir \ +// RUN: --assign-accelerator \ +// RUN: --lower-arith-to-neura \ +// RUN: --lower-memref-to-neura \ +// RUN: --lower-builtin-to-neura \ +// RUN: --lower-llvm-to-neura \ +// RUN: | FileCheck %s + +// RUN: mlir-neura-opt %t-llvm.mlir \ +// RUN: --assign-accelerator \ +// RUN: --lower-arith-to-neura \ +// RUN: --lower-memref-to-neura \ +// RUN: --lower-builtin-to-neura \ +// RUN: --lower-llvm-to-neura \ +// RUN: --canonicalize-cast \ +// RUN: --promote-input-arg-to-const \ +// RUN: --canonicalize-return \ +// RUN: --canonicalize-live-in \ +// RUN: --leverage-predicated-value \ +// RUN: --transform-ctrl-to-data-flow \ +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA + +module attributes {} { + func.func @_Z29non_perfect_extra_computationPA128_iS0_(%arg0: memref, %arg1: memref) attributes {llvm.linkage = #llvm.linkage} { + %c100_i32 = arith.constant 100 : i32 + %c3_i32 = arith.constant 3 : i32 + %c2_i32 = arith.constant 2 : i32 + %c1000_i32 = arith.constant 1000 : i32 + %c-1000_i32 = arith.constant -1000 : i32 + %c128_i32 = arith.constant 128 : i32 + %c0_i32 = arith.constant 0 : i32 + affine.for %arg2 = 0 to 128 { + %0 = arith.index_cast %arg2 : index to i32 + %1 = arith.remsi %0, %c2_i32 : i32 + %2 = arith.cmpi eq, %1, %c0_i32 : i32 + %3 = arith.select %2, %c2_i32, %c3_i32 : i32 + %4:3 = affine.for %arg3 = 0 to 128 iter_args(%arg4 = %c1000_i32, %arg5 = %c-1000_i32, %arg6 = %c0_i32) -> (i32, i32, i32) { + %9 = affine.load %arg0[%arg2, %arg3] : memref + %10 = arith.muli %9, %3 : i32 + affine.store %10, %arg1[%arg2, %arg3] : memref + %11 = affine.load %arg0[%arg2, %arg3] : memref + %12 = arith.addi %arg6, %11 : i32 + %13 = arith.cmpi sgt, %11, %arg5 : i32 + %14 = arith.select %13, %11, %arg5 : i32 + %15 = arith.cmpi slt, %11, %arg4 : i32 + %16 = arith.select %15, %11, %arg4 : i32 + affine.yield %16, %14, %12 : i32, i32, i32 + } + %5 = arith.divsi %4#2, %c128_i32 : i32 + %6 = arith.subi %4#1, %4#0 : i32 + %7 = arith.cmpi sgt, %6, %c0_i32 : i32 + %8 = scf.if %7 -> (i32) { + %9 = arith.muli %5, %c100_i32 : i32 + %10 = arith.divsi %9, %6 : i32 + scf.yield %10 : i32 + } else { + scf.yield %5 : i32 + } + affine.store %5, %arg1[%arg2, 0] : memref + affine.store %4#1, %arg1[%arg2, 1] : memref + affine.store %4#0, %arg1[%arg2, 2] : memref + affine.store %8, %arg1[%arg2, 3] : memref + affine.store %6, %arg1[%arg2, 4] : memref + } + return + } +} + +// CHECK: func.func @_Z29non_perfect_extra_computationPA128_iS0_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", llvm.linkage = #llvm.linkage} { +// CHECK-NEXT: %0 = "neura.constant"() <{value = 4 : index}> : () -> index +// CHECK-NEXT: %1 = "neura.constant"() <{value = 3 : index}> : () -> index +// CHECK-NEXT: %2 = "neura.constant"() <{value = 2 : index}> : () -> index +// CHECK-NEXT: %3 = "neura.constant"() <{value = 1 : index}> : () -> index +// CHECK-NEXT: %4 = "neura.constant"() <{value = 128 : index}> : () -> index +// CHECK-NEXT: %5 = "neura.constant"() <{value = 100 : i32}> : () -> i32 +// CHECK-NEXT: %6 = "neura.constant"() <{value = 3 : i32}> : () -> i32 +// CHECK-NEXT: %7 = "neura.constant"() <{value = 2 : i32}> : () -> i32 +// CHECK-NEXT: %8 = "neura.constant"() <{value = 1000 : i32}> : () -> i32 +// CHECK-NEXT: %9 = "neura.constant"() <{value = -1000 : i32}> : () -> i32 +// CHECK-NEXT: %10 = "neura.constant"() <{value = 128 : i32}> : () -> i32 +// CHECK-NEXT: %11 = "neura.constant"() <{value = 0 : i32}> : () -> i32 +// CHECK-NEXT: %12 = "neura.constant"() <{value = 0 : index}> : () -> index +// CHECK-NEXT: %13 = "neura.cast"(%12) <{cast_type = "index_to_int"}> : (index) -> i64 +// CHECK-NEXT: neura.br %13 : i64 to ^bb1 +// CHECK-NEXT: ^bb1(%14: i64): // 2 preds: ^bb0, ^bb9 +// CHECK-NEXT: %15 = "neura.cast"(%14) <{cast_type = "int_to_index"}> : (i64) -> index +// CHECK-NEXT: %16 = "neura.icmp"(%15, %4) <{cmpType = "slt"}> : (index, index) -> i1 +// CHECK-NEXT: neura.cond_br %16 : i1 then to ^bb2 else to ^bb10 +// CHECK-NEXT: ^bb2: // pred: ^bb1 +// CHECK-NEXT: %17 = "neura.cast"(%15) <{cast_type = "index_to_int"}> : (index) -> i32 +// CHECK-NEXT: %18 = "neura.div"(%17, %7) : (i32, i32) -> i32 +// CHECK-NEXT: %19 = "neura.mul"(%7, %18) : (i32, i32) -> i32 +// CHECK-NEXT: %20 = "neura.sub"(%17, %19) : (i32, i32) -> i32 +// CHECK-NEXT: %21 = "neura.icmp"(%20, %11) <{cmpType = "eq"}> : (i32, i32) -> i1 +// CHECK-NEXT: %22 = "neura.sel"(%21, %7, %6) : (i1, i32, i32) -> i32 +// CHECK-NEXT: %23 = "neura.cast"(%12) <{cast_type = "index_to_int"}> : (index) -> i64 +// CHECK-NEXT: neura.br %23, %8, %9, %11 : i64, i32, i32, i32 to ^bb3 +// CHECK-NEXT: ^bb3(%24: i64, %25: i32, %26: i32, %27: i32): // 2 preds: ^bb2, ^bb4 +// CHECK-NEXT: %28 = "neura.cast"(%24) <{cast_type = "int_to_index"}> : (i64) -> index +// CHECK-NEXT: %29 = "neura.icmp"(%28, %4) <{cmpType = "slt"}> : (index, index) -> i1 +// CHECK-NEXT: neura.cond_br %29 : i1 then to ^bb4 else to ^bb5 +// CHECK-NEXT: ^bb4: // pred: ^bb3 +// CHECK-NEXT: %30 = neura.load_indexed %arg0[%15, %28 : index, index] memref : i32 +// CHECK-NEXT: %31 = "neura.mul"(%30, %22) : (i32, i32) -> i32 +// CHECK-NEXT: neura.store_indexed %31 to %arg1[%15, %28 : index, index] memref : i32 +// CHECK-NEXT: %32 = neura.load_indexed %arg0[%15, %28 : index, index] memref : i32 +// CHECK-NEXT: %33 = "neura.add"(%27, %32) : (i32, i32) -> i32 +// CHECK-NEXT: %34 = "neura.icmp"(%32, %26) <{cmpType = "sgt"}> : (i32, i32) -> i1 +// CHECK-NEXT: %35 = "neura.sel"(%34, %32, %26) : (i1, i32, i32) -> i32 +// CHECK-NEXT: %36 = "neura.icmp"(%32, %25) <{cmpType = "slt"}> : (i32, i32) -> i1 +// CHECK-NEXT: %37 = "neura.sel"(%36, %32, %25) : (i1, i32, i32) -> i32 +// CHECK-NEXT: %38 = "neura.add"(%28, %3) : (index, index) -> index +// CHECK-NEXT: %39 = "neura.cast"(%38) <{cast_type = "index_to_int"}> : (index) -> i64 +// CHECK-NEXT: neura.br %39, %37, %35, %33 : i64, i32, i32, i32 to ^bb3 +// CHECK-NEXT: ^bb5: // pred: ^bb3 +// CHECK-NEXT: %40 = "neura.div"(%27, %10) : (i32, i32) -> i32 +// CHECK-NEXT: %41 = "neura.sub"(%26, %25) : (i32, i32) -> i32 +// CHECK-NEXT: %42 = "neura.icmp"(%41, %11) <{cmpType = "sgt"}> : (i32, i32) -> i1 +// CHECK-NEXT: neura.cond_br %42 : i1 then to ^bb6 else to ^bb7 +// CHECK-NEXT: ^bb6: // pred: ^bb5 +// CHECK-NEXT: %43 = "neura.mul"(%40, %5) : (i32, i32) -> i32 +// CHECK-NEXT: %44 = "neura.div"(%43, %41) : (i32, i32) -> i32 +// CHECK-NEXT: neura.br %44 : i32 to ^bb8 +// CHECK-NEXT: ^bb7: // pred: ^bb5 +// CHECK-NEXT: neura.br %40 : i32 to ^bb8 +// CHECK-NEXT: ^bb8(%45: i32): // 2 preds: ^bb6, ^bb7 +// CHECK-NEXT: neura.br to ^bb9 +// CHECK-NEXT: ^bb9: // pred: ^bb8 +// CHECK-NEXT: neura.store_indexed %40 to %arg1[%15, %12 : index, index] memref : i32 +// CHECK-NEXT: neura.store_indexed %26 to %arg1[%15, %3 : index, index] memref : i32 +// CHECK-NEXT: neura.store_indexed %25 to %arg1[%15, %2 : index, index] memref : i32 +// CHECK-NEXT: neura.store_indexed %45 to %arg1[%15, %1 : index, index] memref : i32 +// CHECK-NEXT: neura.store_indexed %41 to %arg1[%15, %0 : index, index] memref : i32 +// CHECK-NEXT: %46 = "neura.add"(%15, %3) : (index, index) -> index +// CHECK-NEXT: %47 = "neura.cast"(%46) <{cast_type = "index_to_int"}> : (index) -> i64 +// CHECK-NEXT: neura.br %47 : i64 to ^bb1 +// CHECK-NEXT: ^bb10: // pred: ^bb1 +// CHECK-NEXT: "neura.return"() : () -> () +// CHECK-NEXT: } + + +// CTRL2DATA: func.func @_Z29non_perfect_extra_computationPA128_iS0_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { +// CTRL2DATA-NEXT: %0 = "neura.constant"() <{value = "%arg0"}> : () -> !neura.data, i1> +// CTRL2DATA-NEXT: %1 = "neura.grant_once"(%0) : (!neura.data, i1>) -> !neura.data, i1> +// CTRL2DATA-NEXT: %2 = "neura.constant"() <{value = "%arg1"}> : () -> !neura.data, i1> +// CTRL2DATA-NEXT: %3 = "neura.grant_once"(%2) : (!neura.data, i1>) -> !neura.data, i1> +// CTRL2DATA-NEXT: %4 = "neura.constant"() <{value = 4 : i64}> : () -> !neura.data +// CTRL2DATA-NEXT: %5 = "neura.grant_once"(%4) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %6 = "neura.constant"() <{value = 3 : i64}> : () -> !neura.data +// CTRL2DATA-NEXT: %7 = "neura.grant_once"(%6) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %8 = "neura.constant"() <{value = 2 : i64}> : () -> !neura.data +// CTRL2DATA-NEXT: %9 = "neura.grant_once"(%8) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %10 = "neura.constant"() <{value = 1 : i64}> : () -> !neura.data +// CTRL2DATA-NEXT: %11 = "neura.grant_once"(%10) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %12 = "neura.constant"() <{value = 128 : i64}> : () -> !neura.data +// CTRL2DATA-NEXT: %13 = "neura.grant_once"(%12) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %14 = "neura.constant"() <{value = 100 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %15 = "neura.grant_once"(%14) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %16 = "neura.constant"() <{value = 3 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %17 = "neura.grant_once"(%16) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %18 = "neura.constant"() <{value = 2 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %19 = "neura.grant_once"(%18) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %20 = "neura.constant"() <{value = 1000 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %21 = "neura.grant_once"(%20) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %22 = "neura.constant"() <{value = -1000 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %23 = "neura.grant_once"(%22) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %24 = "neura.constant"() <{value = 128 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %25 = "neura.grant_once"(%24) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %26 = "neura.constant"() <{value = 0 : i32}> : () -> !neura.data +// CTRL2DATA-NEXT: %27 = "neura.grant_once"(%26) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %28 = "neura.constant"() <{value = 0 : i64}> : () -> !neura.data +// CTRL2DATA-NEXT: %29 = "neura.grant_once"(%28) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %30 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %31 = neura.phi_start %5, %30 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %32 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %33 = neura.phi_start %7, %32 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %34 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %35 = neura.phi_start %9, %34 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %36 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %37 = neura.phi_start %15, %36 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %38 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %39 = neura.phi_start %25, %38 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %40 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %41 = neura.phi_start %11, %40 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %42 = neura.reserve : !neura.data, i1> +// CTRL2DATA-NEXT: %43 = neura.phi_start %3, %42 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %44 = neura.reserve : !neura.data, i1> +// CTRL2DATA-NEXT: %45 = neura.phi_start %1, %44 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %46 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %47 = neura.phi_start %23, %46 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %48 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %49 = neura.phi_start %21, %48 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %50 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %51 = neura.phi_start %29, %50 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %52 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %53 = neura.phi_start %17, %52 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %54 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %55 = neura.phi_start %27, %54 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %56 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %57 = neura.phi_start %19, %56 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %58 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %59 = neura.phi_start %13, %58 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %60 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %61 = neura.phi_start %29, %60 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %62 = "neura.icmp"(%61, %59) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %63 = "neura.not"(%62) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %64 = neura.grant_predicate %61, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %65 = neura.grant_predicate %57, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %66 = neura.grant_predicate %55, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %67 = neura.grant_predicate %53, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %68 = neura.grant_predicate %51, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %69 = neura.grant_predicate %49, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %70 = neura.grant_predicate %47, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %71 = neura.grant_predicate %59, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %72 = neura.grant_predicate %45, %62 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %73 = neura.grant_predicate %43, %62 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %74 = neura.grant_predicate %41, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %75 = neura.grant_predicate %39, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %76 = neura.grant_predicate %37, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %77 = neura.grant_predicate %35, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %78 = neura.grant_predicate %33, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %79 = neura.grant_predicate %31, %62 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %80 = neura.grant_predicate %63, %63 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: neura.return_void %80 : !neura.data +// CTRL2DATA-NEXT: %81 = "neura.cast"(%64) <{cast_type = "i64_to_i32"}> : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %82 = "neura.div"(%81, %65) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %83 = "neura.mul"(%65, %82) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %84 = "neura.sub"(%81, %83) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %85 = "neura.icmp"(%84, %66) <{cmpType = "eq"}> : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %86 = "neura.sel"(%85, %65, %67) : (!neura.data, !neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %87 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %88 = "neura.phi"(%87, %70) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %89 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %90 = "neura.phi"(%89, %69) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %91 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %92 = "neura.phi"(%91, %67) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %93 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %94 = "neura.phi"(%93, %65) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %95 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %96 = "neura.phi"(%95, %79) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %97 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %98 = "neura.phi"(%97, %78) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %99 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %100 = "neura.phi"(%99, %77) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %101 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %102 = "neura.phi"(%101, %68) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %103 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %104 = "neura.phi"(%103, %76) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %105 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %106 = "neura.phi"(%105, %66) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %107 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %108 = "neura.phi"(%107, %75) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %109 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %110 = "neura.phi"(%109, %74) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %111 = neura.reserve : !neura.data, i1> +// CTRL2DATA-NEXT: %112 = "neura.phi"(%111, %73) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> +// CTRL2DATA-NEXT: %113 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %114 = "neura.phi"(%113, %86) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %115 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %116 = "neura.phi"(%115, %64) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %117 = neura.reserve : !neura.data, i1> +// CTRL2DATA-NEXT: %118 = "neura.phi"(%117, %72) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> +// CTRL2DATA-NEXT: %119 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %120 = "neura.phi"(%119, %71) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %121 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %122 = "neura.phi"(%121, %66) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %123 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %124 = "neura.phi"(%123, %70) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %125 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %126 = "neura.phi"(%125, %69) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %127 = neura.reserve : !neura.data +// CTRL2DATA-NEXT: %128 = "neura.phi"(%127, %68) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %129 = "neura.icmp"(%128, %120) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %130 = neura.grant_predicate %118, %129 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %131 = neura.grant_predicate %116, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %132 = neura.grant_predicate %128, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %133 = neura.grant_predicate %114, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %134 = neura.grant_predicate %112, %129 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %135 = neura.grant_predicate %122, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %136 = neura.grant_predicate %124, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %137 = neura.grant_predicate %126, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %138 = neura.grant_predicate %110, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %139 = neura.grant_predicate %120, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %140 = neura.grant_predicate %108, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %141 = neura.grant_predicate %106, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %142 = neura.grant_predicate %104, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %143 = neura.grant_predicate %102, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %144 = neura.grant_predicate %100, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %145 = neura.grant_predicate %98, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %146 = neura.grant_predicate %96, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %147 = neura.grant_predicate %94, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %148 = neura.grant_predicate %92, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %149 = neura.grant_predicate %90, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %150 = neura.grant_predicate %88, %129 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %151 = "neura.not"(%129) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %152 = neura.grant_predicate %122, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %153 = neura.grant_predicate %108, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %154 = neura.grant_predicate %124, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %155 = neura.grant_predicate %126, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %156 = neura.grant_predicate %106, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %157 = neura.grant_predicate %104, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %158 = neura.grant_predicate %112, %151 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %159 = neura.grant_predicate %116, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %160 = neura.grant_predicate %102, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %161 = neura.grant_predicate %110, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %162 = neura.grant_predicate %100, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %163 = neura.grant_predicate %98, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %164 = neura.grant_predicate %96, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %165 = neura.grant_predicate %120, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %166 = neura.grant_predicate %94, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %167 = neura.grant_predicate %92, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %168 = neura.grant_predicate %90, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %169 = neura.grant_predicate %88, %151 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %170 = neura.grant_predicate %118, %151 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %171 = "neura.div"(%152, %153) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %172 = "neura.sub"(%154, %155) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %173 = "neura.icmp"(%172, %156) <{cmpType = "sgt"}> : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %174 = neura.grant_predicate %171, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %175 = neura.grant_predicate %157, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %176 = neura.grant_predicate %172, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %177 = neura.grant_predicate %158, %173 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %178 = neura.grant_predicate %159, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %179 = neura.grant_predicate %160, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %180 = neura.grant_predicate %154, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %181 = neura.grant_predicate %161, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %182 = neura.grant_predicate %155, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %183 = neura.grant_predicate %162, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %184 = neura.grant_predicate %163, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %185 = neura.grant_predicate %164, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %186 = neura.grant_predicate %165, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %187 = neura.grant_predicate %166, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %188 = neura.grant_predicate %156, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %189 = neura.grant_predicate %167, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %190 = neura.grant_predicate %168, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %191 = neura.grant_predicate %169, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %192 = neura.grant_predicate %170, %173 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %193 = neura.grant_predicate %153, %173 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %194 = "neura.not"(%173) : (!neura.data) -> !neura.data +// CTRL2DATA-NEXT: %195 = neura.grant_predicate %171, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %196 = neura.grant_predicate %158, %194 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %197 = neura.grant_predicate %159, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %198 = neura.grant_predicate %160, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %199 = neura.grant_predicate %154, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %200 = neura.grant_predicate %161, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %201 = neura.grant_predicate %155, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %202 = neura.grant_predicate %162, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %203 = neura.grant_predicate %163, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %204 = neura.grant_predicate %172, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %205 = neura.grant_predicate %164, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %206 = neura.grant_predicate %165, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %207 = neura.grant_predicate %166, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %208 = neura.grant_predicate %156, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %209 = neura.grant_predicate %167, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %210 = neura.grant_predicate %168, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %211 = neura.grant_predicate %169, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %212 = neura.grant_predicate %170, %194 : !neura.data, i1>, !neura.data -> !neura.data, i1> +// CTRL2DATA-NEXT: %213 = neura.grant_predicate %153, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %214 = neura.grant_predicate %157, %194 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %215 = "neura.mul"(%174, %175) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %216 = "neura.div"(%215, %176) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %217 = "neura.phi"(%175, %214) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %218 = "neura.phi"(%193, %213) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %219 = "neura.phi"(%192, %212) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> +// CTRL2DATA-NEXT: %220 = "neura.phi"(%191, %211) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %221 = "neura.phi"(%190, %210) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %222 = "neura.phi"(%189, %209) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %223 = "neura.phi"(%188, %208) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %224 = "neura.phi"(%187, %207) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %225 = "neura.phi"(%186, %206) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %226 = "neura.phi"(%185, %205) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %227 = "neura.phi"(%176, %204) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %228 = "neura.phi"(%184, %203) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %229 = "neura.phi"(%183, %202) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %230 = "neura.phi"(%182, %201) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %231 = "neura.phi"(%181, %200) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %232 = "neura.phi"(%180, %199) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %233 = "neura.phi"(%179, %198) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %234 = "neura.phi"(%178, %197) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %235 = "neura.phi"(%177, %196) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> +// CTRL2DATA-NEXT: %236 = "neura.phi"(%174, %195) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %237 = "neura.phi"(%216, %195) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: neura.store_indexed %236 to %235[%234, %233 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: neura.store_indexed %232 to %235[%234, %231 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: neura.store_indexed %230 to %235[%234, %229 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: neura.store_indexed %237 to %235[%234, %228 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: neura.store_indexed %227 to %235[%234, %226 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: %238 = "neura.add"(%234, %231) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %238 -> %60 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %225 -> %58 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %224 -> %56 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %223 -> %54 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %222 -> %52 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %233 -> %50 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %221 -> %48 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %220 -> %46 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %219 -> %44 : !neura.data, i1> !neura.data, i1> +// CTRL2DATA-NEXT: neura.ctrl_mov %235 -> %42 : !neura.data, i1> !neura.data, i1> +// CTRL2DATA-NEXT: neura.ctrl_mov %231 -> %40 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %218 -> %38 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %217 -> %36 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %229 -> %34 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %228 -> %32 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %226 -> %30 : !neura.data !neura.data +// CTRL2DATA-NEXT: %239 = neura.load_indexed %130[%131, %132 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: %240 = "neura.mul"(%239, %133) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: neura.store_indexed %240 to %134[%131, %132 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: %241 = neura.load_indexed %130[%131, %132 : !neura.data, !neura.data] !neura.data, i1> : !neura.data +// CTRL2DATA-NEXT: %242 = "neura.add"(%135, %241) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %243 = "neura.icmp"(%241, %136) <{cmpType = "sgt"}> : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %244 = "neura.sel"(%243, %241, %136) : (!neura.data, !neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %245 = "neura.icmp"(%241, %137) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %246 = "neura.sel"(%245, %241, %137) : (!neura.data, !neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: %247 = "neura.add"(%132, %138) : (!neura.data, !neura.data) -> !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %247 -> %127 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %246 -> %125 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %244 -> %123 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %242 -> %121 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %139 -> %119 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %130 -> %117 : !neura.data, i1> !neura.data, i1> +// CTRL2DATA-NEXT: neura.ctrl_mov %131 -> %115 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %133 -> %113 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %134 -> %111 : !neura.data, i1> !neura.data, i1> +// CTRL2DATA-NEXT: neura.ctrl_mov %138 -> %109 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %140 -> %107 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %141 -> %105 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %142 -> %103 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %143 -> %101 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %144 -> %99 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %145 -> %97 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %146 -> %95 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %147 -> %93 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %148 -> %91 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %149 -> %89 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.ctrl_mov %150 -> %87 : !neura.data !neura.data +// CTRL2DATA-NEXT: neura.yield +// CTRL2DATA-NEXT: } diff --git a/test/controflow_fuse/perfect_nested/perfect_nested.cpp b/test/controlflow_fuse/perfect_nested/perfect_nested.cpp similarity index 100% rename from test/controflow_fuse/perfect_nested/perfect_nested.cpp rename to test/controlflow_fuse/perfect_nested/perfect_nested.cpp diff --git a/test/controflow_fuse/perfect_nested/perfect_nested.mlir b/test/controlflow_fuse/perfect_nested/perfect_nested.mlir similarity index 91% rename from test/controflow_fuse/perfect_nested/perfect_nested.mlir rename to test/controlflow_fuse/perfect_nested/perfect_nested.mlir index bbc5877e..bf9890a2 100644 --- a/test/controflow_fuse/perfect_nested/perfect_nested.mlir +++ b/test/controlflow_fuse/perfect_nested/perfect_nested.mlir @@ -28,7 +28,8 @@ // RUN: --canonicalize-live-in \ // RUN: --leverage-predicated-value \ // RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s -check-prefix=CTRL2DATA +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA // RUN: mlir-neura-opt %t-llvm.mlir \ // RUN: --assign-accelerator \ @@ -47,7 +48,8 @@ // RUN: --insert-data-mov \ // RUN: --map-to-accelerator="mapping-strategy=heuristic backtrack-config=customized" \ // RUN: --architecture-spec=../../arch_spec/architecture.yaml \ -// RUN: | FileCheck %s -check-prefix=MAPPING +// RUN: -o %t-mapping.mlir +// RUN: FileCheck %s --input-file=%t-mapping.mlir --check-prefix=MAPPING module attributes {} { func.func @_Z10bert_node1PA1_A1_A1_A1_A128_bPA1_A128_S1_(%arg0: memref, %arg1: memref) attributes {llvm.linkage = #llvm.linkage} { @@ -118,7 +120,7 @@ module attributes {} { // CAST-NEXT: } -// CTRL2DATA: func.func @_Z10bert_node1PA1_A1_A1_A1_A128_bPA1_A128_S1_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { +// CTRL2DATA: func.func @_Z10bert_node1PA1_A1_A1_A1_A128_bPA1_A128_S1_(%arg0: memref, %arg1: memref) attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { // CTRL2DATA-NEXT: %0 = "neura.constant"() <{value = "%arg0"}> : () -> !neura.data, i1> // CTRL2DATA-NEXT: %1 = "neura.grant_once"(%0) : (!neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %2 = "neura.constant"() <{value = "%arg1"}> : () -> !neura.data, i1> @@ -152,19 +154,19 @@ module attributes {} { // CTRL2DATA-NEXT: %30 = neura.grant_predicate %23, %23 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: neura.return_void %30 : !neura.data // CTRL2DATA-NEXT: %31 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %32 = neura.phi_start %29, %31 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %32 = "neura.phi"(%31, %29) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %33 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %34 = neura.phi_start %28, %33 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %34 = "neura.phi"(%33, %28) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %35 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %36 = neura.phi_start %27, %35 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %36 = "neura.phi"(%35, %27) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %37 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %38 = neura.phi_start %24, %37 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %38 = "neura.phi"(%37, %24) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %39 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %40 = neura.phi_start %26, %39 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %40 = "neura.phi"(%39, %26) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %41 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %42 = neura.phi_start %25, %41 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %42 = "neura.phi"(%41, %25) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %43 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %44 = neura.phi_start %24, %43 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %44 = "neura.phi"(%43, %24) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %45 = "neura.icmp"(%44, %42) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %46 = neura.grant_predicate %40, %45 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %47 = neura.grant_predicate %38, %45 : !neura.data, !neura.data -> !neura.data diff --git a/test/controflow_fuse/perfect_reduction/perfect_reduction.cpp b/test/controlflow_fuse/perfect_reduction/perfect_reduction.cpp similarity index 100% rename from test/controflow_fuse/perfect_reduction/perfect_reduction.cpp rename to test/controlflow_fuse/perfect_reduction/perfect_reduction.cpp diff --git a/test/controflow_fuse/perfect_reduction/perfect_reduction.mlir b/test/controlflow_fuse/perfect_reduction/perfect_reduction.mlir similarity index 91% rename from test/controflow_fuse/perfect_reduction/perfect_reduction.mlir rename to test/controlflow_fuse/perfect_reduction/perfect_reduction.mlir index d009ea04..75e1bcb1 100644 --- a/test/controflow_fuse/perfect_reduction/perfect_reduction.mlir +++ b/test/controlflow_fuse/perfect_reduction/perfect_reduction.mlir @@ -29,7 +29,8 @@ // RUN: --canonicalize-live-in \ // RUN: --leverage-predicated-value \ // RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s -check-prefix=CTRL2DATA +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA module attributes {} { func.func @_Z27perfect_nested_reduction_2dPA128_i(%arg0: memref) -> i32 attributes {llvm.linkage = #llvm.linkage} { @@ -108,7 +109,7 @@ module attributes {} { // CAST-NEXT: } -// CTRL2DATA: func.func @_Z27perfect_nested_reduction_2dPA128_i(%arg0: memref) -> i32 attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { +// CTRL2DATA: func.func @_Z27perfect_nested_reduction_2dPA128_i(%arg0: memref) -> i32 attributes {accelerator = "neura", dataflow_mode = "predicate", llvm.linkage = #llvm.linkage} { // CTRL2DATA-NEXT: %0 = "neura.constant"() <{value = "%arg0"}> : () -> !neura.data, i1> // CTRL2DATA-NEXT: %1 = "neura.grant_once"(%0) : (!neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %2 = "neura.constant"() <{value = 1 : i64}> : () -> !neura.data @@ -142,19 +143,19 @@ module attributes {} { // CTRL2DATA-NEXT: %30 = neura.grant_predicate %19, %29 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: neura.return_value %30 : !neura.data // CTRL2DATA-NEXT: %31 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %32 = neura.phi_start %23, %31 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %32 = "neura.phi"(%31, %23) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %33 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %34 = neura.phi_start %28, %33 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %34 = "neura.phi"(%33, %28) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %35 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %36 = neura.phi_start %27, %35 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %36 = "neura.phi"(%35, %27) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %37 = neura.reserve : !neura.data, i1> -// CTRL2DATA-NEXT: %38 = neura.phi_start %26, %37 : !neura.data, i1>, !neura.data, i1> -> !neura.data, i1> +// CTRL2DATA-NEXT: %38 = "neura.phi"(%37, %26) : (!neura.data, i1>, !neura.data, i1>) -> !neura.data, i1> // CTRL2DATA-NEXT: %39 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %40 = neura.phi_start %25, %39 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %40 = "neura.phi"(%39, %25) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %41 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %42 = neura.phi_start %24, %41 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %42 = "neura.phi"(%41, %24) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %43 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %44 = neura.phi_start %23, %43 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %44 = "neura.phi"(%43, %23) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %45 = "neura.icmp"(%44, %40) <{cmpType = "slt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %46 = neura.grant_predicate %38, %45 : !neura.data, i1>, !neura.data -> !neura.data, i1> // CTRL2DATA-NEXT: %47 = neura.grant_predicate %36, %45 : !neura.data, !neura.data -> !neura.data diff --git a/test/controflow_fuse/simple_loop/simple_loop.cpp b/test/controlflow_fuse/simple_loop/simple_loop.cpp similarity index 100% rename from test/controflow_fuse/simple_loop/simple_loop.cpp rename to test/controlflow_fuse/simple_loop/simple_loop.cpp diff --git a/test/controflow_fuse/simple_loop/simple_loop.mlir b/test/controlflow_fuse/simple_loop/simple_loop.mlir similarity index 100% rename from test/controflow_fuse/simple_loop/simple_loop.mlir rename to test/controlflow_fuse/simple_loop/simple_loop.mlir diff --git a/test/controflow_fuse/simple_loop_reduction/simple_loop_reduction.cpp b/test/controlflow_fuse/simple_loop_reduction/simple_loop_reduction.cpp similarity index 100% rename from test/controflow_fuse/simple_loop_reduction/simple_loop_reduction.cpp rename to test/controlflow_fuse/simple_loop_reduction/simple_loop_reduction.cpp diff --git a/test/controflow_fuse/simple_loop_reduction/simple_loop_reduction.mlir b/test/controlflow_fuse/simple_loop_reduction/simple_loop_reduction.mlir similarity index 100% rename from test/controflow_fuse/simple_loop_reduction/simple_loop_reduction.mlir rename to test/controlflow_fuse/simple_loop_reduction/simple_loop_reduction.mlir diff --git a/test/e2e/bicg/bicg_int_kernel.mlir b/test/e2e/bicg/bicg_int_kernel.mlir index 1c56c576..3dd2a7fa 100644 --- a/test/e2e/bicg/bicg_int_kernel.mlir +++ b/test/e2e/bicg/bicg_int_kernel.mlir @@ -27,7 +27,7 @@ // RUN: FileCheck %s --input-file=tmp-generated-instructions.yaml --check-prefix=YAML // RUN: FileCheck %s --input-file=tmp-generated-instructions.asm --check-prefix=ASM -// MAPPING: func.func @kernel_bicg_int(%arg0: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg1: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 10 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 9 : i32, res_mii = 4 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { +// MAPPING: func.func @kernel_bicg_int(%arg0: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg1: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 10 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 9 : i32, res_mii = 4 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { // MAPPING-NEXT: %0 = "neura.constant"() <{value = "%arg3"}> {dfg_id = 0 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 3 : i32, y = 1 : i32}]} : () -> !neura.data // MAPPING-NEXT: %1 = "neura.constant"() <{value = 0 : i8}> {dfg_id = 1 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 3 : i32, y = 2 : i32}]} : () -> !neura.data // MAPPING-NEXT: %2 = "neura.constant"() <{value = 32 : i64}> {dfg_id = 2 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 3 : i32, y = 3 : i32}]} : () -> !neura.data @@ -54,22 +54,22 @@ // MAPPING-NEXT: %21 = "neura.gep"(%20) <{operandSegmentSizes = array}> {dfg_id = 48 : i32, lhs_value = "%arg0", mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %22 = neura.reserve {dfg_id = 6 : i32} : !neura.data // MAPPING-NEXT: %23 = "neura.data_mov"(%9) {dfg_id = 22 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 1 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 1 : i32}, {id = 2 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 2 : i32}, {id = 2 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 3 : i32}, {id = 2 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 4 : i32}, {id = 2 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 2 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %24 = neura.phi_start %23, %22 {dfg_id = 28 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 0 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %24 = "neura.phi"(%22, %23) {dfg_id = 28 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %25 = neura.reserve {dfg_id = 7 : i32} : !neura.data // MAPPING-NEXT: %26 = "neura.data_mov"(%12) {dfg_id = 23 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 1 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 1 : i32}, {id = 4001 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 2 : i32}, {id = 4001 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %27 = neura.phi_start %26, %25 {dfg_id = 29 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %27 = "neura.phi"(%25, %26) {dfg_id = 29 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %28 = neura.reserve {dfg_id = 8 : i32} : !neura.data // MAPPING-NEXT: %29 = "neura.data_mov"(%14) {dfg_id = 43 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %30 = neura.phi_start %29, %28 {dfg_id = 50 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %30 = "neura.phi"(%28, %29) {dfg_id = 50 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %31 = neura.reserve {dfg_id = 9 : i32} : !neura.data // MAPPING-NEXT: %32 = "neura.data_mov"(%17) {dfg_id = 42 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %33 = neura.phi_start %32, %31 {dfg_id = 49 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %33 = "neura.phi"(%31, %32) {dfg_id = 49 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %34 = neura.reserve {dfg_id = 10 : i32} : !neura.data // MAPPING-NEXT: %35 = "neura.data_mov"(%21) {dfg_id = 57 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %36 = neura.phi_start %35, %34 {dfg_id = 66 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %36 = "neura.phi"(%34, %35) {dfg_id = 66 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %37 = neura.reserve {dfg_id = 11 : i32} : !neura.data // MAPPING-NEXT: %38 = "neura.data_mov"(%9) {dfg_id = 21 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 1 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %39 = neura.phi_start %38, %37 {dfg_id = 27 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 2 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %39 = "neura.phi"(%37, %38) {dfg_id = 27 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 2 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %40 = "neura.data_mov"(%36) {dfg_id = 75 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 25 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %41 = "neura.data_mov"(%39) {dfg_id = 36 : i32, mapping_locs = [{id = 4002 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 2 : i32}, {id = 4002 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 3 : i32}, {id = 4002 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 4 : i32}, {id = 4002 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %42 = "neura.gep"(%40, %41) <{operandSegmentSizes = array}> {dfg_id = 81 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data @@ -131,40 +131,10 @@ // MAPPING-NEXT: %92 = "neura.data_mov"(%78) {dfg_id = 85 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 162 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}, {id = 162 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 162 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %93 = neura.grant_predicate %91, %92 {dfg_id = 93 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data // MAPPING-NEXT: neura.ctrl_mov %93 -> %25 {dfg_id = 102 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 4004 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 10 : i32}, {id = 4004 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 4004 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 4004 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %94 = "neura.data_mov"(%24) {dfg_id = 38 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}, {id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %95 = "neura.data_mov"(%78) {dfg_id = 84 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}, {id = 11 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}, {id = 1 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 1 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %96 = neura.grant_predicate %94, %95 {dfg_id = 92 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 0 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %96 -> %22 {dfg_id = 101 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 9 : i32}, {id = 3 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 10 : i32}, {id = 3 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 3 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 3 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 3 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 3 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 3 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %97 = "neura.data_mov"(%27) {dfg_id = 39 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %98 = "neura.data_mov"(%76) {dfg_id = 70 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %99 = neura.grant_predicate %97, %98 {dfg_id = 79 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %100 = "neura.data_mov"(%24) {dfg_id = 37 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %101 = "neura.data_mov"(%76) {dfg_id = 69 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 1000 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}, {id = 1000 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}, {id = 1000 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %102 = neura.grant_predicate %100, %101 {dfg_id = 78 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %103 = "neura.data_mov"(%99) {dfg_id = 83 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %104 = "neura.add"(%103) {dfg_id = 91 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %105 = "neura.data_mov"(%104) {dfg_id = 100 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %106 = "neura.icmp"(%105) <{cmpType = "eq"}> {dfg_id = 109 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 2 : i32, y = 1 : i32}], rhs_value = 8 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %107 = "neura.data_mov"(%106) {dfg_id = 114 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %108 = "neura.not"(%107) {dfg_id = 118 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %109 = "neura.data_mov"(%104) {dfg_id = 99 : i32, mapping_locs = [{id = 163 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 6 : i32}, {id = 163 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 7 : i32}, {id = 163 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 8 : i32}, {id = 163 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %110 = "neura.data_mov"(%108) {dfg_id = 123 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 160 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %111 = neura.grant_predicate %109, %110 {dfg_id = 128 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %111 -> %10 {dfg_id = 132 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 10 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %112 = "neura.data_mov"(%102) {dfg_id = 82 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %113 = "neura.data_mov"(%108) {dfg_id = 122 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %114 = neura.grant_predicate %112, %113 {dfg_id = 127 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %114 -> %7 {dfg_id = 131 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 2 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 10 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %115 = "neura.data_mov"(%106) {dfg_id = 112 : i32, mapping_locs = [{id = 193 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 193 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %116 = "neura.data_mov"(%106) {dfg_id = 113 : i32, mapping_locs = [{id = 194 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 194 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %117 = neura.grant_predicate %115, %116 {dfg_id = 117 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %118 = "neura.data_mov"(%117) {dfg_id = 121 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %118 : !neura.data {dfg_id = 126 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 1 : i32}]} -// MAPPING-NEXT: neura.yield {dfg_id = 12 : i32} -// MAPPING-NEXT: } +// MAPPING-NEXT: %94 = "neura.data_mov"(%24) {dfg_id = 38 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}, {id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data [$0], [NORTH, RED] (t=0, inv_iters=0) // ASM-NEXT: } (idx_per_ii=0) @@ -1364,7 +199,7 @@ // ASM-NEXT: GEP, [$1] -> [EAST, RED], [NORTH, RED] (t=6, inv_iters=0) // ASM-NEXT: } (idx_per_ii=6) // ASM-NEXT: { -// ASM-NEXT: PHI_START, [$2], [$3] -> [$0], [EAST, RED] (t=7, inv_iters=0) +// ASM-NEXT: PHI, [$3], [$2] -> [$0], [EAST, RED] (t=7, inv_iters=0) // ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=7, inv_iters=0) // ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=7, inv_iters=0) // ASM-NEXT: } (idx_per_ii=7) @@ -1374,202 +209,5 @@ // ASM-NEXT: { // ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [$3] (t=9, inv_iters=0) // ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(1,0): -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [WEST, RED] (t=10, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: STORE, [NORTH, RED], [$0] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [WEST, RED] -> [WEST, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [WEST, RED] -> [WEST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [WEST, RED], [$0] -> [EAST, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(2,0): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [WEST, RED], [NORTH, RED] -> [WEST, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(0,1): -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$4] (t=10, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [EAST, RED] -> [$0], [NORTH, RED], [EAST, RED], [$1] (t=1, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$2] -> [$2], [$3], [SOUTH, RED], [$0] (t=2, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=2, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [EAST, RED], [$0] (t=3, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$3] -> [SOUTH, RED] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$4] -> [SOUTH, RED], [$0] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [EAST, RED] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [EAST, RED] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GEP, [NORTH, RED], [$2] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=6, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [NORTH, RED], [$0] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: MUL, [SOUTH, RED], [$0] -> [NORTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$2] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: ADD, [SOUTH, RED], [NORTH, RED] -> [EAST, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(1,1): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$3], [$0] -> [WEST, RED] (t=10, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=10, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: SHL, [WEST, RED], [#5] -> [$0] (t=2, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [NORTH, RED] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [WEST, RED], [#8] -> [$0], [WEST, RED], [SOUTH, RED] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [$1], [EAST, RED], [$3], [NORTH, RED], [$2], [WEST, RED] (t=5, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: ADD, [WEST, RED], [#1] -> [EAST, RED], [$3] (t=6, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$3] -> [NORTH, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [WEST, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$2] -> [WEST, RED] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(2,1): -// ASM-NEXT: { -// ASM-NEXT: RETURN_VOID, [$0] (t=10, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [WEST, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [WEST, RED], [#8] -> [$0], [$1], [$2] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [WEST, RED], [SOUTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(3,1): -// ASM-NEXT: { -// ASM-NEXT: CONSTANT, [arg3] -> [NORTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM: PE(0,2): -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0], [$1] (t=10, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$2] (t=10, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=2, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [EAST, RED] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$1] -> [NORTH, RED], [$0] (t=5, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [NORTH, RED], [$1], [EAST, RED] (t=6, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [SOUTH, RED] -> [SOUTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [SOUTH, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(1,2): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$3] -> [$0] (t=10, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$4], [$5] -> [$1] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$1] -> [WEST, RED], [$4] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [WEST, RED], [$0] -> [WEST, RED], [$2] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$3] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$5] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [WEST, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(3,2): -// ASM-NEXT: { -// ASM-NEXT: CONSTANT, [#0] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: MEMSET, [SOUTH, RED], [$0], [NORTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(0,3): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [SOUTH, RED] -> [SOUTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(3,3): -// ASM-NEXT: { -// ASM-NEXT: CONSTANT, [#32] -> [SOUTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) diff --git a/test/e2e/bicg/bicg_kernel.mlir b/test/e2e/bicg/bicg_kernel.mlir index 393dd0ae..d615a4cd 100644 --- a/test/e2e/bicg/bicg_kernel.mlir +++ b/test/e2e/bicg/bicg_kernel.mlir @@ -160,7 +160,7 @@ // AFTER_CANONICALIZE-NEXT: "neura.return"() : () -> () -// MAPPING: func.func @kernel(%arg0: i32 {llvm.noundef}, %arg1: i32 {llvm.noundef}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg5: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg6: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 12 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 9 : i32, res_mii = 6 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { +// MAPPING: func.func @kernel(%arg0: i32 {llvm.noundef}, %arg1: i32 {llvm.noundef}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg5: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg6: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 12 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 9 : i32, res_mii = 6 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { // MAPPING-NEXT: %0 = "neura.grant_once"() <{constant_value = "%arg0"}> {dfg_id = 0 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 0 : i32, y = 1 : i32}]} : () -> !neura.data // MAPPING-NEXT: %1 = "neura.constant"() <{value = "%arg0"}> {dfg_id = 1 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 0 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 0 : i32, x = 0 : i32, y = 0 : i32}]} : () -> !neura.data // MAPPING-NEXT: %2 = "neura.grant_once"() <{constant_value = "%arg1"}> {dfg_id = 2 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 2 : i32, x = 3 : i32, y = 0 : i32}]} : () -> !neura.data @@ -180,235 +180,9 @@ // MAPPING-NEXT: %16 = neura.grant_predicate %14, %15 {dfg_id = 41 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data // MAPPING-NEXT: %17 = "neura.data_mov"(%5) {dfg_id = 25 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 289 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %18 = "neura.data_mov"(%10) {dfg_id = 34 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 2 : i32}, {id = 1 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 12 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 24 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}, {id = 290 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}, {id = 290 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 290 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}, {id = 290 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 290 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 290 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 290 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 290 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %19 = neura.grant_predicate %17, %18 {dfg_id = 40 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %20 = "neura.data_mov"(%2) {dfg_id = 21 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 2 : i32}, {id = 2000 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %21 = "neura.data_mov"(%10) {dfg_id = 33 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 2 : i32}, {id = 3 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %22 = neura.grant_predicate %20, %21 {dfg_id = 39 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %23 = "neura.data_mov"(%6) {dfg_id = 27 : i32, mapping_locs = [{id = 35 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 31 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 29 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %24 = "neura.data_mov"(%10) {dfg_id = 32 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}, {id = 0 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 4 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 160 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %25 = neura.grant_predicate %23, %24 {dfg_id = 38 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %26 = "neura.data_mov"(%10) {dfg_id = 31 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 2 : i32}, {id = 1 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 3 : i32}, {id = 1 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 4 : i32}, {id = 1 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 1 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 1 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 1 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %27 = "neura.not"(%26) {dfg_id = 37 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %28 = "neura.data_mov"(%2) {dfg_id = 22 : i32, mapping_locs = [{id = 3000 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}, {id = 8 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 5 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 1001 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 1001 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 1001 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 1001 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 1001 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %29 = "neura.data_mov"(%27) {dfg_id = 45 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %30 = neura.grant_predicate %28, %29 {dfg_id = 55 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %31 = "neura.data_mov"(%4) {dfg_id = 24 : i32, mapping_locs = [{id = 12000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %32 = "neura.data_mov"(%27) {dfg_id = 44 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 1 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 12 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 26 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %33 = neura.grant_predicate %31, %32 {dfg_id = 54 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %34 = "neura.data_mov"(%5) {dfg_id = 26 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %35 = "neura.data_mov"(%27) {dfg_id = 43 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 12 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 8001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 8001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %36 = neura.grant_predicate %34, %35 {dfg_id = 53 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %37 = "neura.data_mov"(%30) {dfg_id = 61 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %38 = "neura.icmp"(%37) <{cmpType = "sgt"}> {dfg_id = 67 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 0 : i32}], rhs_value = 0 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %39 = "neura.data_mov"(%38) {dfg_id = 76 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 2000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %40 = "neura.not"(%39) {dfg_id = 87 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %41 = "neura.data_mov"(%40) {dfg_id = 97 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %42 = "neura.data_mov"(%40) {dfg_id = 98 : i32, mapping_locs = [{id = 2001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %43 = neura.grant_predicate %41, %42 {dfg_id = 108 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %44 = "neura.data_mov"(%30) {dfg_id = 60 : i32, mapping_locs = [{id = 1001 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 1001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 1001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %45 = "neura.data_mov"(%38) {dfg_id = 75 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}, {id = 1000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %46 = neura.grant_predicate %44, %45 {dfg_id = 86 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %47 = "neura.data_mov"(%33) {dfg_id = 59 : i32, mapping_locs = [{id = 12000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 12000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %48 = "neura.data_mov"(%38) {dfg_id = 74 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 12 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 26 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %49 = neura.grant_predicate %47, %48 {dfg_id = 85 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %50 = "neura.data_mov"(%36) {dfg_id = 58 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 289 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %51 = "neura.data_mov"(%38) {dfg_id = 73 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 160 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 16 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 290 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %52 = neura.grant_predicate %50, %51 {dfg_id = 84 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %53 = "neura.data_mov"(%46) {dfg_id = 96 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %54 = neura.zext %53 {dfg_id = 107 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %55 = "neura.data_mov"(%54) {dfg_id = 116 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %56 = "neura.shl"(%55) {dfg_id = 132 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 0 : i32}], rhs_value = 3 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %57 = "neura.data_mov"(%49) {dfg_id = 95 : i32, mapping_locs = [{id = 38 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 42 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 289 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %58 = "neura.data_mov"(%52) {dfg_id = 94 : i32, mapping_locs = [{id = 290 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 290 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 290 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %59 = "neura.data_mov"(%56) {dfg_id = 143 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 16 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 291 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.memset"(%57, %58, %59) <{is_volatile = false}> {dfg_id = 162 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data, !neura.data) -> () -// MAPPING-NEXT: %60 = "neura.data_mov"(%56) {dfg_id = 142 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 0 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %60 : !neura.data {dfg_id = 161 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 0 : i32, y = 0 : i32}]} -// MAPPING-NEXT: %61 = "neura.data_mov"(%13) {dfg_id = 52 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 4 : i32}, {id = 4001 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 4001 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 4001 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 4001 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 4001 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 4001 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 4001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 4001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %62 = neura.zext %61 {dfg_id = 57 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %63 = "neura.data_mov"(%62) {dfg_id = 66 : i32, mapping_locs = [{id = 4002 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 4002 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 4002 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 4002 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %64 = "neura.shl"(%63) {dfg_id = 72 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 0 : i32, y = 1 : i32}], rhs_value = 3 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %65 = "neura.data_mov"(%16) {dfg_id = 50 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 4000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 4000 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %66 = "neura.data_mov"(%19) {dfg_id = 49 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 160 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 13 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 4002 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %67 = "neura.data_mov"(%64) {dfg_id = 83 : i32, mapping_locs = [{id = 4003 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.memset"(%65, %66, %67) <{is_volatile = false}> {dfg_id = 93 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data, !neura.data) -> () -// MAPPING-NEXT: %68 = "neura.data_mov"(%22) {dfg_id = 48 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %69 = "neura.icmp"(%68) <{cmpType = "sgt"}> {dfg_id = 56 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 2 : i32, y = 0 : i32}], rhs_value = 0 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %70 = "neura.data_mov"(%69) {dfg_id = 65 : i32, mapping_locs = [{id = 2002 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 5 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}, {id = 1002 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 1002 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}, {id = 1002 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 1002 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 1002 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %71 = "neura.not"(%70) {dfg_id = 71 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %72 = "neura.data_mov"(%22) {dfg_id = 47 : i32, mapping_locs = [{id = 2001 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 4 : i32}, {id = 2001 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 2001 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %73 = "neura.data_mov"(%69) {dfg_id = 64 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}, {id = 2000 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %74 = neura.grant_predicate %72, %73 {dfg_id = 70 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %75 = "neura.data_mov"(%13) {dfg_id = 51 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 15 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %76 = "neura.data_mov"(%69) {dfg_id = 63 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %77 = neura.grant_predicate %75, %76 {dfg_id = 69 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %78 = "neura.data_mov"(%25) {dfg_id = 46 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %79 = "neura.data_mov"(%69) {dfg_id = 62 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}, {id = 192 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %80 = neura.grant_predicate %78, %79 {dfg_id = 68 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %81 = "neura.data_mov"(%71) {dfg_id = 81 : i32, mapping_locs = [{id = 1002 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 1002 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %82 = "neura.data_mov"(%71) {dfg_id = 82 : i32, mapping_locs = [{id = 1003 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 1003 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %83 = neura.grant_predicate %81, %82 {dfg_id = 92 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %84 = "neura.data_mov"(%74) {dfg_id = 80 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %85 = neura.zext %84 {dfg_id = 91 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %86 = "neura.data_mov"(%77) {dfg_id = 79 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %87 = neura.zext %86 {dfg_id = 90 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %88 = neura.reserve {dfg_id = 7 : i32} : !neura.data -// MAPPING-NEXT: %89 = "neura.data_mov"(%85) {dfg_id = 105 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %90 = neura.phi_start %89, %88 {dfg_id = 115 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %91 = neura.reserve {dfg_id = 8 : i32} : !neura.data -// MAPPING-NEXT: %92 = "neura.data_mov"(%87) {dfg_id = 104 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %93 = neura.phi_start %92, %91 {dfg_id = 114 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %94 = neura.reserve {dfg_id = 9 : i32} : !neura.data -// MAPPING-NEXT: %95 = "neura.data_mov"(%80) {dfg_id = 78 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %96 = neura.phi_start %95, %94 {dfg_id = 89 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %97 = neura.reserve {dfg_id = 10 : i32} : !neura.data -// MAPPING-NEXT: %98 = "neura.data_mov"(%80) {dfg_id = 77 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %99 = neura.phi_start %98, %97 {dfg_id = 88 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %100 = "neura.data_mov"(%99) {dfg_id = 101 : i32, mapping_locs = [{id = 321 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 321 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 321 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %101 = "neura.gep"(%100) <{operandSegmentSizes = array}> {dfg_id = 111 : i32, lhs_value = "%arg4", mapping_locs = [{id = 10 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %102 = "neura.data_mov"(%101) {dfg_id = 123 : i32, mapping_locs = [{id = 34 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 449 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 43 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 40 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 12000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%102) {dfg_id = 135 : i32, lhs_value = 0.000000e+00 : f64, mapping_locs = [{id = 12 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 0 : i32, y = 3 : i32}]} : (!neura.data) -> () -// MAPPING-NEXT: %103 = "neura.data_mov"(%99) {dfg_id = 100 : i32, mapping_locs = [{id = 34 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 448 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 448 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %104 = "neura.gep"(%103) <{operandSegmentSizes = array}> {dfg_id = 110 : i32, lhs_value = "%arg6", mapping_locs = [{id = 14 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %105 = neura.reserve {dfg_id = 11 : i32} : !neura.data -// MAPPING-NEXT: %106 = "neura.data_mov"(%96) {dfg_id = 103 : i32, mapping_locs = [{id = 195 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 8 : i32}, {id = 195 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 9 : i32}, {id = 195 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 10 : i32}, {id = 195 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 195 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 195 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %107 = neura.phi_start %106, %105 {dfg_id = 113 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %108 = neura.reserve {dfg_id = 12 : i32} : !neura.data -// MAPPING-NEXT: %109 = "neura.data_mov"(%90) {dfg_id = 131 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %110 = neura.phi_start %109, %108 {dfg_id = 141 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %111 = neura.reserve {dfg_id = 13 : i32} : !neura.data -// MAPPING-NEXT: %112 = "neura.data_mov"(%93) {dfg_id = 130 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %113 = neura.phi_start %112, %111 {dfg_id = 140 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %114 = neura.reserve {dfg_id = 14 : i32} : !neura.data -// MAPPING-NEXT: %115 = "neura.data_mov"(%101) {dfg_id = 122 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %116 = neura.phi_start %115, %114 {dfg_id = 134 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %117 = neura.reserve {dfg_id = 15 : i32} : !neura.data -// MAPPING-NEXT: %118 = "neura.data_mov"(%99) {dfg_id = 99 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %119 = neura.phi_start %118, %117 {dfg_id = 109 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %120 = neura.reserve {dfg_id = 16 : i32} : !neura.data -// MAPPING-NEXT: %121 = "neura.data_mov"(%104) {dfg_id = 121 : i32, mapping_locs = [{id = 448 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %122 = neura.phi_start %121, %120 {dfg_id = 133 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %123 = neura.reserve {dfg_id = 17 : i32} : !neura.data -// MAPPING-NEXT: %124 = "neura.data_mov"(%96) {dfg_id = 102 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %125 = neura.phi_start %124, %123 {dfg_id = 112 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %126 = "neura.data_mov"(%125) {dfg_id = 127 : i32, mapping_locs = [{id = 193 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 18 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 224 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %127 = "neura.gep"(%126) <{operandSegmentSizes = array}> {dfg_id = 139 : i32, lhs_value = "%arg3", mapping_locs = [{id = 7 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 3 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %128 = "neura.data_mov"(%127) {dfg_id = 155 : i32, mapping_locs = [{id = 22 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %129 = "neura.load"(%128) {dfg_id = 168 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %130 = "neura.data_mov"(%122) {dfg_id = 145 : i32, mapping_locs = [{id = 43 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 40 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %131 = "neura.load"(%130) {dfg_id = 163 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %132 = "neura.data_mov"(%119) {dfg_id = 120 : i32, mapping_locs = [{id = 32 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 352 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 352 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %133 = "neura.data_mov"(%125) {dfg_id = 126 : i32, mapping_locs = [{id = 18 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 23 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 353 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %134 = "neura.gep"(%132, %133) <{operandSegmentSizes = array}> {dfg_id = 138 : i32, lhs_value = "%arg2", mapping_locs = [{id = 11 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 3 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %135 = "neura.data_mov"(%134) {dfg_id = 153 : i32, mapping_locs = [{id = 36 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 22 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 3001 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 3001 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %136 = "neura.load"(%135) {dfg_id = 167 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %137 = "neura.data_mov"(%131) {dfg_id = 170 : i32, mapping_locs = [{id = 38 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 41 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 44 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 47 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %138 = "neura.data_mov"(%136) {dfg_id = 174 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 23 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %139 = "neura.data_mov"(%129) {dfg_id = 175 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 23 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 352 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 352 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 352 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %140 = "neura.fmul_fadd"(%137, %138, %139) {dfg_id = 182 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 3 : i32, y = 2 : i32}]} : (!neura.data, !neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %141 = "neura.data_mov"(%140) {dfg_id = 189 : i32, mapping_locs = [{id = 36 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}, {id = 22 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %142 = "neura.data_mov"(%127) {dfg_id = 154 : i32, mapping_locs = [{id = 21 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 18 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 22 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 3000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 3000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 3000 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 3000 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 3000 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%141, %142) {dfg_id = 203 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %143 = "neura.data_mov"(%116) {dfg_id = 148 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 8000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %144 = "neura.load"(%143) {dfg_id = 164 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %145 = "neura.data_mov"(%134) {dfg_id = 152 : i32, mapping_locs = [{id = 35 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 31 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 27 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %146 = "neura.load"(%145) {dfg_id = 166 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %147 = "neura.data_mov"(%125) {dfg_id = 125 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 13 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 4000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %148 = "neura.gep"(%147) <{operandSegmentSizes = array}> {dfg_id = 137 : i32, lhs_value = "%arg5", mapping_locs = [{id = 4 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %149 = "neura.data_mov"(%148) {dfg_id = 151 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 4000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %150 = "neura.load"(%149) {dfg_id = 165 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %151 = "neura.data_mov"(%146) {dfg_id = 173 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %152 = "neura.data_mov"(%150) {dfg_id = 172 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 8001 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %153 = "neura.data_mov"(%144) {dfg_id = 171 : i32, mapping_locs = [{id = 8002 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 8002 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %154 = "neura.fmul_fadd"(%151, %152, %153) {dfg_id = 181 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %155 = "neura.data_mov"(%154) {dfg_id = 188 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %156 = "neura.data_mov"(%116) {dfg_id = 147 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 27 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 8003 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 8003 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 8003 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%155, %156) {dfg_id = 202 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %157 = "neura.data_mov"(%125) {dfg_id = 124 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %158 = "neura.add"(%157) {dfg_id = 136 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %159 = "neura.data_mov"(%158) {dfg_id = 150 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %160 = "neura.data_mov"(%113) {dfg_id = 158 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 193 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %161 = "neura.icmp"(%159, %160) <{cmpType = "eq"}> {dfg_id = 169 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %162 = "neura.data_mov"(%161) {dfg_id = 180 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %163 = "neura.not"(%162) {dfg_id = 187 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %164 = "neura.data_mov"(%158) {dfg_id = 149 : i32, mapping_locs = [{id = 194 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 194 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 194 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %165 = "neura.data_mov"(%163) {dfg_id = 201 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %166 = neura.grant_predicate %164, %165 {dfg_id = 211 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %166 -> %123 {dfg_id = 220 : i32, mapping_locs = [{id = 193 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 193 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 193 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 193 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 193 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 193 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 193 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 193 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %167 = "neura.data_mov"(%122) {dfg_id = 144 : i32, mapping_locs = [{id = 448 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 448 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 448 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 448 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 448 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %168 = "neura.data_mov"(%163) {dfg_id = 200 : i32, mapping_locs = [{id = 193 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 17 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 16 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 28 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 34 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %169 = neura.grant_predicate %167, %168 {dfg_id = 210 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %169 -> %120 {dfg_id = 219 : i32, mapping_locs = [{id = 449 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 449 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 449 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 449 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 449 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 449 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 449 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %170 = "neura.data_mov"(%119) {dfg_id = 119 : i32, mapping_locs = [{id = 325 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 9 : i32}, {id = 325 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 10 : i32}, {id = 325 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 11 : i32}, {id = 325 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 325 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 325 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 325 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 325 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 325 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 17 : i32}, {id = 325 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %171 = "neura.data_mov"(%163) {dfg_id = 199 : i32, mapping_locs = [{id = 18 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 21 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 20 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 326 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 15 : i32}, {id = 326 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 16 : i32}, {id = 326 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 17 : i32}, {id = 326 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %172 = neura.grant_predicate %170, %171 {dfg_id = 209 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %172 -> %117 {dfg_id = 218 : i32, mapping_locs = [{id = 322 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 322 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %173 = "neura.data_mov"(%116) {dfg_id = 146 : i32, mapping_locs = [{id = 291 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 291 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 291 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 291 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 291 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %174 = "neura.data_mov"(%163) {dfg_id = 198 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 321 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 31 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 289 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 289 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %175 = neura.grant_predicate %173, %174 {dfg_id = 208 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %175 -> %114 {dfg_id = 217 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 288 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 288 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 288 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}, {id = 288 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}, {id = 288 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 22 : i32}, {id = 288 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 23 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %176 = "neura.data_mov"(%113) {dfg_id = 157 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 161 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 161 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 161 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %177 = "neura.data_mov"(%163) {dfg_id = 197 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %178 = neura.grant_predicate %176, %177 {dfg_id = 207 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %178 -> %111 {dfg_id = 216 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 161 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 161 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 161 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 161 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 161 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 161 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 161 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %179 = "neura.data_mov"(%110) {dfg_id = 160 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 199 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 11 : i32}, {id = 199 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 12 : i32}, {id = 199 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 13 : i32}, {id = 199 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 14 : i32}, {id = 199 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 15 : i32}, {id = 199 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 16 : i32}, {id = 199 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %180 = "neura.data_mov"(%163) {dfg_id = 196 : i32, mapping_locs = [{id = 200 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 12 : i32}, {id = 200 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 13 : i32}, {id = 200 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 14 : i32}, {id = 200 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 15 : i32}, {id = 200 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 16 : i32}, {id = 200 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %181 = neura.grant_predicate %179, %180 {dfg_id = 206 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %181 -> %108 {dfg_id = 215 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}, {id = 2001 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 2001 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 2001 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %182 = "neura.data_mov"(%107) {dfg_id = 129 : i32, mapping_locs = [{id = 195 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 195 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 195 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %183 = "neura.data_mov"(%163) {dfg_id = 195 : i32, mapping_locs = [{id = 197 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 197 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 197 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 197 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 197 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %184 = neura.grant_predicate %182, %183 {dfg_id = 205 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %184 -> %105 {dfg_id = 214 : i32, mapping_locs = [{id = 198 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 17 : i32}, {id = 198 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 18 : i32}, {id = 198 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 19 : i32}, {id = 198 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 20 : i32}, {id = 198 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 21 : i32}, {id = 198 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 22 : i32}, {id = 198 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 23 : i32}, {id = 198 : i32, index_per_ii = 0 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 24 : i32}, {id = 198 : i32, index_per_ii = 1 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 25 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %185 = "neura.data_mov"(%119) {dfg_id = 118 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 320 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 320 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %186 = "neura.data_mov"(%161) {dfg_id = 179 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %187 = neura.grant_predicate %185, %186 {dfg_id = 186 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %188 = "neura.data_mov"(%110) {dfg_id = 159 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 2000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %189 = "neura.data_mov"(%161) {dfg_id = 178 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %190 = neura.grant_predicate %188, %189 {dfg_id = 185 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %191 = "neura.data_mov"(%107) {dfg_id = 128 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %192 = "neura.data_mov"(%161) {dfg_id = 177 : i32, mapping_locs = [{id = 196 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 196 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 196 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 196 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %193 = neura.grant_predicate %191, %192 {dfg_id = 184 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %194 = "neura.data_mov"(%113) {dfg_id = 156 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 160 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 160 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %195 = "neura.data_mov"(%161) {dfg_id = 176 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %196 = neura.grant_predicate %194, %195 {dfg_id = 183 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %197 = "neura.data_mov"(%187) {dfg_id = 194 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %198 = "neura.add"(%197) {dfg_id = 204 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 13 : i32, x = 2 : i32, y = 2 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %199 = "neura.data_mov"(%198) {dfg_id = 213 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %200 = "neura.data_mov"(%190) {dfg_id = 193 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 20 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %201 = "neura.icmp"(%199, %200) <{cmpType = "eq"}> {dfg_id = 221 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 14 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %202 = "neura.data_mov"(%201) {dfg_id = 224 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %203 = "neura.not"(%202) {dfg_id = 226 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %204 = "neura.data_mov"(%198) {dfg_id = 212 : i32, mapping_locs = [{id = 323 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 323 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 323 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 323 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %205 = "neura.data_mov"(%203) {dfg_id = 231 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 320 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %206 = neura.grant_predicate %204, %205 {dfg_id = 236 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %206 -> %97 {dfg_id = 241 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 320 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 320 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %207 = "neura.data_mov"(%193) {dfg_id = 191 : i32, mapping_locs = [{id = 18 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 224 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %208 = "neura.data_mov"(%203) {dfg_id = 230 : i32, mapping_locs = [{id = 32 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 36 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %209 = neura.grant_predicate %207, %208 {dfg_id = 235 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 3 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %209 -> %94 {dfg_id = 240 : i32, mapping_locs = [{id = 21 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 194 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 194 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %210 = "neura.data_mov"(%196) {dfg_id = 190 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}, {id = 288 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 288 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 288 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %211 = "neura.data_mov"(%203) {dfg_id = 229 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %212 = neura.grant_predicate %210, %211 {dfg_id = 234 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %212 -> %91 {dfg_id = 239 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 162 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 162 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 162 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %213 = "neura.data_mov"(%190) {dfg_id = 192 : i32, mapping_locs = [{id = 2001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 7 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 13 : i32}, {id = 194 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 194 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %214 = "neura.data_mov"(%203) {dfg_id = 228 : i32, mapping_locs = [{id = 33 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %215 = neura.grant_predicate %213, %214 {dfg_id = 233 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %215 -> %88 {dfg_id = 238 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 2003 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 2003 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 2003 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 2003 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %216 = "neura.data_mov"(%201) {dfg_id = 222 : i32, mapping_locs = [{id = 321 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 321 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %217 = "neura.data_mov"(%201) {dfg_id = 223 : i32, mapping_locs = [{id = 322 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 322 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %218 = neura.grant_predicate %216, %217 {dfg_id = 225 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %219 = "neura.data_mov"(%83) {dfg_id = 106 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 7 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 20 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 321 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %220 = "neura.data_mov"(%43) {dfg_id = 117 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 14 : i32}, {id = 20 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 322 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 322 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %221 = "neura.data_mov"(%218) {dfg_id = 227 : i32, mapping_locs = [{id = 324 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 324 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %222 = "neura.phi"(%219, %220, %221) {dfg_id = 232 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %223 = "neura.data_mov"(%222) {dfg_id = 237 : i32, mapping_locs = [{id = 32 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %223 : !neura.data {dfg_id = 242 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 3 : i32, y = 2 : i32}]} -// MAPPING-NEXT: neura.yield {dfg_id = 18 : i32} -// MAPPING-NEXT: } -// MAPPING-NEXT: } -// YAML: array_config: +// YAML: array_config: // YAML-NEXT: columns: 4 // YAML-NEXT: rows: 4 // YAML-NEXT: compiled_ii: 12 @@ -441,2443 +215,10 @@ // YAML-NEXT: dst_operands: // YAML-NEXT: - operand: "NORTH" // YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_SGT" -// YAML-NEXT: id: 28 -// YAML-NEXT: time_step: 1 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 30 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 340000 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 320000 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 350000 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 142 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "RETURN_VOID" -// YAML-NEXT: id: 161 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 37 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 440000 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "1" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 71 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 86 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 92 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 330001 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "SHL" -// YAML-NEXT: id: 132 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 320001 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 350001 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 22 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 69 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 90 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 65 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 55 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_SGT" -// YAML-NEXT: id: 67 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "2" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 185 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 76 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 87 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1920000 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 108 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 21 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1060001 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 39 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 220001 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_SGT" -// YAML-NEXT: id: 56 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 238 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 650000 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 70 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 215 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 91 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 115 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 141 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "3" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 168 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 2 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "arg1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 153 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 220000 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 154 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 167 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 203 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "4" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 137 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 57 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 740002 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 165 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 0 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "arg0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 36 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 42 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 340001 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 50 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SHL" -// YAML-NEXT: id: 72 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 49 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MEMSET" -// YAML-NEXT: id: 93 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 430001 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 440001 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 125 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "5" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 183 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 207 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 730001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 107 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 23 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2000001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 41 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1430001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 490001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 32 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 510001 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 239 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 38 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 35 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 114 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 140 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1250001 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "6" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 187 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$8" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 211 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1540001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2000000 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1930001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 113 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1990002 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 192 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 184 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1170001 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 233 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1060002 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 205 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 62 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 206 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$7" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$8" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 240 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 68 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 89 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 112 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 136 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1270000 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 158 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 169 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 160 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$7" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "7" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 139 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1530001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1990001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1750001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1540002 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 191 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 235 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1740001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1890001 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1260001 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 127 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "8" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 5 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 440002 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 53 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 148 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 164 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 740003 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 147 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 166 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 172 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "FMUL_FADD" -// YAML-NEXT: id: 181 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 340002 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 202 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 43 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "9" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 134 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 3 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "arg3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 25 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1470000 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 190 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 40 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 58 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 73 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1520002 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 84 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2000002 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 198 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 234 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 270002 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 208 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 95 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 143 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 34 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "MEMSET" -// YAML-NEXT: id: 162 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "10" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 186 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 204 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1520001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 221 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1980001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 226 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 199 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 270001 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 225 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2000003 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 117 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 236 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 106 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI" -// YAML-NEXT: id: 232 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 209 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 88 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 109 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 111 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "11" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 138 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 6 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 175 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2300001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "FMUL_FADD" -// YAML-NEXT: id: 182 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "RETURN_VOID" -// YAML-NEXT: id: 242 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 120 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 126 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "12" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 4 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "arg4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 54 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 163 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 85 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 123 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 135 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "13" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1450001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1230002 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1700001 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 950001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "14" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 133 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1230001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1700002 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 210 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 100 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 110 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "15" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1700003 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// ASM: # Compiled II: 12 -// ASM: PE(0,0): +// ASM: # Compiled II: 12 +// ASM: PE(0,0): // ASM-NEXT: { // ASM-NEXT: CONSTANT, [arg0] -> [$0] (t=0, inv_iters=0) // ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=12, inv_iters=1) @@ -2905,426 +246,6 @@ // ASM-NEXT: { // ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=10, inv_iters=0) // ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(1,0): -// ASM-NEXT: { -// ASM-NEXT: NOT, [$2] -> [$2], [$3] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$0] -> [NORTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$3] -> [EAST, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=3, inv_iters=0) -// ASM-NEXT: SHL, [NORTH, RED], [#3] -> [NORTH, RED], [WEST, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$1] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [NORTH, RED], [EAST, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$0] -> [NORTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [WEST, RED] -> [$0], [$1] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: ICMP_SGT, [$0], [#0] -> [EAST, RED], [$0], [WEST, RED], [NORTH, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(2,0): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [NORTH, RED], [$1] (t=12, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [$0], [$1] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [$1] -> [NORTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [NORTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=3, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [WEST, RED] -> [$0], [$1] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: ICMP_SGT, [$0], [#0] -> [$2], [$0], [WEST, RED], [NORTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$3] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$2] -> [WEST, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$0] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$1] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$0] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$3] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [NORTH, RED], [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(3,0): -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [NORTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [arg1] -> [WEST, RED], [$0] (t=2, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=3, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$1] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: STORE, [NORTH, RED], [$0] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM: PE(0,1): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$0] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$1] -> [$2] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [NORTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [arg0] -> [$0] (t=3, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [$1], [EAST, RED] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: SHL, [$2], [#3] -> [$3] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: MEMSET, [$0], [$2], [$3] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=11, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(1,1): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [NORTH, RED] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [EAST, RED] -> [$1] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [SOUTH, RED] -> [SOUTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$3] -> [WEST, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [WEST, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=5, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$2] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [NORTH, RED], [$0] -> [EAST, RED] (t=6, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$3] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$2] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [EAST, RED], [$1], [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(2,1): -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [$0], [$1], [EAST, RED], [NORTH, RED], [WEST, RED], [$8], [$5] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$0] -> [$1] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [EAST, RED] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [$1] -> [WEST, RED] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$3], [$6] -> [$3], [$0] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$2] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$4] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [NORTH, RED] -> [SOUTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$3], [$5] -> [$6] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: GRANT_PREDICATE, [$7], [$8] -> [SOUTH, RED] (t=18, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$2] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [WEST, RED], [$0] -> [$0], [NORTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [$3], [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [$1], [EAST, RED], [WEST, RED], [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [$0], [$2] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [$1] -> [$0], [NORTH, RED], [SOUTH, RED], [$4], [WEST, RED] (t=11, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$7] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(3,1): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED], [WEST, RED] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [WEST, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [WEST, RED] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(0,2): -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#0] -> [EAST, RED], [$0] (t=12, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [EAST, RED] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [$2] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$3] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [EAST, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: FMUL_FADD, [$0], [$1], [$2] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=5, inv_iters=0) -// ASM-NEXT: STORE, [$0], [$3] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(1,2): -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [EAST, RED], [$0] -> [WEST, RED], [$0], [$3] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [arg3] -> [SOUTH, RED] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [SOUTH, RED] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$2] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [$2] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$1] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [SOUTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: GRANT_PREDICATE, [$3], [$1] -> [$0] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$3] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$2] (t=6, inv_iters=0) -// ASM-NEXT: MEMSET, [$1], [$2], [$3] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM: PE(2,2): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [$0] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [$0], [$3] (t=13, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [SOUTH, RED] -> [$0], [$1], [$2] (t=14, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [WEST, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [$0], [EAST, RED], [WEST, RED], [SOUTH, RED] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$6] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=4, inv_iters=0) -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [$4] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$2] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$3], [$0] -> [$0] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: PHI, [$1], [$2], [$4] -> [EAST, RED] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$5], [$6] -> [$2] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$0] -> [$1], [NORTH, RED], [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [EAST, RED], [$5], [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$1] -> [NORTH, RED], [WEST, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(3,2): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0], [$1] -> [SOUTH, RED], [WEST, RED] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#0] -> [WEST, RED] (t=3, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: FMUL_FADD, [NORTH, RED], [SOUTH, RED], [$0] -> [SOUTH, RED] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: RETURN_VOID, [WEST, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(0,3): -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [arg4] -> [$0] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [$0] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [EAST, RED] -> [EAST, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM: PE(1,3): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=14, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM: PE(2,3): -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [WEST, RED], [$0] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [WEST, RED] (t=13, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [$1] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$0] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(3,3): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) // RUN: mlir-neura-opt %t-kernel.mlir --view-op-graph 2>&1 | sed -n '/^digraph G {/,/^}$/p' > bicg_kernel_original.dot diff --git a/test/e2e/fft/fft_kernel.mlir b/test/e2e/fft/fft_kernel.mlir index dfb820c3..079dde14 100644 --- a/test/e2e/fft/fft_kernel.mlir +++ b/test/e2e/fft/fft_kernel.mlir @@ -22,7 +22,7 @@ // RUN: FileCheck %s --input-file=tmp-generated-instructions.yaml --check-prefix=YAML // RUN: FileCheck %s --input-file=tmp-generated-instructions.asm --check-prefix=ASM -// MAPPING: func.func @kernel(%arg0: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg1: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 19 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 12 : i32, res_mii = 8 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { +// MAPPING: func.func @kernel(%arg0: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg1: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 19 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 12 : i32, res_mii = 8 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { // MAPPING-NEXT: %0 = "neura.grant_once"() <{constant_value = 0 : i32}> {dfg_id = 0 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 3 : i32, y = 0 : i32}]} : () -> !neura.data // MAPPING-NEXT: %1 = "neura.grant_once"() <{constant_value = 128 : i32}> {dfg_id = 1 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 0 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 0 : i32, x = 1 : i32, y = 2 : i32}]} : () -> !neura.data // MAPPING-NEXT: %2 = "neura.grant_once"() <{constant_value = 1 : i32}> {dfg_id = 2 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 2 : i32, y = 2 : i32}]} : () -> !neura.data @@ -51,331 +51,9 @@ // MAPPING-NEXT: %25 = "neura.data_mov"(%20) {dfg_id = 61 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %26 = neura.grant_predicate %24, %25 {dfg_id = 69 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data // MAPPING-NEXT: %27 = "neura.data_mov"(%12) {dfg_id = 46 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 29 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %28 = "neura.data_mov"(%20) {dfg_id = 60 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 2 : i32}, {id = 162 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 3 : i32}, {id = 162 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 4 : i32}, {id = 162 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 162 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}, {id = 162 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 162 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}, {id = 162 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %29 = neura.grant_predicate %27, %28 {dfg_id = 68 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %30 = "neura.data_mov"(%6) {dfg_id = 48 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %31 = "neura.data_mov"(%20) {dfg_id = 59 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %32 = neura.grant_predicate %30, %31 {dfg_id = 67 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %33 = "neura.data_mov"(%20) {dfg_id = 58 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 2 : i32}, {id = 4002 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 3 : i32}, {id = 4002 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 4 : i32}, {id = 4002 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 4002 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}, {id = 4002 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 4002 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}, {id = 4002 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 4002 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 4002 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 4002 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 4002 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %34 = "neura.not"(%33) {dfg_id = 66 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %35 = "neura.data_mov"(%6) {dfg_id = 47 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}, {id = 31 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 27 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 8002 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 8002 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}, {id = 8002 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 8002 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}, {id = 8002 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 8002 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 8002 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 8002 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 8002 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 8002 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %36 = "neura.data_mov"(%34) {dfg_id = 75 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %37 = neura.grant_predicate %35, %36 {dfg_id = 85 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %38 = "neura.data_mov"(%23) {dfg_id = 82 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %39 = neura.sext %38 {dfg_id = 92 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %40 = "neura.data_mov"(%26) {dfg_id = 81 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %41 = neura.zext %40 {dfg_id = 91 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %42 = "neura.data_mov"(%29) {dfg_id = 78 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %43 = neura.zext %42 {dfg_id = 88 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %44 = "neura.data_mov"(%26) {dfg_id = 80 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 4000 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 4 : i32}, {id = 4000 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}, {id = 4000 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}, {id = 4000 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %45 = neura.zext %44 {dfg_id = 90 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %46 = neura.reserve {dfg_id = 9 : i32} : !neura.data -// MAPPING-NEXT: %47 = "neura.data_mov"(%43) {dfg_id = 105 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %48 = neura.phi_start %47, %46 {dfg_id = 120 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %49 = neura.reserve {dfg_id = 10 : i32} : !neura.data -// MAPPING-NEXT: %50 = "neura.data_mov"(%45) {dfg_id = 108 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %51 = neura.phi_start %50, %49 {dfg_id = 122 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %52 = neura.reserve {dfg_id = 11 : i32} : !neura.data -// MAPPING-NEXT: %53 = "neura.data_mov"(%32) {dfg_id = 77 : i32, mapping_locs = [{id = 289 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 3 : i32}, {id = 289 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 4 : i32}, {id = 289 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 289 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 289 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %54 = neura.phi_start %53, %52 {dfg_id = 87 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %55 = neura.reserve {dfg_id = 12 : i32} : !neura.data -// MAPPING-NEXT: %56 = "neura.data_mov"(%26) {dfg_id = 79 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 3 : i32}, {id = 161 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 4 : i32}, {id = 161 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 161 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %57 = neura.phi_start %56, %55 {dfg_id = 89 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %58 = neura.reserve {dfg_id = 13 : i32} : !neura.data -// MAPPING-NEXT: %59 = "neura.data_mov"(%41) {dfg_id = 109 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %60 = neura.phi_start %59, %58 {dfg_id = 123 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %61 = neura.reserve {dfg_id = 14 : i32} : !neura.data -// MAPPING-NEXT: %62 = "neura.data_mov"(%39) {dfg_id = 110 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %63 = neura.phi_start %62, %61 {dfg_id = 124 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %64 = neura.reserve {dfg_id = 15 : i32} : !neura.data -// MAPPING-NEXT: %65 = "neura.data_mov"(%32) {dfg_id = 76 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %66 = neura.phi_start %65, %64 {dfg_id = 86 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %67 = "neura.data_mov"(%66) {dfg_id = 102 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 321 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 321 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 321 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 321 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 321 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %68 = "neura.data_mov"(%63) {dfg_id = 144 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %69 = "neura.add"(%67, %68) {dfg_id = 151 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %70 = "neura.data_mov"(%69) {dfg_id = 166 : i32, mapping_locs = [{id = 32 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %71 = "neura.gep"(%70) <{operandSegmentSizes = array}> {dfg_id = 171 : i32, lhs_value = "%arg2", mapping_locs = [{id = 11 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 3 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %72 = "neura.data_mov"(%71) {dfg_id = 183 : i32, mapping_locs = [{id = 36 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 22 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %73 = "neura.load"(%72) {dfg_id = 195 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %74 = "neura.data_mov"(%69) {dfg_id = 165 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %75 = "neura.gep"(%74) <{operandSegmentSizes = array}> {dfg_id = 170 : i32, lhs_value = "%arg3", mapping_locs = [{id = 10 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %76 = "neura.data_mov"(%75) {dfg_id = 182 : i32, mapping_locs = [{id = 33 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 19 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %77 = "neura.load"(%76) {dfg_id = 194 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %78 = "neura.data_mov"(%66) {dfg_id = 101 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %79 = "neura.shl"(%78) {dfg_id = 117 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 1 : i32, y = 2 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %80 = "neura.data_mov"(%79) {dfg_id = 131 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %81 = "neura.data_mov"(%60) {dfg_id = 142 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %82 = "neura.mul"(%80, %81) {dfg_id = 149 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %83 = "neura.data_mov"(%82) {dfg_id = 162 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %84 = "neura.cast"(%83) <{cast_type = "trunc"}> {dfg_id = 169 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %85 = "neura.data_mov"(%57) {dfg_id = 107 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %86 = "neura.data_mov"(%84) {dfg_id = 181 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %87 = "neura.add"(%85, %86) {dfg_id = 193 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %88 = "neura.data_mov"(%87) {dfg_id = 219 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %89 = neura.zext %88 {dfg_id = 233 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %90 = "neura.data_mov"(%82) {dfg_id = 161 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}, {id = 416 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}, {id = 416 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}, {id = 416 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 416 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %91 = "neura.and"(%90) {dfg_id = 168 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 3 : i32}], rhs_value = 4294967294 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %92 = neura.reserve {dfg_id = 16 : i32} : !neura.data -// MAPPING-NEXT: %93 = "neura.data_mov"(%54) {dfg_id = 104 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 322 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 322 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 322 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 322 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %94 = neura.phi_start %93, %92 {dfg_id = 119 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %95 = neura.reserve {dfg_id = 17 : i32} : !neura.data -// MAPPING-NEXT: %96 = "neura.data_mov"(%57) {dfg_id = 106 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 161 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 161 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 161 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 161 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 161 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 161 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 161 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 161 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %97 = neura.phi_start %96, %95 {dfg_id = 121 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %98 = neura.reserve {dfg_id = 18 : i32} : !neura.data -// MAPPING-NEXT: %99 = "neura.data_mov"(%60) {dfg_id = 141 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}, {id = 4003 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 6 : i32}, {id = 4003 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 7 : i32}, {id = 4003 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 8 : i32}, {id = 4003 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 9 : i32}, {id = 4003 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 10 : i32}, {id = 4003 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 4003 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 4003 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 4003 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %100 = neura.phi_start %99, %98 {dfg_id = 148 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %101 = neura.reserve {dfg_id = 19 : i32} : !neura.data -// MAPPING-NEXT: %102 = "neura.data_mov"(%63) {dfg_id = 143 : i32, mapping_locs = [{id = 194 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 194 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 194 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 194 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 194 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 194 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 194 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %103 = neura.phi_start %102, %101 {dfg_id = 150 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %104 = neura.reserve {dfg_id = 20 : i32} : !neura.data -// MAPPING-NEXT: %105 = "neura.data_mov"(%48) {dfg_id = 137 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %106 = neura.phi_start %105, %104 {dfg_id = 146 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %107 = neura.reserve {dfg_id = 21 : i32} : !neura.data -// MAPPING-NEXT: %108 = "neura.data_mov"(%66) {dfg_id = 100 : i32, mapping_locs = [{id = 290 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 4 : i32}, {id = 290 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 5 : i32}, {id = 290 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 6 : i32}, {id = 290 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 7 : i32}, {id = 290 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 8 : i32}, {id = 290 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 290 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %109 = neura.phi_start %108, %107 {dfg_id = 116 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %110 = neura.reserve {dfg_id = 22 : i32} : !neura.data -// MAPPING-NEXT: %111 = "neura.data_mov"(%51) {dfg_id = 140 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %112 = neura.phi_start %111, %110 {dfg_id = 147 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %113 = neura.reserve {dfg_id = 23 : i32} : !neura.data -// MAPPING-NEXT: %114 = "neura.data_mov"(%91) {dfg_id = 180 : i32, mapping_locs = [{id = 42 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %115 = neura.phi_start %114, %113 {dfg_id = 192 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %116 = neura.reserve {dfg_id = 24 : i32} : !neura.data -// MAPPING-NEXT: %117 = "neura.data_mov"(%77) {dfg_id = 220 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %118 = neura.phi_start %117, %116 {dfg_id = 234 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %119 = neura.reserve {dfg_id = 25 : i32} : !neura.data -// MAPPING-NEXT: %120 = "neura.data_mov"(%73) {dfg_id = 221 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %121 = neura.phi_start %120, %119 {dfg_id = 235 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 3 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %122 = neura.reserve {dfg_id = 26 : i32} : !neura.data -// MAPPING-NEXT: %123 = "neura.data_mov"(%89) {dfg_id = 249 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %124 = neura.phi_start %123, %122 {dfg_id = 259 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %125 = neura.reserve {dfg_id = 27 : i32} : !neura.data -// MAPPING-NEXT: %126 = "neura.data_mov"(%54) {dfg_id = 103 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %127 = neura.phi_start %126, %125 {dfg_id = 118 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %128 = "neura.data_mov"(%127) {dfg_id = 134 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 33 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %129 = "neura.data_mov"(%124) {dfg_id = 269 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %130 = "neura.add"(%128, %129) {dfg_id = 277 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %131 = "neura.data_mov"(%130) {dfg_id = 292 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %132 = "neura.gep"(%131) <{operandSegmentSizes = array}> {dfg_id = 302 : i32, lhs_value = "%arg0", mapping_locs = [{id = 2 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %133 = "neura.data_mov"(%132) {dfg_id = 314 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %134 = "neura.load"(%133) {dfg_id = 317 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %135 = "neura.data_mov"(%134) {dfg_id = 322 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 7 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %136 = "neura.data_mov"(%121) {dfg_id = 255 : i32, mapping_locs = [{id = 21 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %137 = "neura.mul"(%135, %136) {dfg_id = 326 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %138 = "neura.data_mov"(%130) {dfg_id = 291 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %139 = "neura.gep"(%138) <{operandSegmentSizes = array}> {dfg_id = 301 : i32, lhs_value = "%arg1", mapping_locs = [{id = 6 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %140 = "neura.data_mov"(%139) {dfg_id = 312 : i32, mapping_locs = [{id = 18 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 22 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %141 = "neura.load"(%140) {dfg_id = 316 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %142 = "neura.data_mov"(%141) {dfg_id = 320 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %143 = "neura.data_mov"(%118) {dfg_id = 252 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %144 = "neura.mul"(%142, %143) {dfg_id = 324 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %145 = "neura.data_mov"(%137) {dfg_id = 330 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 192 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %146 = "neura.data_mov"(%144) {dfg_id = 328 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 193 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %147 = "neura.sub"(%145, %146) {dfg_id = 332 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %148 = "neura.data_mov"(%134) {dfg_id = 321 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 1000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %149 = "neura.data_mov"(%118) {dfg_id = 251 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %150 = "neura.mul"(%148, %149) {dfg_id = 325 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %151 = "neura.data_mov"(%141) {dfg_id = 319 : i32, mapping_locs = [{id = 3000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %152 = "neura.data_mov"(%121) {dfg_id = 254 : i32, mapping_locs = [{id = 22 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %153 = "neura.mul"(%151, %152) {dfg_id = 323 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %154 = "neura.data_mov"(%153) {dfg_id = 327 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %155 = "neura.data_mov"(%150) {dfg_id = 329 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %156 = "neura.add"(%154, %155) {dfg_id = 331 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %157 = "neura.data_mov"(%127) {dfg_id = 133 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 417 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 417 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 417 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %158 = "neura.data_mov"(%115) {dfg_id = 218 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %159 = "neura.add"(%157, %158) {dfg_id = 232 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 3 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %160 = "neura.data_mov"(%159) {dfg_id = 248 : i32, mapping_locs = [{id = 40 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %161 = "neura.gep"(%160) <{operandSegmentSizes = array}> {dfg_id = 258 : i32, lhs_value = "%arg0", mapping_locs = [{id = 12 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %162 = "neura.data_mov"(%161) {dfg_id = 267 : i32, mapping_locs = [{id = 12000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 12000 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %163 = "neura.load"(%162) {dfg_id = 275 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 0 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %164 = "neura.data_mov"(%163) {dfg_id = 289 : i32, mapping_locs = [{id = 39 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 24 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 29 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %165 = "neura.data_mov"(%147) {dfg_id = 336 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 17 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %166 = "neura.sub"(%164, %165) {dfg_id = 340 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %167 = "neura.data_mov"(%166) {dfg_id = 344 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %168 = "neura.data_mov"(%132) {dfg_id = 313 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 5 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 1003 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 1003 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 1003 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 1003 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 1003 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 1003 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%167, %168) {dfg_id = 348 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %169 = "neura.data_mov"(%163) {dfg_id = 288 : i32, mapping_locs = [{id = 38 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 41 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 45 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %170 = "neura.data_mov"(%147) {dfg_id = 335 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 320 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %171 = "neura.add"(%169, %170) {dfg_id = 339 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %172 = "neura.data_mov"(%171) {dfg_id = 343 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 27 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 8000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %173 = "neura.data_mov"(%161) {dfg_id = 266 : i32, mapping_locs = [{id = 39 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 8003 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 8003 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 8003 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 8003 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 8003 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 8003 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 8003 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%172, %173) {dfg_id = 347 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %174 = "neura.data_mov"(%159) {dfg_id = 247 : i32, mapping_locs = [{id = 416 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %175 = "neura.gep"(%174) <{operandSegmentSizes = array}> {dfg_id = 257 : i32, lhs_value = "%arg1", mapping_locs = [{id = 13 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %176 = "neura.data_mov"(%175) {dfg_id = 265 : i32, mapping_locs = [{id = 40 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %177 = "neura.load"(%176) {dfg_id = 274 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %178 = "neura.data_mov"(%177) {dfg_id = 287 : i32, mapping_locs = [{id = 38 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 40 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 39 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 25 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %179 = "neura.data_mov"(%156) {dfg_id = 334 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 17 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 13 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %180 = "neura.sub"(%178, %179) {dfg_id = 338 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %181 = "neura.data_mov"(%180) {dfg_id = 342 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 0 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %182 = "neura.data_mov"(%139) {dfg_id = 311 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 15 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 2 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 1 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 1 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 1 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 1 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 1 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%181, %182) {dfg_id = 346 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %183 = "neura.data_mov"(%177) {dfg_id = 286 : i32, mapping_locs = [{id = 39 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 25 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 11 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %184 = "neura.data_mov"(%156) {dfg_id = 333 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 2 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %185 = "neura.add"(%183, %184) {dfg_id = 337 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %186 = "neura.data_mov"(%185) {dfg_id = 341 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 0 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %187 = "neura.data_mov"(%175) {dfg_id = 264 : i32, mapping_locs = [{id = 41 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 45 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 33 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 19 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 5 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 2 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%186, %187) {dfg_id = 345 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %188 = "neura.data_mov"(%127) {dfg_id = 132 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %189 = "neura.add"(%188) {dfg_id = 145 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 2 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %190 = "neura.data_mov"(%189) {dfg_id = 153 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %191 = "neura.data_mov"(%112) {dfg_id = 158 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %192 = "neura.icmp"(%190, %191) <{cmpType = "eq"}> {dfg_id = 167 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %193 = "neura.data_mov"(%192) {dfg_id = 179 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %194 = "neura.not"(%193) {dfg_id = 191 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %195 = "neura.data_mov"(%189) {dfg_id = 152 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 27 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 8000 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %196 = "neura.data_mov"(%194) {dfg_id = 216 : i32, mapping_locs = [{id = 8001 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %197 = neura.grant_predicate %195, %196 {dfg_id = 230 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %197 -> %125 {dfg_id = 245 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 291 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 291 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 291 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 291 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 291 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 291 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 291 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 291 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}, {id = 291 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 291 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}, {id = 291 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 24 : i32}, {id = 291 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 25 : i32}, {id = 291 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 26 : i32}, {id = 291 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 27 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %198 = "neura.data_mov"(%124) {dfg_id = 268 : i32, mapping_locs = [{id = 199 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 10 : i32}, {id = 199 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 11 : i32}, {id = 199 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 12 : i32}, {id = 199 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 13 : i32}, {id = 199 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 14 : i32}, {id = 199 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 15 : i32}, {id = 199 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 16 : i32}, {id = 199 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 17 : i32}, {id = 199 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 18 : i32}, {id = 199 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 19 : i32}, {id = 199 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 20 : i32}, {id = 199 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %199 = "neura.data_mov"(%194) {dfg_id = 215 : i32, mapping_locs = [{id = 8014 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 14 : i32, resource = "register", time_step = 12 : i32}, {id = 8012 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 12 : i32, resource = "register", time_step = 13 : i32}, {id = 8006 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 14 : i32}, {id = 26 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 12001 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 12000 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 38 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 41 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 45 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 33 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %200 = neura.grant_predicate %198, %199 {dfg_id = 276 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %200 -> %122 {dfg_id = 290 : i32, mapping_locs = [{id = 196 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 196 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 196 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 196 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}, {id = 196 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 26 : i32}, {id = 196 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 27 : i32}, {id = 196 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 28 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %201 = "neura.data_mov"(%121) {dfg_id = 253 : i32, mapping_locs = [{id = 23 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 352 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 352 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 352 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 352 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 352 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 352 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %202 = "neura.data_mov"(%194) {dfg_id = 214 : i32, mapping_locs = [{id = 8013 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 13 : i32, resource = "register", time_step = 12 : i32}, {id = 8010 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 10 : i32, resource = "register", time_step = 13 : i32}, {id = 8005 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 8002 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 8001 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 8001 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 24 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 28 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 32 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %203 = neura.grant_predicate %201, %202 {dfg_id = 261 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 3 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %203 -> %119 {dfg_id = 271 : i32, mapping_locs = [{id = 36 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 225 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 225 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 225 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 225 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}, {id = 225 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 26 : i32}, {id = 225 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 27 : i32}, {id = 225 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 28 : i32}, {id = 225 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 29 : i32}, {id = 225 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 30 : i32}, {id = 225 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 31 : i32}, {id = 225 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 32 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %204 = "neura.data_mov"(%118) {dfg_id = 250 : i32, mapping_locs = [{id = 2001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 5 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 1002 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 1002 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 1002 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %205 = "neura.data_mov"(%194) {dfg_id = 213 : i32, mapping_locs = [{id = 8012 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 12 : i32, resource = "register", time_step = 12 : i32}, {id = 8009 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 9 : i32, resource = "register", time_step = 13 : i32}, {id = 8003 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 8001 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 24 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 29 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 15 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %206 = neura.grant_predicate %204, %205 {dfg_id = 260 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %206 -> %116 {dfg_id = 270 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 2001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 2001 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 2001 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 2001 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 2001 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 2001 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}, {id = 2001 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 26 : i32}, {id = 2001 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 27 : i32}, {id = 2001 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 28 : i32}, {id = 2001 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 29 : i32}, {id = 2001 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 30 : i32}, {id = 2001 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 31 : i32}, {id = 2001 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 32 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %207 = "neura.data_mov"(%115) {dfg_id = 217 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 8008 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 13 : i32}, {id = 8008 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 14 : i32}, {id = 8008 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 15 : i32}, {id = 8008 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 16 : i32}, {id = 8008 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 17 : i32}, {id = 8008 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %208 = "neura.data_mov"(%194) {dfg_id = 212 : i32, mapping_locs = [{id = 8011 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 12 : i32}, {id = 8011 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 13 : i32}, {id = 8011 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 14 : i32}, {id = 8011 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 15 : i32}, {id = 8011 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 16 : i32}, {id = 8011 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 17 : i32}, {id = 8011 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 11 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %209 = neura.grant_predicate %207, %208 {dfg_id = 231 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %209 -> %113 {dfg_id = 246 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 294 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 20 : i32}, {id = 294 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 21 : i32}, {id = 294 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 22 : i32}, {id = 294 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 23 : i32}, {id = 294 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 24 : i32}, {id = 294 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 25 : i32}, {id = 294 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 26 : i32}, {id = 294 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 27 : i32}, {id = 294 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 28 : i32}, {id = 294 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 29 : i32}, {id = 294 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 30 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %210 = "neura.data_mov"(%112) {dfg_id = 157 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 4001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 4001 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %211 = "neura.data_mov"(%194) {dfg_id = 211 : i32, mapping_locs = [{id = 25 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %212 = neura.grant_predicate %210, %211 {dfg_id = 229 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %212 -> %110 {dfg_id = 244 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 4001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 4001 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 4001 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 4001 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 4001 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 4001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 4001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 4001 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 4001 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 4001 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 4001 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 4001 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}, {id = 4001 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 26 : i32}, {id = 4001 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 27 : i32}, {id = 4001 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 28 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %213 = "neura.data_mov"(%109) {dfg_id = 130 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 418 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 418 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 418 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 418 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 418 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 418 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %214 = "neura.data_mov"(%194) {dfg_id = 210 : i32, mapping_locs = [{id = 8010 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 10 : i32, resource = "register", time_step = 12 : i32}, {id = 8006 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 13 : i32}, {id = 26 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 12001 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 12000 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 38 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %215 = neura.grant_predicate %213, %214 {dfg_id = 228 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %215 -> %107 {dfg_id = 243 : i32, mapping_locs = [{id = 42 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 293 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}, {id = 293 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}, {id = 293 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}, {id = 293 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}, {id = 293 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}, {id = 293 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 24 : i32}, {id = 293 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 25 : i32}, {id = 293 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 26 : i32}, {id = 293 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 27 : i32}, {id = 293 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 28 : i32}, {id = 293 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 29 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %216 = "neura.data_mov"(%106) {dfg_id = 155 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 4002 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 4002 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 4002 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 4002 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 4002 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 4002 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %217 = "neura.data_mov"(%194) {dfg_id = 209 : i32, mapping_locs = [{id = 8009 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 9 : i32, resource = "register", time_step = 12 : i32}, {id = 8005 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 8001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 25 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 4000 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 4000 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 4000 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 4000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %218 = neura.grant_predicate %216, %217 {dfg_id = 227 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %218 -> %104 {dfg_id = 242 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 165 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}, {id = 165 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}, {id = 165 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}, {id = 165 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 24 : i32}, {id = 165 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 25 : i32}, {id = 165 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 26 : i32}, {id = 165 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 27 : i32}, {id = 165 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 28 : i32}, {id = 165 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 29 : i32}, {id = 165 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 30 : i32}, {id = 165 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 31 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %219 = "neura.data_mov"(%103) {dfg_id = 164 : i32, mapping_locs = [{id = 194 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 194 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 194 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 194 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 194 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %220 = "neura.data_mov"(%194) {dfg_id = 208 : i32, mapping_locs = [{id = 8008 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 12 : i32}, {id = 8003 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 25 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 10 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 14 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 193 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 193 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 193 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 193 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %221 = neura.grant_predicate %219, %220 {dfg_id = 226 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %221 -> %101 {dfg_id = 241 : i32, mapping_locs = [{id = 198 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 21 : i32}, {id = 198 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 22 : i32}, {id = 198 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 23 : i32}, {id = 198 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 24 : i32}, {id = 198 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 25 : i32}, {id = 198 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 26 : i32}, {id = 198 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 27 : i32}, {id = 198 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 28 : i32}, {id = 198 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 29 : i32}, {id = 198 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 30 : i32}, {id = 198 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 31 : i32}, {id = 198 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 32 : i32}, {id = 198 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 33 : i32}, {id = 198 : i32, index_per_ii = 15 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 34 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %222 = "neura.data_mov"(%100) {dfg_id = 160 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 12 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 8000 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %223 = "neura.data_mov"(%194) {dfg_id = 207 : i32, mapping_locs = [{id = 8007 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 12 : i32}, {id = 8007 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 13 : i32}, {id = 8007 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 14 : i32}, {id = 8007 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 15 : i32}, {id = 8007 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 16 : i32}, {id = 8007 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %224 = neura.grant_predicate %222, %223 {dfg_id = 225 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %224 -> %98 {dfg_id = 240 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 25 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 4005 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}, {id = 4005 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}, {id = 4005 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}, {id = 4005 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}, {id = 4005 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 24 : i32}, {id = 4005 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 25 : i32}, {id = 4005 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 26 : i32}, {id = 4005 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 27 : i32}, {id = 4005 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 28 : i32}, {id = 4005 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 29 : i32}, {id = 4005 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 30 : i32}, {id = 4005 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 31 : i32}, {id = 4005 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 32 : i32}, {id = 4005 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 33 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %225 = "neura.data_mov"(%97) {dfg_id = 139 : i32, mapping_locs = [{id = 164 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 164 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 164 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 164 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %226 = "neura.data_mov"(%194) {dfg_id = 206 : i32, mapping_locs = [{id = 8006 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 12 : i32}, {id = 8001 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 24 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 29 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 165 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 165 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 17 : i32}, {id = 165 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}, {id = 165 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %227 = neura.grant_predicate %225, %226 {dfg_id = 224 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %227 -> %95 {dfg_id = 239 : i32, mapping_locs = [{id = 164 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 164 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 164 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 164 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 164 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 164 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}, {id = 164 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 26 : i32}, {id = 164 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 27 : i32}, {id = 164 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 28 : i32}, {id = 164 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 29 : i32}, {id = 164 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 30 : i32}, {id = 164 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 31 : i32}, {id = 164 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 32 : i32}, {id = 164 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 33 : i32}, {id = 164 : i32, index_per_ii = 15 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 34 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %228 = "neura.data_mov"(%94) {dfg_id = 136 : i32, mapping_locs = [{id = 34 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 448 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 448 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 448 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %229 = "neura.data_mov"(%194) {dfg_id = 205 : i32, mapping_locs = [{id = 8005 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 26 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 38 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 41 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 449 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %230 = neura.grant_predicate %228, %229 {dfg_id = 223 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %230 -> %92 {dfg_id = 238 : i32, mapping_locs = [{id = 45 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 323 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 323 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 323 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 323 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}, {id = 323 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 323 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}, {id = 323 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 24 : i32}, {id = 323 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 25 : i32}, {id = 323 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 26 : i32}, {id = 323 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 27 : i32}, {id = 323 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 28 : i32}, {id = 323 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 29 : i32}, {id = 323 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 30 : i32}, {id = 323 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 31 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %231 = "neura.data_mov"(%109) {dfg_id = 129 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}, {id = 288 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %232 = "neura.data_mov"(%192) {dfg_id = 178 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 289 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %233 = neura.grant_predicate %231, %232 {dfg_id = 190 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %234 = "neura.data_mov"(%106) {dfg_id = 154 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %235 = "neura.data_mov"(%192) {dfg_id = 177 : i32, mapping_locs = [{id = 8001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 24 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 29 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %236 = neura.grant_predicate %234, %235 {dfg_id = 189 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %237 = "neura.data_mov"(%103) {dfg_id = 163 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %238 = "neura.data_mov"(%192) {dfg_id = 176 : i32, mapping_locs = [{id = 8005 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 11 : i32}, {id = 8003 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 25 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 10 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 16 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 28 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %239 = neura.grant_predicate %237, %238 {dfg_id = 188 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %240 = "neura.data_mov"(%100) {dfg_id = 159 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %241 = "neura.data_mov"(%192) {dfg_id = 175 : i32, mapping_locs = [{id = 8004 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 8004 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 8004 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 8004 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 8004 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %242 = neura.grant_predicate %240, %241 {dfg_id = 187 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %243 = "neura.data_mov"(%97) {dfg_id = 138 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %244 = "neura.data_mov"(%192) {dfg_id = 174 : i32, mapping_locs = [{id = 8003 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 26 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 38 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 42 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 289 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 289 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %245 = neura.grant_predicate %243, %244 {dfg_id = 186 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %246 = "neura.data_mov"(%94) {dfg_id = 135 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 320 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %247 = "neura.data_mov"(%192) {dfg_id = 173 : i32, mapping_locs = [{id = 26 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 38 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 41 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 45 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %248 = neura.grant_predicate %246, %247 {dfg_id = 185 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %249 = "neura.data_mov"(%112) {dfg_id = 156 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 4000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %250 = "neura.data_mov"(%192) {dfg_id = 172 : i32, mapping_locs = [{id = 25 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %251 = neura.grant_predicate %249, %250 {dfg_id = 184 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %252 = "neura.data_mov"(%233) {dfg_id = 204 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %253 = "neura.add"(%252) {dfg_id = 222 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 2 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %254 = "neura.data_mov"(%253) {dfg_id = 237 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %255 = "neura.data_mov"(%236) {dfg_id = 203 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %256 = "neura.icmp"(%254, %255) <{cmpType = "eq"}> {dfg_id = 256 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %257 = "neura.data_mov"(%256) {dfg_id = 263 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %258 = "neura.not"(%257) {dfg_id = 273 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %259 = "neura.data_mov"(%253) {dfg_id = 236 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 416 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 416 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %260 = "neura.data_mov"(%258) {dfg_id = 285 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %261 = neura.grant_predicate %259, %260 {dfg_id = 300 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %261 -> %64 {dfg_id = 310 : i32, mapping_locs = [{id = 42 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 290 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 290 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 290 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}, {id = 290 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 290 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %262 = "neura.data_mov"(%239) {dfg_id = 201 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 27 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 8000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %263 = "neura.data_mov"(%258) {dfg_id = 284 : i32, mapping_locs = [{id = 295 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 16 : i32}, {id = 289 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 288 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 27 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %264 = neura.grant_predicate %262, %263 {dfg_id = 299 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %264 -> %61 {dfg_id = 309 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 28 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 33 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 194 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 194 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}, {id = 194 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 25 : i32}, {id = 194 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 26 : i32}, {id = 194 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 27 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %265 = "neura.data_mov"(%242) {dfg_id = 200 : i32, mapping_locs = [{id = 8002 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 8002 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 8002 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 8002 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 8002 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %266 = "neura.data_mov"(%258) {dfg_id = 283 : i32, mapping_locs = [{id = 294 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 16 : i32}, {id = 27 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 8001 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 8001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 8001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %267 = neura.grant_predicate %265, %266 {dfg_id = 298 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %267 -> %58 {dfg_id = 308 : i32, mapping_locs = [{id = 25 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 10 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 166 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 23 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %268 = "neura.data_mov"(%245) {dfg_id = 199 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 416 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 416 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %269 = "neura.data_mov"(%258) {dfg_id = 282 : i32, mapping_locs = [{id = 293 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 288 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 30 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 417 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %270 = neura.grant_predicate %268, %269 {dfg_id = 297 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 1 : i32, y = 3 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %270 -> %55 {dfg_id = 307 : i32, mapping_locs = [{id = 40 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 38 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 42 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 29 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 23 : i32}, {id = 160 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 24 : i32}, {id = 160 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 25 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %271 = "neura.data_mov"(%248) {dfg_id = 198 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 290 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 290 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %272 = "neura.data_mov"(%258) {dfg_id = 281 : i32, mapping_locs = [{id = 292 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 292 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %273 = neura.grant_predicate %271, %272 {dfg_id = 296 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %273 -> %52 {dfg_id = 306 : i32, mapping_locs = [{id = 292 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 292 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 292 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 292 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 292 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 292 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 292 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 292 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}, {id = 292 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 26 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %274 = "neura.data_mov"(%251) {dfg_id = 196 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 8000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 8000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 8000 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 8000 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %275 = "neura.data_mov"(%258) {dfg_id = 280 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %276 = neura.grant_predicate %274, %275 {dfg_id = 295 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %276 -> %49 {dfg_id = 305 : i32, mapping_locs = [{id = 25 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 4004 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 4004 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 4004 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 4004 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 4004 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 4004 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 4004 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 4004 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}, {id = 4004 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 26 : i32}, {id = 4004 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 27 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %277 = "neura.data_mov"(%236) {dfg_id = 202 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 162 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 162 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 162 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %278 = "neura.data_mov"(%258) {dfg_id = 279 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 160 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %279 = neura.grant_predicate %277, %278 {dfg_id = 294 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %279 -> %46 {dfg_id = 304 : i32, mapping_locs = [{id = 163 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 163 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 163 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 163 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}, {id = 163 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 163 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}, {id = 163 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 24 : i32}, {id = 163 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 25 : i32}, {id = 163 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 26 : i32}, {id = 163 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 27 : i32}, {id = 163 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 28 : i32}, {id = 163 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 29 : i32}, {id = 163 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 30 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %280 = "neura.data_mov"(%248) {dfg_id = 197 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %281 = "neura.data_mov"(%256) {dfg_id = 262 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %282 = neura.grant_predicate %280, %281 {dfg_id = 272 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %283 = "neura.data_mov"(%37) {dfg_id = 99 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 288 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 28 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %284 = "neura.data_mov"(%282) {dfg_id = 278 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 320 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %285 = "neura.phi"(%283, %284) {dfg_id = 293 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %286 = "neura.data_mov"(%12) {dfg_id = 45 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %287 = "neura.shl"(%286) {dfg_id = 53 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 2 : i32}], rhs_value = 1 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %288 = "neura.data_mov"(%15) {dfg_id = 42 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 1 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %289 = "neura.div"(%288) {dfg_id = 51 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 2 : i32, x = 1 : i32, y = 2 : i32}], rhs_value = 2 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %290 = "neura.data_mov"(%18) {dfg_id = 40 : i32, mapping_locs = [{id = 224 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %291 = "neura.shl"(%290) {dfg_id = 50 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 3 : i32, y = 1 : i32}], rhs_value = 1 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %292 = "neura.data_mov"(%291) {dfg_id = 56 : i32, mapping_locs = [{id = 224 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %293 = "neura.or"(%292) {dfg_id = 65 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 3 : i32, y = 1 : i32}], rhs_value = 1 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %294 = "neura.data_mov"(%9) {dfg_id = 39 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %295 = "neura.add"(%294) {dfg_id = 49 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 2 : i32, y = 1 : i32}], rhs_value = 1 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %296 = "neura.data_mov"(%295) {dfg_id = 55 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %297 = "neura.icmp"(%296) <{cmpType = "eq"}> {dfg_id = 64 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 8 : i32} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %298 = "neura.data_mov"(%297) {dfg_id = 73 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 160 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %299 = "neura.not"(%298) {dfg_id = 84 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %300 = "neura.data_mov"(%293) {dfg_id = 74 : i32, mapping_locs = [{id = 21 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 197 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 9 : i32}, {id = 197 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 10 : i32}, {id = 197 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 11 : i32}, {id = 197 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 197 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 197 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 197 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 197 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 197 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 17 : i32}, {id = 197 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}, {id = 197 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %301 = "neura.data_mov"(%299) {dfg_id = 98 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 10 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 14 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %302 = neura.grant_predicate %300, %301 {dfg_id = 115 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %302 -> %16 {dfg_id = 128 : i32, mapping_locs = [{id = 18 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 224 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}, {id = 224 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 22 : i32}, {id = 224 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 23 : i32}, {id = 224 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 24 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %303 = "neura.data_mov"(%289) {dfg_id = 57 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}, {id = 29 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 15 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 1001 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}, {id = 1001 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 1001 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 1001 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 1001 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 1001 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 1001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 1001 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 1001 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 1001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 1001 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 1001 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 1001 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %304 = "neura.data_mov"(%299) {dfg_id = 97 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %305 = neura.grant_predicate %303, %304 {dfg_id = 114 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %305 -> %13 {dfg_id = 127 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 16 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %306 = "neura.data_mov"(%287) {dfg_id = 63 : i32, mapping_locs = [{id = 33 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 196 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 10 : i32}, {id = 196 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 196 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 196 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 196 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 196 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 196 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 196 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 196 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %307 = "neura.data_mov"(%299) {dfg_id = 96 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 14 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %308 = neura.grant_predicate %306, %307 {dfg_id = 113 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %308 -> %10 {dfg_id = 126 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 322 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}, {id = 322 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 322 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}, {id = 322 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 322 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}, {id = 322 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 25 : i32}, {id = 322 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 26 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %309 = "neura.data_mov"(%295) {dfg_id = 54 : i32, mapping_locs = [{id = 195 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 195 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 195 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 195 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %310 = "neura.data_mov"(%299) {dfg_id = 95 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %311 = neura.grant_predicate %309, %310 {dfg_id = 112 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %311 -> %7 {dfg_id = 125 : i32, mapping_locs = [{id = 195 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 195 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 195 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 195 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}, {id = 195 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 195 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}, {id = 195 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 24 : i32}, {id = 195 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 25 : i32}, {id = 195 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 26 : i32}, {id = 195 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 27 : i32}, {id = 195 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 28 : i32}, {id = 195 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 29 : i32}, {id = 195 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 30 : i32}, {id = 195 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 31 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %312 = "neura.data_mov"(%285) {dfg_id = 303 : i32, mapping_locs = [{id = 32 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 353 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %313 = "neura.data_mov"(%299) {dfg_id = 94 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}, {id = 28 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 18 : i32}, {id = 32 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %314 = neura.grant_predicate %312, %313 {dfg_id = 315 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 3 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %314 -> %4 {dfg_id = 318 : i32, mapping_locs = [{id = 35 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %315 = "neura.data_mov"(%297) {dfg_id = 71 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 1000 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %316 = "neura.data_mov"(%297) {dfg_id = 72 : i32, mapping_locs = [{id = 163 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 15 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %317 = neura.grant_predicate %315, %316 {dfg_id = 83 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %318 = "neura.data_mov"(%317) {dfg_id = 93 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 17 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %318 : !neura.data {dfg_id = 111 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 18 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 0 : i32}]} -// MAPPING-NEXT: neura.yield {dfg_id = 28 : i32} -// MAPPING-NEXT: } -// YAML: array_config: +// YAML: array_config: // YAML-NEXT: columns: 4 // YAML-NEXT: rows: 4 // YAML-NEXT: compiled_ii: 19 @@ -407,3438 +85,10 @@ // YAML-NEXT: dst_operands: // YAML-NEXT: - operand: "$0" // YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 346 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 311 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 337 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "1" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 260 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2640005 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 348 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 57 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 317 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 313 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3110002 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 325 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 250 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 71 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 83 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3330001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 114 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "2" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 270 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 290001 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 302 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 194 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3130000 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 234 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3220001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 324 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2500000 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 331 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "RETURN_VOID" -// YAML-NEXT: id: 111 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2640004 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "3" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 0 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 195 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 316 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 323 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "4" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SUB" -// YAML-NEXT: id: 338 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 227 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 240 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 58 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3080001 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 80 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 141 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 90 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 122 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 147 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 184 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 229 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 66 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 155 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1760001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 148 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2080001 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 209 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1600000 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2860002 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 980001 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 305 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "5" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SUB" -// YAML-NEXT: id: 340 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 980002 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 1270001 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 224 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_SGT" -// YAML-NEXT: id: 52 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 242 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 69 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 91 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 570001 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 308 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 123 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 307 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 89 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 193 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 233 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 68 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 88 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 120 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 146 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3110001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 189 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 64 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#8" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1760002 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 121 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2080002 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 206 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 720000 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 84 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 279 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 294 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3340002 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2130002 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 960000 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "6" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 113 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 115 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 226 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 62 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 276 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$7" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 309 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 70 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 29 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 92 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 124 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 74 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 259 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$7" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 63 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 277 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 301 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1820001 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 34 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 49 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 326 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 150 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 328 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SUB" -// YAML-NEXT: id: 332 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3340001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2640003 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 208 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 112 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3360000 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "7" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 128 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 271 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 35 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SHL" -// YAML-NEXT: id: 50 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "OR" -// YAML-NEXT: id: 65 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1830001 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3120001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 235 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "8" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 231 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$8" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$11" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 201 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 2400000 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 299 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 298 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 343 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 347 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 47 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 167 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 191 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$11" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$7" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 152 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1770000 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1740000 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 230 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 217 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$8" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2050000 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1760000 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 196 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2100000 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2080000 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2060000 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 85 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 266 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2150000 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2090000 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 187 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2860001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2130000 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 295 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2890001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 160 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 225 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$7" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2870003 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2140000 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 283 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "9" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 1 -// YAML-NEXT: time_step: 0 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#128" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2140001 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2840000 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 243 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 36 -// YAML-NEXT: time_step: 1 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3430001 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 246 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DIV" -// YAML-NEXT: id: 51 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 430000 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3090001 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 67 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 570000 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 86 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 470001 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3070003 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SHL" -// YAML-NEXT: id: 117 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 149 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CAST_TRUNC" -// YAML-NEXT: id: 169 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 87 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 118 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 460001 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 145 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 116 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1520000 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 192 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 178 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 190 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1770001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 222 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 245 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 256 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2060001 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 174 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 273 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1760003 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 198 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 186 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2130001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2830000 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 990001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 296 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2890002 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2010001 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2820000 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 940001 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 310 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "10" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 339 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 940002 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 3 -// YAML-NEXT: time_step: 1 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2140002 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 126 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 38 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2150004 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 470000 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3090002 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 102 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 2 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 37 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SHL" -// YAML-NEXT: id: 53 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 104 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 151 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1340001 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 170 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 119 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 185 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 272 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2640002 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 188 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI" -// YAML-NEXT: id: 293 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 335 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 238 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "11" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 303 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 315 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 261 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 171 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 253 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "12" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3070001 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1730001 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1740001 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 258 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2050001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 274 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 275 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2870002 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2100001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2150001 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "13" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2150002 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 282 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 297 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3070002 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 161 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 133 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "AND" -// YAML-NEXT: id: 168 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4294967294" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 130 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 232 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1730002 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 257 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1740002 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2050002 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 236 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2870001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 300 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2880001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 228 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 199 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "14" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2150003 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 136 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1730003 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 15 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2640001 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 16 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 205 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 17 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 223 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 18 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2880002 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// ASM: # Compiled II: 19 -// ASM: PE(0,0): +// ASM: # Compiled II: 19 +// ASM: PE(0,0): // ASM-NEXT: { // ASM-NEXT: STORE, [$0], [EAST, RED] (t=20, inv_iters=1) // ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=20, inv_iters=1) @@ -3852,601 +102,5 @@ // ASM-NEXT: { // ASM-NEXT: ADD, [NORTH, RED], [EAST, RED] -> [$0] (t=18, inv_iters=0) // ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(1,0): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [NORTH, RED] -> [EAST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: STORE, [NORTH, RED], [$3] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [EAST, RED] -> [EAST, RED], [$0] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$3] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [WEST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [EAST, RED] -> [EAST, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [EAST, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [NORTH, RED] -> [NORTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(2,0): -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$1] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GEP, [NORTH, RED] -> [WEST, RED], [$0] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [$0] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [$0], [WEST, RED], [$1] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: MUL, [EAST, RED], [$0] -> [NORTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [WEST, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: ADD, [EAST, RED], [WEST, RED] -> [NORTH, RED], [WEST, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: RETURN_VOID, [WEST, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [WEST, RED] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(3,0): -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#0] -> [WEST, RED], [NORTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [NORTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [WEST, RED], [$0] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [NORTH, RED] -> [WEST, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM: PE(0,1): -// ASM-NEXT: { -// ASM-NEXT: SUB, [NORTH, RED], [EAST, RED] -> [SOUTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$0] -> [EAST, RED] (t=20, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$5] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=3, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [EAST, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$3] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$0] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$4] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [NORTH, RED], [$1], [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [NORTH, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [NORTH, RED] -> [$1] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$2] -> [NORTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [EAST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$3], [$5] -> [$0], [NORTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [EAST, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [EAST, RED] (t=18, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$4] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(1,1): -// ASM-NEXT: { -// ASM-NEXT: SUB, [NORTH, RED], [EAST, RED] -> [SOUTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=19, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [SOUTH, RED] -> [NORTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$4], [$5] -> [$4] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: ICMP_SGT, [NORTH, RED], [#0] -> [EAST, RED], [$0], [$2], [NORTH, RED], [WEST, RED] (t=2, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$5] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [NORTH, RED], [$0] -> [$0], [WEST, RED], [$1] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$0] -> [$0] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=4, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$6] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$6] -> [NORTH, RED], [WEST, RED] (t=5, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$0] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$0] -> [$0], [$1] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [NORTH, RED] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$0] -> [EAST, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [NORTH, RED], [$2] -> [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$0] -> [$0] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$3] -> [$0] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$5] -> [WEST, RED], [$0] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [NORTH, RED], [$2] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [EAST, RED], [#8] -> [$0], [SOUTH, RED], [$3] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$4] -> [$4], [NORTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$5] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$3] -> [SOUTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [WEST, RED], [SOUTH, RED], [$1], [EAST, RED], [NORTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$0] -> [$3] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(2,1): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$4], [WEST, RED] -> [NORTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$5], [WEST, RED] -> [EAST, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$1] -> [$6] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=3, inv_iters=0) -// ASM-NEXT: GRANT_PREDICATE, [$7], [NORTH, RED] -> [$4] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$2] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [EAST, RED], [$0] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [$0] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [NORTH, RED], [$2] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$5] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [WEST, RED], [$4] -> [$0], [$7] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$4] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: ADD, [NORTH, RED], [$0] -> [SOUTH, RED], [$0] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [EAST, RED], [WEST, RED] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$3] -> [$0] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [WEST, RED], [$3] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: MUL, [SOUTH, RED], [EAST, RED] -> [$0] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$2], [$6] -> [$2], [NORTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: SUB, [$0], [$1] -> [$0], [NORTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [WEST, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$3], [WEST, RED] -> [$3] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(3,1): -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$0] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$1] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$0] -> [WEST, RED], [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: SHL, [$0], [#1] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: OR, [$0], [#1] -> [WEST, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$1] -> [WEST, RED], [SOUTH, RED], [NORTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(0,2): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$8], [$11] -> [EAST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=19, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [$0] -> [SOUTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [EAST, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$1] -> [SOUTH, RED] (t=21, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0], [$3] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [EAST, RED], [SOUTH, RED] -> [$0], [EAST, RED], [$1], [$3], [$4], [NORTH, RED], [SOUTH, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [$1], [$6], [$11], [SOUTH, RED], [$3], [$7], [$5] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$3] -> [NORTH, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [EAST, RED] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$8] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$5] -> [NORTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$3] -> [SOUTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$6] -> [NORTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$3] -> [SOUTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [SOUTH, RED] -> [EAST, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$3] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$6] -> [NORTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [SOUTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [SOUTH, RED], [$4] -> [$2] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [EAST, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$7] -> [$0] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$1] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(1,2): -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#128] -> [$0] (t=0, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=19, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$5] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [SOUTH, RED] -> [SOUTH, RED], [$1], [$0] (t=1, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=20, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$6] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DIV, [$0], [#2] -> [$0] (t=2, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [SOUTH, RED] (t=2, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [EAST, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [EAST, RED], [SOUTH, RED] -> [$1], [$0] (t=3, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [SOUTH, RED] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [EAST, RED], [$0], [$2] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=4, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [SOUTH, RED] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: SHL, [$0], [#1] -> [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [SOUTH, RED] -> [$0], [NORTH, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: CAST_TRUNC, [$0] -> [SOUTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$4] -> [EAST, RED], [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$3] -> [EAST, RED], [NORTH, RED], [$0] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [WEST, RED], [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$2], [$5] -> [NORTH, RED], [$0] (t=11, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [NORTH, RED], [$6] -> [NORTH, RED], [WEST, RED] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [$0] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [$0], [NORTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$3] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [SOUTH, RED] -> [$0], [EAST, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [NORTH, RED], [$0], [$6], [$4], [WEST, RED], [SOUTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [SOUTH, RED], [$1] -> [NORTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$6] -> [WEST, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$4] -> [$4] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=18, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$2] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(2,2): -// ASM-NEXT: { -// ASM-NEXT: ADD, [NORTH, RED], [$0] -> [WEST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#0] -> [$0] (t=1, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=20, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [SOUTH, RED] -> [$2] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [EAST, RED] -> [WEST, RED], [$0] (t=2, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=3, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [SOUTH, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#1] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [WEST, RED], [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: SHL, [$0], [#1] -> [SOUTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$2] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$1], [SOUTH, RED] -> [EAST, RED], [$0] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$2], [$3] -> [NORTH, RED], [$0] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [WEST, RED], [$0] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [WEST, RED] -> [$0] (t=16, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [SOUTH, RED], [WEST, RED] -> [WEST, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: PHI, [WEST, RED], [$0] -> [EAST, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=18, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$3] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(3,2): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [WEST, RED] -> [WEST, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [WEST, RED] -> [SOUTH, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GEP, [WEST, RED] -> [SOUTH, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM: PE(0,3): -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [EAST, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GEP, [EAST, RED] -> [$0], [SOUTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [EAST, RED] -> [EAST, RED], [SOUTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [SOUTH, RED], [EAST, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(1,3): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [WEST, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [SOUTH, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: AND, [$0], [#4294967294] -> [SOUTH, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$2] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$1], [SOUTH, RED] -> [WEST, RED], [$0] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [WEST, RED], [EAST, RED] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=15, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [WEST, RED] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [WEST, RED] -> [SOUTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) -// ASM: PE(2,3): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=15, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=15) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=16, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=16) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [SOUTH, RED] (t=17, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=17) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=18, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=18) diff --git a/test/e2e/gemm/gemm_kernel.mlir b/test/e2e/gemm/gemm_kernel.mlir index 8f59cd9a..e61c226d 100644 --- a/test/e2e/gemm/gemm_kernel.mlir +++ b/test/e2e/gemm/gemm_kernel.mlir @@ -22,7 +22,7 @@ // RUN: FileCheck %s --input-file=tmp-generated-instructions.yaml --check-prefix=YAML // RUN: FileCheck %s --input-file=tmp-generated-instructions.asm --check-prefix=ASM // -// MAPPING: func.func @kernel_int(%arg0: i32 {llvm.noundef}, %arg1: i32 {llvm.noundef}, %arg2: i32 {llvm.noundef}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg5: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 17 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 13 : i32, res_mii = 6 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { +// MAPPING: func.func @kernel_int(%arg0: i32 {llvm.noundef}, %arg1: i32 {llvm.noundef}, %arg2: i32 {llvm.noundef}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg5: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 17 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 13 : i32, res_mii = 6 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { // MAPPING-NEXT: %0 = "neura.grant_once"() <{constant_value = "%arg0"}> {dfg_id = 0 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 0 : i32, y = 0 : i32}]} : () -> !neura.data // MAPPING-NEXT: %1 = "neura.constant"() <{value = "%arg0"}> {dfg_id = 1 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 0 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 0 : i32, x = 1 : i32, y = 2 : i32}]} : () -> !neura.data // MAPPING-NEXT: %2 = "neura.grant_once"() <{constant_value = "%arg1"}> {dfg_id = 2 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 2 : i32, y = 1 : i32}]} : () -> !neura.data @@ -73,64 +73,64 @@ // MAPPING-NEXT: %47 = neura.zext %46 {dfg_id = 69 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data -> !neura.data // MAPPING-NEXT: %48 = neura.reserve {dfg_id = 7 : i32} : !neura.data // MAPPING-NEXT: %49 = "neura.data_mov"(%43) {dfg_id = 78 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %50 = neura.phi_start %49, %48 {dfg_id = 84 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %50 = "neura.phi"(%48, %49) {dfg_id = 84 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %51 = neura.reserve {dfg_id = 8 : i32} : !neura.data // MAPPING-NEXT: %52 = "neura.data_mov"(%45) {dfg_id = 77 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %53 = neura.phi_start %52, %51 {dfg_id = 83 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %53 = "neura.phi"(%51, %52) {dfg_id = 83 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %54 = neura.reserve {dfg_id = 9 : i32} : !neura.data // MAPPING-NEXT: %55 = "neura.data_mov"(%47) {dfg_id = 76 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %56 = neura.phi_start %55, %54 {dfg_id = 82 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %56 = "neura.phi"(%54, %55) {dfg_id = 82 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %57 = neura.reserve {dfg_id = 10 : i32} : !neura.data // MAPPING-NEXT: %58 = "neura.data_mov"(%36) {dfg_id = 62 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %59 = neura.phi_start %58, %57 {dfg_id = 68 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %59 = "neura.phi"(%57, %58) {dfg_id = 68 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %60 = neura.reserve {dfg_id = 11 : i32} : !neura.data // MAPPING-NEXT: %61 = "neura.data_mov"(%36) {dfg_id = 61 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 5 : i32}, {id = 14 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}, {id = 192 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}, {id = 192 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}, {id = 192 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %62 = neura.phi_start %61, %60 {dfg_id = 67 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %62 = "neura.phi"(%60, %61) {dfg_id = 67 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %63 = neura.reserve {dfg_id = 12 : i32} : !neura.data // MAPPING-NEXT: %64 = "neura.data_mov"(%50) {dfg_id = 93 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %65 = neura.phi_start %64, %63 {dfg_id = 101 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %65 = "neura.phi"(%63, %64) {dfg_id = 101 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %66 = neura.reserve {dfg_id = 13 : i32} : !neura.data // MAPPING-NEXT: %67 = "neura.data_mov"(%53) {dfg_id = 92 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %68 = neura.phi_start %67, %66 {dfg_id = 100 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %68 = "neura.phi"(%66, %67) {dfg_id = 100 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %69 = neura.reserve {dfg_id = 14 : i32} : !neura.data // MAPPING-NEXT: %70 = "neura.data_mov"(%56) {dfg_id = 91 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %71 = neura.phi_start %70, %69 {dfg_id = 99 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %71 = "neura.phi"(%69, %70) {dfg_id = 99 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %72 = neura.reserve {dfg_id = 15 : i32} : !neura.data // MAPPING-NEXT: %73 = "neura.data_mov"(%59) {dfg_id = 75 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %74 = neura.phi_start %73, %72 {dfg_id = 81 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %74 = "neura.phi"(%72, %73) {dfg_id = 81 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %75 = neura.reserve {dfg_id = 16 : i32} : !neura.data // MAPPING-NEXT: %76 = "neura.data_mov"(%62) {dfg_id = 73 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %77 = neura.phi_start %76, %75 {dfg_id = 79 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %77 = "neura.phi"(%75, %76) {dfg_id = 79 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %78 = neura.reserve {dfg_id = 17 : i32} : !neura.data // MAPPING-NEXT: %79 = "neura.data_mov"(%59) {dfg_id = 74 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}, {id = 4000 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}, {id = 4000 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %80 = neura.phi_start %79, %78 {dfg_id = 80 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %80 = "neura.phi"(%78, %79) {dfg_id = 80 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %81 = "neura.data_mov"(%77) {dfg_id = 86 : i32, mapping_locs = [{id = 194 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 194 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 194 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %82 = "neura.data_mov"(%80) {dfg_id = 88 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 15 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 3 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 7 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 192 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %83 = "neura.gep"(%81, %82) <{operandSegmentSizes = array}> {dfg_id = 96 : i32, lhs_value = "%arg4", mapping_locs = [{id = 6 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %84 = neura.reserve {dfg_id = 18 : i32} : !neura.data // MAPPING-NEXT: %85 = "neura.data_mov"(%74) {dfg_id = 90 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}, {id = 195 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 8 : i32}, {id = 195 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 9 : i32}, {id = 195 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 10 : i32}, {id = 195 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 195 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 195 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 195 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 195 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %86 = neura.phi_start %85, %84 {dfg_id = 98 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %86 = "neura.phi"(%84, %85) {dfg_id = 98 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %87 = neura.reserve {dfg_id = 19 : i32} : !neura.data // MAPPING-NEXT: %88 = "neura.data_mov"(%65) {dfg_id = 116 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %89 = neura.phi_start %88, %87 {dfg_id = 123 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %89 = "neura.phi"(%87, %88) {dfg_id = 123 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %90 = neura.reserve {dfg_id = 20 : i32} : !neura.data // MAPPING-NEXT: %91 = "neura.data_mov"(%68) {dfg_id = 115 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %92 = neura.phi_start %91, %90 {dfg_id = 122 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %92 = "neura.phi"(%90, %91) {dfg_id = 122 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %93 = neura.reserve {dfg_id = 21 : i32} : !neura.data // MAPPING-NEXT: %94 = "neura.data_mov"(%71) {dfg_id = 114 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %95 = neura.phi_start %94, %93 {dfg_id = 121 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %95 = "neura.phi"(%93, %94) {dfg_id = 121 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %96 = neura.reserve {dfg_id = 22 : i32} : !neura.data // MAPPING-NEXT: %97 = "neura.data_mov"(%77) {dfg_id = 85 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %98 = neura.phi_start %97, %96 {dfg_id = 94 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %98 = "neura.phi"(%96, %97) {dfg_id = 94 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %99 = neura.reserve {dfg_id = 23 : i32} : !neura.data // MAPPING-NEXT: %100 = "neura.data_mov"(%80) {dfg_id = 87 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %101 = neura.phi_start %100, %99 {dfg_id = 95 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %101 = "neura.phi"(%99, %100) {dfg_id = 95 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %102 = neura.reserve {dfg_id = 24 : i32} : !neura.data // MAPPING-NEXT: %103 = "neura.data_mov"(%83) {dfg_id = 108 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %104 = neura.phi_start %103, %102 {dfg_id = 117 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %104 = "neura.phi"(%102, %103) {dfg_id = 117 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %105 = neura.reserve {dfg_id = 25 : i32} : !neura.data // MAPPING-NEXT: %106 = "neura.data_mov"(%74) {dfg_id = 89 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %107 = neura.phi_start %106, %105 {dfg_id = 97 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %107 = "neura.phi"(%105, %106) {dfg_id = 97 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %108 = "neura.data_mov"(%104) {dfg_id = 125 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %109 = "neura.load"(%108) {dfg_id = 138 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %110 = "neura.data_mov"(%101) {dfg_id = 107 : i32, mapping_locs = [{id = 4002 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 4002 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 4002 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 4002 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 4002 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data @@ -142,206 +142,49 @@ // MAPPING-NEXT: %116 = "neura.data_mov"(%109) {dfg_id = 142 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 2 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %117 = "neura.mul"(%115, %116) {dfg_id = 152 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %118 = "neura.data_mov"(%98) {dfg_id = 104 : i32, mapping_locs = [{id = 196 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 196 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 196 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 196 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 196 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %119 = "neura.data_mov"(%107) {dfg_id = 110 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 197 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 9 : i32}, {id = 197 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 10 : i32}, {id = 197 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 11 : i32}, {id = 197 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 197 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 197 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 197 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 197 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %120 = "neura.gep"(%118, %119) <{operandSegmentSizes = array}> {dfg_id = 119 : i32, lhs_value = "%arg3", mapping_locs = [{id = 6 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %121 = "neura.data_mov"(%120) {dfg_id = 129 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %122 = "neura.load"(%121) {dfg_id = 139 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %123 = "neura.data_mov"(%122) {dfg_id = 143 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %124 = "neura.data_mov"(%117) {dfg_id = 160 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %125 = "neura.add"(%123, %124) {dfg_id = 181 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %126 = "neura.data_mov"(%125) {dfg_id = 191 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %127 = "neura.data_mov"(%120) {dfg_id = 128 : i32, mapping_locs = [{id = 196 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 19 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}, {id = 2000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%126, %127) {dfg_id = 202 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %128 = "neura.data_mov"(%107) {dfg_id = 109 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %129 = "neura.add"(%128) {dfg_id = 118 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %130 = "neura.data_mov"(%129) {dfg_id = 127 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %131 = "neura.data_mov"(%95) {dfg_id = 133 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %132 = "neura.icmp"(%130, %131) <{cmpType = "eq"}> {dfg_id = 141 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %133 = "neura.data_mov"(%132) {dfg_id = 151 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %134 = "neura.not"(%133) {dfg_id = 159 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %135 = "neura.data_mov"(%129) {dfg_id = 126 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 162 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 162 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 162 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 162 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %136 = "neura.data_mov"(%134) {dfg_id = 180 : i32, mapping_locs = [{id = 163 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 163 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 163 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %137 = neura.grant_predicate %135, %136 {dfg_id = 190 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %137 -> %105 {dfg_id = 201 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 161 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 161 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 161 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 161 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 161 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 161 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 161 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 161 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 161 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 161 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %138 = "neura.data_mov"(%104) {dfg_id = 124 : i32, mapping_locs = [{id = 199 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 15 : i32}, {id = 199 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 16 : i32}, {id = 199 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 17 : i32}, {id = 199 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 18 : i32}, {id = 199 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 19 : i32}, {id = 199 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 20 : i32}, {id = 199 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 21 : i32}, {id = 199 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %139 = "neura.data_mov"(%134) {dfg_id = 179 : i32, mapping_locs = [{id = 168 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 11 : i32}, {id = 161 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 160 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 14 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 200 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 15 : i32}, {id = 200 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 16 : i32}, {id = 200 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 17 : i32}, {id = 200 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 18 : i32}, {id = 200 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 19 : i32}, {id = 200 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 20 : i32}, {id = 200 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 21 : i32}, {id = 200 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %140 = neura.grant_predicate %138, %139 {dfg_id = 189 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 23 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %140 -> %102 {dfg_id = 200 : i32, mapping_locs = [{id = 199 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 23 : i32}, {id = 199 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 24 : i32}, {id = 199 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 25 : i32}, {id = 199 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 26 : i32}, {id = 199 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 27 : i32}, {id = 199 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 28 : i32}, {id = 199 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 29 : i32}, {id = 199 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 30 : i32}, {id = 199 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 31 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %141 = "neura.data_mov"(%101) {dfg_id = 106 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 8001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 8001 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 8001 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 8001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 8001 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 8001 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 8001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 8001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 8001 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %142 = "neura.data_mov"(%134) {dfg_id = 178 : i32, mapping_locs = [{id = 167 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 11 : i32}, {id = 13 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 12 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 8002 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 8002 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 8002 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 8002 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 8002 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 8002 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %143 = neura.grant_predicate %141, %142 {dfg_id = 188 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %143 -> %99 {dfg_id = 199 : i32, mapping_locs = [{id = 25 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 4002 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 4002 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}, {id = 4002 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 4002 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}, {id = 4002 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 25 : i32}, {id = 4002 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 26 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %144 = "neura.data_mov"(%98) {dfg_id = 103 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 2000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 2000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 2000 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 2000 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 2000 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 2000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %145 = "neura.data_mov"(%134) {dfg_id = 177 : i32, mapping_locs = [{id = 166 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 11 : i32}, {id = 15 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 3 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 2001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 2001 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 2001 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 2001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 2001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %146 = neura.grant_predicate %144, %145 {dfg_id = 187 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %146 -> %96 {dfg_id = 198 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 196 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 196 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 196 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 196 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 196 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 196 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}, {id = 196 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 26 : i32}, {id = 196 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 27 : i32}, {id = 196 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 28 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %147 = "neura.data_mov"(%95) {dfg_id = 132 : i32, mapping_locs = [{id = 289 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 289 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 289 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %148 = "neura.data_mov"(%134) {dfg_id = 176 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %149 = neura.grant_predicate %147, %148 {dfg_id = 186 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %149 -> %93 {dfg_id = 197 : i32, mapping_locs = [{id = 289 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 289 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 289 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 289 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 289 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 289 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 289 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 289 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 289 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 289 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 289 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 289 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 289 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 289 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %150 = "neura.data_mov"(%92) {dfg_id = 135 : i32, mapping_locs = [{id = 322 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 322 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 322 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 322 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 322 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 322 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 322 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 322 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 322 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %151 = "neura.data_mov"(%134) {dfg_id = 175 : i32, mapping_locs = [{id = 165 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 11 : i32}, {id = 16 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 28 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 323 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 323 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 323 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 323 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 323 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 323 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %152 = neura.grant_predicate %150, %151 {dfg_id = 185 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %152 -> %90 {dfg_id = 196 : i32, mapping_locs = [{id = 323 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 323 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}, {id = 323 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 323 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}, {id = 323 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 24 : i32}, {id = 323 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 25 : i32}, {id = 323 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 26 : i32}, {id = 323 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 27 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %153 = "neura.data_mov"(%89) {dfg_id = 137 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 1 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 1 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 1 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 1 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %154 = "neura.data_mov"(%134) {dfg_id = 174 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 2 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 3 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 3 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 3 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 3 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 3 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 3 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %155 = neura.grant_predicate %153, %154 {dfg_id = 184 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 0 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %155 -> %87 {dfg_id = 195 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 4006 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 20 : i32}, {id = 4006 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 21 : i32}, {id = 4006 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 22 : i32}, {id = 4006 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 23 : i32}, {id = 4006 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 24 : i32}, {id = 4006 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 25 : i32}, {id = 4006 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 26 : i32}, {id = 4006 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 27 : i32}, {id = 4006 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 28 : i32}, {id = 4006 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 29 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %156 = "neura.data_mov"(%86) {dfg_id = 113 : i32, mapping_locs = [{id = 18 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 224 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 224 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %157 = "neura.data_mov"(%134) {dfg_id = 173 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 10 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 14 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 18 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 225 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 225 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 225 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 225 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %158 = neura.grant_predicate %156, %157 {dfg_id = 183 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 3 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %158 -> %84 {dfg_id = 194 : i32, mapping_locs = [{id = 21 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 198 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 20 : i32}, {id = 198 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 21 : i32}, {id = 198 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 22 : i32}, {id = 198 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 23 : i32}, {id = 198 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 24 : i32}, {id = 198 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 25 : i32}, {id = 198 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 26 : i32}, {id = 198 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 27 : i32}, {id = 198 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 28 : i32}, {id = 198 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 29 : i32}, {id = 198 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 30 : i32}, {id = 198 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 31 : i32}, {id = 198 : i32, index_per_ii = 15 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 32 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %159 = "neura.data_mov"(%101) {dfg_id = 105 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 160 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %160 = "neura.data_mov"(%132) {dfg_id = 150 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 161 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %161 = neura.grant_predicate %159, %160 {dfg_id = 158 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %162 = "neura.data_mov"(%92) {dfg_id = 134 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %163 = "neura.data_mov"(%132) {dfg_id = 149 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 20 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %164 = neura.grant_predicate %162, %163 {dfg_id = 157 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %165 = "neura.data_mov"(%98) {dfg_id = 102 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %166 = "neura.data_mov"(%132) {dfg_id = 148 : i32, mapping_locs = [{id = 163 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 10 : i32}, {id = 14 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 193 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %167 = neura.grant_predicate %165, %166 {dfg_id = 156 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %168 = "neura.data_mov"(%89) {dfg_id = 136 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %169 = "neura.data_mov"(%132) {dfg_id = 147 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 4001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 4001 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 4001 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %170 = neura.grant_predicate %168, %169 {dfg_id = 155 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %171 = "neura.data_mov"(%86) {dfg_id = 112 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 192 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %172 = "neura.data_mov"(%132) {dfg_id = 146 : i32, mapping_locs = [{id = 164 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 10 : i32}, {id = 164 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 14 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 193 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 193 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 193 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 193 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 193 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %173 = neura.grant_predicate %171, %172 {dfg_id = 154 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %174 = "neura.data_mov"(%95) {dfg_id = 131 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 288 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %175 = "neura.data_mov"(%132) {dfg_id = 145 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %176 = neura.grant_predicate %174, %175 {dfg_id = 153 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %177 = "neura.data_mov"(%161) {dfg_id = 172 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %178 = "neura.add"(%177) {dfg_id = 182 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %179 = "neura.data_mov"(%178) {dfg_id = 193 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %180 = "neura.data_mov"(%164) {dfg_id = 171 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 288 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %181 = "neura.icmp"(%179, %180) <{cmpType = "eq"}> {dfg_id = 203 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %182 = "neura.data_mov"(%181) {dfg_id = 209 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %183 = "neura.not"(%182) {dfg_id = 215 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %184 = "neura.data_mov"(%178) {dfg_id = 192 : i32, mapping_locs = [{id = 164 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 164 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 164 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 164 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %185 = "neura.data_mov"(%183) {dfg_id = 227 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 160 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %186 = neura.grant_predicate %184, %185 {dfg_id = 234 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %186 -> %78 {dfg_id = 242 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 4001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 4001 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 4001 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 4001 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 4001 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 4001 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 4001 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 4001 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %187 = "neura.data_mov"(%167) {dfg_id = 168 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 324 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 324 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 324 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 324 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 324 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 324 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 324 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %188 = "neura.data_mov"(%183) {dfg_id = 226 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 41 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 45 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 325 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}, {id = 325 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}, {id = 325 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %189 = neura.grant_predicate %187, %188 {dfg_id = 233 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %189 -> %75 {dfg_id = 241 : i32, mapping_locs = [{id = 33 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 194 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}, {id = 194 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 194 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}, {id = 194 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 25 : i32}, {id = 194 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 26 : i32}, {id = 194 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 27 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %190 = "neura.data_mov"(%173) {dfg_id = 164 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %191 = "neura.data_mov"(%183) {dfg_id = 225 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 28 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 320 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}, {id = 320 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %192 = neura.grant_predicate %190, %191 {dfg_id = 232 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %192 -> %72 {dfg_id = 240 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 29 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 162 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 162 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}, {id = 162 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %193 = "neura.data_mov"(%176) {dfg_id = 162 : i32, mapping_locs = [{id = 292 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 292 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 292 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 292 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 292 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 292 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 292 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 292 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %194 = "neura.data_mov"(%183) {dfg_id = 224 : i32, mapping_locs = [{id = 293 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 293 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 293 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 17 : i32}, {id = 293 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %195 = neura.grant_predicate %193, %194 {dfg_id = 231 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %195 -> %69 {dfg_id = 239 : i32, mapping_locs = [{id = 290 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 290 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}, {id = 290 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 290 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}, {id = 290 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 290 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %196 = "neura.data_mov"(%164) {dfg_id = 170 : i32, mapping_locs = [{id = 321 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 321 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 321 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 321 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %197 = "neura.data_mov"(%183) {dfg_id = 223 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %198 = neura.grant_predicate %196, %197 {dfg_id = 230 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %198 -> %66 {dfg_id = 238 : i32, mapping_locs = [{id = 321 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}, {id = 321 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 17 : i32}, {id = 321 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 321 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 321 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 321 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}, {id = 321 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 321 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 321 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 321 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}, {id = 321 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 26 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %199 = "neura.data_mov"(%170) {dfg_id = 166 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 16 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 295 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 16 : i32}, {id = 295 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 17 : i32}, {id = 295 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 18 : i32}, {id = 295 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 19 : i32}, {id = 295 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 20 : i32}, {id = 295 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %200 = "neura.data_mov"(%183) {dfg_id = 222 : i32, mapping_locs = [{id = 296 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 15 : i32}, {id = 296 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 16 : i32}, {id = 296 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 17 : i32}, {id = 296 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 18 : i32}, {id = 296 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 19 : i32}, {id = 296 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 20 : i32}, {id = 296 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 8 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %201 = neura.grant_predicate %199, %200 {dfg_id = 229 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %201 -> %63 {dfg_id = 237 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 25 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 23 : i32}, {id = 4007 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 24 : i32}, {id = 4007 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 25 : i32}, {id = 4007 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 26 : i32}, {id = 4007 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 27 : i32}, {id = 4007 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 7 : i32, resource = "register", time_step = 28 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %202 = "neura.data_mov"(%167) {dfg_id = 167 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 160 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %203 = "neura.data_mov"(%181) {dfg_id = 208 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %204 = neura.grant_predicate %202, %203 {dfg_id = 214 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %205 = "neura.data_mov"(%170) {dfg_id = 165 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %206 = "neura.data_mov"(%181) {dfg_id = 207 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %207 = neura.grant_predicate %205, %206 {dfg_id = 213 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %208 = "neura.data_mov"(%173) {dfg_id = 163 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %209 = "neura.data_mov"(%181) {dfg_id = 206 : i32, mapping_locs = [{id = 30 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 41 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 45 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 33 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 193 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %210 = neura.grant_predicate %208, %209 {dfg_id = 212 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %211 = "neura.data_mov"(%176) {dfg_id = 161 : i32, mapping_locs = [{id = 290 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 290 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}, {id = 290 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 290 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 290 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %212 = "neura.data_mov"(%181) {dfg_id = 205 : i32, mapping_locs = [{id = 291 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 291 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %213 = neura.grant_predicate %211, %212 {dfg_id = 211 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %214 = "neura.data_mov"(%164) {dfg_id = 169 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 320 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 320 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %215 = "neura.data_mov"(%181) {dfg_id = 204 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %216 = neura.grant_predicate %214, %215 {dfg_id = 210 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %217 = "neura.data_mov"(%204) {dfg_id = 221 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %218 = "neura.add"(%217) {dfg_id = 228 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %219 = "neura.data_mov"(%218) {dfg_id = 236 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 162 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %220 = "neura.data_mov"(%207) {dfg_id = 220 : i32, mapping_locs = [{id = 24 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 29 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 160 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %221 = "neura.icmp"(%219, %220) <{cmpType = "eq"}> {dfg_id = 243 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %222 = "neura.data_mov"(%221) {dfg_id = 246 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %223 = "neura.not"(%222) {dfg_id = 248 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %224 = "neura.data_mov"(%218) {dfg_id = 235 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 195 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 195 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 195 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 195 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 195 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %225 = "neura.data_mov"(%223) {dfg_id = 254 : i32, mapping_locs = [{id = 164 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 14 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 192 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %226 = neura.grant_predicate %224, %225 {dfg_id = 260 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %226 -> %60 {dfg_id = 266 : i32, mapping_locs = [{id = 193 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 22 : i32}, {id = 193 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}, {id = 193 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}, {id = 193 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 25 : i32}, {id = 193 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 26 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %227 = "neura.data_mov"(%210) {dfg_id = 218 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 160 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %228 = "neura.data_mov"(%223) {dfg_id = 253 : i32, mapping_locs = [{id = 165 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}, {id = 165 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %229 = neura.grant_predicate %227, %228 {dfg_id = 259 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %229 -> %57 {dfg_id = 265 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 4003 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %230 = "neura.data_mov"(%213) {dfg_id = 217 : i32, mapping_locs = [{id = 294 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 16 : i32}, {id = 294 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 17 : i32}, {id = 294 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 18 : i32}, {id = 294 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 19 : i32}, {id = 294 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %231 = "neura.data_mov"(%223) {dfg_id = 252 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 16 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %232 = neura.grant_predicate %230, %231 {dfg_id = 258 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %232 -> %54 {dfg_id = 264 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}, {id = 288 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 22 : i32}, {id = 288 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 23 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %233 = "neura.data_mov"(%216) {dfg_id = 216 : i32, mapping_locs = [{id = 33 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 15 : i32}, {id = 194 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 194 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 194 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 194 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %234 = "neura.data_mov"(%223) {dfg_id = 251 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %235 = neura.grant_predicate %233, %234 {dfg_id = 257 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %235 -> %51 {dfg_id = 263 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 322 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 322 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}, {id = 322 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 322 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}, {id = 322 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 25 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %236 = "neura.data_mov"(%207) {dfg_id = 219 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 15 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 24 : i32, index_per_ii = 16 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 16 : i32}, {id = 291 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 291 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 291 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %237 = "neura.data_mov"(%223) {dfg_id = 250 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %238 = neura.grant_predicate %236, %237 {dfg_id = 256 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %238 -> %48 {dfg_id = 262 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 25 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 4005 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}, {id = 4005 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}, {id = 4005 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 24 : i32}, {id = 4005 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 25 : i32}, {id = 4005 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 26 : i32}, {id = 4005 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 27 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %239 = "neura.data_mov"(%221) {dfg_id = 244 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 162 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %240 = "neura.data_mov"(%221) {dfg_id = 245 : i32, mapping_locs = [{id = 163 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 163 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %241 = neura.grant_predicate %239, %240 {dfg_id = 247 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %242 = "neura.data_mov"(%41) {dfg_id = 72 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 1000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 1000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 1000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %243 = "neura.data_mov"(%241) {dfg_id = 249 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %244 = "neura.phi"(%242, %243) {dfg_id = 255 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %245 = "neura.data_mov"(%244) {dfg_id = 261 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %245 : !neura.data {dfg_id = 267 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 1 : i32, y = 0 : i32}]} -// MAPPING-NEXT: neura.yield {dfg_id = 26 : i32} -// MAPPING-NEXT: } -// MAPPING-NEXT: } -// -// YAML: array_config: + +// YAML: array_config: // YAML-NEXT: columns: 4 // YAML-NEXT: rows: 4 // YAML-NEXT: compiled_ii: 17 -// YAML: core_id: "0" -// YAML: entries: -// YAML: - entry_id: "entry0" -// YAML: instructions: -// YAML: - index_per_ii: 0 -// YAML: operations: -// YAML: - opcode: "GRANT_PREDICATE" -// YAML: - index_per_ii: 1 -// YAML: operations: -// YAML: - opcode: "MUL" -// YAML: - index_per_ii: 2 -// YAML: operations: -// YAML: - opcode: "GRANT_PREDICATE" -// YAML: - index_per_ii: 4 -// YAML: operations: -// YAML: - opcode: "GRANT_ONCE" -// YAML: - opcode: "DATA_MOV" -// YAML: - index_per_ii: 5 -// YAML: operations: -// YAML: - opcode: "DATA_MOV" -// YAML: - index_per_ii: 8 -// YAML: operations: -// YAML: - opcode: "GRANT_ONCE" -// YAML: - index_per_ii: 9 -// YAML: operations: -// YAML: - opcode: "GRANT_PREDICATE" -// YAML: - index_per_ii: 10 -// YAML: operations: -// YAML: - opcode: "ZEXT" -// YAML: - index_per_ii: 13 -// YAML: operations: -// YAML: - opcode: "DATA_MOV" -// YAML: - index_per_ii: 14 -// YAML: operations: -// YAML: - opcode: "DATA_MOV" -// YAML: - index_per_ii: 15 -// YAML: operations: -// YAML: - opcode: "NOT" -// YAML: - index_per_ii: 16 -// YAML: operations: -// YAML: - opcode: "GRANT_ONCE" -// -// ASM: # Compiled II: 17 -// ASM: PE(0,0): +// YAML-NEXT: cores: +// YAML-NEXT: - column: 0 +// YAML-NEXT: row: 0 +// YAML-NEXT: core_id: "0" +// YAML-NEXT: entries: +// YAML-NEXT: - entry_id: "entry0" +// YAML-NEXT: instructions: +// YAML-NEXT: - index_per_ii: 0 +// YAML-NEXT: operations: +// YAML-NEXT: - opcode: "GRANT_PREDICATE" +// YAML-NEXT: id: 66 +// YAML-NEXT: time_step: 17 +// YAML-NEXT: invalid_iterations: 1 +// YAML-NEXT: src_operands: +// YAML-NEXT: - operand: "$0" +// YAML-NEXT: color: "RED" +// YAML-NEXT: - operand: "NORTH" +// YAML-NEXT: color: "RED" +// YAML-NEXT: dst_operands: +// YAML-NEXT: - operand: "EAST" +// YAML-NEXT: color: "RED" +// YAML-NEXT: - index_per_ii: 1 +// YAML-NEXT: operations: +// YAML-NEXT: - opcode: "MUL" +// YAML-NEXT: id: 152 +// YAML-NEXT: time_step: 18 +// YAML-NEXT: invalid_iterations: 1 +// YAML-NEXT: src_operands: +// YAML-NEXT: - operand: "NORTH" +// YAML-NEXT: color: "RED" +// YAML-NEXT: - operand: "EAST" +// YAML-NEXT: color: "RED" +// YAML-NEXT: dst_operands: +// YAML-NEXT: - operand: "EAST" +// YAML-NEXT: color: "RED" + +// ASM: # Compiled II: 17 +// ASM: PE(0,0): // ASM-NEXT: { // ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [EAST, RED] (t=17, inv_iters=1) // ASM-NEXT: } (idx_per_ii=0) @@ -379,4 +222,3 @@ // ASM-NEXT: { // ASM-NEXT: GRANT_ONCE, [$0] -> [$0] (t=16, inv_iters=0) // ASM-NEXT: } (idx_per_ii=16) -// ASM: PE(1,0): diff --git a/test/e2e/gemv/gemv_kernel.mlir b/test/e2e/gemv/gemv_kernel.mlir index 3ec74c39..6452c6ff 100644 --- a/test/e2e/gemv/gemv_kernel.mlir +++ b/test/e2e/gemv/gemv_kernel.mlir @@ -40,22 +40,22 @@ // MAPPING-NEXT: %14 = "neura.gep"(%13) <{operandSegmentSizes = array}> {dfg_id = 43 : i32, lhs_value = "%arg0", mapping_locs = [{id = 0 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %15 = neura.reserve {dfg_id = 5 : i32} : !neura.data // MAPPING-NEXT: %16 = "neura.data_mov"(%4) {dfg_id = 23 : i32, mapping_locs = [{id = 321 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 321 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %17 = neura.phi_start %16, %15 {dfg_id = 29 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %17 = "neura.phi"(%15, %16) {dfg_id = 29 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %18 = neura.reserve {dfg_id = 6 : i32} : !neura.data // MAPPING-NEXT: %19 = "neura.data_mov"(%7) {dfg_id = 19 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}, {id = 4 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}, {id = 163 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 4 : i32}, {id = 163 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 5 : i32}, {id = 163 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 6 : i32}, {id = 163 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %20 = neura.phi_start %19, %18 {dfg_id = 25 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %20 = "neura.phi"(%18, %19) {dfg_id = 25 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %21 = neura.reserve {dfg_id = 7 : i32} : !neura.data // MAPPING-NEXT: %22 = "neura.data_mov"(%10) {dfg_id = 20 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 1 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 1 : i32}, {id = 4000 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 2 : i32}, {id = 4000 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 3 : i32}, {id = 4000 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 4 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %23 = neura.phi_start %22, %21 {dfg_id = 26 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %23 = "neura.phi"(%21, %22) {dfg_id = 26 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 5 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %24 = neura.reserve {dfg_id = 8 : i32} : !neura.data // MAPPING-NEXT: %25 = "neura.data_mov"(%14) {dfg_id = 47 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %26 = neura.phi_start %25, %24 {dfg_id = 50 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %26 = "neura.phi"(%24, %25) {dfg_id = 50 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %27 = neura.reserve {dfg_id = 9 : i32} : !neura.data // MAPPING-NEXT: %28 = "neura.data_mov"(%4) {dfg_id = 22 : i32, mapping_locs = [{id = 320 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %29 = neura.phi_start %28, %27 {dfg_id = 28 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %29 = "neura.phi"(%27, %28) {dfg_id = 28 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %30 = neura.reserve {dfg_id = 10 : i32} : !neura.data // MAPPING-NEXT: %31 = "neura.data_mov"(%7) {dfg_id = 18 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %32 = neura.phi_start %31, %30 {dfg_id = 24 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %32 = "neura.phi"(%30, %31) {dfg_id = 24 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 3 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %33 = "neura.data_mov"(%26) {dfg_id = 58 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 4 : i32}, {id = 160 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %34 = "neura.data_mov"(%32) {dfg_id = 32 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 3 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 3 : i32}, {id = 161 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 4 : i32}, {id = 161 : i32, index_per_ii = 5 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 5 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %35 = "neura.gep"(%33, %34) <{operandSegmentSizes = array}> {dfg_id = 63 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 6 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data @@ -123,29 +123,10 @@ // MAPPING-NEXT: %90 = "neura.data_mov"(%89) {dfg_id = 84 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %91 = "neura.icmp"(%90) <{cmpType = "eq"}> {dfg_id = 92 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 0 : i32, y = 1 : i32}], rhs_value = 4 : i64} : (!neura.data) -> !neura.data // MAPPING-NEXT: %92 = "neura.data_mov"(%91) {dfg_id = 96 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %93 = "neura.not"(%92) {dfg_id = 99 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %94 = "neura.data_mov"(%89) {dfg_id = 83 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}, {id = 15 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 1000 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %95 = "neura.data_mov"(%93) {dfg_id = 104 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %96 = neura.grant_predicate %94, %95 {dfg_id = 110 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %96 -> %8 {dfg_id = 115 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %97 = "neura.data_mov"(%80) {dfg_id = 65 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 161 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %98 = "neura.data_mov"(%93) {dfg_id = 103 : i32, mapping_locs = [{id = 165 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 9 : i32}, {id = 165 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 10 : i32}, {id = 165 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %99 = neura.grant_predicate %97, %98 {dfg_id = 109 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %99 -> %5 {dfg_id = 114 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 12 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %100 = "neura.data_mov"(%83) {dfg_id = 64 : i32, mapping_locs = [{id = 288 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %101 = "neura.data_mov"(%93) {dfg_id = 102 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %102 = neura.grant_predicate %100, %101 {dfg_id = 108 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %102 -> %2 {dfg_id = 113 : i32, mapping_locs = [{id = 28 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 321 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 321 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 321 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 321 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 321 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 321 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %103 = "neura.data_mov"(%91) {dfg_id = 94 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %104 = "neura.data_mov"(%91) {dfg_id = 95 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %105 = neura.grant_predicate %103, %104 {dfg_id = 98 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %106 = "neura.data_mov"(%105) {dfg_id = 101 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %106 : !neura.data {dfg_id = 107 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 0 : i32, y = 2 : i32}]} -// MAPPING-NEXT: neura.yield {dfg_id = 11 : i32} -// MAPPING-NEXT: } +// MAPPING-NEXT: %93 = "neura.not"(%92) {dfg_id = 99 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : -// YAML: array_config: +// YAML: array_config: // YAML-NEXT: columns: 4 // YAML-NEXT: rows: 4 // YAML-NEXT: compiled_ii: 11 @@ -180,954 +161,10 @@ // YAML-NEXT: dst_operands: // YAML-NEXT: - operand: "$1" // YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 16 -// YAML-NEXT: time_step: 1 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SHL" -// YAML-NEXT: id: 27 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 43 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 67 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 76 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 710003 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "1" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 12 -// YAML-NEXT: time_step: 1 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 15 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 190000 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 82 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 710002 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 83 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 110 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 850001 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "2" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 118 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 49 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 710001 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 93 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "4" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 80 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 20 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 50 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 26 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 61 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 75 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 92 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 98 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 79 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 71 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "5" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 78 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 109 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 24 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 41 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 19 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 48 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 58 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 63 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 530000 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 81 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 25 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 69 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 830001 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 99 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 700003 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 60 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "6" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 112 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 31 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 42 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 62 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 690000 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 53 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 38 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 700002 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 100 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 111 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "7" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 700001 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "8" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "RETURN_VOID" -// YAML-NEXT: id: 107 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "9" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 51 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 59 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 108 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "10" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 113 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 117 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 1 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 17 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 28 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 68 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 29 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 77 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// ASM: # Compiled II: 11 -// ASM: PE(0,0): +// ASM: # Compiled II: 11 +// ASM: PE(0,0): // ASM-NEXT: { // ASM-NEXT: GRANT_ONCE, [#0] -> [EAST, RED], [$0] (t=0, inv_iters=0) // ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$1] (t=11, inv_iters=1) @@ -1148,175 +185,5 @@ // ASM-NEXT: GEP, [$0] -> [EAST, RED] (t=9, inv_iters=0) // ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=9, inv_iters=0) // ASM-NEXT: } (idx_per_ii=9) -// ASM: PE(1,0): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=1, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [NORTH, RED] -> [$0], [NORTH, RED] (t=2, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [EAST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [WEST, RED] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(2,0): -// ASM-NEXT: { -// ASM-NEXT: STORE, [NORTH, RED], [WEST, RED] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [WEST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [WEST, RED] -> [NORTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM: PE(0,1): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$3], [$0] -> [$2] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=2, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$2] -> [EAST, RED], [$3] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [$2], [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [SOUTH, RED], [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [$0], [EAST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [#4] -> [EAST, RED], [$0], [$1] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [NORTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [EAST, RED] -> [$1] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(1,1): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$3] -> [$6] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$5] -> [SOUTH, RED] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$0] -> [$1], [EAST, RED], [$0] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [$0], [$2] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$3] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [#4] -> [EAST, RED], [WEST, RED], [$5], [$4], [NORTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0], [$1] -> [SOUTH, RED] (t=6, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$5] -> [EAST, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [EAST, RED] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$3], [$6] -> [$2], [$1] (t=8, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$3] (t=8, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: NOT, [WEST, RED] -> [SOUTH, RED], [$5], [NORTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$4] -> [$1] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(2,1): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$3] -> [NORTH, RED] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: NOT, [WEST, RED] -> [WEST, RED], [$3], [SOUTH, RED], [EAST, RED], [$0], [NORTH, RED] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=8, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [WEST, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: ADD, [SOUTH, RED], [$0] -> [$2], [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [SOUTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(3,1): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [WEST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM: PE(0,2): -// ASM-NEXT: { -// ASM-NEXT: RETURN_VOID, [SOUTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(1,2): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [EAST, RED], [$0] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [EAST, RED] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(2,2): -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [WEST, RED] -> [$1] (t=11, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: CTRL_MOV, [SOUTH, RED] -> [$2] (t=12, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#0] -> [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$1] -> [$1], [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [SOUTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$2] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$3] -> [$0], [WEST, RED] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$2] -> [$3] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) diff --git a/test/e2e/spmv/spmv_kernel.mlir b/test/e2e/spmv/spmv_kernel.mlir index 6e268b0f..86110cbb 100644 --- a/test/e2e/spmv/spmv_kernel.mlir +++ b/test/e2e/spmv/spmv_kernel.mlir @@ -22,7 +22,7 @@ // RUN: FileCheck %s --input-file=tmp-generated-instructions.yaml --check-prefix=YAML // RUN: FileCheck %s --input-file=tmp-generated-instructions.asm --check-prefix=ASM // -// MAPPING: func.func @kernel(%arg0: i32 {llvm.noundef}, %arg1: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg5: !llvm.ptr {llvm.nocapture, llvm.noundef}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 15 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 5 : i32, res_mii = 9 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { +// MAPPING: func.func @kernel(%arg0: i32 {llvm.noundef}, %arg1: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg2: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg3: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg4: !llvm.ptr {llvm.nocapture, llvm.noundef, llvm.readonly}, %arg5: !llvm.ptr {llvm.nocapture, llvm.noundef}) -> !llvm.void attributes {CConv = #llvm.cconv, accelerator = "neura", dataflow_mode = "predicate", linkage = #llvm.linkage, mapping_info = {compiled_ii = 15 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 5 : i32, res_mii = 9 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}, memory_effects = #llvm.memory_effects, no_unwind, passthrough = ["nofree", "norecurse", "nosync", ["uwtable", "2"], ["min-legal-vector-width", "0"], ["no-trapping-math", "true"], ["stack-protector-buffer-size", "8"], ["target-cpu", "x86-64"]], target_cpu = "x86-64", target_features = #llvm.target_features<["+cmov", "+cx8", "+fxsr", "+mmx", "+sse", "+sse2", "+x87"]>, tune_cpu = "generic", unnamed_addr = 1 : i64, visibility_ = 0 : i64} { // MAPPING-NEXT: %0 = "neura.grant_once"() <{constant_value = "%arg0"}> {dfg_id = 0 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 2 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 2 : i32, x = 0 : i32, y = 0 : i32}]} : () -> !neura.data // MAPPING-NEXT: %1 = "neura.constant"() <{value = "%arg0"}> {dfg_id = 1 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 0 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 0 : i32, x = 1 : i32, y = 0 : i32}]} : () -> !neura.data // MAPPING-NEXT: %2 = "neura.grant_once"() <{constant_value = 0 : i64}> {dfg_id = 2 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 4 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 4 : i32, x = 1 : i32, y = 1 : i32}]} : () -> !neura.data @@ -69,16 +69,16 @@ // MAPPING-NEXT: %43 = "neura.and"(%42) {dfg_id = 66 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 0 : i32, y = 0 : i32}], rhs_value = 2147483644 : i64} : (!neura.data) -> !neura.data // MAPPING-NEXT: %44 = neura.reserve {dfg_id = 3 : i32} : !neura.data // MAPPING-NEXT: %45 = "neura.data_mov"(%41) {dfg_id = 58 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 6 : i32}, {id = 4001 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 7 : i32}, {id = 4001 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 4001 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 4001 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 4001 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %46 = neura.phi_start %45, %44 {dfg_id = 65 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %46 = "neura.phi"(%44, %45) {dfg_id = 65 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 0 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %47 = neura.reserve {dfg_id = 4 : i32} : !neura.data // MAPPING-NEXT: %48 = "neura.data_mov"(%43) {dfg_id = 79 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %49 = neura.phi_start %48, %47 {dfg_id = 92 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 0 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %49 = "neura.phi"(%47, %48) {dfg_id = 92 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %50 = neura.reserve {dfg_id = 5 : i32} : !neura.data // MAPPING-NEXT: %51 = "neura.data_mov"(%41) {dfg_id = 57 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 6 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %52 = neura.phi_start %51, %50 {dfg_id = 64 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %52 = "neura.phi"(%50, %51) {dfg_id = 64 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 7 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %53 = neura.reserve {dfg_id = 6 : i32} : !neura.data // MAPPING-NEXT: %54 = "neura.data_mov"(%41) {dfg_id = 56 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 6 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 6 : i32}, {id = 10 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %55 = neura.phi_start %54, %53 {dfg_id = 63 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data +// MAPPING-NEXT: %55 = "neura.phi"(%53, %54) {dfg_id = 63 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %56 = "neura.data_mov"(%55) {dfg_id = 75 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 8 : i32}, {id = 14 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 20 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 320 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}, {id = 320 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 320 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}, {id = 320 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}, {id = 320 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 320 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %57 = "neura.gep"(%56) <{operandSegmentSizes = array}> {dfg_id = 90 : i32, lhs_value = "%arg1", mapping_locs = [{id = 10 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %58 = "neura.data_mov"(%57) {dfg_id = 107 : i32, mapping_locs = [{id = 33 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 19 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}, {id = 2000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data @@ -180,173 +180,9 @@ // MAPPING-NEXT: %152 = "neura.data_mov"(%140) {dfg_id = 258 : i32, mapping_locs = [{id = 3003 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 3003 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}, {id = 3003 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 24 : i32}]} : (!neura.data) -> !neura.data // MAPPING-NEXT: %153 = "neura.add"(%151, %152) {dfg_id = 268 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 25 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data // MAPPING-NEXT: %154 = "neura.data_mov"(%153) {dfg_id = 276 : i32, mapping_locs = [{id = 3000 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 25 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %155 = "neura.data_mov"(%148) {dfg_id = 217 : i32, mapping_locs = [{id = 224 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 22 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 3004 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 3004 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 3004 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 3004 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 3004 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%154, %155) {dfg_id = 285 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 26 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %156 = "neura.data_mov"(%55) {dfg_id = 70 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 1002 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 1002 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 1002 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 1002 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %157 = "neura.or"(%156) {dfg_id = 85 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 0 : i32}], rhs_value = 3 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %158 = "neura.data_mov"(%157) {dfg_id = 98 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 14 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 192 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}, {id = 18 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %159 = "neura.gep"(%158) <{operandSegmentSizes = array}> {dfg_id = 115 : i32, lhs_value = "%arg1", mapping_locs = [{id = 7 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 3 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %160 = "neura.data_mov"(%159) {dfg_id = 129 : i32, mapping_locs = [{id = 22 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}, {id = 3001 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 18 : i32}, {id = 3001 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %161 = "neura.load"(%160) {dfg_id = 146 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %162 = "neura.data_mov"(%157) {dfg_id = 97 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %163 = "neura.gep"(%162) <{operandSegmentSizes = array}> {dfg_id = 114 : i32, lhs_value = "%arg2", mapping_locs = [{id = 1 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %164 = "neura.data_mov"(%163) {dfg_id = 128 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}, {id = 0 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %165 = "neura.load"(%164) {dfg_id = 145 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %166 = "neura.data_mov"(%165) {dfg_id = 159 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 1000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %167 = neura.sext %166 {dfg_id = 176 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %168 = "neura.data_mov"(%167) {dfg_id = 190 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %169 = "neura.gep"(%168) <{operandSegmentSizes = array}> {dfg_id = 205 : i32, lhs_value = "%arg4", mapping_locs = [{id = 1 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %170 = "neura.data_mov"(%169) {dfg_id = 216 : i32, mapping_locs = [{id = 1000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 1000 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %171 = "neura.load"(%170) {dfg_id = 228 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 1 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %172 = "neura.data_mov"(%171) {dfg_id = 237 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 2000 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %173 = "neura.data_mov"(%161) {dfg_id = 160 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}, {id = 2002 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 2002 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %174 = "neura.mul"(%172, %173) {dfg_id = 248 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 23 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %175 = "neura.data_mov"(%157) {dfg_id = 96 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}, {id = 2000 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %176 = "neura.gep"(%175) <{operandSegmentSizes = array}> {dfg_id = 113 : i32, lhs_value = "%arg3", mapping_locs = [{id = 2 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %177 = "neura.data_mov"(%176) {dfg_id = 127 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %178 = "neura.load"(%177) {dfg_id = 144 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %179 = "neura.data_mov"(%178) {dfg_id = 158 : i32, mapping_locs = [{id = 3000 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 16 : i32}, {id = 3000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %180 = neura.sext %179 {dfg_id = 175 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 3 : i32, y = 0 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %181 = "neura.data_mov"(%180) {dfg_id = 189 : i32, mapping_locs = [{id = 3000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %182 = "neura.gep"(%181) <{operandSegmentSizes = array}> {dfg_id = 204 : i32, lhs_value = "%arg5", mapping_locs = [{id = 3 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %183 = "neura.data_mov"(%182) {dfg_id = 215 : i32, mapping_locs = [{id = 3002 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 3002 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}, {id = 3002 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 3002 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %184 = "neura.load"(%183) {dfg_id = 227 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 23 : i32, x = 3 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %185 = "neura.data_mov"(%184) {dfg_id = 236 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 23 : i32}, {id = 2000 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 24 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %186 = "neura.data_mov"(%174) {dfg_id = 257 : i32, mapping_locs = [{id = 2002 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 23 : i32}, {id = 2002 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 24 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %187 = "neura.add"(%185, %186) {dfg_id = 267 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 25 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %188 = "neura.data_mov"(%187) {dfg_id = 275 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 25 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %189 = "neura.data_mov"(%182) {dfg_id = 214 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 2004 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 2004 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 2004 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 2004 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 2004 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 2004 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%188, %189) {dfg_id = 284 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 26 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %190 = "neura.data_mov"(%55) {dfg_id = 69 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %191 = "neura.add"(%190) {dfg_id = 84 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 9 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 4 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %192 = "neura.data_mov"(%52) {dfg_id = 76 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 7 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 7 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %193 = "neura.add"(%192) {dfg_id = 91 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 8 : i32, x = 2 : i32, y = 1 : i32}], rhs_value = 4 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %194 = "neura.data_mov"(%193) {dfg_id = 109 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 160 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %195 = "neura.data_mov"(%49) {dfg_id = 111 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 8 : i32}, {id = 4 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %196 = "neura.icmp"(%194, %195) <{cmpType = "eq"}> {dfg_id = 125 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %197 = "neura.data_mov"(%196) {dfg_id = 141 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %198 = "neura.not"(%197) {dfg_id = 157 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %199 = "neura.data_mov"(%191) {dfg_id = 95 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 9 : i32}, {id = 16 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 291 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 11 : i32}, {id = 291 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 12 : i32}, {id = 291 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 13 : i32}, {id = 291 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 14 : i32}, {id = 291 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 15 : i32}, {id = 291 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 16 : i32}, {id = 291 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 17 : i32}, {id = 291 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 18 : i32}, {id = 291 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 19 : i32}, {id = 291 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %200 = "neura.data_mov"(%198) {dfg_id = 174 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 292 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 292 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 292 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 292 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 292 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 292 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 292 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 292 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 292 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %201 = neura.grant_predicate %199, %200 {dfg_id = 188 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 1 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %201 -> %53 {dfg_id = 203 : i32, mapping_locs = [{id = 29 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 160 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 22 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %202 = "neura.data_mov"(%193) {dfg_id = 108 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}, {id = 192 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}, {id = 192 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 192 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %203 = "neura.data_mov"(%198) {dfg_id = 173 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %204 = neura.grant_predicate %202, %203 {dfg_id = 187 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %204 -> %50 {dfg_id = 202 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 162 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 162 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 162 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 162 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 162 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 162 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 162 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 162 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}, {id = 162 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %205 = "neura.data_mov"(%49) {dfg_id = 110 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 8 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 8 : i32}, {id = 0 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 1000 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}, {id = 1000 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %206 = "neura.data_mov"(%198) {dfg_id = 172 : i32, mapping_locs = [{id = 15 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %207 = neura.grant_predicate %205, %206 {dfg_id = 186 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %207 -> %47 {dfg_id = 201 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 2 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 13 : i32}, {id = 2 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 14 : i32}, {id = 2 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 15 : i32}, {id = 2 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 16 : i32}, {id = 2 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 17 : i32}, {id = 2 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 18 : i32}, {id = 2 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 2 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}, {id = 2 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 21 : i32}, {id = 2 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 22 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %208 = "neura.data_mov"(%46) {dfg_id = 78 : i32, mapping_locs = [{id = 4005 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 4005 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 4005 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 4005 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 4005 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 4005 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 17 : i32}, {id = 4005 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}, {id = 4005 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}, {id = 4005 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}, {id = 4005 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}, {id = 4005 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %209 = "neura.data_mov"(%198) {dfg_id = 171 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 4006 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 12 : i32}, {id = 4006 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 13 : i32}, {id = 4006 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 14 : i32}, {id = 4006 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 15 : i32}, {id = 4006 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 16 : i32}, {id = 4006 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 17 : i32}, {id = 4006 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 18 : i32}, {id = 4006 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 19 : i32}, {id = 4006 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 20 : i32}, {id = 4006 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 21 : i32}, {id = 4006 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 22 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %210 = neura.grant_predicate %208, %209 {dfg_id = 185 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 23 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %210 -> %44 {dfg_id = 200 : i32, mapping_locs = [{id = 4000 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 23 : i32}, {id = 4000 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 24 : i32}, {id = 4000 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 25 : i32}, {id = 4000 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 26 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %211 = "neura.data_mov"(%191) {dfg_id = 94 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 9 : i32}, {id = 161 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 161 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %212 = "neura.data_mov"(%196) {dfg_id = 140 : i32, mapping_locs = [{id = 162 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 10 : i32}, {id = 162 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %213 = neura.grant_predicate %211, %212 {dfg_id = 156 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 12 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %214 = "neura.data_mov"(%46) {dfg_id = 77 : i32, mapping_locs = [{id = 4001 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %215 = "neura.data_mov"(%196) {dfg_id = 139 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 4002 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 11 : i32}, {id = 4002 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %216 = neura.grant_predicate %214, %215 {dfg_id = 155 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %217 = "neura.data_mov"(%33) {dfg_id = 49 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %218 = "neura.data_mov"(%216) {dfg_id = 169 : i32, mapping_locs = [{id = 11 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %219 = "neura.phi"(%217, %218) {dfg_id = 183 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %220 = "neura.data_mov"(%30) {dfg_id = 50 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 160 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}, {id = 160 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %221 = "neura.data_mov"(%213) {dfg_id = 170 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %222 = "neura.phi"(%220, %221) {dfg_id = 184 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 13 : i32, x = 1 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %223 = "neura.data_mov"(%25) {dfg_id = 52 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 9 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %224 = "neura.icmp"(%223) <{cmpType = "eq"}> {dfg_id = 55 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 10 : i32, x = 0 : i32, y = 0 : i32}], rhs_value = 0 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %225 = "neura.data_mov"(%224) {dfg_id = 61 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 10 : i32}, {id = 1004 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 1004 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 1004 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 1004 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 1004 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 1004 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}, {id = 1004 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 1004 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 1004 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 1004 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 1004 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %226 = "neura.data_mov"(%224) {dfg_id = 62 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 10 : i32}, {id = 0 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 1005 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 12 : i32}, {id = 1005 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 13 : i32}, {id = 1005 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 14 : i32}, {id = 1005 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 15 : i32}, {id = 1005 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 16 : i32}, {id = 1005 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 17 : i32}, {id = 1005 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 18 : i32}, {id = 1005 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 19 : i32}, {id = 1005 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}, {id = 1005 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %227 = neura.grant_predicate %225, %226 {dfg_id = 68 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 1 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %228 = "neura.data_mov"(%224) {dfg_id = 60 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 10 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %229 = "neura.not"(%228) {dfg_id = 67 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 11 : i32, x = 0 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %230 = "neura.data_mov"(%222) {dfg_id = 199 : i32, mapping_locs = [{id = 13 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %231 = "neura.data_mov"(%229) {dfg_id = 82 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 11 : i32}, {id = 4000 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 12 : i32}, {id = 4000 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 13 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %232 = neura.grant_predicate %230, %231 {dfg_id = 213 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "tile", time_step = 14 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %233 = "neura.data_mov"(%219) {dfg_id = 198 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %234 = "neura.data_mov"(%229) {dfg_id = 81 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 11 : i32}, {id = 1 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 12 : i32}, {id = 1 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 1 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %235 = neura.grant_predicate %233, %234 {dfg_id = 212 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 0 : i32, y = 0 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %236 = "neura.data_mov"(%25) {dfg_id = 51 : i32, mapping_locs = [{id = 1 : i32, index_per_ii = 9 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 9 : i32}, {id = 4004 : i32, index_per_ii = 10 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 10 : i32}, {id = 4004 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 11 : i32}, {id = 4004 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 12 : i32}, {id = 4004 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 13 : i32}, {id = 4004 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 14 : i32}, {id = 4004 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 15 : i32}, {id = 4004 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %237 = "neura.data_mov"(%229) {dfg_id = 80 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 11 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 11 : i32}, {id = 1 : i32, index_per_ii = 12 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 12 : i32}, {id = 4001 : i32, index_per_ii = 13 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 13 : i32}, {id = 4001 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 14 : i32}, {id = 4001 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 4001 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %238 = neura.grant_predicate %236, %237 {dfg_id = 93 : i32, mapping_locs = [{id = 4 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 0 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %239 = neura.reserve {dfg_id = 7 : i32} : !neura.data -// MAPPING-NEXT: %240 = "neura.data_mov"(%238) {dfg_id = 112 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %241 = neura.phi_start %240, %239 {dfg_id = 126 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %242 = neura.reserve {dfg_id = 8 : i32} : !neura.data -// MAPPING-NEXT: %243 = "neura.data_mov"(%235) {dfg_id = 225 : i32, mapping_locs = [{id = 0 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}, {id = 4 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %244 = neura.phi_start %243, %242 {dfg_id = 234 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %245 = neura.reserve {dfg_id = 9 : i32} : !neura.data -// MAPPING-NEXT: %246 = "neura.data_mov"(%232) {dfg_id = 226 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 14 : i32, invalid_iterations = 0 : i32, resource = "link", time_step = 14 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %247 = neura.phi_start %246, %245 {dfg_id = 235 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 15 : i32, x = 1 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %248 = "neura.data_mov"(%247) {dfg_id = 247 : i32, mapping_locs = [{id = 161 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 15 : i32}, {id = 16 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 30 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %249 = "neura.gep"(%248) <{operandSegmentSizes = array}> {dfg_id = 256 : i32, lhs_value = "%arg1", mapping_locs = [{id = 13 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 1 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %250 = "neura.data_mov"(%249) {dfg_id = 266 : i32, mapping_locs = [{id = 40 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}, {id = 12001 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 12001 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 12001 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %251 = "neura.load"(%250) {dfg_id = 274 : i32, mapping_locs = [{id = 12 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 0 : i32, y = 3 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %252 = "neura.data_mov"(%247) {dfg_id = 246 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %253 = "neura.gep"(%252) <{operandSegmentSizes = array}> {dfg_id = 255 : i32, lhs_value = "%arg2", mapping_locs = [{id = 6 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %254 = "neura.data_mov"(%253) {dfg_id = 265 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %255 = "neura.load"(%254) {dfg_id = 273 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 17 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %256 = "neura.data_mov"(%255) {dfg_id = 282 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %257 = neura.sext %256 {dfg_id = 290 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 0 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %258 = "neura.data_mov"(%257) {dfg_id = 296 : i32, mapping_locs = [{id = 2000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %259 = "neura.gep"(%258) <{operandSegmentSizes = array}> {dfg_id = 302 : i32, lhs_value = "%arg4", mapping_locs = [{id = 2 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %260 = "neura.data_mov"(%259) {dfg_id = 309 : i32, mapping_locs = [{id = 2001 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 2001 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}, {id = 2001 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %261 = "neura.load"(%260) {dfg_id = 312 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %262 = "neura.data_mov"(%261) {dfg_id = 314 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 4 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 23 : i32}, {id = 16 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 24 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %263 = "neura.data_mov"(%251) {dfg_id = 283 : i32, mapping_locs = [{id = 38 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 42 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 23 : i32}, {id = 289 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 24 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %264 = "neura.mul"(%262, %263) {dfg_id = 315 : i32, mapping_locs = [{id = 9 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 25 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %265 = "neura.data_mov"(%247) {dfg_id = 245 : i32, mapping_locs = [{id = 16 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %266 = "neura.gep"(%265) <{operandSegmentSizes = array}> {dfg_id = 254 : i32, lhs_value = "%arg3", mapping_locs = [{id = 9 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %267 = "neura.data_mov"(%266) {dfg_id = 264 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 8000 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %268 = "neura.load"(%267) {dfg_id = 272 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %269 = "neura.data_mov"(%268) {dfg_id = 281 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %270 = neura.sext %269 {dfg_id = 289 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 0 : i32, y = 2 : i32}]} : !neura.data -> !neura.data -// MAPPING-NEXT: %271 = "neura.data_mov"(%270) {dfg_id = 295 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %272 = "neura.gep"(%271) <{operandSegmentSizes = array}> {dfg_id = 301 : i32, lhs_value = "%arg5", mapping_locs = [{id = 8 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %273 = "neura.data_mov"(%272) {dfg_id = 308 : i32, mapping_locs = [{id = 8003 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 8003 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}, {id = 8003 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 8003 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %274 = "neura.load"(%273) {dfg_id = 311 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 24 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %275 = "neura.data_mov"(%274) {dfg_id = 313 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 24 : i32}, {id = 8000 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 25 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %276 = "neura.data_mov"(%264) {dfg_id = 316 : i32, mapping_locs = [{id = 27 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 25 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %277 = "neura.add"(%275, %276) {dfg_id = 317 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 26 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %278 = "neura.data_mov"(%277) {dfg_id = 318 : i32, mapping_locs = [{id = 8000 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 26 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %279 = "neura.data_mov"(%272) {dfg_id = 307 : i32, mapping_locs = [{id = 8005 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}, {id = 8005 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}, {id = 8005 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}, {id = 8005 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}, {id = 8005 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 24 : i32}, {id = 8005 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 25 : i32}, {id = 8005 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 26 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: "neura.store"(%278, %279) {dfg_id = 319 : i32, mapping_locs = [{id = 8 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 27 : i32, x = 0 : i32, y = 2 : i32}]} : (!neura.data, !neura.data) -> () -// MAPPING-NEXT: %280 = "neura.data_mov"(%247) {dfg_id = 244 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 0 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 15 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %281 = "neura.add"(%280) {dfg_id = 253 : i32, mapping_locs = [{id = 5 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 16 : i32, x = 1 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %282 = "neura.data_mov"(%244) {dfg_id = 243 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 17 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %283 = "neura.add"(%282) {dfg_id = 252 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 18 : i32, x = 2 : i32, y = 1 : i32}], rhs_value = 1 : i64} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %284 = "neura.data_mov"(%283) {dfg_id = 262 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %285 = "neura.data_mov"(%241) {dfg_id = 143 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %286 = "neura.icmp"(%284, %285) <{cmpType = "eq"}> {dfg_id = 271 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 19 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %287 = "neura.data_mov"(%286) {dfg_id = 280 : i32, mapping_locs = [{id = 192 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %288 = "neura.not"(%287) {dfg_id = 288 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 20 : i32, x = 2 : i32, y = 1 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %289 = "neura.data_mov"(%281) {dfg_id = 263 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 1 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 16 : i32}, {id = 196 : i32, index_per_ii = 2 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 17 : i32}, {id = 196 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 18 : i32}, {id = 196 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 19 : i32}, {id = 196 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 20 : i32}, {id = 196 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 21 : i32}, {id = 196 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 22 : i32}, {id = 196 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %290 = "neura.data_mov"(%288) {dfg_id = 294 : i32, mapping_locs = [{id = 197 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 20 : i32}, {id = 197 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 21 : i32}, {id = 197 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 22 : i32}, {id = 197 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %291 = neura.grant_predicate %289, %290 {dfg_id = 300 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 24 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %291 -> %245 {dfg_id = 306 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 24 : i32}, {id = 166 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 25 : i32}, {id = 166 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 26 : i32}, {id = 166 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 27 : i32}, {id = 166 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 28 : i32}, {id = 166 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 6 : i32, resource = "register", time_step = 29 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %292 = "neura.data_mov"(%283) {dfg_id = 261 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 18 : i32}, {id = 320 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 19 : i32}, {id = 320 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %293 = "neura.data_mov"(%288) {dfg_id = 293 : i32, mapping_locs = [{id = 20 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %294 = neura.grant_predicate %292, %293 {dfg_id = 299 : i32, mapping_locs = [{id = 10 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 2 : i32, y = 2 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %294 -> %242 {dfg_id = 305 : i32, mapping_locs = [{id = 31 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 29 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 165 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 23 : i32}, {id = 165 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 24 : i32}, {id = 165 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 25 : i32}, {id = 165 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 26 : i32}, {id = 165 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 27 : i32}, {id = 165 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 28 : i32}, {id = 165 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 29 : i32}, {id = 165 : i32, index_per_ii = 0 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 30 : i32}, {id = 165 : i32, index_per_ii = 1 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 5 : i32, resource = "register", time_step = 31 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %295 = "neura.data_mov"(%241) {dfg_id = 142 : i32, mapping_locs = [{id = 160 : i32, index_per_ii = 3 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 18 : i32}, {id = 14 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 19 : i32}, {id = 192 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 20 : i32}, {id = 192 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %296 = "neura.data_mov"(%288) {dfg_id = 292 : i32, mapping_locs = [{id = 195 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 20 : i32}, {id = 195 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 21 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %297 = neura.grant_predicate %295, %296 {dfg_id = 298 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 22 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: neura.ctrl_mov %297 -> %239 {dfg_id = 304 : i32, mapping_locs = [{id = 17 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 164 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 23 : i32}, {id = 164 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 24 : i32}, {id = 164 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 25 : i32}, {id = 164 : i32, index_per_ii = 11 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 26 : i32}, {id = 164 : i32, index_per_ii = 12 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 27 : i32}, {id = 164 : i32, index_per_ii = 13 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 28 : i32}, {id = 164 : i32, index_per_ii = 14 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 29 : i32}, {id = 164 : i32, index_per_ii = 0 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 30 : i32}, {id = 164 : i32, index_per_ii = 1 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 31 : i32}, {id = 164 : i32, index_per_ii = 2 : i32, invalid_iterations = 2 : i32, per_tile_register_id = 4 : i32, resource = "register", time_step = 32 : i32}]} : !neura.data !neura.data -// MAPPING-NEXT: %298 = "neura.data_mov"(%286) {dfg_id = 278 : i32, mapping_locs = [{id = 193 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 19 : i32}, {id = 193 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %299 = "neura.data_mov"(%286) {dfg_id = 279 : i32, mapping_locs = [{id = 194 : i32, index_per_ii = 4 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 19 : i32}, {id = 194 : i32, index_per_ii = 5 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 2 : i32, resource = "register", time_step = 20 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %300 = neura.grant_predicate %298, %299 {dfg_id = 287 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 21 : i32, x = 2 : i32, y = 1 : i32}]} : !neura.data, !neura.data -> !neura.data -// MAPPING-NEXT: %301 = "neura.data_mov"(%21) {dfg_id = 37 : i32, mapping_locs = [{id = 14 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 19 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 2000 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 0 : i32, resource = "register", time_step = 23 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %302 = "neura.data_mov"(%227) {dfg_id = 83 : i32, mapping_locs = [{id = 3 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 22 : i32}, {id = 2001 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 1 : i32, resource = "register", time_step = 23 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %303 = "neura.data_mov"(%300) {dfg_id = 291 : i32, mapping_locs = [{id = 19 : i32, index_per_ii = 6 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 21 : i32}, {id = 2003 : i32, index_per_ii = 7 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 22 : i32}, {id = 2003 : i32, index_per_ii = 8 : i32, invalid_iterations = 1 : i32, per_tile_register_id = 3 : i32, resource = "register", time_step = 23 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: %304 = "neura.phi"(%301, %302, %303) {dfg_id = 297 : i32, mapping_locs = [{id = 2 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 24 : i32, x = 2 : i32, y = 0 : i32}]} : (!neura.data, !neura.data, !neura.data) -> !neura.data -// MAPPING-NEXT: %305 = "neura.data_mov"(%304) {dfg_id = 303 : i32, mapping_locs = [{id = 7 : i32, index_per_ii = 9 : i32, invalid_iterations = 1 : i32, resource = "link", time_step = 24 : i32}]} : (!neura.data) -> !neura.data -// MAPPING-NEXT: neura.return_void %305 : !neura.data {dfg_id = 310 : i32, mapping_locs = [{id = 6 : i32, index_per_ii = 10 : i32, invalid_iterations = 1 : i32, resource = "tile", time_step = 25 : i32, x = 2 : i32, y = 1 : i32}]} -// MAPPING-NEXT: neura.yield {dfg_id = 10 : i32} -// MAPPING-NEXT: } -// YAML: array_config: +// YAML: array_config: // YAML-NEXT: columns: 4 // YAML-NEXT: rows: 4 // YAML-NEXT: compiled_ii: 15 @@ -381,3452 +217,60 @@ // YAML-NEXT: dst_operands: // YAML-NEXT: - operand: "$0" // YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 145 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 0 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "arg0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 150001 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 26 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_ULT" -// YAML-NEXT: id: 35 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ZEXT" -// YAML-NEXT: id: 36 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 54 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "AND" -// YAML-NEXT: id: 66 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#2147483644" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 92 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 30 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "AND" -// YAML-NEXT: id: 46 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1100000 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 55 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 67 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 620000 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 800000 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 44 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 201 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI" -// YAML-NEXT: id: 183 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "1" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "CONSTANT" -// YAML-NEXT: id: 1 -// YAML-NEXT: time_step: 0 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "arg0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_SGT" -// YAML-NEXT: id: 14 -// YAML-NEXT: time_step: 1 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2250001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 18 -// YAML-NEXT: time_step: 2 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 159 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 150002 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 176 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 205 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 40 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 24 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 31 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 228 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1380001 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 68 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3140001 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 70 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1110001 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 45 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 110 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 61 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 186 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 62 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "OR" -// YAML-NEXT: id: 85 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 114 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "2" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 113 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 131 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 148 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 273 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 290 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 302 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 107 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 124 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 219 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 214 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 230 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 160 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 312 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 237 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 291 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 248 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 37 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 83 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI" -// YAML-NEXT: id: 297 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 236 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 267 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 284 -// YAML-NEXT: time_step: 26 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 96 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 0 -// YAML-NEXT: core_id: "3" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 144 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 147 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 175 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 129 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 204 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 132 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 146 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 218 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 149 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 217 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 249 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 227 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 229 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 268 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 285 -// YAML-NEXT: time_step: 26 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "4" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 88 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 106 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 123 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 93 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 154 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 182 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 43 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 53 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 300001 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 560000 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 185 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 73 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 51 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 139 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 65 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 171 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 82 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 155 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 80 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 213 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "5" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 235 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 253 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2470000 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 234 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 21 -// YAML-NEXT: time_step: 3 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 126 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 2 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "#0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 150003 -// YAML-NEXT: time_step: 4 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1420000 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 25 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 300000 -// YAML-NEXT: time_step: 6 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 34 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 64 -// YAML-NEXT: time_step: 7 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1380002 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 203 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI_START" -// YAML-NEXT: id: 63 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 305 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 304 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 84 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 750000 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 109 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 3140002 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 125 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 950000 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 306 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$6" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 157 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 50 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 156 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "PHI" -// YAML-NEXT: id: 184 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 202 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 89 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 980001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "6" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 116 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 255 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 980002 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 178 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 263 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 252 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1070001 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ICMP_EQ" -// YAML-NEXT: id: 271 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2190001 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 288 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 142 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 287 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 298 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 370001 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 91 -// YAML-NEXT: time_step: 8 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 71 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 300 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 750001 -// YAML-NEXT: time_step: 10 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "RETURN_VOID" -// YAML-NEXT: id: 310 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 187 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "OR" -// YAML-NEXT: id: 86 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 117 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 1 -// YAML-NEXT: core_id: "7" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1300001 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 115 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 177 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1320001 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 206 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2170000 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1010001 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "8" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 151 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 122 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 133 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 150 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 264 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 272 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 289 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 301 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 197 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 196 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 221 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 211 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 195 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 210 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 231 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 311 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 270 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 317 -// YAML-NEXT: time_step: 26 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 319 -// YAML-NEXT: time_step: 27 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$5" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "9" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 119 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 254 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "NOT" -// YAML-NEXT: id: 17 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2470001 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 179 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 208 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 15 -// YAML-NEXT: time_step: 5 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 270001 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 188 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 224 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "CTRL_MOV" -// YAML-NEXT: id: 3050001 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 233 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 223 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 72 -// YAML-NEXT: time_step: 9 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 251 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 283 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 315 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 95 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 12 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 174 -// YAML-NEXT: time_step: 12 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$4" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 13 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "OR" -// YAML-NEXT: id: 87 -// YAML-NEXT: time_step: 13 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "#1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "NORTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 120 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 2 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "10" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 90 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 207 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 19 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_ONCE" -// YAML-NEXT: id: 23 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 261 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GRANT_PREDICATE" -// YAML-NEXT: id: 299 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 11 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 75 -// YAML-NEXT: time_step: 11 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 3 -// YAML-NEXT: row: 2 -// YAML-NEXT: core_id: "11" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 0 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 101 -// YAML-NEXT: time_step: 15 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 118 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 0 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "12" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 1 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 180 -// YAML-NEXT: time_step: 16 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "SEXT" -// YAML-NEXT: id: 153 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 209 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 135 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 4 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 181 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 266 -// YAML-NEXT: time_step: 19 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 152 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 1950000 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 6 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 232 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 220 -// YAML-NEXT: time_step: 21 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 7 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "LOAD" -// YAML-NEXT: id: 274 -// YAML-NEXT: time_step: 22 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$1" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "EAST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "MUL" -// YAML-NEXT: id: 250 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$3" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 9 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "ADD" -// YAML-NEXT: id: 269 -// YAML-NEXT: time_step: 24 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 10 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "STORE" -// YAML-NEXT: id: 286 -// YAML-NEXT: time_step: 25 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - operand: "$2" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - column: 1 -// YAML-NEXT: row: 3 -// YAML-NEXT: core_id: "13" -// YAML-NEXT: entries: -// YAML-NEXT: - entry_id: "entry0" -// YAML-NEXT: instructions: -// YAML-NEXT: - index_per_ii: 2 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 121 -// YAML-NEXT: time_step: 17 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 3 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "GEP" -// YAML-NEXT: id: 256 -// YAML-NEXT: time_step: 18 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 5 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2200001 -// YAML-NEXT: time_step: 20 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 8 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 2830001 -// YAML-NEXT: time_step: 23 -// YAML-NEXT: invalid_iterations: 1 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "WEST" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: - index_per_ii: 14 -// YAML-NEXT: operations: -// YAML-NEXT: - opcode: "DATA_MOV" -// YAML-NEXT: id: 104 -// YAML-NEXT: time_step: 14 -// YAML-NEXT: invalid_iterations: 0 -// YAML-NEXT: src_operands: -// YAML-NEXT: - operand: "SOUTH" -// YAML-NEXT: color: "RED" -// YAML-NEXT: dst_operands: -// YAML-NEXT: - operand: "$0" -// YAML-NEXT: color: "RED" - - -// ASM: # Compiled II: 15 -// ASM: PE(0,0): -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [EAST, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [arg0] -> [$0] (t=2, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [EAST, RED] (t=2, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [$1], [$0] (t=3, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: ICMP_ULT, [$0], [#4] -> [EAST, RED], [$3], [NORTH, RED] (t=4, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: ZEXT, [$1] -> [$1], [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: AND, [$0], [#2147483644] -> [$0] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$0], [$2] -> [EAST, RED], [$0] (t=8, inv_iters=0) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$2] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: AND, [$1], [#3] -> [$0], [NORTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [EAST, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [#0] -> [EAST, RED], [$1], [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [NORTH, RED], [$1], [$0] (t=11, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$2], [$3] -> [$0] (t=13, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$2] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: PHI, [$0], [NORTH, RED] -> [$0] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(1,0): -// ASM-NEXT: { -// ASM-NEXT: CONSTANT, [arg0] -> [$0] (t=0, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: ICMP_SGT, [$0], [#0] -> [$0], [WEST, RED] (t=1, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [$0] -> [WEST, RED], [NORTH, RED], [$3] (t=2, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=3, inv_iters=0) -// ASM-NEXT: SEXT, [$0] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$0] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=5, inv_iters=0) -// ASM-NEXT: NOT, [$3] -> [NORTH, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=6, inv_iters=0) -// ASM-NEXT: LOAD, [$0] -> [EAST, RED] (t=21, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$4], [$5] -> [EAST, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [NORTH, RED] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$2] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [NORTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$4] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [WEST, RED] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$5] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: OR, [$2], [#3] -> [NORTH, RED], [$0], [EAST, RED] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [WEST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(2,0): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [$0] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [$0] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$1] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [WEST, RED] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$4] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [EAST, RED] (t=21, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$1] -> [WEST, RED] (t=22, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=22, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$3] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [$2] -> [$2] (t=23, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=23, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: PHI, [$0], [$1], [$3] -> [NORTH, RED] (t=24, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [$2] -> [$0] (t=25, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0], [$4] (t=26, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(3,0): -// ASM-NEXT: { -// ASM-NEXT: LOAD, [WEST, RED] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [NORTH, RED] -> [NORTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [$0] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$2], [WEST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$0] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$1] -> [WEST, RED] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [$0] (t=21, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$4] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: MUL, [WEST, RED], [$0] -> [$3] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$2] -> [WEST, RED] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$1] -> [$0] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [$3] -> [$0] (t=25, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0], [$4] (t=26, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(0,1): + + +// ASM: # Compiled II: 15 +// ASM: PE(0,0): // ASM-NEXT: { -// ASM-NEXT: GEP, [$3] -> [NORTH, RED] (t=15, inv_iters=1) +// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [EAST, RED] (t=15, inv_iters=1) // ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=15, inv_iters=1) // ASM-NEXT: } (idx_per_ii=0) // ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$4], [$1] -> [EAST, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [$0] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [NORTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: NOT, [SOUTH, RED] -> [SOUTH, RED], [$0] (t=5, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [EAST, RED], [$0] -> [$1], [EAST, RED], [$0] (t=6, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [EAST, RED] (t=7, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$5], [$6] -> [$0] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$3] (t=9, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$4] (t=10, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [$1], [$0] -> [$5], [$1] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$6] (t=12, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [SOUTH, RED] (t=13, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [EAST, RED], [$0] -> [EAST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(1,1): -// ASM-NEXT: { -// ASM-NEXT: PHI_START, [WEST, RED], [$6] -> [$1], [EAST, RED], [NORTH, RED], [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#1] -> [EAST, RED] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [$1] -> [NORTH, RED] (t=16, inv_iters=1) +// ASM-NEXT: LOAD, [$0] -> [EAST, RED] (t=16, inv_iters=1) // ASM-NEXT: } (idx_per_ii=1) // ASM-NEXT: { -// ASM-NEXT: PHI_START, [SOUTH, RED], [$5] -> [EAST, RED] (t=17, inv_iters=1) +// ASM-NEXT: GRANT_ONCE, [arg0] -> [$0] (t=2, inv_iters=0) +// ASM-NEXT: DATA_MOV, [EAST, RED] -> [EAST, RED] (t=2, inv_iters=0) // ASM-NEXT: } (idx_per_ii=2) // ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$1] (t=3, inv_iters=0) -// ASM-NEXT: PHI_START, [WEST, RED], [$4] -> [EAST, RED], [$0] (t=18, inv_iters=1) +// ASM-NEXT: GRANT_PREDICATE, [$0], [EAST, RED] -> [$1], [$0] (t=3, inv_iters=0) // ASM-NEXT: } (idx_per_ii=3) // ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [#0] -> [$0] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=4, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$0] -> [EAST, RED] (t=19, inv_iters=1) +// ASM-NEXT: ICMP_ULT, [$0], [#4] -> [EAST, RED], [$3], [NORTH, RED] (t=4, inv_iters=0) // ASM-NEXT: } (idx_per_ii=4) // ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$1] -> [SOUTH, RED], [$0], [WEST, RED] (t=5, inv_iters=0) +// ASM-NEXT: ZEXT, [$1] -> [$1], [$0] (t=5, inv_iters=0) // ASM-NEXT: } (idx_per_ii=5) // ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [WEST, RED] (t=6, inv_iters=0) -// ASM-NEXT: GRANT_PREDICATE, [NORTH, RED], [SOUTH, RED] -> [EAST, RED] (t=21, inv_iters=1) +// ASM-NEXT: GRANT_PREDICATE, [$0], [NORTH, RED] -> [$0] (t=6, inv_iters=0) // ASM-NEXT: } (idx_per_ii=6) // ASM-NEXT: { -// ASM-NEXT: PHI_START, [WEST, RED], [$2] -> [EAST, RED] (t=7, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=22, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$0] (t=22, inv_iters=1) +// ASM-NEXT: AND, [$0], [#2147483644] -> [$0] (t=7, inv_iters=0) // ASM-NEXT: } (idx_per_ii=7) // ASM-NEXT: { -// ASM-NEXT: PHI_START, [WEST, RED], [$0] -> [$1], [$3], [WEST, RED], [NORTH, RED], [EAST, RED], [SOUTH, RED], [$0] (t=8, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [NORTH, RED] -> [$5] (t=23, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$4] (t=23, inv_iters=1) +// ASM-NEXT: PHI, [$2], [$0] -> [EAST, RED], [$0] (t=8, inv_iters=0) +// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$2] (t=8, inv_iters=0) // ASM-NEXT: } (idx_per_ii=8) // ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [#4] -> [$2], [$1] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=24, inv_iters=1) +// ASM-NEXT: AND, [$1], [#3] -> [$0], [NORTH, RED] (t=9, inv_iters=0) +// ASM-NEXT: DATA_MOV, [$0] -> [EAST, RED] (t=9, inv_iters=0) // ASM-NEXT: } (idx_per_ii=9) // ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [SOUTH, RED] -> [$0], [$2], [WEST, RED] (t=10, inv_iters=0) -// ASM-NEXT: DATA_MOV, [$2] -> [NORTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$6] (t=25, inv_iters=1) +// ASM-NEXT: ICMP_EQ, [$0], [#0] -> [EAST, RED], [$1], [$0] (t=10, inv_iters=0) // ASM-NEXT: } (idx_per_ii=10) // ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [NORTH, RED], [EAST, RED], [SOUTH, RED], [WEST, RED] (t=11, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=11, inv_iters=0) +// ASM-NEXT: NOT, [$0] -> [NORTH, RED], [$1], [$0] (t=11, inv_iters=0) +// ASM-NEXT: DATA_MOV, [$1] -> [EAST, RED] (t=11, inv_iters=0) // ASM-NEXT: } (idx_per_ii=11) // ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [$1] (t=12, inv_iters=0) +// ASM-NEXT: DATA_MOV, [$0] -> [NORTH, RED] (t=12, inv_iters=0) // ASM-NEXT: } (idx_per_ii=12) // ASM-NEXT: { -// ASM-NEXT: PHI, [$0], [$1] -> [WEST, RED] (t=13, inv_iters=0) +// ASM-NEXT: GRANT_PREDICATE, [$2], [$3] -> [$0] (t=13, inv_iters=0) // ASM-NEXT: CTRL_MOV, [EAST, RED] -> [$2] (t=13, inv_iters=0) // ASM-NEXT: } (idx_per_ii=13) // ASM-NEXT: { -// ASM-NEXT: GEP, [$3] -> [WEST, RED] (t=14, inv_iters=0) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [EAST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(2,1): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$1] -> [EAST, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GEP, [WEST, RED] -> [SOUTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [EAST, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [SOUTH, RED] -> [NORTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$4] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: ADD, [WEST, RED], [#1] -> [$0], [NORTH, RED] (t=18, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: ICMP_EQ, [$0], [WEST, RED] -> [$0], [$1], [$2] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$0] -> [$5], [NORTH, RED], [$3] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$1], [$2] -> [SOUTH, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [$3] -> [WEST, RED] (t=22, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: ADD, [WEST, RED], [#4] -> [WEST, RED], [$0] (t=8, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$1] (t=9, inv_iters=0) -// ASM-NEXT: GRANT_PREDICATE, [$4], [$5] -> [WEST, RED] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=10, inv_iters=0) -// ASM-NEXT: RETURN_VOID, [SOUTH, RED] (t=25, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [WEST, RED] -> [WEST, RED] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: OR, [$1], [#2] -> [EAST, RED], [$0], [$1] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(3,1): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: GEP, [WEST, RED] -> [SOUTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [SOUTH, RED] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [SOUTH, RED] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED], [$0] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [$0] -> [SOUTH, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [NORTH, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(0,2): -// ASM-NEXT: { -// ASM-NEXT: LOAD, [EAST, RED] -> [NORTH, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [SOUTH, RED] -> [NORTH, RED] (t=16, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [EAST, RED] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [$0] -> [$0] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$3], [$5] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [EAST, RED] (t=21, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$4] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$1] -> [EAST, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$2] -> [NORTH, RED] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$3] -> [$0] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: STORE, [EAST, RED], [$4] (t=25, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: ADD, [$0], [EAST, RED] -> [$0] (t=26, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0], [$5] (t=27, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=12) -// ASM: PE(1,2): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$1] -> [WEST, RED] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GEP, [SOUTH, RED] -> [WEST, RED] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: NOT, [$2] -> [EAST, RED] (t=17, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [NORTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [WEST, RED] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [WEST, RED], [NORTH, RED] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$2] (t=5, inv_iters=0) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [SOUTH, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$3], [$4] -> [SOUTH, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=22, inv_iters=1) -// ASM-NEXT: CTRL_MOV, [EAST, RED] -> [SOUTH, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [SOUTH, RED] -> [$1] (t=23, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=9, inv_iters=0) -// ASM-NEXT: ADD, [$0], [$1] -> [WEST, RED] (t=24, inv_iters=1) -// ASM-NEXT: DATA_MOV, [NORTH, RED] -> [$1] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: MUL, [SOUTH, RED], [$1] -> [WEST, RED] (t=25, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=10) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$3] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$4] (t=12, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=12) -// ASM-NEXT: { -// ASM-NEXT: OR, [$0], [#1] -> [NORTH, RED], [$0], [$1] (t=13, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=13) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [WEST, RED] (t=14, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=14) -// ASM: PE(2,2): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GEP, [SOUTH, RED] -> [SOUTH, RED] (t=18, inv_iters=1) -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GRANT_ONCE, [$0] -> [WEST, RED] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: GRANT_PREDICATE, [$0], [SOUTH, RED] -> [WEST, RED] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=11, inv_iters=0) -// ASM-NEXT: } (idx_per_ii=11) -// ASM: PE(3,2): -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=15, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=0) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [SOUTH, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM: PE(0,3): -// ASM-NEXT: { -// ASM-NEXT: SEXT, [SOUTH, RED] -> [$0] (t=16, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=1) -// ASM-NEXT: { -// ASM-NEXT: SEXT, [SOUTH, RED] -> [$1] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [$2] (t=18, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$0] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: GEP, [$1] -> [SOUTH, RED], [$3] (t=19, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$1] (t=19, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=4) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$0] -> [$3] (t=20, inv_iters=1) -// ASM-NEXT: DATA_MOV, [$3] -> [SOUTH, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$2] -> [$0] (t=21, inv_iters=1) -// ASM-NEXT: DATA_MOV, [EAST, RED] -> [$2] (t=21, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=6) -// ASM-NEXT: { -// ASM-NEXT: LOAD, [$1] -> [EAST, RED] (t=22, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=7) -// ASM-NEXT: { -// ASM-NEXT: MUL, [$0], [$3] -> [$0] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: ADD, [SOUTH, RED], [$0] -> [$0] (t=24, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=9) -// ASM-NEXT: { -// ASM-NEXT: STORE, [$0], [$2] (t=25, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=10) -// ASM: PE(1,3): -// ASM-NEXT: { -// ASM-NEXT: GEP, [$0] -> [WEST, RED] (t=17, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=2) -// ASM-NEXT: { -// ASM-NEXT: GEP, [SOUTH, RED] -> [WEST, RED] (t=18, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=3) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [WEST, RED] (t=20, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=5) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [WEST, RED] -> [SOUTH, RED] (t=23, inv_iters=1) -// ASM-NEXT: } (idx_per_ii=8) -// ASM-NEXT: { -// ASM-NEXT: DATA_MOV, [SOUTH, RED] -> [$0] (t=14, inv_iters=0) +// ASM-NEXT: PHI, [$0], [NORTH, RED] -> [$0] (t=14, inv_iters=0) // ASM-NEXT: } (idx_per_ii=14) diff --git a/test/neura/ctrl/nested_branch.mlir b/test/neura/ctrl/nested_branch.mlir index 5af809b4..f18511f4 100644 --- a/test/neura/ctrl/nested_branch.mlir +++ b/test/neura/ctrl/nested_branch.mlir @@ -15,7 +15,8 @@ // RUN: --canonicalize-live-in \ // RUN: --leverage-predicated-value \ // RUN: --transform-ctrl-to-data-flow \ -// RUN: | FileCheck %s -check-prefix=CTRL2DATA +// RUN: -o %t-ctrl2data.mlir +// RUN: FileCheck %s --input-file=%t-ctrl2data.mlir --check-prefix=CTRL2DATA func.func @complex_test(%in: i64) -> f32 { %c0 = llvm.mlir.constant(0 : i64) : i64 @@ -84,11 +85,11 @@ func.func @complex_test(%in: i64) -> f32 { // CTRL2DATA-NEXT: %16 = neura.grant_predicate %5, %14 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %17 = neura.grant_predicate %3, %14 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %18 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %19 = neura.phi_start %17, %18 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %19 = "neura.phi"(%18, %17) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %20 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %21 = neura.phi_start %16, %20 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %21 = "neura.phi"(%20, %16) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %22 = neura.reserve : !neura.data -// CTRL2DATA-NEXT: %23 = neura.phi_start %15, %22 : !neura.data, !neura.data -> !neura.data +// CTRL2DATA-NEXT: %23 = "neura.phi"(%22, %15) : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %24 = "neura.fcmp"(%23, %21) <{cmpType = "olt"}> : (!neura.data, !neura.data) -> !neura.data // CTRL2DATA-NEXT: %25 = neura.grant_predicate %23, %24 : !neura.data, !neura.data -> !neura.data // CTRL2DATA-NEXT: %26 = neura.grant_predicate %19, %24 : !neura.data, !neura.data -> !neura.data diff --git a/test/neura/fusion/test.mlir b/test/neura/fusion/test.mlir index 19c4c7ff..7a590651 100644 --- a/test/neura/fusion/test.mlir +++ b/test/neura/fusion/test.mlir @@ -47,7 +47,8 @@ // RUN: --transform-ctrl-to-data-flow \ // RUN: --fold-constant \ // RUN: --iter-merge-pattern="min-support=3 max-iter=4" %t-kernel.mlir \ -// RUN: | FileCheck %s --check-prefix=CHECK-ITER-MERGE-PATTERN +// RUN: -o %t-merged.mlir +// RUN: FileCheck %s --input-file=%t-merged.mlir --check-prefix=CHECK-ITER-MERGE-PATTERN // CHECK-ITER-MERGE-PATTERN: %9:2 = "neura.fused_op"(%8) <{frequency = 4 : i64, pattern_id = 8 : i64, pattern_name = "grant_once->phi_start"}> ({ // CHECK-ITER-MERGE-PATTERN-NEXT: ^bb0(%arg5: !neura.data): @@ -55,13 +56,13 @@ // CHECK-ITER-MERGE-PATTERN-NEXT: %73 = neura.phi_start %72, %arg5 : !neura.data, !neura.data -> !neura.data // CHECK-ITER-MERGE-PATTERN-NEXT: neura.yield results(%72, %73 : !neura.data, !neura.data) // CHECK-ITER-MERGE-PATTERN-NEXT: }) : (!neura.data) -> (!neura.data, !neura.data) -// CHECK-ITER-MERGE-PATTERN: %38:2 = "neura.fused_op"(%9#1, %37, %26) <{frequency = 4 : i64, pattern_id = 9 : i64, pattern_name = "phi_start->fused_op:gep->load"}> ({ -// CHECK-ITER-MERGE-PATTERN-NEXT: ^bb0(%arg5: !neura.data, %arg6: !neura.data, %arg7: !neura.data): -// CHECK-ITER-MERGE-PATTERN-NEXT: %72 = neura.phi_start %arg5, %arg6 : !neura.data, !neura.data -> !neura.data -// CHECK-ITER-MERGE-PATTERN-NEXT: %73 = "neura.gep"(%arg7, %72) <{operandSegmentSizes = array}> : (!neura.data, !neura.data) -> !neura.data -// CHECK-ITER-MERGE-PATTERN-NEXT: %74 = "neura.load"(%73) : (!neura.data) -> !neura.data -// CHECK-ITER-MERGE-PATTERN-NEXT: neura.yield results(%72, %74 : !neura.data, !neura.data) -// CHECK-ITER-MERGE-PATTERN-NEXT: }) : (!neura.data, !neura.data, !neura.data) -> (!neura.data, !neura.data) +// CHECK-ITER_MERGE-PATTERN: %38:2 = "neura.fused_op"(%37, %9#1, %26) <{frequency = 4 : i64, pattern_id = 9 : i64, pattern_name = "phi->fused_op:gep->load"}> ({ +// CHECK-ITER_MERGE-PATTERN-NEXT: ^bb0(%arg5: !neura.data, %arg6: !neura.data, %arg7: !neura.data): +// CHECK-ITER_MERGE-PATTERN-NEXT: %72 = "neura.phi"(%arg5, %arg6) : (!neura.data, !neura.data) -> !neura.data +// CHECK-ITER_MERGE-PATTERN-NEXT: %73 = "neura.gep"(%arg7, %72) <{operandSegmentSizes = array}> : (!neura.data, !neura.data) -> !neura.data +// CHECK-ITER_MERGE-PATTERN-NEXT: %74 = "neura.load"(%73) : (!neura.data) -> !neura.data +// CHECK-ITER_MERGE-PATTERN-NEXT: neura.yield results(%72, %74 : !neura.data, !neura.data) +// CHECK-ITER_MERGE-PATTERN-NEXT: }) : (!neura.data, !neura.data, !neura.data) -> (!neura.data, !neura.data) // CHECK-ITER-MERGE-PATTERN: %39:2 = "neura.fused_op"(%32, %30, %38#0) <{frequency = 4 : i64, pattern_id = 0 : i64, pattern_name = "gep->load"}> ({ // CHECK-ITER-MERGE-PATTERN-NEXT: ^bb0(%arg5: !neura.data, %arg6: !neura.data, %arg7: !neura.data): // CHECK-ITER-MERGE-PATTERN-NEXT: %72 = "neura.gep"(%arg5, %arg6, %arg7) <{operandSegmentSizes = array}> : (!neura.data, !neura.data, !neura.data) -> !neura.data @@ -81,15 +82,16 @@ // RUN: --transform-ctrl-to-data-flow \ // RUN: --fold-constant \ // RUN: --init-pattern %t-kernel.mlir \ -// RUN: | FileCheck %s --check-prefix=CHECK-INIT-PATTERN +// RUN: -o %t-init-pattern.mlir +// RUN: FileCheck %s --input-file=%t-init-pattern.mlir --check-prefix=CHECK-INIT-PATTERN -// CHECK-INIT-PATTERN: %45:2 = "neura.fused_op"(%38, %36, %44) <{frequency = 4 : i64, pattern_id = 2 : i64, pattern_name = "gep->load"}> ({ +// CHECK-INIT-PATTERN: %47:2 = "neura.fused_op"(%40, %38, %46) <{frequency = 4 : i64, pattern_id = 2 : i64, pattern_name = "gep->load"}> ({ // CHECK-INIT-PATTERN-NEXT: ^bb0(%arg5: !neura.data, %arg6: !neura.data, %arg7: !neura.data): // CHECK-INIT-PATTERN-NEXT: %81 = "neura.gep"(%arg5, %arg6, %arg7) <{operandSegmentSizes = array}> : (!neura.data, !neura.data, !neura.data) -> !neura.data // CHECK-INIT-PATTERN-NEXT: %82 = "neura.load"(%81) : (!neura.data) -> !neura.data // CHECK-INIT-PATTERN-NEXT: neura.yield results(%81, %82 : !neura.data, !neura.data) // CHECK-INIT-PATTERN-NEXT: }) : (!neura.data, !neura.data, !neura.data) -> (!neura.data, !neura.data) -// CHECK-INIT-PATTERN-NEXT: %46 = "neura.fused_op"(%32, %44) <{frequency = 4 : i64, pattern_id = 2 : i64, pattern_name = "gep->load"}> ({ +// CHECK-INIT-PATTERN-NEXT: %48 = "neura.fused_op"(%34, %46) <{frequency = 4 : i64, pattern_id = 2 : i64, pattern_name = "gep->load"}> ({ // CHECK-INIT-PATTERN-NEXT: ^bb0(%arg5: !neura.data, %arg6: !neura.data): // CHECK-INIT-PATTERN-NEXT: %81 = "neura.gep"(%arg5, %arg6) <{operandSegmentSizes = array}> : (!neura.data, !neura.data) -> !neura.data // CHECK-INIT-PATTERN-NEXT: %82 = "neura.load"(%81) : (!neura.data) -> !neura.data @@ -128,204 +130,43 @@ // RUN: --hardware-merge="output=hardware_config.json" %t-kernel.mlir // RUN: FileCheck %s --input-file=hardware_config.json --check-prefix=CHECK-HARDWARE-MERGE -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "hardware_configuration": { -// CHECK-HARDWARE-MERGE: "summary": { -// CHECK-HARDWARE-MERGE: "total_templates": 3 -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: "hardware_templates": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "template_id": 0, -// CHECK-HARDWARE-MERGE: "instance_count": 2, -// CHECK-HARDWARE-MERGE: "supported_single_ops": ["neura.gep", "neura.grant_once", "neura.grant_predicate", "neura.load", "neura.phi_start", "neura.store"], -// CHECK-HARDWARE-MERGE: "supported_composite_ops": [ -// CHECK-HARDWARE-MERGE: {"pattern_id": 9, "name": "phi_start->fused_op:gep->load"}, -// CHECK-HARDWARE-MERGE: {"pattern_id": 0, "name": "gep->load"}, -// CHECK-HARDWARE-MERGE: {"pattern_id": 11, "name": "phi_start->grant_predicate"} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "functional_units": [ -// CHECK-HARDWARE-MERGE: {"fu_id": 0, "op_type": "neura.phi_start"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 1, "op_type": "neura.gep"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 2, "op_type": "neura.load"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 3, "op_type": "neura.grant_predicate"} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "fu_connections": [ -// CHECK-HARDWARE-MERGE: {"from_fu": 0, "to_fu": 1}, -// CHECK-HARDWARE-MERGE: {"from_fu": 0, "to_fu": 3}, -// CHECK-HARDWARE-MERGE: {"from_fu": 1, "to_fu": 2} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "pattern_execution_plans": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 9, -// CHECK-HARDWARE-MERGE: "pattern_name": "phi_start->fused_op:gep->load", -// CHECK-HARDWARE-MERGE: "fu_mapping": [0, 1, 2], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [0], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.phi_start"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [1], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.gep"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 2, -// CHECK-HARDWARE-MERGE: "parallel_fus": [2], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.load"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 0, -// CHECK-HARDWARE-MERGE: "pattern_name": "gep->load", -// CHECK-HARDWARE-MERGE: "fu_mapping": [1, 2], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [1], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.gep"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [2], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.load"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 11, -// CHECK-HARDWARE-MERGE: "pattern_name": "phi_start->grant_predicate", -// CHECK-HARDWARE-MERGE: "fu_mapping": [0, 3], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [0], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.phi_start"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [3], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.grant_predicate"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "template_id": 1, -// CHECK-HARDWARE-MERGE: "instance_count": 2, -// CHECK-HARDWARE-MERGE: "supported_single_ops": ["neura.grant_once", "neura.grant_predicate", "neura.icmp"], -// CHECK-HARDWARE-MERGE: "supported_composite_ops": [ -// CHECK-HARDWARE-MERGE: {"pattern_id": 2, "name": "fused_op:icmp->grant_predicate->grant_predicate"}, -// CHECK-HARDWARE-MERGE: {"pattern_id": 3, "name": "icmp->grant_predicate"} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "functional_units": [ -// CHECK-HARDWARE-MERGE: {"fu_id": 0, "op_type": "neura.icmp"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 1, "op_type": "neura.grant_predicate"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 2, "op_type": "neura.grant_predicate"} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "fu_connections": [ -// CHECK-HARDWARE-MERGE: {"from_fu": 0, "to_fu": 1}, -// CHECK-HARDWARE-MERGE: {"from_fu": 0, "to_fu": 2} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "pattern_execution_plans": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 2, -// CHECK-HARDWARE-MERGE: "pattern_name": "fused_op:icmp->grant_predicate->grant_predicate", -// CHECK-HARDWARE-MERGE: "fu_mapping": [0, 1, 2], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [0], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.icmp"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [1, 2], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.grant_predicate", "neura.grant_predicate"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 3, -// CHECK-HARDWARE-MERGE: "pattern_name": "icmp->grant_predicate", -// CHECK-HARDWARE-MERGE: "fu_mapping": [0, 1], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [0], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.icmp"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [1], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.grant_predicate"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "template_id": 2, -// CHECK-HARDWARE-MERGE: "instance_count": 1, -// CHECK-HARDWARE-MERGE: "supported_single_ops": ["neura.grant_once", "neura.grant_predicate", "neura.phi_start"], -// CHECK-HARDWARE-MERGE: "supported_composite_ops": [ -// CHECK-HARDWARE-MERGE: {"pattern_id": 5, "name": "grant_once->fused_op:phi_start->phi_start"}, -// CHECK-HARDWARE-MERGE: {"pattern_id": 8, "name": "grant_once->phi_start"} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "functional_units": [ -// CHECK-HARDWARE-MERGE: {"fu_id": 0, "op_type": "neura.grant_once"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 1, "op_type": "neura.phi_start"}, -// CHECK-HARDWARE-MERGE: {"fu_id": 2, "op_type": "neura.phi_start"} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "fu_connections": [ -// CHECK-HARDWARE-MERGE: {"from_fu": 0, "to_fu": 1}, -// CHECK-HARDWARE-MERGE: {"from_fu": 1, "to_fu": 2} -// CHECK-HARDWARE-MERGE: ], -// CHECK-HARDWARE-MERGE: "pattern_execution_plans": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 8, -// CHECK-HARDWARE-MERGE: "pattern_name": "grant_once->phi_start", -// CHECK-HARDWARE-MERGE: "fu_mapping": [0, 1], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [0], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.grant_once"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [1], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.phi_start"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "pattern_id": 5, -// CHECK-HARDWARE-MERGE: "pattern_name": "grant_once->fused_op:phi_start->phi_start", -// CHECK-HARDWARE-MERGE: "fu_mapping": [0, 1, 2], -// CHECK-HARDWARE-MERGE: "execution_stages": [ -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 0, -// CHECK-HARDWARE-MERGE: "parallel_fus": [0], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.grant_once"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 1, -// CHECK-HARDWARE-MERGE: "parallel_fus": [1], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.phi_start"] -// CHECK-HARDWARE-MERGE: }, -// CHECK-HARDWARE-MERGE: { -// CHECK-HARDWARE-MERGE: "stage": 2, -// CHECK-HARDWARE-MERGE: "parallel_fus": [2], -// CHECK-HARDWARE-MERGE: "parallel_ops": ["neura.phi_start"] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: ] -// CHECK-HARDWARE-MERGE: } -// CHECK-HARDWARE-MERGE: } +// CHECK-HARDWARE-MERGE: "hardware_templates": [ +// CHECK-HARDWARE-MERGE-NEXT: { +// CHECK-HARDWARE-MERGE-NEXT: "template_id": 0, +// CHECK-HARDWARE-MERGE-NEXT: "instance_count": 3, +// CHECK-HARDWARE-MERGE-NEXT: "supported_single_ops": ["neura.grant_once", "neura.grant_predicate", "neura.phi", "neura.phi_start"], +// CHECK-HARDWARE-MERGE-NEXT: "supported_composite_ops": [ +// CHECK-HARDWARE-MERGE-NEXT: {"pattern_id": 5, "name": "grant_once->fused_op:phi_start->phi"}, +// CHECK-HARDWARE-MERGE-NEXT: {"pattern_id": 8, "name": "grant_once->phi_start"}, +// CHECK-HARDWARE-MERGE-NEXT: {"pattern_id": 9, "name": "phi_start->phi"}, +// CHECK-HARDWARE-MERGE-NEXT: {"pattern_id": 10, "name": "phi->grant_predicate"} +// CHECK-HARDWARE-MERGE-NEXT: ], +// CHECK-HARDWARE-MERGE-NEXT: "functional_units": [ +// CHECK-HARDWARE-MERGE-NEXT: {"fu_id": 0, "op_type": "neura.grant_once"}, +// CHECK-HARDWARE-MERGE-NEXT: {"fu_id": 1, "op_type": "neura.phi_start"}, +// CHECK-HARDWARE-MERGE-NEXT: {"fu_id": 2, "op_type": "neura.phi"}, +// CHECK-HARDWARE-MERGE-NEXT: {"fu_id": 3, "op_type": "neura.grant_predicate"} +// CHECK-HARDWARE-MERGE-NEXT: ], +// CHECK-HARDWARE-MERGE-NEXT: "fu_connections": [ +// CHECK-HARDWARE-MERGE-NEXT: {"from_fu": 0, "to_fu": 1}, +// CHECK-HARDWARE-MERGE-NEXT: {"from_fu": 1, "to_fu": 2}, +// CHECK-HARDWARE-MERGE-NEXT: {"from_fu": 2, "to_fu": 3} +// CHECK-HARDWARE-MERGE-NEXT: ], +// CHECK-HARDWARE-MERGE-NEXT: "pattern_execution_plans": [ +// CHECK-HARDWARE-MERGE-NEXT: { +// CHECK-HARDWARE-MERGE-NEXT: "pattern_id": 8, +// CHECK-HARDWARE-MERGE-NEXT: "pattern_name": "grant_once->phi_start", +// CHECK-HARDWARE-MERGE-NEXT: "fu_mapping": [0, 1], +// CHECK-HARDWARE-MERGE-NEXT: "execution_stages": [ +// CHECK-HARDWARE-MERGE-NEXT: { +// CHECK-HARDWARE-MERGE-NEXT: "stage": 0, +// CHECK-HARDWARE-MERGE-NEXT: "parallel_fus": [0], +// CHECK-HARDWARE-MERGE-NEXT: "parallel_ops": ["neura.grant_once"] +// CHECK-HARDWARE-MERGE-NEXT: }, +// CHECK-HARDWARE-MERGE-NEXT: { +// CHECK-HARDWARE-MERGE-NEXT: "stage": 1, +// CHECK-HARDWARE-MERGE-NEXT: "parallel_fus": [1], +// CHECK-HARDWARE-MERGE-NEXT: "parallel_ops": ["neura.phi_start"] +// CHECK-HARDWARE-MERGE-NEXT: } +// CHECK-HARDWARE-MERGE-NEXT: ] +// CHECK-HARDWARE-MERGE-NEXT: },