SIMD empacotado
Operações paralelas em quatro bytes ou duas meias palavras de registos RV32.
Vias empacotadas
Modelo histórico FEUP em registos RV32: quatro bytes ou duas meias palavras. B0/H0 são as vias baixas. Não é o banco v de RVV.
Operações
- ADD/SUB por via, sem carry entre vizinhas.
[250,2]+[10,20]dá[4,22]. Modular não é saturar. - STAS/STSA combinam soma e subtração por via; CRAS/CRSA cruzam uma origem. Escreve as duas equações antes do hexadecimal.
- CMPEQ testa igualdade; SCMPLT/SCMPLE com sinal, UCMPLT/UCMPLE sem sinal. Verdadeiro = todos os bits 1 da via.
- Deslocamentos lógicos introduzem zeros; aritméticos à direita replicam o sinal de cada via. Posições: 3 bits para 8, 4 para 16.
Produtos e permutações
- SMUL16 dá dois produtos de 32 bits (H0xH0 no registo baixo, H1xH1 no alto); SMULX16 cruza. SMUL8 dá quatro produtos de 16 bits.
- KMDA soma dois produtos num parcial de 32 bits e satura: com a=b=
0x80008000, cada produto vale e a soma vira0x7FFFFFFF. - PKBB16, PKTT16, PKBT16 e PKTB16 juntam meias palavras; PKBT16 dá (H1=a.H0, H0=b.H1). SWAP16 troca metades, SWAP8 troca bytes dentro de cada metade. SUNPKD/ZUNPKD estendem bytes com sinal ou zeros.