481 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -verify-machineinstrs -run-pass=postra-machine-sink -mattr=+wavefrontsize64 -o - %s | FileCheck -check-prefixes=GFX10 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -passes='postra-machine-sink' -mattr=+wavefrontsize64 -o - %s | FileCheck -check-prefixes=GFX10 %s4 5# Ensure that PostRA Machine Sink does not sink instructions6# past block prologues which would overwrite their uses.7 8---9# Make sure COPY to $sgpr9 is not sunk after S_AND_SAVEEXEC_B64.10name: _amdgpu_ps_main11alignment: 112tracksRegLiveness: true13registers: []14liveins:15 - { reg: '$sgpr4', virtual-reg: '' }16body: |17 ; GFX10-LABEL: name: _amdgpu_ps_main18 ; GFX10: bb.0:19 ; GFX10-NEXT: successors: %bb.1(0x80000000)20 ; GFX10-NEXT: liveins: $sgpr421 ; GFX10-NEXT: {{ $}}22 ; GFX10-NEXT: renamable $sgpr9 = COPY $sgpr423 ; GFX10-NEXT: renamable $vgpr5 = IMPLICIT_DEF24 ; GFX10-NEXT: renamable $sgpr0_sgpr1 = nofpexcept V_CMP_NGT_F32_e64 0, 0, 0, $vgpr5, 0, implicit $mode, implicit $exec25 ; GFX10-NEXT: S_BRANCH %bb.126 ; GFX10-NEXT: {{ $}}27 ; GFX10-NEXT: bb.1:28 ; GFX10-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)29 ; GFX10-NEXT: liveins: $sgpr6, $sgpr9, $sgpr0_sgpr130 ; GFX10-NEXT: {{ $}}31 ; GFX10-NEXT: $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec32 ; GFX10-NEXT: renamable $sgpr14_sgpr15 = S_XOR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def dead $scc33 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.3, implicit $exec34 ; GFX10-NEXT: S_BRANCH %bb.235 ; GFX10-NEXT: {{ $}}36 ; GFX10-NEXT: bb.2:37 ; GFX10-NEXT: successors: %bb.3(0x80000000)38 ; GFX10-NEXT: liveins: $sgpr639 ; GFX10-NEXT: {{ $}}40 ; GFX10-NEXT: $m0 = COPY killed renamable $sgpr641 ; GFX10-NEXT: S_BRANCH %bb.342 ; GFX10-NEXT: {{ $}}43 ; GFX10-NEXT: bb.3:44 ; GFX10-NEXT: S_ENDPGM 045 bb.0:46 successors: %bb.1(0x80000000)47 liveins: $sgpr448 49 renamable $sgpr9 = COPY $sgpr450 renamable $vgpr5 = IMPLICIT_DEF51 renamable $sgpr0_sgpr1 = nofpexcept V_CMP_NGT_F32_e64 0, 0, 0, $vgpr5, 0, implicit $mode, implicit $exec52 S_BRANCH %bb.153 54 bb.1:55 successors: %bb.2(0x40000000), %bb.8(0x40000000)56 liveins: $sgpr6, $sgpr9, $sgpr0_sgpr157 58 $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec59 renamable $sgpr14_sgpr15 = S_XOR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def dead $scc60 S_CBRANCH_EXECZ %bb.8, implicit $exec61 S_BRANCH %bb.262 63 bb.2:64 successors: %bb.8(0x40000000)65 liveins: $sgpr666 67 $m0 = COPY killed renamable $sgpr668 S_BRANCH %bb.869 70 bb.8:71 72 S_ENDPGM 073 74...75---76# Make sure COPY to $sgpr0_sgpr1 is not sunk after S_AND_SAVEEXEC_B64.77name: _amdgpu_ps_main278alignment: 179tracksRegLiveness: true80registers: []81liveins:82 - { reg: '$sgpr4', virtual-reg: '' }83 - { reg: '$sgpr6_sgpr7', virtual-reg: '' }84body: |85 ; GFX10-LABEL: name: _amdgpu_ps_main286 ; GFX10: bb.0:87 ; GFX10-NEXT: successors: %bb.1(0x80000000)88 ; GFX10-NEXT: liveins: $sgpr4, $sgpr6_sgpr789 ; GFX10-NEXT: {{ $}}90 ; GFX10-NEXT: renamable $sgpr9 = COPY $sgpr491 ; GFX10-NEXT: renamable $vgpr5 = IMPLICIT_DEF92 ; GFX10-NEXT: renamable $sgpr0_sgpr1 = COPY $sgpr6_sgpr793 ; GFX10-NEXT: S_BRANCH %bb.194 ; GFX10-NEXT: {{ $}}95 ; GFX10-NEXT: bb.1:96 ; GFX10-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)97 ; GFX10-NEXT: liveins: $sgpr6, $sgpr9, $sgpr0_sgpr198 ; GFX10-NEXT: {{ $}}99 ; GFX10-NEXT: $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec100 ; GFX10-NEXT: renamable $sgpr14_sgpr15 = S_XOR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def dead $scc101 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.3, implicit $exec102 ; GFX10-NEXT: S_BRANCH %bb.2103 ; GFX10-NEXT: {{ $}}104 ; GFX10-NEXT: bb.2:105 ; GFX10-NEXT: successors: %bb.3(0x80000000)106 ; GFX10-NEXT: liveins: $sgpr6107 ; GFX10-NEXT: {{ $}}108 ; GFX10-NEXT: $m0 = COPY killed renamable $sgpr6109 ; GFX10-NEXT: S_BRANCH %bb.3110 ; GFX10-NEXT: {{ $}}111 ; GFX10-NEXT: bb.3:112 ; GFX10-NEXT: S_ENDPGM 0113 bb.0:114 successors: %bb.1(0x80000000)115 liveins: $sgpr4, $sgpr6_sgpr7116 117 renamable $sgpr9 = COPY $sgpr4118 renamable $vgpr5 = IMPLICIT_DEF119 renamable $sgpr0_sgpr1 = COPY $sgpr6_sgpr7120 S_BRANCH %bb.1121 122 bb.1:123 successors: %bb.2(0x40000000), %bb.8(0x40000000)124 liveins: $sgpr6, $sgpr9, $sgpr0_sgpr1125 126 $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec127 renamable $sgpr14_sgpr15 = S_XOR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def dead $scc128 S_CBRANCH_EXECZ %bb.8, implicit $exec129 S_BRANCH %bb.2130 131 bb.2:132 successors: %bb.8(0x40000000)133 liveins: $sgpr6134 135 $m0 = COPY killed renamable $sgpr6136 S_BRANCH %bb.8137 138 bb.8:139 140 S_ENDPGM 0141 142...143---144# Make sure COPY to $sgpr2_sgpr3 is not sunk after S_AND_SAVEEXEC_B32.145name: _amdgpu_ps_main3146alignment: 1147tracksRegLiveness: true148registers: []149liveins:150 - { reg: '$sgpr6_sgpr7', virtual-reg: '' }151 - { reg: '$sgpr8', virtual-reg: '' }152body: |153 ; GFX10-LABEL: name: _amdgpu_ps_main3154 ; GFX10: bb.0:155 ; GFX10-NEXT: successors: %bb.1(0x80000000)156 ; GFX10-NEXT: liveins: $sgpr6_sgpr7, $sgpr8157 ; GFX10-NEXT: {{ $}}158 ; GFX10-NEXT: renamable $vgpr5 = IMPLICIT_DEF159 ; GFX10-NEXT: renamable $sgpr0_sgpr1 = IMPLICIT_DEF160 ; GFX10-NEXT: renamable $sgpr2_sgpr3 = COPY $sgpr6_sgpr7161 ; GFX10-NEXT: S_BRANCH %bb.1162 ; GFX10-NEXT: {{ $}}163 ; GFX10-NEXT: bb.1:164 ; GFX10-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)165 ; GFX10-NEXT: liveins: $sgpr6, $sgpr8, $sgpr0_sgpr1, $sgpr2_sgpr3166 ; GFX10-NEXT: {{ $}}167 ; GFX10-NEXT: $sgpr2 = S_AND_SAVEEXEC_B32 $sgpr8, implicit-def $exec, implicit-def $scc, implicit $exec168 ; GFX10-NEXT: $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec169 ; GFX10-NEXT: renamable $sgpr14_sgpr15 = S_XOR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def dead $scc170 ; GFX10-NEXT: S_NOP 0, implicit $sgpr2_sgpr3171 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.3, implicit $exec172 ; GFX10-NEXT: S_BRANCH %bb.2173 ; GFX10-NEXT: {{ $}}174 ; GFX10-NEXT: bb.2:175 ; GFX10-NEXT: successors: %bb.3(0x80000000)176 ; GFX10-NEXT: liveins: $sgpr6177 ; GFX10-NEXT: {{ $}}178 ; GFX10-NEXT: $m0 = COPY killed renamable $sgpr6179 ; GFX10-NEXT: S_BRANCH %bb.3180 ; GFX10-NEXT: {{ $}}181 ; GFX10-NEXT: bb.3:182 ; GFX10-NEXT: S_ENDPGM 0183 bb.0:184 successors: %bb.1(0x80000000)185 liveins: $sgpr6_sgpr7, $sgpr8186 187 renamable $vgpr5 = IMPLICIT_DEF188 renamable $sgpr0_sgpr1 = IMPLICIT_DEF189 renamable $sgpr2_sgpr3 = COPY $sgpr6_sgpr7190 S_BRANCH %bb.1191 192 bb.1:193 successors: %bb.2(0x40000000), %bb.8(0x40000000)194 liveins: $sgpr6, $sgpr8, $sgpr0_sgpr1, $sgpr2_sgpr3195 196 $sgpr2 = S_AND_SAVEEXEC_B32 $sgpr8, implicit-def $exec, implicit-def $scc, implicit $exec197 $sgpr4_sgpr5 = S_AND_SAVEEXEC_B64 $sgpr0_sgpr1, implicit-def $exec, implicit-def $scc, implicit $exec198 renamable $sgpr14_sgpr15 = S_XOR_B64 $exec, killed renamable $sgpr4_sgpr5, implicit-def dead $scc199 S_NOP 0, implicit $sgpr2_sgpr3200 S_CBRANCH_EXECZ %bb.8, implicit $exec201 S_BRANCH %bb.2202 203 bb.2:204 successors: %bb.8(0x40000000)205 liveins: $sgpr6206 207 $m0 = COPY killed renamable $sgpr6208 S_BRANCH %bb.8209 210 bb.8:211 212 S_ENDPGM 0213 214...215 216---217name: machinesink_loop_vgpr_out_of_divergent_loop_postra218tracksRegLiveness: true219body: |220 ; GFX10-LABEL: name: machinesink_loop_vgpr_out_of_divergent_loop_postra221 ; GFX10: bb.0:222 ; GFX10-NEXT: successors: %bb.1(0x80000000)223 ; GFX10-NEXT: liveins: $sgpr8, $vgpr0, $vgpr1224 ; GFX10-NEXT: {{ $}}225 ; GFX10-NEXT: bb.1:226 ; GFX10-NEXT: successors: %bb.7(0x40000000), %bb.2(0x40000000)227 ; GFX10-NEXT: liveins: $sgpr8, $vgpr0228 ; GFX10-NEXT: {{ $}}229 ; GFX10-NEXT: $sgpr4 = S_AND_SAVEEXEC_B32 $sgpr8, implicit-def $exec, implicit-def $scc, implicit $exec230 ; GFX10-NEXT: renamable $sgpr4 = S_XOR_B32 $exec_lo, killed renamable $sgpr4, implicit-def dead $scc231 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.7, implicit $exec232 ; GFX10-NEXT: {{ $}}233 ; GFX10-NEXT: bb.2:234 ; GFX10-NEXT: successors: %bb.3(0x80000000)235 ; GFX10-NEXT: liveins: $sgpr4, $sgpr8, $vgpr0236 ; GFX10-NEXT: {{ $}}237 ; GFX10-NEXT: bb.3:238 ; GFX10-NEXT: successors: %bb.5(0x40000000), %bb.4(0x40000000)239 ; GFX10-NEXT: liveins: $sgpr4, $sgpr8, $vgpr0240 ; GFX10-NEXT: {{ $}}241 ; GFX10-NEXT: $sgpr5 = S_AND_SAVEEXEC_B32 $sgpr8, implicit-def $exec, implicit-def $scc, implicit $exec242 ; GFX10-NEXT: renamable $sgpr5 = S_XOR_B32 $exec_lo, killed renamable $sgpr5, implicit-def dead $scc243 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.5, implicit $exec244 ; GFX10-NEXT: S_BRANCH %bb.4245 ; GFX10-NEXT: {{ $}}246 ; GFX10-NEXT: bb.4:247 ; GFX10-NEXT: successors: %bb.5(0x80000000)248 ; GFX10-NEXT: liveins: $sgpr4, $sgpr5, $sgpr8, $vgpr0249 ; GFX10-NEXT: {{ $}}250 ; GFX10-NEXT: bb.5:251 ; GFX10-NEXT: successors: %bb.3(0x40000000), %bb.6(0x40000000)252 ; GFX10-NEXT: liveins: $sgpr4, $sgpr5, $sgpr8, $vgpr0253 ; GFX10-NEXT: {{ $}}254 ; GFX10-NEXT: renamable $vgpr1 = V_ADD_U32_e64 $sgpr8, $vgpr0, 0, implicit $exec255 ; GFX10-NEXT: renamable $sgpr5 = S_AND_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc256 ; GFX10-NEXT: renamable $sgpr5 = S_OR_B32 killed renamable $sgpr5, renamable $sgpr4, implicit-def $scc257 ; GFX10-NEXT: $exec_lo = S_ANDN2_B32 $exec_lo, renamable $sgpr5, implicit-def $scc258 ; GFX10-NEXT: S_CBRANCH_EXECNZ %bb.3, implicit $exec259 ; GFX10-NEXT: S_BRANCH %bb.6260 ; GFX10-NEXT: {{ $}}261 ; GFX10-NEXT: bb.6:262 ; GFX10-NEXT: successors: %bb.3(0x80000000)263 ; GFX10-NEXT: liveins: $sgpr4, $sgpr5, $sgpr8, $vgpr0, $vgpr1264 ; GFX10-NEXT: {{ $}}265 ; GFX10-NEXT: $exec_lo = S_OR_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc266 ; GFX10-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, implicit killed renamable $vgpr1267 ; GFX10-NEXT: S_BRANCH %bb.3268 ; GFX10-NEXT: {{ $}}269 ; GFX10-NEXT: bb.7:270 ; GFX10-NEXT: successors: %bb.1(0x40000000), %bb.8(0x40000000)271 ; GFX10-NEXT: liveins: $sgpr4, $sgpr8, $vgpr0272 ; GFX10-NEXT: {{ $}}273 ; GFX10-NEXT: $exec_lo = S_ANDN2_B32 $exec_lo, killed renamable $sgpr4, implicit-def $scc274 ; GFX10-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec275 ; GFX10-NEXT: {{ $}}276 ; GFX10-NEXT: bb.8:277 ; GFX10-NEXT: successors: %bb.9(0x80000000)278 ; GFX10-NEXT: {{ $}}279 ; GFX10-NEXT: bb.9:280 ; GFX10-NEXT: successors: %bb.9(0x40000000), %bb.10(0x40000000)281 ; GFX10-NEXT: {{ $}}282 ; GFX10-NEXT: S_CBRANCH_VCCNZ %bb.9, implicit undef $vcc283 ; GFX10-NEXT: S_BRANCH %bb.10284 ; GFX10-NEXT: {{ $}}285 ; GFX10-NEXT: bb.10:286 ; GFX10-NEXT: SI_RETURN287 bb.0:288 liveins: $sgpr8, $vgpr0, $vgpr1289 290 bb.1:291 liveins: $sgpr8, $vgpr0292 293 $sgpr4 = S_AND_SAVEEXEC_B32 $sgpr8, implicit-def $exec, implicit-def $scc, implicit $exec294 renamable $sgpr4 = S_XOR_B32 $exec_lo, killed renamable $sgpr4, implicit-def dead $scc295 S_CBRANCH_EXECZ %bb.6, implicit $exec296 297 bb.9:298 liveins: $sgpr4, $sgpr8, $vgpr0299 300 301 bb.2:302 liveins: $sgpr4, $sgpr8, $vgpr0303 304 $sgpr5 = S_AND_SAVEEXEC_B32 $sgpr8, implicit-def $exec, implicit-def $scc, implicit $exec305 renamable $sgpr5 = S_XOR_B32 $exec_lo, killed renamable $sgpr5, implicit-def dead $scc306 S_CBRANCH_EXECZ %bb.4, implicit $exec307 S_BRANCH %bb.3308 309 bb.3:310 liveins: $sgpr4, $sgpr5, $sgpr8, $vgpr0311 312 313 bb.4:314 liveins: $sgpr4, $sgpr5, $sgpr8, $vgpr0315 316 renamable $vgpr1 = V_ADD_U32_e64 $sgpr8, $vgpr0, 0, implicit $exec317 renamable $sgpr5 = S_AND_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc318 renamable $sgpr5 = S_OR_B32 killed renamable $sgpr5, renamable $sgpr4, implicit-def $scc319 320 $exec_lo = S_ANDN2_B32 $exec_lo, renamable $sgpr5, implicit-def $scc321 S_CBRANCH_EXECNZ %bb.2, implicit $exec322 S_BRANCH %bb.5323 324 bb.5:325 liveins: $sgpr4, $sgpr5, $sgpr8, $vgpr0, $vgpr1326 327 $exec_lo = S_OR_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc328 INLINEASM &"", 1 /* sideeffect attdialect */, implicit killed renamable $vgpr1329 S_BRANCH %bb.2330 331 bb.6:332 liveins: $sgpr4, $sgpr8, $vgpr0333 334 $exec_lo = S_ANDN2_B32 $exec_lo, killed renamable $sgpr4, implicit-def $scc335 S_CBRANCH_EXECNZ %bb.1, implicit $exec336 337 bb.10:338 339 bb.7:340 S_CBRANCH_VCCNZ %bb.7, implicit undef $vcc341 S_BRANCH %bb.8342 343 bb.8:344 SI_RETURN345 346...347 348---349name: machinesink_loop_sgpr_out_of_divergent_loop_postra350tracksRegLiveness: true351body: |352 ; GFX10-LABEL: name: machinesink_loop_sgpr_out_of_divergent_loop_postra353 ; GFX10: bb.0:354 ; GFX10-NEXT: successors: %bb.1(0x80000000)355 ; GFX10-NEXT: liveins: $sgpr8, $sgpr9, $sgpr10356 ; GFX10-NEXT: {{ $}}357 ; GFX10-NEXT: bb.1:358 ; GFX10-NEXT: successors: %bb.7(0x40000000), %bb.2(0x40000000)359 ; GFX10-NEXT: liveins: $sgpr8, $sgpr9360 ; GFX10-NEXT: {{ $}}361 ; GFX10-NEXT: $sgpr4 = S_AND_SAVEEXEC_B32 $sgpr9, implicit-def $exec, implicit-def $scc, implicit $exec362 ; GFX10-NEXT: renamable $sgpr4 = S_XOR_B32 $exec_lo, killed renamable $sgpr4, implicit-def dead $scc363 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.7, implicit $exec364 ; GFX10-NEXT: {{ $}}365 ; GFX10-NEXT: bb.2:366 ; GFX10-NEXT: successors: %bb.3(0x80000000)367 ; GFX10-NEXT: liveins: $sgpr4, $sgpr8, $sgpr9368 ; GFX10-NEXT: {{ $}}369 ; GFX10-NEXT: bb.3:370 ; GFX10-NEXT: successors: %bb.5(0x40000000), %bb.4(0x40000000)371 ; GFX10-NEXT: liveins: $sgpr4, $sgpr8, $sgpr9372 ; GFX10-NEXT: {{ $}}373 ; GFX10-NEXT: $sgpr5 = S_AND_SAVEEXEC_B32 $sgpr9, implicit-def $exec, implicit-def $scc, implicit $exec374 ; GFX10-NEXT: renamable $sgpr5 = S_XOR_B32 $exec_lo, killed renamable $sgpr5, implicit-def dead $scc375 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.5, implicit $exec376 ; GFX10-NEXT: S_BRANCH %bb.4377 ; GFX10-NEXT: {{ $}}378 ; GFX10-NEXT: bb.4:379 ; GFX10-NEXT: successors: %bb.5(0x80000000)380 ; GFX10-NEXT: liveins: $sgpr4, $sgpr5, $sgpr8, $sgpr9381 ; GFX10-NEXT: {{ $}}382 ; GFX10-NEXT: bb.5:383 ; GFX10-NEXT: successors: %bb.3(0x40000000), %bb.6(0x40000000)384 ; GFX10-NEXT: liveins: $sgpr4, $sgpr5, $sgpr8, $sgpr9385 ; GFX10-NEXT: {{ $}}386 ; GFX10-NEXT: renamable $sgpr6 = S_ADD_I32 renamable $sgpr8, renamable $sgpr9, implicit-def dead $scc387 ; GFX10-NEXT: renamable $sgpr5 = S_AND_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc388 ; GFX10-NEXT: renamable $sgpr5 = S_OR_B32 killed renamable $sgpr5, renamable $sgpr4, implicit-def $scc389 ; GFX10-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */390 ; GFX10-NEXT: $exec_lo = S_ANDN2_B32 $exec_lo, renamable $sgpr5, implicit-def $scc391 ; GFX10-NEXT: S_CBRANCH_EXECNZ %bb.3, implicit $exec392 ; GFX10-NEXT: S_BRANCH %bb.6393 ; GFX10-NEXT: {{ $}}394 ; GFX10-NEXT: bb.6:395 ; GFX10-NEXT: successors: %bb.3(0x80000000)396 ; GFX10-NEXT: liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr8, $sgpr9397 ; GFX10-NEXT: {{ $}}398 ; GFX10-NEXT: $exec_lo = S_OR_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc399 ; GFX10-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, implicit killed renamable $sgpr6400 ; GFX10-NEXT: S_BRANCH %bb.3401 ; GFX10-NEXT: {{ $}}402 ; GFX10-NEXT: bb.7:403 ; GFX10-NEXT: successors: %bb.1(0x40000000), %bb.8(0x40000000)404 ; GFX10-NEXT: liveins: $sgpr4, $sgpr8, $sgpr9405 ; GFX10-NEXT: {{ $}}406 ; GFX10-NEXT: $exec_lo = S_ANDN2_B32 $exec_lo, killed renamable $sgpr4, implicit-def $scc407 ; GFX10-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec408 ; GFX10-NEXT: {{ $}}409 ; GFX10-NEXT: bb.8:410 ; GFX10-NEXT: successors: %bb.9(0x80000000)411 ; GFX10-NEXT: {{ $}}412 ; GFX10-NEXT: bb.9:413 ; GFX10-NEXT: successors: %bb.9(0x40000000), %bb.10(0x40000000)414 ; GFX10-NEXT: {{ $}}415 ; GFX10-NEXT: S_CBRANCH_VCCNZ %bb.9, implicit undef $vcc416 ; GFX10-NEXT: S_BRANCH %bb.10417 ; GFX10-NEXT: {{ $}}418 ; GFX10-NEXT: bb.10:419 ; GFX10-NEXT: SI_RETURN420 bb.0:421 liveins: $sgpr8, $sgpr9, $sgpr10422 423 424 bb.1:425 liveins: $sgpr8, $sgpr9426 427 $sgpr4 = S_AND_SAVEEXEC_B32 $sgpr9, implicit-def $exec, implicit-def $scc, implicit $exec428 renamable $sgpr4 = S_XOR_B32 $exec_lo, killed renamable $sgpr4, implicit-def dead $scc429 S_CBRANCH_EXECZ %bb.6, implicit $exec430 431 bb.9:432 liveins: $sgpr4, $sgpr8, $sgpr9433 434 435 bb.2:436 liveins: $sgpr4, $sgpr8, $sgpr9437 438 $sgpr5 = S_AND_SAVEEXEC_B32 $sgpr9, implicit-def $exec, implicit-def $scc, implicit $exec439 renamable $sgpr5 = S_XOR_B32 $exec_lo, killed renamable $sgpr5, implicit-def dead $scc440 S_CBRANCH_EXECZ %bb.4, implicit $exec441 S_BRANCH %bb.3442 443 bb.3:444 liveins: $sgpr4, $sgpr5, $sgpr8, $sgpr9445 446 447 bb.4:448 liveins: $sgpr4, $sgpr5, $sgpr8, $sgpr9449 450 renamable $sgpr6 = S_ADD_I32 renamable $sgpr8, renamable $sgpr9, implicit-def dead $scc451 renamable $sgpr5 = S_AND_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc452 renamable $sgpr5 = S_OR_B32 killed renamable $sgpr5, renamable $sgpr4, implicit-def $scc453 INLINEASM &"", 1 /* sideeffect attdialect */454 $exec_lo = S_ANDN2_B32 $exec_lo, renamable $sgpr5, implicit-def $scc455 S_CBRANCH_EXECNZ %bb.2, implicit $exec456 S_BRANCH %bb.5457 458 bb.5:459 liveins: $sgpr4, $sgpr5, $sgpr6, $sgpr8, $sgpr9460 461 $exec_lo = S_OR_B32 $exec_lo, killed renamable $sgpr5, implicit-def $scc462 INLINEASM &"", 1 /* sideeffect attdialect */, implicit killed renamable $sgpr6463 S_BRANCH %bb.2464 465 bb.6:466 liveins: $sgpr4, $sgpr8, $sgpr9467 468 $exec_lo = S_ANDN2_B32 $exec_lo, killed renamable $sgpr4, implicit-def $scc469 S_CBRANCH_EXECNZ %bb.1, implicit $exec470 471 bb.10:472 473 bb.7:474 S_CBRANCH_VCCNZ %bb.7, implicit undef $vcc475 S_BRANCH %bb.8476 477 bb.8:478 SI_RETURN479 480...481