Note we have two conditional forms in RTL: cond_exec and if_then_else.
COND_EXEC is uses when all side effects are suppressed when the insn
fails its condition. IF_THEN_ELSE is used for situations where the
side-effects are performed even if the value is not used. So
That looks wrong: the false if_then_else arm isn't supposed to
be executed *at all* i.e. not for side-effects like
post-increment. It's not logical; the false if_then_else arm of
a conditional branch using if_then_else evaluated (usually just
a label; but the address isn't evaluated for validity).