InstSimplify has a folding
(x == y ? a : b) => b
that is valid if the equality can lead to the conclusion.
However, if x and y are pointers, the condition must be more restrictive because x == y being true does not imply that they are truly equivalent values.
This patch fixes InstSimplify to conditionally perform the transformation if they are pointers, using canReplacePointersIfEqual.
Refinement must not be used in this case; AreEqual is used instead therefore.