Open
Description
circt-opt -canonicalize
triggers an assertion on the following input. Maybe an upstream bug?
Assertion failed: (mayBeGraphRegion(*op->getParentRegion()) && "expected that op has no uses"), function operator(), file PatternMatch.cpp, line 182.
module {
moore.module private @snitch_regfile(in %clk_i : !moore.l1, in %raddr_i : !moore.array<2 x l5>, out rdata_o : !moore.array<2 x l32>, in %waddr_i : !moore.array<1 x l5>, in %wdata_i : !moore.array<1 x l32>, in %we_i : !moore.l1) {
%0 = moore.constant 1 : i32
%1 = moore.constant 0 : i32
%rdata_o = moore.variable : <array<2 x l32>>
moore.procedure always_ff {
cf.br ^bb1(%1 : !moore.i32)
^bb1(%3: !moore.i32): // 2 preds: ^bb0, ^bb6
moore.return
^bb2: // no predecessors
cf.br ^bb4
^bb3: // no predecessors
cf.br ^bb4
^bb4: // 2 preds: ^bb2, ^bb3
%4 = moore.add %4, %0 : i32
cf.br ^bb6
^bb5: // no predecessors
cf.br ^bb6
^bb6: // 2 preds: ^bb4, ^bb5
%5 = moore.add %3, %0 : i32
cf.br ^bb1(%5 : !moore.i32)
}
%2 = moore.read %rdata_o : <array<2 x l32>>
moore.output %2 : !moore.array<2 x l32>
}
}
Activity