brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · 742fc8d Raw
359 lines · plain
1# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass si-optimize-exec-masking-pre-ra %s -o - | FileCheck -check-prefix=GCN %s2 3# GCN-LABEL: name: kill_all4# GCN:      bb.0:5# GCN-NEXT: S_ENDPGM 06name: kill_all7tracksRegLiveness: true8registers:9  - { id: 0, class: vreg_64 }10  - { id: 1, class: vgpr_32 }11  - { id: 2, class: vgpr_32 }12  - { id: 3, class: sgpr_32 }13  - { id: 4, class: sgpr_32 }14body:             |15  bb.0:16    $vcc = IMPLICIT_DEF17    %0 = IMPLICIT_DEF18    %3 = IMPLICIT_DEF19    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc20    %1 = FLAT_LOAD_DWORD %0, 0, 0, implicit $exec, implicit $flat_scr :: (load (s32))21    %2 = V_ADD_F32_e64 0, killed %1, 0, 1, 0, 0, implicit $mode, implicit $exec22    %4 = S_ADD_U32 %3, 1, implicit-def $scc23    S_ENDPGM 024...25---26# GCN-LABEL: name: load_without_memoperand27# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc28# GCN-NEXT: dead %1:vgpr_32 = FLAT_LOAD_DWORD %0, 0, 0, implicit $exec, implicit $flat_scr29# GCN-NEXT: S_ENDPGM 030name: load_without_memoperand31tracksRegLiveness: true32registers:33  - { id: 0, class: vreg_64 }34  - { id: 1, class: vgpr_32 }35  - { id: 2, class: vgpr_32 }36  - { id: 3, class: sgpr_32 }37  - { id: 4, class: sgpr_32 }38body:             |39  bb.0:40    $vcc = IMPLICIT_DEF41    %0 = IMPLICIT_DEF42    %3 = IMPLICIT_DEF43    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc44    %1 = FLAT_LOAD_DWORD %0, 0, 0, implicit $exec, implicit $flat_scr45    %2 = V_ADD_F32_e64 0, killed %1, 0, 1, 0, 0, implicit $mode, implicit $exec46    %4 = S_ADD_U32 %3, 1, implicit-def $scc47    S_ENDPGM 048...49---50# GCN-LABEL: name: load_volatile51# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc52# GCN-NEXT: dead %1:vgpr_32 = FLAT_LOAD_DWORD %0, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load (s32))53# GCN-NEXT: S_ENDPGM 054name: load_volatile55tracksRegLiveness: true56registers:57  - { id: 0, class: vreg_64 }58  - { id: 1, class: vgpr_32 }59  - { id: 2, class: vgpr_32 }60  - { id: 3, class: sgpr_32 }61  - { id: 4, class: sgpr_32 }62body:             |63  bb.0:64    $vcc = IMPLICIT_DEF65    %0 = IMPLICIT_DEF66    %3 = IMPLICIT_DEF67    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc68    %1 = FLAT_LOAD_DWORD %0, 0, 0, implicit $exec, implicit $flat_scr :: (volatile load (s32))69    %2 = V_ADD_F32_e64 0, killed %1, 0, 1, 0, 0, implicit $mode, implicit $exec70    %4 = S_ADD_U32 %3, 1, implicit-def $scc71    S_ENDPGM 072...73---74# GCN-LABEL: name: store75# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc76# GCN-NEXT: FLAT_STORE_DWORD %0, %1, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32))77# GCN-NEXT: S_ENDPGM 078name: store79tracksRegLiveness: true80registers:81  - { id: 0, class: vreg_64 }82  - { id: 1, class: vgpr_32 }83body:             |84  bb.0:85    $vcc = IMPLICIT_DEF86    %0 = IMPLICIT_DEF87    %1 = IMPLICIT_DEF88    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc89    FLAT_STORE_DWORD %0, %1, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32))90    S_ENDPGM 091...92---93# GCN-LABEL: name: barrier94# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc95# GCN-NEXT: S_BARRIER96# GCN-NEXT: S_ENDPGM 097name: barrier98tracksRegLiveness: true99body:             |100  bb.0:101    $vcc = IMPLICIT_DEF102    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc103    S_BARRIER104    S_ENDPGM 0105...106---107# GCN-LABEL: name: call108# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc109# GCN-NEXT: $sgpr4_sgpr5 = S_SWAPPC_B64 $sgpr2_sgpr3110# GCN-NEXT: S_ENDPGM 0111name: call112tracksRegLiveness: true113body:             |114  bb.0:115    liveins: $sgpr2_sgpr3116    $vcc = IMPLICIT_DEF117    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc118    $sgpr4_sgpr5 = S_SWAPPC_B64 $sgpr2_sgpr3119    S_ENDPGM 0120...121---122# GCN-LABEL: name: exp123# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc124# GCN-NEXT: EXP 32, undef %0:vgpr_32, undef %1:vgpr_32, %2, undef %3:vgpr_32, 0, 0, 15, implicit $exec125# GCN-NEXT: S_ENDPGM 0126name: exp127tracksRegLiveness: true128registers:129  - { id: 0, class: vgpr_32 }130  - { id: 1, class: vgpr_32 }131  - { id: 2, class: vgpr_32 }132  - { id: 3, class: vgpr_32 }133body:             |134  bb.0:135    $vcc = IMPLICIT_DEF136    %2 = IMPLICIT_DEF137    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc138    EXP 32, undef %0, undef %1, killed %2, undef %3, 0, 0, 15, implicit $exec139    S_ENDPGM 0140...141---142# GCN-LABEL: name: return_to_epilog143# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc144# GCN-NEXT: SI_RETURN_TO_EPILOG killed $vgpr0145name: return_to_epilog146tracksRegLiveness: true147body:             |148  bb.0:149    $vcc = IMPLICIT_DEF150    $vgpr0 = IMPLICIT_DEF151    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc152    SI_RETURN_TO_EPILOG killed $vgpr0153...154---155# GCN-LABEL: name: split_block156# GCN:      bb.0:157# GCN-NEXT:   successors: %bb.1158# GCN-NOT:  S_OR_B64159# GCN:      bb.1:160# GCN-NEXT:   S_ENDPGM 0161name: split_block162tracksRegLiveness: true163registers:164  - { id: 0, class: vgpr_32 }165  - { id: 1, class: vgpr_32 }166  - { id: 2, class: sgpr_32 }167  - { id: 3, class: sgpr_32 }168body:             |169  bb.0:170    $vcc = IMPLICIT_DEF171    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc172 173  bb.1:174    %0 = IMPLICIT_DEF175    %2 = IMPLICIT_DEF176    %1 = V_ADD_F32_e64 0, killed %0, 0, 1, 0, 0, implicit $mode, implicit $exec177    %3 = S_ADD_U32 %2, 1, implicit-def $scc178    S_ENDPGM 0179...180---181# GCN-LABEL: name: split_block_empty_block182# GCN:      bb.0:183# GCN-NEXT:   successors: %bb.1184# GCN-NOT:  S_OR_B64185# GCN:      bb.1:186# GCN:      bb.2:187# GCN-NEXT:   S_ENDPGM 0188name: split_block_empty_block189tracksRegLiveness: true190body:             |191  bb.0:192    $vcc = IMPLICIT_DEF193    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc194 195  bb.1:196 197  bb.2:198    S_ENDPGM 0199...200---201# GCN-LABEL: name: split_block_uncond_branch202# GCN:      bb.0:203# GCN-NEXT:   successors: %bb.1204# GCN:        S_BRANCH %bb.1205# GCN-NOT:  S_OR_B64206# GCN:      bb.1:207# GCN-NEXT:   S_ENDPGM 0208name: split_block_uncond_branch209tracksRegLiveness: true210body:             |211  bb.0:212    $vcc = IMPLICIT_DEF213    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc214    S_BRANCH %bb.1215 216  bb.1:217    S_ENDPGM 0218...219---220# GCN-LABEL: name: split_block_cond_branch221# GCN:      bb.0:222# GCN-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)223# GCN:        $sgpr0_sgpr1 = S_OR_B64 $exec, $vcc, implicit-def $scc224# GCN:        S_CBRANCH_VCCNZ %bb.2, implicit undef $vcc225# GCN:      bb.1:226# GCN:      bb.2:227# GCN-NEXT:   S_ENDPGM 0228name: split_block_cond_branch229tracksRegLiveness: true230body:             |231  bb.0:232    $vcc = IMPLICIT_DEF233    $sgpr0_sgpr1 = S_OR_B64 $exec, $vcc, implicit-def $scc234    S_CBRANCH_VCCNZ %bb.2, implicit undef $vcc235 236  bb.1:237 238  bb.2:239    S_ENDPGM 0240...241---242# GCN-LABEL: name: two_preds_both_dead243# GCN:      bb.0:244# GCN-NEXT:   successors: %bb.2245# GCN-NOT:    S_OR246# GCN:        S_BRANCH %bb.2247# GCN:      bb.1:248# GCN-NEXT:   successors: %bb.2249# GCN-NOT:    S_AND250# GCN:        S_BRANCH %bb.2251# GCN:      bb.2:252# GCN-NEXT:   S_ENDPGM 0253name: two_preds_both_dead254tracksRegLiveness: true255body:             |256  bb.0:257    $vcc = IMPLICIT_DEF258    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc259    S_BRANCH %bb.2260 261  bb.1:262    $vcc = IMPLICIT_DEF263    $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc, implicit-def $scc264    S_BRANCH %bb.2265 266  bb.2:267    S_ENDPGM 0268...269---270# GCN-LABEL: name: two_preds_one_dead271# GCN:      bb.0:272# GCN-NEXT:   successors: %bb.2273# GCN:        $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc274# GCN-NEXT:   S_BARRIER275# GCN-NEXT:   S_BRANCH %bb.2276# GCN:      bb.1:277# GCN-NEXT:   successors: %bb.2278# GCN-NOT:    S_AND279# GCN:        S_BRANCH %bb.2280# GCN:      bb.2:281# GCN-NEXT:   S_ENDPGM 0282name: two_preds_one_dead283tracksRegLiveness: true284body:             |285  bb.0:286    $vcc = IMPLICIT_DEF287    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc288    S_BARRIER289    S_BRANCH %bb.2290 291  bb.1:292    $vcc = IMPLICIT_DEF293    $sgpr0_sgpr1 = S_AND_B64 $exec, killed $vcc, implicit-def $scc294    S_BRANCH %bb.2295 296  bb.2:297    S_ENDPGM 0298...299 300# GCN-LABEL: name: implicit_use_on_S_ENDPGM 0301# GCN: V_ADD_CO_U32302# GCN: COPY303# GCN: V_ADDC_U32304# GCN: S_ENDPGM 0, implicit %3305name: implicit_use_on_S_ENDPGM 0306tracksRegLiveness: true307 308body:             |309  bb.0:310    dead %0:vgpr_32 = V_ADD_CO_U32_e32 12345, undef %1:vgpr_32, implicit-def $vcc, implicit $exec311    %2:sreg_64_xexec = COPY $vcc312    %3:vgpr_32, dead %4:sreg_64_xexec = V_ADDC_U32_e64 undef %5:vgpr_32, undef %6:vgpr_32, %2, 0, implicit $exec313    S_ENDPGM 0, implicit %3314 315...316 317---318# GCN-LABEL: name: inlineasm_nosideeffect319# GCN-NOT: S_OR_B64320# GCN-NOT: INLINEASM321# GCN: S_ENDPGM 0322name: inlineasm_nosideeffect323tracksRegLiveness: true324registers:325  - { id: 0, class: vreg_64 }326  - { id: 1, class: vgpr_32 }327body:             |328  bb.0:329    $vcc = IMPLICIT_DEF330    %0 = IMPLICIT_DEF331    %1 = IMPLICIT_DEF332    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc333    %2:sreg_64 = IMPLICIT_DEF334    INLINEASM &"", 0335    S_ENDPGM 0336...337 338---339# GCN-LABEL: name: inlineasm_sideeffect340# GCN:      $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc341# GCN-NEXT: IMPLICIT_DEF342# GCN-NEXT: INLINEASM343# GCN-NEXT: S_ENDPGM 0344name: inlineasm_sideeffect345tracksRegLiveness: true346registers:347  - { id: 0, class: vreg_64 }348  - { id: 1, class: vgpr_32 }349body:             |350  bb.0:351    $vcc = IMPLICIT_DEF352    %0 = IMPLICIT_DEF353    %1 = IMPLICIT_DEF354    $sgpr0_sgpr1 = S_OR_B64 $exec, killed $vcc, implicit-def $scc355    %2:sreg_64 = IMPLICIT_DEF356    INLINEASM &"", 1357    S_ENDPGM 0358...359