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 fclamp
{z0.d
, z1.d
}, z0.d
, z0.d
// 11000001-11100000-11000000-00000000
16 // CHECK-INST
: fclamp
{ z0.d
, z1.d
}, z0.d
, z0.d
17 // CHECK-ENCODING
: [0x00,0xc0,0xe0,0xc1]
18 // CHECK-ERROR
: instruction requires
: sme2
19 // CHECK-UNKNOWN
: c1e0c000
<unknown
>
21 fclamp
{z20.d
, z21.d
}, z10.d
, z21.d
// 11000001-11110101-11000001-01010100
22 // CHECK-INST
: fclamp
{ z20.d
, z21.d
}, z10.d
, z21.d
23 // CHECK-ENCODING
: [0x54,0xc1,0xf5,0xc1]
24 // CHECK-ERROR
: instruction requires
: sme2
25 // CHECK-UNKNOWN
: c1f5c154
<unknown
>
27 fclamp
{z22.d
, z23.d
}, z13.d
, z8.d
// 11000001-11101000-11000001-10110110
28 // CHECK-INST
: fclamp
{ z22.d
, z23.d
}, z13.d
, z8.d
29 // CHECK-ENCODING
: [0xb6,0xc1,0xe8,0xc1]
30 // CHECK-ERROR
: instruction requires
: sme2
31 // CHECK-UNKNOWN
: c1e8c1b6
<unknown
>
33 fclamp
{z30.d
, z31.d
}, z31.d
, z31.d
// 11000001-11111111-11000011-11111110
34 // CHECK-INST
: fclamp
{ z30.d
, z31.d
}, z31.d
, z31.d
35 // CHECK-ENCODING
: [0xfe,0xc3,0xff,0xc1]
36 // CHECK-ERROR
: instruction requires
: sme2
37 // CHECK-UNKNOWN
: c1ffc3fe
<unknown
>
40 fclamp
{z0.h
, z1.h
}, z0.h
, z0.h
// 11000001-01100000-11000000-00000000
41 // CHECK-INST
: fclamp
{ z0.h
, z1.h
}, z0.h
, z0.h
42 // CHECK-ENCODING
: [0x00,0xc0,0x60,0xc1]
43 // CHECK-ERROR
: instruction requires
: sme2
44 // CHECK-UNKNOWN
: c160c000
<unknown
>
46 fclamp
{z20.h
, z21.h
}, z10.h
, z21.h
// 11000001-01110101-11000001-01010100
47 // CHECK-INST
: fclamp
{ z20.h
, z21.h
}, z10.h
, z21.h
48 // CHECK-ENCODING
: [0x54,0xc1,0x75,0xc1]
49 // CHECK-ERROR
: instruction requires
: sme2
50 // CHECK-UNKNOWN
: c175c154
<unknown
>
52 fclamp
{z22.h
, z23.h
}, z13.h
, z8.h
// 11000001-01101000-11000001-10110110
53 // CHECK-INST
: fclamp
{ z22.h
, z23.h
}, z13.h
, z8.h
54 // CHECK-ENCODING
: [0xb6,0xc1,0x68,0xc1]
55 // CHECK-ERROR
: instruction requires
: sme2
56 // CHECK-UNKNOWN
: c168c1b6
<unknown
>
58 fclamp
{z30.h
, z31.h
}, z31.h
, z31.h
// 11000001-01111111-11000011-11111110
59 // CHECK-INST
: fclamp
{ z30.h
, z31.h
}, z31.h
, z31.h
60 // CHECK-ENCODING
: [0xfe,0xc3,0x7f,0xc1]
61 // CHECK-ERROR
: instruction requires
: sme2
62 // CHECK-UNKNOWN
: c17fc3fe
<unknown
>
65 fclamp
{z0.s
, z1.s
}, z0.s
, z0.s
// 11000001-10100000-11000000-00000000
66 // CHECK-INST
: fclamp
{ z0.s
, z1.s
}, z0.s
, z0.s
67 // CHECK-ENCODING
: [0x00,0xc0,0xa0,0xc1]
68 // CHECK-ERROR
: instruction requires
: sme2
69 // CHECK-UNKNOWN
: c1a0c000
<unknown
>
71 fclamp
{z20.s
, z21.s
}, z10.s
, z21.s
// 11000001-10110101-11000001-01010100
72 // CHECK-INST
: fclamp
{ z20.s
, z21.s
}, z10.s
, z21.s
73 // CHECK-ENCODING
: [0x54,0xc1,0xb5,0xc1]
74 // CHECK-ERROR
: instruction requires
: sme2
75 // CHECK-UNKNOWN
: c1b5c154
<unknown
>
77 fclamp
{z22.s
, z23.s
}, z13.s
, z8.s
// 11000001-10101000-11000001-10110110
78 // CHECK-INST
: fclamp
{ z22.s
, z23.s
}, z13.s
, z8.s
79 // CHECK-ENCODING
: [0xb6,0xc1,0xa8,0xc1]
80 // CHECK-ERROR
: instruction requires
: sme2
81 // CHECK-UNKNOWN
: c1a8c1b6
<unknown
>
83 fclamp
{z30.s
, z31.s
}, z31.s
, z31.s
// 11000001-10111111-11000011-11111110
84 // CHECK-INST
: fclamp
{ z30.s
, z31.s
}, z31.s
, z31.s
85 // CHECK-ENCODING
: [0xfe,0xc3,0xbf,0xc1]
86 // CHECK-ERROR
: instruction requires
: sme2
87 // CHECK-UNKNOWN
: c1bfc3fe
<unknown
>
90 fclamp
{z0.d
- z3.d
}, z0.d
, z0.d
// 11000001-11100000-11001000-00000000
91 // CHECK-INST
: fclamp
{ z0.d
- z3.d
}, z0.d
, z0.d
92 // CHECK-ENCODING
: [0x00,0xc8,0xe0,0xc1]
93 // CHECK-ERROR
: instruction requires
: sme2
94 // CHECK-UNKNOWN
: c1e0c800
<unknown
>
96 fclamp
{z20.d
- z23.d
}, z10.d
, z21.d
// 11000001-11110101-11001001-01010100
97 // CHECK-INST
: fclamp
{ z20.d
- z23.d
}, z10.d
, z21.d
98 // CHECK-ENCODING
: [0x54,0xc9,0xf5,0xc1]
99 // CHECK-ERROR
: instruction requires
: sme2
100 // CHECK-UNKNOWN
: c1f5c954
<unknown
>
102 fclamp
{z20.d
- z23.d
}, z13.d
, z8.d
// 11000001-11101000-11001001-10110100
103 // CHECK-INST
: fclamp
{ z20.d
- z23.d
}, z13.d
, z8.d
104 // CHECK-ENCODING
: [0xb4,0xc9,0xe8,0xc1]
105 // CHECK-ERROR
: instruction requires
: sme2
106 // CHECK-UNKNOWN
: c1e8c9b4
<unknown
>
108 fclamp
{z28.d
- z31.d
}, z31.d
, z31.d
// 11000001-11111111-11001011-11111100
109 // CHECK-INST
: fclamp
{ z28.d
- z31.d
}, z31.d
, z31.d
110 // CHECK-ENCODING
: [0xfc,0xcb,0xff,0xc1]
111 // CHECK-ERROR
: instruction requires
: sme2
112 // CHECK-UNKNOWN
: c1ffcbfc
<unknown
>
115 fclamp
{z0.h
- z3.h
}, z0.h
, z0.h
// 11000001-01100000-11001000-00000000
116 // CHECK-INST
: fclamp
{ z0.h
- z3.h
}, z0.h
, z0.h
117 // CHECK-ENCODING
: [0x00,0xc8,0x60,0xc1]
118 // CHECK-ERROR
: instruction requires
: sme2
119 // CHECK-UNKNOWN
: c160c800
<unknown
>
121 fclamp
{z20.h
- z23.h
}, z10.h
, z21.h
// 11000001-01110101-11001001-01010100
122 // CHECK-INST
: fclamp
{ z20.h
- z23.h
}, z10.h
, z21.h
123 // CHECK-ENCODING
: [0x54,0xc9,0x75,0xc1]
124 // CHECK-ERROR
: instruction requires
: sme2
125 // CHECK-UNKNOWN
: c175c954
<unknown
>
127 fclamp
{z20.h
- z23.h
}, z13.h
, z8.h
// 11000001-01101000-11001001-10110100
128 // CHECK-INST
: fclamp
{ z20.h
- z23.h
}, z13.h
, z8.h
129 // CHECK-ENCODING
: [0xb4,0xc9,0x68,0xc1]
130 // CHECK-ERROR
: instruction requires
: sme2
131 // CHECK-UNKNOWN
: c168c9b4
<unknown
>
133 fclamp
{z28.h
- z31.h
}, z31.h
, z31.h
// 11000001-01111111-11001011-11111100
134 // CHECK-INST
: fclamp
{ z28.h
- z31.h
}, z31.h
, z31.h
135 // CHECK-ENCODING
: [0xfc,0xcb,0x7f,0xc1]
136 // CHECK-ERROR
: instruction requires
: sme2
137 // CHECK-UNKNOWN
: c17fcbfc
<unknown
>
140 fclamp
{z0.s
- z3.s
}, z0.s
, z0.s
// 11000001-10100000-11001000-00000000
141 // CHECK-INST
: fclamp
{ z0.s
- z3.s
}, z0.s
, z0.s
142 // CHECK-ENCODING
: [0x00,0xc8,0xa0,0xc1]
143 // CHECK-ERROR
: instruction requires
: sme2
144 // CHECK-UNKNOWN
: c1a0c800
<unknown
>
146 fclamp
{z20.s
- z23.s
}, z10.s
, z21.s
// 11000001-10110101-11001001-01010100
147 // CHECK-INST
: fclamp
{ z20.s
- z23.s
}, z10.s
, z21.s
148 // CHECK-ENCODING
: [0x54,0xc9,0xb5,0xc1]
149 // CHECK-ERROR
: instruction requires
: sme2
150 // CHECK-UNKNOWN
: c1b5c954
<unknown
>
152 fclamp
{z20.s
- z23.s
}, z13.s
, z8.s
// 11000001-10101000-11001001-10110100
153 // CHECK-INST
: fclamp
{ z20.s
- z23.s
}, z13.s
, z8.s
154 // CHECK-ENCODING
: [0xb4,0xc9,0xa8,0xc1]
155 // CHECK-ERROR
: instruction requires
: sme2
156 // CHECK-UNKNOWN
: c1a8c9b4
<unknown
>
158 fclamp
{z28.s
- z31.s
}, z31.s
, z31.s
// 11000001-10111111-11001011-11111100
159 // CHECK-INST
: fclamp
{ z28.s
- z31.s
}, z31.s
, z31.s
160 // CHECK-ENCODING
: [0xfc,0xcb,0xbf,0xc1]
161 // CHECK-ERROR
: instruction requires
: sme2
162 // CHECK-UNKNOWN
: c1bfcbfc
<unknown
>