Embora incomum, instruções com dois opcode podem servir propósitos arquiteturais legítimos:
- Extensão do Conjunto de Instruções — Combinar dois opcode permite que uma única instrução codifique múltiplas operações, reduzindo a contagem de instruções e o tamanho do código.
- Funcionalidade Avançada — Permite operações complexas (ex.: saltos condicionais baseados em valores de registo) impossíveis com um só opcode.
- Otimização do Compilador — Sequências comuns de instruções podem ser fundidas numa instrução de opcode duplo, melhorando a eficiência do pipeline.
- Compatibilidade com Versões Anteriores — Incluir opcodes legados e novos numa só instrução permite que processadores antigos e novos a executem.
- Eficiência de Pipeline — Menos instruções buscadas significam pipelines mais curtos e menor sobrecarga de busca/decodificação.
As compensações incluem maior complexidade do decodificador e potencial inchaço de código, mas em muitas arquiteturas os benefícios superam os custos.