The existing code was incorrect if we had more than one conditional
branch instruction in a basic block. Though I don't think that will
occur, using analyzeBranch detects that as an unsupported case.
Overall this results in simpler code in RISCVRedundantCopyElimination.
The reserved register check can be pulled out of the loop and become an early return. Not related to this change, just noticed while glancing at the code. Might be worth a separate cleanup change.