47 lines · plain
1# RUN: llc -mtriple=amdgcn -start-after=greedy -disable-copyprop -stop-after=si-optimize-exec-masking -o - %s | FileCheck %s2# RUN: llc -mtriple=amdgcn -passes=si-fix-vgpr-copies,si-optimize-exec-masking -o - %s | FileCheck %s3 4# Check that we first do all vector instructions and only then change exec5# CHECK-DAG: COPY $vgpr10_vgpr116# CHECK-DAG: COPY $vgpr12_vgpr137# CHECK: $exec = COPY8 9---10name: main11alignment: 112exposesReturnsTwice: false13legalized: false14regBankSelected: false15selected: false16tracksRegLiveness: true17liveins:18 - { reg: '$sgpr4_sgpr5' }19 - { reg: '$sgpr6' }20 - { reg: '$vgpr0' }21frameInfo:22 isFrameAddressTaken: false23 isReturnAddressTaken: false24 hasStackMap: false25 hasPatchPoint: false26 stackSize: 027 offsetAdjustment: 028 maxAlignment: 429 adjustsStack: false30 hasCalls: false31 maxCallFrameSize: 032 hasOpaqueSPAdjustment: false33 hasVAStart: false34 hasMustTailInVarArgFunc: false35body: |36 bb.0.entry:37 liveins: $vgpr3, $vgpr10_vgpr11, $vgpr12_vgpr1338 39 $vcc = V_CMP_NE_U32_e64 0, killed $vgpr3, implicit $exec40 $sgpr4_sgpr5 = COPY $exec, implicit-def $exec41 $sgpr6_sgpr7 = S_AND_B64 $sgpr4_sgpr5, killed $vcc, implicit-def dead $scc42 $sgpr4_sgpr5 = S_XOR_B64 $sgpr6_sgpr7, killed $sgpr4_sgpr5, implicit-def dead $scc43 $vgpr61_vgpr62 = COPY $vgpr10_vgpr1144 $vgpr155_vgpr156 = COPY $vgpr12_vgpr1345 $exec = S_MOV_B64_term killed $sgpr6_sgpr746...47