This patch throws a fatal error if an instregex entry doesn't actually match any instructions. This is part of the work to reduce the compile time impact of increased instregex usage (PR35955), although the x86 models seem to be relatively clean.
I've included hacks for all the cases I encountered, I don't know if I've fixed them correctly though (e.g. AArch64SchedThunderX2T99 has a lot of duplicate patterns for its ALU instructions).
I've also included a disabled error for cases where the instregex only matches one instruction - which IMO should probably be replaced with a instrs entry - this might be worth just a warning or we remove it from the patch completely (but it'd definitely improve compile time).