Add new hasVInstructions() which is currently equivalent.
Replace vector uses of hasStdExtZfh/F/D with new vector specific
versions. The vector spec no longer requires that the vectors implement the
same types as scalar. It only requires that the scalar type is
the maximum size the vectors can support. This is currently
implemented using the scalar rule we were using before.
Add new hasVInstructionsI64() begin using to qualify code that
requires i64 vector elements.
This is all NFC for now, but we can start using this to better
implement D112408 which introduces the Zve extensions.
I was wondering if some uses of this are better expressed as HasVInstructionsAnyF or something, such as when defining the instructions themselves. It's not a big deal if everyone knows that having Zfh/D implies having F but I just think that there may be two subtly-different meanings of this predicate which could make maintenance more difficult.