llvm.org GIT mirror llvm / de22782
[Improve CodeGen Testing] This patch renables MIRPrinter print fields which have value equal to its default. If -simplify-mir option is passed then MIRPrinter will not print such fields. This change also required some lit test cases in CodeGen directory to be changed. Reviewed By: MatzeB Differential Revision: https://reviews.llvm.org/D32304 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304779 91177308-0d34-0410-b5e6-96231b3b80d8 Vivek Pandya 2 years ago
78 changed file(s) with 1548 addition(s) and 1470 deletion(s). Raw diff Collapse all Expand all
7171
7272 struct BlockStringValue {
7373 StringValue Value;
74 bool operator==(const BlockStringValue &Other) const {
75 return Value == Other.Value;
76 }
7477 };
7578
7679 template <> struct BlockScalarTraits {
145148 StringValue Class;
146149 StringValue PreferredRegister;
147150 // TODO: Serialize the target specific register hints.
151 bool operator==(const VirtualRegisterDefinition &Other) const {
152 return ID == Other.ID && Class == Other.Class &&
153 PreferredRegister == Other.PreferredRegister;
154 }
148155 };
149156
150157 template <> struct MappingTraits {
161168 struct MachineFunctionLiveIn {
162169 StringValue Register;
163170 StringValue VirtualRegister;
171 bool operator==(const MachineFunctionLiveIn &Other) const {
172 return Register == Other.Register &&
173 VirtualRegister == Other.VirtualRegister;
174 }
164175 };
165176
166177 template <> struct MappingTraits {
195206 StringValue DebugVar;
196207 StringValue DebugExpr;
197208 StringValue DebugLoc;
209 bool operator==(const MachineStackObject &Other) const {
210 return ID == Other.ID && Name == Other.Name && Type == Other.Type &&
211 Offset == Other.Offset && Size == Other.Size &&
212 Alignment == Other.Alignment &&
213 CalleeSavedRegister == Other.CalleeSavedRegister &&
214 LocalOffset == Other.LocalOffset && DebugVar == Other.DebugVar &&
215 DebugExpr == Other.DebugExpr && DebugLoc == Other.DebugLoc;
216 }
198217 };
199218
200219 template <> struct ScalarEnumerationTraits {
213232 YamlIO.mapOptional(
214233 "type", Object.Type,
215234 MachineStackObject::DefaultType); // Don't print the default type.
216 YamlIO.mapOptional("offset", Object.Offset);
235 YamlIO.mapOptional("offset", Object.Offset, (int64_t)0);
217236 if (Object.Type != MachineStackObject::VariableSized)
218237 YamlIO.mapRequired("size", Object.Size);
219 YamlIO.mapOptional("alignment", Object.Alignment);
238 YamlIO.mapOptional("alignment", Object.Alignment, (unsigned)0);
220239 YamlIO.mapOptional("callee-saved-register", Object.CalleeSavedRegister,
221240 StringValue()); // Don't print it out when it's empty.
222 YamlIO.mapOptional("local-offset", Object.LocalOffset);
241 YamlIO.mapOptional("local-offset", Object.LocalOffset, Optional());
223242 YamlIO.mapOptional("di-variable", Object.DebugVar,
224243 StringValue()); // Don't print it out when it's empty.
225244 YamlIO.mapOptional("di-expression", Object.DebugExpr,
243262 bool IsImmutable = false;
244263 bool IsAliased = false;
245264 StringValue CalleeSavedRegister;
265 bool operator==(const FixedMachineStackObject &Other) const {
266 return ID == Other.ID && Type == Other.Type && Offset == Other.Offset &&
267 Size == Other.Size && Alignment == Other.Alignment &&
268 IsImmutable == Other.IsImmutable && IsAliased == Other.IsAliased &&
269 CalleeSavedRegister == Other.CalleeSavedRegister;
270 }
246271 };
247272
248273 template <>
260285 YamlIO.mapOptional(
261286 "type", Object.Type,
262287 FixedMachineStackObject::DefaultType); // Don't print the default type.
263 YamlIO.mapOptional("offset", Object.Offset);
264 YamlIO.mapOptional("size", Object.Size);
265 YamlIO.mapOptional("alignment", Object.Alignment);
288 YamlIO.mapOptional("offset", Object.Offset, (int64_t)0);
289 YamlIO.mapOptional("size", Object.Size, (uint64_t)0);
290 YamlIO.mapOptional("alignment", Object.Alignment, (unsigned)0);
266291 if (Object.Type != FixedMachineStackObject::SpillSlot) {
267 YamlIO.mapOptional("isImmutable", Object.IsImmutable);
268 YamlIO.mapOptional("isAliased", Object.IsAliased);
292 YamlIO.mapOptional("isImmutable", Object.IsImmutable, false);
293 YamlIO.mapOptional("isAliased", Object.IsAliased, false);
269294 }
270295 YamlIO.mapOptional("callee-saved-register", Object.CalleeSavedRegister,
271296 StringValue()); // Don't print it out when it's empty.
278303 UnsignedValue ID;
279304 StringValue Value;
280305 unsigned Alignment = 0;
306 bool operator==(const MachineConstantPoolValue &Other) const {
307 return ID == Other.ID && Value == Other.Value &&
308 Alignment == Other.Alignment;
309 }
281310 };
282311
283312 template <> struct MappingTraits {
284313 static void mapping(IO &YamlIO, MachineConstantPoolValue &Constant) {
285314 YamlIO.mapRequired("id", Constant.ID);
286 YamlIO.mapOptional("value", Constant.Value);
287 YamlIO.mapOptional("alignment", Constant.Alignment);
315 YamlIO.mapOptional("value", Constant.Value, StringValue());
316 YamlIO.mapOptional("alignment", Constant.Alignment, (unsigned)0);
288317 }
289318 };
290319
292321 struct Entry {
293322 UnsignedValue ID;
294323 std::vector Blocks;
324 bool operator==(const Entry &Other) const {
325 return ID == Other.ID && Blocks == Other.Blocks;
326 }
295327 };
296328
297329 MachineJumpTableInfo::JTEntryKind Kind = MachineJumpTableInfo::EK_Custom32;
298330 std::vector Entries;
331 bool operator==(const MachineJumpTable &Other) const {
332 return Kind == Other.Kind && Entries == Other.Entries;
333 }
299334 };
300335
301336 template <> struct MappingTraits {
302337 static void mapping(IO &YamlIO, MachineJumpTable::Entry &Entry) {
303338 YamlIO.mapRequired("id", Entry.ID);
304 YamlIO.mapOptional("blocks", Entry.Blocks);
339 YamlIO.mapOptional("blocks", Entry.Blocks, std::vector());
305340 }
306341 };
307342
321356 template <> struct MappingTraits {
322357 static void mapping(IO &YamlIO, MachineJumpTable &JT) {
323358 YamlIO.mapRequired("kind", JT.Kind);
324 YamlIO.mapOptional("entries", JT.Entries);
359 YamlIO.mapOptional("entries", JT.Entries,
360 std::vector());
325361 }
326362 };
327363
350386 bool HasMustTailInVarArgFunc = false;
351387 StringValue SavePoint;
352388 StringValue RestorePoint;
389 bool operator==(const MachineFrameInfo &Other) const {
390 return IsFrameAddressTaken == Other.IsFrameAddressTaken &&
391 IsReturnAddressTaken == Other.IsReturnAddressTaken &&
392 HasStackMap == Other.HasStackMap &&
393 HasPatchPoint == Other.HasPatchPoint &&
394 StackSize == Other.StackSize &&
395 OffsetAdjustment == Other.OffsetAdjustment &&
396 MaxAlignment == Other.MaxAlignment &&
397 AdjustsStack == Other.AdjustsStack && HasCalls == Other.HasCalls &&
398 StackProtector == Other.StackProtector &&
399 MaxCallFrameSize == Other.MaxCallFrameSize &&
400 HasOpaqueSPAdjustment == Other.HasOpaqueSPAdjustment &&
401 HasVAStart == Other.HasVAStart &&
402 HasMustTailInVarArgFunc == Other.HasMustTailInVarArgFunc &&
403 SavePoint == Other.SavePoint && RestorePoint == Other.RestorePoint;
404 }
353405 };
354406
355407 template <> struct MappingTraits {
356408 static void mapping(IO &YamlIO, MachineFrameInfo &MFI) {
357 YamlIO.mapOptional("isFrameAddressTaken", MFI.IsFrameAddressTaken);
358 YamlIO.mapOptional("isReturnAddressTaken", MFI.IsReturnAddressTaken);
359 YamlIO.mapOptional("hasStackMap", MFI.HasStackMap);
360 YamlIO.mapOptional("hasPatchPoint", MFI.HasPatchPoint);
361 YamlIO.mapOptional("stackSize", MFI.StackSize);
362 YamlIO.mapOptional("offsetAdjustment", MFI.OffsetAdjustment);
363 YamlIO.mapOptional("maxAlignment", MFI.MaxAlignment);
364 YamlIO.mapOptional("adjustsStack", MFI.AdjustsStack);
365 YamlIO.mapOptional("hasCalls", MFI.HasCalls);
409 YamlIO.mapOptional("isFrameAddressTaken", MFI.IsFrameAddressTaken, false);
410 YamlIO.mapOptional("isReturnAddressTaken", MFI.IsReturnAddressTaken, false);
411 YamlIO.mapOptional("hasStackMap", MFI.HasStackMap, false);
412 YamlIO.mapOptional("hasPatchPoint", MFI.HasPatchPoint, false);
413 YamlIO.mapOptional("stackSize", MFI.StackSize, (uint64_t)0);
414 YamlIO.mapOptional("offsetAdjustment", MFI.OffsetAdjustment, (int)0);
415 YamlIO.mapOptional("maxAlignment", MFI.MaxAlignment, (unsigned)0);
416 YamlIO.mapOptional("adjustsStack", MFI.AdjustsStack, false);
417 YamlIO.mapOptional("hasCalls", MFI.HasCalls, false);
366418 YamlIO.mapOptional("stackProtector", MFI.StackProtector,
367419 StringValue()); // Don't print it out when it's empty.
368 YamlIO.mapOptional("maxCallFrameSize", MFI.MaxCallFrameSize, ~0u);
369 YamlIO.mapOptional("hasOpaqueSPAdjustment", MFI.HasOpaqueSPAdjustment);
370 YamlIO.mapOptional("hasVAStart", MFI.HasVAStart);
371 YamlIO.mapOptional("hasMustTailInVarArgFunc", MFI.HasMustTailInVarArgFunc);
420 YamlIO.mapOptional("maxCallFrameSize", MFI.MaxCallFrameSize, (unsigned)~0);
421 YamlIO.mapOptional("hasOpaqueSPAdjustment", MFI.HasOpaqueSPAdjustment,
422 false);
423 YamlIO.mapOptional("hasVAStart", MFI.HasVAStart, false);
424 YamlIO.mapOptional("hasMustTailInVarArgFunc", MFI.HasMustTailInVarArgFunc,
425 false);
372426 YamlIO.mapOptional("savePoint", MFI.SavePoint,
373427 StringValue()); // Don't print it out when it's empty.
374428 YamlIO.mapOptional("restorePoint", MFI.RestorePoint,
402456 template <> struct MappingTraits {
403457 static void mapping(IO &YamlIO, MachineFunction &MF) {
404458 YamlIO.mapRequired("name", MF.Name);
405 YamlIO.mapOptional("alignment", MF.Alignment);
406 YamlIO.mapOptional("exposesReturnsTwice", MF.ExposesReturnsTwice);
407 YamlIO.mapOptional("legalized", MF.Legalized);
408 YamlIO.mapOptional("regBankSelected", MF.RegBankSelected);
409 YamlIO.mapOptional("selected", MF.Selected);
410 YamlIO.mapOptional("tracksRegLiveness", MF.TracksRegLiveness);
411 YamlIO.mapOptional("registers", MF.VirtualRegisters);
412 YamlIO.mapOptional("liveins", MF.LiveIns);
413 YamlIO.mapOptional("calleeSavedRegisters", MF.CalleeSavedRegisters);
414 YamlIO.mapOptional("frameInfo", MF.FrameInfo);
415 YamlIO.mapOptional("fixedStack", MF.FixedStackObjects);
416 YamlIO.mapOptional("stack", MF.StackObjects);
417 YamlIO.mapOptional("constants", MF.Constants);
459 YamlIO.mapOptional("alignment", MF.Alignment, (unsigned)0);
460 YamlIO.mapOptional("exposesReturnsTwice", MF.ExposesReturnsTwice, false);
461 YamlIO.mapOptional("legalized", MF.Legalized, false);
462 YamlIO.mapOptional("regBankSelected", MF.RegBankSelected, false);
463 YamlIO.mapOptional("selected", MF.Selected, false);
464 YamlIO.mapOptional("tracksRegLiveness", MF.TracksRegLiveness, false);
465 YamlIO.mapOptional("registers", MF.VirtualRegisters,
466 std::vector());
467 YamlIO.mapOptional("liveins", MF.LiveIns,
468 std::vector());
469 YamlIO.mapOptional("calleeSavedRegisters", MF.CalleeSavedRegisters,
470 Optional>());
471 YamlIO.mapOptional("frameInfo", MF.FrameInfo, MachineFrameInfo());
472 YamlIO.mapOptional("fixedStack", MF.FixedStackObjects,
473 std::vector());
474 YamlIO.mapOptional("stack", MF.StackObjects,
475 std::vector());
476 YamlIO.mapOptional("constants", MF.Constants,
477 std::vector());
418478 if (!YamlIO.outputting() || !MF.JumpTableInfo.Entries.empty())
419 YamlIO.mapOptional("jumpTable", MF.JumpTableInfo);
420 YamlIO.mapOptional("body", MF.Body);
479 YamlIO.mapOptional("jumpTable", MF.JumpTableInfo, MachineJumpTable());
480 YamlIO.mapOptional("body", MF.Body, BlockStringValue());
421481 }
422482 };
423483
209209 }
210210 StrOS.flush();
211211 yaml::Output Out(OS);
212 if (!SimplifyMIR)
213 Out.setWriteDefaultValues(true);
212214 Out << YamlMF;
213215 }
214216
33 ; CHECK: name: test_stack_guard
44
55 ; CHECK: stack:
6 ; CHECK: - { id: 0, name: StackGuardSlot, offset: 0, size: 8, alignment: 8 }
6 ; CHECK: - { id: 0, name: StackGuardSlot, type: default, offset: 0, size: 8, alignment: 8,
77 ; CHECK-NOT: id: 1
88
99 ; CHECK: [[GUARD_SLOT:%[0-9]+]](p0) = G_FRAME_INDEX %stack.0.StackGuardSlot
3030 ; Tests for alloca
3131 ; CHECK-LABEL: name: allocai64
3232 ; CHECK: stack:
33 ; CHECK-NEXT: - { id: 0, name: ptr1, offset: 0, size: 8, alignment: 8 }
34 ; CHECK-NEXT: - { id: 1, name: ptr2, offset: 0, size: 8, alignment: 1 }
35 ; CHECK-NEXT: - { id: 2, name: ptr3, offset: 0, size: 128, alignment: 8 }
36 ; CHECK-NEXT: - { id: 3, name: ptr4, offset: 0, size: 1, alignment: 8 }
33 ; CHECK-NEXT: - { id: 0, name: ptr1, type: default, offset: 0, size: 8, alignment: 8,
34 ; CHECK-NEXT: callee-saved-register: '', di-variable: '', di-expression: '', di-location: '' }
35 ; CHECK-NEXT: - { id: 1, name: ptr2, type: default, offset: 0, size: 8, alignment: 1,
36 ; CHECK-NEXT: callee-saved-register: '', di-variable: '', di-expression: '', di-location: '' }
37 ; CHECK-NEXT: - { id: 2, name: ptr3, type: default, offset: 0, size: 128, alignment: 8,
38 ; CHECK-NEXT: callee-saved-register: '', di-variable: '', di-expression: '', di-location: '' }
39 ; CHECK-NEXT: - { id: 3, name: ptr4, type: default, offset: 0, size: 1, alignment: 8,
3740 ; CHECK: %{{[0-9]+}}(p0) = G_FRAME_INDEX %stack.0.ptr1
3841 ; CHECK: %{{[0-9]+}}(p0) = G_FRAME_INDEX %stack.1.ptr2
3942 ; CHECK: %{{[0-9]+}}(p0) = G_FRAME_INDEX %stack.2.ptr3
9797 legalized: true
9898 # CHECK-LABEL: name: defaultMapping
9999 # CHECK: registers:
100 # CHECK: - { id: 0, class: gpr }
101 # CHECK: - { id: 1, class: gpr }
100 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
101 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
102102 registers:
103103 - { id: 0, class: _ }
104104 - { id: 1, class: _ }
118118 legalized: true
119119 # CHECK-LABEL: name: defaultMappingVector
120120 # CHECK: registers:
121 # CHECK: - { id: 0, class: fpr }
122 # CHECK: - { id: 1, class: fpr }
121 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
122 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
123123 registers:
124124 - { id: 0, class: _ }
125125 - { id: 1, class: _ }
140140 legalized: true
141141 # CHECK-LABEL: name: defaultMapping1Repair
142142 # CHECK: registers:
143 # CHECK-NEXT: - { id: 0, class: fpr }
144 # CHECK-NEXT: - { id: 1, class: gpr }
145 # CHECK-NEXT: - { id: 2, class: gpr }
146 # CHECK-NEXT: - { id: 3, class: gpr }
143 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
144 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
145 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
146 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
147147 registers:
148148 - { id: 0, class: _ }
149149 - { id: 1, class: _ }
165165 legalized: true
166166 # CHECK-LABEL: name: defaultMapping2Repairs
167167 # CHECK: registers:
168 # CHECK-NEXT: - { id: 0, class: fpr }
169 # CHECK-NEXT: - { id: 1, class: gpr }
170 # CHECK-NEXT: - { id: 2, class: gpr }
171 # CHECK-NEXT: - { id: 3, class: gpr }
168 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
169 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
170 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
171 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
172172 registers:
173173 - { id: 0, class: _ }
174174 - { id: 1, class: _ }
192192 legalized: true
193193 # CHECK-LABEL: name: defaultMappingDefRepair
194194 # CHECK: registers:
195 # CHECK-NEXT: - { id: 0, class: gpr }
196 # CHECK-NEXT: - { id: 1, class: fpr }
197 # CHECK-NEXT: - { id: 2, class: gpr }
195 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
196 # CHECK-NEXT: - { id: 1, class: fpr, preferred-register: '' }
197 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
198198 registers:
199199 - { id: 0, class: _ }
200200 - { id: 1, class: fpr }
214214 legalized: true
215215 tracksRegLiveness: true
216216 # CHECK: registers:
217 # CHECK-NEXT: - { id: 0, class: gpr32 }
218 # CHECK-NEXT: - { id: 1, class: gpr64sp }
219 # CHECK-NEXT: - { id: 2, class: gpr32 }
220 # CHECK-NEXT: - { id: 3, class: gpr }
221 # CHECK-NEXT: - { id: 4, class: gpr }
217 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
218 # CHECK-NEXT: - { id: 1, class: gpr64sp, preferred-register: '' }
219 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
220 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
221 # CHECK-NEXT: - { id: 4, class: gpr, preferred-register: '' }
222222 registers:
223223 - { id: 0, class: gpr32 }
224224 - { id: 1, class: gpr64sp }
253253 legalized: true
254254 # CHECK-LABEL: name: defaultMappingUseRepairPhysReg
255255 # CHECK: registers:
256 # CHECK-NEXT: - { id: 0, class: gpr }
257 # CHECK-NEXT: - { id: 1, class: fpr }
258 # CHECK-NEXT: - { id: 2, class: gpr }
259 # CHECK-NEXT: - { id: 3, class: gpr }
256 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
257 # CHECK-NEXT: - { id: 1, class: fpr, preferred-register: '' }
258 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
259 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
260260 registers:
261261 - { id: 0, class: _ }
262262 - { id: 1, class: _ }
279279 legalized: true
280280 # CHECK-LABEL: name: defaultMappingDefRepairPhysReg
281281 # CHECK: registers:
282 # CHECK-NEXT: - { id: 0, class: gpr }
283 # CHECK-NEXT: - { id: 1, class: gpr }
282 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
283 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
284284 registers:
285285 - { id: 0, class: _ }
286286 - { id: 1, class: _ }
302302 legalized: true
303303 # CHECK-LABEL: name: greedyMappingOr
304304 # CHECK: registers:
305 # CHECK-NEXT: - { id: 0, class: gpr }
306 # CHECK-NEXT: - { id: 1, class: gpr }
305 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
306 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
307307
308308 # Fast mode maps vector instruction on FPR.
309 # FAST-NEXT: - { id: 2, class: fpr }
309 # FAST-NEXT: - { id: 2, class: fpr, preferred-register: '' }
310310 # Fast mode needs two extra copies.
311 # FAST-NEXT: - { id: 3, class: fpr }
312 # FAST-NEXT: - { id: 4, class: fpr }
311 # FAST-NEXT: - { id: 3, class: fpr, preferred-register: '' }
312 # FAST-NEXT: - { id: 4, class: fpr, preferred-register: '' }
313313
314314 # Greedy mode coalesce the computation on the GPR register
315315 # because it is the cheapest.
316 # GREEDY-NEXT: - { id: 2, class: gpr }
316 # GREEDY-NEXT: - { id: 2, class: gpr, preferred-register: '' }
317317
318318 registers:
319319 - { id: 0, class: _ }
349349 legalized: true
350350 # CHECK-LABEL: name: greedyMappingOrWithConstraints
351351 # CHECK: registers:
352 # CHECK-NEXT: - { id: 0, class: gpr }
353 # CHECK-NEXT: - { id: 1, class: gpr }
354 # CHECK-NEXT: - { id: 2, class: fpr }
352 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
353 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
354 # CHECK-NEXT: - { id: 2, class: fpr, preferred-register: '' }
355355
356356 # Fast mode maps vector instruction on FPR.
357357 # Fast mode needs two extra copies.
358 # FAST-NEXT: - { id: 3, class: fpr }
359 # FAST-NEXT: - { id: 4, class: fpr }
358 # FAST-NEXT: - { id: 3, class: fpr, preferred-register: '' }
359 # FAST-NEXT: - { id: 4, class: fpr, preferred-register: '' }
360360
361361 # Greedy mode coalesce the computation on the GPR register because it
362362 # is the cheapest, but will need one extra copy to materialize %2 into a FPR.
363 # GREEDY-NEXT: - { id: 3, class: gpr }
363 # GREEDY-NEXT: - { id: 3, class: gpr, preferred-register: '' }
364364
365365 registers:
366366 - { id: 0, class: _ }
395395 name: ignoreTargetSpecificInst
396396 legalized: true
397397 # CHECK: registers:
398 # CHECK-NEXT: - { id: 0, class: gpr64 }
399 # CHECK-NEXT: - { id: 1, class: gpr64 }
398 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
399 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
400400 registers:
401401 - { id: 0, class: gpr64 }
402402 - { id: 1, class: gpr64 }
433433 legalized: true
434434
435435 # CHECK: registers:
436 # CHECK-NEXT: - { id: 0, class: gpr }
437 # CHECK-NEXT: - { id: 1, class: gpr }
436 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
437 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
438438 registers:
439439 - { id: 0, class: _ }
440440 - { id: 1, class: _ }
456456 legalized: true
457457
458458 # CHECK: registers:
459 # CHECK-NEXT: - { id: 0, class: fpr }
460 # CHECK-NEXT: - { id: 1, class: fpr }
459 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
460 # CHECK-NEXT: - { id: 1, class: fpr, preferred-register: '' }
461461 registers:
462462 - { id: 0, class: _ }
463463 - { id: 1, class: _ }
479479 legalized: true
480480
481481 # CHECK: registers:
482 # CHECK-NEXT: - { id: 0, class: gpr }
483 # FAST-NEXT: - { id: 1, class: fpr }
484 # GREEDY-NEXT: - { id: 1, class: gpr }
482 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
483 # FAST-NEXT: - { id: 1, class: fpr, preferred-register: '' }
484 # GREEDY-NEXT: - { id: 1, class: gpr, preferred-register: '' }
485485 registers:
486486 - { id: 0, class: _ }
487487 - { id: 1, class: _ }
503503 legalized: true
504504
505505 # CHECK: registers:
506 # CHECK-NEXT: - { id: 0, class: fpr }
507 # FAST-NEXT: - { id: 1, class: gpr }
508 # GREEDY-NEXT: - { id: 1, class: fpr }
506 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
507 # FAST-NEXT: - { id: 1, class: gpr, preferred-register: '' }
508 # GREEDY-NEXT: - { id: 1, class: fpr, preferred-register: '' }
509509 registers:
510510 - { id: 0, class: _ }
511511 - { id: 1, class: _ }
527527 legalized: true
528528
529529 # CHECK: registers:
530 # CHECK-NEXT: - { id: 0, class: gpr }
531 # CHECK-NEXT: - { id: 1, class: gpr }
530 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
531 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
532532 registers:
533533 - { id: 0, class: _ }
534534 - { id: 1, class: _ }
550550 legalized: true
551551
552552 # CHECK: registers:
553 # CHECK-NEXT: - { id: 0, class: fpr }
554 # CHECK-NEXT: - { id: 1, class: fpr }
553 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
554 # CHECK-NEXT: - { id: 1, class: fpr, preferred-register: '' }
555555 registers:
556556 - { id: 0, class: _ }
557557 - { id: 1, class: _ }
573573 legalized: true
574574
575575 # CHECK: registers:
576 # CHECK-NEXT: - { id: 0, class: gpr }
577 # FAST-NEXT: - { id: 1, class: fpr }
578 # GREEDY-NEXT: - { id: 1, class: gpr }
576 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
577 # FAST-NEXT: - { id: 1, class: fpr, preferred-register: '' }
578 # GREEDY-NEXT: - { id: 1, class: gpr, preferred-register: '' }
579579 registers:
580580 - { id: 0, class: _ }
581581 - { id: 1, class: _ }
596596 legalized: true
597597
598598 # CHECK: registers:
599 # CHECK-NEXT: - { id: 0, class: fpr }
600 # FAST-NEXT: - { id: 1, class: gpr }
601 # GREEDY-NEXT: - { id: 1, class: fpr }
599 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
600 # FAST-NEXT: - { id: 1, class: gpr, preferred-register: '' }
601 # GREEDY-NEXT: - { id: 1, class: fpr, preferred-register: '' }
602602 registers:
603603 - { id: 0, class: _ }
604604 - { id: 1, class: _ }
623623 legalized: true
624624
625625 # CHECK: registers:
626 # CHECK-NEXT: - { id: 0, class: gpr }
627 # CHECK-NEXT: - { id: 1, class: gpr }
628 # FAST-NEXT: - { id: 2, class: fpr }
629 # FAST-NEXT: - { id: 3, class: fpr }
630 # FAST-NEXT: - { id: 4, class: fpr }
631 # GREEDY-NEXT: - { id: 2, class: gpr }
632 # GREEDY-NEXT: - { id: 3, class: gpr }
633 # GREEDY-NEXT: - { id: 4, class: gpr }
634 # CHECK-NEXT: - { id: 5, class: gpr }
626 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
627 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
628 # FAST-NEXT: - { id: 2, class: fpr, preferred-register: '' }
629 # FAST-NEXT: - { id: 3, class: fpr, preferred-register: '' }
630 # FAST-NEXT: - { id: 4, class: fpr, preferred-register: '' }
631 # GREEDY-NEXT: - { id: 2, class: gpr, preferred-register: '' }
632 # GREEDY-NEXT: - { id: 3, class: gpr, preferred-register: '' }
633 # GREEDY-NEXT: - { id: 4, class: gpr, preferred-register: '' }
634 # CHECK-NEXT: - { id: 5, class: gpr, preferred-register: '' }
635635 registers:
636636 - { id: 0, class: _ }
637637 - { id: 1, class: _ }
673673 legalized: true
674674
675675 # CHECK: registers:
676 # CHECK-NEXT: - { id: 0, class: gpr }
677 # CHECK-NEXT: - { id: 1, class: gpr }
678 # CHECK-NEXT: - { id: 2, class: fpr }
679 # CHECK-NEXT: - { id: 3, class: fpr }
680 # CHECK-NEXT: - { id: 4, class: fpr }
676 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
677 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
678 # CHECK-NEXT: - { id: 2, class: fpr, preferred-register: '' }
679 # CHECK-NEXT: - { id: 3, class: fpr, preferred-register: '' }
680 # CHECK-NEXT: - { id: 4, class: fpr, preferred-register: '' }
681681 registers:
682682 - { id: 0, class: _ }
683683 - { id: 1, class: _ }
715715 legalized: true
716716
717717 # CHECK: registers:
718 # CHECK-NEXT: - { id: 0, class: gpr }
719 # CHECK-NEXT: - { id: 1, class: gpr }
720 # CHECK-NEXT: - { id: 2, class: fpr }
721 # CHECK-NEXT: - { id: 3, class: fpr }
722 # CHECK-NEXT: - { id: 4, class: fpr }
718 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
719 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
720 # CHECK-NEXT: - { id: 2, class: fpr, preferred-register: '' }
721 # CHECK-NEXT: - { id: 3, class: fpr, preferred-register: '' }
722 # CHECK-NEXT: - { id: 4, class: fpr, preferred-register: '' }
723723 registers:
724724 - { id: 0, class: _ }
725725 - { id: 1, class: _ }
22
33 ; CHECK-LABEL: name: test_stack_slots
44 ; CHECK: fixedStack:
5 ; CHECK-DAG: - { id: [[STACK0:[0-9]+]], offset: 0, size: 1
6 ; CHECK-DAG: - { id: [[STACK8:[0-9]+]], offset: 1, size: 1
5 ; CHECK-DAG: - { id: [[STACK0:[0-9]+]], type: default, offset: 0, size: 1,
6 ; CHECK-DAG: - { id: [[STACK8:[0-9]+]], type: default, offset: 1, size: 1,
77 ; CHECK: [[LHS_ADDR:%[0-9]+]](p0) = G_FRAME_INDEX %fixed-stack.[[STACK0]]
88 ; CHECK: [[LHS:%[0-9]+]](s8) = G_LOAD [[LHS_ADDR]](p0) :: (invariant load 1 from %fixed-stack.[[STACK0]], align 0)
99 ; CHECK: [[RHS_ADDR:%[0-9]+]](p0) = G_FRAME_INDEX %fixed-stack.[[STACK8]]
3434 ; CHECK-LABEL: name: test_indirect_call
3535 ; CHECK: registers:
3636 ; Make sure the register feeding the indirect call is properly constrained.
37 ; CHECK: - { id: [[FUNC:[0-9]+]], class: gpr64 }
37 ; CHECK: - { id: [[FUNC:[0-9]+]], class: gpr64, preferred-register: '' }
3838 ; CHECK: %[[FUNC]](p0) = COPY %x0
3939 ; CHECK: BLR %[[FUNC]](p0), csr_aarch64_aapcs, implicit-def %lr, implicit %sp
4040 ; CHECK: RET_ReallyLR
164164
165165 ; CHECK-LABEL: name: test_stack_slots
166166 ; CHECK: fixedStack:
167 ; CHECK-DAG: - { id: [[STACK0:[0-9]+]], offset: 0, size: 8
168 ; CHECK-DAG: - { id: [[STACK8:[0-9]+]], offset: 8, size: 8
169 ; CHECK-DAG: - { id: [[STACK16:[0-9]+]], offset: 16, size: 8
167 ; CHECK-DAG: - { id: [[STACK0:[0-9]+]], type: default, offset: 0, size: 8,
168 ; CHECK-DAG: - { id: [[STACK8:[0-9]+]], type: default, offset: 8, size: 8,
169 ; CHECK-DAG: - { id: [[STACK16:[0-9]+]], type: default, offset: 16, size: 8,
170170 ; CHECK: [[LHS_ADDR:%[0-9]+]](p0) = G_FRAME_INDEX %fixed-stack.[[STACK0]]
171171 ; CHECK: [[LHS:%[0-9]+]](s64) = G_LOAD [[LHS_ADDR]](p0) :: (invariant load 8 from %fixed-stack.[[STACK0]], align 0)
172172 ; CHECK: [[RHS_ADDR:%[0-9]+]](p0) = G_FRAME_INDEX %fixed-stack.[[STACK8]]
207207
208208 ; CHECK-LABEL: name: test_mem_i1
209209 ; CHECK: fixedStack:
210 ; CHECK-NEXT: - { id: [[SLOT:[0-9]+]], offset: 0, size: 1, alignment: 16, isImmutable: true, isAliased: false }
210 ; CHECK-NEXT: - { id: [[SLOT:[0-9]+]], type: default, offset: 0, size: 1, alignment: 16, isImmutable: true,
211211 ; CHECK: [[ADDR:%[0-9]+]](p0) = G_FRAME_INDEX %fixed-stack.[[SLOT]]
212212 ; CHECK: {{%[0-9]+}}(s1) = G_LOAD [[ADDR]](p0) :: (invariant load 1 from %fixed-stack.[[SLOT]], align 0)
213213 define void @test_mem_i1([8 x i64], i1 %in) {
22
33 ; CHECK-LABEL: name: debug_declare
44 ; CHECK: stack:
5 ; CHECK: - { id: {{.*}}, name: in.addr, offset: {{.*}}, size: {{.*}}, alignment: {{.*}}, di-variable: '!11',
6 ; CHECK-NEXT: di-expression: '!12', di-location: '!13' }
5 ; CHECK: - { id: {{.*}}, name: in.addr, type: default, offset: 0, size: {{.*}}, alignment: {{.*}},
6 ; CHECK-NEXT: callee-saved-register: '', di-variable: '!11', di-expression: '!12',
77 ; CHECK: DBG_VALUE debug-use %0(s32), debug-use _, !11, !12, debug-location !13
88 define void @debug_declare(i32 %in) #0 !dbg !7 {
99 entry:
3434 tracksRegLiveness: true
3535 registers:
3636 # CHECK: registers:
37 # CHECK-NEXT: - { id: 0, class: fpr }
38 # CHECK-NEXT: - { id: 1, class: gpr }
39 # CHECK-NEXT: - { id: 2, class: fpr }
40 # CHECK-NEXT: - { id: 3, class: fpr }
41 # CHECK-NEXT: - { id: 4, class: fpr }
42 # CHECK-NEXT: - { id: 5, class: fpr }
37 # CHECK-NEXT: - { id: 0, class: fpr, preferred-register: '' }
38 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
39 # CHECK-NEXT: - { id: 2, class: fpr, preferred-register: '' }
40 # CHECK-NEXT: - { id: 3, class: fpr, preferred-register: '' }
41 # CHECK-NEXT: - { id: 4, class: fpr, preferred-register: '' }
42 # CHECK-NEXT: - { id: 5, class: fpr, preferred-register: '' }
4343 # The localizer will create two new values to materialize the constants.
44 # OPTNONE-NEXT: - { id: 6, class: fpr }
45 # OPTNONE-NEXT: - { id: 7, class: fpr }
44 # OPTNONE-NEXT: - { id: 6, class: fpr, preferred-register: '' }
45 # OPTNONE-NEXT: - { id: 7, class: fpr, preferred-register: '' }
4646 - { id: 0, class: fpr }
4747 - { id: 1, class: gpr }
4848 - { id: 2, class: fpr }
4343
4444 # CHECK: registers:
4545 # Existing registers should be left untouched
46 # CHECK: - { id: 0, class: gpr }
47 #CHECK-NEXT: - { id: 1, class: gpr }
48 #CHECK-NEXT: - { id: 2, class: gpr }
49 # The newly created reg should be on the same regbank/regclass as its origin.
50 #CHECK-NEXT: - { id: 3, class: gpr }
46 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
47 #CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
48 #CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
49 # The newly created reg should be on the same regbank/regclass as its origin.
50 #CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
5151
5252 registers:
5353 - { id: 0, class: gpr }
8181
8282 # CHECK: registers:
8383 # Existing registers should be left untouched
84 # CHECK: - { id: 0, class: gpr }
85 #CHECK-NEXT: - { id: 1, class: gpr }
86 #CHECK-NEXT: - { id: 2, class: gpr }
87 # The newly created reg should be on the same regbank/regclass as its origin.
88 #CHECK-NEXT: - { id: 3, class: gpr }
84 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
85 #CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
86 #CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
87 # The newly created reg should be on the same regbank/regclass as its origin.
88 #CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
8989
9090 registers:
9191 - { id: 0, class: gpr }
119119
120120 # CHECK: registers:
121121 # Existing registers should be left untouched
122 # CHECK: - { id: 0, class: gpr }
123 #CHECK-NEXT: - { id: 1, class: gpr }
124 #CHECK-NEXT: - { id: 2, class: gpr }
125 #CHECK-NEXT: - { id: 3, class: gpr }
126 #CHECK-NEXT: - { id: 4, class: gpr }
127 # The newly created reg should be on the same regbank/regclass as its origin.
128 #CHECK-NEXT: - { id: 5, class: gpr }
122 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
123 #CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
124 #CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
125 #CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
126 #CHECK-NEXT: - { id: 4, class: gpr, preferred-register: '' }
127 # The newly created reg should be on the same regbank/regclass as its origin.
128 #CHECK-NEXT: - { id: 5, class: gpr, preferred-register: '' }
129129
130130 registers:
131131 - { id: 0, class: gpr }
167167
168168 # CHECK: registers:
169169 # Existing registers should be left untouched
170 # CHECK: - { id: 0, class: gpr }
171 #CHECK-NEXT: - { id: 1, class: gpr }
172 #CHECK-NEXT: - { id: 2, class: gpr }
173 #CHECK-NEXT: - { id: 3, class: gpr }
174 #CHECK-NEXT: - { id: 4, class: gpr }
170 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
171 #CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
172 #CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
173 #CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
174 #CHECK-NEXT: - { id: 4, class: gpr, preferred-register: '' }
175175 # The newly created regs should be on the same regbank/regclass as its origin.
176 #CHECK-NEXT: - { id: 5, class: gpr }
177 #CHECK-NEXT: - { id: 6, class: gpr }
176 #CHECK-NEXT: - { id: 5, class: gpr, preferred-register: '' }
177 #CHECK-NEXT: - { id: 6, class: gpr, preferred-register: '' }
178178
179179 registers:
180180 - { id: 0, class: gpr }
218218
219219 # CHECK: registers:
220220 # Existing registers should be left untouched
221 # CHECK: - { id: 0, class: gpr }
222 #CHECK-NEXT: - { id: 1, class: gpr }
223 #CHECK-NEXT: - { id: 2, class: gpr }
224 #CHECK-NEXT: - { id: 3, class: gpr }
225 #CHECK-NEXT: - { id: 4, class: gpr }
226 # The newly created reg should be on the same regbank/regclass as its origin.
227 #CHECK-NEXT: - { id: 5, class: gpr }
228 #CHECK-NEXT: - { id: 6, class: gpr }
221 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
222 #CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
223 #CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
224 #CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
225 #CHECK-NEXT: - { id: 4, class: gpr, preferred-register: '' }
226 # The newly created reg should be on the same regbank/regclass as its origin.
227 #CHECK-NEXT: - { id: 5, class: gpr, preferred-register: '' }
228 #CHECK-NEXT: - { id: 6, class: gpr, preferred-register: '' }
229229
230230 registers:
231231 - { id: 0, class: gpr }
269269
270270 # CHECK: registers:
271271 # Existing registers should be left untouched
272 # CHECK: - { id: 0, class: fpr }
273 #CHECK-NEXT: - { id: 1, class: fpr }
274 #CHECK-NEXT: - { id: 2, class: fpr }
275 #CHECK-NEXT: - { id: 3, class: fpr }
276 #CHECK-NEXT: - { id: 4, class: fpr }
277 # The newly created reg should be on the same regbank/regclass as its origin.
278 #CHECK-NEXT: - { id: 5, class: fpr }
279 #CHECK-NEXT: - { id: 6, class: fpr }
272 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
273 #CHECK-NEXT: - { id: 1, class: fpr, preferred-register: '' }
274 #CHECK-NEXT: - { id: 2, class: fpr, preferred-register: '' }
275 #CHECK-NEXT: - { id: 3, class: fpr, preferred-register: '' }
276 #CHECK-NEXT: - { id: 4, class: fpr, preferred-register: '' }
277 # The newly created reg should be on the same regbank/regclass as its origin.
278 #CHECK-NEXT: - { id: 5, class: fpr, preferred-register: '' }
279 #CHECK-NEXT: - { id: 6, class: fpr, preferred-register: '' }
280280
281281 registers:
282282 - { id: 0, class: fpr }
322322
323323 # CHECK: registers:
324324 # Existing registers should be left untouched
325 # CHECK: - { id: 0, class: fpr }
326 #CHECK-NEXT: - { id: 1, class: fpr }
327 #CHECK-NEXT: - { id: 2, class: fpr }
328 #CHECK-NEXT: - { id: 3, class: fpr }
329 # The newly created reg should be on the same regbank/regclass as its origin.
330 #CHECK-NEXT: - { id: 4, class: fpr }
325 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
326 #CHECK-NEXT: - { id: 1, class: fpr, preferred-register: '' }
327 #CHECK-NEXT: - { id: 2, class: fpr, preferred-register: '' }
328 #CHECK-NEXT: - { id: 3, class: fpr, preferred-register: '' }
329 # The newly created reg should be on the same regbank/regclass as its origin.
330 #CHECK-NEXT: - { id: 4, class: fpr, preferred-register: '' }
331331
332332 registers:
333333 - { id: 0, class: fpr }
3131 name: test_dbg_value
3232 legalized: true
3333 # CHECK: registers:
34 # CHECK-NEXT: - { id: 0, class: gpr }
34 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
3535 body: |
3636 bb.0:
3737 liveins: %w0
7272 name: test_add_s32
7373 legalized: true
7474 # CHECK: registers:
75 # CHECK: - { id: 0, class: gpr }
76 # CHECK: - { id: 1, class: gpr }
75 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
76 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
7777 registers:
7878 - { id: 0, class: _ }
7979 - { id: 1, class: _ }
9191 name: test_add_v4s32
9292 legalized: true
9393 # CHECK: registers:
94 # CHECK: - { id: 0, class: fpr }
95 # CHECK: - { id: 1, class: fpr }
94 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
95 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
9696 registers:
9797 - { id: 0, class: _ }
9898 - { id: 1, class: _ }
110110 name: test_sub_s32
111111 legalized: true
112112 # CHECK: registers:
113 # CHECK: - { id: 0, class: gpr }
114 # CHECK: - { id: 1, class: gpr }
113 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
114 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
115115 registers:
116116 - { id: 0, class: _ }
117117 - { id: 1, class: _ }
129129 name: test_sub_v4s32
130130 legalized: true
131131 # CHECK: registers:
132 # CHECK: - { id: 0, class: fpr }
133 # CHECK: - { id: 1, class: fpr }
132 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
133 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
134134 registers:
135135 - { id: 0, class: _ }
136136 - { id: 1, class: _ }
148148 name: test_mul_s32
149149 legalized: true
150150 # CHECK: registers:
151 # CHECK: - { id: 0, class: gpr }
152 # CHECK: - { id: 1, class: gpr }
151 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
152 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
153153 registers:
154154 - { id: 0, class: _ }
155155 - { id: 1, class: _ }
167167 name: test_mul_v4s32
168168 legalized: true
169169 # CHECK: registers:
170 # CHECK: - { id: 0, class: fpr }
171 # CHECK: - { id: 1, class: fpr }
170 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
171 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
172172 registers:
173173 - { id: 0, class: _ }
174174 - { id: 1, class: _ }
186186 name: test_and_s32
187187 legalized: true
188188 # CHECK: registers:
189 # CHECK: - { id: 0, class: gpr }
190 # CHECK: - { id: 1, class: gpr }
189 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
190 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
191191 registers:
192192 - { id: 0, class: _ }
193193 - { id: 1, class: _ }
205205 name: test_and_v4s32
206206 legalized: true
207207 # CHECK: registers:
208 # CHECK: - { id: 0, class: fpr }
209 # CHECK: - { id: 1, class: fpr }
208 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
209 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
210210 registers:
211211 - { id: 0, class: _ }
212212 - { id: 1, class: _ }
224224 name: test_or_s32
225225 legalized: true
226226 # CHECK: registers:
227 # CHECK: - { id: 0, class: gpr }
228 # CHECK: - { id: 1, class: gpr }
227 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
228 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
229229 registers:
230230 - { id: 0, class: _ }
231231 - { id: 1, class: _ }
243243 name: test_or_v4s32
244244 legalized: true
245245 # CHECK: registers:
246 # CHECK: - { id: 0, class: fpr }
247 # CHECK: - { id: 1, class: fpr }
246 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
247 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
248248 registers:
249249 - { id: 0, class: _ }
250250 - { id: 1, class: _ }
262262 name: test_xor_s32
263263 legalized: true
264264 # CHECK: registers:
265 # CHECK: - { id: 0, class: gpr }
266 # CHECK: - { id: 1, class: gpr }
265 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
266 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
267267 registers:
268268 - { id: 0, class: _ }
269269 - { id: 1, class: _ }
281281 name: test_xor_v4s32
282282 legalized: true
283283 # CHECK: registers:
284 # CHECK: - { id: 0, class: fpr }
285 # CHECK: - { id: 1, class: fpr }
284 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
285 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
286286 registers:
287287 - { id: 0, class: _ }
288288 - { id: 1, class: _ }
300300 name: test_shl_s32
301301 legalized: true
302302 # CHECK: registers:
303 # CHECK: - { id: 0, class: gpr }
304 # CHECK: - { id: 1, class: gpr }
303 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
304 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
305305 registers:
306306 - { id: 0, class: _ }
307307 - { id: 1, class: _ }
319319 name: test_shl_v4s32
320320 legalized: true
321321 # CHECK: registers:
322 # CHECK: - { id: 0, class: fpr }
323 # CHECK: - { id: 1, class: fpr }
322 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
323 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
324324 registers:
325325 - { id: 0, class: _ }
326326 - { id: 1, class: _ }
338338 name: test_lshr_s32
339339 legalized: true
340340 # CHECK: registers:
341 # CHECK: - { id: 0, class: gpr }
342 # CHECK: - { id: 1, class: gpr }
341 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
342 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
343343 registers:
344344 - { id: 0, class: _ }
345345 - { id: 1, class: _ }
357357 name: test_ashr_s32
358358 legalized: true
359359 # CHECK: registers:
360 # CHECK: - { id: 0, class: gpr }
361 # CHECK: - { id: 1, class: gpr }
360 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
361 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
362362 registers:
363363 - { id: 0, class: _ }
364364 - { id: 1, class: _ }
376376 name: test_sdiv_s32
377377 legalized: true
378378 # CHECK: registers:
379 # CHECK: - { id: 0, class: gpr }
380 # CHECK: - { id: 1, class: gpr }
379 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
380 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
381381 registers:
382382 - { id: 0, class: _ }
383383 - { id: 1, class: _ }
395395 name: test_udiv_s32
396396 legalized: true
397397 # CHECK: registers:
398 # CHECK: - { id: 0, class: gpr }
399 # CHECK: - { id: 1, class: gpr }
398 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
399 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
400400 registers:
401401 - { id: 0, class: _ }
402402 - { id: 1, class: _ }
414414 name: test_anyext_s64_s32
415415 legalized: true
416416 # CHECK: registers:
417 # CHECK: - { id: 0, class: gpr }
418 # CHECK: - { id: 1, class: gpr }
417 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
418 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
419419 registers:
420420 - { id: 0, class: _ }
421421 - { id: 1, class: _ }
433433 name: test_sext_s64_s32
434434 legalized: true
435435 # CHECK: registers:
436 # CHECK: - { id: 0, class: gpr }
437 # CHECK: - { id: 1, class: gpr }
436 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
437 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
438438 registers:
439439 - { id: 0, class: _ }
440440 - { id: 1, class: _ }
452452 name: test_zext_s64_s32
453453 legalized: true
454454 # CHECK: registers:
455 # CHECK: - { id: 0, class: gpr }
456 # CHECK: - { id: 1, class: gpr }
455 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
456 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
457457 registers:
458458 - { id: 0, class: _ }
459459 - { id: 1, class: _ }
471471 name: test_trunc_s32_s64
472472 legalized: true
473473 # CHECK: registers:
474 # CHECK: - { id: 0, class: gpr }
475 # CHECK: - { id: 1, class: gpr }
474 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
475 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
476476 registers:
477477 - { id: 0, class: _ }
478478 - { id: 1, class: _ }
490490 name: test_constant_s32
491491 legalized: true
492492 # CHECK: registers:
493 # CHECK: - { id: 0, class: gpr }
493 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
494494 registers:
495495 - { id: 0, class: _ }
496496 body: |
504504 name: test_constant_p0
505505 legalized: true
506506 # CHECK: registers:
507 # CHECK: - { id: 0, class: gpr }
507 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
508508 registers:
509509 - { id: 0, class: _ }
510510 body: |
518518 name: test_icmp_s32
519519 legalized: true
520520 # CHECK: registers:
521 # CHECK: - { id: 0, class: gpr }
522 # CHECK: - { id: 1, class: gpr }
521 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
522 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
523523 registers:
524524 - { id: 0, class: _ }
525525 - { id: 1, class: _ }
537537 name: test_icmp_p0
538538 legalized: true
539539 # CHECK: registers:
540 # CHECK: - { id: 0, class: gpr }
541 # CHECK: - { id: 1, class: gpr }
540 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
541 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
542542 registers:
543543 - { id: 0, class: _ }
544544 - { id: 1, class: _ }
556556 name: test_frame_index_p0
557557 legalized: true
558558 # CHECK: registers:
559 # CHECK: - { id: 0, class: gpr }
559 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
560560 registers:
561561 - { id: 0, class: _ }
562562 stack:
572572 name: test_ptrtoint_s64_p0
573573 legalized: true
574574 # CHECK: registers:
575 # CHECK: - { id: 0, class: gpr }
576 # CHECK: - { id: 1, class: gpr }
575 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
576 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
577577 registers:
578578 - { id: 0, class: _ }
579579 - { id: 1, class: _ }
591591 name: test_inttoptr_p0_s64
592592 legalized: true
593593 # CHECK: registers:
594 # CHECK: - { id: 0, class: gpr }
595 # CHECK: - { id: 1, class: gpr }
594 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
595 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
596596 registers:
597597 - { id: 0, class: _ }
598598 - { id: 1, class: _ }
610610 name: test_load_s32_p0
611611 legalized: true
612612 # CHECK: registers:
613 # CHECK: - { id: 0, class: gpr }
614 # CHECK: - { id: 1, class: gpr }
613 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
614 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
615615 registers:
616616 - { id: 0, class: _ }
617617 - { id: 1, class: _ }
629629 name: test_store_s32_p0
630630 legalized: true
631631 # CHECK: registers:
632 # CHECK: - { id: 0, class: gpr }
633 # CHECK: - { id: 1, class: gpr }
632 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
633 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
634634 registers:
635635 - { id: 0, class: _ }
636636 - { id: 1, class: _ }
650650 name: test_fadd_s32
651651 legalized: true
652652 # CHECK: registers:
653 # CHECK: - { id: 0, class: fpr }
654 # CHECK: - { id: 1, class: fpr }
653 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
654 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
655655 registers:
656656 - { id: 0, class: _ }
657657 - { id: 1, class: _ }
669669 name: test_fsub_s32
670670 legalized: true
671671 # CHECK: registers:
672 # CHECK: - { id: 0, class: fpr }
673 # CHECK: - { id: 1, class: fpr }
672 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
673 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
674674 registers:
675675 - { id: 0, class: _ }
676676 - { id: 1, class: _ }
688688 name: test_fmul_s32
689689 legalized: true
690690 # CHECK: registers:
691 # CHECK: - { id: 0, class: fpr }
692 # CHECK: - { id: 1, class: fpr }
691 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
692 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
693693 registers:
694694 - { id: 0, class: _ }
695695 - { id: 1, class: _ }
707707 name: test_fdiv_s32
708708 legalized: true
709709 # CHECK: registers:
710 # CHECK: - { id: 0, class: fpr }
711 # CHECK: - { id: 1, class: fpr }
710 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
711 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
712712 registers:
713713 - { id: 0, class: _ }
714714 - { id: 1, class: _ }
726726 name: test_fpext_s64_s32
727727 legalized: true
728728 # CHECK: registers:
729 # CHECK: - { id: 0, class: fpr }
730 # CHECK: - { id: 1, class: fpr }
729 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
730 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
731731 registers:
732732 - { id: 0, class: _ }
733733 - { id: 1, class: _ }
745745 name: test_fptrunc_s32_s64
746746 legalized: true
747747 # CHECK: registers:
748 # CHECK: - { id: 0, class: fpr }
749 # CHECK: - { id: 1, class: fpr }
748 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
749 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
750750 registers:
751751 - { id: 0, class: _ }
752752 - { id: 1, class: _ }
764764 name: test_fconstant_s32
765765 legalized: true
766766 # CHECK: registers:
767 # CHECK: - { id: 0, class: fpr }
767 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
768768 registers:
769769 - { id: 0, class: _ }
770770 body: |
778778 name: test_fcmp_s32
779779 legalized: true
780780 # CHECK: registers:
781 # CHECK: - { id: 0, class: fpr }
782 # CHECK: - { id: 1, class: gpr }
781 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
782 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
783783 registers:
784784 - { id: 0, class: _ }
785785 - { id: 1, class: _ }
797797 name: test_sitofp_s64_s32
798798 legalized: true
799799 # CHECK: registers:
800 # CHECK: - { id: 0, class: gpr }
801 # CHECK: - { id: 1, class: fpr }
800 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
801 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
802802 registers:
803803 - { id: 0, class: _ }
804804 - { id: 1, class: _ }
816816 name: test_uitofp_s32_s64
817817 legalized: true
818818 # CHECK: registers:
819 # CHECK: - { id: 0, class: gpr }
820 # CHECK: - { id: 1, class: fpr }
819 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
820 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
821821 registers:
822822 - { id: 0, class: _ }
823823 - { id: 1, class: _ }
835835 name: test_fptosi_s64_s32
836836 legalized: true
837837 # CHECK: registers:
838 # CHECK: - { id: 0, class: fpr }
839 # CHECK: - { id: 1, class: gpr }
838 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
839 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
840840 registers:
841841 - { id: 0, class: _ }
842842 - { id: 1, class: _ }
854854 name: test_fptoui_s32_s64
855855 legalized: true
856856 # CHECK: registers:
857 # CHECK: - { id: 0, class: fpr }
858 # CHECK: - { id: 1, class: gpr }
857 # CHECK: - { id: 0, class: fpr, preferred-register: '' }
858 # CHECK: - { id: 1, class: gpr, preferred-register: '' }
859859 registers:
860860 - { id: 0, class: _ }
861861 - { id: 1, class: _ }
6363 regBankSelected: true
6464
6565 # CHECK: registers:
66 # CHECK-NEXT: - { id: 0, class: gpr32 }
67 # CHECK-NEXT: - { id: 1, class: gpr32 }
68 # CHECK-NEXT: - { id: 2, class: gpr32 }
66 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
67 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
68 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
6969 registers:
7070 - { id: 0, class: gpr }
7171 - { id: 1, class: gpr }
9393 regBankSelected: true
9494
9595 # CHECK: registers:
96 # CHECK-NEXT: - { id: 0, class: gpr64 }
97 # CHECK-NEXT: - { id: 1, class: gpr64 }
98 # CHECK-NEXT: - { id: 2, class: gpr64 }
96 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
97 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
98 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
9999 registers:
100100 - { id: 0, class: gpr }
101101 - { id: 1, class: gpr }
122122 regBankSelected: true
123123
124124 # CHECK: registers:
125 # CHECK-NEXT: - { id: 0, class: gpr32sp }
126 # CHECK-NEXT: - { id: 1, class: gpr }
127 # CHECK-NEXT: - { id: 2, class: gpr32sp }
125 # CHECK-NEXT: - { id: 0, class: gpr32sp, preferred-register: '' }
126 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
127 # CHECK-NEXT: - { id: 2, class: gpr32sp, preferred-register: '' }
128128 registers:
129129 - { id: 0, class: gpr }
130130 - { id: 1, class: gpr }
150150 regBankSelected: true
151151
152152 # CHECK: registers:
153 # CHECK-NEXT: - { id: 0, class: gpr64sp }
154 # CHECK-NEXT: - { id: 1, class: gpr }
155 # CHECK-NEXT: - { id: 2, class: gpr64sp }
153 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
154 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
155 # CHECK-NEXT: - { id: 2, class: gpr64sp, preferred-register: '' }
156156 registers:
157157 - { id: 0, class: gpr }
158158 - { id: 1, class: gpr }
178178 regBankSelected: true
179179
180180 # CHECK: registers:
181 # CHECK-NEXT: - { id: 0, class: gpr32sp }
182 # CHECK-NEXT: - { id: 1, class: gpr }
183 # CHECK-NEXT: - { id: 2, class: gpr32sp }
181 # CHECK-NEXT: - { id: 0, class: gpr32sp, preferred-register: '' }
182 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
183 # CHECK-NEXT: - { id: 2, class: gpr32sp, preferred-register: '' }
184184 registers:
185185 - { id: 0, class: gpr }
186186 - { id: 1, class: gpr }
212212 regBankSelected: true
213213
214214 # CHECK: registers:
215 # CHECK-NEXT: - { id: 0, class: gpr32 }
216 # CHECK-NEXT: - { id: 1, class: gpr32 }
217 # CHECK-NEXT: - { id: 2, class: gpr32 }
215 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
216 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
217 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
218218 registers:
219219 - { id: 0, class: gpr }
220220 - { id: 1, class: gpr }
242242 regBankSelected: true
243243
244244 # CHECK: registers:
245 # CHECK-NEXT: - { id: 0, class: gpr64 }
246 # CHECK-NEXT: - { id: 1, class: gpr64 }
247 # CHECK-NEXT: - { id: 2, class: gpr64 }
245 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
246 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
247 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
248248 registers:
249249 - { id: 0, class: gpr }
250250 - { id: 1, class: gpr }
272272 regBankSelected: true
273273
274274 # CHECK: registers:
275 # CHECK-NEXT: - { id: 0, class: gpr32 }
276 # CHECK-NEXT: - { id: 1, class: gpr32 }
277 # CHECK-NEXT: - { id: 2, class: gpr32 }
275 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
276 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
277 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
278278 registers:
279279 - { id: 0, class: gpr }
280280 - { id: 1, class: gpr }
302302 regBankSelected: true
303303
304304 # CHECK: registers:
305 # CHECK-NEXT: - { id: 0, class: gpr64 }
306 # CHECK-NEXT: - { id: 1, class: gpr64 }
307 # CHECK-NEXT: - { id: 2, class: gpr64 }
305 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
306 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
307 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
308308 registers:
309309 - { id: 0, class: gpr }
310310 - { id: 1, class: gpr }
332332 regBankSelected: true
333333 #
334334 # CHECK: registers:
335 # CHECK-NEXT: - { id: 0, class: fpr64 }
336 # CHECK-NEXT: - { id: 1, class: fpr64 }
337 # CHECK-NEXT: - { id: 2, class: fpr64 }
335 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
336 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
337 # CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' }
338338 registers:
339339 - { id: 0, class: fpr }
340340 - { id: 1, class: fpr }
364364 regBankSelected: true
365365
366366 # CHECK: registers:
367 # CHECK-NEXT: - { id: 0, class: gpr32 }
368 # CHECK-NEXT: - { id: 1, class: gpr32 }
369 # CHECK-NEXT: - { id: 2, class: gpr32 }
367 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
368 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
369 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
370370 registers:
371371 - { id: 0, class: gpr }
372372 - { id: 1, class: gpr }
394394 regBankSelected: true
395395
396396 # CHECK: registers:
397 # CHECK-NEXT: - { id: 0, class: gpr64 }
398 # CHECK-NEXT: - { id: 1, class: gpr64 }
399 # CHECK-NEXT: - { id: 2, class: gpr64 }
397 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
398 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
399 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
400400 registers:
401401 - { id: 0, class: gpr }
402402 - { id: 1, class: gpr }
424424 regBankSelected: true
425425
426426 # CHECK: registers:
427 # CHECK-NEXT: - { id: 0, class: gpr32 }
428 # CHECK-NEXT: - { id: 1, class: gpr32 }
429 # CHECK-NEXT: - { id: 2, class: gpr32 }
427 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
428 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
429 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
430430 registers:
431431 - { id: 0, class: gpr }
432432 - { id: 1, class: gpr }
454454 regBankSelected: true
455455
456456 # CHECK: registers:
457 # CHECK-NEXT: - { id: 0, class: gpr64 }
458 # CHECK-NEXT: - { id: 1, class: gpr64 }
459 # CHECK-NEXT: - { id: 2, class: gpr64 }
457 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
458 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
459 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
460460 registers:
461461 - { id: 0, class: gpr }
462462 - { id: 1, class: gpr }
484484 regBankSelected: true
485485
486486 # CHECK: registers:
487 # CHECK-NEXT: - { id: 0, class: gpr32 }
488 # CHECK-NEXT: - { id: 1, class: gpr32 }
489 # CHECK-NEXT: - { id: 2, class: gpr32 }
487 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
488 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
489 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
490490 registers:
491491 - { id: 0, class: gpr }
492492 - { id: 1, class: gpr }
514514 regBankSelected: true
515515
516516 # CHECK: registers:
517 # CHECK-NEXT: - { id: 0, class: gpr64 }
518 # CHECK-NEXT: - { id: 1, class: gpr64 }
519 # CHECK-NEXT: - { id: 2, class: gpr64 }
517 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
518 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
519 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
520520 registers:
521521 - { id: 0, class: gpr }
522522 - { id: 1, class: gpr }
544544 regBankSelected: true
545545
546546 # CHECK: registers:
547 # CHECK-NEXT: - { id: 0, class: gpr32 }
548 # CHECK-NEXT: - { id: 1, class: gpr32 }
549 # CHECK-NEXT: - { id: 2, class: gpr32 }
547 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
548 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
549 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
550550 registers:
551551 - { id: 0, class: gpr }
552552 - { id: 1, class: gpr }
574574 regBankSelected: true
575575
576576 # CHECK: registers:
577 # CHECK-NEXT: - { id: 0, class: gpr64 }
578 # CHECK-NEXT: - { id: 1, class: gpr64 }
579 # CHECK-NEXT: - { id: 2, class: gpr64 }
577 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
578 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
579 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
580580 registers:
581581 - { id: 0, class: gpr }
582582 - { id: 1, class: gpr }
605605 regBankSelected: true
606606
607607 # CHECK: registers:
608 # CHECK-NEXT: - { id: 0, class: gpr32 }
609 # CHECK-NEXT: - { id: 1, class: gpr32 }
610 # CHECK-NEXT: - { id: 2, class: gpr32 }
608 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
609 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
610 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
611611 registers:
612612 - { id: 0, class: gpr }
613613 - { id: 1, class: gpr }
635635 regBankSelected: true
636636
637637 # CHECK: registers:
638 # CHECK-NEXT: - { id: 0, class: gpr64 }
639 # CHECK-NEXT: - { id: 1, class: gpr64 }
640 # CHECK-NEXT: - { id: 2, class: gpr64 }
638 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
639 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
640 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
641641 registers:
642642 - { id: 0, class: gpr }
643643 - { id: 1, class: gpr }
665665 regBankSelected: true
666666
667667 # CHECK: registers:
668 # CHECK-NEXT: - { id: 0, class: gpr64 }
669 # CHECK-NEXT: - { id: 1, class: gpr64 }
670 # CHECK-NEXT: - { id: 2, class: gpr64 }
671 # CHECK-NEXT: - { id: 3, class: gpr64 }
668 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
669 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
670 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
671 # CHECK-NEXT: - { id: 3, class: gpr64, preferred-register: '' }
672672
673673 # CHECK: body:
674674 # CHECK: %0 = COPY %x0
695695 regBankSelected: true
696696
697697 # CHECK: registers:
698 # CHECK-NEXT: - { id: 0, class: gpr32 }
699 # CHECK-NEXT: - { id: 1, class: gpr32 }
700 # CHECK-NEXT: - { id: 2, class: gpr32 }
698 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
699 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
700 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
701701 registers:
702702 - { id: 0, class: gpr }
703703 - { id: 1, class: gpr }
725725 regBankSelected: true
726726
727727 # CHECK: registers:
728 # CHECK-NEXT: - { id: 0, class: gpr64 }
729 # CHECK-NEXT: - { id: 1, class: gpr64 }
730 # CHECK-NEXT: - { id: 2, class: gpr64 }
728 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
729 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
730 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
731731 registers:
732732 - { id: 0, class: gpr }
733733 - { id: 1, class: gpr }
755755 regBankSelected: true
756756
757757 # CHECK: registers:
758 # CHECK-NEXT: - { id: 0, class: gpr32 }
759 # CHECK-NEXT: - { id: 1, class: gpr32 }
760 # CHECK-NEXT: - { id: 2, class: gpr32 }
758 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
759 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
760 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
761761 registers:
762762 - { id: 0, class: gpr }
763763 - { id: 1, class: gpr }
785785 regBankSelected: true
786786
787787 # CHECK: registers:
788 # CHECK-NEXT: - { id: 0, class: gpr64 }
789 # CHECK-NEXT: - { id: 1, class: gpr64 }
790 # CHECK-NEXT: - { id: 2, class: gpr64 }
788 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
789 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
790 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
791791 registers:
792792 - { id: 0, class: gpr }
793793 - { id: 1, class: gpr }
815815 regBankSelected: true
816816
817817 # CHECK: registers:
818 # CHECK-NEXT: - { id: 0, class: fpr32 }
819 # CHECK-NEXT: - { id: 1, class: fpr32 }
820 # CHECK-NEXT: - { id: 2, class: fpr32 }
818 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
819 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
820 # CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' }
821821 registers:
822822 - { id: 0, class: fpr }
823823 - { id: 1, class: fpr }
844844 regBankSelected: true
845845
846846 # CHECK: registers:
847 # CHECK-NEXT: - { id: 0, class: fpr64 }
848 # CHECK-NEXT: - { id: 1, class: fpr64 }
849 # CHECK-NEXT: - { id: 2, class: fpr64 }
847 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
848 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
849 # CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' }
850850 registers:
851851 - { id: 0, class: fpr }
852852 - { id: 1, class: fpr }
873873 regBankSelected: true
874874
875875 # CHECK: registers:
876 # CHECK-NEXT: - { id: 0, class: fpr32 }
877 # CHECK-NEXT: - { id: 1, class: fpr32 }
878 # CHECK-NEXT: - { id: 2, class: fpr32 }
876 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
877 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
878 # CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' }
879879 registers:
880880 - { id: 0, class: fpr }
881881 - { id: 1, class: fpr }
902902 regBankSelected: true
903903
904904 # CHECK: registers:
905 # CHECK-NEXT: - { id: 0, class: fpr64 }
906 # CHECK-NEXT: - { id: 1, class: fpr64 }
907 # CHECK-NEXT: - { id: 2, class: fpr64 }
905 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
906 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
907 # CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' }
908908 registers:
909909 - { id: 0, class: fpr }
910910 - { id: 1, class: fpr }
931931 regBankSelected: true
932932
933933 # CHECK: registers:
934 # CHECK-NEXT: - { id: 0, class: fpr32 }
935 # CHECK-NEXT: - { id: 1, class: fpr32 }
936 # CHECK-NEXT: - { id: 2, class: fpr32 }
934 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
935 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
936 # CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' }
937937 registers:
938938 - { id: 0, class: fpr }
939939 - { id: 1, class: fpr }
960960 regBankSelected: true
961961
962962 # CHECK: registers:
963 # CHECK-NEXT: - { id: 0, class: fpr64 }
964 # CHECK-NEXT: - { id: 1, class: fpr64 }
965 # CHECK-NEXT: - { id: 2, class: fpr64 }
963 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
964 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
965 # CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' }
966966 registers:
967967 - { id: 0, class: fpr }
968968 - { id: 1, class: fpr }
989989 regBankSelected: true
990990
991991 # CHECK: registers:
992 # CHECK-NEXT: - { id: 0, class: fpr32 }
993 # CHECK-NEXT: - { id: 1, class: fpr32 }
994 # CHECK-NEXT: - { id: 2, class: fpr32 }
992 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
993 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
994 # CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' }
995995 registers:
996996 - { id: 0, class: fpr }
997997 - { id: 1, class: fpr }
10181018 regBankSelected: true
10191019
10201020 # CHECK: registers:
1021 # CHECK-NEXT: - { id: 0, class: fpr64 }
1022 # CHECK-NEXT: - { id: 1, class: fpr64 }
1023 # CHECK-NEXT: - { id: 2, class: fpr64 }
1021 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
1022 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
1023 # CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' }
10241024 registers:
10251025 - { id: 0, class: fpr }
10261026 - { id: 1, class: fpr }
1818 legalized: true
1919 regBankSelected: true
2020 # CHECK: registers:
21 # CHECK-NEXT: - { id: 0, class: gpr32all }
22 # CHECK-NEXT: - { id: 1, class: gpr32all }
21 # CHECK-NEXT: - { id: 0, class: gpr32all, preferred-register: '' }
22 # CHECK-NEXT: - { id: 1, class: gpr32all, preferred-register: '' }
2323 registers:
2424 - { id: 0, class: gpr }
2525 - { id: 1, class: gpr }
4343 regBankSelected: true
4444
4545 # CHECK: registers:
46 # CHECK-NEXT: - { id: 0, class: fpr32 }
47 # CHECK-NEXT: - { id: 1, class: fpr32 }
46 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
47 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
4848 registers:
4949 - { id: 0, class: fpr }
5050 - { id: 1, class: fpr }
6868 regBankSelected: true
6969
7070 # CHECK: registers:
71 # CHECK-NEXT: - { id: 0, class: gpr32all }
72 # CHECK-NEXT: - { id: 1, class: fpr32 }
71 # CHECK-NEXT: - { id: 0, class: gpr32all, preferred-register: '' }
72 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
7373 registers:
7474 - { id: 0, class: gpr }
7575 - { id: 1, class: fpr }
9393 regBankSelected: true
9494
9595 # CHECK: registers:
96 # CHECK-NEXT: - { id: 0, class: fpr32 }
97 # CHECK-NEXT: - { id: 1, class: gpr32all }
96 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
97 # CHECK-NEXT: - { id: 1, class: gpr32all, preferred-register: '' }
9898 registers:
9999 - { id: 0, class: fpr }
100100 - { id: 1, class: gpr }
118118 regBankSelected: true
119119
120120 # CHECK: registers:
121 # CHECK-NEXT: - { id: 0, class: gpr64all }
122 # CHECK-NEXT: - { id: 1, class: gpr64all }
121 # CHECK-NEXT: - { id: 0, class: gpr64all, preferred-register: '' }
122 # CHECK-NEXT: - { id: 1, class: gpr64all, preferred-register: '' }
123123 registers:
124124 - { id: 0, class: gpr }
125125 - { id: 1, class: gpr }
143143 regBankSelected: true
144144
145145 # CHECK: registers:
146 # CHECK-NEXT: - { id: 0, class: fpr64 }
147 # CHECK-NEXT: - { id: 1, class: fpr64 }
146 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
147 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
148148 registers:
149149 - { id: 0, class: fpr }
150150 - { id: 1, class: fpr }
168168 regBankSelected: true
169169
170170 # CHECK: registers:
171 # CHECK-NEXT: - { id: 0, class: gpr64all }
172 # CHECK-NEXT: - { id: 1, class: fpr64 }
171 # CHECK-NEXT: - { id: 0, class: gpr64all, preferred-register: '' }
172 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
173173 registers:
174174 - { id: 0, class: gpr }
175175 - { id: 1, class: fpr }
192192 regBankSelected: true
193193
194194 # CHECK: registers:
195 # CHECK-NEXT: - { id: 0, class: fpr64 }
196 # CHECK-NEXT: - { id: 1, class: gpr64all }
195 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
196 # CHECK-NEXT: - { id: 1, class: gpr64all, preferred-register: '' }
197197 registers:
198198 - { id: 0, class: fpr }
199199 - { id: 1, class: gpr }
3333 regBankSelected: true
3434
3535 # CHECK: registers:
36 # CHECK: - { id: 0, class: fpr64 }
37 # CHECK: - { id: 1, class: fpr32 }
36 # CHECK: - { id: 0, class: fpr64, preferred-register: '' }
37 # CHECK: - { id: 1, class: fpr32, preferred-register: '' }
3838 registers:
3939 - { id: 0, class: fpr }
4040 - { id: 1, class: fpr }
5858 regBankSelected: true
5959
6060 # CHECK: registers:
61 # CHECK: - { id: 0, class: fpr32 }
62 # CHECK: - { id: 1, class: fpr64 }
61 # CHECK: - { id: 0, class: fpr32, preferred-register: '' }
62 # CHECK: - { id: 1, class: fpr64, preferred-register: '' }
6363 registers:
6464 - { id: 0, class: fpr }
6565 - { id: 1, class: fpr }
8383 regBankSelected: true
8484
8585 # CHECK: registers:
86 # CHECK-NEXT: - { id: 0, class: gpr32 }
87 # CHECK-NEXT: - { id: 1, class: fpr32 }
86 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
87 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
8888 registers:
8989 - { id: 0, class: gpr }
9090 - { id: 1, class: fpr }
108108 regBankSelected: true
109109
110110 # CHECK: registers:
111 # CHECK-NEXT: - { id: 0, class: gpr64 }
112 # CHECK-NEXT: - { id: 1, class: fpr32 }
111 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
112 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
113113 registers:
114114 - { id: 0, class: gpr }
115115 - { id: 1, class: fpr }
133133 regBankSelected: true
134134
135135 # CHECK: registers:
136 # CHECK-NEXT: - { id: 0, class: gpr32 }
137 # CHECK-NEXT: - { id: 1, class: fpr64 }
136 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
137 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
138138 registers:
139139 - { id: 0, class: gpr }
140140 - { id: 1, class: fpr }
158158 regBankSelected: true
159159
160160 # CHECK: registers:
161 # CHECK-NEXT: - { id: 0, class: gpr64 }
162 # CHECK-NEXT: - { id: 1, class: fpr64 }
161 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
162 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
163163 registers:
164164 - { id: 0, class: gpr }
165165 - { id: 1, class: fpr }
183183 regBankSelected: true
184184
185185 # CHECK: registers:
186 # CHECK-NEXT: - { id: 0, class: gpr32 }
187 # CHECK-NEXT: - { id: 1, class: fpr32 }
186 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
187 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
188188 registers:
189189 - { id: 0, class: gpr }
190190 - { id: 1, class: fpr }
208208 regBankSelected: true
209209
210210 # CHECK: registers:
211 # CHECK-NEXT: - { id: 0, class: gpr64 }
212 # CHECK-NEXT: - { id: 1, class: fpr32 }
211 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
212 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
213213 registers:
214214 - { id: 0, class: gpr }
215215 - { id: 1, class: fpr }
233233 regBankSelected: true
234234
235235 # CHECK: registers:
236 # CHECK-NEXT: - { id: 0, class: gpr32 }
237 # CHECK-NEXT: - { id: 1, class: fpr64 }
236 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
237 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
238238 registers:
239239 - { id: 0, class: gpr }
240240 - { id: 1, class: fpr }
258258 regBankSelected: true
259259
260260 # CHECK: registers:
261 # CHECK-NEXT: - { id: 0, class: gpr64 }
262 # CHECK-NEXT: - { id: 1, class: fpr64 }
261 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
262 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
263263 registers:
264264 - { id: 0, class: gpr }
265265 - { id: 1, class: fpr }
283283 regBankSelected: true
284284
285285 # CHECK: registers:
286 # CHECK-NEXT: - { id: 0, class: fpr32 }
287 # CHECK-NEXT: - { id: 1, class: gpr32 }
286 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
287 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
288288 registers:
289289 - { id: 0, class: fpr }
290290 - { id: 1, class: gpr }
308308 regBankSelected: true
309309
310310 # CHECK: registers:
311 # CHECK-NEXT: - { id: 0, class: fpr64 }
312 # CHECK-NEXT: - { id: 1, class: gpr32 }
311 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
312 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
313313 registers:
314314 - { id: 0, class: fpr }
315315 - { id: 1, class: gpr }
333333 regBankSelected: true
334334
335335 # CHECK: registers:
336 # CHECK-NEXT: - { id: 0, class: fpr32 }
337 # CHECK-NEXT: - { id: 1, class: gpr64 }
336 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
337 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
338338 registers:
339339 - { id: 0, class: fpr }
340340 - { id: 1, class: gpr }
358358 regBankSelected: true
359359
360360 # CHECK: registers:
361 # CHECK-NEXT: - { id: 0, class: fpr64 }
362 # CHECK-NEXT: - { id: 1, class: gpr64 }
361 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
362 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
363363 registers:
364364 - { id: 0, class: fpr }
365365 - { id: 1, class: gpr }
383383 regBankSelected: true
384384
385385 # CHECK: registers:
386 # CHECK-NEXT: - { id: 0, class: fpr32 }
387 # CHECK-NEXT: - { id: 1, class: gpr32 }
386 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
387 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
388388 registers:
389389 - { id: 0, class: fpr }
390390 - { id: 1, class: gpr }
408408 regBankSelected: true
409409
410410 # CHECK: registers:
411 # CHECK-NEXT: - { id: 0, class: fpr64 }
412 # CHECK-NEXT: - { id: 1, class: gpr32 }
411 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
412 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
413413 registers:
414414 - { id: 0, class: fpr }
415415 - { id: 1, class: gpr }
433433 regBankSelected: true
434434
435435 # CHECK: registers:
436 # CHECK-NEXT: - { id: 0, class: fpr32 }
437 # CHECK-NEXT: - { id: 1, class: gpr64 }
436 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
437 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
438438 registers:
439439 - { id: 0, class: fpr }
440440 - { id: 1, class: gpr }
458458 regBankSelected: true
459459
460460 # CHECK: registers:
461 # CHECK-NEXT: - { id: 0, class: fpr64 }
462 # CHECK-NEXT: - { id: 1, class: gpr64 }
461 # CHECK-NEXT: - { id: 0, class: fpr64, preferred-register: '' }
462 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
463463 registers:
464464 - { id: 0, class: fpr }
465465 - { id: 1, class: gpr }
2323 regBankSelected: true
2424
2525 # CHECK: registers:
26 # CHECK-NEXT: - { id: 0, class: gpr32all }
27 # CHECK-NEXT: - { id: 1, class: gpr64all }
28 # CHECK-NEXT: - { id: 2, class: gpr64all }
26 # CHECK-NEXT: - { id: 0, class: gpr32all, preferred-register: '' }
27 # CHECK-NEXT: - { id: 1, class: gpr64all, preferred-register: '' }
28 # CHECK-NEXT: - { id: 2, class: gpr64all, preferred-register: '' }
2929 registers:
3030 - { id: 0, class: gpr }
3131 - { id: 1, class: gpr }
5050 regBankSelected: true
5151
5252 # CHECK: registers:
53 # CHECK-NEXT: - { id: 0, class: gpr32all }
54 # CHECK-NEXT: - { id: 1, class: gpr32all }
53 # CHECK-NEXT: - { id: 0, class: gpr32all, preferred-register: '' }
54 # CHECK-NEXT: - { id: 1, class: gpr32all, preferred-register: '' }
5555 registers:
5656 - { id: 0, class: gpr }
5757 - { id: 1, class: gpr }
7575 regBankSelected: true
7676
7777 # CHECK: registers:
78 # CHECK-NEXT: - { id: 0, class: gpr32 }
79 # CHECK-NEXT: - { id: 1, class: gpr64 }
80 # CHECK-NEXT: - { id: 2, class: gpr64 }
78 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
79 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
80 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
8181 registers:
8282 - { id: 0, class: gpr }
8383 - { id: 1, class: gpr }
102102 regBankSelected: true
103103
104104 # CHECK: registers:
105 # CHECK-NEXT: - { id: 0, class: gpr32 }
106 # CHECK-NEXT: - { id: 1, class: gpr32 }
105 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
106 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
107107 registers:
108108 - { id: 0, class: gpr }
109109 - { id: 1, class: gpr }
127127 regBankSelected: true
128128
129129 # CHECK: registers:
130 # CHECK-NEXT: - { id: 0, class: gpr32 }
131 # CHECK-NEXT: - { id: 1, class: gpr32 }
130 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
131 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
132132 registers:
133133 - { id: 0, class: gpr }
134134 - { id: 1, class: gpr }
152152 regBankSelected: true
153153
154154 # CHECK: registers:
155 # CHECK-NEXT: - { id: 0, class: gpr32 }
156 # CHECK-NEXT: - { id: 1, class: gpr32 }
155 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
156 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
157157 registers:
158158 - { id: 0, class: gpr }
159159 - { id: 1, class: gpr }
177177 regBankSelected: true
178178
179179 # CHECK: registers:
180 # CHECK-NEXT: - { id: 0, class: gpr32 }
181 # CHECK-NEXT: - { id: 1, class: gpr64 }
182 # CHECK-NEXT: - { id: 2, class: gpr64 }
180 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
181 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
182 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
183183 registers:
184184 - { id: 0, class: gpr }
185185 - { id: 1, class: gpr }
204204 regBankSelected: true
205205
206206 # CHECK: registers:
207 # CHECK-NEXT: - { id: 0, class: gpr32 }
208 # CHECK-NEXT: - { id: 1, class: gpr32 }
207 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
208 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
209209 registers:
210210 - { id: 0, class: gpr }
211211 - { id: 1, class: gpr }
229229 regBankSelected: true
230230
231231 # CHECK: registers:
232 # CHECK-NEXT: - { id: 0, class: gpr32 }
233 # CHECK-NEXT: - { id: 1, class: gpr32 }
232 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
233 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
234234 registers:
235235 - { id: 0, class: gpr }
236236 - { id: 1, class: gpr }
254254 regBankSelected: true
255255
256256 # CHECK: registers:
257 # CHECK-NEXT: - { id: 0, class: gpr32 }
258 # CHECK-NEXT: - { id: 1, class: gpr32 }
257 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
258 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
259259 registers:
260260 - { id: 0, class: gpr }
261261 - { id: 1, class: gpr }
1717 regBankSelected: true
1818
1919 # CHECK: registers:
20 # CHECK-NEXT: - { id: 0, class: gpr64all }
21 # CHECK-NEXT: - { id: 1, class: gpr64all }
20 # CHECK-NEXT: - { id: 0, class: gpr64all, preferred-register: '' }
21 # CHECK-NEXT: - { id: 1, class: gpr64all, preferred-register: '' }
2222 registers:
2323 - { id: 0, class: gpr }
2424 - { id: 1, class: gpr }
4040 regBankSelected: true
4141
4242 # CHECK: registers:
43 # CHECK-NEXT: - { id: 0, class: gpr64 }
44 # CHECK-NEXT: - { id: 1, class: gpr64 }
43 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
44 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
4545 registers:
4646 - { id: 0, class: gpr }
4747 - { id: 1, class: gpr }
6363 regBankSelected: true
6464
6565 # CHECK: registers:
66 # CHECK-NEXT: - { id: 0, class: gpr64 }
67 # CHECK-NEXT: - { id: 1, class: gpr32 }
66 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
67 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
6868 registers:
6969 - { id: 0, class: gpr }
7070 - { id: 1, class: gpr }
8686 regBankSelected: true
8787
8888 # CHECK: registers:
89 # CHECK-NEXT: - { id: 0, class: gpr64 }
90 # CHECK-NEXT: - { id: 1, class: gpr32 }
89 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
90 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
9191 registers:
9292 - { id: 0, class: gpr }
9393 - { id: 1, class: gpr }
109109 regBankSelected: true
110110
111111 # CHECK: registers:
112 # CHECK-NEXT: - { id: 0, class: gpr64 }
113 # CHECK-NEXT: - { id: 1, class: gpr32 }
112 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
113 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
114114 registers:
115115 - { id: 0, class: gpr }
116116 - { id: 1, class: gpr }
132132 regBankSelected: true
133133
134134 # CHECK: registers:
135 # CHECK-NEXT: - { id: 0, class: gpr64 }
136 # CHECK-NEXT: - { id: 1, class: gpr32 }
135 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
136 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
137137 registers:
138138 - { id: 0, class: gpr }
139139 - { id: 1, class: gpr }
3636 regBankSelected: true
3737
3838 # CHECK: registers:
39 # CHECK-NEXT: - { id: 0, class: gpr64sp }
40 # CHECK-NEXT: - { id: 1, class: gpr64 }
39 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
40 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
4141 registers:
4242 - { id: 0, class: gpr }
4343 - { id: 1, class: gpr }
6161 regBankSelected: true
6262
6363 # CHECK: registers:
64 # CHECK-NEXT: - { id: 0, class: gpr64sp }
65 # CHECK-NEXT: - { id: 1, class: gpr32 }
64 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
65 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
6666 registers:
6767 - { id: 0, class: gpr }
6868 - { id: 1, class: gpr }
8686 regBankSelected: true
8787
8888 # CHECK: registers:
89 # CHECK-NEXT: - { id: 0, class: gpr64sp }
90 # CHECK-NEXT: - { id: 1, class: gpr32 }
89 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
90 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
9191 registers:
9292 - { id: 0, class: gpr }
9393 - { id: 1, class: gpr }
111111 regBankSelected: true
112112
113113 # CHECK: registers:
114 # CHECK-NEXT: - { id: 0, class: gpr64sp }
115 # CHECK-NEXT: - { id: 1, class: gpr32 }
114 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
115 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
116116 registers:
117117 - { id: 0, class: gpr }
118118 - { id: 1, class: gpr }
136136 regBankSelected: true
137137
138138 # CHECK: registers:
139 # CHECK-NEXT: - { id: 0, class: gpr }
140 # CHECK-NEXT: - { id: 1, class: gpr64 }
139 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
140 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
141141 registers:
142142 - { id: 0, class: gpr }
143143 - { id: 1, class: gpr }
164164 regBankSelected: true
165165
166166 # CHECK: registers:
167 # CHECK-NEXT: - { id: 0, class: gpr64sp }
168 # CHECK-NEXT: - { id: 1, class: gpr }
169 # CHECK-NEXT: - { id: 2, class: gpr }
170 # CHECK-NEXT: - { id: 3, class: gpr64 }
167 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
168 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
169 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
170 # CHECK-NEXT: - { id: 3, class: gpr64, preferred-register: '' }
171171 registers:
172172 - { id: 0, class: gpr }
173173 - { id: 1, class: gpr }
196196 regBankSelected: true
197197
198198 # CHECK: registers:
199 # CHECK-NEXT: - { id: 0, class: gpr64sp }
200 # CHECK-NEXT: - { id: 1, class: gpr }
201 # CHECK-NEXT: - { id: 2, class: gpr }
202 # CHECK-NEXT: - { id: 3, class: gpr32 }
199 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
200 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
201 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
202 # CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' }
203203 registers:
204204 - { id: 0, class: gpr }
205205 - { id: 1, class: gpr }
228228 regBankSelected: true
229229
230230 # CHECK: registers:
231 # CHECK-NEXT: - { id: 0, class: gpr64sp }
232 # CHECK-NEXT: - { id: 1, class: gpr }
233 # CHECK-NEXT: - { id: 2, class: gpr }
234 # CHECK-NEXT: - { id: 3, class: gpr32 }
231 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
232 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
233 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
234 # CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' }
235235 registers:
236236 - { id: 0, class: gpr }
237237 - { id: 1, class: gpr }
260260 regBankSelected: true
261261
262262 # CHECK: registers:
263 # CHECK-NEXT: - { id: 0, class: gpr64sp }
264 # CHECK-NEXT: - { id: 1, class: gpr }
265 # CHECK-NEXT: - { id: 2, class: gpr }
266 # CHECK-NEXT: - { id: 3, class: gpr32 }
263 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
264 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
265 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
266 # CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' }
267267 registers:
268268 - { id: 0, class: gpr }
269269 - { id: 1, class: gpr }
292292 regBankSelected: true
293293
294294 # CHECK: registers:
295 # CHECK-NEXT: - { id: 0, class: gpr64sp }
296 # CHECK-NEXT: - { id: 1, class: fpr64 }
295 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
296 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
297297 registers:
298298 - { id: 0, class: gpr }
299299 - { id: 1, class: fpr }
317317 regBankSelected: true
318318
319319 # CHECK: registers:
320 # CHECK-NEXT: - { id: 0, class: gpr64sp }
321 # CHECK-NEXT: - { id: 1, class: fpr32 }
320 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
321 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
322322 registers:
323323 - { id: 0, class: gpr }
324324 - { id: 1, class: fpr }
342342 regBankSelected: true
343343
344344 # CHECK: registers:
345 # CHECK-NEXT: - { id: 0, class: gpr64sp }
346 # CHECK-NEXT: - { id: 1, class: fpr16 }
345 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
346 # CHECK-NEXT: - { id: 1, class: fpr16, preferred-register: '' }
347347 registers:
348348 - { id: 0, class: gpr }
349349 - { id: 1, class: fpr }
367367 regBankSelected: true
368368
369369 # CHECK: registers:
370 # CHECK-NEXT: - { id: 0, class: gpr64sp }
371 # CHECK-NEXT: - { id: 1, class: fpr8 }
370 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
371 # CHECK-NEXT: - { id: 1, class: fpr8, preferred-register: '' }
372372 registers:
373373 - { id: 0, class: gpr }
374374 - { id: 1, class: fpr }
392392 regBankSelected: true
393393
394394 # CHECK: registers:
395 # CHECK-NEXT: - { id: 0, class: gpr64sp }
396 # CHECK-NEXT: - { id: 1, class: gpr }
397 # CHECK-NEXT: - { id: 2, class: gpr }
398 # CHECK-NEXT: - { id: 3, class: fpr64 }
395 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
396 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
397 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
398 # CHECK-NEXT: - { id: 3, class: fpr64, preferred-register: '' }
399399 registers:
400400 - { id: 0, class: gpr }
401401 - { id: 1, class: gpr }
424424 regBankSelected: true
425425
426426 # CHECK: registers:
427 # CHECK-NEXT: - { id: 0, class: gpr64sp }
428 # CHECK-NEXT: - { id: 1, class: gpr }
429 # CHECK-NEXT: - { id: 2, class: gpr }
430 # CHECK-NEXT: - { id: 3, class: fpr32 }
427 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
428 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
429 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
430 # CHECK-NEXT: - { id: 3, class: fpr32, preferred-register: '' }
431431 registers:
432432 - { id: 0, class: gpr }
433433 - { id: 1, class: gpr }
456456 regBankSelected: true
457457
458458 # CHECK: registers:
459 # CHECK-NEXT: - { id: 0, class: gpr64sp }
460 # CHECK-NEXT: - { id: 1, class: gpr }
461 # CHECK-NEXT: - { id: 2, class: gpr }
462 # CHECK-NEXT: - { id: 3, class: fpr16 }
459 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
460 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
461 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
462 # CHECK-NEXT: - { id: 3, class: fpr16, preferred-register: '' }
463463 registers:
464464 - { id: 0, class: gpr }
465465 - { id: 1, class: gpr }
488488 regBankSelected: true
489489
490490 # CHECK: registers:
491 # CHECK-NEXT: - { id: 0, class: gpr64sp }
492 # CHECK-NEXT: - { id: 1, class: gpr }
493 # CHECK-NEXT: - { id: 2, class: gpr }
494 # CHECK-NEXT: - { id: 3, class: fpr8 }
491 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
492 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
493 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
494 # CHECK-NEXT: - { id: 3, class: fpr8, preferred-register: '' }
495495 registers:
496496 - { id: 0, class: gpr }
497497 - { id: 1, class: gpr }
1212 regBankSelected: true
1313
1414 # CHECK: registers:
15 # CHECK-NEXT: - { id: 0, class: gpr64 }
16 # CHECK-NEXT: - { id: 1, class: gpr32 }
17 # CHECK-NEXT: - { id: 2, class: gpr32 }
18 # CHECK-NEXT: - { id: 3, class: gpr }
19 # CHECK-NEXT: - { id: 4, class: gpr }
20 # CHECK-NEXT: - { id: 5, class: gpr }
21 # CHECK-NEXT: - { id: 6, class: gpr64 }
15 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
16 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
17 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
18 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
19 # CHECK-NEXT: - { id: 4, class: gpr, preferred-register: '' }
20 # CHECK-NEXT: - { id: 5, class: gpr, preferred-register: '' }
21 # CHECK-NEXT: - { id: 6, class: gpr64, preferred-register: '' }
2222 registers:
2323 - { id: 0, class: gpr }
2424 - { id: 1, class: gpr }
3434 regBankSelected: true
3535
3636 # CHECK: registers:
37 # CHECK-NEXT: - { id: 0, class: gpr64sp }
38 # CHECK-NEXT: - { id: 1, class: gpr64 }
37 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
38 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
3939 registers:
4040 - { id: 0, class: gpr }
4141 - { id: 1, class: gpr }
6161 regBankSelected: true
6262
6363 # CHECK: registers:
64 # CHECK-NEXT: - { id: 0, class: gpr64sp }
65 # CHECK-NEXT: - { id: 1, class: gpr32 }
64 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
65 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
6666 registers:
6767 - { id: 0, class: gpr }
6868 - { id: 1, class: gpr }
8888 regBankSelected: true
8989
9090 # CHECK: registers:
91 # CHECK-NEXT: - { id: 0, class: gpr64sp }
92 # CHECK-NEXT: - { id: 1, class: gpr32 }
91 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
92 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
9393 registers:
9494 - { id: 0, class: gpr }
9595 - { id: 1, class: gpr }
115115 regBankSelected: true
116116
117117 # CHECK: registers:
118 # CHECK-NEXT: - { id: 0, class: gpr64sp }
119 # CHECK-NEXT: - { id: 1, class: gpr32 }
118 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
119 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
120120 registers:
121121 - { id: 0, class: gpr }
122122 - { id: 1, class: gpr }
142142 regBankSelected: true
143143
144144 # CHECK: registers:
145 # CHECK-NEXT: - { id: 0, class: gpr64sp }
146 # CHECK-NEXT: - { id: 1, class: gpr }
145 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
146 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
147147 registers:
148148 - { id: 0, class: gpr }
149149 - { id: 1, class: gpr }
168168 regBankSelected: true
169169
170170 # CHECK: registers:
171 # CHECK-NEXT: - { id: 0, class: gpr64sp }
172 # CHECK-NEXT: - { id: 1, class: gpr }
171 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
172 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
173173 registers:
174174 - { id: 0, class: gpr }
175175 - { id: 1, class: gpr }
194194 regBankSelected: true
195195
196196 # CHECK: registers:
197 # CHECK-NEXT: - { id: 0, class: gpr64 }
198 # CHECK-NEXT: - { id: 1, class: gpr }
197 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
198 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
199199 registers:
200200 - { id: 0, class: gpr }
201201 - { id: 1, class: gpr }
222222 regBankSelected: true
223223
224224 # CHECK: registers:
225 # CHECK-NEXT: - { id: 0, class: gpr64sp }
226 # CHECK-NEXT: - { id: 1, class: gpr64 }
227 # CHECK-NEXT: - { id: 2, class: gpr }
228 # CHECK-NEXT: - { id: 3, class: gpr }
225 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
226 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
227 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
228 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
229229 registers:
230230 - { id: 0, class: gpr }
231231 - { id: 1, class: gpr }
254254 regBankSelected: true
255255
256256 # CHECK: registers:
257 # CHECK-NEXT: - { id: 0, class: gpr64sp }
258 # CHECK-NEXT: - { id: 1, class: gpr32 }
259 # CHECK-NEXT: - { id: 2, class: gpr }
260 # CHECK-NEXT: - { id: 3, class: gpr }
257 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
258 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
259 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
260 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
261261 registers:
262262 - { id: 0, class: gpr }
263263 - { id: 1, class: gpr }
286286 regBankSelected: true
287287
288288 # CHECK: registers:
289 # CHECK-NEXT: - { id: 0, class: gpr64sp }
290 # CHECK-NEXT: - { id: 1, class: gpr32 }
291 # CHECK-NEXT: - { id: 2, class: gpr }
292 # CHECK-NEXT: - { id: 3, class: gpr }
289 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
290 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
291 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
292 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
293293 registers:
294294 - { id: 0, class: gpr }
295295 - { id: 1, class: gpr }
318318 regBankSelected: true
319319
320320 # CHECK: registers:
321 # CHECK-NEXT: - { id: 0, class: gpr64sp }
322 # CHECK-NEXT: - { id: 1, class: gpr32 }
323 # CHECK-NEXT: - { id: 2, class: gpr }
324 # CHECK-NEXT: - { id: 3, class: gpr }
321 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
322 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
323 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
324 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
325325 registers:
326326 - { id: 0, class: gpr }
327327 - { id: 1, class: gpr }
350350 regBankSelected: true
351351
352352 # CHECK: registers:
353 # CHECK-NEXT: - { id: 0, class: gpr64sp }
354 # CHECK-NEXT: - { id: 1, class: fpr64 }
353 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
354 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
355355 registers:
356356 - { id: 0, class: gpr }
357357 - { id: 1, class: fpr }
377377 regBankSelected: true
378378
379379 # CHECK: registers:
380 # CHECK-NEXT: - { id: 0, class: gpr64sp }
381 # CHECK-NEXT: - { id: 1, class: fpr32 }
380 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
381 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
382382 registers:
383383 - { id: 0, class: gpr }
384384 - { id: 1, class: fpr }
404404 regBankSelected: true
405405
406406 # CHECK: registers:
407 # CHECK-NEXT: - { id: 0, class: gpr64sp }
408 # CHECK-NEXT: - { id: 1, class: fpr64 }
409 # CHECK-NEXT: - { id: 2, class: gpr }
410 # CHECK-NEXT: - { id: 3, class: gpr }
407 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
408 # CHECK-NEXT: - { id: 1, class: fpr64, preferred-register: '' }
409 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
410 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
411411 registers:
412412 - { id: 0, class: gpr }
413413 - { id: 1, class: fpr }
436436 regBankSelected: true
437437
438438 # CHECK: registers:
439 # CHECK-NEXT: - { id: 0, class: gpr64sp }
440 # CHECK-NEXT: - { id: 1, class: fpr32 }
441 # CHECK-NEXT: - { id: 2, class: gpr }
442 # CHECK-NEXT: - { id: 3, class: gpr }
439 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
440 # CHECK-NEXT: - { id: 1, class: fpr32, preferred-register: '' }
441 # CHECK-NEXT: - { id: 2, class: gpr, preferred-register: '' }
442 # CHECK-NEXT: - { id: 3, class: gpr, preferred-register: '' }
443443 registers:
444444 - { id: 0, class: gpr }
445445 - { id: 1, class: fpr }
1414 regBankSelected: true
1515
1616 # CHECK: registers:
17 # CHECK-NEXT: - { id: 0, class: gpr64 }
18 # CHECK-NEXT: - { id: 1, class: gpr32 }
17 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
18 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
1919 registers:
2020 - { id: 0, class: gpr }
2121 - { id: 1, class: gpr }
3838 regBankSelected: true
3939
4040 # CHECK: registers:
41 # CHECK-NEXT: - { id: 0, class: gpr64 }
42 # CHECK-NEXT: - { id: 1, class: gpr32 }
41 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
42 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
4343 registers:
4444 - { id: 0, class: gpr }
4545 - { id: 1, class: gpr }
6262 regBankSelected: true
6363
6464 # CHECK: registers:
65 # CHECK-NEXT: - { id: 0, class: gpr32 }
66 # CHECK-NEXT: - { id: 1, class: gpr32 }
65 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
66 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
6767 registers:
6868 - { id: 0, class: gpr }
6969 - { id: 1, class: gpr }
1919 regBankSelected: true
2020
2121 # CHECK: registers:
22 # CHECK-NEXT: - { id: 0, class: gpr32 }
23 # CHECK-NEXT: - { id: 1, class: gpr32 }
24 # CHECK-NEXT: - { id: 2, class: gpr32 }
22 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
23 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
24 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
2525 registers:
2626 - { id: 0, class: gpr }
2727 - { id: 1, class: gpr }
4949 regBankSelected: true
5050
5151 # CHECK: registers:
52 # CHECK-NEXT: - { id: 0, class: gpr64 }
53 # CHECK-NEXT: - { id: 1, class: gpr64 }
54 # CHECK-NEXT: - { id: 2, class: gpr64 }
52 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
53 # CHECK-NEXT: - { id: 1, class: gpr64, preferred-register: '' }
54 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
5555 registers:
5656 - { id: 0, class: gpr }
5757 - { id: 1, class: gpr }
8080 regBankSelected: true
8181
8282 # CHECK: registers:
83 # CHECK-NEXT: - { id: 0, class: gpr32 }
84 # CHECK-NEXT: - { id: 1, class: gpr }
85 # CHECK-NEXT: - { id: 2, class: gpr32 }
83 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
84 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
85 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
8686 registers:
8787 - { id: 0, class: gpr }
8888 - { id: 1, class: gpr }
109109 regBankSelected: true
110110
111111 # CHECK: registers:
112 # CHECK-NEXT: - { id: 0, class: gpr64 }
113 # CHECK-NEXT: - { id: 1, class: gpr }
114 # CHECK-NEXT: - { id: 2, class: gpr64 }
112 # CHECK-NEXT: - { id: 0, class: gpr64, preferred-register: '' }
113 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
114 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
115115 registers:
116116 - { id: 0, class: gpr }
117117 - { id: 1, class: gpr }
138138 regBankSelected: true
139139
140140 # CHECK: registers:
141 # CHECK-NEXT: - { id: 0, class: gpr32 }
142 # CHECK-NEXT: - { id: 1, class: gpr }
143 # CHECK-NEXT: - { id: 2, class: gpr32 }
141 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
142 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
143 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
144144 registers:
145145 - { id: 0, class: gpr }
146146 - { id: 1, class: gpr }
3434 regBankSelected: true
3535
3636 # CHECK: registers:
37 # CHECK-NEXT: - { id: 0, class: gpr64sp }
37 # CHECK-NEXT: - { id: 0, class: gpr64sp, preferred-register: '' }
3838 registers:
3939 - { id: 0, class: gpr }
4040
131131 regBankSelected: true
132132
133133 # CHECK: registers:
134 # CHECK-NEXT: - { id: 0, class: gpr32 }
135 # CHECK-NEXT: - { id: 1, class: gpr32 }
136 # CHECK-NEXT: - { id: 2, class: gpr64 }
137 # CHECK-NEXT: - { id: 3, class: gpr32 }
138 # CHECK-NEXT: - { id: 4, class: gpr64 }
139 # CHECK-NEXT: - { id: 5, class: gpr32 }
134 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
135 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
136 # CHECK-NEXT: - { id: 2, class: gpr64, preferred-register: '' }
137 # CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' }
138 # CHECK-NEXT: - { id: 4, class: gpr64, preferred-register: '' }
139 # CHECK-NEXT: - { id: 5, class: gpr32, preferred-register: '' }
140140 registers:
141141 - { id: 0, class: gpr }
142142 - { id: 1, class: gpr }
179179 regBankSelected: true
180180
181181 # CHECK: registers:
182 # CHECK-NEXT: - { id: 0, class: fpr32 }
183 # CHECK-NEXT: - { id: 1, class: gpr32 }
184 # CHECK-NEXT: - { id: 2, class: fpr64 }
185 # CHECK-NEXT: - { id: 3, class: gpr32 }
186 # CHECK-NEXT: - { id: 4, class: gpr32 }
187 # CHECK-NEXT: - { id: 5, class: gpr32 }
182 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
183 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
184 # CHECK-NEXT: - { id: 2, class: fpr64, preferred-register: '' }
185 # CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' }
186 # CHECK-NEXT: - { id: 4, class: gpr32, preferred-register: '' }
187 # CHECK-NEXT: - { id: 5, class: gpr32, preferred-register: '' }
188188 registers:
189189 - { id: 0, class: fpr }
190190 - { id: 1, class: gpr }
222222 tracksRegLiveness: true
223223
224224 # CHECK: registers:
225 # CHECK-NEXT: - { id: 0, class: fpr32 }
226 # CHECK-NEXT: - { id: 1, class: gpr32 }
227 # CHECK-NEXT: - { id: 2, class: fpr32 }
225 # CHECK-NEXT: - { id: 0, class: fpr32, preferred-register: '' }
226 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
227 # CHECK-NEXT: - { id: 2, class: fpr32, preferred-register: '' }
228228 registers:
229229 - { id: 0, class: fpr }
230230 - { id: 1, class: gpr }
259259 tracksRegLiveness: true
260260
261261 # CHECK: registers:
262 # CHECK-NEXT: - { id: 0, class: gpr32 }
263 # CHECK-NEXT: - { id: 1, class: gpr32 }
264 # CHECK-NEXT: - { id: 2, class: gpr32 }
265 # CHECK-NEXT: - { id: 3, class: gpr32 }
266 # CHECK-NEXT: - { id: 4, class: gpr64 }
267 # CHECK-NEXT: - { id: 5, class: gpr64 }
268 # CHECK-NEXT: - { id: 6, class: gpr64 }
269 # CHECK-NEXT: - { id: 7, class: gpr64 }
270 # CHECK-NEXT: - { id: 8, class: gpr64 }
271 # CHECK-NEXT: - { id: 9, class: gpr64 }
262 # CHECK-NEXT: - { id: 0, class: gpr32, preferred-register: '' }
263 # CHECK-NEXT: - { id: 1, class: gpr32, preferred-register: '' }
264 # CHECK-NEXT: - { id: 2, class: gpr32, preferred-register: '' }
265 # CHECK-NEXT: - { id: 3, class: gpr32, preferred-register: '' }
266 # CHECK-NEXT: - { id: 4, class: gpr64, preferred-register: '' }
267 # CHECK-NEXT: - { id: 5, class: gpr64, preferred-register: '' }
268 # CHECK-NEXT: - { id: 6, class: gpr64, preferred-register: '' }
269 # CHECK-NEXT: - { id: 7, class: gpr64, preferred-register: '' }
270 # CHECK-NEXT: - { id: 8, class: gpr64, preferred-register: '' }
271 # CHECK-NEXT: - { id: 9, class: gpr64, preferred-register: '' }
272272 registers:
273273 - { id: 0, class: gpr }
274274 - { id: 1, class: gpr }
33 i32, ...) {
44 ; CHECK-LABEL: name: test_varargs_sentinel
55 ; CHECK: fixedStack:
6 ; CHECK: - { id: [[VARARGS_SLOT:[0-9]+]], offset: 8
6 ; CHECK: - { id: [[VARARGS_SLOT:[0-9]+]], type: default, offset: 8
77 ; CHECK: body:
88 ; CHECK: [[LIST:%[0-9]+]] = COPY %x0
99 ; CHECK: [[VARARGS_AREA:%[0-9]+]] = ADDXri %fixed-stack.[[VARARGS_SLOT]], 0, 0
2323
2424 # CHECK-LABEL: name: load_constant
2525 # CHECK: registers:
26 # CHECK: - { id: 0, class: sgpr }
27 # CHECK: - { id: 1, class: sgpr }
26 # CHECK: - { id: 0, class: sgpr, preferred-register: '' }
27 # CHECK: - { id: 1, class: sgpr, preferred-register: '' }
2828
2929 body: |
3030 bb.0:
3939
4040 # CHECK-LABEL: name: load_global_uniform
4141 # CHECK: registers:
42 # CHECK: - { id: 0, class: sgpr }
43 # CHECK: - { id: 1, class: sgpr }
42 # CHECK: - { id: 0, class: sgpr, preferred-register: '' }
43 # CHECK: - { id: 1, class: sgpr, preferred-register: '' }
4444
4545 body: |
4646 bb.0:
5555
5656 # CHECK-LABEL: name: load_global_non_uniform
5757 # CHECK: registers:
58 # CHECK: - { id: 0, class: sgpr }
59 # CHECK: - { id: 1, class: vgpr }
60 # CHECK: - { id: 2, class: vgpr }
58 # CHECK: - { id: 0, class: sgpr, preferred-register: '' }
59 # CHECK: - { id: 1, class: vgpr, preferred-register: '' }
60 # CHECK: - { id: 2, class: vgpr, preferred-register: '' }
6161
6262
6363 body: |
11
22 # Check that coalescer does not create wider register tuple than in source
33
4 # CHECK: - { id: 2, class: vreg_64 }
5 # CHECK: - { id: 3, class: vreg_64 }
6 # CHECK: - { id: 4, class: vreg_64 }
7 # CHECK: - { id: 5, class: vreg_96 }
8 # CHECK: - { id: 6, class: vreg_96 }
9 # CHECK: - { id: 7, class: vreg_128 }
10 # CHECK: - { id: 8, class: vreg_128 }
4 # CHECK: - { id: 2, class: vreg_64, preferred-register: '' }
5 # CHECK: - { id: 3, class: vreg_64, preferred-register: '' }
6 # CHECK: - { id: 4, class: vreg_64, preferred-register: '' }
7 # CHECK: - { id: 5, class: vreg_96, preferred-register: '' }
8 # CHECK: - { id: 6, class: vreg_96, preferred-register: '' }
9 # CHECK: - { id: 7, class: vreg_128, preferred-register: '' }
10 # CHECK: - { id: 8, class: vreg_128, preferred-register: '' }
1111 # No more registers shall be defined
1212 # CHECK-NEXT: liveins:
1313 # CHECK: FLAT_STORE_DWORDX2 %vgpr0_vgpr1, %4,
801801 - { id: 0, offset: 0, size: 1, alignment: 4, isImmutable: true, isAliased: false }
802802 - { id: 1, offset: 4, size: 4, alignment: 4, isImmutable: true, isAliased: false }
803803 - { id: 2, offset: 8, size: 4, alignment: 4, isImmutable: true, isAliased: false }
804 # CHECK-DAG: id: [[FI1:[0-9]+]], offset: 0
805 # CHECK-DAG: id: [[FI32:[0-9]+]], offset: 8
804 # CHECK-DAG: id: [[FI1:[0-9]+]], type: default, offset: 0, size: 1
805 # CHECK-DAG: id: [[FI32:[0-9]+]], type: default, offset: 8
806806 body: |
807807 bb.0:
808808 liveins: %r0, %r1, %r2, %r3
703703 ; CHECK: fixedStack:
704704 ; The parameters live in separate stack locations, one for each element that
705705 ; doesn't fit in the registers.
706 ; CHECK-DAG: id: [[FIRST_STACK_ID:[0-9]+]], offset: 0, size: 4
707 ; CHECK-DAG: id: [[LAST_STACK_ID:[-0]+]], offset: 60, size: 4
706 ; CHECK-DAG: id: [[FIRST_STACK_ID:[0-9]+]], type: default, offset: 0, size: 4,
707 ; CHECK-DAG: id: [[LAST_STACK_ID:[-0]+]], type: default, offset: 60, size: 4
708708 ; CHECK: liveins: %r0, %r1, %r2, %r3
709709 ; CHECK-DAG: [[R0:%[0-9]+]](s32) = COPY %r0
710710 ; CHECK-DAG: [[R1:%[0-9]+]](s32) = COPY %r1
756756 define arm_aapcscc [2 x float] @test_fp_arrays_aapcs([3 x double] %arr) {
757757 ; CHECK-LABEL: name: test_fp_arrays_aapcs
758758 ; CHECK: fixedStack:
759 ; CHECK: id: [[ARR2_ID:[0-9]+]], offset: 0, size: 8
759 ; CHECK: id: [[ARR2_ID:[0-9]+]], type: default, offset: 0, size: 8,
760760 ; CHECK: liveins: %r0, %r1, %r2, %r3
761761 ; CHECK: [[ARR0_0:%[0-9]+]](s32) = COPY %r0
762762 ; CHECK: [[ARR0_1:%[0-9]+]](s32) = COPY %r1
816816 define arm_aapcs_vfpcc [4 x float] @test_fp_arrays_aapcs_vfp([3 x double] %x, [3 x float] %y, [4 x double] %z) {
817817 ; CHECK-LABEL: name: test_fp_arrays_aapcs_vfp
818818 ; CHECK: fixedStack:
819 ; CHECK-DAG: id: [[Z0_ID:[0-9]+]], offset: 0, size: 8
820 ; CHECK-DAG: id: [[Z1_ID:[0-9]+]], offset: 8, size: 8
821 ; CHECK-DAG: id: [[Z2_ID:[0-9]+]], offset: 16, size: 8
822 ; CHECK-DAG: id: [[Z3_ID:[0-9]+]], offset: 24, size: 8
819 ; CHECK-DAG: id: [[Z0_ID:[0-9]+]], type: default, offset: 0, size: 8,
820 ; CHECK-DAG: id: [[Z1_ID:[0-9]+]], type: default, offset: 8, size: 8,
821 ; CHECK-DAG: id: [[Z2_ID:[0-9]+]], type: default, offset: 16, size: 8,
822 ; CHECK-DAG: id: [[Z3_ID:[0-9]+]], type: default, offset: 24, size: 8,
823823 ; CHECK: liveins: %d0, %d1, %d2, %s6, %s7, %s8
824824 ; CHECK: [[X0:%[0-9]+]](s64) = COPY %d0
825825 ; CHECK: [[X1:%[0-9]+]](s64) = COPY %d1
917917 ; CHECK: fixedStack:
918918 ; The parameters live in separate stack locations, one for each element that
919919 ; doesn't fit in the registers.
920 ; CHECK-DAG: id: [[FIRST_STACK_ID:[0-9]+]], offset: 0, size: 4
921 ; CHECK-DAG: id: [[LAST_STACK_ID:[-0]+]], offset: 76, size: 4
920 ; CHECK-DAG: id: [[FIRST_STACK_ID:[0-9]+]], type: default, offset: 0, size: 4,
921 ; CHECK-DAG: id: [[LAST_STACK_ID:[-0]+]], type: default, offset: 76, size: 4
922922 ; CHECK: liveins: %r0, %r1, %r2, %r3
923923 ; CHECK-DAG: [[R0:%[0-9]+]](s32) = COPY %r0
924924 ; CHECK-DAG: [[R1:%[0-9]+]](s32) = COPY %r1
980980 define arm_aapcscc {i32, i32} @test_structs({i32, i32} %x, {i32*, float, i32, double} %y) {
981981 ; CHECK-LABEL: test_structs
982982 ; CHECK: fixedStack:
983 ; CHECK-DAG: id: [[Y2_ID:[0-9]+]], offset: 0, size: 4
984 ; CHECK-DAG: id: [[Y3_ID:[0-9]+]], offset: 8, size: 8
983 ; CHECK-DAG: id: [[Y2_ID:[0-9]+]], type: default, offset: 0, size: 4,
984 ; CHECK-DAG: id: [[Y3_ID:[0-9]+]], type: default, offset: 8, size: 8,
985985 ; CHECK: liveins: %r0, %r1, %r2, %r3
986986 ; CHECK-DAG: [[X0:%[0-9]+]](s32) = COPY %r0
987987 ; CHECK-DAG: [[X1:%[0-9]+]](s32) = COPY %r1
316316 - { id: 0, offset: 0, size: 4, alignment: 4, isImmutable: true, isAliased: false }
317317 - { id: 1, offset: 4, size: 4, alignment: 4, isImmutable: true, isAliased: false }
318318 - { id: 2, offset: 8, size: 4, alignment: 4, isImmutable: true, isAliased: false }
319 # CHECK: id: [[FRAME_INDEX:[0-9]+]], offset: 8
319 # CHECK: id: [[FRAME_INDEX:[0-9]+]], type: default, offset: 8
320320 body: |
321321 bb.0:
322322 liveins: %r0, %r1, %r2, %r3
4444 regBankSelected: false
4545 selected: false
4646 # CHECK: registers:
47 # CHECK: - { id: 0, class: gprb }
48 # CHECK: - { id: 1, class: gprb }
49 # CHECK: - { id: 2, class: gprb }
47 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
48 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
49 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
5050
5151 registers:
5252 - { id: 0, class: _ }
7070 regBankSelected: false
7171 selected: false
7272 # CHECK: registers:
73 # CHECK: - { id: 0, class: gprb }
74 # CHECK: - { id: 1, class: gprb }
75 # CHECK: - { id: 2, class: gprb }
76 # CHECK: - { id: 3, class: gprb }
77 # CHECK: - { id: 4, class: gprb }
78 # CHECK: - { id: 5, class: gprb }
73 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
74 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
75 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
76 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
77 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
78 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
7979
8080 registers:
8181 - { id: 0, class: _ }
105105 regBankSelected: false
106106 selected: false
107107 # CHECK: registers:
108 # CHECK: - { id: 0, class: gprb }
109 # CHECK: - { id: 1, class: gprb }
110 # CHECK: - { id: 2, class: gprb }
111 # CHECK: - { id: 3, class: gprb }
112 # CHECK: - { id: 4, class: gprb }
113 # CHECK: - { id: 5, class: gprb }
108 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
109 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
110 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
111 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
112 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
113 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
114114
115115 registers:
116116 - { id: 0, class: _ }
140140 regBankSelected: false
141141 selected: false
142142 # CHECK: registers:
143 # CHECK: - { id: 0, class: gprb }
144 # CHECK: - { id: 1, class: gprb }
145 # CHECK: - { id: 2, class: gprb }
146 # CHECK: - { id: 3, class: gprb }
147 # CHECK: - { id: 4, class: gprb }
148 # CHECK: - { id: 5, class: gprb }
143 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
144 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
145 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
146 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
147 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
148 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
149149
150150 registers:
151151 - { id: 0, class: _ }
175175 regBankSelected: false
176176 selected: false
177177 # CHECK: registers:
178 # CHECK: - { id: 0, class: gprb }
179 # CHECK: - { id: 1, class: gprb }
180 # CHECK: - { id: 2, class: gprb }
178 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
179 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
180 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
181181
182182 registers:
183183 - { id: 0, class: _ }
201201 regBankSelected: false
202202 selected: false
203203 # CHECK: registers:
204 # CHECK: - { id: 0, class: gprb }
205 # CHECK: - { id: 1, class: gprb }
206 # CHECK: - { id: 2, class: gprb }
207 # CHECK: - { id: 3, class: gprb }
208 # CHECK: - { id: 4, class: gprb }
209 # CHECK: - { id: 5, class: gprb }
204 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
205 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
206 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
207 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
208 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
209 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
210210
211211 registers:
212212 - { id: 0, class: _ }
236236 regBankSelected: false
237237 selected: false
238238 # CHECK: registers:
239 # CHECK: - { id: 0, class: gprb }
240 # CHECK: - { id: 1, class: gprb }
241 # CHECK: - { id: 2, class: gprb }
242 # CHECK: - { id: 3, class: gprb }
243 # CHECK: - { id: 4, class: gprb }
244 # CHECK: - { id: 5, class: gprb }
239 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
240 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
241 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
242 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
243 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
244 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
245245
246246 registers:
247247 - { id: 0, class: _ }
271271 regBankSelected: false
272272 selected: false
273273 # CHECK: registers:
274 # CHECK: - { id: 0, class: gprb }
275 # CHECK: - { id: 1, class: gprb }
276 # CHECK: - { id: 2, class: gprb }
274 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
275 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
276 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
277277
278278 registers:
279279 - { id: 0, class: _ }
297297 regBankSelected: false
298298 selected: false
299299 # CHECK: registers:
300 # CHECK: - { id: 0, class: gprb }
301 # CHECK: - { id: 1, class: gprb }
302 # CHECK: - { id: 2, class: gprb }
303 # CHECK: - { id: 3, class: gprb }
304 # CHECK: - { id: 4, class: gprb }
305 # CHECK: - { id: 5, class: gprb }
300 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
301 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
302 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
303 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
304 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
305 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
306306
307307 registers:
308308 - { id: 0, class: _ }
332332 regBankSelected: false
333333 selected: false
334334 # CHECK: registers:
335 # CHECK: - { id: 0, class: gprb }
336 # CHECK: - { id: 1, class: gprb }
337 # CHECK: - { id: 2, class: gprb }
338 # CHECK: - { id: 3, class: gprb }
339 # CHECK: - { id: 4, class: gprb }
340 # CHECK: - { id: 5, class: gprb }
335 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
336 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
337 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
338 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
339 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
340 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
341341
342342 registers:
343343 - { id: 0, class: _ }
367367 regBankSelected: false
368368 selected: false
369369 # CHECK: registers:
370 # CHECK: - { id: 0, class: gprb }
371 # CHECK: - { id: 1, class: gprb }
372 # CHECK: - { id: 2, class: gprb }
370 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
371 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
372 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
373373
374374 registers:
375375 - { id: 0, class: _ }
393393 regBankSelected: false
394394 selected: false
395395 # CHECK: registers:
396 # CHECK: - { id: 0, class: gprb }
397 # CHECK: - { id: 1, class: gprb }
398 # CHECK: - { id: 2, class: gprb }
396 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
397 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
398 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
399399
400400 registers:
401401 - { id: 0, class: _ }
419419 regBankSelected: false
420420 selected: false
421421 # CHECK: registers:
422 # CHECK: - { id: 0, class: gprb }
423 # CHECK: - { id: 1, class: gprb }
424 # CHECK: - { id: 2, class: gprb }
425 # CHECK: - { id: 3, class: gprb }
426 # CHECK: - { id: 4, class: gprb }
427 # CHECK: - { id: 5, class: gprb }
428 # CHECK: - { id: 6, class: fprb }
422 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
423 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
424 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
425 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
426 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
427 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
428 # CHECK: - { id: 6, class: fprb, preferred-register: '' }
429429
430430 registers:
431431 - { id: 0, class: _ }
455455 regBankSelected: false
456456 selected: false
457457 # CHECK: registers:
458 # CHECK: - { id: 0, class: gprb }
459 # CHECK: - { id: 1, class: gprb }
460 # CHECK: - { id: 2, class: gprb }
461 # CHECK: - { id: 3, class: gprb }
462 # CHECK: - { id: 4, class: gprb }
463 # CHECK: - { id: 5, class: gprb }
464 # CHECK: - { id: 6, class: fprb }
458 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
459 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
460 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
461 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
462 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
463 # CHECK: - { id: 5, class: gprb, preferred-register: '' }
464 # CHECK: - { id: 6, class: fprb, preferred-register: '' }
465465
466466 registers:
467467 - { id: 0, class: _ }
497497 regBankSelected: false
498498 selected: false
499499 # CHECK: registers:
500 # CHECK: - { id: 0, class: gprb }
501 # CHECK: - { id: 1, class: gprb }
502 # CHECK: - { id: 2, class: gprb }
503 # CHECK: - { id: 3, class: gprb }
504 # CHECK: - { id: 4, class: gprb }
500 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
501 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
502 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
503 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
504 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
505505 registers:
506506 - { id: 0, class: _ }
507507 - { id: 1, class: _ }
530530 regBankSelected: false
531531 selected: false
532532 # CHECK: registers:
533 # CHECK: - { id: 0, class: gprb }
534 # CHECK: - { id: 1, class: gprb }
535 # CHECK: - { id: 2, class: gprb }
533 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
534 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
535 # CHECK: - { id: 2, class: gprb, preferred-register: '' }
536536
537537 registers:
538538 - { id: 0, class: _ }
555555 regBankSelected: false
556556 selected: false
557557 # CHECK: registers:
558 # CHECK: - { id: 0, class: gprb }
558 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
559559 registers:
560560 - { id: 0, class: _ }
561561 body: |
571571 regBankSelected: false
572572 selected: false
573573 # CHECK: registers:
574 # CHECK: - { id: 0, class: gprb }
575 # CHECK: - { id: 1, class: gprb }
574 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
575 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
576576 registers:
577577 - { id: 0, class: _ }
578578 - { id: 1, class: _ }
592592 regBankSelected: false
593593 selected: false
594594 # CHECK: registers:
595 # CHECK: - { id: 0, class: gprb }
596 # CHECK: - { id: 1, class: gprb }
595 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
596 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
597597 registers:
598598 - { id: 0, class: _ }
599599 - { id: 1, class: _ }
613613 regBankSelected: false
614614 selected: false
615615 # CHECK: registers:
616 # CHECK: - { id: 0, class: gprb }
617 # CHECK: - { id: 1, class: gprb }
616 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
617 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
618618 registers:
619619 - { id: 0, class: _ }
620620 - { id: 1, class: _ }
634634 regBankSelected: false
635635 selected: false
636636 # CHECK: registers:
637 # CHECK: - { id: 0, class: fprb }
638 # CHECK: - { id: 1, class: fprb }
639 # CHECK: - { id: 2, class: fprb }
637 # CHECK: - { id: 0, class: fprb, preferred-register: '' }
638 # CHECK: - { id: 1, class: fprb, preferred-register: '' }
639 # CHECK: - { id: 2, class: fprb, preferred-register: '' }
640640
641641 registers:
642642 - { id: 0, class: _ }
660660 regBankSelected: false
661661 selected: false
662662 # CHECK: registers:
663 # CHECK: - { id: 0, class: fprb }
664 # CHECK: - { id: 1, class: fprb }
665 # CHECK: - { id: 2, class: fprb }
663 # CHECK: - { id: 0, class: fprb, preferred-register: '' }
664 # CHECK: - { id: 1, class: fprb, preferred-register: '' }
665 # CHECK: - { id: 2, class: fprb, preferred-register: '' }
666666
667667 registers:
668668 - { id: 0, class: _ }
686686 regBankSelected: false
687687 selected: false
688688 # CHECK: registers:
689 # CHECK: - { id: 0, class: gprb }
690 # CHECK: - { id: 1, class: gprb }
691 # CHECK: - { id: 2, class: fprb }
692 # CHECK: - { id: 3, class: gprb }
693 # CHECK: - { id: 4, class: gprb }
689 # CHECK: - { id: 0, class: gprb, preferred-register: '' }
690 # CHECK: - { id: 1, class: gprb, preferred-register: '' }
691 # CHECK: - { id: 2, class: fprb, preferred-register: '' }
692 # CHECK: - { id: 3, class: gprb, preferred-register: '' }
693 # CHECK: - { id: 4, class: gprb, preferred-register: '' }
694694
695695 registers:
696696 - { id: 0, class: _ }
33 ; this point. Notably, if it isn't is will be invalid and reference a
44 ; deleted block (%bb.-1.if.end)
55
6 ; CHECK-NOT: savePoint:
7 ; CHECK-NOT: restorePoint:
6 ; CHECK: savePoint: ''
7 ; CHECK: restorePoint: ''
88
99 target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
1010 target triple = "thumbv7"
66 ---
77 # CHECK-LABEL: name: func
88 # CHECK: registers:
9 # CHECK: - { id: 0, class: gpr }
10 # CHECK: - { id: 1, class: fpr }
9 # CHECK: - { id: 0, class: gpr, preferred-register: '' }
10 # CHECK: - { id: 1, class: fpr, preferred-register: '' }
1111 name: func
1212 body: |
1313 bb.0:
2424 maxAlignment: 8
2525 # CHECK-LABEL: stack_local
2626 # CHECK: stack:
27 # CHECK-NEXT: { id: 0, name: local_var, offset: 0, size: 8, alignment: 8, local-offset: -8 }
27 # CHECK-NEXT: { id: 0, name: local_var, type: default, offset: 0, size: 8, alignment: 8,
28 # CHECK-NEXT: callee-saved-register: '', local-offset: -8, di-variable: '', di-expression: '',
29 # CHECK-NEXT: di-location: '' }
2830 stack:
2931 - { id: 0,name: local_var,offset: 0,size: 8,alignment: 8, local-offset: -8 }
3032 body: |
3535 # CHECK-NEXT: maxAlignment:
3636 # CHECK-NEXT: adjustsStack: false
3737 # CHECK-NEXT: hasCalls: false
38 # CHECK-NEXT: stackProtector: ''
39 # CHECK-NEXT: maxCallFrameSize:
3840 # CHECK-NEXT: hasOpaqueSPAdjustment: false
3941 # CHECK-NEXT: hasVAStart: false
4042 # CHECK-NEXT: hasMustTailInVarArgFunc: false
43 # CHECK-NEXT: savePoint: ''