use llhd::ir::prelude::*;
fn main() {
let name = UnitName::global("foo");
let sig = Signature::new();
let mut ent = UnitData::new(UnitKind::Entity, name, sig);
{
let mut builder = UnitBuilder::new_anonymous(&mut ent);
let mut sig = Signature::new();
sig.add_input(llhd::signal_ty(llhd::int_ty(1)));
sig.add_input(llhd::signal_ty(llhd::int_ty(42)));
sig.add_output(llhd::signal_ty(llhd::int_ty(32)));
let ext = builder.add_extern(UnitName::global("bar"), sig);
let v1 = builder.ins().const_int((1, 0));
let v2 = builder.ins().const_int((42, 9001));
let v3 = builder.ins().const_int((32, 0));
let v4 = builder.ins().sig(v3);
builder.ins().inst(ext, vec![v1, v2], vec![v4]);
}
println!("{}", Unit::new_anonymous(&ent));
}