1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
< %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
=+sme2
< %s \
6 // RUN
: | llvm-objdump
-d
--mattr
=+sme2
- | FileCheck
%s
--check-prefix
=CHECK-INST
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sme2
< %s \
8 // RUN
: | llvm-objdump
-d
--mattr
=-sme2
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
9 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
< %s \
10 // RUN
: | sed
'/.text/d' | sed
's/.*encoding: //g' \
11 // RUN
: | llvm-mc
-triple
=aarch64
-mattr
=+sme2
-disassemble
-show-encoding \
12 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
15 uunpk
{z0.h
- z1.h
}, z0.
b // 11000001-01100101-11100000-00000001
16 // CHECK-INST
: uunpk
{ z0.h
, z1.h
}, z0.
b
17 // CHECK-ENCODING
: [0x01,0xe0,0x65,0xc1]
18 // CHECK-ERROR
: instruction requires
: sme2
19 // CHECK-UNKNOWN
: c165e001
<unknown
>
21 uunpk
{z20.h
- z21.h
}, z10.
b // 11000001-01100101-11100001-01010101
22 // CHECK-INST
: uunpk
{ z20.h
, z21.h
}, z10.
b
23 // CHECK-ENCODING
: [0x55,0xe1,0x65,0xc1]
24 // CHECK-ERROR
: instruction requires
: sme2
25 // CHECK-UNKNOWN
: c165e155
<unknown
>
27 uunpk
{z22.h
- z23.h
}, z13.
b // 11000001-01100101-11100001-10110111
28 // CHECK-INST
: uunpk
{ z22.h
, z23.h
}, z13.
b
29 // CHECK-ENCODING
: [0xb7,0xe1,0x65,0xc1]
30 // CHECK-ERROR
: instruction requires
: sme2
31 // CHECK-UNKNOWN
: c165e1b7
<unknown
>
33 uunpk
{z30.h
- z31.h
}, z31.
b // 11000001-01100101-11100011-11111111
34 // CHECK-INST
: uunpk
{ z30.h
, z31.h
}, z31.
b
35 // CHECK-ENCODING
: [0xff,0xe3,0x65,0xc1]
36 // CHECK-ERROR
: instruction requires
: sme2
37 // CHECK-UNKNOWN
: c165e3ff
<unknown
>
40 uunpk
{z0.s
- z1.s
}, z0.h
// 11000001-10100101-11100000-00000001
41 // CHECK-INST
: uunpk
{ z0.s
, z1.s
}, z0.h
42 // CHECK-ENCODING
: [0x01,0xe0,0xa5,0xc1]
43 // CHECK-ERROR
: instruction requires
: sme2
44 // CHECK-UNKNOWN
: c1a5e001
<unknown
>
46 uunpk
{z20.s
- z21.s
}, z10.h
// 11000001-10100101-11100001-01010101
47 // CHECK-INST
: uunpk
{ z20.s
, z21.s
}, z10.h
48 // CHECK-ENCODING
: [0x55,0xe1,0xa5,0xc1]
49 // CHECK-ERROR
: instruction requires
: sme2
50 // CHECK-UNKNOWN
: c1a5e155
<unknown
>
52 uunpk
{z22.s
- z23.s
}, z13.h
// 11000001-10100101-11100001-10110111
53 // CHECK-INST
: uunpk
{ z22.s
, z23.s
}, z13.h
54 // CHECK-ENCODING
: [0xb7,0xe1,0xa5,0xc1]
55 // CHECK-ERROR
: instruction requires
: sme2
56 // CHECK-UNKNOWN
: c1a5e1b7
<unknown
>
58 uunpk
{z30.s
- z31.s
}, z31.h
// 11000001-10100101-11100011-11111111
59 // CHECK-INST
: uunpk
{ z30.s
, z31.s
}, z31.h
60 // CHECK-ENCODING
: [0xff,0xe3,0xa5,0xc1]
61 // CHECK-ERROR
: instruction requires
: sme2
62 // CHECK-UNKNOWN
: c1a5e3ff
<unknown
>
65 uunpk
{z0.d
- z1.d
}, z0.s
// 11000001-11100101-11100000-00000001
66 // CHECK-INST
: uunpk
{ z0.d
, z1.d
}, z0.s
67 // CHECK-ENCODING
: [0x01,0xe0,0xe5,0xc1]
68 // CHECK-ERROR
: instruction requires
: sme2
69 // CHECK-UNKNOWN
: c1e5e001
<unknown
>
71 uunpk
{z20.d
- z21.d
}, z10.s
// 11000001-11100101-11100001-01010101
72 // CHECK-INST
: uunpk
{ z20.d
, z21.d
}, z10.s
73 // CHECK-ENCODING
: [0x55,0xe1,0xe5,0xc1]
74 // CHECK-ERROR
: instruction requires
: sme2
75 // CHECK-UNKNOWN
: c1e5e155
<unknown
>
77 uunpk
{z22.d
- z23.d
}, z13.s
// 11000001-11100101-11100001-10110111
78 // CHECK-INST
: uunpk
{ z22.d
, z23.d
}, z13.s
79 // CHECK-ENCODING
: [0xb7,0xe1,0xe5,0xc1]
80 // CHECK-ERROR
: instruction requires
: sme2
81 // CHECK-UNKNOWN
: c1e5e1b7
<unknown
>
83 uunpk
{z30.d
- z31.d
}, z31.s
// 11000001-11100101-11100011-11111111
84 // CHECK-INST
: uunpk
{ z30.d
, z31.d
}, z31.s
85 // CHECK-ENCODING
: [0xff,0xe3,0xe5,0xc1]
86 // CHECK-ERROR
: instruction requires
: sme2
87 // CHECK-UNKNOWN
: c1e5e3ff
<unknown
>
90 uunpk
{z0.h
- z3.h
}, {z0.
b - z1.
b} // 11000001-01110101-11100000-00000001
91 // CHECK-INST
: uunpk
{ z0.h
- z3.h
}, { z0.
b, z1.
b }
92 // CHECK-ENCODING
: [0x01,0xe0,0x75,0xc1]
93 // CHECK-ERROR
: instruction requires
: sme2
94 // CHECK-UNKNOWN
: c175e001
<unknown
>
96 uunpk
{z20.h
- z23.h
}, {z10.
b - z11.
b} // 11000001-01110101-11100001-01010101
97 // CHECK-INST
: uunpk
{ z20.h
- z23.h
}, { z10.
b, z11.
b }
98 // CHECK-ENCODING
: [0x55,0xe1,0x75,0xc1]
99 // CHECK-ERROR
: instruction requires
: sme2
100 // CHECK-UNKNOWN
: c175e155
<unknown
>
102 uunpk
{z20.h
- z23.h
}, {z12.
b - z13.
b} // 11000001-01110101-11100001-10010101
103 // CHECK-INST
: uunpk
{ z20.h
- z23.h
}, { z12.
b, z13.
b }
104 // CHECK-ENCODING
: [0x95,0xe1,0x75,0xc1]
105 // CHECK-ERROR
: instruction requires
: sme2
106 // CHECK-UNKNOWN
: c175e195
<unknown
>
108 uunpk
{z28.h
- z31.h
}, {z30.
b - z31.
b} // 11000001-01110101-11100011-11011101
109 // CHECK-INST
: uunpk
{ z28.h
- z31.h
}, { z30.
b, z31.
b }
110 // CHECK-ENCODING
: [0xdd,0xe3,0x75,0xc1]
111 // CHECK-ERROR
: instruction requires
: sme2
112 // CHECK-UNKNOWN
: c175e3dd
<unknown
>
115 uunpk
{z0.s
- z3.s
}, {z0.h
- z1.h
} // 11000001-10110101-11100000-00000001
116 // CHECK-INST
: uunpk
{ z0.s
- z3.s
}, { z0.h
, z1.h
}
117 // CHECK-ENCODING
: [0x01,0xe0,0xb5,0xc1]
118 // CHECK-ERROR
: instruction requires
: sme2
119 // CHECK-UNKNOWN
: c1b5e001
<unknown
>
121 uunpk
{z20.s
- z23.s
}, {z10.h
- z11.h
} // 11000001-10110101-11100001-01010101
122 // CHECK-INST
: uunpk
{ z20.s
- z23.s
}, { z10.h
, z11.h
}
123 // CHECK-ENCODING
: [0x55,0xe1,0xb5,0xc1]
124 // CHECK-ERROR
: instruction requires
: sme2
125 // CHECK-UNKNOWN
: c1b5e155
<unknown
>
127 uunpk
{z20.s
- z23.s
}, {z12.h
- z13.h
} // 11000001-10110101-11100001-10010101
128 // CHECK-INST
: uunpk
{ z20.s
- z23.s
}, { z12.h
, z13.h
}
129 // CHECK-ENCODING
: [0x95,0xe1,0xb5,0xc1]
130 // CHECK-ERROR
: instruction requires
: sme2
131 // CHECK-UNKNOWN
: c1b5e195
<unknown
>
133 uunpk
{z28.s
- z31.s
}, {z30.h
- z31.h
} // 11000001-10110101-11100011-11011101
134 // CHECK-INST
: uunpk
{ z28.s
- z31.s
}, { z30.h
, z31.h
}
135 // CHECK-ENCODING
: [0xdd,0xe3,0xb5,0xc1]
136 // CHECK-ERROR
: instruction requires
: sme2
137 // CHECK-UNKNOWN
: c1b5e3dd
<unknown
>
140 uunpk
{z0.d
- z3.d
}, {z0.s
- z1.s
} // 11000001-11110101-11100000-00000001
141 // CHECK-INST
: uunpk
{ z0.d
- z3.d
}, { z0.s
, z1.s
}
142 // CHECK-ENCODING
: [0x01,0xe0,0xf5,0xc1]
143 // CHECK-ERROR
: instruction requires
: sme2
144 // CHECK-UNKNOWN
: c1f5e001
<unknown
>
146 uunpk
{z20.d
- z23.d
}, {z10.s
- z11.s
} // 11000001-11110101-11100001-01010101
147 // CHECK-INST
: uunpk
{ z20.d
- z23.d
}, { z10.s
, z11.s
}
148 // CHECK-ENCODING
: [0x55,0xe1,0xf5,0xc1]
149 // CHECK-ERROR
: instruction requires
: sme2
150 // CHECK-UNKNOWN
: c1f5e155
<unknown
>
152 uunpk
{z20.d
- z23.d
}, {z12.s
- z13.s
} // 11000001-11110101-11100001-10010101
153 // CHECK-INST
: uunpk
{ z20.d
- z23.d
}, { z12.s
, z13.s
}
154 // CHECK-ENCODING
: [0x95,0xe1,0xf5,0xc1]
155 // CHECK-ERROR
: instruction requires
: sme2
156 // CHECK-UNKNOWN
: c1f5e195
<unknown
>
158 uunpk
{z28.d
- z31.d
}, {z30.s
- z31.s
} // 11000001-11110101-11100011-11011101
159 // CHECK-INST
: uunpk
{ z28.d
- z31.d
}, { z30.s
, z31.s
}
160 // CHECK-ENCODING
: [0xdd,0xe3,0xf5,0xc1]
161 // CHECK-ERROR
: instruction requires
: sme2
162 // CHECK-UNKNOWN
: c1f5e3dd
<unknown
>