@@ -163,3 +163,174 @@ fcvtzun z31.s, { z30.d, z31.d }
163163// CHECK-ENCODING: encoding: [0xdf,0x37,0xcd,0x65]
164164// CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
165165// CHECK-UNKNOWN: 65cd37df <unknown>
166+ 
167+ // -----------------------------------------------------------------------
168+ // Signed integer convert to floating-point (bottom, unpredicated)
169+ 
170+ scvtf  z0.h, z0.b
171+ // CHECK-INST: scvtf z0.h, z0.b
172+ // CHECK-ENCODING: encoding: [0x00,0x30,0x4c,0x65]
173+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
174+ // CHECK-UNKNOWN: 654c3000 <unknown>
175+ 
176+ scvtf  z31.h, z31.b
177+ // CHECK-INST: scvtf z31.h, z31.b
178+ // CHECK-ENCODING: encoding: [0xff,0x33,0x4c,0x65]
179+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
180+ // CHECK-UNKNOWN: 654c33ff <unknown>
181+ 
182+ scvtf  z0.s, z0.h
183+ // CHECK-INST: scvtf z0.s, z0.h
184+ // CHECK-ENCODING: encoding: [0x00,0x30,0x8c,0x65]
185+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
186+ // CHECK-UNKNOWN: 658c3000 <unknown>
187+ 
188+ scvtf  z31.s, z31.h
189+ // CHECK-INST: scvtf z31.s, z31.h
190+ // CHECK-ENCODING: encoding: [0xff,0x33,0x8c,0x65]
191+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
192+ // CHECK-UNKNOWN: 658c33ff <unknown>
193+ 
194+ scvtf  z0.d, z0.s
195+ // CHECK-INST: scvtf z0.d, z0.s
196+ // CHECK-ENCODING: encoding: [0x00,0x30,0xcc,0x65]
197+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
198+ // CHECK-UNKNOWN: 65cc3000 <unknown>
199+ 
200+ scvtf  z31.d, z31.s
201+ // CHECK-INST: scvtf z31.d, z31.s
202+ // CHECK-ENCODING: encoding: [0xff,0x33,0xcc,0x65]
203+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
204+ // CHECK-UNKNOWN: 65cc33ff <unknown>
205+ 
206+ // -----------------------------------------------------------------------
207+ // Signed integer convert to floating-point (top, unpredicated)
208+ 
209+ scvtflt  z0.h, z0.b
210+ // CHECK-INST: scvtflt z0.h, z0.b
211+ // CHECK-ENCODING: encoding: [0x00,0x38,0x4c,0x65]
212+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
213+ // CHECK-UNKNOWN: 654c3800 <unknown>
214+ 
215+ scvtflt  z31.h, z31.b
216+ // CHECK-INST: scvtflt z31.h, z31.b
217+ // CHECK-ENCODING: encoding: [0xff,0x3b,0x4c,0x65]
218+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
219+ // CHECK-UNKNOWN: 654c3bff <unknown>
220+ 
221+ scvtflt  z0.s, z0.h
222+ // CHECK-INST: scvtflt z0.s, z0.h
223+ // CHECK-ENCODING: encoding: [0x00,0x38,0x8c,0x65]
224+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
225+ // CHECK-UNKNOWN: 658c3800 <unknown>
226+ 
227+ scvtflt  z31.s, z31.h
228+ // CHECK-INST: scvtflt z31.s, z31.h
229+ // CHECK-ENCODING: encoding: [0xff,0x3b,0x8c,0x65]
230+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
231+ // CHECK-UNKNOWN: 658c3bff <unknown>
232+ 
233+ scvtflt  z0.d, z0.s
234+ // CHECK-INST: scvtflt z0.d, z0.s
235+ // CHECK-ENCODING: encoding: [0x00,0x38,0xcc,0x65]
236+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
237+ // CHECK-UNKNOWN: 65cc3800 <unknown>
238+ 
239+ scvtflt  z31.d, z31.s
240+ // CHECK-INST: scvtflt z31.d, z31.s
241+ // CHECK-ENCODING: encoding: [0xff,0x3b,0xcc,0x65]
242+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
243+ // CHECK-UNKNOWN: 65cc3bff <unknown>
244+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \
245+ // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
246+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p3 < %s \
247+ // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
248+ // RUN: not  llvm-mc -triple=aarch64 -show-encoding < %s 2 >&1  \
249+ // RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
250+ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p3 < %s \
251+ // RUN:        | llvm-objdump -d --mattr=+sve2p3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST
252+ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p3 < %s \
253+ // RUN:        | llvm-objdump -d --mattr=-sve2p3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN
254+ // Disassemble encoding and  check the re-encoding (-show-encoding) matches.
255+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p3 < %s \
256+ // RUN:        | sed '/.text /d' | sed 's/.*encoding: //g' \ 
257+ // RUN:        | llvm-mc -triple=aarch64 -mattr=+sve2p3 -disassemble -show-encoding \
258+ // RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
259+ 
260+ // -----------------------------------------------------------------------
261+ // Unsigned integer convert to floating-point (bottom, unpredicated)
262+ 
263+ ucvtf  z0.h, z0.b
264+ // CHECK-INST: ucvtf z0.h, z0.b
265+ // CHECK-ENCODING: encoding: [0x00,0x34,0x4c,0x65]
266+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
267+ // CHECK-UNKNOWN: 654c3400 <unknown>
268+ 
269+ ucvtf  z31.h, z31.b
270+ // CHECK-INST: ucvtf z31.h, z31.b
271+ // CHECK-ENCODING: encoding: [0xff,0x37,0x4c,0x65]
272+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
273+ // CHECK-UNKNOWN: 654c37ff <unknown>
274+ 
275+ ucvtf  z0.s, z0.h
276+ // CHECK-INST: ucvtf z0.s, z0.h
277+ // CHECK-ENCODING: encoding: [0x00,0x34,0x8c,0x65]
278+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
279+ // CHECK-UNKNOWN: 658c3400 <unknown>
280+ 
281+ ucvtf  z31.s, z31.h
282+ // CHECK-INST: ucvtf z31.s, z31.h
283+ // CHECK-ENCODING: encoding: [0xff,0x37,0x8c,0x65]
284+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
285+ // CHECK-UNKNOWN: 658c37ff <unknown>
286+ 
287+ ucvtf  z0.d, z0.s
288+ // CHECK-INST: ucvtf z0.d, z0.s
289+ // CHECK-ENCODING: encoding: [0x00,0x34,0xcc,0x65]
290+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
291+ // CHECK-UNKNOWN: 65cc3400 <unknown>
292+ 
293+ ucvtf  z31.d, z31.s
294+ // CHECK-INST: ucvtf z31.d, z31.s
295+ // CHECK-ENCODING: encoding: [0xff,0x37,0xcc,0x65]
296+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
297+ // CHECK-UNKNOWN: 65cc37ff <unknown>
298+ 
299+ // -----------------------------------------------------------------------
300+ // Unsigned integer convert to floating-point (top, unpredicated)
301+ 
302+ ucvtflt  z0.h, z0.b
303+ // CHECK-INST: ucvtflt z0.h, z0.b
304+ // CHECK-ENCODING: encoding: [0x00,0x3c,0x4c,0x65]
305+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
306+ // CHECK-UNKNOWN: 654c3c00 <unknown>
307+ 
308+ ucvtflt  z31.h, z31.b
309+ // CHECK-INST: ucvtflt z31.h, z31.b
310+ // CHECK-ENCODING: encoding: [0xff,0x3f,0x4c,0x65]
311+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
312+ // CHECK-UNKNOWN: 654c3fff <unknown>
313+ 
314+ ucvtflt  z0.s, z0.h
315+ // CHECK-INST: ucvtflt z0.s, z0.h
316+ // CHECK-ENCODING: encoding: [0x00,0x3c,0x8c,0x65]
317+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
318+ // CHECK-UNKNOWN: 658c3c00 <unknown>
319+ 
320+ ucvtflt  z31.s, z31.h
321+ // CHECK-INST: ucvtflt z31.s, z31.h
322+ // CHECK-ENCODING: encoding: [0xff,0x3f,0x8c,0x65]
323+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
324+ // CHECK-UNKNOWN: 658c3fff <unknown>
325+ 
326+ ucvtflt  z0.d, z0.s
327+ // CHECK-INST: ucvtflt z0.d, z0.s
328+ // CHECK-ENCODING: encoding: [0x00,0x3c,0xcc,0x65]
329+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
330+ // CHECK-UNKNOWN: 65cc3c00 <unknown>
331+ 
332+ ucvtflt  z31.d, z31.s
333+ // CHECK-INST: ucvtflt z31.d, z31.s
334+ // CHECK-ENCODING: encoding: [0xff,0x3f,0xcc,0x65]
335+ // CHECK-ERROR: instruction requires: sme2p3 or  sve2p3
336+ // CHECK-UNKNOWN: 65cc3fff <unknown>
0 commit comments