1 // RUN
: llvm-mc
-triple aarch64-none-linux-gnu
-mattr
=+neon
,+fullfp16
-show-encoding
< %s | FileCheck
%s
3 // Check that the assembler can handle the documented syntax for AArch64
5 //----------------------------------------------------------------------
6 // Vector Compare Mask Equal
(Integer
)
7 //----------------------------------------------------------------------
9 cmeq v0.8
b, v15.8
b, v17.8
b
10 cmeq v1.16
b, v31.16
b, v8.16
b
11 cmeq v15.4h
, v16.4h
, v17.4h
12 cmeq v5.8h
, v6.8h
, v7.8h
13 cmeq v29.2s
, v27.2s
, v28.2s
14 cmeq v9.4s
, v7.4s
, v8.4s
15 cmeq v3.2d
, v31.2d
, v21.2d
17 // CHECK
: cmeq v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x8d,0x31,0x2e]
18 // CHECK
: cmeq v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x8f,0x28,0x6e]
19 // CHECK
: cmeq v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x8e,0x71,0x2e]
20 // CHECK
: cmeq v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x8c,0x67,0x6e]
21 // CHECK
: cmeq v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x8f,0xbc,0x2e]
22 // CHECK
: cmeq v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x8c,0xa8,0x6e]
23 // CHECK
: cmeq v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x8f,0xf5,0x6e]
25 //----------------------------------------------------------------------
26 // Vector Compare Mask Higher
or Same
(Unsigned Integer
)
27 // Vector Compare Mask Less
or Same
(Unsigned Integer
)
28 // CMLS is alias for CMHS with operands reversed.
29 //----------------------------------------------------------------------
31 cmhs v0.8
b, v15.8
b, v17.8
b
32 cmhs v1.16
b, v31.16
b, v8.16
b
33 cmhs v15.4h
, v16.4h
, v17.4h
34 cmhs v5.8h
, v6.8h
, v7.8h
35 cmhs v29.2s
, v27.2s
, v28.2s
36 cmhs v9.4s
, v7.4s
, v8.4s
37 cmhs v3.2d
, v31.2d
, v21.2d
39 cmls v0.8
b, v17.8
b, v15.8
b
40 cmls v1.16
b, v8.16
b, v31.16
b
41 cmls v15.4h
, v17.4h
, v16.4h
42 cmls v5.8h
, v7.8h
, v6.8h
43 cmls v29.2s
, v28.2s
, v27.2s
44 cmls v9.4s
, v8.4s
, v7.4s
45 cmls v3.2d
, v21.2d
, v31.2d
47 // CHECK
: cmhs v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x3d,0x31,0x2e]
48 // CHECK
: cmhs v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x3f,0x28,0x6e]
49 // CHECK
: cmhs v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x3e,0x71,0x2e]
50 // CHECK
: cmhs v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x3c,0x67,0x6e]
51 // CHECK
: cmhs v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x3f,0xbc,0x2e]
52 // CHECK
: cmhs v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x3c,0xa8,0x6e]
53 // CHECK
: cmhs v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x3f,0xf5,0x6e]
54 // CHECK
: cmhs v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x3d,0x31,0x2e]
55 // CHECK
: cmhs v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x3f,0x28,0x6e]
56 // CHECK
: cmhs v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x3e,0x71,0x2e]
57 // CHECK
: cmhs v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x3c,0x67,0x6e]
58 // CHECK
: cmhs v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x3f,0xbc,0x2e]
59 // CHECK
: cmhs v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x3c,0xa8,0x6e]
60 // CHECK
: cmhs v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x3f,0xf5,0x6e]
62 //----------------------------------------------------------------------
63 // Vector Compare Mask Greater Than
or Equal
(Integer
)
64 // Vector Compare Mask Less Than
or Equal
(Integer
)
65 // CMLE is alias for CMGE with operands reversed.
66 //----------------------------------------------------------------------
68 cmge v0.8
b, v15.8
b, v17.8
b
69 cmge v1.16
b, v31.16
b, v8.16
b
70 cmge v15.4h
, v16.4h
, v17.4h
71 cmge v5.8h
, v6.8h
, v7.8h
72 cmge v29.2s
, v27.2s
, v28.2s
73 cmge v9.4s
, v7.4s
, v8.4s
74 cmge v3.2d
, v31.2d
, v21.2d
76 cmle v0.8
b, v17.8
b, v15.8
b
77 cmle v1.16
b, v8.16
b, v31.16
b
78 cmle v15.4h
, v17.4h
, v16.4h
79 cmle v5.8h
, v7.8h
, v6.8h
80 cmle v29.2s
, v28.2s
, v27.2s
81 cmle v9.4s
, v8.4s
, v7.4s
82 cmle v3.2d
, v21.2d
, v31.2d
84 // CHECK
: cmge v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x3d,0x31,0x0e]
85 // CHECK
: cmge v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x3f,0x28,0x4e]
86 // CHECK
: cmge v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x3e,0x71,0x0e]
87 // CHECK
: cmge v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x3c,0x67,0x4e]
88 // CHECK
: cmge v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x3f,0xbc,0x0e]
89 // CHECK
: cmge v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x3c,0xa8,0x4e]
90 // CHECK
: cmge v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x3f,0xf5,0x4e]
91 // CHECK
: cmge v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x3d,0x31,0x0e]
92 // CHECK
: cmge v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x3f,0x28,0x4e]
93 // CHECK
: cmge v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x3e,0x71,0x0e]
94 // CHECK
: cmge v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x3c,0x67,0x4e]
95 // CHECK
: cmge v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x3f,0xbc,0x0e]
96 // CHECK
: cmge v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x3c,0xa8,0x4e]
97 // CHECK
: cmge v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x3f,0xf5,0x4e]
99 //----------------------------------------------------------------------
100 // Vector Compare Mask Higher
(Unsigned Integer
)
101 // Vector Compare Mask Lower
(Unsigned Integer
)
102 // CMLO is alias for CMHI with operands reversed.
103 //----------------------------------------------------------------------
105 cmhi v0.8
b, v15.8
b, v17.8
b
106 cmhi v1.16
b, v31.16
b, v8.16
b
107 cmhi v15.4h
, v16.4h
, v17.4h
108 cmhi v5.8h
, v6.8h
, v7.8h
109 cmhi v29.2s
, v27.2s
, v28.2s
110 cmhi v9.4s
, v7.4s
, v8.4s
111 cmhi v3.2d
, v31.2d
, v21.2d
113 cmlo v0.8
b, v17.8
b, v15.8
b
114 cmlo v1.16
b, v8.16
b, v31.16
b
115 cmlo v15.4h
, v17.4h
, v16.4h
116 cmlo v5.8h
, v7.8h
, v6.8h
117 cmlo v29.2s
, v28.2s
, v27.2s
118 cmlo v9.4s
, v8.4s
, v7.4s
119 cmlo v3.2d
, v21.2d
, v31.2d
121 // CHECK
: cmhi v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x35,0x31,0x2e]
122 // CHECK
: cmhi v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x37,0x28,0x6e]
123 // CHECK
: cmhi v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x36,0x71,0x2e]
124 // CHECK
: cmhi v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x34,0x67,0x6e]
125 // CHECK
: cmhi v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x37,0xbc,0x2e]
126 // CHECK
: cmhi v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x34,0xa8,0x6e]
127 // CHECK
: cmhi v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x37,0xf5,0x6e]
128 // CHECK
: cmhi v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x35,0x31,0x2e]
129 // CHECK
: cmhi v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x37,0x28,0x6e]
130 // CHECK
: cmhi v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x36,0x71,0x2e]
131 // CHECK
: cmhi v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x34,0x67,0x6e]
132 // CHECK
: cmhi v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x37,0xbc,0x2e]
133 // CHECK
: cmhi v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x34,0xa8,0x6e]
134 // CHECK
: cmhi v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x37,0xf5,0x6e]
136 //----------------------------------------------------------------------
137 // Vector Compare Mask Greater Than
(Integer
)
138 // Vector Compare Mask Less Than
(Integer
)
139 // CMLT is alias for CMGT with operands reversed.
140 //----------------------------------------------------------------------
142 cmgt v0.8
b, v15.8
b, v17.8
b
143 cmgt v1.16
b, v31.16
b, v8.16
b
144 cmgt v15.4h
, v16.4h
, v17.4h
145 cmgt v5.8h
, v6.8h
, v7.8h
146 cmgt v29.2s
, v27.2s
, v28.2s
147 cmgt v9.4s
, v7.4s
, v8.4s
148 cmgt v3.2d
, v31.2d
, v21.2d
150 cmlt v0.8
b, v17.8
b, v15.8
b
151 cmlt v1.16
b, v8.16
b, v31.16
b
152 cmlt v15.4h
, v17.4h
, v16.4h
153 cmlt v5.8h
, v7.8h
, v6.8h
154 cmlt v29.2s
, v28.2s
, v27.2s
155 cmlt v9.4s
, v8.4s
, v7.4s
156 cmlt v3.2d
, v21.2d
, v31.2d
158 // CHECK
: cmgt v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x35,0x31,0x0e]
159 // CHECK
: cmgt v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x37,0x28,0x4e]
160 // CHECK
: cmgt v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x36,0x71,0x0e]
161 // CHECK
: cmgt v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x34,0x67,0x4e]
162 // CHECK
: cmgt v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x37,0xbc,0x0e]
163 // CHECK
: cmgt v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x34,0xa8,0x4e]
164 // CHECK
: cmgt v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x37,0xf5,0x4e]
165 // CHECK
: cmgt v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x35,0x31,0x0e]
166 // CHECK
: cmgt v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x37,0x28,0x4e]
167 // CHECK
: cmgt v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x36,0x71,0x0e]
168 // CHECK
: cmgt v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x34,0x67,0x4e]
169 // CHECK
: cmgt v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x37,0xbc,0x0e]
170 // CHECK
: cmgt v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x34,0xa8,0x4e]
171 // CHECK
: cmgt v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x37,0xf5,0x4e]
173 //----------------------------------------------------------------------
174 // Vector Compare Mask Bitwise Test
(Integer
)
175 //----------------------------------------------------------------------
177 cmtst v0.8
b, v15.8
b, v17.8
b
178 cmtst v1.16
b, v31.16
b, v8.16
b
179 cmtst v15.4h
, v16.4h
, v17.4h
180 cmtst v5.8h
, v6.8h
, v7.8h
181 cmtst v29.2s
, v27.2s
, v28.2s
182 cmtst v9.4s
, v7.4s
, v8.4s
183 cmtst v3.2d
, v31.2d
, v21.2d
185 // CHECK
: cmtst v0.8
b, v15.8
b, v17.8
b // encoding
: [0xe0,0x8d,0x31,0x0e]
186 // CHECK
: cmtst v1.16
b, v31.16
b, v8.16
b // encoding
: [0xe1,0x8f,0x28,0x4e]
187 // CHECK
: cmtst v15.4h
, v16.4h
, v17.4h
// encoding
: [0x0f,0x8e,0x71,0x0e]
188 // CHECK
: cmtst v5.8h
, v6.8h
, v7.8h
// encoding
: [0xc5,0x8c,0x67,0x4e]
189 // CHECK
: cmtst v29.2s
, v27.2s
, v28.2s
// encoding
: [0x7d,0x8f,0xbc,0x0e]
190 // CHECK
: cmtst v9.4s
, v7.4s
, v8.4s
// encoding
: [0xe9,0x8c,0xa8,0x4e]
191 // CHECK
: cmtst v3.2d
, v31.2d
, v21.2d
// encoding
: [0xe3,0x8f,0xf5,0x4e]
193 //----------------------------------------------------------------------
194 // Vector Compare Mask Equal
(Floating Point
)
195 //----------------------------------------------------------------------
197 fcmeq v0.4h
, v31.4h
, v16.4h
198 fcmeq v4.8h
, v7.8h
, v15.8h
199 fcmeq v0.2s
, v31.2s
, v16.2s
200 fcmeq v4.4s
, v7.4s
, v15.4s
201 fcmeq v29.2d
, v2.2d
, v5.2d
203 // CHECK
: fcmeq v0.4h
, v31.4h
, v16.4h
// encoding
: [0xe0,0x27,0x50,0x0e]
204 // CHECK
: fcmeq v4.8h
, v7.8h
, v15.8h
// encoding
: [0xe4,0x24,0x4f,0x4e]
205 // CHECK
: fcmeq v0.2s
, v31.2s
, v16.2s
// encoding
: [0xe0,0xe7,0x30,0x0e]
206 // CHECK
: fcmeq v4.4s
, v7.4s
, v15.4s
// encoding
: [0xe4,0xe4,0x2f,0x4e]
207 // CHECK
: fcmeq v29.2d
, v2.2d
, v5.2d
// encoding
: [0x5d,0xe4,0x65,0x4e]
209 //----------------------------------------------------------------------
210 // Vector Compare Mask Greater Than
Or Equal
(Floating Point
)
211 // Vector Compare Mask Less Than
Or Equal
(Floating Point
)
212 // FCMLE is alias for FCMGE with operands reversed.
213 //----------------------------------------------------------------------
215 fcmge v3.4h
, v8.4h
, v12.4h
216 fcmge v31.8h
, v29.8h
, v28.8h
217 fcmle v3.4h
, v12.4h
, v8.4h
218 fcmle v31.8h
, v28.8h
, v29.8h
219 fcmge v31.4s
, v29.4s
, v28.4s
220 fcmge v3.2s
, v8.2s
, v12.2s
221 fcmge v17.2d
, v15.2d
, v13.2d
222 fcmle v31.4s
, v28.4s
, v29.4s
223 fcmle v3.2s
, v12.2s
, v8.2s
224 fcmle v17.2d
, v13.2d
, v15.2d
226 // CHECK
: fcmge v3.4h
, v8.4h
, v12.4h
// encoding
: [0x03,0x25,0x4c,0x2e]
227 // CHECK
: fcmge v31.8h
, v29.8h
, v28.8h
// encoding
: [0xbf,0x27,0x5c,0x6e]
228 // CHECK
: fcmge v3.4h
, v8.4h
, v12.4h
// encoding
: [0x03,0x25,0x4c,0x2e]
229 // CHECK
: fcmge v31.8h
, v29.8h
, v28.8h
// encoding
: [0xbf,0x27,0x5c,0x6e]
230 // CHECK
: fcmge v31.4s
, v29.4s
, v28.4s
// encoding
: [0xbf,0xe7,0x3c,0x6e]
231 // CHECK
: fcmge v3.2s
, v8.2s
, v12.2s
// encoding
: [0x03,0xe5,0x2c,0x2e]
232 // CHECK
: fcmge v17.2d
, v15.2d
, v13.2d
// encoding
: [0xf1,0xe5,0x6d,0x6e]
233 // CHECK
: fcmge v31.4s
, v29.4s
, v28.4s
// encoding
: [0xbf,0xe7,0x3c,0x6e]
234 // CHECK
: fcmge v3.2s
, v8.2s
, v12.2s
// encoding
: [0x03,0xe5,0x2c,0x2e]
235 // CHECK
: fcmge v17.2d
, v15.2d
, v13.2d
// encoding
: [0xf1,0xe5,0x6d,0x6e]
237 //----------------------------------------------------------------------
238 // Vector Compare Mask Greater Than
(Floating Point
)
239 // Vector Compare Mask Less Than
(Floating Point
)
240 // FCMLT is alias for FCMGT with operands reversed.
241 //----------------------------------------------------------------------
243 fcmgt v0.4h
, v31.4h
, v16.4h
244 fcmgt v4.8h
, v7.8h
, v15.8h
245 fcmlt v0.4h
, v16.4h
, v31.4h
246 fcmlt v4.8h
, v15.8h
, v7.8h
247 fcmgt v0.2s
, v31.2s
, v16.2s
248 fcmgt v4.4s
, v7.4s
, v15.4s
249 fcmgt v29.2d
, v2.2d
, v5.2d
250 fcmlt v0.2s
, v16.2s
, v31.2s
251 fcmlt v4.4s
, v15.4s
, v7.4s
252 fcmlt v29.2d
, v5.2d
, v2.2d
254 // CHECK
: fcmgt v0.4h
, v31.4h
, v16.4h
// encoding
: [0xe0,0x27,0xd0,0x2e]
255 // CHECK
: fcmgt v4.8h
, v7.8h
, v15.8h
// encoding
: [0xe4,0x24,0xcf,0x6e]
256 // CHECK
: fcmgt v0.4h
, v31.4h
, v16.4h
// encoding
: [0xe0,0x27,0xd0,0x2e]
257 // CHECK
: fcmgt v4.8h
, v7.8h
, v15.8h
// encoding
: [0xe4,0x24,0xcf,0x6e]
258 // CHECK
: fcmgt v0.2s
, v31.2s
, v16.2s
// encoding
: [0xe0,0xe7,0xb0,0x2e]
259 // CHECK
: fcmgt v4.4s
, v7.4s
, v15.4s
// encoding
: [0xe4,0xe4,0xaf,0x6e]
260 // CHECK
: fcmgt v29.2d
, v2.2d
, v5.2d
// encoding
: [0x5d,0xe4,0xe5,0x6e]
261 // CHECK
: fcmgt v0.2s
, v31.2s
, v16.2s
// encoding
: [0xe0,0xe7,0xb0,0x2e]
262 // CHECK
: fcmgt v4.4s
, v7.4s
, v15.4s
// encoding
: [0xe4,0xe4,0xaf,0x6e]
263 // CHECK
: fcmgt v29.2d
, v2.2d
, v5.2d
// encoding
: [0x5d,0xe4,0xe5,0x6e]
266 //----------------------------------------------------------------------
267 // Vector Compare Mask Equal to Zero
(Integer
)
268 //----------------------------------------------------------------------
270 cmeq v0.8
b, v15.8
b, #0
271 cmeq v1.16
b, v31.16
b, #0
272 cmeq v15.4h
, v16.4h
, #0
273 cmeq v5.8h
, v6.8h
, #0
274 cmeq v29.2s
, v27.2s
, #0
275 cmeq v9.4s
, v7.4s
, #0
276 cmeq v3.2d
, v31.2d
, #0
278 // CHECK
: cmeq v0.8
b, v15.8
b, #{{0x0|0}} // encoding: [0xe0,0x99,0x20,0x0e]
279 // CHECK
: cmeq v1.16
b, v31.16
b, #{{0x0|0}} // encoding: [0xe1,0x9b,0x20,0x4e]
280 // CHECK
: cmeq v15.4h
, v16.4h
, #{{0x0|0}} // encoding: [0x0f,0x9a,0x60,0x0e]
281 // CHECK
: cmeq v5.8h
, v6.8h
, #{{0x0|0}} // encoding: [0xc5,0x98,0x60,0x4e]
282 // CHECK
: cmeq v29.2s
, v27.2s
, #{{0x0|0}} // encoding: [0x7d,0x9b,0xa0,0x0e]
283 // CHECK
: cmeq v9.4s
, v7.4s
, #{{0x0|0}} // encoding: [0xe9,0x98,0xa0,0x4e]
284 // CHECK
: cmeq v3.2d
, v31.2d
, #{{0x0|0}} // encoding: [0xe3,0x9b,0xe0,0x4e]
286 //----------------------------------------------------------------------
287 // Vector Compare Mask Greater Than
or Equal to Zero
(Signed Integer
)
288 //----------------------------------------------------------------------
289 cmge v0.8
b, v15.8
b, #0
290 cmge v1.16
b, v31.16
b, #0
291 cmge v15.4h
, v16.4h
, #0
292 cmge v5.8h
, v6.8h
, #0
293 cmge v29.2s
, v27.2s
, #0
294 cmge v17.4s
, v20.4s
, #0
295 cmge v3.2d
, v31.2d
, #0
297 // CHECK
: cmge v0.8
b, v15.8
b, #{{0x0|0}} // encoding: [0xe0,0x89,0x20,0x2e]
298 // CHECK
: cmge v1.16
b, v31.16
b, #{{0x0|0}} // encoding: [0xe1,0x8b,0x20,0x6e]
299 // CHECK
: cmge v15.4h
, v16.4h
, #{{0x0|0}} // encoding: [0x0f,0x8a,0x60,0x2e]
300 // CHECK
: cmge v5.8h
, v6.8h
, #{{0x0|0}} // encoding: [0xc5,0x88,0x60,0x6e]
301 // CHECK
: cmge v29.2s
, v27.2s
, #{{0x0|0}} // encoding: [0x7d,0x8b,0xa0,0x2e]
302 // CHECK
: cmge v17.4s
, v20.4s
, #{{0x0|0}} // encoding: [0x91,0x8a,0xa0,0x6e]
303 // CHECK
: cmge v3.2d
, v31.2d
, #{{0x0|0}} // encoding: [0xe3,0x8b,0xe0,0x6e]
305 //----------------------------------------------------------------------
306 // Vector Compare Mask Greater Than Zero
(Signed Integer
)
307 //----------------------------------------------------------------------
309 cmgt v0.8
b, v15.8
b, #0
310 cmgt v1.16
b, v31.16
b, #0
311 cmgt v15.4h
, v16.4h
, #0
312 cmgt v5.8h
, v6.8h
, #0
313 cmgt v29.2s
, v27.2s
, #0
314 cmgt v9.4s
, v7.4s
, #0
315 cmgt v3.2d
, v31.2d
, #0
317 // CHECK
: cmgt v0.8
b, v15.8
b, #{{0x0|0}} // encoding: [0xe0,0x89,0x20,0x0e]
318 // CHECK
: cmgt v1.16
b, v31.16
b, #{{0x0|0}} // encoding: [0xe1,0x8b,0x20,0x4e]
319 // CHECK
: cmgt v15.4h
, v16.4h
, #{{0x0|0}} // encoding: [0x0f,0x8a,0x60,0x0e]
320 // CHECK
: cmgt v5.8h
, v6.8h
, #{{0x0|0}} // encoding: [0xc5,0x88,0x60,0x4e]
321 // CHECK
: cmgt v29.2s
, v27.2s
, #{{0x0|0}} // encoding: [0x7d,0x8b,0xa0,0x0e]
322 // CHECK
: cmgt v9.4s
, v7.4s
, #{{0x0|0}} // encoding: [0xe9,0x88,0xa0,0x4e]
323 // CHECK
: cmgt v3.2d
, v31.2d
, #{{0x0|0}} // encoding: [0xe3,0x8b,0xe0,0x4e]
325 //----------------------------------------------------------------------
326 // Vector Compare Mask Less Than
or Equal To Zero
(Signed Integer
)
327 //----------------------------------------------------------------------
328 cmle v0.8
b, v15.8
b, #0
329 cmle v1.16
b, v31.16
b, #0
330 cmle v15.4h
, v16.4h
, #0
331 cmle v5.8h
, v6.8h
, #0
332 cmle v29.2s
, v27.2s
, #0
333 cmle v9.4s
, v7.4s
, #0
334 cmle v3.2d
, v31.2d
, #0
336 // CHECK
: cmle v0.8
b, v15.8
b, #{{0x0|0}} // encoding: [0xe0,0x99,0x20,0x2e]
337 // CHECK
: cmle v1.16
b, v31.16
b, #{{0x0|0}} // encoding: [0xe1,0x9b,0x20,0x6e]
338 // CHECK
: cmle v15.4h
, v16.4h
, #{{0x0|0}} // encoding: [0x0f,0x9a,0x60,0x2e]
339 // CHECK
: cmle v5.8h
, v6.8h
, #{{0x0|0}} // encoding: [0xc5,0x98,0x60,0x6e]
340 // CHECK
: cmle v29.2s
, v27.2s
, #{{0x0|0}} // encoding: [0x7d,0x9b,0xa0,0x2e]
341 // CHECK
: cmle v9.4s
, v7.4s
, #{{0x0|0}} // encoding: [0xe9,0x98,0xa0,0x6e]
342 // CHECK
: cmle v3.2d
, v31.2d
, #{{0x0|0}} // encoding: [0xe3,0x9b,0xe0,0x6e]
344 //----------------------------------------------------------------------
345 // Vector Compare Mask Less Than Zero
(Signed Integer
)
346 //----------------------------------------------------------------------
347 cmlt v0.8
b, v15.8
b, #0
348 cmlt v1.16
b, v31.16
b, #0
349 cmlt v15.4h
, v16.4h
, #0
350 cmlt v5.8h
, v6.8h
, #0
351 cmlt v29.2s
, v27.2s
, #0
352 cmlt v9.4s
, v7.4s
, #0
353 cmlt v3.2d
, v31.2d
, #0
355 // CHECK
: cmlt v0.8
b, v15.8
b, #{{0x0|0}} // encoding: [0xe0,0xa9,0x20,0x0e]
356 // CHECK
: cmlt v1.16
b, v31.16
b, #{{0x0|0}} // encoding: [0xe1,0xab,0x20,0x4e]
357 // CHECK
: cmlt v15.4h
, v16.4h
, #{{0x0|0}} // encoding: [0x0f,0xaa,0x60,0x0e]
358 // CHECK
: cmlt v5.8h
, v6.8h
, #{{0x0|0}} // encoding: [0xc5,0xa8,0x60,0x4e]
359 // CHECK
: cmlt v29.2s
, v27.2s
, #{{0x0|0}} // encoding: [0x7d,0xab,0xa0,0x0e]
360 // CHECK
: cmlt v9.4s
, v7.4s
, #{{0x0|0}} // encoding: [0xe9,0xa8,0xa0,0x4e]
361 // CHECK
: cmlt v3.2d
, v31.2d
, #{{0x0|0}} // encoding: [0xe3,0xab,0xe0,0x4e]
363 //----------------------------------------------------------------------
364 // Vector Compare Mask Equal to Zero
(Floating Point
)
365 //----------------------------------------------------------------------
366 fcmeq v0.4h
, v31.4h
, #0.0
367 fcmeq v4.8h
, v7.8h
, #0.0
368 fcmeq v0.2s
, v31.2s
, #0.0
369 fcmeq v4.4s
, v7.4s
, #0.0
370 fcmeq v29.2d
, v2.2d
, #0.0
371 fcmeq v0.4h
, v31.4h
, #0
372 fcmeq v4.8h
, v7.8h
, #0
373 fcmeq v0.2s
, v31.2s
, #0
374 fcmeq v4.4s
, v7.4s
, #0
375 fcmeq v29.2d
, v2.2d
, #0
377 // CHECK
: fcmeq v0.4h
, v31.4h
, #0.0 // encoding: [0xe0,0xdb,0xf8,0x0e]
378 // CHECK
: fcmeq v4.8h
, v7.8h
, #0.0 // encoding: [0xe4,0xd8,0xf8,0x4e]
379 // CHECK
: fcmeq v0.2s
, v31.2s
, #0.0 // encoding: [0xe0,0xdb,0xa0,0x0e]
380 // CHECK
: fcmeq v4.4s
, v7.4s
, #0.0 // encoding: [0xe4,0xd8,0xa0,0x4e]
381 // CHECK
: fcmeq v29.2d
, v2.2d
, #0.0 // encoding: [0x5d,0xd8,0xe0,0x4e]
382 // CHECK
: fcmeq v0.4h
, v31.4h
, #0.0 // encoding: [0xe0,0xdb,0xf8,0x0e]
383 // CHECK
: fcmeq v4.8h
, v7.8h
, #0.0 // encoding: [0xe4,0xd8,0xf8,0x4e]
384 // CHECK
: fcmeq v0.2s
, v31.2s
, #0.0 // encoding: [0xe0,0xdb,0xa0,0x0e]
385 // CHECK
: fcmeq v4.4s
, v7.4s
, #0.0 // encoding: [0xe4,0xd8,0xa0,0x4e]
386 // CHECK
: fcmeq v29.2d
, v2.2d
, #0.0 // encoding: [0x5d,0xd8,0xe0,0x4e]
388 //----------------------------------------------------------------------
389 // Vector Compare Mask Greater Than
or Equal to Zero
(Floating Point
)
390 //----------------------------------------------------------------------
391 fcmge v3.4h
, v8.4h
, #0.0
392 fcmge v31.8h
, v29.8h
, #0.0
393 fcmge v31.4s
, v29.4s
, #0.0
394 fcmge v3.2s
, v8.2s
, #0.0
395 fcmge v17.2d
, v15.2d
, #0.0
396 fcmge v3.4h
, v8.4h
, #0
397 fcmge v31.8h
, v29.8h
, #0
398 fcmge v31.4s
, v29.4s
, #0
399 fcmge v3.2s
, v8.2s
, #0
400 fcmge v17.2d
, v15.2d
, #0
402 // CHECK
: fcmge v3.4h
, v8.4h
, #0.0 // encoding: [0x03,0xc9,0xf8,0x2e]
403 // CHECK
: fcmge v31.8h
, v29.8h
, #0.0 // encoding: [0xbf,0xcb,0xf8,0x6e]
404 // CHECK
: fcmge v31.4s
, v29.4s
, #0.0 // encoding: [0xbf,0xcb,0xa0,0x6e]
405 // CHECK
: fcmge v3.2s
, v8.2s
, #0.0 // encoding: [0x03,0xc9,0xa0,0x2e]
406 // CHECK
: fcmge v17.2d
, v15.2d
, #0.0 // encoding: [0xf1,0xc9,0xe0,0x6e]
407 // CHECK
: fcmge v3.4h
, v8.4h
, #0.0 // encoding: [0x03,0xc9,0xf8,0x2e]
408 // CHECK
: fcmge v31.8h
, v29.8h
, #0.0 // encoding: [0xbf,0xcb,0xf8,0x6e]
409 // CHECK
: fcmge v31.4s
, v29.4s
, #0.0 // encoding: [0xbf,0xcb,0xa0,0x6e]
410 // CHECK
: fcmge v3.2s
, v8.2s
, #0.0 // encoding: [0x03,0xc9,0xa0,0x2e]
411 // CHECK
: fcmge v17.2d
, v15.2d
, #0.0 // encoding: [0xf1,0xc9,0xe0,0x6e]
413 //----------------------------------------------------------------------
414 // Vector Compare Mask Greater Than Zero
(Floating Point
)
415 //----------------------------------------------------------------------
416 fcmgt v0.4h
, v31.4h
, #0.0
417 fcmgt v4.8h
, v7.8h
, #0.0
418 fcmgt v0.2s
, v31.2s
, #0.0
419 fcmgt v4.4s
, v7.4s
, #0.0
420 fcmgt v29.2d
, v2.2d
, #0.0
421 fcmgt v0.4h
, v31.4h
, #0
422 fcmgt v4.8h
, v7.8h
, #0
423 fcmgt v0.2s
, v31.2s
, #0
424 fcmgt v4.4s
, v7.4s
, #0
425 fcmgt v29.2d
, v2.2d
, #0
427 // CHECK
: fcmgt v0.4h
, v31.4h
, #0.0 // encoding: [0xe0,0xcb,0xf8,0x0e]
428 // CHECK
: fcmgt v4.8h
, v7.8h
, #0.0 // encoding: [0xe4,0xc8,0xf8,0x4e]
429 // CHECK
: fcmgt v0.2s
, v31.2s
, #0.0 // encoding: [0xe0,0xcb,0xa0,0x0e]
430 // CHECK
: fcmgt v4.4s
, v7.4s
, #0.0 // encoding: [0xe4,0xc8,0xa0,0x4e]
431 // CHECK
: fcmgt v29.2d
, v2.2d
, #0.0 // encoding: [0x5d,0xc8,0xe0,0x4e]
432 // CHECK
: fcmgt v0.4h
, v31.4h
, #0.0 // encoding: [0xe0,0xcb,0xf8,0x0e]
433 // CHECK
: fcmgt v4.8h
, v7.8h
, #0.0 // encoding: [0xe4,0xc8,0xf8,0x4e]
434 // CHECK
: fcmgt v0.2s
, v31.2s
, #0.0 // encoding: [0xe0,0xcb,0xa0,0x0e]
435 // CHECK
: fcmgt v4.4s
, v7.4s
, #0.0 // encoding: [0xe4,0xc8,0xa0,0x4e]
436 // CHECK
: fcmgt v29.2d
, v2.2d
, #0.0 // encoding: [0x5d,0xc8,0xe0,0x4e]
438 //----------------------------------------------------------------------
439 // Vector Compare Mask Less Than
or Equal To Zero
(Floating Point
)
440 //----------------------------------------------------------------------
441 fcmle v3.4h
, v20.4h
, #0.0
442 fcmle v1.8h
, v8.8h
, #0.0
443 fcmle v1.4s
, v8.4s
, #0.0
444 fcmle v3.2s
, v20.2s
, #0.0
445 fcmle v7.2d
, v13.2d
, #0.0
446 fcmle v3.4h
, v20.4h
, #0
447 fcmle v1.8h
, v8.8h
, #0
448 fcmle v1.4s
, v8.4s
, #0
449 fcmle v3.2s
, v20.2s
, #0
450 fcmle v7.2d
, v13.2d
, #0
452 // CHECK
: fcmle v3.4h
, v20.4h
, #0.0 // encoding: [0x83,0xda,0xf8,0x2e]
453 // CHECK
: fcmle v1.8h
, v8.8h
, #0.0 // encoding: [0x01,0xd9,0xf8,0x6e]
454 // CHECK
: fcmle v1.4s
, v8.4s
, #0.0 // encoding: [0x01,0xd9,0xa0,0x6e]
455 // CHECK
: fcmle v3.2s
, v20.2s
, #0.0 // encoding: [0x83,0xda,0xa0,0x2e]
456 // CHECK
: fcmle v7.2d
, v13.2d
, #0.0 // encoding: [0xa7,0xd9,0xe0,0x6e]
457 // CHECK
: fcmle v3.4h
, v20.4h
, #0.0 // encoding: [0x83,0xda,0xf8,0x2e]
458 // CHECK
: fcmle v1.8h
, v8.8h
, #0.0 // encoding: [0x01,0xd9,0xf8,0x6e]
459 // CHECK
: fcmle v1.4s
, v8.4s
, #0.0 // encoding: [0x01,0xd9,0xa0,0x6e]
460 // CHECK
: fcmle v3.2s
, v20.2s
, #0.0 // encoding: [0x83,0xda,0xa0,0x2e]
461 // CHECK
: fcmle v7.2d
, v13.2d
, #0.0 // encoding: [0xa7,0xd9,0xe0,0x6e]
463 //----------------------------------------------------------------------
464 // Vector Compare Mask Less Than Zero
(Floating Point
)
465 //----------------------------------------------------------------------
466 fcmlt v16.4h
, v2.4h
, #0.0
467 fcmlt v15.8h
, v4.8h
, #0.0
468 fcmlt v16.2s
, v2.2s
, #0.0
469 fcmlt v15.4s
, v4.4s
, #0.0
470 fcmlt v5.2d
, v29.2d
, #0.0
471 fcmlt v16.4h
, v2.4h
, #0
472 fcmlt v15.8h
, v4.8h
, #0
473 fcmlt v16.2s
, v2.2s
, #0
474 fcmlt v15.4s
, v4.4s
, #0
475 fcmlt v5.2d
, v29.2d
, #0
477 // CHECK
: fcmlt v16.4h
, v2.4h
, #0.0 // encoding: [0x50,0xe8,0xf8,0x0e]
478 // CHECK
: fcmlt v15.8h
, v4.8h
, #0.0 // encoding: [0x8f,0xe8,0xf8,0x4e]
479 // CHECK
: fcmlt v16.2s
, v2.2s
, #0.0 // encoding: [0x50,0xe8,0xa0,0x0e]
480 // CHECK
: fcmlt v15.4s
, v4.4s
, #0.0 // encoding: [0x8f,0xe8,0xa0,0x4e]
481 // CHECK
: fcmlt v5.2d
, v29.2d
, #0.0 // encoding: [0xa5,0xeb,0xe0,0x4e]
482 // CHECK
: fcmlt v16.4h
, v2.4h
, #0.0 // encoding: [0x50,0xe8,0xf8,0x0e]
483 // CHECK
: fcmlt v15.8h
, v4.8h
, #0.0 // encoding: [0x8f,0xe8,0xf8,0x4e]
484 // CHECK
: fcmlt v16.2s
, v2.2s
, #0.0 // encoding: [0x50,0xe8,0xa0,0x0e]
485 // CHECK
: fcmlt v15.4s
, v4.4s
, #0.0 // encoding: [0x8f,0xe8,0xa0,0x4e]
486 // CHECK
: fcmlt v5.2d
, v29.2d
, #0.0 // encoding: [0xa5,0xeb,0xe0,0x4e]