brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 7a810d0 Raw
87 lines · plain
1; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck %s2 3; CHECK-LABEL: {{^}}qux4; CHECK: .set qux.num_vgpr, 135; CHECK: .set qux.num_agpr, 06; CHECK: .set qux.numbered_sgpr, 327; CHECK: .set qux.private_seg_size, 08; CHECK: .set qux.uses_vcc, 09; CHECK: .set qux.uses_flat_scratch, 010; CHECK: .set qux.has_dyn_sized_stack, 011; CHECK: .set qux.has_recursion, 012; CHECK: .set qux.has_indirect_call, 013define void @qux() {14entry:15  call void asm sideeffect "", "~{v12}"()16  ret void17}18 19; CHECK-LABEL: {{^}}baz20; CHECK: .set baz.num_vgpr, max(49, qux.num_vgpr)21; CHECK: .set baz.num_agpr, max(0, qux.num_agpr)22; CHECK: .set baz.numbered_sgpr, max(34, qux.numbered_sgpr)23; CHECK: .set baz.private_seg_size, 16+max(qux.private_seg_size)24; CHECK: .set baz.uses_vcc, or(0, qux.uses_vcc)25; CHECK: .set baz.uses_flat_scratch, or(0, qux.uses_flat_scratch)26; CHECK: .set baz.has_dyn_sized_stack, or(0, qux.has_dyn_sized_stack)27; CHECK: .set baz.has_recursion, or(1, qux.has_recursion)28; CHECK: .set baz.has_indirect_call, or(0, qux.has_indirect_call)29define void @baz() {30entry:31  call void @qux()32  call void asm sideeffect "", "~{v48}"()33  ret void34}35 36; CHECK-LABEL: {{^}}bar37; CHECK: .set bar.num_vgpr, max(65, baz.num_vgpr, qux.num_vgpr)38; CHECK: .set bar.num_agpr, max(0, baz.num_agpr, qux.num_agpr)39; CHECK: .set bar.numbered_sgpr, max(34, baz.numbered_sgpr, qux.numbered_sgpr)40; CHECK: .set bar.private_seg_size, 16+max(baz.private_seg_size, qux.private_seg_size)41; CHECK: .set bar.uses_vcc, or(0, baz.uses_vcc, qux.uses_vcc)42; CHECK: .set bar.uses_flat_scratch, or(0, baz.uses_flat_scratch, qux.uses_flat_scratch)43; CHECK: .set bar.has_dyn_sized_stack, or(0, baz.has_dyn_sized_stack, qux.has_dyn_sized_stack)44; CHECK: .set bar.has_recursion, or(1, baz.has_recursion, qux.has_recursion)45; CHECK: .set bar.has_indirect_call, or(0, baz.has_indirect_call, qux.has_indirect_call)46define void @bar() {47entry:48  call void @baz()49  call void @qux()50  call void @baz()51  call void asm sideeffect "", "~{v64}"()52  ret void53}54 55; CHECK-LABEL: {{^}}foo56; CHECK: .set foo.num_vgpr, max(38, bar.num_vgpr)57; CHECK: .set foo.num_agpr, max(0, bar.num_agpr)58; CHECK: .set foo.numbered_sgpr, max(34, bar.numbered_sgpr)59; CHECK: .set foo.private_seg_size, 16+max(bar.private_seg_size)60; CHECK: .set foo.uses_vcc, or(0, bar.uses_vcc)61; CHECK: .set foo.uses_flat_scratch, or(0, bar.uses_flat_scratch)62; CHECK: .set foo.has_dyn_sized_stack, or(0, bar.has_dyn_sized_stack)63; CHECK: .set foo.has_recursion, or(1, bar.has_recursion)64; CHECK: .set foo.has_indirect_call, or(0, bar.has_indirect_call)65define void @foo() {66entry:67  call void @bar()68  call void asm sideeffect "", "~{v37}"()69  ret void70}71 72; CHECK-LABEL: {{^}}usefoo73; CHECK: .set usefoo.num_vgpr, max(32, foo.num_vgpr)74; CHECK: .set usefoo.num_agpr, max(0, foo.num_agpr)75; CHECK: .set usefoo.numbered_sgpr, max(33, foo.numbered_sgpr)76; CHECK: .set usefoo.private_seg_size, 0+max(foo.private_seg_size)77; CHECK: .set usefoo.uses_vcc, or(0, foo.uses_vcc)78; CHECK: .set usefoo.uses_flat_scratch, or(1, foo.uses_flat_scratch)79; CHECK: .set usefoo.has_dyn_sized_stack, or(0, foo.has_dyn_sized_stack)80; CHECK: .set usefoo.has_recursion, or(1, foo.has_recursion)81; CHECK: .set usefoo.has_indirect_call, or(0, foo.has_indirect_call)82define amdgpu_kernel void @usefoo() {83  call void @foo()84  ret void85}86 87