xref: /llvm-project/llvm/test/CodeGen/AMDGPU/ran-out-of-registers-error-all-regs-reserved.ll (revision 3508d8f6ddd65e27486fad70cdce47adebafc364)
1; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -vgpr-regalloc=greedy -verify-machineinstrs=0 -filetype=null %s 2>&1 | FileCheck -implicit-check-not=error %s
2; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -vgpr-regalloc=basic -verify-machineinstrs=0 -filetype=null %s 2>&1 | FileCheck -implicit-check-not=error %s
3; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -vgpr-regalloc=fast -verify-machineinstrs=0 -filetype=null %s 2>&1 | FileCheck -implicit-check-not=error %s
4
5; FIXME: Should pass verifier after failure.
6
7declare <32 x i32> @llvm.amdgcn.mfma.i32.32x32x4i8(i32, i32, <32 x i32>, i32 immarg, i32 immarg, i32 immarg)
8
9; CHECK: error: <unknown>:0:0: no registers from class available to allocate in function 'no_registers_from_class_available_to_allocate'
10define <32 x i32> @no_registers_from_class_available_to_allocate(<32 x i32> %arg) #0 {
11  %ret = call <32 x i32> @llvm.amdgcn.mfma.i32.32x32x4i8(i32 1, i32 2, <32 x i32> %arg, i32 1, i32 2, i32 3)
12  ret <32 x i32> %ret
13}
14
15; CHECK: error: <unknown>:0:0: no registers from class available to allocate in function 'no_registers_from_class_available_to_allocate_asm_use'
16define void @no_registers_from_class_available_to_allocate_asm_use(<32 x i32> %arg) #0 {
17  call void asm sideeffect "; use $0", "v"(<32 x i32> %arg)
18  ret void
19}
20
21; CHECK: error: <unknown>:0:0: no registers from class available to allocate in function 'no_registers_from_class_available_to_allocate_asm_def'
22define <32 x i32> @no_registers_from_class_available_to_allocate_asm_def() #0 {
23  %ret = call <32 x i32> asm sideeffect "; def $0", "=v"()
24  ret <32 x i32> %ret
25}
26
27; CHECK: error: <unknown>:0:0: no registers from class available to allocate in function 'no_registers_from_class_available_to_allocate_undef_asm'
28define void @no_registers_from_class_available_to_allocate_undef_asm() #0 {
29  call void asm sideeffect "; use $0", "v"(<32 x i32> poison)
30  ret void
31}
32
33attributes #0 = { "amdgpu-waves-per-eu"="10,10" }
34