1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve
,+i8mm
< %s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
< %s
2>&1 \
4 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
5 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sve
,+i8mm
< %s \
6 // RUN
: | llvm-objdump
-d
--mattr
=+sve
,+i8mm
- | FileCheck
%s
--check-prefix
=CHECK-INST
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sve
,+i8mm
< %s \
8 // RUN
: | llvm-objdump
-d
--mattr
=-sve
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
11 // --------------------------------------------------------------------------//
12 // SMMLA
, UMMLA
, USMMLA
(SVE
)
14 ummla z0.s
, z1.
b, z2.
b
15 // CHECK-INST
: ummla z0.s
, z1.
b, z2.
b
16 // CHECK-ENCODING
: [0x20,0x98,0xc2,0x45]
17 // CHECK-ERROR
: instruction requires
: i8mm sve
18 // CHECK-UNKNOWN
: 45c29820
<unknown
>
20 smmla z0.s
, z1.
b, z2.
b
21 // CHECK-INST
: smmla z0.s
, z1.
b, z2.
b
22 // CHECK-ENCODING
: [0x20,0x98,0x02,0x45]
23 // CHECK-ERROR
: instruction requires
: i8mm sve
24 // CHECK-UNKNOWN
: 45029820 <unknown
>
26 usmmla z0.s
, z1.
b, z2.
b
27 // CHECK-INST
: usmmla z0.s
, z1.
b, z2.
b
28 // CHECK-ENCODING
: [0x20,0x98,0x82,0x45]
29 // CHECK-ERROR
: instruction requires
: i8mm sve
30 // CHECK-UNKNOWN
: 45829820 <unknown
>
33 // Test compatibility with MOVPRFX instruction.
36 // CHECK-INST
: movprfx z0
, z7
37 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
38 // CHECK-UNKNOWN
: 0420bce0
<unknown
>
40 ummla z0.s
, z1.
b, z2.
b
41 // CHECK-INST
: ummla z0.s
, z1.
b, z2.
b
42 // CHECK-ENCODING
: [0x20,0x98,0xc2,0x45]
43 // CHECK-ERROR
: instruction requires
: i8mm sve
44 // CHECK-UNKNOWN
: 45c29820
<unknown
>
47 // CHECK-INST
: movprfx z0
, z7
48 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
49 // CHECK-UNKNOWN
: 0420bce0
<unknown
>
51 smmla z0.s
, z1.
b, z2.
b
52 // CHECK-INST
: smmla z0.s
, z1.
b, z2.
b
53 // CHECK-ENCODING
: [0x20,0x98,0x02,0x45]
54 // CHECK-ERROR
: instruction requires
: i8mm sve
55 // CHECK-UNKNOWN
: 45029820 <unknown
>
58 // CHECK-INST
: movprfx z0
, z7
59 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
60 // CHECK-UNKNOWN
: 0420bce0
<unknown
>
62 usmmla z0.s
, z1.
b, z2.
b
63 // CHECK-INST
: usmmla z0.s
, z1.
b, z2.
b
64 // CHECK-ENCODING
: [0x20,0x98,0x82,0x45]
65 // CHECK-ERROR
: instruction requires
: i8mm sve
66 // CHECK-UNKNOWN
: 45829820 <unknown
>
69 // --------------------------------------------------------------------------//
70 // USDOT
(SVE
, vectors
)
72 usdot z0.s
, z1.
b, z2.
b
73 // CHECK-INST
: usdot z0.s
, z1.
b, z2.
b
74 // CHECK-ENCODING
: [0x20,0x78,0x82,0x44]
75 // CHECK-ERROR
: instruction requires
: i8mm sve
or sme
76 // CHECK-UNKNOWN
: 44827820 <unknown
>
78 // Test compatibility with MOVPRFX instruction.
81 // CHECK-INST
: movprfx z0
, z7
82 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
83 // CHECK-UNKNOWN
: 0420bce0
<unknown
>
85 usdot z0.s
, z1.
b, z2.
b
86 // CHECK-INST
: usdot z0.s
, z1.
b, z2.
b
87 // CHECK-ENCODING
: [0x20,0x78,0x82,0x44]
88 // CHECK-ERROR
: instruction requires
: i8mm sve
or sme
89 // CHECK-UNKNOWN
: 44827820 <unknown
>
92 // --------------------------------------------------------------------------//
93 // USDOT
, SUDOT
(SVE
, indexed
)
95 usdot z0.s
, z1.
b, z2.
b[0]
96 // CHECK-INST
: usdot z0.s
, z1.
b, z2.
b[0]
97 // CHECK-ENCODING
: [0x20,0x18,0xa2,0x44]
98 // CHECK-ERROR
: instruction requires
: i8mm sve
or sme
99 // CHECK-UNKNOWN
: 44a21820
<unknown
>
101 sudot z0.s
, z1.
b, z2.
b[3]
102 // CHECK-INST
: sudot z0.s
, z1.
b, z2.
b[3]
103 // CHECK-ENCODING
: [0x20,0x1c,0xba,0x44]
104 // CHECK-ERROR
: instruction requires
: i8mm sve
or sme
105 // CHECK-UNKNOWN
: 44ba1c20
<unknown
>
107 // Test compatibility with MOVPRFX instruction.
110 // CHECK-INST
: movprfx z0
, z7
111 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
112 // CHECK-UNKNOWN
: 0420bce0
<unknown
>
114 usdot z0.s
, z1.
b, z2.
b[0]
115 // CHECK-INST
: usdot z0.s
, z1.
b, z2.
b[0]
116 // CHECK-ENCODING
: [0x20,0x18,0xa2,0x44]
117 // CHECK-ERROR
: instruction requires
: i8mm sve
or sme
118 // CHECK-UNKNOWN
: 44a21820
<unknown
>
121 // CHECK-INST
: movprfx z0
, z7
122 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
123 // CHECK-UNKNOWN
: 0420bce0
<unknown
>
125 sudot z0.s
, z1.
b, z2.
b[0]
126 // CHECK-INST
: sudot z0.s
, z1.
b, z2.
b[0]
127 // CHECK-ENCODING
: [0x20,0x1c,0xa2,0x44]
128 // CHECK-ERROR
: instruction requires
: i8mm sve
or sme
129 // CHECK-UNKNOWN
: 44a21c20
<unknown
>