When RegionBranchOpInterface::getSuccessorRegions is called for anything other than the parent op, it expects the operands of the terminator of the source region to be passed, not the operands of the parent op. This was not always respected.
This fixes a bug in integer range inference and ForwardDataFlowSolver and changes scf.while to allow narrowing of successors using constant inputs.
Fixes #55873
Looking here and below, is there call for a helper to iterate over the block terminators directly?