An alternative version of D111538 and D111505. Attempting to create different operands for the VEX and EVEX instructions so that the AsmMatcher will infer an order for them. This is similar to how we normally prefer VEX over EVEX. The VEX register classes are smaller so they get ordered before the EVEX register classes.
Naming of the new operand types isn't great. Patch needs more comments. Had to make a hack to the EVEX2VEX emitter. Not sure if that's the best fix for it.
Maybe we should change the operands for the EVEX instructions instead of the VEX instructions.
Mainly posting this as inspiration for Yuanke. I don't know if I have time to finish this myself
clang-format: please reformat the code