blob: 13aafc24895df43f4311c09363eeddb26a8afd5b [file] [log] [blame]
Matt Arsenault4eae3012016-10-28 20:31:47 +00001; RUN: not llc -march=amdgcn -verify-machineinstrs < %s 2>&1 | FileCheck -check-prefix=ERROR %s
2
3; ERROR: error: scalar registers limit of 104 exceeded (106) in use_too_many_sgprs_tahiti
Matt Arsenault3dbeefa2017-03-21 21:39:51 +00004define amdgpu_kernel void @use_too_many_sgprs_tahiti() #0 {
Matt Arsenault3c7581b2017-06-08 19:03:20 +00005 call void asm sideeffect "", "~{s[0:7]}" ()
6 call void asm sideeffect "", "~{s[8:15]}" ()
7 call void asm sideeffect "", "~{s[16:23]}" ()
8 call void asm sideeffect "", "~{s[24:31]}" ()
9 call void asm sideeffect "", "~{s[32:39]}" ()
10 call void asm sideeffect "", "~{s[40:47]}" ()
11 call void asm sideeffect "", "~{s[48:55]}" ()
12 call void asm sideeffect "", "~{s[56:63]}" ()
13 call void asm sideeffect "", "~{s[64:71]}" ()
14 call void asm sideeffect "", "~{s[72:79]}" ()
15 call void asm sideeffect "", "~{s[80:87]}" ()
16 call void asm sideeffect "", "~{s[88:95]}" ()
17 call void asm sideeffect "", "~{s[96:103]}" ()
18 call void asm sideeffect "", "~{vcc}" ()
Matt Arsenault4eae3012016-10-28 20:31:47 +000019 ret void
20}
21
22; ERROR: error: scalar registers limit of 104 exceeded (106) in use_too_many_sgprs_bonaire
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000023define amdgpu_kernel void @use_too_many_sgprs_bonaire() #1 {
Matt Arsenault3c7581b2017-06-08 19:03:20 +000024 call void asm sideeffect "", "~{s[0:7]}" ()
25 call void asm sideeffect "", "~{s[8:15]}" ()
26 call void asm sideeffect "", "~{s[16:23]}" ()
27 call void asm sideeffect "", "~{s[24:31]}" ()
28 call void asm sideeffect "", "~{s[32:39]}" ()
29 call void asm sideeffect "", "~{s[40:47]}" ()
30 call void asm sideeffect "", "~{s[48:55]}" ()
31 call void asm sideeffect "", "~{s[56:63]}" ()
32 call void asm sideeffect "", "~{s[64:71]}" ()
33 call void asm sideeffect "", "~{s[72:79]}" ()
34 call void asm sideeffect "", "~{s[80:87]}" ()
35 call void asm sideeffect "", "~{s[88:95]}" ()
36 call void asm sideeffect "", "~{s[96:103]}" ()
37 call void asm sideeffect "", "~{vcc}" ()
Matt Arsenault4eae3012016-10-28 20:31:47 +000038 ret void
39}
40
Matt Arsenaulta3566f22017-04-17 19:48:30 +000041; ERROR: error: scalar registers limit of 104 exceeded (108) in use_too_many_sgprs_bonaire_flat_scr
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000042define amdgpu_kernel void @use_too_many_sgprs_bonaire_flat_scr() #1 {
Matt Arsenault3c7581b2017-06-08 19:03:20 +000043 call void asm sideeffect "", "~{s[0:7]}" ()
44 call void asm sideeffect "", "~{s[8:15]}" ()
45 call void asm sideeffect "", "~{s[16:23]}" ()
46 call void asm sideeffect "", "~{s[24:31]}" ()
47 call void asm sideeffect "", "~{s[32:39]}" ()
48 call void asm sideeffect "", "~{s[40:47]}" ()
49 call void asm sideeffect "", "~{s[48:55]}" ()
50 call void asm sideeffect "", "~{s[56:63]}" ()
51 call void asm sideeffect "", "~{s[64:71]}" ()
52 call void asm sideeffect "", "~{s[72:79]}" ()
53 call void asm sideeffect "", "~{s[80:87]}" ()
54 call void asm sideeffect "", "~{s[88:95]}" ()
55 call void asm sideeffect "", "~{s[96:103]}" ()
56 call void asm sideeffect "", "~{vcc}" ()
57 call void asm sideeffect "", "~{flat_scratch}" ()
Matt Arsenault4eae3012016-10-28 20:31:47 +000058 ret void
59}
60
61; ERROR: error: scalar registers limit of 96 exceeded (98) in use_too_many_sgprs_iceland
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000062define amdgpu_kernel void @use_too_many_sgprs_iceland() #2 {
Matt Arsenault3c7581b2017-06-08 19:03:20 +000063 call void asm sideeffect "", "~{vcc}" ()
64 call void asm sideeffect "", "~{s[0:7]}" ()
65 call void asm sideeffect "", "~{s[8:15]}" ()
66 call void asm sideeffect "", "~{s[16:23]}" ()
67 call void asm sideeffect "", "~{s[24:31]}" ()
68 call void asm sideeffect "", "~{s[32:39]}" ()
69 call void asm sideeffect "", "~{s[40:47]}" ()
70 call void asm sideeffect "", "~{s[48:55]}" ()
71 call void asm sideeffect "", "~{s[56:63]}" ()
72 call void asm sideeffect "", "~{s[64:71]}" ()
73 call void asm sideeffect "", "~{s[72:79]}" ()
74 call void asm sideeffect "", "~{s[80:87]}" ()
75 call void asm sideeffect "", "~{s[88:95]}" ()
Matt Arsenault4eae3012016-10-28 20:31:47 +000076 ret void
77}
78
Marek Olsak91f22fb2016-12-09 19:49:40 +000079; ERROR: error: addressable scalar registers limit of 102 exceeded (103) in use_too_many_sgprs_fiji
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000080define amdgpu_kernel void @use_too_many_sgprs_fiji() #3 {
Matt Arsenault3c7581b2017-06-08 19:03:20 +000081 call void asm sideeffect "", "~{s[0:7]}" ()
82 call void asm sideeffect "", "~{s[8:15]}" ()
83 call void asm sideeffect "", "~{s[16:23]}" ()
84 call void asm sideeffect "", "~{s[24:31]}" ()
85 call void asm sideeffect "", "~{s[32:39]}" ()
86 call void asm sideeffect "", "~{s[40:47]}" ()
87 call void asm sideeffect "", "~{s[48:55]}" ()
88 call void asm sideeffect "", "~{s[56:63]}" ()
89 call void asm sideeffect "", "~{s[64:71]}" ()
90 call void asm sideeffect "", "~{s[72:79]}" ()
91 call void asm sideeffect "", "~{s[80:87]}" ()
92 call void asm sideeffect "", "~{s[88:95]}" ()
93 call void asm sideeffect "", "~{s[96:99]}" ()
94 call void asm sideeffect "", "~{s[100:101]}" ()
95 call void asm sideeffect "", "~{s102}" ()
Matt Arsenault4eae3012016-10-28 20:31:47 +000096 ret void
97}
98
99attributes #0 = { nounwind "target-cpu"="tahiti" }
100attributes #1 = { nounwind "target-cpu"="bonaire" }
101attributes #2 = { nounwind "target-cpu"="iceland" }
102attributes #3 = { nounwind "target-cpu"="fiji" }