xref: /llvm-project/llvm/test/CodeGen/MIR/AMDGPU/virtreg-uses-unallocatable-class.mir (revision 9996e71f2d73a76dc62eb12fc3012aae91014b27)
1*9996e71fSFangrui Song# UNSUPPORTED: reverse_iteration
220d72c49SMatt Arsenault# RUN: not llc -mtriple=amdgcn-- -mcpu=gfx900 -run-pass=none -o - %s 2>&1 | FileCheck %s
320d72c49SMatt Arsenault
420d72c49SMatt Arsenault# Check a diagnostic is emitted if non-allocatable classes are used
520d72c49SMatt Arsenault# with virtual registers, and there's no assert.
620d72c49SMatt Arsenault
761be2615SMatt Arsenault# CHECK: error: {{.*}}: Cannot use non-allocatable class 'TTMP_32' for virtual register named_use in function 'virtreg_unallocatable'
861be2615SMatt Arsenault# CHECK: error: {{.*}}: Cannot use non-allocatable class 'TTMP_32' for virtual register named_def in function 'virtreg_unallocatable'
961be2615SMatt Arsenault# CHECK: error: {{.*}}: Cannot use non-allocatable class 'TTMP_32' for virtual register 0 in function 'virtreg_unallocatable'
1061be2615SMatt Arsenault# CHECK: error: {{.*}}: Cannot use non-allocatable class 'TTMP_32' for virtual register 2 in function 'virtreg_unallocatable'
1161be2615SMatt Arsenault# CHECK: error: {{.*}}: Cannot use non-allocatable class 'TTMP_32' for virtual register 1 in function 'virtreg_unallocatable'
1220d72c49SMatt Arsenault
1320d72c49SMatt Arsenault---
1420d72c49SMatt Arsenaultname: virtreg_unallocatable
1520d72c49SMatt ArsenaulttracksRegLiveness: true
1620d72c49SMatt Arsenaultregisters:
1720d72c49SMatt Arsenault  - { id: 0, class: ttmp_32}
1820d72c49SMatt Arsenaultbody:             |
1920d72c49SMatt Arsenault  bb.0:
2020d72c49SMatt Arsenault    %1:ttmp_32 = IMPLICIT_DEF
2120d72c49SMatt Arsenault    S_NOP 0, implicit %2:ttmp_32
2220d72c49SMatt Arsenault
2320d72c49SMatt Arsenault    %named_def:ttmp_32 = IMPLICIT_DEF
2420d72c49SMatt Arsenault    S_NOP 0, implicit %named_use:ttmp_32
2520d72c49SMatt Arsenault
2620d72c49SMatt Arsenault...
27