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