brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 590d69b Raw
102 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -passes=finalizebundle-test %s -o - | FileCheck %s3 4--- |5 6  @foo = addrspace(3) global i32 poison7 8  define void @test_overlap() { unreachable }9  define void @test_dead_redef() { unreachable }10  define void @test_tied() { unreachable }11  define void @test_mmo_merge1() { unreachable }12  define void @test_mmo_merge2() { unreachable }13  define void @test_mmo_drop() { unreachable }14 15...16 17---18name: test_overlap19body: |20  bb.0:21    liveins: $vgpr0_vgpr122    ; CHECK-LABEL: name: test_overlap23    ; CHECK: liveins: $vgpr0_vgpr124    ; CHECK-NEXT: {{  $}}25    ; CHECK-NEXT: BUNDLE implicit-def $vgpr2_vgpr3, implicit-def $vgpr3_vgpr4, implicit $vgpr0_vgpr1, implicit $exec, implicit $vgpr1_vgpr2 {26    ; CHECK-NEXT:   $vgpr2_vgpr3 = V_LSHLREV_B64_pseudo_e32 1, $vgpr0_vgpr1, implicit $exec27    ; CHECK-NEXT:   $vgpr3_vgpr4 = V_LSHLREV_B64_pseudo_e32 1, $vgpr1_vgpr2, implicit $exec28    ; CHECK-NEXT: }29    $vgpr2_vgpr3 = V_LSHLREV_B64_pseudo_e32 1, $vgpr0_vgpr1, implicit $exec30    $vgpr3_vgpr4 = V_LSHLREV_B64_pseudo_e32 1, $vgpr1_vgpr2, implicit $exec31...32 33---34name: test_dead_redef35body: |36  bb.0:37    liveins: $vgpr038    ; CHECK-LABEL: name: test_dead_redef39    ; CHECK: liveins: $vgpr040    ; CHECK-NEXT: {{  $}}41    ; CHECK-NEXT: BUNDLE implicit-def dead $vgpr1, implicit-def $vgpr0, implicit $vgpr0, implicit $exec {42    ; CHECK-NEXT:   $vgpr1 = V_MOV_B32_e32 $vgpr0, implicit $exec43    ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 internal $vgpr1, implicit $exec44    ; CHECK-NEXT:   dead $vgpr1 = V_MOV_B32_e32 internal $vgpr0, implicit $exec45    ; CHECK-NEXT: }46    $vgpr1 = V_MOV_B32_e32 $vgpr0, implicit $exec47    $vgpr0 = V_MOV_B32_e32 $vgpr1, implicit $exec48    dead $vgpr1 = V_MOV_B32_e32 $vgpr0, implicit $exec49...50 51---52name: test_tied53body: |54  bb.0:55    ; CHECK-LABEL: name: test_tied56    ; CHECK: BUNDLE implicit-def %0, implicit-def %2, implicit %1:vgpr_32(tied-def 1), implicit $mode, implicit $exec {57    ; CHECK-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY %1:vgpr_3258    ; CHECK-NEXT:   [[V_FMAC_F16_e32_:%[0-9]+]]:vgpr_32 = V_FMAC_F16_e32 internal [[COPY]], internal [[COPY]], %1:vgpr_32, implicit $mode, implicit $exec59    ; CHECK-NEXT: }60    %1:vgpr_32 = COPY %0:vgpr_3261    %2:vgpr_32 = V_FMAC_F16_e32 %1, %1, %0, implicit $mode, implicit $exec62...63 64---65name: test_mmo_merge166body: |67  bb.0:68    ; CHECK-LABEL: name: test_mmo_merge169    ; CHECK: BUNDLE implicit-def %0, implicit %1:vgpr_32, implicit $exec :: (store (s32) into @foo, addrspace 3) {70    ; CHECK-NEXT:   [[COPY:%[0-9]+]]:vgpr_32 = COPY %1:vgpr_3271    ; CHECK-NEXT:   DS_WRITE_B32_gfx9 %1:vgpr_32, internal [[COPY]], 0, 0, implicit $exec :: (store (s32) into @foo, addrspace 3)72    ; CHECK-NEXT: }73    %1:vgpr_32 = COPY %0:vgpr_3274    DS_WRITE_B32_gfx9 %0, %1, 0, 0, implicit $exec :: (store (s32) into @foo, addrspace 3)75...76 77---78name: test_mmo_merge279body: |80  bb.0:81    ; CHECK-LABEL: name: test_mmo_merge282    ; CHECK: BUNDLE implicit %0:vgpr_32, implicit %1:vgpr_32, implicit $exec :: (store (s32) into @foo, addrspace 3), (store (s32) into @foo + 4, addrspace 3) {83    ; CHECK-NEXT:   DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into @foo, addrspace 3)84    ; CHECK-NEXT:   DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 4, 0, implicit $exec :: (store (s32) into @foo + 4, addrspace 3)85    ; CHECK-NEXT: }86    DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into @foo, addrspace 3)87    DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 4, 0, implicit $exec :: (store (s32) into @foo + 4, addrspace 3)88...89 90---91name: test_mmo_drop92body: |93  bb.0:94    ; CHECK-LABEL: name: test_mmo_drop95    ; CHECK: BUNDLE implicit %0:vgpr_32, implicit %1:vgpr_32, implicit $exec {96    ; CHECK-NEXT:   DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into @foo, addrspace 3)97    ; CHECK-NEXT:   DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 4, 0, implicit $exec98    ; CHECK-NEXT: }99    DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 0, 0, implicit $exec :: (store (s32) into @foo, addrspace 3)100    DS_WRITE_B32_gfx9 %0:vgpr_32, %1:vgpr_32, 4, 0, implicit $exec101...102