Here some bits for Allegrex ISA in a shortest and stripped form :
CODE
bitfields:
rs:5; rd:5; rt:5; sa:5; lsb:5; msb:5;
fs:5; fd:5; ft:5; fcond:4;
vs:7; vt:7; vd:7; vcond:4; vt1:1; vt2:2; vt5:5;
vs_m:3; vs_c:2; vs_r:2; vs_x:1; vs_o:1;
vt_m:3; vt_c:2; vt_r:2; vt_x:1; vt_o:1;
vd_m:3; vd_c:2; vd_r:2; vd_x:1; vd_o:1;
one:1; two:1;
imm3:3; imm5:5; imm7:7; imm8:8; imm14:14; imm16:16; imm20:20; imm26:26;
negw:1; negz:1; negy:1; negx:1;
cstw:1; cstz:1; csty:1; cstx:1;
absw:1; absz:1; absy:1; absx:1;
swzw:2; swzz:2; swzy:2; swzx:2;
mskw:1; mskz:1; msky:1; mskx:1;
satw:2; satz:2; saty:2; satx:2;
wb:1;
c0dr:5; c0cr:5;
c1dr:5; c1cr:5;
MISC:
NOP(00000000000000000000000000000000)
ICACHE_INDEX_INVALIDATE(101111:rs:00100:imm16)
ICACHE_INDEX_UNLOCK(101111:rs:00110:imm16)
ICACHE_HIT_INVALIDATE(101111:rs:01000:imm16)
ICACHE_FILL(101111:rs:01010:imm16)
ICACHE_FILL_WITH_LOCK(101111:rs:01011:imm16)
DCACHE_INDEX_WRITEBACK_INVALIDATE(101111:rs:10100:imm16)
DCACHE_INDEX_UNLOCK(101111:rs:10110:imm16)
DCACHE_CREATE_DIRTY_EXCLUSIVE(101111:rs:11000:imm16)
DCACHE_HIT_INVALIDATE(101111:rs:11001:imm16)
DCACHE_HIT_WRITEBACK(101111:rs:11010:imm16)
DCACHE_HIT_WRITEBACK_INVALIDATE(101111:rs:11011:imm16)
DCACHE_CREATE_DIRTY_EXCLUSIVE_WITH_LOCK(101111:rs:11100:imm16)
DCACHE_FILL(101111:rs:11110:imm16)
DCACHE_FILL_WITH_LOCK(101111:rs:11111:imm16)
SYSCALL(000000:imm20:001100)
ERET(010000:10000:00000:00000:00000:011000)
BREAK(000000:imm20:001101)
SYNC(00000000000000000000000000001111)
HALT(011100:00000:00000:00000:00000:000000)
MFIC(011100:rt:00000:00000:00000:100100)
MTIC(011100:rt:00000:00000:00000:100110)
ALU:
ADD(000000:rs:rt:rd:00000:100000)
ADDU(000000:rs:rt:rd:00000:100001)
ADDI(001000:rs:rt:imm16)
ADDIU(001001:rs:rt:imm16)
AND(000000:rs:rt:rd:00000:100100)
ANDI(001100:rs:rt:imm16)
NOR(000000:rs:rt:rd:00000:100111)
OR(000000:rs:rt:rd:00000:100101)
ORI(001101:rs:rt:imm16)
XOR(000000:rs:rt:rd:00000:100110)
XORI(001110:rs:rt:imm16)
SLL(000000:00000:rt:rd:sa:000000)
SLLV(000000:rs:rt:rd:00000:000100)
SRA(000000:00000:rt:rd:sa:000011)
SRAV(000000:rs:rt:rd:00000:000111)
SRL(000000:00000:rt:rd:sa:000010)
SRLV(000000:rs:rt:rd:00000:000110)
ROTR(000000:00001:rt:rd:sa:000010)
ROTRV(000000:rs:rt:rd:00001:000110)
SLT(000000:rs:rt:rd:00000:101010)
SLTI(001010:rs:rt:imm16)
SLTU(000000:rs:rt:rd:00000:101011)
SLTIU(001011:rs:rt:imm16)
SUB(000000:rs:rt:rd:00000:100010)
SUBU(000000:rs:rt:rd:00000:100011)
LUI(001111:00000:rt:imm16)
SEB(011111:00000:rt:rd:10000:100001)
SEH(011111:00000:rt:rd:11000:100000)
BITREV(011111:00000:rt:rd:10100:100000)
WSBH(011111:00000:rt:rd:00010:100000)
WSBW(011111:00000:rt:rd:00011:100000)
MOVZ(000000:rs:rt:rd:00000:001010)
MOVN(000000:rs:rt:rd:00000:001011)
MAX(000000:rs:rt:rd:00000:101100)
MIN(000000:rs:rt:rd:00000:101101)
CLZ(000000:rs:00000:rd:00000:010110)
CLO(000000:rs:00000:rd:00000:010111)
EXT(011111:rs:rt
msb-lsb):lsb:000000)
INS(011111:rs:rt:msb:lsb:000100)
MDU:
MULT(000000:rs:rt:00000:00000:011000)
MULTU(000000:rs:rt:00000:00000:011001)
MADD(000000:rs:rt:00000:00000:011100)
MADDU(000000:rs:rt:00000:00000:011101)
MSUB(000000:rs:rt:00000:00000:101110)
MSUBU(000000:rs:rt:00000:00000:101111)
DIV(000000:rs:rt:00000:00000:011010)
DIVU(000000:rs:rt:00000:00000:011011)
MFHI(000000:00000:00000:rd:00000:010000)
MFLO(000000:00000:00000:rd:00000:010010)
MTHI(000000:rs:00000:00000:00000:010001)
MTLO(000000:rs:00000:00000:00000:010011)
BCU:
BEQ(000100:rs:rt:imm16)
BEQL(010100:rs:rt:imm16)
BGEZ(000001:rs:00001:imm16)
BGEZALL(000001:rs:10011:imm16)
BGEZL(000001:rs:00011:imm16)
BGTZ(000111:rs:00000:imm16)
BGTZL(010111:rs:00000:imm16)
BLEZ(000110:rs:00000:imm16)
BLEZL(010110:rs:00000:imm16)
BLTZ(000001:rs:00000:imm16)
BLTZAL(000001:rs:10000:imm16)
BLTZALL(000001:rs:10010:imm16)
BLTZL(000001:rs:00010:imm16)
BNE(000101:rs:rt:imm16)
BNEL(010101:rs:rt:imm16)
J(000010:imm26)
JAL(000011:imm26)
JALR(000000:rs:00000:rd:00000:001001)
JR(000000:rs:00000:00000:00000:001000)
BC1F(010001:01000:00000:imm16)
BC1T(010001:01000:00001:imm16)
BC1FL(010001:01000:00010:imm16)
BC1TL(010001:01000:00011:imm16)
BVF(010010:01:000:imm3:00:imm16)
BVT(010010:01:000:imm3:01:imm16)
BVFL(010010:01:000:imm3:10:imm16)
BVTL(010010:01:000:imm3:11:imm16)
LSU:
LB(100000:rs:rt:imm16)
LBU(100100:rs:rt:imm16)
LH(100001:rs:rt:imm16)
LHU(100101:rs:rt:imm16)
LW(100011:rs:rt:imm16)
LWL(100010:rs:rt:imm16)
LWR(100110:rs:rt:imm16)
SB(101000:rs:rt:imm16)
SH(101001:rs:rt:imm16)
SW(101011:rs:rt:imm16)
SWL(101010:rs:rt:imm16)
SWR(101110:rs:rt:imm16)
LL(110000:rs:rt:imm16)
LWC1(110001:rs:ft:imm16)
LVS(110010:rs:vt5:imm14:vt2)
LVLQ(110101:rs:vt5:imm14:0:vt1)
LVRQ(110101:rs:vt5:imm14:1:vt1)
LVQ(110110:rs:vt5:imm14:0:vt1)
SC(111000:rs:rt:imm16)
SWC1(111001:rs:ft:imm16)
SVS(111010:rs:vt5:imm14:vt2)
SVLQ(111101:rs:vt5:imm14:0:vt1)
SVRQ(111101:rs:vt5:imm14:1:vt1)
SVQ(111110:rs:vt5:imm14:0:vt1)
SWB(111110:rs:vt5:imm14:1:vt1)
FPU:
ADD.S(010001:10000:ft:fs:fd:000000)
SUB.S(010001:10000:ft:fs:fd:000001)
MUL.S(010001:10000:ft:fs:fd:000010)
DIV.S(010001:10000:ft:fs:fd:000011)
SQRT.S(010001:10000:00000:fs:fd:000100)
ABS.S(010001:10000:00000:fs:fd:000101)
MOV.S(010001:10000:00000:fs:fd:000110)
NEG.S(010001:10000:00000:fs:fd:000111)
ROUND.W.S(010001:10000:00000:fs:fd:001100)
TRUNC.W.S(010001:10000:00000:fs:fd:001101)
CEIL.W.S(010001:10000:00000:fs:fd:001110)
FLOOR.W.S(010001:10000:00000:fs:fd:001111)
CVT.S.W(010001:10100:00000:fs:fd:100000)
CVT.W.S(010001:10000:00000:fs:fd:100100)
C.<cond>.S(010001:10000:ft:fs:00000:11:fcond)
MFC1(010001:00000:rt:c1dr:00000:000000)
CFC1(010001:00010:rt:c1cr:00000:000000)
MTC1(010001:00100:rt:c1dr:00000:000000)
CTC1(010001:00110:rt:c1cr:00000:000000)
COP0:
MFC0(010000:00000:rt:c0dr:00000:000000)
CFC0(010000:00010:rt:c0cr:00000:000000)
MTC0(010000:00100:rt:c0dr:00000:000000)
CTC0(010000:00110:rt:c0cr:00000:000000)
VFPU0:
VADD(011000:000:vt:two:vs
ne:vd)
VSUB(011000:001:vt:two:vs
ne:vd)
VSBN(011000:010:vt:two:vs
ne:vd)
VDIV(011000:111:vt:two:vs
ne:vd)
VFPU1:
VMUL(011001:000:vt:two:vs
ne:vd)
VDOT(011001:001:vt:two:vs
ne:vd)
VSCL(011001:010:vt:two:vs
ne:vd)
VHDP(011001:100:vt:two:vs
ne:vd)
VDET(011001:101:vt:two:vs
ne:vd)
VCRS(011001:110:vt:two:vs
ne:vd)
VFPU2:
MFV(010010:00:011:rt:0:0000000:0:imm7)
MFVC(010010:00:011:rt:0:0000000:1:imm7)
MTV(010010:00:111:rt:0:0000000:0:imm7)
MTVC(010010:00:111:rt:0:0000000:1:imm7)
VFPU3:
VCMP(011011:000:vt:two:vs
ne:0000:imm3)
VMIN(011011:010:vt:two:vs
ne:vd)
VMAX(011011:011:vt:two:vs
ne:vd)
VSCMP(011011:101:vt:two:vs
ne:vd)
VSGE(011011:110:vt:two:vs
ne:vd)
VSLT(011011:100:vt:two:vs
ne:vd)
VFPU4:
VMOV(110100:00:000:0:0000:two:vs
ne:vd)
VABS(110100:00:000:0:0001:two:vs
ne:vd)
VNEG(110100:00:000:0:0010:two:vs
ne:vd)
VIDT(110100:00:000:0:0011:two:0000000
ne:vd)
VSAT0(110100:00:000:0:0100:two:vs
ne:vd)
VSAT1(110100:00:000:0:0101:two:vs
ne:vd)
VZERO(110100:00:000:0:0110:two:0000000
ne:vd)
VONE(110100:00:000:0:0111:two:0000000
ne:vd)
VRCP(110100:00:000:1:0000:two:vs
ne:vd)
VRSQ(110100:00:000:1:0001:two:vs
ne:vd)
VSIN(110100:00:000:1:0010:two:vs
ne:vd)
VCOS(110100:00:000:1:0011:two:vs
ne:vd)
VEXP2(110100:00:000:1:0100:two:vs
ne:vd)
VLOG2(110100:00:000:1:0101:two:vs
ne:vd)
VSQRT(110100:00:000:1:0110:two:vs
ne:vd)
VASIN(110100:00:000:1:0111:two:vs
ne:vd)
VNRCP(110100:00:000:1:1000:two:vs
ne:vd)
VNSIN(110100:00:000:1:1010:two:vs
ne:vd)
VREXP2(110100:00:000:1:1100:two:vs
ne:vd)
VRNDS(110100:00:001:00:000:two:vs
ne:0000000)
VRNDI(110100:00:001:00:001:two:0000000
ne:vd)
VRNDF1(110100:00:001:00:010:two:0000000
ne:vd)
VRNDF2(110100:00:001:00:011:two:0000000
ne:vd)
VF2H(110100:00:001:10:010:two:vs
ne:vd)
VH2F(110100:00:001:10:011:two:vs
ne:vd)
VSBZ(110100:00:001:10:110:two:vs
ne:vd)
VLGB(110100:00:001:10:111:two:vs
ne:vd)
VUC2I(110100:00:001:11:000:two:vs
ne:vd)
VC2I(110100:00:001:11:001:two:vs
ne:vd)
VUS2I(110100:00:001:11:010:two:vs
ne:vd)
VS2I(110100:00:001:11:011:two:vs
ne:vd)
VI2UC(110100:00:001:11:100:two:vs
ne:vd)
VI2C(110100:00:001:11:101:two:vs
ne:vd)
VI2US(110100:00:001:11:110:two:vs
ne:vd)
VI2S(110100:00:001:11:111:two:vs
ne:vd)
VSRT1(110100:00:010:00000:two:vs
ne:vd)
VSRT2(110100:00:010:00001:two:vs
ne:vd)
VBFY1(110100:00:010:00010:two:vs
ne:vd)
VBFY2(110100:00:010:00011:two:vs
ne:vd)
VOCP(110100:00:010:00100:two:vs
ne:vd)
VSOCP(110100:00:010:00101:two:vs
ne:vd)
VFAD(110100:00:010:00110:two:vs
ne:vd)
VAVG(110100:00:010:00111:two:vs
ne:vd)
VSRT3(110100:00:010:01000:two:vs
ne:vd)
VSRT4(110100:00:010:01001:two:vs
ne:vd)
VMFVC(110100:00:010:10000:1:imm7:0:vd)
VMTVC(110100:00:010:10001:0:vs:1:imm7)
VT4444(110100:00:010:11001:two:vs
ne:vd)
VT5551(110100:00:010:11010:two:vs
ne:vd)
VT5650(110100:00:010:11011:two:vs
ne:vd)
VCST(110100:00:011:imm5:two:0000000
ne:vd)
VF2IN(110100:10:000:imm5:two:vs
ne:vd)
VF2IZ(110100:10:001:imm5:two:vs
ne:vd)
VF2IU(110100:10:010:imm5:two:vs
ne:vd)
VF2ID(110100:10:011:imm5:two:vs
ne:vd)
VI2F(110100:10:100:imm5:two:vs
ne:vd)
VCMOVT(110100:10:101:00:imm3:two:vs
ne:vd)
VCMOVF(110100:10:101:01:imm3:two:vs
ne:vd)
VWBN(110100:11:imm8:two:vs
ne:vd)
VFPU5:
VPFXS(110111:00:----:negw:negz:negy:negx:cstw:cstz:csty:cstx:absw:absz:absy:absx:swzw:swzz:swzy:swzx)
VPFXT(110111:01:----:negw:negz:negy:negx:cstw:cstz:csty:cstx:absw:absz:absy:absx:swzw:swzz:swzy:swzx)
VPFXD(110111:10:------------:mskw:mskz:msky:mskx:satw:satz:saty:satx)
VIIM(110111:11:0:vd:imm16)
VFIM(110111:11:1:vd:imm16)
VFPU6:
VMMUL(111100:000:vt:two:vs
ne:vd)
VHTFM2(111100:001:vt:0:vs:0:vd)
VTFM2(111100:001:vt:0:vs:1:vd)
VHTFM3(111100:010:vt:0:vs:1:vd)
VTFM3(111100:010:vt:1:vs:0:vd)
VHTFM4(111100:011:vt:1:vs:0:vd)
VTFM4(111100:011:vt:1:vs:1:vd)
VMSCL(111100:100:vt:two:vs
ne:vd)
VQMUL(111100:101:vt:1:vs:1:vd)
VMMOV(111100:111:00:00000:two:vs
ne:vd)
VMIDT(111100:111:00:00011:two:0000000
ne:vd)
VMZERO(111100:111:00:00110:two:0000000
ne:vd)
VMONE(111100:111:00:00111:two:0000000
ne:vd)
VROT(111100:111:01:imm5:two:vs
ne:vd)
VFPU7:
VNOP(111111:1111111111:00000:00000000000)
VFLUSH(111111:1111111111:00000:10000001101)
VSYNC(111111:1111111111:00000:01100100000)
note : 1 <= (1+one+2*two) <= 4, gives the number of components to operate in a vector or the number of vectors to operate in a matrix. vs, vt and vd is a generic name to describe scalar, vector or matrix registers in VFPU.
note2: I use a similar format to generate a decoder, if you find some errors, tell me so I can correct.