This patch fixes the discrepancy between all `MVT::LAST_XXX` enum values.
Usually `LAST_XXX` values are inclusive (see `LAST_INTEGER_VALUETYPE` or `LAST_FP_VALUETYPE`) but `LAST_VALUETYPE` behaves differently and points past the last value (See https://github.com/llvm/llvm-project/blob/438cf5577e720f84d493a272c5a1cbaf6ce19e51/llvm/include/llvm/Support/MachineValueType.h#L32)
The discrepancy is easy to spot in the `_valuetypes()` function at the bottom of the file
https://github.com/llvm/llvm-project/blob/438cf5577e720f84d493a272c5a1cbaf6ce19e51/llvm/include/llvm/Support/MachineValueType.h#L1370
This patch makes `LAST_VALUETYPE` point to the last value (as per definition) and introduces a special enum to be used as the size of a table to hold all enums up to - and including - `LAST_VALUETYPE`.
The patch is a bit verbose because of formatting issues the Linter was complaining about.