diff --git a/src/V3DfgPeephole.cpp b/src/V3DfgPeephole.cpp index f297d45bd..ff3b42020 100644 --- a/src/V3DfgPeephole.cpp +++ b/src/V3DfgPeephole.cpp @@ -844,7 +844,8 @@ class V3DfgPeephole final : public DfgVisitor { // Sel from Cond if (DfgCond* const condp = fromp->cast()) { // If at least one of the branches are a constant, push the select past the cond - if (condp->thenp()->is() || condp->elsep()->is()) { + if (!condp->hasMultipleSinks() + && (condp->thenp()->is() || condp->elsep()->is())) { APPLYING(PUSH_SEL_THROUGH_COND) { // The new 'then' vertex DfgSel* const newThenp = make(vtxp, condp->thenp(), lsb);