; RUN: llhd-opt %s -p deseq proc %ff_clkrise_rstasynclow_gated (i1$ %clk_i, i1$ %rst_ni, i1$ %gate_clock, i32$ %mem_d) -> (i32$ %mem_q) { init: %clk_i1 = prb i1$ %clk_i %rst_ni1 = prb i1$ %rst_ni %0 = const i1 0 %1 = eq i1 %clk_i1, %0 %2 = neq i1 %rst_ni1, %0 %3 = const time 0s 1d %4 = const i32 0 wait %check, %clk_i, %rst_ni check: %clk_i2 = prb i1$ %clk_i %rst_ni2 = prb i1$ %rst_ni %gate_clock1 = prb i1$ %gate_clock %mem_d1 = prb i32$ %mem_d %5 = neq i1 %clk_i2, %0 %posedge = and i1 %1, %5 %6 = eq i1 %rst_ni2, %0 %negedge = and i1 %6, %2 %event_or = or i1 %posedge, %negedge %7 = not i1 %rst_ni2 %8 = not i1 %gate_clock1 %9 = not i1 %7 %10 = and i1 %event_or, %9 %11 = and i1 %10, %8 %12 = and i1 %event_or, %7 %13 = or i1 %11, %12 %14 = [i32 %mem_d1, %4] %15 = mux [2 x i32] %14, i1 %12 drv i32$ %mem_q if %13, %15, %3 br %init }