brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.5 KiB · e1b41bc Raw
488 lines · plain
1# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass=si-optimize-exec-masking-pre-ra -o - %s | FileCheck -check-prefix=GCN %s2 3# GCN: name: negated_cond_vop24# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF5# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc6# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc7---8name:            negated_cond_vop29body:             |10  bb.0:11    %0:sreg_64_xexec = IMPLICIT_DEF12    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec13    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec14    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc15    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc16    S_BRANCH %bb.117 18  bb.1:19    S_BRANCH %bb.220 21  bb.2:22    S_ENDPGM 023...24 25# GCN: name: negated_cond_vop326# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF27# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc28# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc29---30name:            negated_cond_vop331body:             |32  bb.0:33    %0:sreg_64_xexec = IMPLICIT_DEF34    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec35    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec36    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc37    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc38    S_BRANCH %bb.139 40  bb.1:41    S_BRANCH %bb.242 43  bb.2:44    S_ENDPGM 045...46 47# GCN: name: negated_cond_vop2_redef_vcc148# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF49# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec50# GCN-NEXT: V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec51# GCN-NEXT: $vcc_lo = COPY $sgpr052# GCN-NEXT: $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc53# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc54---55name:            negated_cond_vop2_redef_vcc156body:             |57  bb.0:58    %0:sreg_64_xexec = IMPLICIT_DEF59    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec60    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec61    $vcc_lo = COPY $sgpr062    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc63    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc64    S_BRANCH %bb.165 66  bb.1:67    S_BRANCH %bb.268 69  bb.2:70    S_ENDPGM 071...72 73# GCN: name: negated_cond_vop2_redef_vcc274# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF75# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec76# GCN-NEXT: V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec77# GCN-NEXT: $vcc_hi = COPY $sgpr078# GCN-NEXT: $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc79# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc80---81name:            negated_cond_vop2_redef_vcc282body:             |83  bb.0:84    %0:sreg_64_xexec = IMPLICIT_DEF85    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec86    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec87    $vcc_hi = COPY $sgpr088    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc89    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc90    S_BRANCH %bb.191 92  bb.1:93    S_BRANCH %bb.294 95  bb.2:96    S_ENDPGM 097...98 99# GCN: name: negated_cond_vop3_redef_cmp100# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF101# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec102# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec103# GCN-NEXT: %2.sub1:sreg_64_xexec = COPY $sgpr0104# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc105# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc106---107name:            negated_cond_vop3_redef_cmp108body:             |109  bb.0:110    %0:sreg_64_xexec = IMPLICIT_DEF111    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec112    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec113    %2.sub1 = COPY $sgpr0114    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc115    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc116    S_BRANCH %bb.1117 118  bb.1:119    S_BRANCH %bb.2120 121  bb.2:122    S_ENDPGM 0123...124 125# GCN: name: negated_cond_undef_vcc126# GCN:      $vcc = S_AND_B64 $exec, undef $vcc, implicit-def dead $scc127# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc128---129name:            negated_cond_undef_vcc130body:             |131  bb.0:132    $vcc = S_AND_B64 $exec, undef $vcc, implicit-def dead $scc133    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc134    S_BRANCH %bb.1135 136  bb.1:137    S_BRANCH %bb.2138 139  bb.2:140    S_ENDPGM 0141...142 143# GCN: name: negated_cond_vop3_imp_vcc144# GCN:      $vcc = IMPLICIT_DEF145# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, $vcc, implicit-def dead $scc146# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc147---148name:            negated_cond_vop3_imp_vcc149body:             |150  bb.0:151    $vcc = IMPLICIT_DEF152    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, $vcc, implicit $exec153    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec154    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc155    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc156    S_BRANCH %bb.1157 158  bb.1:159    S_BRANCH %bb.2160 161  bb.2:162    S_ENDPGM 0163...164 165# GCN: name: negated_cond_vop2_imp_vcc166# GCN:      $vcc = IMPLICIT_DEF167# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, $vcc, implicit-def dead $scc168# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc169---170name:            negated_cond_vop2_imp_vcc171body:             |172  bb.0:173    $vcc = IMPLICIT_DEF174    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, $vcc, implicit $exec175    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec176    $vcc = S_AND_B64 killed $vcc, $exec, implicit-def dead $scc177    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc178    S_BRANCH %bb.1179 180  bb.1:181    S_BRANCH %bb.2182 183  bb.2:184    S_ENDPGM 0185...186 187# GCN: name: negated_cond_vop3_redef_sel188# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF189# GCN-NEXT: dead %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec190# GCN-NEXT: %1:vgpr_32 = COPY $vgpr0191# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec192# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc193# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc194---195name:            negated_cond_vop3_redef_sel196body:             |197  bb.0:198    %0:sreg_64_xexec = IMPLICIT_DEF199    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec200    %1:vgpr_32 = COPY $vgpr0201    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec202    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc203    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc204    S_BRANCH %bb.1205 206  bb.1:207    S_BRANCH %bb.2208 209  bb.2:210    S_ENDPGM 0211...212 213# GCN: name: negated_cond_vop2_used_sel214# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF215# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec216# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc217# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc218---219name:            negated_cond_vop2_used_sel220body:             |221  bb.0:222    %0:sreg_64_xexec = IMPLICIT_DEF223    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec224    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec225    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc226    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc227    S_BRANCH %bb.1228 229  bb.1:230    S_BRANCH %bb.2231 232  bb.2:233    $vgpr0 = COPY %1234    S_ENDPGM 0, implicit $vgpr0235...236 237# GCN: name: negated_cond_vop2_used_vcc238# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF239# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec240# GCN-NEXT: V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec241# GCN-NEXT: $sgpr0_sgpr1 = COPY $vcc242# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc243# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc244---245name:            negated_cond_vop2_used_vcc246body:             |247  bb.0:248    %0:sreg_64_xexec = IMPLICIT_DEF249    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec250    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec251    $sgpr0_sgpr1 = COPY $vcc252    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc253    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc254    S_BRANCH %bb.1255 256  bb.1:257    S_BRANCH %bb.2258 259  bb.2:260    S_ENDPGM 0, implicit $vgpr0261...262 263# GCN: name: negated_cond_vop3_sel_wrong_subreg1264# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF265# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF266# GCN-NEXT: %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec267# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec268# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc269# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc270---271name:            negated_cond_vop3_sel_wrong_subreg1272body:             |273  bb.0:274    %0:sreg_64_xexec = IMPLICIT_DEF275    undef %1.sub1 = IMPLICIT_DEF276    %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec277    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec278    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc279    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc280    S_BRANCH %bb.1281 282  bb.1:283    S_BRANCH %bb.2284 285  bb.2:286    S_ENDPGM 0287...288 289# GCN: name: negated_cond_vop3_sel_wrong_subreg2290# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF291# GCN-NEXT: %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec292# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF293# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec294# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc295# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc296---297name:            negated_cond_vop3_sel_wrong_subreg2298body:             |299  bb.0:300    %0:sreg_64_xexec = IMPLICIT_DEF301    undef %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec302    %1.sub1 = IMPLICIT_DEF303    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec304    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc305    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc306    S_BRANCH %bb.1307 308  bb.1:309    S_BRANCH %bb.2310 311  bb.2:312    S_ENDPGM 0313...314 315# GCN: name: negated_cond_vop3_sel_right_subreg1316# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF317# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF318# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc319# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc320---321name:            negated_cond_vop3_sel_right_subreg1322body:             |323  bb.0:324    %0:sreg_64_xexec = IMPLICIT_DEF325    undef %1.sub1 = IMPLICIT_DEF326    %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec327    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub0, 1, implicit $exec328    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc329    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc330    S_BRANCH %bb.1331 332  bb.1:333    S_BRANCH %bb.2334 335  bb.2:336    S_ENDPGM 0337...338 339# GCN: name: negated_cond_vop3_sel_right_subreg2340# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF341# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF342# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc343# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc344---345name:            negated_cond_vop3_sel_right_subreg2346body:             |347  bb.0:348    %0:sreg_64_xexec = IMPLICIT_DEF349    undef %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec350    %1.sub1 = IMPLICIT_DEF351    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub0, 1, implicit $exec352    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc353    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc354    S_BRANCH %bb.1355 356  bb.1:357    S_BRANCH %bb.2358 359  bb.2:360    S_ENDPGM 0361...362 363# GCN: name: negated_cond_vop3_sel_subreg_overlap364# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF365# GCN-NEXT: %1.sub2:vreg_128 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec366# GCN-NEXT: %1.sub2_sub3:vreg_128 = IMPLICIT_DEF367# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub2, 1, implicit $exec368# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc369# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc370---371name:            negated_cond_vop3_sel_subreg_overlap372body:             |373  bb.0:374    %0:sreg_64_xexec = IMPLICIT_DEF375    undef %1.sub2:vreg_128 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec376    %1.sub2_sub3 = IMPLICIT_DEF377    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub2, 1, implicit $exec378    $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc379    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc380    S_BRANCH %bb.1381 382  bb.1:383    S_BRANCH %bb.2384 385  bb.2:386    S_ENDPGM 0387...388 389# GCN: name: negated_cond_vop2_dominated_blocks390# GCN:      %0:sreg_64_xexec = IMPLICIT_DEF391# GCN:      $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc392# GCN-NEXT: S_CBRANCH_VCCNZ %bb.3, implicit $vcc393---394name:            negated_cond_vop2_dominated_blocks395body:             |396  bb.0:397    %0:sreg_64_xexec = IMPLICIT_DEF398    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec399 400  bb.1:401    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec402    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc403    S_CBRANCH_VCCNZ %bb.3, implicit killed $vcc404    S_BRANCH %bb.2405 406  bb.2:407    S_BRANCH %bb.1408 409  bb.3:410    S_ENDPGM 0411...412 413# GCN: name: negated_cond_vop2_different_blocks_cmp_and414# GCN:      %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec415# GCN:      $vcc = S_AND_B64 $exec, %2, implicit-def dead $scc416# GCN-NEXT: S_CBRANCH_VCCNZ %bb.3, implicit $vcc417---418name:            negated_cond_vop2_different_blocks_cmp_and419body:             |420  bb.0:421    %0:sreg_64_xexec = IMPLICIT_DEF422    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec423    %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec424 425  bb.1:426    $vcc = S_AND_B64 $exec, %2, implicit-def dead $scc427    S_CBRANCH_VCCNZ %bb.3, implicit killed $vcc428    S_BRANCH %bb.2429 430  bb.2:431    S_BRANCH %bb.1432 433  bb.3:434    S_ENDPGM 0435...436 437# GCN: name: negated_cond_vop2_not_dominated_blocks438# GCN:      V_CNDMASK_B32_e64 0, 0, 0, 1,439# GCN:      $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc440# GCN-NEXT: S_CBRANCH_VCCNZ %bb.4, implicit $vcc441---442name:            negated_cond_vop2_not_dominated_blocks443body:             |444  bb.0:445    $vcc = IMPLICIT_DEF446    %1 = IMPLICIT_DEF447    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc448    S_BRANCH %bb.1449 450  bb.1:451    %0:sreg_64_xexec = IMPLICIT_DEF452    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec453 454  bb.2:455    V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec456    $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc457    S_CBRANCH_VCCNZ %bb.4, implicit killed $vcc458    S_BRANCH %bb.3459 460  bb.3:461    S_BRANCH %bb.2462 463  bb.4:464    S_ENDPGM 0465...466 467# GCN: name: negated_cond_subreg468# GCN:      %0.sub0_sub1:sgpr_128 = IMPLICIT_DEF469# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0.sub0_sub1, implicit-def dead $scc470# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc471---472name:            negated_cond_subreg473body:             |474  bb.0:475    undef %0.sub0_sub1:sgpr_128 = IMPLICIT_DEF476    %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0.sub0_sub1, implicit $exec477    undef %2.sub0_sub1:sgpr_128 = V_CMP_NE_U32_e64 %1, 1, implicit $exec478    $vcc = S_AND_B64 $exec, %2.sub0_sub1:sgpr_128, implicit-def dead $scc479    S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc480    S_BRANCH %bb.1481 482  bb.1:483    S_BRANCH %bb.2484 485  bb.2:486    S_ENDPGM 0487...488