Most of these operations are reasonable for scalable vectors. Due to
this, we have decided not to change the interface to specifically take
FixedVectorType despite the fact that the current implementations make
fixed width assumptions. Instead, we cast to FixedVectorType and assert
in the body. If a developer makes some change in the future that causes
one of these asserts to fire, they should either change their code or
make the function they are trying to call handle scalable vectors.
Add a helper FIXME_ScalableVectorNotSupported to handle the assert, cast
and "fixme comment". The name was picked such that it would be obvious
that it's a "FIXME cast" that should be fixed, and not a cast and assert
that has sound engineering behind it.