[clang] Fix crashes when passing VLA to va_arg (#119563)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / amdpal-metadata-agpr-register-count.ll
blob8f4cb364751d884aee6c786c2111d505baee848a
1 ; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx90a < %s | FileCheck -check-prefixes=CHECK,GFX90A %s
2 ; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx908 < %s | FileCheck -check-prefixes=CHECK,GFX908 %s
4 ; COM: Adapted from agpr-register-count.ll
5 ; COM: GFX900 and below should not have .agpr_count present in the metadata
8 ; CHECK:      .type          kernel_32_agprs
9 ; CHECK:      NumAgprs:       32
10 define amdgpu_kernel void @kernel_32_agprs() #0 {
11 bb:
12   call void asm sideeffect "", "~{v8}" ()
13   call void asm sideeffect "", "~{a31}" ()
14   ret void
17 ; CHECK:      .type          kernel_0_agprs
18 ; CHECK:      NumAgprs:       0
19 define amdgpu_kernel void @kernel_0_agprs() #0 {
20 bb:
21   call void asm sideeffect "", "~{v0}" ()
22   ret void
25 ; CHECK:      .type           kernel_40_vgprs
26 ; CHECK:      NumAgprs:       16
27 define amdgpu_kernel void @kernel_40_vgprs() #0 {
28 bb:
29   call void asm sideeffect "", "~{v39}" ()
30   call void asm sideeffect "", "~{a15}" ()
31   ret void
34 ; CHECK:      .type          kernel_max_gprs
35 ; CHECK:      NumAgprs:       256
36 define amdgpu_kernel void @kernel_max_gprs() #0 {
37 bb:
38   call void asm sideeffect "", "~{v255}" ()
39   call void asm sideeffect "", "~{a255}" ()
40   ret void
43 ; CHECK:      .type          func_32_agprs
44 ; CHECK:      NumAgprs:       32
45 define void @func_32_agprs() #0 {
46 bb:
47   call void asm sideeffect "", "~{v8}" ()
48   call void asm sideeffect "", "~{a31}" ()
49   ret void
52 ; CHECK:      .type          kernel_call_func_32_agprs
53 ; CHECK:      NumAgprs:       32
54 define amdgpu_kernel void @kernel_call_func_32_agprs() #0 {
55 bb:
56   call void @func_32_agprs() #0
57   ret void
60 declare void @undef_func()
62 ; CHECK:      .type          kernel_call_undef_func
63 ; CHECK:      .set kernel_call_undef_func.num_agpr, max(0, amdgpu.max_num_agpr)
64 ; CHECK:      NumAgprs: kernel_call_undef_func.num_agpr
65 ; CHECK:      .set amdgpu.max_num_agpr, 32
66 define amdgpu_kernel void @kernel_call_undef_func() #0 {
67 bb:
68   call void @undef_func()
69   ret void
72 ; CHECK: ---
73 ; CHECK:  amdpal.pipelines:
74 ; GFX90A: agpr_count:  0x20
75 ; GFX90A: vgpr_count:  0x40
77 ; GFX908: agpr_count:  0x20
78 ; GFX908: vgpr_count:  0x20
80 attributes #0 = { nounwind noinline "amdgpu-flat-work-group-size"="1,512" }