1 # RUN: llc -mtriple=aarch64-- -run-pass=legalizer %s \
2 # RUN: -mcpu=cortex-a75 -o - 2>&1 | FileCheck %s --check-prefixes=CHECK
4 # RUN: llc -mtriple=aarch64-- -run-pass=legalizer %s -debug-only=legalizer-info \
5 # RUN: -mcpu=cortex-a75 -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,DEBUG
9 # The main purpose of this test is to make sure we don't over-relax
10 # LegalizerInfo validation and lose its ability to catch bugs.
12 # Watch out for every "SKIPPED: user-defined predicate detected" in the
13 # check-lines below and keep each and every one of them justified.
16 # DEBUG: G_ADD (opcode [[ADD_OPC:[0-9]+]]): 1 type index, 0 imm indices
17 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
18 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
20 # DEBUG-NEXT: G_SUB (opcode [[SUB_OPC:[0-9]+]]): 1 type index, 0 imm indices
21 # DEBUG-NEXT: .. opcode [[SUB_OPC]] is aliased to [[ADD_OPC]]
22 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
23 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
25 # DEBUG-NEXT: G_MUL (opcode {{[0-9]+}}): 1 type index, 0 imm indices
26 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
27 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
28 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
30 # DEBUG-NEXT: G_SDIV (opcode {{[0-9]+}}): 1 type index
31 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
32 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
34 # DEBUG-NEXT: G_UDIV (opcode {{[0-9]+}}): 1 type index, 0 imm indices
35 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
36 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
37 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
39 # DEBUG-NEXT: G_SREM (opcode {{[0-9]+}}): 1 type index, 0 imm indices
40 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
41 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
43 # DEBUG-NEXT: G_UREM (opcode {{[0-9]+}}): 1 type index, 0 imm indices
44 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
45 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
46 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
48 # DEBUG-NEXT: G_AND (opcode {{[0-9]+}}): 1 type index, 0 imm indices
49 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
50 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
51 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
53 # DEBUG-NEXT: G_OR (opcode {{[0-9]+}}): 1 type index, 0 imm indices
54 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
55 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
56 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
58 # DEBUG-NEXT: G_XOR (opcode {{[0-9]+}}): 1 type index, 0 imm indices
59 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
60 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
61 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
63 # DEBUG-NEXT: G_IMPLICIT_DEF (opcode {{[0-9]+}}): 1 type index, 0 imm indices
64 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
65 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
67 # DEBUG-NEXT: G_PHI (opcode {{[0-9]+}}): 1 type index, 0 imm indices
68 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
69 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
71 # DEBUG-NEXT: G_FRAME_INDEX (opcode {{[0-9]+}}): 1 type index, 0 imm indices
72 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
73 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
75 # DEBUG-NEXT: G_GLOBAL_VALUE (opcode {{[0-9]+}}): 1 type index, 0 imm indices
76 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
77 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
79 # DEBUG-NEXT: G_EXTRACT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
80 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
81 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
83 # DEBUG-NEXT: G_UNMERGE_VALUES (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
84 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
85 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
87 # DEBUG-NEXT: G_INSERT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
88 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
89 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
91 # DEBUG-NEXT: G_MERGE_VALUES (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
92 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
93 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
95 # DEBUG-NEXT: G_BUILD_VECTOR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
96 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
97 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
99 # DEBUG-NEXT: G_BUILD_VECTOR_TRUNC (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
100 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
101 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
103 # DEBUG-NEXT: G_CONCAT_VECTORS (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
104 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
105 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
107 # DEBUG-NEXT: G_PTRTOINT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
108 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
109 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
111 # DEBUG-NEXT: G_INTTOPTR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
112 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
113 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
115 # DEBUG-NEXT: G_BITCAST (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
116 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
117 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
119 # DEBUG-NEXT: G_INTRINSIC_TRUNC (opcode {{[0-9]+}}): 1 type index, 0 imm indices
120 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
121 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
122 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
123 # DEBUG-NEXT: G_INTRINSIC_ROUND (opcode {{[0-9]+}}): 1 type index, 0 imm indices
124 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
125 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
126 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
127 # DEBUG-NEXT: G_LOAD (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
128 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
129 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
130 # DEBUG-NEXT: G_SEXTLOAD (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
131 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
132 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
133 # DEBUG-NEXT: G_ZEXTLOAD (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
134 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
135 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
136 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
137 # DEBUG-NEXT: G_INDEXED_LOAD (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
138 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
139 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
140 # DEBUG-NEXT: G_INDEXED_SEXTLOAD (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
141 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
142 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
143 # DEBUG-NEXT: G_INDEXED_ZEXTLOAD (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
144 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
145 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
146 # DEBUG-NEXT: G_STORE (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
147 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
148 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
149 # DEBUG-NEXT: G_INDEXED_STORE (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
150 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
151 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
152 # DEBUG-NEXT: G_ATOMIC_CMPXCHG_WITH_SUCCESS (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
153 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
154 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
155 # DEBUG-NEXT: G_ATOMIC_CMPXCHG (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
156 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
157 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
158 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
159 # DEBUG-NEXT: G_ATOMICRMW_XCHG (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
160 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
161 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
162 # DEBUG-NEXT: G_ATOMICRMW_ADD (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
163 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
164 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
165 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
166 # DEBUG-NEXT: G_ATOMICRMW_SUB (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
167 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
168 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
169 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
170 # DEBUG-NEXT: G_ATOMICRMW_AND (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
171 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
172 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
173 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
174 # DEBUG-NEXT: G_ATOMICRMW_NAND (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
175 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
176 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
177 # DEBUG-NEXT: G_ATOMICRMW_OR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
178 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
179 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
180 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
181 # DEBUG-NEXT: G_ATOMICRMW_XOR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
182 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
183 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
184 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
185 # DEBUG-NEXT: G_ATOMICRMW_MAX (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
186 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
187 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
188 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
189 # DEBUG-NEXT: G_ATOMICRMW_MIN (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
190 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
191 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
192 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
193 # DEBUG-NEXT: G_ATOMICRMW_UMAX (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
194 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
195 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
196 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
197 # DEBUG-NEXT: G_ATOMICRMW_UMIN (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
198 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
199 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
200 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
201 # DEBUG-NEXT: G_ATOMICRMW_FADD (opcode {{[0-9]+}}): 2 type indices
202 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
203 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
204 # DEBUG-NEXT: G_ATOMICRMW_FSUB (opcode {{[0-9]+}}): 2 type indices
205 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
206 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
207 # DEBUG-NEXT: G_FENCE (opcode {{[0-9]+}}): 0 type indices
208 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
209 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
210 # DEBUG-NEXT: G_BRCOND (opcode {{[0-9]+}}): 1 type index, 0 imm indices
211 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
212 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
213 # DEBUG-NEXT: G_BRINDIRECT (opcode {{[0-9]+}}): 1 type index, 0 imm indices
214 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
215 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
216 # DEBUG-NEXT: G_INTRINSIC (opcode {{[0-9]+}}): 0 type indices, 0 imm indices
217 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
218 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
219 # DEBUG-NEXT: G_INTRINSIC_W_SIDE_EFFECTS (opcode {{[0-9]+}}): 0 type indices, 0 imm indices
220 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
221 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
222 # DEBUG-NEXT: G_ANYEXT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
223 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
224 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
225 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
226 # DEBUG-NEXT: G_TRUNC (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
227 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
228 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
229 # DEBUG-NEXT: G_CONSTANT (opcode {{[0-9]+}}): 1 type index, 0 imm indices
230 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
231 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
232 # DEBUG-NEXT: G_FCONSTANT (opcode {{[0-9]+}}): 1 type index, 0 imm indices
233 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
234 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
235 # DEBUG-NEXT: G_VASTART (opcode {{[0-9]+}}): 1 type index, 0 imm indices
236 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
237 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
238 # DEBUG-NEXT: G_VAARG (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
239 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
240 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
241 # DEBUG-NEXT: G_SEXT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
242 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
243 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
244 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
245 # DEBUG-NEXT: G_SEXT_INREG (opcode {{[0-9]+}}): 1 type index, 1 imm index
246 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
247 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
248 # DEBUG-NEXT: G_ZEXT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
249 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
250 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
251 # DEBUG-NEXT: G_SHL (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
252 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
253 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
254 # DEBUG-NEXT: G_LSHR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
255 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
256 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
257 # DEBUG-NEXT: G_ASHR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
258 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
259 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
260 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
261 # DEBUG-NEXT: G_ICMP (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
262 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
263 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
264 # DEBUG-NEXT: G_FCMP (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
265 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
266 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
267 # DEBUG-NEXT: G_SELECT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
268 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
269 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
270 # DEBUG-NEXT: G_UADDO (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
271 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
272 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
273 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
274 # DEBUG-NEXT: G_UADDE (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
275 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
276 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
277 # DEBUG-NEXT: G_USUBO (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
278 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
279 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
280 # DEBUG-NEXT: G_USUBE (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
281 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
282 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
283 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
284 # DEBUG-NEXT: G_SADDO (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
285 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
286 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
287 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
288 # DEBUG-NEXT: G_SADDE (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
289 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
290 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
291 # DEBUG-NEXT: G_SSUBO (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
292 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
293 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
294 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
295 # DEBUG-NEXT: G_SSUBE (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
296 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
297 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
298 # DEBUG-NEXT: G_UMULO (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
299 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
300 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
301 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
302 # DEBUG-NEXT: G_SMULO (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
303 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
304 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
305 # DEBUG-NEXT: G_UMULH (opcode {{[0-9]+}}): 1 type index, 0 imm indices
306 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
307 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
308 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
309 # DEBUG-NEXT: G_SMULH (opcode {{[0-9]+}}): 1 type index, 0 imm indices
310 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
311 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
312 # DEBUG-NEXT: G_FADD (opcode {{[0-9]+}}): 1 type index, 0 imm indices
313 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
314 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
315 # DEBUG-NEXT: G_FSUB (opcode {{[0-9]+}}): 1 type index, 0 imm indices
316 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
317 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
318 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
319 # DEBUG-NEXT: G_FMUL (opcode {{[0-9]+}}): 1 type index, 0 imm indices
320 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
321 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
322 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
323 # DEBUG-NEXT: G_FMA (opcode {{[0-9]+}}): 1 type index, 0 imm indices
324 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
325 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
326 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
327 # DEBUG-NEXT: G_FMAD (opcode {{[0-9]+}}): 1 type index, 0 imm indices
328 # DEBUG-NEXT:.. type index coverage check SKIPPED: no rules defined
329 # DEBUG-NEXT:.. imm index coverage check SKIPPED: no rules defined
330 # DEBUG-NEXT: G_FDIV (opcode {{[0-9]+}}): 1 type index, 0 imm indices
331 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
332 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
333 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
334 # DEBUG-NEXT: G_FREM (opcode {{[0-9]+}}): 1 type index, 0 imm indices
335 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
336 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
337 # DEBUG-NEXT: G_FPOW (opcode {{[0-9]+}}): 1 type index, 0 imm indices
338 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
339 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
340 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
341 # DEBUG-NEXT: G_FEXP (opcode {{[0-9]+}}): 1 type index, 0 imm indices
342 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
343 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
344 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
345 # DEBUG-NEXT: G_FEXP2 (opcode {{[0-9]+}}): 1 type index, 0 imm indices
346 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
347 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
348 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
349 # DEBUG-NEXT: G_FLOG (opcode {{[0-9]+}}): 1 type index, 0 imm indices
350 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
351 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
352 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
353 # DEBUG-NEXT: G_FLOG2 (opcode {{[0-9]+}}): 1 type index, 0 imm indices
354 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
355 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
356 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
357 # DEBUG-NEXT: G_FLOG10 (opcode {{[0-9]+}}): 1 type index, 0 imm indices
358 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
359 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
360 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
361 # DEBUG-NEXT: G_FNEG (opcode {{[0-9]+}}): 1 type index, 0 imm indices
362 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
363 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
364 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
365 # DEBUG-NEXT: G_FPEXT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
366 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
367 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
368 # DEBUG-NEXT: G_FPTRUNC (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
369 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
370 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
371 # DEBUG-NEXT: G_FPTOSI (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
372 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
373 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
374 # DEBUG-NEXT: G_FPTOUI (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
375 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
376 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
377 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
378 # DEBUG-NEXT: G_SITOFP (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
379 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
380 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
381 # DEBUG-NEXT: G_UITOFP (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
382 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
383 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
384 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
385 # DEBUG-NEXT: G_FABS (opcode {{[0-9]+}}): 1 type index, 0 imm indices
386 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
387 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
388 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
389 # DEBUG-NEXT: G_FCOPYSIGN (opcode {{[0-9]+}}): 2 type indices
390 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
391 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
392 # DEBUG-NEXT: G_FCANONICALIZE (opcode {{[0-9]+}}): 1 type index, 0 imm indices
393 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
394 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
395 # DEBUG-NEXT: G_FMINNUM (opcode {{[0-9]+}}): 1 type index
396 # DEBUG: .. type index coverage check SKIPPED: no rules defined
397 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
398 # DEBUG-NEXT: G_FMAXNUM (opcode {{[0-9]+}}): 1 type index
399 # DEBUG: .. type index coverage check SKIPPED: no rules defined
400 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
401 # DEBUG-NEXT: G_FMINNUM_IEEE (opcode {{[0-9]+}}): 1 type index
402 # DEBUG: .. type index coverage check SKIPPED: no rules defined
403 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
404 # DEBUG-NEXT: G_FMAXNUM_IEEE (opcode {{[0-9]+}}): 1 type index
405 # DEBUG: .. type index coverage check SKIPPED: no rules defined
406 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
407 # DEBUG-NEXT: G_FMINIMUM (opcode {{[0-9]+}}): 1 type index
408 # DEBUG: .. type index coverage check SKIPPED: no rules defined
409 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
410 # DEBUG-NEXT: G_FMAXIMUM (opcode {{[0-9]+}}): 1 type index
411 # DEBUG: .. type index coverage check SKIPPED: no rules defined
412 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
413 # DEBUG-NEXT: G_GEP (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
414 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
415 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
416 # DEBUG-NEXT: G_PTR_MASK (opcode {{[0-9]+}}): 1 type index, 0 imm indices
417 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
418 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
419 # DEBUG: G_SMIN (opcode {{[0-9]+}}): 1 type index
420 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
421 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
422 # DEBUG: G_SMAX (opcode {{[0-9]+}}): 1 type index
423 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
424 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
425 # DEBUG: G_UMIN (opcode {{[0-9]+}}): 1 type index
426 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
427 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
428 # DEBUG: G_UMAX (opcode {{[0-9]+}}): 1 type index
429 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
430 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
431 # DEBUG-NEXT: G_BR (opcode {{[0-9]+}}): 0 type indices, 0 imm indices
432 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
433 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
434 # DEBUG-NEXT: G_BRJT (opcode {{[0-9]+}}): 2 type indices
435 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
436 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
437 # DEBUG-NEXT: G_INSERT_VECTOR_ELT (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
438 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
439 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
440 # DEBUG-NEXT: G_EXTRACT_VECTOR_ELT (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
441 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
442 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
443 # DEBUG-NEXT: G_SHUFFLE_VECTOR (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
444 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
445 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
446 # DEBUG-NEXT: G_CTTZ (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
447 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
448 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
449 # DEBUG-NEXT: G_CTTZ_ZERO_UNDEF (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
450 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
451 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
452 # DEBUG-NEXT: G_CTLZ (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
453 # DEBUG-NEXT: .. the first uncovered type index: 2, OK
454 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
455 # DEBUG-NEXT: G_CTLZ_ZERO_UNDEF (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
456 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
457 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
458 # DEBUG-NEXT: G_CTPOP (opcode {{[0-9]+}}): 2 type indices, 0 imm indices
459 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
460 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
461 # DEBUG-NEXT: G_BSWAP (opcode {{[0-9]+}}): 1 type index, 0 imm indices
462 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
463 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
464 # DEBUG-NEXT: G_BITREVERSE (opcode {{[0-9]+}}): 1 type index, 0 imm indices
465 # DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
466 # DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
467 # DEBUG-NEXT: G_FCEIL (opcode {{[0-9]+}}): 1 type index, 0 imm indices
468 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
469 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
470 # DEBUG-NEXT: G_FCOS (opcode {{[0-9]+}}): 1 type index, 0 imm indices
471 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
472 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
473 # DEBUG-NEXT: G_FSIN (opcode {{[0-9]+}}): 1 type index, 0 imm indices
474 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
475 # DEBUG-NEXT: .. the first uncovered type index: 1, OK
476 # DEBUG-NEXT: .. the first uncovered imm index: 0, OK
477 # DEBUG-NEXT: G_FSQRT (opcode {{[0-9]+}}): 1 type index, 0 imm indices
478 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
479 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
480 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
481 # DEBUG-NEXT: G_FFLOOR (opcode {{[0-9]+}}): 1 type index, 0 imm indices
482 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
483 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
484 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
485 # DEBUG-NEXT: G_FRINT (opcode {{[0-9]+}}): 1 type index, 0 imm indices
486 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
487 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
488 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
489 # DEBUG-NEXT: G_FNEARBYINT (opcode {{[0-9]+}}): 1 type index, 0 imm indices
490 # DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}}
491 # DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
492 # DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
494 # CHECK-NOT: ill-defined