ARM has also been willing to drop older optional legacy stuff like Java oriented instructions that almost nobody used and Thumb. X86 supports nearly all legacy opcodes, even things like MMX and other obsolete vector operations that modern programs never use.
I mean ... that's the theory.
Which seems reasonable.. but you just burned 3/4 of the single opcode instruction space, which may not be worth it for most general purpose loads.
For thumb, 32-bit instructions can be allocated up to 3/32 of the potential 32-bit space, and 16-bit instructions can use 29/32 of the 16-bit space (3 of the potential 5-bit opcodes denote a 32-bit instruction.) Which is probably a better ratio than 1/2 or 1/4 of each, for instance. Though I'm not sure how much of that encoding space is actually allocated or still reserved.
Related, I believe ARM has allocated about half of the 32-bit encoding space for current A64 instructions.
Are there examples of ISA or chips that handle variable length instruction encoding efficiently?
Contrast that to something like utf8 where that isn't possible.
I think this old Intel patent talks about one of their decoder implementations:
FWIW, this is exactly what RISC-V does.
There aren't any standard extensions with instructions >32b yet, but the extensibility is there in the base spec.