This patch builds over https://reviews.llvm.org/rL303349 and replaces the use of the condition only if it is safe to do so.
We should not blindly RAUW the condition if experimental.guard or assume is a use of that
condition. This is because LVI may have used the guard/assume to identify the
value of the condition, and RUAWing will fold the guard/assume and uses before the guards/assumes.