xref: /llvm-project/llvm/test/CodeGen/MIR/AMDGPU/long-branch-reg-all-sgpr-used.ll (revision 67c55b1ffc0b09cac66d8b18ada1e876d9312173)
1; RUN: llc -mtriple=amdgcn -verify-machineinstrs -amdgpu-s-branch-bits=5 -stop-after=branch-relaxation  %s -o - | FileCheck %s
2
3; Test long branch reserved register pass when all
4; SGPRs are used
5
6; CHECK-LABEL: {{^}}name: long_branch_used_all_sgprs
7; CHECK: machineFunctionInfo:
8; CHECK-NEXT:   explicitKernArgSize: 12
9; CHECK-NEXT:   maxKernArgAlign: 8
10; CHECK-NEXT:   ldsSize:         0
11; CHECK-NEXT:   gdsSize:         0
12; CHECK-NEXT:   dynLDSAlign:     1
13; CHECK-NEXT:   isEntryFunction: true
14; CHECK-NEXT:   isChainFunction: false
15; CHECK-NEXT:   noSignedZerosFPMath: false
16; CHECK-NEXT:   memoryBound:     false
17; CHECK-NEXT:   waveLimiter:     false
18; CHECK-NEXT:   hasSpilledSGPRs: false
19; CHECK-NEXT:   hasSpilledVGPRs: false
20; CHECK-NEXT:   scratchRSrcReg:  '$sgpr96_sgpr97_sgpr98_sgpr99'
21; CHECK-NEXT:   frameOffsetReg:  '$fp_reg'
22; CHECK-NEXT:   stackPtrOffsetReg: '$sgpr32'
23; CHECK-NEXT:   bytesInStackArgArea: 0
24; CHECK-NEXT:   returnsVoid:     true
25; CHECK-NEXT:   argumentInfo:
26; CHECK-NEXT:     kernargSegmentPtr: { reg: '$sgpr0_sgpr1' }
27; CHECK-NEXT:     workGroupIDX:    { reg: '$sgpr2' }
28; CHECK-NEXT:     privateSegmentWaveByteOffset: { reg: '$sgpr3' }
29; CHECK-NEXT:     workItemIDX:     { reg: '$vgpr0' }
30; CHECK-NEXT:   psInputAddr:     0
31; CHECK-NEXT:   psInputEnable:   0
32; CHECK-NEXT:   maxMemoryClusterDWords: 8
33; CHECK-NEXT:   mode:
34; CHECK-NEXT:     ieee:            true
35; CHECK-NEXT:     dx10-clamp:      true
36; CHECK-NEXT:     fp32-input-denormals: true
37; CHECK-NEXT:     fp32-output-denormals: true
38; CHECK-NEXT:     fp64-fp16-input-denormals: true
39; CHECK-NEXT:     fp64-fp16-output-denormals: true
40; CHECK-NEXT:   highBitsOf32BitAddress: 0
41; CHECK-NEXT:   occupancy:       5
42; CHECK-NEXT:   scavengeFI:      '%stack.0'
43; CHECK-NEXT:   vgprForAGPRCopy: ''
44; CHECK-NEXT:   sgprForEXECCopy: '$sgpr100_sgpr101'
45; CHECK-NEXT:   longBranchReservedReg: ''
46; CHECK-NEXT:   hasInitWholeWave: false
47; CHECK-NEXT: body:
48  define amdgpu_kernel void @long_branch_used_all_sgprs(ptr addrspace(1) %arg, i32 %cnd) #0 {
49  entry:
50    %long_branch_used_all_sgprs.kernarg.segment = call nonnull align 16 dereferenceable(48) ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr()
51    %cnd.kernarg.offset = getelementptr inbounds i8, ptr addrspace(4) %long_branch_used_all_sgprs.kernarg.segment, i64 44, !amdgpu.uniform !0
52    %cnd.load = load i32, ptr addrspace(4) %cnd.kernarg.offset, align 4, !invariant.load !0
53    %sgpr0 = tail call i32 asm sideeffect "s_mov_b32 s0, 0", "={s0}"() #1
54    %sgpr1 = tail call i32 asm sideeffect "s_mov_b32 s1, 0", "={s1}"() #1
55    %sgpr2 = tail call i32 asm sideeffect "s_mov_b32 s2, 0", "={s2}"() #1
56    %sgpr3 = tail call i32 asm sideeffect "s_mov_b32 s3, 0", "={s3}"() #1
57    %sgpr4 = tail call i32 asm sideeffect "s_mov_b32 s4, 0", "={s4}"() #1
58    %sgpr5 = tail call i32 asm sideeffect "s_mov_b32 s5, 0", "={s5}"() #1
59    %sgpr6 = tail call i32 asm sideeffect "s_mov_b32 s6, 0", "={s6}"() #1
60    %sgpr7 = tail call i32 asm sideeffect "s_mov_b32 s7, 0", "={s7}"() #1
61    %sgpr8 = tail call i32 asm sideeffect "s_mov_b32 s8, 0", "={s8}"() #1
62    %sgpr9 = tail call i32 asm sideeffect "s_mov_b32 s9, 0", "={s9}"() #1
63    %sgpr10 = tail call i32 asm sideeffect "s_mov_b32 s10, 0", "={s10}"() #1
64    %sgpr11 = tail call i32 asm sideeffect "s_mov_b32 s11, 0", "={s11}"() #1
65    %sgpr12 = tail call i32 asm sideeffect "s_mov_b32 s12, 0", "={s12}"() #1
66    %sgpr13 = tail call i32 asm sideeffect "s_mov_b32 s13, 0", "={s13}"() #1
67    %sgpr14 = tail call i32 asm sideeffect "s_mov_b32 s14, 0", "={s14}"() #1
68    %sgpr15 = tail call i32 asm sideeffect "s_mov_b32 s15, 0", "={s15}"() #1
69    %sgpr16 = tail call i32 asm sideeffect "s_mov_b32 s16, 0", "={s16}"() #1
70    %sgpr17 = tail call i32 asm sideeffect "s_mov_b32 s17, 0", "={s17}"() #1
71    %sgpr18 = tail call i32 asm sideeffect "s_mov_b32 s18, 0", "={s18}"() #1
72    %sgpr19 = tail call i32 asm sideeffect "s_mov_b32 s19, 0", "={s19}"() #1
73    %sgpr20 = tail call i32 asm sideeffect "s_mov_b32 s20, 0", "={s20}"() #1
74    %sgpr21 = tail call i32 asm sideeffect "s_mov_b32 s21, 0", "={s21}"() #1
75    %sgpr22 = tail call i32 asm sideeffect "s_mov_b32 s22, 0", "={s22}"() #1
76    %sgpr23 = tail call i32 asm sideeffect "s_mov_b32 s23, 0", "={s23}"() #1
77    %sgpr24 = tail call i32 asm sideeffect "s_mov_b32 s24, 0", "={s24}"() #1
78    %sgpr25 = tail call i32 asm sideeffect "s_mov_b32 s25, 0", "={s25}"() #1
79    %sgpr26 = tail call i32 asm sideeffect "s_mov_b32 s26, 0", "={s26}"() #1
80    %sgpr27 = tail call i32 asm sideeffect "s_mov_b32 s27, 0", "={s27}"() #1
81    %sgpr28 = tail call i32 asm sideeffect "s_mov_b32 s28, 0", "={s28}"() #1
82    %sgpr29 = tail call i32 asm sideeffect "s_mov_b32 s29, 0", "={s29}"() #1
83    %sgpr30 = tail call i32 asm sideeffect "s_mov_b32 s30, 0", "={s30}"() #1
84    %sgpr31 = tail call i32 asm sideeffect "s_mov_b32 s31, 0", "={s31}"() #1
85    %sgpr32 = tail call i32 asm sideeffect "s_mov_b32 s32, 0", "={s32}"() #1
86    %sgpr33 = tail call i32 asm sideeffect "s_mov_b32 s33, 0", "={s33}"() #1
87    %sgpr34 = tail call i32 asm sideeffect "s_mov_b32 s34, 0", "={s34}"() #1
88    %sgpr35 = tail call i32 asm sideeffect "s_mov_b32 s35, 0", "={s35}"() #1
89    %sgpr36 = tail call i32 asm sideeffect "s_mov_b32 s36, 0", "={s36}"() #1
90    %sgpr37 = tail call i32 asm sideeffect "s_mov_b32 s37, 0", "={s37}"() #1
91    %sgpr38 = tail call i32 asm sideeffect "s_mov_b32 s38, 0", "={s38}"() #1
92    %sgpr39 = tail call i32 asm sideeffect "s_mov_b32 s39, 0", "={s39}"() #1
93    %sgpr40 = tail call i32 asm sideeffect "s_mov_b32 s40, 0", "={s40}"() #1
94    %sgpr41 = tail call i32 asm sideeffect "s_mov_b32 s41, 0", "={s41}"() #1
95    %sgpr42 = tail call i32 asm sideeffect "s_mov_b32 s42, 0", "={s42}"() #1
96    %sgpr43 = tail call i32 asm sideeffect "s_mov_b32 s43, 0", "={s43}"() #1
97    %sgpr44 = tail call i32 asm sideeffect "s_mov_b32 s44, 0", "={s44}"() #1
98    %sgpr45 = tail call i32 asm sideeffect "s_mov_b32 s45, 0", "={s45}"() #1
99    %sgpr46 = tail call i32 asm sideeffect "s_mov_b32 s46, 0", "={s46}"() #1
100    %sgpr47 = tail call i32 asm sideeffect "s_mov_b32 s47, 0", "={s47}"() #1
101    %sgpr48 = tail call i32 asm sideeffect "s_mov_b32 s48, 0", "={s48}"() #1
102    %sgpr49 = tail call i32 asm sideeffect "s_mov_b32 s49, 0", "={s49}"() #1
103    %sgpr50 = tail call i32 asm sideeffect "s_mov_b32 s50, 0", "={s50}"() #1
104    %sgpr51 = tail call i32 asm sideeffect "s_mov_b32 s51, 0", "={s51}"() #1
105    %sgpr52 = tail call i32 asm sideeffect "s_mov_b32 s52, 0", "={s52}"() #1
106    %sgpr53 = tail call i32 asm sideeffect "s_mov_b32 s53, 0", "={s53}"() #1
107    %sgpr54 = tail call i32 asm sideeffect "s_mov_b32 s54, 0", "={s54}"() #1
108    %sgpr55 = tail call i32 asm sideeffect "s_mov_b32 s55, 0", "={s55}"() #1
109    %sgpr56 = tail call i32 asm sideeffect "s_mov_b32 s56, 0", "={s56}"() #1
110    %sgpr57 = tail call i32 asm sideeffect "s_mov_b32 s57, 0", "={s57}"() #1
111    %sgpr58 = tail call i32 asm sideeffect "s_mov_b32 s58, 0", "={s58}"() #1
112    %sgpr59 = tail call i32 asm sideeffect "s_mov_b32 s59, 0", "={s59}"() #1
113    %sgpr60 = tail call i32 asm sideeffect "s_mov_b32 s60, 0", "={s60}"() #1
114    %sgpr61 = tail call i32 asm sideeffect "s_mov_b32 s61, 0", "={s61}"() #1
115    %sgpr62 = tail call i32 asm sideeffect "s_mov_b32 s62, 0", "={s62}"() #1
116    %sgpr63 = tail call i32 asm sideeffect "s_mov_b32 s63, 0", "={s63}"() #1
117    %sgpr64 = tail call i32 asm sideeffect "s_mov_b32 s64, 0", "={s64}"() #1
118    %sgpr65 = tail call i32 asm sideeffect "s_mov_b32 s65, 0", "={s65}"() #1
119    %sgpr66 = tail call i32 asm sideeffect "s_mov_b32 s66, 0", "={s66}"() #1
120    %sgpr67 = tail call i32 asm sideeffect "s_mov_b32 s67, 0", "={s67}"() #1
121    %sgpr68 = tail call i32 asm sideeffect "s_mov_b32 s68, 0", "={s68}"() #1
122    %sgpr69 = tail call i32 asm sideeffect "s_mov_b32 s69, 0", "={s69}"() #1
123    %sgpr70 = tail call i32 asm sideeffect "s_mov_b32 s70, 0", "={s70}"() #1
124    %sgpr71 = tail call i32 asm sideeffect "s_mov_b32 s71, 0", "={s71}"() #1
125    %sgpr72 = tail call i32 asm sideeffect "s_mov_b32 s72, 0", "={s72}"() #1
126    %sgpr73 = tail call i32 asm sideeffect "s_mov_b32 s73, 0", "={s73}"() #1
127    %sgpr74 = tail call i32 asm sideeffect "s_mov_b32 s74, 0", "={s74}"() #1
128    %sgpr75 = tail call i32 asm sideeffect "s_mov_b32 s75, 0", "={s75}"() #1
129    %sgpr76 = tail call i32 asm sideeffect "s_mov_b32 s76, 0", "={s76}"() #1
130    %sgpr77 = tail call i32 asm sideeffect "s_mov_b32 s77, 0", "={s77}"() #1
131    %sgpr78 = tail call i32 asm sideeffect "s_mov_b32 s78, 0", "={s78}"() #1
132    %sgpr79 = tail call i32 asm sideeffect "s_mov_b32 s79, 0", "={s79}"() #1
133    %sgpr80 = tail call i32 asm sideeffect "s_mov_b32 s80, 0", "={s80}"() #1
134    %sgpr81 = tail call i32 asm sideeffect "s_mov_b32 s81, 0", "={s81}"() #1
135    %sgpr82 = tail call i32 asm sideeffect "s_mov_b32 s82, 0", "={s82}"() #1
136    %sgpr83 = tail call i32 asm sideeffect "s_mov_b32 s83, 0", "={s83}"() #1
137    %sgpr84 = tail call i32 asm sideeffect "s_mov_b32 s84, 0", "={s84}"() #1
138    %sgpr85 = tail call i32 asm sideeffect "s_mov_b32 s85, 0", "={s85}"() #1
139    %sgpr86 = tail call i32 asm sideeffect "s_mov_b32 s86, 0", "={s86}"() #1
140    %sgpr87 = tail call i32 asm sideeffect "s_mov_b32 s87, 0", "={s87}"() #1
141    %sgpr88 = tail call i32 asm sideeffect "s_mov_b32 s88, 0", "={s88}"() #1
142    %sgpr89 = tail call i32 asm sideeffect "s_mov_b32 s89, 0", "={s89}"() #1
143    %sgpr90 = tail call i32 asm sideeffect "s_mov_b32 s90, 0", "={s90}"() #1
144    %sgpr91 = tail call i32 asm sideeffect "s_mov_b32 s91, 0", "={s91}"() #1
145    %sgpr92 = tail call i32 asm sideeffect "s_mov_b32 s92, 0", "={s92}"() #1
146    %sgpr93 = tail call i32 asm sideeffect "s_mov_b32 s93, 0", "={s93}"() #1
147    %sgpr94 = tail call i32 asm sideeffect "s_mov_b32 s94, 0", "={s94}"() #1
148    %sgpr95 = tail call i32 asm sideeffect "s_mov_b32 s95, 0", "={s95}"() #1
149    %sgpr96 = tail call i32 asm sideeffect "s_mov_b32 s96, 0", "={s96}"() #1
150    %sgpr97 = tail call i32 asm sideeffect "s_mov_b32 s97, 0", "={s97}"() #1
151    %sgpr98 = tail call i32 asm sideeffect "s_mov_b32 s98, 0", "={s98}"() #1
152    %sgpr99 = tail call i32 asm sideeffect "s_mov_b32 s99, 0", "={s99}"() #1
153    %sgpr100 = tail call i32 asm sideeffect "s_mov_b32 s100, 0", "={s100}"() #1
154    %sgpr101 = tail call i32 asm sideeffect "s_mov_b32 s101, 0", "={s101}"() #1
155    %vcc_lo = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_lo}"() #1
156    %vcc_hi = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_hi}"() #1
157    %cmp = icmp ne i32 %cnd.load, 0
158    br i1 %cmp, label %bb2, label %bb3, !amdgpu.uniform !0
159
160  bb2:                                              ; preds = %entry
161    call void asm sideeffect "v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64", ""() #1
162    br label %bb3, !amdgpu.uniform !0
163
164  bb3:                                              ; preds = %bb2, %entry
165    tail call void asm sideeffect "; reg use $0", "{s0}"(i32 %sgpr0) #1
166    tail call void asm sideeffect "; reg use $0", "{s1}"(i32 %sgpr1) #1
167    tail call void asm sideeffect "; reg use $0", "{s2}"(i32 %sgpr2) #1
168    tail call void asm sideeffect "; reg use $0", "{s3}"(i32 %sgpr3) #1
169    tail call void asm sideeffect "; reg use $0", "{s4}"(i32 %sgpr4) #1
170    tail call void asm sideeffect "; reg use $0", "{s5}"(i32 %sgpr5) #1
171    tail call void asm sideeffect "; reg use $0", "{s6}"(i32 %sgpr6) #1
172    tail call void asm sideeffect "; reg use $0", "{s7}"(i32 %sgpr7) #1
173    tail call void asm sideeffect "; reg use $0", "{s8}"(i32 %sgpr8) #1
174    tail call void asm sideeffect "; reg use $0", "{s9}"(i32 %sgpr9) #1
175    tail call void asm sideeffect "; reg use $0", "{s10}"(i32 %sgpr10) #1
176    tail call void asm sideeffect "; reg use $0", "{s11}"(i32 %sgpr11) #1
177    tail call void asm sideeffect "; reg use $0", "{s12}"(i32 %sgpr12) #1
178    tail call void asm sideeffect "; reg use $0", "{s13}"(i32 %sgpr13) #1
179    tail call void asm sideeffect "; reg use $0", "{s14}"(i32 %sgpr14) #1
180    tail call void asm sideeffect "; reg use $0", "{s15}"(i32 %sgpr15) #1
181    tail call void asm sideeffect "; reg use $0", "{s16}"(i32 %sgpr16) #1
182    tail call void asm sideeffect "; reg use $0", "{s17}"(i32 %sgpr17) #1
183    tail call void asm sideeffect "; reg use $0", "{s18}"(i32 %sgpr18) #1
184    tail call void asm sideeffect "; reg use $0", "{s19}"(i32 %sgpr19) #1
185    tail call void asm sideeffect "; reg use $0", "{s20}"(i32 %sgpr20) #1
186    tail call void asm sideeffect "; reg use $0", "{s21}"(i32 %sgpr21) #1
187    tail call void asm sideeffect "; reg use $0", "{s22}"(i32 %sgpr22) #1
188    tail call void asm sideeffect "; reg use $0", "{s23}"(i32 %sgpr23) #1
189    tail call void asm sideeffect "; reg use $0", "{s24}"(i32 %sgpr24) #1
190    tail call void asm sideeffect "; reg use $0", "{s25}"(i32 %sgpr25) #1
191    tail call void asm sideeffect "; reg use $0", "{s26}"(i32 %sgpr26) #1
192    tail call void asm sideeffect "; reg use $0", "{s27}"(i32 %sgpr27) #1
193    tail call void asm sideeffect "; reg use $0", "{s28}"(i32 %sgpr28) #1
194    tail call void asm sideeffect "; reg use $0", "{s29}"(i32 %sgpr29) #1
195    tail call void asm sideeffect "; reg use $0", "{s30}"(i32 %sgpr30) #1
196    tail call void asm sideeffect "; reg use $0", "{s31}"(i32 %sgpr31) #1
197    tail call void asm sideeffect "; reg use $0", "{s32}"(i32 %sgpr32) #1
198    tail call void asm sideeffect "; reg use $0", "{s33}"(i32 %sgpr33) #1
199    tail call void asm sideeffect "; reg use $0", "{s34}"(i32 %sgpr34) #1
200    tail call void asm sideeffect "; reg use $0", "{s35}"(i32 %sgpr35) #1
201    tail call void asm sideeffect "; reg use $0", "{s36}"(i32 %sgpr36) #1
202    tail call void asm sideeffect "; reg use $0", "{s37}"(i32 %sgpr37) #1
203    tail call void asm sideeffect "; reg use $0", "{s38}"(i32 %sgpr38) #1
204    tail call void asm sideeffect "; reg use $0", "{s39}"(i32 %sgpr39) #1
205    tail call void asm sideeffect "; reg use $0", "{s40}"(i32 %sgpr40) #1
206    tail call void asm sideeffect "; reg use $0", "{s41}"(i32 %sgpr41) #1
207    tail call void asm sideeffect "; reg use $0", "{s42}"(i32 %sgpr42) #1
208    tail call void asm sideeffect "; reg use $0", "{s43}"(i32 %sgpr43) #1
209    tail call void asm sideeffect "; reg use $0", "{s44}"(i32 %sgpr44) #1
210    tail call void asm sideeffect "; reg use $0", "{s45}"(i32 %sgpr45) #1
211    tail call void asm sideeffect "; reg use $0", "{s46}"(i32 %sgpr46) #1
212    tail call void asm sideeffect "; reg use $0", "{s47}"(i32 %sgpr47) #1
213    tail call void asm sideeffect "; reg use $0", "{s48}"(i32 %sgpr48) #1
214    tail call void asm sideeffect "; reg use $0", "{s49}"(i32 %sgpr49) #1
215    tail call void asm sideeffect "; reg use $0", "{s50}"(i32 %sgpr50) #1
216    tail call void asm sideeffect "; reg use $0", "{s51}"(i32 %sgpr51) #1
217    tail call void asm sideeffect "; reg use $0", "{s52}"(i32 %sgpr52) #1
218    tail call void asm sideeffect "; reg use $0", "{s53}"(i32 %sgpr53) #1
219    tail call void asm sideeffect "; reg use $0", "{s54}"(i32 %sgpr54) #1
220    tail call void asm sideeffect "; reg use $0", "{s55}"(i32 %sgpr55) #1
221    tail call void asm sideeffect "; reg use $0", "{s56}"(i32 %sgpr56) #1
222    tail call void asm sideeffect "; reg use $0", "{s57}"(i32 %sgpr57) #1
223    tail call void asm sideeffect "; reg use $0", "{s58}"(i32 %sgpr58) #1
224    tail call void asm sideeffect "; reg use $0", "{s59}"(i32 %sgpr59) #1
225    tail call void asm sideeffect "; reg use $0", "{s60}"(i32 %sgpr60) #1
226    tail call void asm sideeffect "; reg use $0", "{s61}"(i32 %sgpr61) #1
227    tail call void asm sideeffect "; reg use $0", "{s62}"(i32 %sgpr62) #1
228    tail call void asm sideeffect "; reg use $0", "{s63}"(i32 %sgpr63) #1
229    tail call void asm sideeffect "; reg use $0", "{s64}"(i32 %sgpr64) #1
230    tail call void asm sideeffect "; reg use $0", "{s65}"(i32 %sgpr65) #1
231    tail call void asm sideeffect "; reg use $0", "{s66}"(i32 %sgpr66) #1
232    tail call void asm sideeffect "; reg use $0", "{s67}"(i32 %sgpr67) #1
233    tail call void asm sideeffect "; reg use $0", "{s68}"(i32 %sgpr68) #1
234    tail call void asm sideeffect "; reg use $0", "{s69}"(i32 %sgpr69) #1
235    tail call void asm sideeffect "; reg use $0", "{s70}"(i32 %sgpr70) #1
236    tail call void asm sideeffect "; reg use $0", "{s71}"(i32 %sgpr71) #1
237    tail call void asm sideeffect "; reg use $0", "{s72}"(i32 %sgpr72) #1
238    tail call void asm sideeffect "; reg use $0", "{s73}"(i32 %sgpr73) #1
239    tail call void asm sideeffect "; reg use $0", "{s74}"(i32 %sgpr74) #1
240    tail call void asm sideeffect "; reg use $0", "{s75}"(i32 %sgpr75) #1
241    tail call void asm sideeffect "; reg use $0", "{s76}"(i32 %sgpr76) #1
242    tail call void asm sideeffect "; reg use $0", "{s77}"(i32 %sgpr77) #1
243    tail call void asm sideeffect "; reg use $0", "{s78}"(i32 %sgpr78) #1
244    tail call void asm sideeffect "; reg use $0", "{s79}"(i32 %sgpr79) #1
245    tail call void asm sideeffect "; reg use $0", "{s80}"(i32 %sgpr80) #1
246    tail call void asm sideeffect "; reg use $0", "{s81}"(i32 %sgpr81) #1
247    tail call void asm sideeffect "; reg use $0", "{s82}"(i32 %sgpr82) #1
248    tail call void asm sideeffect "; reg use $0", "{s83}"(i32 %sgpr83) #1
249    tail call void asm sideeffect "; reg use $0", "{s84}"(i32 %sgpr84) #1
250    tail call void asm sideeffect "; reg use $0", "{s85}"(i32 %sgpr85) #1
251    tail call void asm sideeffect "; reg use $0", "{s86}"(i32 %sgpr86) #1
252    tail call void asm sideeffect "; reg use $0", "{s87}"(i32 %sgpr87) #1
253    tail call void asm sideeffect "; reg use $0", "{s88}"(i32 %sgpr88) #1
254    tail call void asm sideeffect "; reg use $0", "{s89}"(i32 %sgpr89) #1
255    tail call void asm sideeffect "; reg use $0", "{s90}"(i32 %sgpr90) #1
256    tail call void asm sideeffect "; reg use $0", "{s91}"(i32 %sgpr91) #1
257    tail call void asm sideeffect "; reg use $0", "{s92}"(i32 %sgpr92) #1
258    tail call void asm sideeffect "; reg use $0", "{s93}"(i32 %sgpr93) #1
259    tail call void asm sideeffect "; reg use $0", "{s94}"(i32 %sgpr94) #1
260    tail call void asm sideeffect "; reg use $0", "{s95}"(i32 %sgpr95) #1
261    tail call void asm sideeffect "; reg use $0", "{s96}"(i32 %sgpr96) #1
262    tail call void asm sideeffect "; reg use $0", "{s97}"(i32 %sgpr97) #1
263    tail call void asm sideeffect "; reg use $0", "{s98}"(i32 %sgpr98) #1
264    tail call void asm sideeffect "; reg use $0", "{s99}"(i32 %sgpr99) #1
265    tail call void asm sideeffect "; reg use $0", "{s100}"(i32 %sgpr100) #1
266    tail call void asm sideeffect "; reg use $0", "{s101}"(i32 %sgpr101) #1
267    tail call void asm sideeffect "; reg use $0", "{vcc_lo}"(i32 %vcc_lo) #1
268    tail call void asm sideeffect "; reg use $0", "{vcc_hi}"(i32 %vcc_hi) #1
269    ret void
270  }
271
272; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
273; CHECK-LABEL: {{^}}name: long_branch_high_num_sgprs_used
274; CHECK: machineFunctionInfo:
275; CHECK-NEXT:   explicitKernArgSize: 12
276; CHECK-NEXT:   maxKernArgAlign: 8
277; CHECK-NEXT:   ldsSize:         0
278; CHECK-NEXT:   gdsSize:         0
279; CHECK-NEXT:   dynLDSAlign:     1
280; CHECK-NEXT:   isEntryFunction: true
281; CHECK-NEXT:   isChainFunction: false
282; CHECK-NEXT:   noSignedZerosFPMath: false
283; CHECK-NEXT:   memoryBound:     false
284; CHECK-NEXT:   waveLimiter:     false
285; CHECK-NEXT:   hasSpilledSGPRs: false
286; CHECK-NEXT:   hasSpilledVGPRs: false
287; CHECK-NEXT:   scratchRSrcReg:  '$sgpr96_sgpr97_sgpr98_sgpr99'
288; CHECK-NEXT:   frameOffsetReg:  '$fp_reg'
289; CHECK-NEXT:   stackPtrOffsetReg: '$sgpr32'
290; CHECK-NEXT:   bytesInStackArgArea: 0
291; CHECK-NEXT:   returnsVoid:     true
292; CHECK-NEXT:   argumentInfo:
293; CHECK-NEXT:     kernargSegmentPtr: { reg: '$sgpr0_sgpr1' }
294; CHECK-NEXT:     workGroupIDX:    { reg: '$sgpr2' }
295; CHECK-NEXT:     privateSegmentWaveByteOffset: { reg: '$sgpr3' }
296; CHECK-NEXT:     workItemIDX:     { reg: '$vgpr0' }
297; CHECK-NEXT:   psInputAddr:     0
298; CHECK-NEXT:   psInputEnable:   0
299; CHECK-NEXT:   maxMemoryClusterDWords: 8
300; CHECK-NEXT:   mode:
301; CHECK-NEXT:     ieee:            true
302; CHECK-NEXT:     dx10-clamp:      true
303; CHECK-NEXT:     fp32-input-denormals: true
304; CHECK-NEXT:     fp32-output-denormals: true
305; CHECK-NEXT:     fp64-fp16-input-denormals: true
306; CHECK-NEXT:     fp64-fp16-output-denormals: true
307; CHECK-NEXT:   highBitsOf32BitAddress: 0
308; CHECK-NEXT:   occupancy:       5
309; CHECK-NEXT:   scavengeFI:      '%stack.0'
310; CHECK-NEXT:   vgprForAGPRCopy: ''
311; CHECK-NEXT:   sgprForEXECCopy: '$sgpr100_sgpr101'
312; CHECK-NEXT:   longBranchReservedReg: ''
313; CHECK-NEXT:   hasInitWholeWave: false
314; CHECK-NEXT: body:
315  define amdgpu_kernel void @long_branch_high_num_sgprs_used(ptr addrspace(1) %arg, i32 %cnd) #0 {
316  entry:
317    %long_branch_used_all_sgprs.kernarg.segment = call nonnull align 16 dereferenceable(48) ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr()
318    %cnd.kernarg.offset = getelementptr inbounds i8, ptr addrspace(4) %long_branch_used_all_sgprs.kernarg.segment, i64 44, !amdgpu.uniform !0
319    %cnd.load = load i32, ptr addrspace(4) %cnd.kernarg.offset, align 4, !invariant.load !0
320    %sgpr0 = tail call i32 asm sideeffect "s_mov_b32 s0, 0", "={s0}"() #1
321    %sgpr1 = tail call i32 asm sideeffect "s_mov_b32 s1, 0", "={s1}"() #1
322    %sgpr2 = tail call i32 asm sideeffect "s_mov_b32 s2, 0", "={s2}"() #1
323    %sgpr3 = tail call i32 asm sideeffect "s_mov_b32 s3, 0", "={s3}"() #1
324    %sgpr4 = tail call i32 asm sideeffect "s_mov_b32 s4, 0", "={s4}"() #1
325    %sgpr5 = tail call i32 asm sideeffect "s_mov_b32 s5, 0", "={s5}"() #1
326    %sgpr6 = tail call i32 asm sideeffect "s_mov_b32 s6, 0", "={s6}"() #1
327    %sgpr7 = tail call i32 asm sideeffect "s_mov_b32 s7, 0", "={s7}"() #1
328    %sgpr8 = tail call i32 asm sideeffect "s_mov_b32 s8, 0", "={s8}"() #1
329    %sgpr9 = tail call i32 asm sideeffect "s_mov_b32 s9, 0", "={s9}"() #1
330    %sgpr10 = tail call i32 asm sideeffect "s_mov_b32 s10, 0", "={s10}"() #1
331    %sgpr11 = tail call i32 asm sideeffect "s_mov_b32 s11, 0", "={s11}"() #1
332    %sgpr12 = tail call i32 asm sideeffect "s_mov_b32 s12, 0", "={s12}"() #1
333    %sgpr13 = tail call i32 asm sideeffect "s_mov_b32 s13, 0", "={s13}"() #1
334    %sgpr14 = tail call i32 asm sideeffect "s_mov_b32 s14, 0", "={s14}"() #1
335    %sgpr15 = tail call i32 asm sideeffect "s_mov_b32 s15, 0", "={s15}"() #1
336    %sgpr16 = tail call i32 asm sideeffect "s_mov_b32 s16, 0", "={s16}"() #1
337    %sgpr17 = tail call i32 asm sideeffect "s_mov_b32 s17, 0", "={s17}"() #1
338    %sgpr18 = tail call i32 asm sideeffect "s_mov_b32 s18, 0", "={s18}"() #1
339    %sgpr19 = tail call i32 asm sideeffect "s_mov_b32 s19, 0", "={s19}"() #1
340    %sgpr20 = tail call i32 asm sideeffect "s_mov_b32 s20, 0", "={s20}"() #1
341    %sgpr21 = tail call i32 asm sideeffect "s_mov_b32 s21, 0", "={s21}"() #1
342    %sgpr22 = tail call i32 asm sideeffect "s_mov_b32 s22, 0", "={s22}"() #1
343    %sgpr23 = tail call i32 asm sideeffect "s_mov_b32 s23, 0", "={s23}"() #1
344    %sgpr24 = tail call i32 asm sideeffect "s_mov_b32 s24, 0", "={s24}"() #1
345    %sgpr25 = tail call i32 asm sideeffect "s_mov_b32 s25, 0", "={s25}"() #1
346    %sgpr26 = tail call i32 asm sideeffect "s_mov_b32 s26, 0", "={s26}"() #1
347    %sgpr27 = tail call i32 asm sideeffect "s_mov_b32 s27, 0", "={s27}"() #1
348    %sgpr28 = tail call i32 asm sideeffect "s_mov_b32 s28, 0", "={s28}"() #1
349    %sgpr29 = tail call i32 asm sideeffect "s_mov_b32 s29, 0", "={s29}"() #1
350    %sgpr30 = tail call i32 asm sideeffect "s_mov_b32 s30, 0", "={s30}"() #1
351    %sgpr31 = tail call i32 asm sideeffect "s_mov_b32 s31, 0", "={s31}"() #1
352    %sgpr32 = tail call i32 asm sideeffect "s_mov_b32 s32, 0", "={s32}"() #1
353    %sgpr33 = tail call i32 asm sideeffect "s_mov_b32 s33, 0", "={s33}"() #1
354    %sgpr34 = tail call i32 asm sideeffect "s_mov_b32 s34, 0", "={s34}"() #1
355    %sgpr35 = tail call i32 asm sideeffect "s_mov_b32 s35, 0", "={s35}"() #1
356    %sgpr36 = tail call i32 asm sideeffect "s_mov_b32 s36, 0", "={s36}"() #1
357    %sgpr37 = tail call i32 asm sideeffect "s_mov_b32 s37, 0", "={s37}"() #1
358    %sgpr38 = tail call i32 asm sideeffect "s_mov_b32 s38, 0", "={s38}"() #1
359    %sgpr39 = tail call i32 asm sideeffect "s_mov_b32 s39, 0", "={s39}"() #1
360    %sgpr40 = tail call i32 asm sideeffect "s_mov_b32 s40, 0", "={s40}"() #1
361    %sgpr41 = tail call i32 asm sideeffect "s_mov_b32 s41, 0", "={s41}"() #1
362    %sgpr42 = tail call i32 asm sideeffect "s_mov_b32 s42, 0", "={s42}"() #1
363    %sgpr43 = tail call i32 asm sideeffect "s_mov_b32 s43, 0", "={s43}"() #1
364    %sgpr44 = tail call i32 asm sideeffect "s_mov_b32 s44, 0", "={s44}"() #1
365    %sgpr45 = tail call i32 asm sideeffect "s_mov_b32 s45, 0", "={s45}"() #1
366    %sgpr46 = tail call i32 asm sideeffect "s_mov_b32 s46, 0", "={s46}"() #1
367    %sgpr47 = tail call i32 asm sideeffect "s_mov_b32 s47, 0", "={s47}"() #1
368    %sgpr48 = tail call i32 asm sideeffect "s_mov_b32 s48, 0", "={s48}"() #1
369    %sgpr49 = tail call i32 asm sideeffect "s_mov_b32 s49, 0", "={s49}"() #1
370    %sgpr50 = tail call i32 asm sideeffect "s_mov_b32 s50, 0", "={s50}"() #1
371    %sgpr51 = tail call i32 asm sideeffect "s_mov_b32 s51, 0", "={s51}"() #1
372    %sgpr52 = tail call i32 asm sideeffect "s_mov_b32 s52, 0", "={s52}"() #1
373    %sgpr53 = tail call i32 asm sideeffect "s_mov_b32 s53, 0", "={s53}"() #1
374    %sgpr54 = tail call i32 asm sideeffect "s_mov_b32 s54, 0", "={s54}"() #1
375    %sgpr55 = tail call i32 asm sideeffect "s_mov_b32 s55, 0", "={s55}"() #1
376    %sgpr56 = tail call i32 asm sideeffect "s_mov_b32 s56, 0", "={s56}"() #1
377    %sgpr57 = tail call i32 asm sideeffect "s_mov_b32 s57, 0", "={s57}"() #1
378    %sgpr58 = tail call i32 asm sideeffect "s_mov_b32 s58, 0", "={s58}"() #1
379    %sgpr59 = tail call i32 asm sideeffect "s_mov_b32 s59, 0", "={s59}"() #1
380    %sgpr60 = tail call i32 asm sideeffect "s_mov_b32 s60, 0", "={s60}"() #1
381    %sgpr61 = tail call i32 asm sideeffect "s_mov_b32 s61, 0", "={s61}"() #1
382    %sgpr62 = tail call i32 asm sideeffect "s_mov_b32 s62, 0", "={s62}"() #1
383    %sgpr63 = tail call i32 asm sideeffect "s_mov_b32 s63, 0", "={s63}"() #1
384    %sgpr64 = tail call i32 asm sideeffect "s_mov_b32 s64, 0", "={s64}"() #1
385    %sgpr65 = tail call i32 asm sideeffect "s_mov_b32 s65, 0", "={s65}"() #1
386    %sgpr66 = tail call i32 asm sideeffect "s_mov_b32 s66, 0", "={s66}"() #1
387    %sgpr67 = tail call i32 asm sideeffect "s_mov_b32 s67, 0", "={s67}"() #1
388    %sgpr68 = tail call i32 asm sideeffect "s_mov_b32 s68, 0", "={s68}"() #1
389    %sgpr69 = tail call i32 asm sideeffect "s_mov_b32 s69, 0", "={s69}"() #1
390    %sgpr70 = tail call i32 asm sideeffect "s_mov_b32 s70, 0", "={s70}"() #1
391    %sgpr71 = tail call i32 asm sideeffect "s_mov_b32 s71, 0", "={s71}"() #1
392    %sgpr72 = tail call i32 asm sideeffect "s_mov_b32 s72, 0", "={s72}"() #1
393    %sgpr73 = tail call i32 asm sideeffect "s_mov_b32 s73, 0", "={s73}"() #1
394    %sgpr74 = tail call i32 asm sideeffect "s_mov_b32 s74, 0", "={s74}"() #1
395    %sgpr75 = tail call i32 asm sideeffect "s_mov_b32 s75, 0", "={s75}"() #1
396    %sgpr76 = tail call i32 asm sideeffect "s_mov_b32 s76, 0", "={s76}"() #1
397    %sgpr77 = tail call i32 asm sideeffect "s_mov_b32 s77, 0", "={s77}"() #1
398    %sgpr78 = tail call i32 asm sideeffect "s_mov_b32 s78, 0", "={s78}"() #1
399    %sgpr79 = tail call i32 asm sideeffect "s_mov_b32 s79, 0", "={s79}"() #1
400    %sgpr80 = tail call i32 asm sideeffect "s_mov_b32 s80, 0", "={s80}"() #1
401    %sgpr81 = tail call i32 asm sideeffect "s_mov_b32 s81, 0", "={s81}"() #1
402    %sgpr82 = tail call i32 asm sideeffect "s_mov_b32 s82, 0", "={s82}"() #1
403    %sgpr83 = tail call i32 asm sideeffect "s_mov_b32 s83, 0", "={s83}"() #1
404    %sgpr84 = tail call i32 asm sideeffect "s_mov_b32 s84, 0", "={s84}"() #1
405    %sgpr85 = tail call i32 asm sideeffect "s_mov_b32 s85, 0", "={s85}"() #1
406    %sgpr86 = tail call i32 asm sideeffect "s_mov_b32 s86, 0", "={s86}"() #1
407    %sgpr87 = tail call i32 asm sideeffect "s_mov_b32 s87, 0", "={s87}"() #1
408    %sgpr88 = tail call i32 asm sideeffect "s_mov_b32 s88, 0", "={s88}"() #1
409    %sgpr89 = tail call i32 asm sideeffect "s_mov_b32 s89, 0", "={s89}"() #1
410    %sgpr90 = tail call i32 asm sideeffect "s_mov_b32 s90, 0", "={s90}"() #1
411    %sgpr91 = tail call i32 asm sideeffect "s_mov_b32 s91, 0", "={s91}"() #1
412    %sgpr92 = tail call i32 asm sideeffect "s_mov_b32 s92, 0", "={s92}"() #1
413    %sgpr93 = tail call i32 asm sideeffect "s_mov_b32 s93, 0", "={s93}"() #1
414    %sgpr94 = tail call i32 asm sideeffect "s_mov_b32 s94, 0", "={s94}"() #1
415    %sgpr95 = tail call i32 asm sideeffect "s_mov_b32 s95, 0", "={s95}"() #1
416    %sgpr96 = tail call i32 asm sideeffect "s_mov_b32 s96, 0", "={s96}"() #1
417    %sgpr97 = tail call i32 asm sideeffect "s_mov_b32 s97, 0", "={s97}"() #1
418    %vcc_lo = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_lo}"() #1
419    %vcc_hi = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_hi}"() #1
420    %cmp = icmp ne i32 %cnd.load, 0
421    br i1 %cmp, label %bb2, label %bb3, !amdgpu.uniform !0
422
423  bb2:                                              ; preds = %entry
424    call void asm sideeffect "v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64\0A    v_nop_e64", ""() #1
425    br label %bb3, !amdgpu.uniform !0
426
427  bb3:                                              ; preds = %bb2, %entry
428    tail call void asm sideeffect "; reg use $0", "{s0}"(i32 %sgpr0) #1
429    tail call void asm sideeffect "; reg use $0", "{s1}"(i32 %sgpr1) #1
430    tail call void asm sideeffect "; reg use $0", "{s2}"(i32 %sgpr2) #1
431    tail call void asm sideeffect "; reg use $0", "{s3}"(i32 %sgpr3) #1
432    tail call void asm sideeffect "; reg use $0", "{s4}"(i32 %sgpr4) #1
433    tail call void asm sideeffect "; reg use $0", "{s5}"(i32 %sgpr5) #1
434    tail call void asm sideeffect "; reg use $0", "{s6}"(i32 %sgpr6) #1
435    tail call void asm sideeffect "; reg use $0", "{s7}"(i32 %sgpr7) #1
436    tail call void asm sideeffect "; reg use $0", "{s8}"(i32 %sgpr8) #1
437    tail call void asm sideeffect "; reg use $0", "{s9}"(i32 %sgpr9) #1
438    tail call void asm sideeffect "; reg use $0", "{s10}"(i32 %sgpr10) #1
439    tail call void asm sideeffect "; reg use $0", "{s11}"(i32 %sgpr11) #1
440    tail call void asm sideeffect "; reg use $0", "{s12}"(i32 %sgpr12) #1
441    tail call void asm sideeffect "; reg use $0", "{s13}"(i32 %sgpr13) #1
442    tail call void asm sideeffect "; reg use $0", "{s14}"(i32 %sgpr14) #1
443    tail call void asm sideeffect "; reg use $0", "{s15}"(i32 %sgpr15) #1
444    tail call void asm sideeffect "; reg use $0", "{s16}"(i32 %sgpr16) #1
445    tail call void asm sideeffect "; reg use $0", "{s17}"(i32 %sgpr17) #1
446    tail call void asm sideeffect "; reg use $0", "{s18}"(i32 %sgpr18) #1
447    tail call void asm sideeffect "; reg use $0", "{s19}"(i32 %sgpr19) #1
448    tail call void asm sideeffect "; reg use $0", "{s20}"(i32 %sgpr20) #1
449    tail call void asm sideeffect "; reg use $0", "{s21}"(i32 %sgpr21) #1
450    tail call void asm sideeffect "; reg use $0", "{s22}"(i32 %sgpr22) #1
451    tail call void asm sideeffect "; reg use $0", "{s23}"(i32 %sgpr23) #1
452    tail call void asm sideeffect "; reg use $0", "{s24}"(i32 %sgpr24) #1
453    tail call void asm sideeffect "; reg use $0", "{s25}"(i32 %sgpr25) #1
454    tail call void asm sideeffect "; reg use $0", "{s26}"(i32 %sgpr26) #1
455    tail call void asm sideeffect "; reg use $0", "{s27}"(i32 %sgpr27) #1
456    tail call void asm sideeffect "; reg use $0", "{s28}"(i32 %sgpr28) #1
457    tail call void asm sideeffect "; reg use $0", "{s29}"(i32 %sgpr29) #1
458    tail call void asm sideeffect "; reg use $0", "{s30}"(i32 %sgpr30) #1
459    tail call void asm sideeffect "; reg use $0", "{s31}"(i32 %sgpr31) #1
460    tail call void asm sideeffect "; reg use $0", "{s32}"(i32 %sgpr32) #1
461    tail call void asm sideeffect "; reg use $0", "{s33}"(i32 %sgpr33) #1
462    tail call void asm sideeffect "; reg use $0", "{s34}"(i32 %sgpr34) #1
463    tail call void asm sideeffect "; reg use $0", "{s35}"(i32 %sgpr35) #1
464    tail call void asm sideeffect "; reg use $0", "{s36}"(i32 %sgpr36) #1
465    tail call void asm sideeffect "; reg use $0", "{s37}"(i32 %sgpr37) #1
466    tail call void asm sideeffect "; reg use $0", "{s38}"(i32 %sgpr38) #1
467    tail call void asm sideeffect "; reg use $0", "{s39}"(i32 %sgpr39) #1
468    tail call void asm sideeffect "; reg use $0", "{s40}"(i32 %sgpr40) #1
469    tail call void asm sideeffect "; reg use $0", "{s41}"(i32 %sgpr41) #1
470    tail call void asm sideeffect "; reg use $0", "{s42}"(i32 %sgpr42) #1
471    tail call void asm sideeffect "; reg use $0", "{s43}"(i32 %sgpr43) #1
472    tail call void asm sideeffect "; reg use $0", "{s44}"(i32 %sgpr44) #1
473    tail call void asm sideeffect "; reg use $0", "{s45}"(i32 %sgpr45) #1
474    tail call void asm sideeffect "; reg use $0", "{s46}"(i32 %sgpr46) #1
475    tail call void asm sideeffect "; reg use $0", "{s47}"(i32 %sgpr47) #1
476    tail call void asm sideeffect "; reg use $0", "{s48}"(i32 %sgpr48) #1
477    tail call void asm sideeffect "; reg use $0", "{s49}"(i32 %sgpr49) #1
478    tail call void asm sideeffect "; reg use $0", "{s50}"(i32 %sgpr50) #1
479    tail call void asm sideeffect "; reg use $0", "{s51}"(i32 %sgpr51) #1
480    tail call void asm sideeffect "; reg use $0", "{s52}"(i32 %sgpr52) #1
481    tail call void asm sideeffect "; reg use $0", "{s53}"(i32 %sgpr53) #1
482    tail call void asm sideeffect "; reg use $0", "{s54}"(i32 %sgpr54) #1
483    tail call void asm sideeffect "; reg use $0", "{s55}"(i32 %sgpr55) #1
484    tail call void asm sideeffect "; reg use $0", "{s56}"(i32 %sgpr56) #1
485    tail call void asm sideeffect "; reg use $0", "{s57}"(i32 %sgpr57) #1
486    tail call void asm sideeffect "; reg use $0", "{s58}"(i32 %sgpr58) #1
487    tail call void asm sideeffect "; reg use $0", "{s59}"(i32 %sgpr59) #1
488    tail call void asm sideeffect "; reg use $0", "{s60}"(i32 %sgpr60) #1
489    tail call void asm sideeffect "; reg use $0", "{s61}"(i32 %sgpr61) #1
490    tail call void asm sideeffect "; reg use $0", "{s62}"(i32 %sgpr62) #1
491    tail call void asm sideeffect "; reg use $0", "{s63}"(i32 %sgpr63) #1
492    tail call void asm sideeffect "; reg use $0", "{s64}"(i32 %sgpr64) #1
493    tail call void asm sideeffect "; reg use $0", "{s65}"(i32 %sgpr65) #1
494    tail call void asm sideeffect "; reg use $0", "{s66}"(i32 %sgpr66) #1
495    tail call void asm sideeffect "; reg use $0", "{s67}"(i32 %sgpr67) #1
496    tail call void asm sideeffect "; reg use $0", "{s68}"(i32 %sgpr68) #1
497    tail call void asm sideeffect "; reg use $0", "{s69}"(i32 %sgpr69) #1
498    tail call void asm sideeffect "; reg use $0", "{s70}"(i32 %sgpr70) #1
499    tail call void asm sideeffect "; reg use $0", "{s71}"(i32 %sgpr71) #1
500    tail call void asm sideeffect "; reg use $0", "{s72}"(i32 %sgpr72) #1
501    tail call void asm sideeffect "; reg use $0", "{s73}"(i32 %sgpr73) #1
502    tail call void asm sideeffect "; reg use $0", "{s74}"(i32 %sgpr74) #1
503    tail call void asm sideeffect "; reg use $0", "{s75}"(i32 %sgpr75) #1
504    tail call void asm sideeffect "; reg use $0", "{s76}"(i32 %sgpr76) #1
505    tail call void asm sideeffect "; reg use $0", "{s77}"(i32 %sgpr77) #1
506    tail call void asm sideeffect "; reg use $0", "{s78}"(i32 %sgpr78) #1
507    tail call void asm sideeffect "; reg use $0", "{s79}"(i32 %sgpr79) #1
508    tail call void asm sideeffect "; reg use $0", "{s80}"(i32 %sgpr80) #1
509    tail call void asm sideeffect "; reg use $0", "{s81}"(i32 %sgpr81) #1
510    tail call void asm sideeffect "; reg use $0", "{s82}"(i32 %sgpr82) #1
511    tail call void asm sideeffect "; reg use $0", "{s83}"(i32 %sgpr83) #1
512    tail call void asm sideeffect "; reg use $0", "{s84}"(i32 %sgpr84) #1
513    tail call void asm sideeffect "; reg use $0", "{s85}"(i32 %sgpr85) #1
514    tail call void asm sideeffect "; reg use $0", "{s86}"(i32 %sgpr86) #1
515    tail call void asm sideeffect "; reg use $0", "{s87}"(i32 %sgpr87) #1
516    tail call void asm sideeffect "; reg use $0", "{s88}"(i32 %sgpr88) #1
517    tail call void asm sideeffect "; reg use $0", "{s89}"(i32 %sgpr89) #1
518    tail call void asm sideeffect "; reg use $0", "{s90}"(i32 %sgpr90) #1
519    tail call void asm sideeffect "; reg use $0", "{s91}"(i32 %sgpr91) #1
520    tail call void asm sideeffect "; reg use $0", "{s92}"(i32 %sgpr92) #1
521    tail call void asm sideeffect "; reg use $0", "{s93}"(i32 %sgpr93) #1
522    tail call void asm sideeffect "; reg use $0", "{s94}"(i32 %sgpr94) #1
523    tail call void asm sideeffect "; reg use $0", "{s95}"(i32 %sgpr95) #1
524    tail call void asm sideeffect "; reg use $0", "{s96}"(i32 %sgpr96) #1
525    tail call void asm sideeffect "; reg use $0", "{s97}"(i32 %sgpr97) #1
526    tail call void asm sideeffect "; reg use $0", "{vcc_lo}"(i32 %vcc_lo) #1
527    tail call void asm sideeffect "; reg use $0", "{vcc_hi}"(i32 %vcc_hi) #1
528    ret void
529  }
530; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
531declare align 4 ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr() #2
532
533attributes #0 = { "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-implicitarg-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" }
534attributes #1 = { nounwind }
535attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
536!0 = !{}
537