]> git.proxmox.com Git - mirror_qemu.git/blame - target/riscv/insn32.decode
target/riscv: vector narrowing fixed-point clip instructions
[mirror_qemu.git] / target / riscv / insn32.decode
CommitLineData
2a53cff4
BK
1#
2# RISC-V translation routines for the RVXI Base Integer Instruction Set.
3#
4# Copyright (c) 2018 Peer Adelt, peer.adelt@hni.uni-paderborn.de
5# Bastian Koppelmann, kbastian@mail.uni-paderborn.de
6#
7# This program is free software; you can redistribute it and/or modify it
8# under the terms and conditions of the GNU General Public License,
9# version 2 or later, as published by the Free Software Foundation.
10#
11# This program is distributed in the hope it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14# more details.
15#
16# You should have received a copy of the GNU General Public License along with
17# this program. If not, see <http://www.gnu.org/licenses/>.
18
19# Fields:
6f0e74ff 20%rs3 27:5
3cca75a6
BK
21%rs2 20:5
22%rs1 15:5
2a53cff4
BK
23%rd 7:5
24
b73a987b 25%sh10 20:10
771fbe15 26%csr 20:12
6f0e74ff 27%rm 12:3
751538d5 28%nf 29:3 !function=ex_plus_1
b73a987b 29
2a53cff4 30# immediates:
3cca75a6 31%imm_i 20:s12
c1000d4e 32%imm_s 25:s7 7:5
3cca75a6
BK
33%imm_b 31:s1 7:1 25:6 8:4 !function=ex_shift_1
34%imm_j 31:s1 12:8 20:1 21:10 !function=ex_shift_1
2a53cff4
BK
35%imm_u 12:s20 !function=ex_shift_12
36
3cca75a6 37# Argument sets:
e7617997 38&empty
3cca75a6 39&b imm rs2 rs1
7a50d3e2 40&i imm rs1 rd
e7617997 41&j imm rd
f2ab1728 42&r rd rs1 rs2
e7617997
RH
43&s imm rs1 rs2
44&u imm rd
b73a987b 45&shift shamt rs1 rd
3b77c289 46&atomic aq rl rs2 rs1 rd
43740e3a 47&rmrr vm rd rs1 rs2
268fcca6 48&rwdvm vm wd rd rs1 rs2
751538d5
LZ
49&r2nfvm vm rd rs1 nf
50&rnfvm vm rd rs1 rs2 nf
3cca75a6 51
2a53cff4 52# Formats 32:
f2ab1728 53@r ....... ..... ..... ... ..... ....... &r %rs2 %rs1 %rd
7a50d3e2 54@i ............ ..... ... ..... ....... &i imm=%imm_i %rs1 %rd
3cca75a6 55@b ....... ..... ..... ... ..... ....... &b imm=%imm_b %rs2 %rs1
e7617997
RH
56@s ....... ..... ..... ... ..... ....... &s imm=%imm_s %rs2 %rs1
57@u .................... ..... ....... &u imm=%imm_u %rd
58@j .................... ..... ....... &j imm=%imm_j %rd
2a53cff4 59
b73a987b 60@sh ...... ...... ..... ... ..... ....... &shift shamt=%sh10 %rs1 %rd
771fbe15 61@csr ............ ..... ... ..... ....... %csr %rs1 %rd
b73a987b 62
3b77c289
BK
63@atom_ld ..... aq:1 rl:1 ..... ........ ..... ....... &atomic rs2=0 %rs1 %rd
64@atom_st ..... aq:1 rl:1 ..... ........ ..... ....... &atomic %rs2 %rs1 %rd
65
6f0e74ff
BK
66@r4_rm ..... .. ..... ..... ... ..... ....... %rs3 %rs2 %rs1 %rm %rd
67@r_rm ....... ..... ..... ... ..... ....... %rs2 %rs1 %rm %rd
68@r2_rm ....... ..... ..... ... ..... ....... %rs1 %rm %rd
69@r2 ....... ..... ..... ... ..... ....... %rs1 %rd
751538d5
LZ
70@r2_nfvm ... ... vm:1 ..... ..... ... ..... ....... &r2nfvm %nf %rs1 %rd
71@r_nfvm ... ... vm:1 ..... ..... ... ..... ....... &rnfvm %nf %rs2 %rs1 %rd
43740e3a 72@r_vm ...... vm:1 ..... ..... ... ..... ....... &rmrr %rs2 %rs1 %rd
3a6f8f68 73@r_vm_1 ...... . ..... ..... ... ..... ....... &rmrr vm=1 %rs2 %rs1 %rd
f020a7a1 74@r_vm_0 ...... . ..... ..... ... ..... ....... &rmrr vm=0 %rs2 %rs1 %rd
268fcca6 75@r_wdvm ..... wd:1 vm:1 ..... ..... ... ..... ....... &rwdvm %rs2 %rs1 %rd
2b7168fc 76@r2_zimm . zimm:11 ..... ... ..... ....... %rs1 %rd
6f0e74ff 77
895c412c 78@hfence_gvma ....... ..... ..... ... ..... ....... %rs2 %rs1
b8429ded 79@hfence_vvma ....... ..... ..... ... ..... ....... %rs2 %rs1
895c412c 80
4ba79c47
BK
81@sfence_vma ....... ..... ..... ... ..... ....... %rs2 %rs1
82@sfence_vm ....... ..... ..... ... ..... ....... %rs1
83
84
85# *** Privileged Instructions ***
895c412c
AF
86ecall 000000000000 00000 000 00000 1110011
87ebreak 000000000001 00000 000 00000 1110011
88uret 0000000 00010 00000 000 00000 1110011
89sret 0001000 00010 00000 000 00000 1110011
895c412c
AF
90mret 0011000 00010 00000 000 00000 1110011
91wfi 0001000 00101 00000 000 00000 1110011
895c412c
AF
92sfence_vma 0001001 ..... ..... 000 00000 1110011 @sfence_vma
93sfence_vm 0001000 00100 ..... 000 00000 1110011 @sfence_vm
4ba79c47 94
2a53cff4
BK
95# *** RV32I Base Instruction Set ***
96lui .................... ..... 0110111 @u
97auipc .................... ..... 0010111 @u
3cca75a6
BK
98jal .................... ..... 1101111 @j
99jalr ............ ..... 000 ..... 1100111 @i
100beq ....... ..... ..... 000 ..... 1100011 @b
101bne ....... ..... ..... 001 ..... 1100011 @b
102blt ....... ..... ..... 100 ..... 1100011 @b
103bge ....... ..... ..... 101 ..... 1100011 @b
104bltu ....... ..... ..... 110 ..... 1100011 @b
105bgeu ....... ..... ..... 111 ..... 1100011 @b
c1000d4e
BK
106lb ............ ..... 000 ..... 0000011 @i
107lh ............ ..... 001 ..... 0000011 @i
108lw ............ ..... 010 ..... 0000011 @i
109lbu ............ ..... 100 ..... 0000011 @i
110lhu ............ ..... 101 ..... 0000011 @i
111sb ....... ..... ..... 000 ..... 0100011 @s
112sh ....... ..... ..... 001 ..... 0100011 @s
113sw ....... ..... ..... 010 ..... 0100011 @s
b73a987b
BK
114addi ............ ..... 000 ..... 0010011 @i
115slti ............ ..... 010 ..... 0010011 @i
116sltiu ............ ..... 011 ..... 0010011 @i
117xori ............ ..... 100 ..... 0010011 @i
118ori ............ ..... 110 ..... 0010011 @i
119andi ............ ..... 111 ..... 0010011 @i
120slli 00.... ...... ..... 001 ..... 0010011 @sh
121srli 00.... ...... ..... 101 ..... 0010011 @sh
122srai 01.... ...... ..... 101 ..... 0010011 @sh
123add 0000000 ..... ..... 000 ..... 0110011 @r
124sub 0100000 ..... ..... 000 ..... 0110011 @r
125sll 0000000 ..... ..... 001 ..... 0110011 @r
126slt 0000000 ..... ..... 010 ..... 0110011 @r
127sltu 0000000 ..... ..... 011 ..... 0110011 @r
128xor 0000000 ..... ..... 100 ..... 0110011 @r
129srl 0000000 ..... ..... 101 ..... 0110011 @r
130sra 0100000 ..... ..... 101 ..... 0110011 @r
131or 0000000 ..... ..... 110 ..... 0110011 @r
132and 0000000 ..... ..... 111 ..... 0110011 @r
0c865e85
BK
133fence ---- pred:4 succ:4 ----- 000 ----- 0001111
134fence_i ---- ---- ---- ----- 001 ----- 0001111
771fbe15
BK
135csrrw ............ ..... 001 ..... 1110011 @csr
136csrrs ............ ..... 010 ..... 1110011 @csr
137csrrc ............ ..... 011 ..... 1110011 @csr
138csrrwi ............ ..... 101 ..... 1110011 @csr
139csrrsi ............ ..... 110 ..... 1110011 @csr
140csrrci ............ ..... 111 ..... 1110011 @csr
d2e2c1e4
BK
141
142# *** RV32M Standard Extension ***
143mul 0000001 ..... ..... 000 ..... 0110011 @r
144mulh 0000001 ..... ..... 001 ..... 0110011 @r
145mulhsu 0000001 ..... ..... 010 ..... 0110011 @r
146mulhu 0000001 ..... ..... 011 ..... 0110011 @r
147div 0000001 ..... ..... 100 ..... 0110011 @r
148divu 0000001 ..... ..... 101 ..... 0110011 @r
149rem 0000001 ..... ..... 110 ..... 0110011 @r
150remu 0000001 ..... ..... 111 ..... 0110011 @r
3b77c289
BK
151
152# *** RV32A Standard Extension ***
153lr_w 00010 . . 00000 ..... 010 ..... 0101111 @atom_ld
154sc_w 00011 . . ..... ..... 010 ..... 0101111 @atom_st
155amoswap_w 00001 . . ..... ..... 010 ..... 0101111 @atom_st
156amoadd_w 00000 . . ..... ..... 010 ..... 0101111 @atom_st
157amoxor_w 00100 . . ..... ..... 010 ..... 0101111 @atom_st
158amoand_w 01100 . . ..... ..... 010 ..... 0101111 @atom_st
159amoor_w 01000 . . ..... ..... 010 ..... 0101111 @atom_st
160amomin_w 10000 . . ..... ..... 010 ..... 0101111 @atom_st
161amomax_w 10100 . . ..... ..... 010 ..... 0101111 @atom_st
162amominu_w 11000 . . ..... ..... 010 ..... 0101111 @atom_st
163amomaxu_w 11100 . . ..... ..... 010 ..... 0101111 @atom_st
6f0e74ff
BK
164
165# *** RV32F Standard Extension ***
166flw ............ ..... 010 ..... 0000111 @i
167fsw ....... ..... ..... 010 ..... 0100111 @s
168fmadd_s ..... 00 ..... ..... ... ..... 1000011 @r4_rm
169fmsub_s ..... 00 ..... ..... ... ..... 1000111 @r4_rm
170fnmsub_s ..... 00 ..... ..... ... ..... 1001011 @r4_rm
171fnmadd_s ..... 00 ..... ..... ... ..... 1001111 @r4_rm
172fadd_s 0000000 ..... ..... ... ..... 1010011 @r_rm
173fsub_s 0000100 ..... ..... ... ..... 1010011 @r_rm
174fmul_s 0001000 ..... ..... ... ..... 1010011 @r_rm
175fdiv_s 0001100 ..... ..... ... ..... 1010011 @r_rm
176fsqrt_s 0101100 00000 ..... ... ..... 1010011 @r2_rm
177fsgnj_s 0010000 ..... ..... 000 ..... 1010011 @r
178fsgnjn_s 0010000 ..... ..... 001 ..... 1010011 @r
179fsgnjx_s 0010000 ..... ..... 010 ..... 1010011 @r
180fmin_s 0010100 ..... ..... 000 ..... 1010011 @r
181fmax_s 0010100 ..... ..... 001 ..... 1010011 @r
182fcvt_w_s 1100000 00000 ..... ... ..... 1010011 @r2_rm
183fcvt_wu_s 1100000 00001 ..... ... ..... 1010011 @r2_rm
184fmv_x_w 1110000 00000 ..... 000 ..... 1010011 @r2
185feq_s 1010000 ..... ..... 010 ..... 1010011 @r
186flt_s 1010000 ..... ..... 001 ..... 1010011 @r
187fle_s 1010000 ..... ..... 000 ..... 1010011 @r
188fclass_s 1110000 00000 ..... 001 ..... 1010011 @r2
189fcvt_s_w 1101000 00000 ..... ... ..... 1010011 @r2_rm
190fcvt_s_wu 1101000 00001 ..... ... ..... 1010011 @r2_rm
191fmv_w_x 1111000 00000 ..... 000 ..... 1010011 @r2
97f8b493
BK
192
193# *** RV32D Standard Extension ***
194fld ............ ..... 011 ..... 0000111 @i
195fsd ....... ..... ..... 011 ..... 0100111 @s
196fmadd_d ..... 01 ..... ..... ... ..... 1000011 @r4_rm
197fmsub_d ..... 01 ..... ..... ... ..... 1000111 @r4_rm
198fnmsub_d ..... 01 ..... ..... ... ..... 1001011 @r4_rm
199fnmadd_d ..... 01 ..... ..... ... ..... 1001111 @r4_rm
200fadd_d 0000001 ..... ..... ... ..... 1010011 @r_rm
201fsub_d 0000101 ..... ..... ... ..... 1010011 @r_rm
202fmul_d 0001001 ..... ..... ... ..... 1010011 @r_rm
203fdiv_d 0001101 ..... ..... ... ..... 1010011 @r_rm
204fsqrt_d 0101101 00000 ..... ... ..... 1010011 @r2_rm
205fsgnj_d 0010001 ..... ..... 000 ..... 1010011 @r
206fsgnjn_d 0010001 ..... ..... 001 ..... 1010011 @r
207fsgnjx_d 0010001 ..... ..... 010 ..... 1010011 @r
208fmin_d 0010101 ..... ..... 000 ..... 1010011 @r
209fmax_d 0010101 ..... ..... 001 ..... 1010011 @r
210fcvt_s_d 0100000 00001 ..... ... ..... 1010011 @r2_rm
211fcvt_d_s 0100001 00000 ..... ... ..... 1010011 @r2_rm
212feq_d 1010001 ..... ..... 010 ..... 1010011 @r
213flt_d 1010001 ..... ..... 001 ..... 1010011 @r
214fle_d 1010001 ..... ..... 000 ..... 1010011 @r
215fclass_d 1110001 00000 ..... 001 ..... 1010011 @r2
216fcvt_w_d 1100001 00000 ..... ... ..... 1010011 @r2_rm
217fcvt_wu_d 1100001 00001 ..... ... ..... 1010011 @r2_rm
218fcvt_d_w 1101001 00000 ..... ... ..... 1010011 @r2_rm
219fcvt_d_wu 1101001 00001 ..... ... ..... 1010011 @r2_rm
b8429ded
AF
220
221# *** RV32H Base Instruction Set ***
222hfence_gvma 0110001 ..... ..... 000 00000 1110011 @hfence_gvma
223hfence_vvma 0010001 ..... ..... 000 00000 1110011 @hfence_vvma
2b7168fc
LZ
224
225# *** RV32V Extension ***
751538d5
LZ
226
227# *** Vector loads and stores are encoded within LOADFP/STORE-FP ***
228vlb_v ... 100 . 00000 ..... 000 ..... 0000111 @r2_nfvm
229vlh_v ... 100 . 00000 ..... 101 ..... 0000111 @r2_nfvm
230vlw_v ... 100 . 00000 ..... 110 ..... 0000111 @r2_nfvm
231vle_v ... 000 . 00000 ..... 111 ..... 0000111 @r2_nfvm
232vlbu_v ... 000 . 00000 ..... 000 ..... 0000111 @r2_nfvm
233vlhu_v ... 000 . 00000 ..... 101 ..... 0000111 @r2_nfvm
234vlwu_v ... 000 . 00000 ..... 110 ..... 0000111 @r2_nfvm
022b4ecf
LZ
235vlbff_v ... 100 . 10000 ..... 000 ..... 0000111 @r2_nfvm
236vlhff_v ... 100 . 10000 ..... 101 ..... 0000111 @r2_nfvm
237vlwff_v ... 100 . 10000 ..... 110 ..... 0000111 @r2_nfvm
238vleff_v ... 000 . 10000 ..... 111 ..... 0000111 @r2_nfvm
239vlbuff_v ... 000 . 10000 ..... 000 ..... 0000111 @r2_nfvm
240vlhuff_v ... 000 . 10000 ..... 101 ..... 0000111 @r2_nfvm
241vlwuff_v ... 000 . 10000 ..... 110 ..... 0000111 @r2_nfvm
751538d5
LZ
242vsb_v ... 000 . 00000 ..... 000 ..... 0100111 @r2_nfvm
243vsh_v ... 000 . 00000 ..... 101 ..... 0100111 @r2_nfvm
244vsw_v ... 000 . 00000 ..... 110 ..... 0100111 @r2_nfvm
245vse_v ... 000 . 00000 ..... 111 ..... 0100111 @r2_nfvm
246
247vlsb_v ... 110 . ..... ..... 000 ..... 0000111 @r_nfvm
248vlsh_v ... 110 . ..... ..... 101 ..... 0000111 @r_nfvm
249vlsw_v ... 110 . ..... ..... 110 ..... 0000111 @r_nfvm
250vlse_v ... 010 . ..... ..... 111 ..... 0000111 @r_nfvm
251vlsbu_v ... 010 . ..... ..... 000 ..... 0000111 @r_nfvm
252vlshu_v ... 010 . ..... ..... 101 ..... 0000111 @r_nfvm
253vlswu_v ... 010 . ..... ..... 110 ..... 0000111 @r_nfvm
254vssb_v ... 010 . ..... ..... 000 ..... 0100111 @r_nfvm
255vssh_v ... 010 . ..... ..... 101 ..... 0100111 @r_nfvm
256vssw_v ... 010 . ..... ..... 110 ..... 0100111 @r_nfvm
257vsse_v ... 010 . ..... ..... 111 ..... 0100111 @r_nfvm
258
f732560e
LZ
259vlxb_v ... 111 . ..... ..... 000 ..... 0000111 @r_nfvm
260vlxh_v ... 111 . ..... ..... 101 ..... 0000111 @r_nfvm
261vlxw_v ... 111 . ..... ..... 110 ..... 0000111 @r_nfvm
262vlxe_v ... 011 . ..... ..... 111 ..... 0000111 @r_nfvm
263vlxbu_v ... 011 . ..... ..... 000 ..... 0000111 @r_nfvm
264vlxhu_v ... 011 . ..... ..... 101 ..... 0000111 @r_nfvm
265vlxwu_v ... 011 . ..... ..... 110 ..... 0000111 @r_nfvm
266# Vector ordered-indexed and unordered-indexed store insns.
267vsxb_v ... -11 . ..... ..... 000 ..... 0100111 @r_nfvm
268vsxh_v ... -11 . ..... ..... 101 ..... 0100111 @r_nfvm
269vsxw_v ... -11 . ..... ..... 110 ..... 0100111 @r_nfvm
270vsxe_v ... -11 . ..... ..... 111 ..... 0100111 @r_nfvm
271
268fcca6
LZ
272#*** Vector AMO operations are encoded under the standard AMO major opcode ***
273vamoswapw_v 00001 . . ..... ..... 110 ..... 0101111 @r_wdvm
274vamoaddw_v 00000 . . ..... ..... 110 ..... 0101111 @r_wdvm
275vamoxorw_v 00100 . . ..... ..... 110 ..... 0101111 @r_wdvm
276vamoandw_v 01100 . . ..... ..... 110 ..... 0101111 @r_wdvm
277vamoorw_v 01000 . . ..... ..... 110 ..... 0101111 @r_wdvm
278vamominw_v 10000 . . ..... ..... 110 ..... 0101111 @r_wdvm
279vamomaxw_v 10100 . . ..... ..... 110 ..... 0101111 @r_wdvm
280vamominuw_v 11000 . . ..... ..... 110 ..... 0101111 @r_wdvm
281vamomaxuw_v 11100 . . ..... ..... 110 ..... 0101111 @r_wdvm
282
751538d5 283# *** new major opcode OP-V ***
43740e3a
LZ
284vadd_vv 000000 . ..... ..... 000 ..... 1010111 @r_vm
285vadd_vx 000000 . ..... ..... 100 ..... 1010111 @r_vm
286vadd_vi 000000 . ..... ..... 011 ..... 1010111 @r_vm
287vsub_vv 000010 . ..... ..... 000 ..... 1010111 @r_vm
288vsub_vx 000010 . ..... ..... 100 ..... 1010111 @r_vm
289vrsub_vx 000011 . ..... ..... 100 ..... 1010111 @r_vm
290vrsub_vi 000011 . ..... ..... 011 ..... 1010111 @r_vm
8fcdf776
LZ
291vwaddu_vv 110000 . ..... ..... 010 ..... 1010111 @r_vm
292vwaddu_vx 110000 . ..... ..... 110 ..... 1010111 @r_vm
293vwadd_vv 110001 . ..... ..... 010 ..... 1010111 @r_vm
294vwadd_vx 110001 . ..... ..... 110 ..... 1010111 @r_vm
295vwsubu_vv 110010 . ..... ..... 010 ..... 1010111 @r_vm
296vwsubu_vx 110010 . ..... ..... 110 ..... 1010111 @r_vm
297vwsub_vv 110011 . ..... ..... 010 ..... 1010111 @r_vm
298vwsub_vx 110011 . ..... ..... 110 ..... 1010111 @r_vm
299vwaddu_wv 110100 . ..... ..... 010 ..... 1010111 @r_vm
300vwaddu_wx 110100 . ..... ..... 110 ..... 1010111 @r_vm
301vwadd_wv 110101 . ..... ..... 010 ..... 1010111 @r_vm
302vwadd_wx 110101 . ..... ..... 110 ..... 1010111 @r_vm
303vwsubu_wv 110110 . ..... ..... 010 ..... 1010111 @r_vm
304vwsubu_wx 110110 . ..... ..... 110 ..... 1010111 @r_vm
305vwsub_wv 110111 . ..... ..... 010 ..... 1010111 @r_vm
306vwsub_wx 110111 . ..... ..... 110 ..... 1010111 @r_vm
3a6f8f68
LZ
307vadc_vvm 010000 1 ..... ..... 000 ..... 1010111 @r_vm_1
308vadc_vxm 010000 1 ..... ..... 100 ..... 1010111 @r_vm_1
309vadc_vim 010000 1 ..... ..... 011 ..... 1010111 @r_vm_1
310vmadc_vvm 010001 1 ..... ..... 000 ..... 1010111 @r_vm_1
311vmadc_vxm 010001 1 ..... ..... 100 ..... 1010111 @r_vm_1
312vmadc_vim 010001 1 ..... ..... 011 ..... 1010111 @r_vm_1
313vsbc_vvm 010010 1 ..... ..... 000 ..... 1010111 @r_vm_1
314vsbc_vxm 010010 1 ..... ..... 100 ..... 1010111 @r_vm_1
315vmsbc_vvm 010011 1 ..... ..... 000 ..... 1010111 @r_vm_1
316vmsbc_vxm 010011 1 ..... ..... 100 ..... 1010111 @r_vm_1
d3842924
LZ
317vand_vv 001001 . ..... ..... 000 ..... 1010111 @r_vm
318vand_vx 001001 . ..... ..... 100 ..... 1010111 @r_vm
319vand_vi 001001 . ..... ..... 011 ..... 1010111 @r_vm
320vor_vv 001010 . ..... ..... 000 ..... 1010111 @r_vm
321vor_vx 001010 . ..... ..... 100 ..... 1010111 @r_vm
322vor_vi 001010 . ..... ..... 011 ..... 1010111 @r_vm
323vxor_vv 001011 . ..... ..... 000 ..... 1010111 @r_vm
324vxor_vx 001011 . ..... ..... 100 ..... 1010111 @r_vm
325vxor_vi 001011 . ..... ..... 011 ..... 1010111 @r_vm
3277d955
LZ
326vsll_vv 100101 . ..... ..... 000 ..... 1010111 @r_vm
327vsll_vx 100101 . ..... ..... 100 ..... 1010111 @r_vm
328vsll_vi 100101 . ..... ..... 011 ..... 1010111 @r_vm
329vsrl_vv 101000 . ..... ..... 000 ..... 1010111 @r_vm
330vsrl_vx 101000 . ..... ..... 100 ..... 1010111 @r_vm
331vsrl_vi 101000 . ..... ..... 011 ..... 1010111 @r_vm
332vsra_vv 101001 . ..... ..... 000 ..... 1010111 @r_vm
333vsra_vx 101001 . ..... ..... 100 ..... 1010111 @r_vm
334vsra_vi 101001 . ..... ..... 011 ..... 1010111 @r_vm
7689b028
LZ
335vnsrl_vv 101100 . ..... ..... 000 ..... 1010111 @r_vm
336vnsrl_vx 101100 . ..... ..... 100 ..... 1010111 @r_vm
337vnsrl_vi 101100 . ..... ..... 011 ..... 1010111 @r_vm
338vnsra_vv 101101 . ..... ..... 000 ..... 1010111 @r_vm
339vnsra_vx 101101 . ..... ..... 100 ..... 1010111 @r_vm
340vnsra_vi 101101 . ..... ..... 011 ..... 1010111 @r_vm
1366fc79
LZ
341vmseq_vv 011000 . ..... ..... 000 ..... 1010111 @r_vm
342vmseq_vx 011000 . ..... ..... 100 ..... 1010111 @r_vm
343vmseq_vi 011000 . ..... ..... 011 ..... 1010111 @r_vm
344vmsne_vv 011001 . ..... ..... 000 ..... 1010111 @r_vm
345vmsne_vx 011001 . ..... ..... 100 ..... 1010111 @r_vm
346vmsne_vi 011001 . ..... ..... 011 ..... 1010111 @r_vm
347vmsltu_vv 011010 . ..... ..... 000 ..... 1010111 @r_vm
348vmsltu_vx 011010 . ..... ..... 100 ..... 1010111 @r_vm
349vmslt_vv 011011 . ..... ..... 000 ..... 1010111 @r_vm
350vmslt_vx 011011 . ..... ..... 100 ..... 1010111 @r_vm
351vmsleu_vv 011100 . ..... ..... 000 ..... 1010111 @r_vm
352vmsleu_vx 011100 . ..... ..... 100 ..... 1010111 @r_vm
353vmsleu_vi 011100 . ..... ..... 011 ..... 1010111 @r_vm
354vmsle_vv 011101 . ..... ..... 000 ..... 1010111 @r_vm
355vmsle_vx 011101 . ..... ..... 100 ..... 1010111 @r_vm
356vmsle_vi 011101 . ..... ..... 011 ..... 1010111 @r_vm
357vmsgtu_vx 011110 . ..... ..... 100 ..... 1010111 @r_vm
358vmsgtu_vi 011110 . ..... ..... 011 ..... 1010111 @r_vm
359vmsgt_vx 011111 . ..... ..... 100 ..... 1010111 @r_vm
360vmsgt_vi 011111 . ..... ..... 011 ..... 1010111 @r_vm
558fa779
LZ
361vminu_vv 000100 . ..... ..... 000 ..... 1010111 @r_vm
362vminu_vx 000100 . ..... ..... 100 ..... 1010111 @r_vm
363vmin_vv 000101 . ..... ..... 000 ..... 1010111 @r_vm
364vmin_vx 000101 . ..... ..... 100 ..... 1010111 @r_vm
365vmaxu_vv 000110 . ..... ..... 000 ..... 1010111 @r_vm
366vmaxu_vx 000110 . ..... ..... 100 ..... 1010111 @r_vm
367vmax_vv 000111 . ..... ..... 000 ..... 1010111 @r_vm
368vmax_vx 000111 . ..... ..... 100 ..... 1010111 @r_vm
958b85f3
LZ
369vmul_vv 100101 . ..... ..... 010 ..... 1010111 @r_vm
370vmul_vx 100101 . ..... ..... 110 ..... 1010111 @r_vm
371vmulh_vv 100111 . ..... ..... 010 ..... 1010111 @r_vm
372vmulh_vx 100111 . ..... ..... 110 ..... 1010111 @r_vm
373vmulhu_vv 100100 . ..... ..... 010 ..... 1010111 @r_vm
374vmulhu_vx 100100 . ..... ..... 110 ..... 1010111 @r_vm
375vmulhsu_vv 100110 . ..... ..... 010 ..... 1010111 @r_vm
376vmulhsu_vx 100110 . ..... ..... 110 ..... 1010111 @r_vm
85e6658c
LZ
377vdivu_vv 100000 . ..... ..... 010 ..... 1010111 @r_vm
378vdivu_vx 100000 . ..... ..... 110 ..... 1010111 @r_vm
379vdiv_vv 100001 . ..... ..... 010 ..... 1010111 @r_vm
380vdiv_vx 100001 . ..... ..... 110 ..... 1010111 @r_vm
381vremu_vv 100010 . ..... ..... 010 ..... 1010111 @r_vm
382vremu_vx 100010 . ..... ..... 110 ..... 1010111 @r_vm
383vrem_vv 100011 . ..... ..... 010 ..... 1010111 @r_vm
384vrem_vx 100011 . ..... ..... 110 ..... 1010111 @r_vm
97b1cba3
LZ
385vwmulu_vv 111000 . ..... ..... 010 ..... 1010111 @r_vm
386vwmulu_vx 111000 . ..... ..... 110 ..... 1010111 @r_vm
387vwmulsu_vv 111010 . ..... ..... 010 ..... 1010111 @r_vm
388vwmulsu_vx 111010 . ..... ..... 110 ..... 1010111 @r_vm
389vwmul_vv 111011 . ..... ..... 010 ..... 1010111 @r_vm
390vwmul_vx 111011 . ..... ..... 110 ..... 1010111 @r_vm
54df813a
LZ
391vmacc_vv 101101 . ..... ..... 010 ..... 1010111 @r_vm
392vmacc_vx 101101 . ..... ..... 110 ..... 1010111 @r_vm
393vnmsac_vv 101111 . ..... ..... 010 ..... 1010111 @r_vm
394vnmsac_vx 101111 . ..... ..... 110 ..... 1010111 @r_vm
395vmadd_vv 101001 . ..... ..... 010 ..... 1010111 @r_vm
396vmadd_vx 101001 . ..... ..... 110 ..... 1010111 @r_vm
397vnmsub_vv 101011 . ..... ..... 010 ..... 1010111 @r_vm
398vnmsub_vx 101011 . ..... ..... 110 ..... 1010111 @r_vm
2b587b33
LZ
399vwmaccu_vv 111100 . ..... ..... 010 ..... 1010111 @r_vm
400vwmaccu_vx 111100 . ..... ..... 110 ..... 1010111 @r_vm
401vwmacc_vv 111101 . ..... ..... 010 ..... 1010111 @r_vm
402vwmacc_vx 111101 . ..... ..... 110 ..... 1010111 @r_vm
403vwmaccsu_vv 111110 . ..... ..... 010 ..... 1010111 @r_vm
404vwmaccsu_vx 111110 . ..... ..... 110 ..... 1010111 @r_vm
405vwmaccus_vx 111111 . ..... ..... 110 ..... 1010111 @r_vm
f020a7a1
LZ
406vmv_v_v 010111 1 00000 ..... 000 ..... 1010111 @r2
407vmv_v_x 010111 1 00000 ..... 100 ..... 1010111 @r2
408vmv_v_i 010111 1 00000 ..... 011 ..... 1010111 @r2
409vmerge_vvm 010111 0 ..... ..... 000 ..... 1010111 @r_vm_0
410vmerge_vxm 010111 0 ..... ..... 100 ..... 1010111 @r_vm_0
411vmerge_vim 010111 0 ..... ..... 011 ..... 1010111 @r_vm_0
eb2650e3
LZ
412vsaddu_vv 100000 . ..... ..... 000 ..... 1010111 @r_vm
413vsaddu_vx 100000 . ..... ..... 100 ..... 1010111 @r_vm
414vsaddu_vi 100000 . ..... ..... 011 ..... 1010111 @r_vm
415vsadd_vv 100001 . ..... ..... 000 ..... 1010111 @r_vm
416vsadd_vx 100001 . ..... ..... 100 ..... 1010111 @r_vm
417vsadd_vi 100001 . ..... ..... 011 ..... 1010111 @r_vm
418vssubu_vv 100010 . ..... ..... 000 ..... 1010111 @r_vm
419vssubu_vx 100010 . ..... ..... 100 ..... 1010111 @r_vm
420vssub_vv 100011 . ..... ..... 000 ..... 1010111 @r_vm
421vssub_vx 100011 . ..... ..... 100 ..... 1010111 @r_vm
b7aee481
LZ
422vaadd_vv 100100 . ..... ..... 000 ..... 1010111 @r_vm
423vaadd_vx 100100 . ..... ..... 100 ..... 1010111 @r_vm
424vaadd_vi 100100 . ..... ..... 011 ..... 1010111 @r_vm
425vasub_vv 100110 . ..... ..... 000 ..... 1010111 @r_vm
426vasub_vx 100110 . ..... ..... 100 ..... 1010111 @r_vm
9f0ff9e5
LZ
427vsmul_vv 100111 . ..... ..... 000 ..... 1010111 @r_vm
428vsmul_vx 100111 . ..... ..... 100 ..... 1010111 @r_vm
0a1eaf00
LZ
429vwsmaccu_vv 111100 . ..... ..... 000 ..... 1010111 @r_vm
430vwsmaccu_vx 111100 . ..... ..... 100 ..... 1010111 @r_vm
431vwsmacc_vv 111101 . ..... ..... 000 ..... 1010111 @r_vm
432vwsmacc_vx 111101 . ..... ..... 100 ..... 1010111 @r_vm
433vwsmaccsu_vv 111110 . ..... ..... 000 ..... 1010111 @r_vm
434vwsmaccsu_vx 111110 . ..... ..... 100 ..... 1010111 @r_vm
435vwsmaccus_vx 111111 . ..... ..... 100 ..... 1010111 @r_vm
04a61406
LZ
436vssrl_vv 101010 . ..... ..... 000 ..... 1010111 @r_vm
437vssrl_vx 101010 . ..... ..... 100 ..... 1010111 @r_vm
438vssrl_vi 101010 . ..... ..... 011 ..... 1010111 @r_vm
439vssra_vv 101011 . ..... ..... 000 ..... 1010111 @r_vm
440vssra_vx 101011 . ..... ..... 100 ..... 1010111 @r_vm
441vssra_vi 101011 . ..... ..... 011 ..... 1010111 @r_vm
9ff3d287
LZ
442vnclipu_vv 101110 . ..... ..... 000 ..... 1010111 @r_vm
443vnclipu_vx 101110 . ..... ..... 100 ..... 1010111 @r_vm
444vnclipu_vi 101110 . ..... ..... 011 ..... 1010111 @r_vm
445vnclip_vv 101111 . ..... ..... 000 ..... 1010111 @r_vm
446vnclip_vx 101111 . ..... ..... 100 ..... 1010111 @r_vm
447vnclip_vi 101111 . ..... ..... 011 ..... 1010111 @r_vm
43740e3a 448
2b7168fc
LZ
449vsetvli 0 ........... ..... 111 ..... 1010111 @r2_zimm
450vsetvl 1000000 ..... ..... 111 ..... 1010111 @r