import "primitives/core.futil";
import "primitives/memories/comb.futil";
component main(@go go: 1, @clk clk: 1, @reset reset: 1) -> (@done done: 1) {
cells {
r = std_reg(32);
add = std_add(32);
lt = std_lt(32);
@generated in_guarded_wire = std_wire(32);
}
wires {
comb group comb_invoke {
add.left = 32'd2;
add.right = 32'd3;
}
comb group comb_invoke0 {
in_guarded_wire.in = 1'd0 ? 32'd1;
in_guarded_wire.in = 1'd0 ? 32'd2;
}
comb group comb_invoke1 {
lt.left = 32'd2;
lt.right = 32'd4;
add.left = 32'd2;
add.right = lt.out ? r.out;
}
}
control {
seq {
invoke r(
in = 32'd1
)();
invoke r(
in = in_guarded_wire.out
)() with comb_invoke0;
@foo invoke r(
in = add.out
)() with comb_invoke;
@bar invoke r(
in = add.out
)() with comb_invoke1;
invoke r(
in = r.out
)();
}
}
}