proc @foo (i1$ %clk_i, i1$ %rst_ni, i1$ %gate_clock, [1 x {i5, i1, i3, i2}]$ %mem_n) -> ([1 x {i5, i1, i3, i2}]$ %mem_q) { 0: br %init init: %clk_i1 = prb i1$ %clk_i %rst_ni1 = prb i1$ %rst_ni wait %check, %clk_i, %rst_ni check: %clk_i2 = prb i1$ %clk_i %1 = const i1 0 %2 = eq i1 %clk_i1, %1 %3 = neq i1 %clk_i2, %1 %posedge = and i1 %2, %3 %rst_ni2 = prb i1$ %rst_ni %4 = const i1 0 %5 = neq i1 %rst_ni1, %4 %6 = eq i1 %rst_ni2, %4 %negedge = and i1 %6, %5 %event_or = or i1 %posedge, %negedge br %event_or, %init, %event event: %rst_ni3 = prb i1$ %rst_ni %7 = not i1 %rst_ni3 br %7, %if_false, %if_true if_true: %8 = const i11 0 %9 = const i1 0 %10 = inss i11 %8, i1 %9, 0, 1 %11 = const i32 0 %12 = const i11 0 %13 = shr i11 %10, i11 %12, i32 %11 %14 = exts i11, i11 %13, 0, 11 %15 = const i32 0 %16 = const i11 0 %17 = shr i11 %14, i11 %16, i32 %15 %18 = exts i5, i11 %17, 0, 5 %19 = const i11 0 %20 = const i1 0 %21 = inss i11 %19, i1 %20, 0, 1 %22 = const i32 0 %23 = const i11 0 %24 = shr i11 %21, i11 %23, i32 %22 %25 = exts i11, i11 %24, 0, 11 %26 = const i32 5 %27 = const i11 0 %28 = shr i11 %25, i11 %27, i32 %26 %29 = exts i1, i11 %28, 0, 1 %30 = const i11 0 %31 = const i1 0 %32 = inss i11 %30, i1 %31, 0, 1 %33 = const i32 0 %34 = const i11 0 %35 = shr i11 %32, i11 %34, i32 %33 %36 = exts i11, i11 %35, 0, 11 %37 = const i32 6 %38 = const i11 0 %39 = shr i11 %36, i11 %38, i32 %37 %40 = exts i3, i11 %39, 0, 3 %41 = const i11 0 %42 = const i1 0 %43 = inss i11 %41, i1 %42, 0, 1 %44 = const i32 0 %45 = const i11 0 %46 = shr i11 %43, i11 %45, i32 %44 %47 = exts i11, i11 %46, 0, 11 %48 = const i32 9 %49 = const i11 0 %50 = shr i11 %47, i11 %49, i32 %48 %51 = exts i2, i11 %50, 0, 2 %52 = {i5 %18, i1 %29, i3 %40, i2 %51} %53 = [{i5, i1, i3, i2} %52] %54 = const time 0s 1d drv [1 x {i5, i1, i3, i2}]$ %mem_q, %53, %54 br %if_exit if_false: %gate_clock1 = prb i1$ %gate_clock %55 = not i1 %gate_clock1 br %55, %if_false1, %if_true1 if_exit: br %0 if_true1: %mem_n1 = prb [1 x {i5, i1, i3, i2}]$ %mem_n %56 = const time 0s 1d drv [1 x {i5, i1, i3, i2}]$ %mem_q, %mem_n1, %56 br %if_exit1 if_false1: br %if_exit1 if_exit1: br %if_exit }