This patch does a few things:
- Add a new type called Undefined to ScalarTypeKind.
- Make RVVType::applyModifier early return when encounter invalid ScalarType, otherwise it could be modified to "non-invalid" type in the following code.
- When FixedLMULType::SmallerThan is applied, the lmul should be "<" than specified one, so lmuls which are ">=" should be marked as invalid.
Could we just reuse Invalid?