If a loop has multiple backedges and all of them have the same metadata.
we return that metadata. Otherwise we return nullptr.
Without the patch, we search through all blocks in the loop, this is an
overkill and more importantly we bail on the first block that is either a latch
without metadata or *not* a latch at all. we should not bail on non-latch block.
s/I/BB/