xref: /llvm-project/llvm/test/MC/RISCV/rvv/convert.s (revision b27f86b40b20942c0e809128214b43d6edde365a)
1# RUN: llvm-mc -triple=riscv64 -show-encoding --mattr=+v %s \
2# RUN:         --mattr=+f \
3# RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
4# RUN: not llvm-mc -triple=riscv64 -show-encoding %s 2>&1 \
5# RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
6# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v %s \
7# RUN:         --mattr=+f \
8# RUN:        | llvm-objdump -d --mattr=+v --mattr=+f - \
9# RUN:        | FileCheck %s --check-prefix=CHECK-INST
10# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v %s \
11# RUN:         --mattr=+f \
12# RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
13
14vfcvt.xu.f.v v8, v4, v0.t
15# CHECK-INST: vfcvt.xu.f.v v8, v4, v0.t
16# CHECK-ENCODING: [0x57,0x14,0x40,0x48]
17# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
18# CHECK-UNKNOWN: 48401457 <unknown>
19
20vfcvt.xu.f.v v8, v4
21# CHECK-INST: vfcvt.xu.f.v v8, v4
22# CHECK-ENCODING: [0x57,0x14,0x40,0x4a]
23# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
24# CHECK-UNKNOWN: 4a401457 <unknown>
25
26vfcvt.x.f.v v8, v4, v0.t
27# CHECK-INST: vfcvt.x.f.v v8, v4, v0.t
28# CHECK-ENCODING: [0x57,0x94,0x40,0x48]
29# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
30# CHECK-UNKNOWN: 48409457 <unknown>
31
32vfcvt.x.f.v v8, v4
33# CHECK-INST: vfcvt.x.f.v v8, v4
34# CHECK-ENCODING: [0x57,0x94,0x40,0x4a]
35# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
36# CHECK-UNKNOWN: 4a409457 <unknown>
37
38vfcvt.f.xu.v v8, v4, v0.t
39# CHECK-INST: vfcvt.f.xu.v v8, v4, v0.t
40# CHECK-ENCODING: [0x57,0x14,0x41,0x48]
41# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
42# CHECK-UNKNOWN: 48411457 <unknown>
43
44vfcvt.f.xu.v v8, v4
45# CHECK-INST: vfcvt.f.xu.v v8, v4
46# CHECK-ENCODING: [0x57,0x14,0x41,0x4a]
47# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
48# CHECK-UNKNOWN: 4a411457 <unknown>
49
50vfcvt.f.x.v v8, v4, v0.t
51# CHECK-INST: vfcvt.f.x.v v8, v4, v0.t
52# CHECK-ENCODING: [0x57,0x94,0x41,0x48]
53# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
54# CHECK-UNKNOWN: 48419457 <unknown>
55
56vfcvt.f.x.v v8, v4
57# CHECK-INST: vfcvt.f.x.v v8, v4
58# CHECK-ENCODING: [0x57,0x94,0x41,0x4a]
59# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
60# CHECK-UNKNOWN: 4a419457 <unknown>
61
62vfcvt.rtz.xu.f.v v8, v4, v0.t
63# CHECK-INST: vfcvt.rtz.xu.f.v v8, v4, v0.t
64# CHECK-ENCODING: [0x57,0x14,0x43,0x48]
65# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
66# CHECK-UNKNOWN: 48431457 <unknown>
67
68vfcvt.rtz.xu.f.v v8, v4
69# CHECK-INST: vfcvt.rtz.xu.f.v v8, v4
70# CHECK-ENCODING: [0x57,0x14,0x43,0x4a]
71# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
72# CHECK-UNKNOWN: 4a431457 <unknown>
73
74vfcvt.rtz.x.f.v v8, v4, v0.t
75# CHECK-INST: vfcvt.rtz.x.f.v v8, v4, v0.t
76# CHECK-ENCODING: [0x57,0x94,0x43,0x48]
77# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
78# CHECK-UNKNOWN: 48439457 <unknown>
79
80vfcvt.rtz.x.f.v v8, v4
81# CHECK-INST: vfcvt.rtz.x.f.v v8, v4
82# CHECK-ENCODING: [0x57,0x94,0x43,0x4a]
83# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
84# CHECK-UNKNOWN: 4a439457 <unknown>
85
86vfwcvt.xu.f.v v8, v4, v0.t
87# CHECK-INST: vfwcvt.xu.f.v v8, v4, v0.t
88# CHECK-ENCODING: [0x57,0x14,0x44,0x48]
89# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
90# CHECK-UNKNOWN: 48441457 <unknown>
91
92vfwcvt.xu.f.v v8, v4
93# CHECK-INST: vfwcvt.xu.f.v v8, v4
94# CHECK-ENCODING: [0x57,0x14,0x44,0x4a]
95# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
96# CHECK-UNKNOWN: 4a441457 <unknown>
97
98vfwcvt.x.f.v v8, v4, v0.t
99# CHECK-INST: vfwcvt.x.f.v v8, v4, v0.t
100# CHECK-ENCODING: [0x57,0x94,0x44,0x48]
101# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
102# CHECK-UNKNOWN: 48449457 <unknown>
103
104vfwcvt.x.f.v v8, v4
105# CHECK-INST: vfwcvt.x.f.v v8, v4
106# CHECK-ENCODING: [0x57,0x94,0x44,0x4a]
107# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
108# CHECK-UNKNOWN: 4a449457 <unknown>
109
110vfwcvt.f.xu.v v8, v4, v0.t
111# CHECK-INST: vfwcvt.f.xu.v v8, v4, v0.t
112# CHECK-ENCODING: [0x57,0x14,0x45,0x48]
113# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
114# CHECK-UNKNOWN: 48451457 <unknown>
115
116vfwcvt.f.xu.v v8, v4
117# CHECK-INST: vfwcvt.f.xu.v v8, v4
118# CHECK-ENCODING: [0x57,0x14,0x45,0x4a]
119# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
120# CHECK-UNKNOWN: 4a451457 <unknown>
121
122vfwcvt.f.x.v v8, v4, v0.t
123# CHECK-INST: vfwcvt.f.x.v v8, v4, v0.t
124# CHECK-ENCODING: [0x57,0x94,0x45,0x48]
125# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
126# CHECK-UNKNOWN: 48459457 <unknown>
127
128vfwcvt.f.x.v v8, v4
129# CHECK-INST: vfwcvt.f.x.v v8, v4
130# CHECK-ENCODING: [0x57,0x94,0x45,0x4a]
131# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
132# CHECK-UNKNOWN: 4a459457 <unknown>
133
134vfwcvt.f.f.v v8, v4, v0.t
135# CHECK-INST: vfwcvt.f.f.v v8, v4, v0.t
136# CHECK-ENCODING: [0x57,0x14,0x46,0x48]
137# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
138# CHECK-UNKNOWN: 48461457 <unknown>
139
140vfwcvt.f.f.v v8, v4
141# CHECK-INST: vfwcvt.f.f.v v8, v4
142# CHECK-ENCODING: [0x57,0x14,0x46,0x4a]
143# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
144# CHECK-UNKNOWN: 4a461457 <unknown>
145
146vfwcvt.rtz.xu.f.v v8, v4, v0.t
147# CHECK-INST: vfwcvt.rtz.xu.f.v v8, v4, v0.t
148# CHECK-ENCODING: [0x57,0x14,0x47,0x48]
149# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
150# CHECK-UNKNOWN: 48471457 <unknown>
151
152vfwcvt.rtz.xu.f.v v8, v4
153# CHECK-INST: vfwcvt.rtz.xu.f.v v8, v4
154# CHECK-ENCODING: [0x57,0x14,0x47,0x4a]
155# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
156# CHECK-UNKNOWN: 4a471457 <unknown>
157
158vfwcvt.rtz.x.f.v v8, v4, v0.t
159# CHECK-INST: vfwcvt.rtz.x.f.v v8, v4, v0.t
160# CHECK-ENCODING: [0x57,0x94,0x47,0x48]
161# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
162# CHECK-UNKNOWN: 48479457 <unknown>
163
164vfwcvt.rtz.x.f.v v8, v4
165# CHECK-INST: vfwcvt.rtz.x.f.v v8, v4
166# CHECK-ENCODING: [0x57,0x94,0x47,0x4a]
167# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
168# CHECK-UNKNOWN: 4a479457 <unknown>
169
170vfncvt.xu.f.w v8, v4, v0.t
171# CHECK-INST: vfncvt.xu.f.w v8, v4, v0.t
172# CHECK-ENCODING: [0x57,0x14,0x48,0x48]
173# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
174# CHECK-UNKNOWN: 48481457 <unknown>
175
176vfncvt.xu.f.w v4, v4, v0.t
177# CHECK-INST: vfncvt.xu.f.w v4, v4, v0.t
178# CHECK-ENCODING: [0x57,0x12,0x48,0x48]
179# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
180# CHECK-UNKNOWN: 48481257 <unknown>
181
182vfncvt.xu.f.w v8, v4
183# CHECK-INST: vfncvt.xu.f.w v8, v4
184# CHECK-ENCODING: [0x57,0x14,0x48,0x4a]
185# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
186# CHECK-UNKNOWN: 4a481457 <unknown>
187
188vfncvt.x.f.w v8, v4, v0.t
189# CHECK-INST: vfncvt.x.f.w v8, v4, v0.t
190# CHECK-ENCODING: [0x57,0x94,0x48,0x48]
191# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
192# CHECK-UNKNOWN: 48489457 <unknown>
193
194vfncvt.x.f.w v8, v4
195# CHECK-INST: vfncvt.x.f.w v8, v4
196# CHECK-ENCODING: [0x57,0x94,0x48,0x4a]
197# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
198# CHECK-UNKNOWN: 4a489457 <unknown>
199
200vfncvt.f.xu.w v8, v4, v0.t
201# CHECK-INST: vfncvt.f.xu.w v8, v4, v0.t
202# CHECK-ENCODING: [0x57,0x14,0x49,0x48]
203# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
204# CHECK-UNKNOWN: 48491457 <unknown>
205
206vfncvt.f.xu.w v8, v4
207# CHECK-INST: vfncvt.f.xu.w v8, v4
208# CHECK-ENCODING: [0x57,0x14,0x49,0x4a]
209# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
210# CHECK-UNKNOWN: 4a491457 <unknown>
211
212vfncvt.f.x.w v8, v4, v0.t
213# CHECK-INST: vfncvt.f.x.w v8, v4, v0.t
214# CHECK-ENCODING: [0x57,0x94,0x49,0x48]
215# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
216# CHECK-UNKNOWN: 48499457 <unknown>
217
218vfncvt.f.x.w v8, v4
219# CHECK-INST: vfncvt.f.x.w v8, v4
220# CHECK-ENCODING: [0x57,0x94,0x49,0x4a]
221# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
222# CHECK-UNKNOWN: 4a499457 <unknown>
223
224vfncvt.f.f.w v8, v4, v0.t
225# CHECK-INST: vfncvt.f.f.w v8, v4, v0.t
226# CHECK-ENCODING: [0x57,0x14,0x4a,0x48]
227# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
228# CHECK-UNKNOWN: 484a1457 <unknown>
229
230vfncvt.f.f.w v8, v4
231# CHECK-INST: vfncvt.f.f.w v8, v4
232# CHECK-ENCODING: [0x57,0x14,0x4a,0x4a]
233# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
234# CHECK-UNKNOWN: 4a4a1457 <unknown>
235
236vfncvt.rod.f.f.w v8, v4, v0.t
237# CHECK-INST: vfncvt.rod.f.f.w v8, v4, v0.t
238# CHECK-ENCODING: [0x57,0x94,0x4a,0x48]
239# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
240# CHECK-UNKNOWN: 484a9457 <unknown>
241
242vfncvt.rod.f.f.w v8, v4
243# CHECK-INST: vfncvt.rod.f.f.w v8, v4
244# CHECK-ENCODING: [0x57,0x94,0x4a,0x4a]
245# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
246# CHECK-UNKNOWN: 4a4a9457 <unknown>
247
248vfncvt.rtz.xu.f.w v8, v4, v0.t
249# CHECK-INST: vfncvt.rtz.xu.f.w v8, v4, v0.t
250# CHECK-ENCODING: [0x57,0x14,0x4b,0x48]
251# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
252# CHECK-UNKNOWN: 484b1457 <unknown>
253
254vfncvt.rtz.xu.f.w v8, v4
255# CHECK-INST: vfncvt.rtz.xu.f.w v8, v4
256# CHECK-ENCODING: [0x57,0x14,0x4b,0x4a]
257# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
258# CHECK-UNKNOWN: 4a4b1457 <unknown>
259
260vfncvt.rtz.x.f.w v8, v4, v0.t
261# CHECK-INST: vfncvt.rtz.x.f.w v8, v4, v0.t
262# CHECK-ENCODING: [0x57,0x94,0x4b,0x48]
263# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
264# CHECK-UNKNOWN: 484b9457 <unknown>
265
266vfncvt.rtz.x.f.w v8, v4
267# CHECK-INST: vfncvt.rtz.x.f.w v8, v4
268# CHECK-ENCODING: [0x57,0x94,0x4b,0x4a]
269# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}}
270# CHECK-UNKNOWN: 4a4b9457 <unknown>
271