Don't eliminate PiNodes for mismatched types
E.g. if we had `PiNode(1, CartesianIndex)`, we would eliminate that
because `1` was a constant. However, leaving this in allows the compiler
to realize that this code is unreachable, as well as guarding codegen
against having to wrok through invalid IR.