1; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=tahiti -amdgpu-s-branch-bits=5 -amdgpu-long-branch-factor=0 < %s | FileCheck --check-prefix=GCN %s 2; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=tahiti -amdgpu-s-branch-bits=5 -amdgpu-long-branch-factor=0 -amdgpu-use-amdgpu-trackers=1 < %s | FileCheck --check-prefix=GCN-GCNTRACKERS %s 3 4; CHECK-LABEL: {{^}}spill: 5; GCN: NumSgprs: 104 6; GCN-GCNTRACKERS: NumSgprs: 104 7; GCN: NumVgprs: 1 8; GCN-GCNTRACKERS: NumVgprs: 2 9; GCN: ScratchSize: 0 10; GCN-GCNTRACKERS: ScratchSize: 0 11; GCN: Occupancy: 5 12; GCN-GCNTRACKERS: Occupancy: 5 13 14; FIXME: GCN Trackers do not track pressure from PhysRegs, so scheduling is actually worse 15 16define amdgpu_kernel void @spill(ptr addrspace(1) %arg, i32 %cnd) #0 { 17entry: 18 %sgpr0 = tail call i32 asm sideeffect "s_mov_b32 s0, 0", "={s0}"() #0 19 %sgpr1 = tail call i32 asm sideeffect "s_mov_b32 s1, 0", "={s1}"() #0 20 %sgpr2 = tail call i32 asm sideeffect "s_mov_b32 s2, 0", "={s2}"() #0 21 %sgpr3 = tail call i32 asm sideeffect "s_mov_b32 s3, 0", "={s3}"() #0 22 %sgpr4 = tail call i32 asm sideeffect "s_mov_b32 s4, 0", "={s4}"() #0 23 %sgpr5 = tail call i32 asm sideeffect "s_mov_b32 s5, 0", "={s5}"() #0 24 %sgpr6 = tail call i32 asm sideeffect "s_mov_b32 s6, 0", "={s6}"() #0 25 %sgpr7 = tail call i32 asm sideeffect "s_mov_b32 s7, 0", "={s7}"() #0 26 %sgpr8 = tail call i32 asm sideeffect "s_mov_b32 s8, 0", "={s8}"() #0 27 %sgpr9 = tail call i32 asm sideeffect "s_mov_b32 s9, 0", "={s9}"() #0 28 %sgpr10 = tail call i32 asm sideeffect "s_mov_b32 s10, 0", "={s10}"() #0 29 %sgpr11 = tail call i32 asm sideeffect "s_mov_b32 s11, 0", "={s11}"() #0 30 %sgpr12 = tail call i32 asm sideeffect "s_mov_b32 s12, 0", "={s12}"() #0 31 %sgpr13 = tail call i32 asm sideeffect "s_mov_b32 s13, 0", "={s13}"() #0 32 %sgpr14 = tail call i32 asm sideeffect "s_mov_b32 s14, 0", "={s14}"() #0 33 %sgpr15 = tail call i32 asm sideeffect "s_mov_b32 s15, 0", "={s15}"() #0 34 %sgpr16 = tail call i32 asm sideeffect "s_mov_b32 s16, 0", "={s16}"() #0 35 %sgpr17 = tail call i32 asm sideeffect "s_mov_b32 s17, 0", "={s17}"() #0 36 %sgpr18 = tail call i32 asm sideeffect "s_mov_b32 s18, 0", "={s18}"() #0 37 %sgpr19 = tail call i32 asm sideeffect "s_mov_b32 s19, 0", "={s19}"() #0 38 %sgpr20 = tail call i32 asm sideeffect "s_mov_b32 s20, 0", "={s20}"() #0 39 %sgpr21 = tail call i32 asm sideeffect "s_mov_b32 s21, 0", "={s21}"() #0 40 %sgpr22 = tail call i32 asm sideeffect "s_mov_b32 s22, 0", "={s22}"() #0 41 %sgpr23 = tail call i32 asm sideeffect "s_mov_b32 s23, 0", "={s23}"() #0 42 %sgpr24 = tail call i32 asm sideeffect "s_mov_b32 s24, 0", "={s24}"() #0 43 %sgpr25 = tail call i32 asm sideeffect "s_mov_b32 s25, 0", "={s25}"() #0 44 %sgpr26 = tail call i32 asm sideeffect "s_mov_b32 s26, 0", "={s26}"() #0 45 %sgpr27 = tail call i32 asm sideeffect "s_mov_b32 s27, 0", "={s27}"() #0 46 %sgpr28 = tail call i32 asm sideeffect "s_mov_b32 s28, 0", "={s28}"() #0 47 %sgpr29 = tail call i32 asm sideeffect "s_mov_b32 s29, 0", "={s29}"() #0 48 %sgpr30 = tail call i32 asm sideeffect "s_mov_b32 s30, 0", "={s30}"() #0 49 %sgpr31 = tail call i32 asm sideeffect "s_mov_b32 s31, 0", "={s31}"() #0 50 %sgpr32 = tail call i32 asm sideeffect "s_mov_b32 s32, 0", "={s32}"() #0 51 %sgpr33 = tail call i32 asm sideeffect "s_mov_b32 s33, 0", "={s33}"() #0 52 %sgpr34 = tail call i32 asm sideeffect "s_mov_b32 s34, 0", "={s34}"() #0 53 %sgpr35 = tail call i32 asm sideeffect "s_mov_b32 s35, 0", "={s35}"() #0 54 %sgpr36 = tail call i32 asm sideeffect "s_mov_b32 s36, 0", "={s36}"() #0 55 %sgpr37 = tail call i32 asm sideeffect "s_mov_b32 s37, 0", "={s37}"() #0 56 %sgpr38 = tail call i32 asm sideeffect "s_mov_b32 s38, 0", "={s38}"() #0 57 %sgpr39 = tail call i32 asm sideeffect "s_mov_b32 s39, 0", "={s39}"() #0 58 %sgpr40 = tail call i32 asm sideeffect "s_mov_b32 s40, 0", "={s40}"() #0 59 %sgpr41 = tail call i32 asm sideeffect "s_mov_b32 s41, 0", "={s41}"() #0 60 %sgpr42 = tail call i32 asm sideeffect "s_mov_b32 s42, 0", "={s42}"() #0 61 %sgpr43 = tail call i32 asm sideeffect "s_mov_b32 s43, 0", "={s43}"() #0 62 %sgpr44 = tail call i32 asm sideeffect "s_mov_b32 s44, 0", "={s44}"() #0 63 %sgpr45 = tail call i32 asm sideeffect "s_mov_b32 s45, 0", "={s45}"() #0 64 %sgpr46 = tail call i32 asm sideeffect "s_mov_b32 s46, 0", "={s46}"() #0 65 %sgpr47 = tail call i32 asm sideeffect "s_mov_b32 s47, 0", "={s47}"() #0 66 %sgpr48 = tail call i32 asm sideeffect "s_mov_b32 s48, 0", "={s48}"() #0 67 %sgpr49 = tail call i32 asm sideeffect "s_mov_b32 s49, 0", "={s49}"() #0 68 %sgpr50 = tail call i32 asm sideeffect "s_mov_b32 s50, 0", "={s50}"() #0 69 %sgpr51 = tail call i32 asm sideeffect "s_mov_b32 s51, 0", "={s51}"() #0 70 %sgpr52 = tail call i32 asm sideeffect "s_mov_b32 s52, 0", "={s52}"() #0 71 %sgpr53 = tail call i32 asm sideeffect "s_mov_b32 s53, 0", "={s53}"() #0 72 %sgpr54 = tail call i32 asm sideeffect "s_mov_b32 s54, 0", "={s54}"() #0 73 %sgpr55 = tail call i32 asm sideeffect "s_mov_b32 s55, 0", "={s55}"() #0 74 %sgpr56 = tail call i32 asm sideeffect "s_mov_b32 s56, 0", "={s56}"() #0 75 %sgpr57 = tail call i32 asm sideeffect "s_mov_b32 s57, 0", "={s57}"() #0 76 %sgpr58 = tail call i32 asm sideeffect "s_mov_b32 s58, 0", "={s58}"() #0 77 %sgpr59 = tail call i32 asm sideeffect "s_mov_b32 s59, 0", "={s59}"() #0 78 %sgpr60 = tail call i32 asm sideeffect "s_mov_b32 s60, 0", "={s60}"() #0 79 %sgpr61 = tail call i32 asm sideeffect "s_mov_b32 s61, 0", "={s61}"() #0 80 %sgpr62 = tail call i32 asm sideeffect "s_mov_b32 s62, 0", "={s62}"() #0 81 %sgpr63 = tail call i32 asm sideeffect "s_mov_b32 s63, 0", "={s63}"() #0 82 %sgpr64 = tail call i32 asm sideeffect "s_mov_b32 s64, 0", "={s64}"() #0 83 %sgpr65 = tail call i32 asm sideeffect "s_mov_b32 s65, 0", "={s65}"() #0 84 %sgpr66 = tail call i32 asm sideeffect "s_mov_b32 s66, 0", "={s66}"() #0 85 %sgpr67 = tail call i32 asm sideeffect "s_mov_b32 s67, 0", "={s67}"() #0 86 %sgpr68 = tail call i32 asm sideeffect "s_mov_b32 s68, 0", "={s68}"() #0 87 %sgpr69 = tail call i32 asm sideeffect "s_mov_b32 s69, 0", "={s69}"() #0 88 %sgpr70 = tail call i32 asm sideeffect "s_mov_b32 s70, 0", "={s70}"() #0 89 %sgpr71 = tail call i32 asm sideeffect "s_mov_b32 s71, 0", "={s71}"() #0 90 %sgpr72 = tail call i32 asm sideeffect "s_mov_b32 s72, 0", "={s72}"() #0 91 %sgpr73 = tail call i32 asm sideeffect "s_mov_b32 s73, 0", "={s73}"() #0 92 %sgpr74 = tail call i32 asm sideeffect "s_mov_b32 s74, 0", "={s74}"() #0 93 %sgpr75 = tail call i32 asm sideeffect "s_mov_b32 s75, 0", "={s75}"() #0 94 %sgpr76 = tail call i32 asm sideeffect "s_mov_b32 s76, 0", "={s76}"() #0 95 %sgpr77 = tail call i32 asm sideeffect "s_mov_b32 s77, 0", "={s77}"() #0 96 %sgpr78 = tail call i32 asm sideeffect "s_mov_b32 s78, 0", "={s78}"() #0 97 %sgpr79 = tail call i32 asm sideeffect "s_mov_b32 s79, 0", "={s79}"() #0 98 %sgpr80 = tail call i32 asm sideeffect "s_mov_b32 s80, 0", "={s80}"() #0 99 %sgpr81 = tail call i32 asm sideeffect "s_mov_b32 s81, 0", "={s81}"() #0 100 %sgpr82 = tail call i32 asm sideeffect "s_mov_b32 s82, 0", "={s82}"() #0 101 %sgpr83 = tail call i32 asm sideeffect "s_mov_b32 s83, 0", "={s83}"() #0 102 %sgpr84 = tail call i32 asm sideeffect "s_mov_b32 s84, 0", "={s84}"() #0 103 %sgpr85 = tail call i32 asm sideeffect "s_mov_b32 s85, 0", "={s85}"() #0 104 %sgpr86 = tail call i32 asm sideeffect "s_mov_b32 s86, 0", "={s86}"() #0 105 %sgpr87 = tail call i32 asm sideeffect "s_mov_b32 s87, 0", "={s87}"() #0 106 %sgpr88 = tail call i32 asm sideeffect "s_mov_b32 s88, 0", "={s88}"() #0 107 %sgpr89 = tail call i32 asm sideeffect "s_mov_b32 s89, 0", "={s89}"() #0 108 %sgpr90 = tail call i32 asm sideeffect "s_mov_b32 s90, 0", "={s90}"() #0 109 %sgpr91 = tail call i32 asm sideeffect "s_mov_b32 s91, 0", "={s91}"() #0 110 %sgpr92 = tail call i32 asm sideeffect "s_mov_b32 s92, 0", "={s92}"() #0 111 %sgpr93 = tail call i32 asm sideeffect "s_mov_b32 s93, 0", "={s93}"() #0 112 %sgpr94 = tail call i32 asm sideeffect "s_mov_b32 s94, 0", "={s94}"() #0 113 %sgpr95 = tail call i32 asm sideeffect "s_mov_b32 s95, 0", "={s95}"() #0 114 %sgpr96 = tail call i32 asm sideeffect "s_mov_b32 s96, 0", "={s96}"() #0 115 %sgpr97 = tail call i32 asm sideeffect "s_mov_b32 s97, 0", "={s97}"() #0 116 %sgpr98 = tail call i32 asm sideeffect "s_mov_b32 s98, 0", "={s98}"() #0 117 %sgpr99 = tail call i32 asm sideeffect "s_mov_b32 s99, 0", "={s99}"() #0 118 %sgpr100 = tail call i32 asm sideeffect "s_mov_b32 s100, 0", "={s100}"() #0 119 %sgpr101 = tail call i32 asm sideeffect "s_mov_b32 s101, 0", "={s101}"() #0 120 %vcc_lo = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_lo}"() #0 121 %vcc_hi = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_hi}"() #0 122 %cmp = icmp eq i32 %cnd, 0 123 br i1 %cmp, label %bb3, label %bb2 ; +8 dword branch 124 125bb2: ; 68 bytes 126 ; 64 byte asm 127 call void asm sideeffect 128 "v_nop_e64 129 v_nop_e64 130 v_nop_e64 131 v_nop_e64 132 v_nop_e64 133 v_nop_e64 134 v_nop_e64 135 v_nop_e64",""() #0 136 br label %bb3 137 138bb3: 139 tail call void asm sideeffect "; reg use $0", "{s0}"(i32 %sgpr0) #0 140 tail call void asm sideeffect "; reg use $0", "{s1}"(i32 %sgpr1) #0 141 tail call void asm sideeffect "; reg use $0", "{s2}"(i32 %sgpr2) #0 142 tail call void asm sideeffect "; reg use $0", "{s3}"(i32 %sgpr3) #0 143 tail call void asm sideeffect "; reg use $0", "{s4}"(i32 %sgpr4) #0 144 tail call void asm sideeffect "; reg use $0", "{s5}"(i32 %sgpr5) #0 145 tail call void asm sideeffect "; reg use $0", "{s6}"(i32 %sgpr6) #0 146 tail call void asm sideeffect "; reg use $0", "{s7}"(i32 %sgpr7) #0 147 tail call void asm sideeffect "; reg use $0", "{s8}"(i32 %sgpr8) #0 148 tail call void asm sideeffect "; reg use $0", "{s9}"(i32 %sgpr9) #0 149 tail call void asm sideeffect "; reg use $0", "{s10}"(i32 %sgpr10) #0 150 tail call void asm sideeffect "; reg use $0", "{s11}"(i32 %sgpr11) #0 151 tail call void asm sideeffect "; reg use $0", "{s12}"(i32 %sgpr12) #0 152 tail call void asm sideeffect "; reg use $0", "{s13}"(i32 %sgpr13) #0 153 tail call void asm sideeffect "; reg use $0", "{s14}"(i32 %sgpr14) #0 154 tail call void asm sideeffect "; reg use $0", "{s15}"(i32 %sgpr15) #0 155 tail call void asm sideeffect "; reg use $0", "{s16}"(i32 %sgpr16) #0 156 tail call void asm sideeffect "; reg use $0", "{s17}"(i32 %sgpr17) #0 157 tail call void asm sideeffect "; reg use $0", "{s18}"(i32 %sgpr18) #0 158 tail call void asm sideeffect "; reg use $0", "{s19}"(i32 %sgpr19) #0 159 tail call void asm sideeffect "; reg use $0", "{s20}"(i32 %sgpr20) #0 160 tail call void asm sideeffect "; reg use $0", "{s21}"(i32 %sgpr21) #0 161 tail call void asm sideeffect "; reg use $0", "{s22}"(i32 %sgpr22) #0 162 tail call void asm sideeffect "; reg use $0", "{s23}"(i32 %sgpr23) #0 163 tail call void asm sideeffect "; reg use $0", "{s24}"(i32 %sgpr24) #0 164 tail call void asm sideeffect "; reg use $0", "{s25}"(i32 %sgpr25) #0 165 tail call void asm sideeffect "; reg use $0", "{s26}"(i32 %sgpr26) #0 166 tail call void asm sideeffect "; reg use $0", "{s27}"(i32 %sgpr27) #0 167 tail call void asm sideeffect "; reg use $0", "{s28}"(i32 %sgpr28) #0 168 tail call void asm sideeffect "; reg use $0", "{s29}"(i32 %sgpr29) #0 169 tail call void asm sideeffect "; reg use $0", "{s30}"(i32 %sgpr30) #0 170 tail call void asm sideeffect "; reg use $0", "{s31}"(i32 %sgpr31) #0 171 tail call void asm sideeffect "; reg use $0", "{s32}"(i32 %sgpr32) #0 172 tail call void asm sideeffect "; reg use $0", "{s33}"(i32 %sgpr33) #0 173 tail call void asm sideeffect "; reg use $0", "{s34}"(i32 %sgpr34) #0 174 tail call void asm sideeffect "; reg use $0", "{s35}"(i32 %sgpr35) #0 175 tail call void asm sideeffect "; reg use $0", "{s36}"(i32 %sgpr36) #0 176 tail call void asm sideeffect "; reg use $0", "{s37}"(i32 %sgpr37) #0 177 tail call void asm sideeffect "; reg use $0", "{s38}"(i32 %sgpr38) #0 178 tail call void asm sideeffect "; reg use $0", "{s39}"(i32 %sgpr39) #0 179 tail call void asm sideeffect "; reg use $0", "{s40}"(i32 %sgpr40) #0 180 tail call void asm sideeffect "; reg use $0", "{s41}"(i32 %sgpr41) #0 181 tail call void asm sideeffect "; reg use $0", "{s42}"(i32 %sgpr42) #0 182 tail call void asm sideeffect "; reg use $0", "{s43}"(i32 %sgpr43) #0 183 tail call void asm sideeffect "; reg use $0", "{s44}"(i32 %sgpr44) #0 184 tail call void asm sideeffect "; reg use $0", "{s45}"(i32 %sgpr45) #0 185 tail call void asm sideeffect "; reg use $0", "{s46}"(i32 %sgpr46) #0 186 tail call void asm sideeffect "; reg use $0", "{s47}"(i32 %sgpr47) #0 187 tail call void asm sideeffect "; reg use $0", "{s48}"(i32 %sgpr48) #0 188 tail call void asm sideeffect "; reg use $0", "{s49}"(i32 %sgpr49) #0 189 tail call void asm sideeffect "; reg use $0", "{s50}"(i32 %sgpr50) #0 190 tail call void asm sideeffect "; reg use $0", "{s51}"(i32 %sgpr51) #0 191 tail call void asm sideeffect "; reg use $0", "{s52}"(i32 %sgpr52) #0 192 tail call void asm sideeffect "; reg use $0", "{s53}"(i32 %sgpr53) #0 193 tail call void asm sideeffect "; reg use $0", "{s54}"(i32 %sgpr54) #0 194 tail call void asm sideeffect "; reg use $0", "{s55}"(i32 %sgpr55) #0 195 tail call void asm sideeffect "; reg use $0", "{s56}"(i32 %sgpr56) #0 196 tail call void asm sideeffect "; reg use $0", "{s57}"(i32 %sgpr57) #0 197 tail call void asm sideeffect "; reg use $0", "{s58}"(i32 %sgpr58) #0 198 tail call void asm sideeffect "; reg use $0", "{s59}"(i32 %sgpr59) #0 199 tail call void asm sideeffect "; reg use $0", "{s60}"(i32 %sgpr60) #0 200 tail call void asm sideeffect "; reg use $0", "{s61}"(i32 %sgpr61) #0 201 tail call void asm sideeffect "; reg use $0", "{s62}"(i32 %sgpr62) #0 202 tail call void asm sideeffect "; reg use $0", "{s63}"(i32 %sgpr63) #0 203 tail call void asm sideeffect "; reg use $0", "{s64}"(i32 %sgpr64) #0 204 tail call void asm sideeffect "; reg use $0", "{s65}"(i32 %sgpr65) #0 205 tail call void asm sideeffect "; reg use $0", "{s66}"(i32 %sgpr66) #0 206 tail call void asm sideeffect "; reg use $0", "{s67}"(i32 %sgpr67) #0 207 tail call void asm sideeffect "; reg use $0", "{s68}"(i32 %sgpr68) #0 208 tail call void asm sideeffect "; reg use $0", "{s69}"(i32 %sgpr69) #0 209 tail call void asm sideeffect "; reg use $0", "{s70}"(i32 %sgpr70) #0 210 tail call void asm sideeffect "; reg use $0", "{s71}"(i32 %sgpr71) #0 211 tail call void asm sideeffect "; reg use $0", "{s72}"(i32 %sgpr72) #0 212 tail call void asm sideeffect "; reg use $0", "{s73}"(i32 %sgpr73) #0 213 tail call void asm sideeffect "; reg use $0", "{s74}"(i32 %sgpr74) #0 214 tail call void asm sideeffect "; reg use $0", "{s75}"(i32 %sgpr75) #0 215 tail call void asm sideeffect "; reg use $0", "{s76}"(i32 %sgpr76) #0 216 tail call void asm sideeffect "; reg use $0", "{s77}"(i32 %sgpr77) #0 217 tail call void asm sideeffect "; reg use $0", "{s78}"(i32 %sgpr78) #0 218 tail call void asm sideeffect "; reg use $0", "{s79}"(i32 %sgpr79) #0 219 tail call void asm sideeffect "; reg use $0", "{s80}"(i32 %sgpr80) #0 220 tail call void asm sideeffect "; reg use $0", "{s81}"(i32 %sgpr81) #0 221 tail call void asm sideeffect "; reg use $0", "{s82}"(i32 %sgpr82) #0 222 tail call void asm sideeffect "; reg use $0", "{s83}"(i32 %sgpr83) #0 223 tail call void asm sideeffect "; reg use $0", "{s84}"(i32 %sgpr84) #0 224 tail call void asm sideeffect "; reg use $0", "{s85}"(i32 %sgpr85) #0 225 tail call void asm sideeffect "; reg use $0", "{s86}"(i32 %sgpr86) #0 226 tail call void asm sideeffect "; reg use $0", "{s87}"(i32 %sgpr87) #0 227 tail call void asm sideeffect "; reg use $0", "{s88}"(i32 %sgpr88) #0 228 tail call void asm sideeffect "; reg use $0", "{s89}"(i32 %sgpr89) #0 229 tail call void asm sideeffect "; reg use $0", "{s90}"(i32 %sgpr90) #0 230 tail call void asm sideeffect "; reg use $0", "{s91}"(i32 %sgpr91) #0 231 tail call void asm sideeffect "; reg use $0", "{s92}"(i32 %sgpr92) #0 232 tail call void asm sideeffect "; reg use $0", "{s93}"(i32 %sgpr93) #0 233 tail call void asm sideeffect "; reg use $0", "{s94}"(i32 %sgpr94) #0 234 tail call void asm sideeffect "; reg use $0", "{s95}"(i32 %sgpr95) #0 235 tail call void asm sideeffect "; reg use $0", "{s96}"(i32 %sgpr96) #0 236 tail call void asm sideeffect "; reg use $0", "{s97}"(i32 %sgpr97) #0 237 tail call void asm sideeffect "; reg use $0", "{s98}"(i32 %sgpr98) #0 238 tail call void asm sideeffect "; reg use $0", "{s99}"(i32 %sgpr99) #0 239 tail call void asm sideeffect "; reg use $0", "{s100}"(i32 %sgpr100) #0 240 tail call void asm sideeffect "; reg use $0", "{s101}"(i32 %sgpr101) #0 241 tail call void asm sideeffect "; reg use $0", "{vcc_lo}"(i32 %vcc_lo) #0 242 tail call void asm sideeffect "; reg use $0", "{vcc_hi}"(i32 %vcc_hi) #0 243 ret void 244} 245 246; CHECK-LABEL: {{^}}spill_func: 247; GCN: NumSgprs: 104 248; GCN-GCNTRACKERS: NumSgprs: 104 249; GCN: NumVgprs: 3 250; GCN-GCNTRACKERS: NumVgprs: 4 251; GCN: ScratchSize: 12 252; GCN-GCNTRACKERS: ScratchSize: 16 253 254define void @spill_func(ptr addrspace(1) %arg) #0 { 255entry: 256 %cnd = tail call i32 @llvm.amdgcn.workgroup.id.x() #0 257 %sgpr0 = tail call i32 asm sideeffect "s_mov_b32 s0, 0", "={s0}"() #0 258 %sgpr1 = tail call i32 asm sideeffect "s_mov_b32 s1, 0", "={s1}"() #0 259 %sgpr2 = tail call i32 asm sideeffect "s_mov_b32 s2, 0", "={s2}"() #0 260 %sgpr3 = tail call i32 asm sideeffect "s_mov_b32 s3, 0", "={s3}"() #0 261 %sgpr4 = tail call i32 asm sideeffect "s_mov_b32 s4, 0", "={s4}"() #0 262 %sgpr5 = tail call i32 asm sideeffect "s_mov_b32 s5, 0", "={s5}"() #0 263 %sgpr6 = tail call i32 asm sideeffect "s_mov_b32 s6, 0", "={s6}"() #0 264 %sgpr7 = tail call i32 asm sideeffect "s_mov_b32 s7, 0", "={s7}"() #0 265 %sgpr8 = tail call i32 asm sideeffect "s_mov_b32 s8, 0", "={s8}"() #0 266 %sgpr9 = tail call i32 asm sideeffect "s_mov_b32 s9, 0", "={s9}"() #0 267 %sgpr10 = tail call i32 asm sideeffect "s_mov_b32 s10, 0", "={s10}"() #0 268 %sgpr11 = tail call i32 asm sideeffect "s_mov_b32 s11, 0", "={s11}"() #0 269 %sgpr12 = tail call i32 asm sideeffect "s_mov_b32 s12, 0", "={s12}"() #0 270 %sgpr13 = tail call i32 asm sideeffect "s_mov_b32 s13, 0", "={s13}"() #0 271 %sgpr14 = tail call i32 asm sideeffect "s_mov_b32 s14, 0", "={s14}"() #0 272 %sgpr15 = tail call i32 asm sideeffect "s_mov_b32 s15, 0", "={s15}"() #0 273 %sgpr16 = tail call i32 asm sideeffect "s_mov_b32 s16, 0", "={s16}"() #0 274 %sgpr17 = tail call i32 asm sideeffect "s_mov_b32 s17, 0", "={s17}"() #0 275 %sgpr18 = tail call i32 asm sideeffect "s_mov_b32 s18, 0", "={s18}"() #0 276 %sgpr19 = tail call i32 asm sideeffect "s_mov_b32 s19, 0", "={s19}"() #0 277 %sgpr20 = tail call i32 asm sideeffect "s_mov_b32 s20, 0", "={s20}"() #0 278 %sgpr21 = tail call i32 asm sideeffect "s_mov_b32 s21, 0", "={s21}"() #0 279 %sgpr22 = tail call i32 asm sideeffect "s_mov_b32 s22, 0", "={s22}"() #0 280 %sgpr23 = tail call i32 asm sideeffect "s_mov_b32 s23, 0", "={s23}"() #0 281 %sgpr24 = tail call i32 asm sideeffect "s_mov_b32 s24, 0", "={s24}"() #0 282 %sgpr25 = tail call i32 asm sideeffect "s_mov_b32 s25, 0", "={s25}"() #0 283 %sgpr26 = tail call i32 asm sideeffect "s_mov_b32 s26, 0", "={s26}"() #0 284 %sgpr27 = tail call i32 asm sideeffect "s_mov_b32 s27, 0", "={s27}"() #0 285 %sgpr28 = tail call i32 asm sideeffect "s_mov_b32 s28, 0", "={s28}"() #0 286 %sgpr29 = tail call i32 asm sideeffect "s_mov_b32 s29, 0", "={s29}"() #0 287 %sgpr30 = tail call i32 asm sideeffect "s_mov_b32 s30, 0", "={s30}"() #0 288 %sgpr31 = tail call i32 asm sideeffect "s_mov_b32 s31, 0", "={s31}"() #0 289 %sgpr32 = tail call i32 asm sideeffect "s_mov_b32 s32, 0", "={s32}"() #0 290 %sgpr33 = tail call i32 asm sideeffect "s_mov_b32 s33, 0", "={s33}"() #0 291 %sgpr34 = tail call i32 asm sideeffect "s_mov_b32 s34, 0", "={s34}"() #0 292 %sgpr35 = tail call i32 asm sideeffect "s_mov_b32 s35, 0", "={s35}"() #0 293 %sgpr36 = tail call i32 asm sideeffect "s_mov_b32 s36, 0", "={s36}"() #0 294 %sgpr37 = tail call i32 asm sideeffect "s_mov_b32 s37, 0", "={s37}"() #0 295 %sgpr38 = tail call i32 asm sideeffect "s_mov_b32 s38, 0", "={s38}"() #0 296 %sgpr39 = tail call i32 asm sideeffect "s_mov_b32 s39, 0", "={s39}"() #0 297 %sgpr40 = tail call i32 asm sideeffect "s_mov_b32 s40, 0", "={s40}"() #0 298 %sgpr41 = tail call i32 asm sideeffect "s_mov_b32 s41, 0", "={s41}"() #0 299 %sgpr42 = tail call i32 asm sideeffect "s_mov_b32 s42, 0", "={s42}"() #0 300 %sgpr43 = tail call i32 asm sideeffect "s_mov_b32 s43, 0", "={s43}"() #0 301 %sgpr44 = tail call i32 asm sideeffect "s_mov_b32 s44, 0", "={s44}"() #0 302 %sgpr45 = tail call i32 asm sideeffect "s_mov_b32 s45, 0", "={s45}"() #0 303 %sgpr46 = tail call i32 asm sideeffect "s_mov_b32 s46, 0", "={s46}"() #0 304 %sgpr47 = tail call i32 asm sideeffect "s_mov_b32 s47, 0", "={s47}"() #0 305 %sgpr48 = tail call i32 asm sideeffect "s_mov_b32 s48, 0", "={s48}"() #0 306 %sgpr49 = tail call i32 asm sideeffect "s_mov_b32 s49, 0", "={s49}"() #0 307 %sgpr50 = tail call i32 asm sideeffect "s_mov_b32 s50, 0", "={s50}"() #0 308 %sgpr51 = tail call i32 asm sideeffect "s_mov_b32 s51, 0", "={s51}"() #0 309 %sgpr52 = tail call i32 asm sideeffect "s_mov_b32 s52, 0", "={s52}"() #0 310 %sgpr53 = tail call i32 asm sideeffect "s_mov_b32 s53, 0", "={s53}"() #0 311 %sgpr54 = tail call i32 asm sideeffect "s_mov_b32 s54, 0", "={s54}"() #0 312 %sgpr55 = tail call i32 asm sideeffect "s_mov_b32 s55, 0", "={s55}"() #0 313 %sgpr56 = tail call i32 asm sideeffect "s_mov_b32 s56, 0", "={s56}"() #0 314 %sgpr57 = tail call i32 asm sideeffect "s_mov_b32 s57, 0", "={s57}"() #0 315 %sgpr58 = tail call i32 asm sideeffect "s_mov_b32 s58, 0", "={s58}"() #0 316 %sgpr59 = tail call i32 asm sideeffect "s_mov_b32 s59, 0", "={s59}"() #0 317 %sgpr60 = tail call i32 asm sideeffect "s_mov_b32 s60, 0", "={s60}"() #0 318 %sgpr61 = tail call i32 asm sideeffect "s_mov_b32 s61, 0", "={s61}"() #0 319 %sgpr62 = tail call i32 asm sideeffect "s_mov_b32 s62, 0", "={s62}"() #0 320 %sgpr63 = tail call i32 asm sideeffect "s_mov_b32 s63, 0", "={s63}"() #0 321 %sgpr64 = tail call i32 asm sideeffect "s_mov_b32 s64, 0", "={s64}"() #0 322 %sgpr65 = tail call i32 asm sideeffect "s_mov_b32 s65, 0", "={s65}"() #0 323 %sgpr66 = tail call i32 asm sideeffect "s_mov_b32 s66, 0", "={s66}"() #0 324 %sgpr67 = tail call i32 asm sideeffect "s_mov_b32 s67, 0", "={s67}"() #0 325 %sgpr68 = tail call i32 asm sideeffect "s_mov_b32 s68, 0", "={s68}"() #0 326 %sgpr69 = tail call i32 asm sideeffect "s_mov_b32 s69, 0", "={s69}"() #0 327 %sgpr70 = tail call i32 asm sideeffect "s_mov_b32 s70, 0", "={s70}"() #0 328 %sgpr71 = tail call i32 asm sideeffect "s_mov_b32 s71, 0", "={s71}"() #0 329 %sgpr72 = tail call i32 asm sideeffect "s_mov_b32 s72, 0", "={s72}"() #0 330 %sgpr73 = tail call i32 asm sideeffect "s_mov_b32 s73, 0", "={s73}"() #0 331 %sgpr74 = tail call i32 asm sideeffect "s_mov_b32 s74, 0", "={s74}"() #0 332 %sgpr75 = tail call i32 asm sideeffect "s_mov_b32 s75, 0", "={s75}"() #0 333 %sgpr76 = tail call i32 asm sideeffect "s_mov_b32 s76, 0", "={s76}"() #0 334 %sgpr77 = tail call i32 asm sideeffect "s_mov_b32 s77, 0", "={s77}"() #0 335 %sgpr78 = tail call i32 asm sideeffect "s_mov_b32 s78, 0", "={s78}"() #0 336 %sgpr79 = tail call i32 asm sideeffect "s_mov_b32 s79, 0", "={s79}"() #0 337 %sgpr80 = tail call i32 asm sideeffect "s_mov_b32 s80, 0", "={s80}"() #0 338 %sgpr81 = tail call i32 asm sideeffect "s_mov_b32 s81, 0", "={s81}"() #0 339 %sgpr82 = tail call i32 asm sideeffect "s_mov_b32 s82, 0", "={s82}"() #0 340 %sgpr83 = tail call i32 asm sideeffect "s_mov_b32 s83, 0", "={s83}"() #0 341 %sgpr84 = tail call i32 asm sideeffect "s_mov_b32 s84, 0", "={s84}"() #0 342 %sgpr85 = tail call i32 asm sideeffect "s_mov_b32 s85, 0", "={s85}"() #0 343 %sgpr86 = tail call i32 asm sideeffect "s_mov_b32 s86, 0", "={s86}"() #0 344 %sgpr87 = tail call i32 asm sideeffect "s_mov_b32 s87, 0", "={s87}"() #0 345 %sgpr88 = tail call i32 asm sideeffect "s_mov_b32 s88, 0", "={s88}"() #0 346 %sgpr89 = tail call i32 asm sideeffect "s_mov_b32 s89, 0", "={s89}"() #0 347 %sgpr90 = tail call i32 asm sideeffect "s_mov_b32 s90, 0", "={s90}"() #0 348 %sgpr91 = tail call i32 asm sideeffect "s_mov_b32 s91, 0", "={s91}"() #0 349 %sgpr92 = tail call i32 asm sideeffect "s_mov_b32 s92, 0", "={s92}"() #0 350 %sgpr93 = tail call i32 asm sideeffect "s_mov_b32 s93, 0", "={s93}"() #0 351 %sgpr94 = tail call i32 asm sideeffect "s_mov_b32 s94, 0", "={s94}"() #0 352 %sgpr95 = tail call i32 asm sideeffect "s_mov_b32 s95, 0", "={s95}"() #0 353 %sgpr96 = tail call i32 asm sideeffect "s_mov_b32 s96, 0", "={s96}"() #0 354 %sgpr97 = tail call i32 asm sideeffect "s_mov_b32 s97, 0", "={s97}"() #0 355 %sgpr98 = tail call i32 asm sideeffect "s_mov_b32 s98, 0", "={s98}"() #0 356 %sgpr99 = tail call i32 asm sideeffect "s_mov_b32 s99, 0", "={s99}"() #0 357 %sgpr100 = tail call i32 asm sideeffect "s_mov_b32 s100, 0", "={s100}"() #0 358 %sgpr101 = tail call i32 asm sideeffect "s_mov_b32 s101, 0", "={s101}"() #0 359 %vcc_lo = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_lo}"() #0 360 %vcc_hi = tail call i32 asm sideeffect "s_mov_b32 $0, 0", "={vcc_hi}"() #0 361 %cmp = icmp eq i32 %cnd, 0 362 br i1 %cmp, label %bb3, label %bb2 ; +8 dword branch 363 364bb2: ; 68 bytes 365 ; 64 byte asm 366 call void asm sideeffect 367 "v_nop_e64 368 v_nop_e64 369 v_nop_e64 370 v_nop_e64 371 v_nop_e64 372 v_nop_e64 373 v_nop_e64 374 v_nop_e64",""() #0 375 br label %bb3 376 377bb3: 378 tail call void asm sideeffect "; reg use $0", "{s0}"(i32 %sgpr0) #0 379 tail call void asm sideeffect "; reg use $0", "{s1}"(i32 %sgpr1) #0 380 tail call void asm sideeffect "; reg use $0", "{s2}"(i32 %sgpr2) #0 381 tail call void asm sideeffect "; reg use $0", "{s3}"(i32 %sgpr3) #0 382 tail call void asm sideeffect "; reg use $0", "{s4}"(i32 %sgpr4) #0 383 tail call void asm sideeffect "; reg use $0", "{s5}"(i32 %sgpr5) #0 384 tail call void asm sideeffect "; reg use $0", "{s6}"(i32 %sgpr6) #0 385 tail call void asm sideeffect "; reg use $0", "{s7}"(i32 %sgpr7) #0 386 tail call void asm sideeffect "; reg use $0", "{s8}"(i32 %sgpr8) #0 387 tail call void asm sideeffect "; reg use $0", "{s9}"(i32 %sgpr9) #0 388 tail call void asm sideeffect "; reg use $0", "{s10}"(i32 %sgpr10) #0 389 tail call void asm sideeffect "; reg use $0", "{s11}"(i32 %sgpr11) #0 390 tail call void asm sideeffect "; reg use $0", "{s12}"(i32 %sgpr12) #0 391 tail call void asm sideeffect "; reg use $0", "{s13}"(i32 %sgpr13) #0 392 tail call void asm sideeffect "; reg use $0", "{s14}"(i32 %sgpr14) #0 393 tail call void asm sideeffect "; reg use $0", "{s15}"(i32 %sgpr15) #0 394 tail call void asm sideeffect "; reg use $0", "{s16}"(i32 %sgpr16) #0 395 tail call void asm sideeffect "; reg use $0", "{s17}"(i32 %sgpr17) #0 396 tail call void asm sideeffect "; reg use $0", "{s18}"(i32 %sgpr18) #0 397 tail call void asm sideeffect "; reg use $0", "{s19}"(i32 %sgpr19) #0 398 tail call void asm sideeffect "; reg use $0", "{s20}"(i32 %sgpr20) #0 399 tail call void asm sideeffect "; reg use $0", "{s21}"(i32 %sgpr21) #0 400 tail call void asm sideeffect "; reg use $0", "{s22}"(i32 %sgpr22) #0 401 tail call void asm sideeffect "; reg use $0", "{s23}"(i32 %sgpr23) #0 402 tail call void asm sideeffect "; reg use $0", "{s24}"(i32 %sgpr24) #0 403 tail call void asm sideeffect "; reg use $0", "{s25}"(i32 %sgpr25) #0 404 tail call void asm sideeffect "; reg use $0", "{s26}"(i32 %sgpr26) #0 405 tail call void asm sideeffect "; reg use $0", "{s27}"(i32 %sgpr27) #0 406 tail call void asm sideeffect "; reg use $0", "{s28}"(i32 %sgpr28) #0 407 tail call void asm sideeffect "; reg use $0", "{s29}"(i32 %sgpr29) #0 408 tail call void asm sideeffect "; reg use $0", "{s30}"(i32 %sgpr30) #0 409 tail call void asm sideeffect "; reg use $0", "{s31}"(i32 %sgpr31) #0 410 tail call void asm sideeffect "; reg use $0", "{s32}"(i32 %sgpr32) #0 411 tail call void asm sideeffect "; reg use $0", "{s33}"(i32 %sgpr33) #0 412 tail call void asm sideeffect "; reg use $0", "{s34}"(i32 %sgpr34) #0 413 tail call void asm sideeffect "; reg use $0", "{s35}"(i32 %sgpr35) #0 414 tail call void asm sideeffect "; reg use $0", "{s36}"(i32 %sgpr36) #0 415 tail call void asm sideeffect "; reg use $0", "{s37}"(i32 %sgpr37) #0 416 tail call void asm sideeffect "; reg use $0", "{s38}"(i32 %sgpr38) #0 417 tail call void asm sideeffect "; reg use $0", "{s39}"(i32 %sgpr39) #0 418 tail call void asm sideeffect "; reg use $0", "{s40}"(i32 %sgpr40) #0 419 tail call void asm sideeffect "; reg use $0", "{s41}"(i32 %sgpr41) #0 420 tail call void asm sideeffect "; reg use $0", "{s42}"(i32 %sgpr42) #0 421 tail call void asm sideeffect "; reg use $0", "{s43}"(i32 %sgpr43) #0 422 tail call void asm sideeffect "; reg use $0", "{s44}"(i32 %sgpr44) #0 423 tail call void asm sideeffect "; reg use $0", "{s45}"(i32 %sgpr45) #0 424 tail call void asm sideeffect "; reg use $0", "{s46}"(i32 %sgpr46) #0 425 tail call void asm sideeffect "; reg use $0", "{s47}"(i32 %sgpr47) #0 426 tail call void asm sideeffect "; reg use $0", "{s48}"(i32 %sgpr48) #0 427 tail call void asm sideeffect "; reg use $0", "{s49}"(i32 %sgpr49) #0 428 tail call void asm sideeffect "; reg use $0", "{s50}"(i32 %sgpr50) #0 429 tail call void asm sideeffect "; reg use $0", "{s51}"(i32 %sgpr51) #0 430 tail call void asm sideeffect "; reg use $0", "{s52}"(i32 %sgpr52) #0 431 tail call void asm sideeffect "; reg use $0", "{s53}"(i32 %sgpr53) #0 432 tail call void asm sideeffect "; reg use $0", "{s54}"(i32 %sgpr54) #0 433 tail call void asm sideeffect "; reg use $0", "{s55}"(i32 %sgpr55) #0 434 tail call void asm sideeffect "; reg use $0", "{s56}"(i32 %sgpr56) #0 435 tail call void asm sideeffect "; reg use $0", "{s57}"(i32 %sgpr57) #0 436 tail call void asm sideeffect "; reg use $0", "{s58}"(i32 %sgpr58) #0 437 tail call void asm sideeffect "; reg use $0", "{s59}"(i32 %sgpr59) #0 438 tail call void asm sideeffect "; reg use $0", "{s60}"(i32 %sgpr60) #0 439 tail call void asm sideeffect "; reg use $0", "{s61}"(i32 %sgpr61) #0 440 tail call void asm sideeffect "; reg use $0", "{s62}"(i32 %sgpr62) #0 441 tail call void asm sideeffect "; reg use $0", "{s63}"(i32 %sgpr63) #0 442 tail call void asm sideeffect "; reg use $0", "{s64}"(i32 %sgpr64) #0 443 tail call void asm sideeffect "; reg use $0", "{s65}"(i32 %sgpr65) #0 444 tail call void asm sideeffect "; reg use $0", "{s66}"(i32 %sgpr66) #0 445 tail call void asm sideeffect "; reg use $0", "{s67}"(i32 %sgpr67) #0 446 tail call void asm sideeffect "; reg use $0", "{s68}"(i32 %sgpr68) #0 447 tail call void asm sideeffect "; reg use $0", "{s69}"(i32 %sgpr69) #0 448 tail call void asm sideeffect "; reg use $0", "{s70}"(i32 %sgpr70) #0 449 tail call void asm sideeffect "; reg use $0", "{s71}"(i32 %sgpr71) #0 450 tail call void asm sideeffect "; reg use $0", "{s72}"(i32 %sgpr72) #0 451 tail call void asm sideeffect "; reg use $0", "{s73}"(i32 %sgpr73) #0 452 tail call void asm sideeffect "; reg use $0", "{s74}"(i32 %sgpr74) #0 453 tail call void asm sideeffect "; reg use $0", "{s75}"(i32 %sgpr75) #0 454 tail call void asm sideeffect "; reg use $0", "{s76}"(i32 %sgpr76) #0 455 tail call void asm sideeffect "; reg use $0", "{s77}"(i32 %sgpr77) #0 456 tail call void asm sideeffect "; reg use $0", "{s78}"(i32 %sgpr78) #0 457 tail call void asm sideeffect "; reg use $0", "{s79}"(i32 %sgpr79) #0 458 tail call void asm sideeffect "; reg use $0", "{s80}"(i32 %sgpr80) #0 459 tail call void asm sideeffect "; reg use $0", "{s81}"(i32 %sgpr81) #0 460 tail call void asm sideeffect "; reg use $0", "{s82}"(i32 %sgpr82) #0 461 tail call void asm sideeffect "; reg use $0", "{s83}"(i32 %sgpr83) #0 462 tail call void asm sideeffect "; reg use $0", "{s84}"(i32 %sgpr84) #0 463 tail call void asm sideeffect "; reg use $0", "{s85}"(i32 %sgpr85) #0 464 tail call void asm sideeffect "; reg use $0", "{s86}"(i32 %sgpr86) #0 465 tail call void asm sideeffect "; reg use $0", "{s87}"(i32 %sgpr87) #0 466 tail call void asm sideeffect "; reg use $0", "{s88}"(i32 %sgpr88) #0 467 tail call void asm sideeffect "; reg use $0", "{s89}"(i32 %sgpr89) #0 468 tail call void asm sideeffect "; reg use $0", "{s90}"(i32 %sgpr90) #0 469 tail call void asm sideeffect "; reg use $0", "{s91}"(i32 %sgpr91) #0 470 tail call void asm sideeffect "; reg use $0", "{s92}"(i32 %sgpr92) #0 471 tail call void asm sideeffect "; reg use $0", "{s93}"(i32 %sgpr93) #0 472 tail call void asm sideeffect "; reg use $0", "{s94}"(i32 %sgpr94) #0 473 tail call void asm sideeffect "; reg use $0", "{s95}"(i32 %sgpr95) #0 474 tail call void asm sideeffect "; reg use $0", "{s96}"(i32 %sgpr96) #0 475 tail call void asm sideeffect "; reg use $0", "{s97}"(i32 %sgpr97) #0 476 tail call void asm sideeffect "; reg use $0", "{s98}"(i32 %sgpr98) #0 477 tail call void asm sideeffect "; reg use $0", "{s99}"(i32 %sgpr99) #0 478 tail call void asm sideeffect "; reg use $0", "{s100}"(i32 %sgpr100) #0 479 tail call void asm sideeffect "; reg use $0", "{s101}"(i32 %sgpr101) #0 480 tail call void asm sideeffect "; reg use $0", "{vcc_lo}"(i32 %vcc_lo) #0 481 tail call void asm sideeffect "; reg use $0", "{vcc_hi}"(i32 %vcc_hi) #0 482 ret void 483} 484 485declare i32 @llvm.amdgcn.workgroup.id.x() #0 486 487attributes #0 = { nounwind } 488