RegisterCoalescer::removePartialRedundancy tries to hoist B = A from
BB0/BB2 to BB1:
BB1: ... BB0/BB2: ---- B = A; | ... | A = B; | |------- |
It does so if a number of conditions are fulfilled. However, it failed
to check if B was used by any of the terminators in BB1. Since we must
insert B = A before the terminators (since it's not a terminator itself),
this means that we could erroneously insert a new definition of B before a
use of it.
This testcase is invalid and fails the verifier with -verify-coalescing. I'm not sure how to reproduce the original problem while preserving correct value numbering