• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=fiji -amdgpu-spill-sgpr-to-smem=1 -verify-machineinstrs < %s | FileCheck -check-prefix=TOSMEM -check-prefix=ALL %s
2
3; FIXME: SGPR-to-SMEM requires an additional SGPR always to scavenge m0
4
5; ALL-LABEL: {{^}}max_9_sgprs:
6; ALL: SGPRBlocks: 1
7; ALL: NumSGPRsForWavesPerEU: 9
8define amdgpu_kernel void @max_9_sgprs() #0 {
9  %one = load volatile i32, i32 addrspace(4)* undef
10  %two = load volatile i32, i32 addrspace(4)* undef
11  %three = load volatile i32, i32 addrspace(4)* undef
12  %four = load volatile i32, i32 addrspace(4)* undef
13  %five = load volatile i32, i32 addrspace(4)* undef
14  %six = load volatile i32, i32 addrspace(4)* undef
15  %seven = load volatile i32, i32 addrspace(4)* undef
16  %eight = load volatile i32, i32 addrspace(4)* undef
17  %nine = load volatile i32, i32 addrspace(4)* undef
18  %ten = load volatile i32, i32 addrspace(4)* undef
19  call void asm sideeffect "", "s,s,s,s,s,s,s,s"(i32 %one, i32 %two, i32 %three, i32 %four, i32 %five, i32 %six, i32 %seven, i32 %eight)
20  store volatile i32 %one, i32 addrspace(1)* undef
21  store volatile i32 %two, i32 addrspace(1)* undef
22  store volatile i32 %three, i32 addrspace(1)* undef
23  store volatile i32 %four, i32 addrspace(1)* undef
24  store volatile i32 %five, i32 addrspace(1)* undef
25  store volatile i32 %six, i32 addrspace(1)* undef
26  store volatile i32 %seven, i32 addrspace(1)* undef
27  store volatile i32 %eight, i32 addrspace(1)* undef
28  store volatile i32 %nine, i32 addrspace(1)* undef
29  store volatile i32 %ten, i32 addrspace(1)* undef
30  ret void
31}
32
33attributes #0 = { nounwind "amdgpu-num-sgpr"="14" }
34