Bitcast pointer to correct type before icmp

Pointers may not have the same backend type.
For example, ToLLVM yield *i8 regardless of
the underlying type; globals have type *T,
where T is the source type.