aboutsummaryrefslogtreecommitdiff
path: root/opcodes-v
blob: 051f2b8abd9d471c8f91e615c5a53da538c3eee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
# Vector loads & stores
# TODO Colin split up
#
# Use 14..12 as the 4 sizes of memory ops (B, H, W, D)
# 14..12=0 Vector Byte
#        5 Vector Half
#        6 Vector Word
#        7 Vector DoubleWord
# Use 26..25 for mask field
# Use bit 27 for strided or indexed (strided with x0 is unit stride)
# Use 28 for signed/unsigned (load fp lives in store opcode)
# 31..29 for immeadiate
#
# For stores bit 28 and 27 move to 8 and 7 and bit 8 means int or fp
#
@vlb       vd     rs1 24..20=0 vlimm mm 28=0 27=0 14..12=0 6..0=0x07
@vlh       vd     rs1 24..20=0 vlimm mm 28=0 27=0 14..12=5 6..0=0x07
@vlw       vd     rs1 24..20=0 vlimm mm 28=0 27=0 14..12=6 6..0=0x07
@vld       vd     rs1 24..20=0 vlimm mm 28=0 27=0 14..12=7 6..0=0x07
@vlbu      vd     rs1 24..20=0 vlimm mm 28=1 27=0 14..12=0 6..0=0x07
@vlhu      vd     rs1 24..20=0 vlimm mm 28=1 27=0 14..12=5 6..0=0x07
@vlwu      vd     rs1 24..20=0 vlimm mm 28=1 27=0 14..12=6 6..0=0x07
vlsb       vd     rs1 rs2      vlimm mm 28=0 27=0 14..12=0 6..0=0x07
vlsh       vd     rs1 rs2      vlimm mm 28=0 27=0 14..12=5 6..0=0x07
vlsw       vd     rs1 rs2      vlimm mm 28=0 27=0 14..12=6 6..0=0x07
vlsd       vd     rs1 rs2      vlimm mm 28=0 27=0 14..12=7 6..0=0x07
vlsbu      vd     rs1 rs2      vlimm mm 28=1 27=0 14..12=0 6..0=0x07
vlshu      vd     rs1 rs2      vlimm mm 28=1 27=0 14..12=5 6..0=0x07
vlswu      vd     rs1 rs2      vlimm mm 28=1 27=0 14..12=6 6..0=0x07
vlxb       vd     rs1 vs2      vlimm mm 28=0 27=1 14..12=0 6..0=0x07
vlxh       vd     rs1 vs2      vlimm mm 28=0 27=1 14..12=5 6..0=0x07
vlxw       vd     rs1 vs2      vlimm mm 28=0 27=1 14..12=6 6..0=0x07
vlxd       vd     rs1 vs2      vlimm mm 28=0 27=1 14..12=7 6..0=0x07
vlxbu      vd     rs1 vs2      vlimm mm 28=1 27=1 14..12=0 6..0=0x07
vlxhu      vd     rs1 vs2      vlimm mm 28=1 27=1 14..12=5 6..0=0x07
vlxwu      vd     rs1 vs2      vlimm mm 28=1 27=1 14..12=6 6..0=0x07

# FP loads use the store opcode
@vlfh      vs3    rs1 24..20=0 vsimm mm 8=1 7=0 14..12=5 6..0=0x27
@vlfs      vs3    rs1 24..20=0 vsimm mm 8=1 7=0 14..12=6 6..0=0x27
@vlfd      vs3    rs1 24..20=0 vsimm mm 8=1 7=0 14..12=7 6..0=0x27
vlsfh      vs3    rs1 rs2      vsimm mm 8=1 7=0 14..12=5 6..0=0x27
vlsfs      vs3    rs1 rs2      vsimm mm 8=1 7=0 14..12=6 6..0=0x27
vlsfd      vs3    rs1 rs2      vsimm mm 8=1 7=0 14..12=7 6..0=0x27
vlxfh      vs3    rs1 vs2      vsimm mm 8=1 7=1 14..12=5 6..0=0x27
vlxfs      vs3    rs1 vs2      vsimm mm 8=1 7=1 14..12=6 6..0=0x27
vlxfd      vs3    rs1 vs2      vsimm mm 8=1 7=1 14..12=7 6..0=0x27

@vsb       vs3    rs1 24..20=0 vsimm mm 8=0 7=0 14..12=0 6..0=0x27
@vsh       vs3    rs1 24..20=0 vsimm mm 8=0 7=0 14..12=5 6..0=0x27
@vsw       vs3    rs1 24..20=0 vsimm mm 8=0 7=0 14..12=6 6..0=0x27
@vsd       vs3    rs1 24..20=0 vsimm mm 8=0 7=0 14..12=7 6..0=0x27
vssb       vs3    rs1 rs2      vsimm mm 8=0 7=0 14..12=0 6..0=0x27
vssh       vs3    rs1 rs2      vsimm mm 8=0 7=0 14..12=5 6..0=0x27
vssw       vs3    rs1 rs2      vsimm mm 8=0 7=0 14..12=6 6..0=0x27
vssd       vs3    rs1 rs2      vsimm mm 8=0 7=0 14..12=7 6..0=0x27
vsxb       vs3    rs1 rs2      vsimm mm 8=0 7=1 14..12=0 6..0=0x27
vsxh       vs3    rs1 rs2      vsimm mm 8=0 7=1 14..12=5 6..0=0x27
vsxw       vs3    rs1 rs2      vsimm mm 8=0 7=1 14..12=6 6..0=0x27
vsxd       vs3    rs1 rs2      vsimm mm 8=0 7=1 14..12=7 6..0=0x27

# Vector AMOs
vamoswap  m vd vs3 vs2 19..15=0x01    26..25=3 14=1 6..0=0x27
vamoadd   m vd vs3 vs2 19..15=0x00    26..25=3 14=1 6..0=0x27
vamoxor   m vd vs3 vs2 19..15=0x04    26..25=3 14=1 6..0=0x27
vamoor    m vd vs3 vs2 19..15=0x08    26..25=3 14=1 6..0=0x27
vamoand   m vd vs3 vs2 19..15=0x0C    26..25=3 14=1 6..0=0x27
vamomin   m vd vs3 vs2 19..15=0x10    26..25=3 14=1 6..0=0x27
vamomax   m vd vs3 vs2 19..15=0x14    26..25=3 14=1 6..0=0x27

# Vector FMA
# Fits into the two unused rounding modes
# predicated versions are in madd and msub
# - With rm signifying v1.f(101) and v1.t(110)
# Normal use of the size field for size of operands
# non-predicated versions are in nmadd and nmsub
# - With rm signifying scalar(101) or vector(110) dest
vfmadd.s.f   vd vs1 vs2 vs3 14..12=0x5 26..25=0 6..2=0x10 1..0=3
vfmadd.s.t   vd vs1 vs2 vs3 14..12=0x6 26..25=0 6..2=0x10 1..0=3
vfmsub.s.f   vd vs1 vs2 vs3 14..12=0x5 26..25=0 6..2=0x11 1..0=3
vfmsub.s.t   vd vs1 vs2 vs3 14..12=0x6 26..25=0 6..2=0x11 1..0=3

vfmadd.d.f   vd vs1 vs2 vs3 14..12=0x5 26..25=1 6..2=0x10 1..0=3
vfmadd.d.t   vd vs1 vs2 vs3 14..12=0x6 26..25=1 6..2=0x10 1..0=3
vfmsub.d.f   vd vs1 vs2 vs3 14..12=0x5 26..25=1 6..2=0x11 1..0=3
vfmsub.d.t   vd vs1 vs2 vs3 14..12=0x6 26..25=1 6..2=0x11 1..0=3

vfmadd.h.f   vd vs1 vs2 vs3 14..12=0x5 26..25=2 6..2=0x10 1..0=3
vfmadd.h.t   vd vs1 vs2 vs3 14..12=0x6 26..25=2 6..2=0x10 1..0=3
vfmsub.h.f   vd vs1 vs2 vs3 14..12=0x5 26..25=2 6..2=0x11 1..0=3
vfmsub.h.t   vd vs1 vs2 vs3 14..12=0x6 26..25=2 6..2=0x11 1..0=3

vfmadd.q.f   vd vs1 vs2 vs3 14..12=0x5 26..25=3 6..2=0x10 1..0=3
vfmadd.q.t   vd vs1 vs2 vs3 14..12=0x6 26..25=3 6..2=0x10 1..0=3
vfmsub.q.f   vd vs1 vs2 vs3 14..12=0x5 26..25=3 6..2=0x11 1..0=3
vfmsub.q.t   vd vs1 vs2 vs3 14..12=0x6 26..25=3 6..2=0x11 1..0=3

vfmadd.s.s   vd vs1 vs2 vs3 14..12=0x5 26..25=0 6..2=0x12 1..0=3
vfmadd.s     vd vs1 vs2 vs3 14..12=0x6 26..25=0 6..2=0x12 1..0=3
vfmsub.s.s   vd vs1 vs2 vs3 14..12=0x5 26..25=0 6..2=0x13 1..0=3
vfmsub.s     vd vs1 vs2 vs3 14..12=0x6 26..25=0 6..2=0x13 1..0=3

vfmadd.d.s   vd vs1 vs2 vs3 14..12=0x5 26..25=1 6..2=0x12 1..0=3
vfmadd.d     vd vs1 vs2 vs3 14..12=0x6 26..25=1 6..2=0x12 1..0=3
vfmsub.d.s   vd vs1 vs2 vs3 14..12=0x5 26..25=1 6..2=0x13 1..0=3
vfmsub.d     vd vs1 vs2 vs3 14..12=0x6 26..25=1 6..2=0x13 1..0=3

vfmadd.h.s   vd vs1 vs2 vs3 14..12=0x5 26..25=2 6..2=0x12 1..0=3
vfmadd.h     vd vs1 vs2 vs3 14..12=0x6 26..25=2 6..2=0x12 1..0=3
vfmsub.h.s   vd vs1 vs2 vs3 14..12=0x5 26..25=2 6..2=0x13 1..0=3
vfmsub.h     vd vs1 vs2 vs3 14..12=0x6 26..25=2 6..2=0x13 1..0=3

vfmadd.q.s   vd vs1 vs2 vs3 14..12=0x5 26..25=3 6..2=0x12 1..0=3
vfmadd.q     vd vs1 vs2 vs3 14..12=0x6 26..25=3 6..2=0x12 1..0=3
vfmsub.q.s   vd vs1 vs2 vs3 14..12=0x5 26..25=3 6..2=0x13 1..0=3
vfmsub.q     vd vs1 vs2 vs3 14..12=0x6 26..25=3 6..2=0x13 1..0=3

# 57 opcode is empty
# 14=1 is for integer
# Vector arithmetic.
# First, all the immediates.
vaddi     m vd vs1 vimm         31..28=0 14=1 6..0=0x57
vsli      m vd vs1 vimm         31..28=1 14=1 6..0=0x57
vsrli     m vd vs1 vimm         31..28=2 14=1 6..0=0x57
vclipi    m vd vs1 vimm         31..28=3 14=1 6..0=0x57
vxori     m vd vs1 vimm         31..28=4 14=1 6..0=0x57
vsrai     m vd vs1 vimm         31..28=5 14=1 6..0=0x57
vori      m vd vs1 vimm         31..28=6 14=1 6..0=0x57
vandi     m vd vs1 vimm         31..28=7 14=1 6..0=0x57

# group 31..28=8
vadd      m vd vs1 vs2 27..25=0 31..28=8 14=1 6..0=0x57
vsub      m vd vs1 vs2 27..25=1 31..28=8 14=1 6..0=0x57
vdiv      m vd vs1 vs2 27..25=2 31..28=8 14=1 6..0=0x57
vrem      m vd vs1 vs2 27..25=3 31..28=8 14=1 6..0=0x57
vmul      m vd vs1 vs2 27..25=4 31..28=8 14=1 6..0=0x57
vmulh     m vd vs1 vs2 27..25=5 31..28=8 14=1 6..0=0x57
vmulhu    m vd vs1 vs2 27..25=6 31..28=8 14=1 6..0=0x57
vmulhsu   m vd vs1 vs2 27..25=7 31..28=8 14=1 6..0=0x57

# group 31..28=9
vsl       m vd vs1 vs2 27..25=0 31..28=9 14=1 6..0=0x57
vsr       m vd vs1 vs2 27..25=1 31..28=9 14=1 6..0=0x57
vor       m vd vs1 vs2 27..25=2 31..28=9 14=1 6..0=0x57
vand      m vd vs1 vs2 27..25=3 31..28=9 14=1 6..0=0x57

# group 31..28=10 includes instructions that write xd
# (and may also read xs1 and/or xs2).
vextract  m rd vs1 rs2 27..25=0 31..28=10 14=1 6..0=0x57
vmfirst   m rd vs1     27..25=7 31..28=10 14=1 6..0=0x57 24..20=0
vmpop     m rd vs1     27..25=7 31..28=10 14=1 6..0=0x57 24..20=1

# group 31..28=11 includes instructions that read xs1 and/or xs2,
# but do not write xd.
vclip     m vd vs1 rs2 27..25=0 31..28=11 14=1 6..0=0x57
vcvt      m vd vs1 rs2 27..25=1 31..28=11 14=1 6..0=0x57
vslide    m vd vs1 rs2 27..25=2 31..28=11 14=1 6..0=0x57
vinsert   m vd rs1 rs2 27..25=4 31..28=11 14=1 6..0=0x57
vrgather  m vd vs1 vs2 27..25=5 31..28=11 14=1 6..0=0x57

# group 31..28=12
vxor      m vd vs1 vs2 27..25=0 31..28=12 14=1 6..0=0x57
vmerge    m vd vs1 vs2 27..25=1 31..28=12 14=1 6..0=0x57
vselect   m vd vs1 vs2 27..25=2 31..28=12 14=1 6..0=0x57
# group 31..28=12, 27..25=7 is for single-argument instructions.
vclass    m vd vs1     27..25=7 31..28=12 14=1 6..0=0x57 24..20=0
vpopc     m vd vs1     27..25=7 31..28=12 14=1 6..0=0x57 24..20=1
vsqrt     m vd vs1     27..25=7 31..28=12 14=1 6..0=0x57 24..20=2
vredsum   m vd vs1     27..25=7 31..28=12 14=1 6..0=0x57 24..20=4
vredmax   m vd vs1     27..25=7 31..28=12 14=1 6..0=0x57 24..20=5
vredmin   m vd vs1     27..25=7 31..28=12 14=1 6..0=0x57 24..20=6

# group 31..28=13
vseq      m vd vs1 vs2 27..25=0 31..28=13 14=1 6..0=0x57
vsne      m vd vs1 vs2 27..25=1 31..28=13 14=1 6..0=0x57
vslt      m vd vs1 vs2 27..25=2 31..28=13 14=1 6..0=0x57
vsge      m vd vs1 vs2 27..25=3 31..28=13 14=1 6..0=0x57
vsltu     m vd vs1 vs2 27..25=6 31..28=13 14=1 6..0=0x57
vsgeu     m vd vs1 vs2 27..25=7 31..28=13 14=1 6..0=0x57

# group 31..28=14

# group 31..28=15
vconfig   m vd vs1 vimm         31..28=15 14=1 6..0=0x57

# 14=0 is for fp
# 31..27 is opcode
# 26..25 remains fp size
vfadd.s    m vd vs1 vs2      31..27=0x00 26..25=0 14=0 6..0=0x57
vfsub.s    m vd vs1 vs2      31..27=0x01 26..25=0 14=0 6..0=0x57
vfmul.s    m vd vs1 vs2      31..27=0x02 26..25=0 14=0 6..0=0x57
vfdiv.s    m vd vs1 vs2      31..27=0x03 26..25=0 14=0 6..0=0x57
vfsgnj.s   m vd vs1 vs2      31..27=0x04 26..25=0 14=0 6..0=0x57
vfsgnjn.s  m vd vs1 vs2      31..27=0x05 26..25=0 14=0 6..0=0x57
vfsgnjx.s  m vd vs1 vs2      31..27=0x06 26..25=0 14=0 6..0=0x57
vfmin.s    m vd vs1 vs2      31..27=0x07 26..25=0 14=0 6..0=0x57
vfmax.s    m vd vs1 vs2      31..27=0x08 26..25=0 14=0 6..0=0x57
vfsqrt.s   m vd vs1 24..20=0 31..27=0x09 26..25=0 14=0 6..0=0x57
vfclass.s  m vd vs1 24..20=1 31..27=0x09 26..25=0 14=0 6..0=0x57
vfredsum.s m vd vs1 24..20=4 31..27=0x09 26..25=0 14=0 6..0=0x57
vfredmax.s m vd vs1 24..20=5 31..27=0x09 26..25=0 14=0 6..0=0x57
vfredmin.s m vd vs1 24..20=6 31..27=0x09 26..25=0 14=0 6..0=0x57
vfle.s     m vd vs1 vs2      31..27=0x0A 26..25=0 14=0 6..0=0x57
vflt.s     m vd vs1 vs2      31..27=0x0B 26..25=0 14=0 6..0=0x57
vfeq.s     m vd vs1 vs2      31..27=0x0C 26..25=0 14=0 6..0=0x57
vfne.s     m vd vs1 vs2      31..27=0x0D 26..25=0 14=0 6..0=0x57
vfcvt.s.w  m vd vs1 24..20=0 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfcvt.s.wu m vd vs1 24..20=1 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfcvt.s.l  m vd vs1 24..20=2 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfcvt.s.lu m vd vs1 24..20=3 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfmv.w.x   m vd vs1 24..20=4 31..27=0x0E 26..25=0 14=0 6..0=0x57
vfcvt.w.s  m vd vs1 24..20=0 31..27=0x0F 26..25=0 14=0 6..0=0x57
vfcvt.wu.s m vd vs1 24..20=1 31..27=0x0F 26..25=0 14=0 6..0=0x57
vfcvt.l.s  m vd vs1 24..20=2 31..27=0x0F 26..25=0 14=0 6..0=0x57
vfcvt.lu.s m vd vs1 24..20=3 31..27=0x0F 26..25=0 14=0 6..0=0x57
vfmv.x.w   m vd vs1 24..20=4 31..27=0x0F 26..25=0 14=0 6..0=0x57

vfadd.d    m vd vs1 vs2      31..27=0x00 26..25=1 14=0 6..0=0x57
vfsub.d    m vd vs1 vs2      31..27=0x01 26..25=1 14=0 6..0=0x57
vfmul.d    m vd vs1 vs2      31..27=0x02 26..25=1 14=0 6..0=0x57
vfdiv.d    m vd vs1 vs2      31..27=0x03 26..25=1 14=0 6..0=0x57
vfsgnj.d   m vd vs1 vs2      31..27=0x04 26..25=1 14=0 6..0=0x57
vfsgnjn.d  m vd vs1 vs2      31..27=0x05 26..25=1 14=0 6..0=0x57
vfsgnjx.d  m vd vs1 vs2      31..27=0x06 26..25=1 14=0 6..0=0x57
vfmin.d    m vd vs1 vs2      31..27=0x07 26..25=1 14=0 6..0=0x57
vfmax.d    m vd vs1 vs2      31..27=0x08 26..25=1 14=0 6..0=0x57
vfsqrt.d   m vd vs1 24..20=0 31..27=0x09 26..25=1 14=0 6..0=0x57
vfclass.d  m vd vs1 24..20=1 31..27=0x09 26..25=1 14=0 6..0=0x57
vfredsum.d m vd vs1 24..20=4 31..27=0x09 26..25=1 14=0 6..0=0x57
vfredmax.d m vd vs1 24..20=5 31..27=0x09 26..25=1 14=0 6..0=0x57
vfredmin.d m vd vs1 24..20=6 31..27=0x09 26..25=1 14=0 6..0=0x57
vfle.d     m vd vs1 vs2      31..27=0x0A 26..25=1 14=0 6..0=0x57
vflt.d     m vd vs1 vs2      31..27=0x0B 26..25=1 14=0 6..0=0x57
vfeq.d     m vd vs1 vs2      31..27=0x0C 26..25=1 14=0 6..0=0x57
vfne.d     m vd vs1 vs2      31..27=0x0D 26..25=1 14=0 6..0=0x57
vfcvt.d.w  m vd vs1 24..20=0 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfcvt.d.wu m vd vs1 24..20=1 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfcvt.d.l  m vd vs1 24..20=2 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfcvt.d.lu m vd vs1 24..20=3 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfmv.d.x   m vd vs1 24..20=4 31..27=0x0E 26..25=1 14=0 6..0=0x57
vfcvt.w.d  m vd vs1 24..20=0 31..27=0x0F 26..25=1 14=0 6..0=0x57
vfcvt.wu.d m vd vs1 24..20=1 31..27=0x0F 26..25=1 14=0 6..0=0x57
vfcvt.l.d  m vd vs1 24..20=2 31..27=0x0F 26..25=1 14=0 6..0=0x57
vfcvt.lu.d m vd vs1 24..20=3 31..27=0x0F 26..25=1 14=0 6..0=0x57
vfmv.x.d   m vd vs1 24..20=4 31..27=0x0F 26..25=1 14=0 6..0=0x57
vfcvt.s.d  m vd vs1 24..20=0 31..27=0x10 26..25=1 14=0 6..0=0x57
vfcvt.d.s  m vd vs1 24..20=1 31..27=0x10 26..25=1 14=0 6..0=0x57

vfadd.h    m vd vs1 vs2      31..27=0x00 26..25=2 14=0 6..0=0x57
vfsub.h    m vd vs1 vs2      31..27=0x01 26..25=2 14=0 6..0=0x57
vfmul.h    m vd vs1 vs2      31..27=0x02 26..25=2 14=0 6..0=0x57
vfdiv.h    m vd vs1 vs2      31..27=0x03 26..25=2 14=0 6..0=0x57
vfsgnj.h   m vd vs1 vs2      31..27=0x04 26..25=2 14=0 6..0=0x57
vfsgnjn.h  m vd vs1 vs2      31..27=0x05 26..25=2 14=0 6..0=0x57
vfsgnjx.h  m vd vs1 vs2      31..27=0x06 26..25=2 14=0 6..0=0x57
vfmin.h    m vd vs1 vs2      31..27=0x07 26..25=2 14=0 6..0=0x57
vfmax.h    m vd vs1 vs2      31..27=0x08 26..25=2 14=0 6..0=0x57
vfsqrt.h   m vd vs1 24..20=0 31..27=0x09 26..25=2 14=0 6..0=0x57
vfclass.h  m vd vs1 24..20=1 31..27=0x09 26..25=2 14=0 6..0=0x57
vfredsum.h m vd vs1 24..20=4 31..27=0x09 26..25=2 14=0 6..0=0x57
vfredmax.h m vd vs1 24..20=5 31..27=0x09 26..25=2 14=0 6..0=0x57
vfredmin.h m vd vs1 24..20=6 31..27=0x09 26..25=2 14=0 6..0=0x57
vfle.h     m vd vs1 vs2      31..27=0x0A 26..25=2 14=0 6..0=0x57
vflt.h     m vd vs1 vs2      31..27=0x0B 26..25=2 14=0 6..0=0x57
vfeq.h     m vd vs1 vs2      31..27=0x0C 26..25=2 14=0 6..0=0x57
vfne.h     m vd vs1 vs2      31..27=0x0D 26..25=2 14=0 6..0=0x57
vfcvt.h.w  m vd vs1 24..20=0 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfcvt.h.wu m vd vs1 24..20=1 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfcvt.h.l  m vd vs1 24..20=2 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfcvt.h.lu m vd vs1 24..20=3 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfmv.h.x   m vd vs1 24..20=4 31..27=0x0E 26..25=2 14=0 6..0=0x57
vfcvt.w.h  m vd vs1 24..20=0 31..27=0x0F 26..25=2 14=0 6..0=0x57
vfcvt.wu.h m vd vs1 24..20=1 31..27=0x0F 26..25=2 14=0 6..0=0x57
vfcvt.l.h  m vd vs1 24..20=2 31..27=0x0F 26..25=2 14=0 6..0=0x57
vfcvt.lu.h m vd vs1 24..20=3 31..27=0x0F 26..25=2 14=0 6..0=0x57
vfmv.x.h   m vd vs1 24..20=4 31..27=0x0F 26..25=2 14=0 6..0=0x57
vfcvt.s.h  m vd vs1 24..20=0 31..27=0x10 26..25=2 14=0 6..0=0x57
vfcvt.h.s  m vd vs1 24..20=1 31..27=0x10 26..25=2 14=0 6..0=0x57

vfadd.q    m vd vs1 vs2      31..27=0x00 26..25=3 14=0 6..0=0x57
vfsub.q    m vd vs1 vs2      31..27=0x01 26..25=3 14=0 6..0=0x57
vfmul.q    m vd vs1 vs2      31..27=0x02 26..25=3 14=0 6..0=0x57
vfdiv.q    m vd vs1 vs2      31..27=0x03 26..25=3 14=0 6..0=0x57
vfsgnj.q   m vd vs1 vs2      31..27=0x04 26..25=3 14=0 6..0=0x57
vfsgnjn.q  m vd vs1 vs2      31..27=0x05 26..25=3 14=0 6..0=0x57
vfsgnjx.q  m vd vs1 vs2      31..27=0x06 26..25=3 14=0 6..0=0x57
vfmin.q    m vd vs1 vs2      31..27=0x07 26..25=3 14=0 6..0=0x57
vfmax.q    m vd vs1 vs2      31..27=0x08 26..25=3 14=0 6..0=0x57
vfsqrt.q   m vd vs1 24..20=0 31..27=0x09 26..25=3 14=0 6..0=0x57
vfclass.q  m vd vs1 24..20=1 31..27=0x09 26..25=3 14=0 6..0=0x57
vfredsum.q m vd vs1 24..20=4 31..27=0x09 26..25=3 14=0 6..0=0x57
vfredmax.q m vd vs1 24..20=5 31..27=0x09 26..25=3 14=0 6..0=0x57
vfredmin.q m vd vs1 24..20=6 31..27=0x09 26..25=3 14=0 6..0=0x57
vfle.q     m vd vs1 vs2      31..27=0x0A 26..25=3 14=0 6..0=0x57
vflt.q     m vd vs1 vs2      31..27=0x0B 26..25=3 14=0 6..0=0x57
vfeq.q     m vd vs1 vs2      31..27=0x0C 26..25=3 14=0 6..0=0x57
vfne.q     m vd vs1 vs2      31..27=0x0D 26..25=3 14=0 6..0=0x57
vfcvt.q.w  m vd vs1 24..20=0 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfcvt.q.wu m vd vs1 24..20=1 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfcvt.q.l  m vd vs1 24..20=2 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfcvt.q.lu m vd vs1 24..20=3 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfmv.q.x   m vd vs1 24..20=4 31..27=0x0E 26..25=3 14=0 6..0=0x57
vfcvt.w.q  m vd vs1 24..20=0 31..27=0x0F 26..25=3 14=0 6..0=0x57
vfcvt.wu.q m vd vs1 24..20=1 31..27=0x0F 26..25=3 14=0 6..0=0x57
vfcvt.l.q  m vd vs1 24..20=2 31..27=0x0F 26..25=3 14=0 6..0=0x57
vfcvt.lu.q m vd vs1 24..20=3 31..27=0x0F 26..25=3 14=0 6..0=0x57
vfmv.x.q   m vd vs1 24..20=4 31..27=0x0F 26..25=3 14=0 6..0=0x57
vfcvt.s.q  m vd vs1 24..20=0 31..27=0x10 26..25=3 14=0 6..0=0x57
vfcvt.q.s  m vd vs1 24..20=1 31..27=0x10 26..25=3 14=0 6..0=0x57