2026-01-11 14:50:28 +00:00
|
|
|
|
select.graph {
|
2026-01-27 20:52:25 +00:00
|
|
|
|
%entry = +select.entry -> !select.chain
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
2026-01-27 20:52:25 +00:00
|
|
|
|
%0 = +select.register @0 : i32 -> !select.register
|
|
|
|
|
|
%1 = +select.register @1 : i32 -> !select.register
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
|
|
|
|
|
%v.0, %c.0 = +select.register.read %entry, %0 \
|
2026-01-27 20:52:25 +00:00
|
|
|
|
: (!select.chain, !select.register) \
|
|
|
|
|
|
-> (i32, !select.chain)
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
|
|
|
|
|
%v.1, %c.1 = +select.register.read %entry, %1 \
|
2026-01-27 20:52:25 +00:00
|
|
|
|
: (!select.chain, !select.register) \
|
|
|
|
|
|
-> (i32, !select.chain)
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
|
|
|
|
|
%2 = +select.register @2 : i32
|
|
|
|
|
|
|
|
|
|
|
|
%v.2, %c.2 = +select.register.read %entry, %2 \
|
2026-01-27 20:52:25 +00:00
|
|
|
|
: (!select.chain, !select.register) \
|
|
|
|
|
|
-> (!select.register, !select.chain)
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
|
|
|
|
|
%v.3 = arith.build-pair %v.0, %v.1 : (i32, i32) -> i64
|
|
|
|
|
|
|
|
|
|
|
|
%v.4 = arith.truncate %v.2 : i64 -> i32
|
|
|
|
|
|
|
|
|
|
|
|
%v.5 = arith.mul %v.4, %v.3 : (i32, i32) -> i32
|
|
|
|
|
|
|
2026-01-27 20:52:25 +00:00
|
|
|
|
%x0 = +select.mach-register @x0 : i32 -> !select.register
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
|
|
|
|
|
%c.3, %g.0 = +select.register.write %entry, %x0, %v.5 \
|
2026-01-27 20:52:25 +00:00
|
|
|
|
: (!select.chain, !select.register, i32) \
|
|
|
|
|
|
-> (!select.chain, !select.glue)
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
|
|
|
|
|
%c.4 = *risc-v.RET %c.3, %x0, %g.0 \
|
2026-01-27 20:52:25 +00:00
|
|
|
|
: (!select.chain, !select.register, !select.glue) \
|
|
|
|
|
|
-> !select.chain
|
2026-01-11 14:50:28 +00:00
|
|
|
|
|
2026-01-27 20:52:25 +00:00
|
|
|
|
+select.graph-root %c.4 : !select.chain
|
2026-01-11 14:50:28 +00:00
|
|
|
|
}
|