In certain places in the code we can never end up in a situation where
we're mixing fixed width and scalable vector types. For example,
we can't have truncations and extends that change the lane count. In
such cases it's perfectly fine to replace the comparison operators
with calls to the equivalent TypeSize::isKnownXY functions. The answer
should always be known at compile time. Also, in other places such as
GenWidenVectorStores and GenWidenVectorLoads we know from the behaviour
of FindMemType that we can never choose a vector type with a different
scalable property.
In a couple of places I have used the EVT::bitsLT function instead, where it
probably makes sense to keep an assert that scalable properties match.
clang-format: please reformat the code