122 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -amdgpu-snop-padding=8 -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN8 %s3# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -amdgpu-snop-padding=16 -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN16 %s4 5---6name: test_snop_padding7tracksRegLiveness: true8frameInfo:9 maxAlignment: 410stack:11 - { id: 0, type: spill-slot, size: 4, alignment: 4, stack-id: sgpr-spill }12machineFunctionInfo:13 isEntryFunction: false14 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'15 stackPtrOffsetReg: '$sgpr32'16 frameOffsetReg: '$sgpr33'17 hasSpilledSGPRs: true18body: |19 ; GCN8-LABEL: name: test_snop_padding20 ; GCN8: bb.0:21 ; GCN8-NEXT: successors: %bb.1(0x80000000)22 ; GCN8-NEXT: liveins: $sgpr6, $sgpr10_sgpr1123 ; GCN8-NEXT: {{ $}}24 ; GCN8-NEXT: S_NOP 725 ; GCN8-NEXT: S_BRANCH %bb.126 ; GCN8-NEXT: {{ $}}27 ; GCN8-NEXT: bb.1:28 ; GCN8-NEXT: successors: %bb.3(0x40000000), %bb.2(0x40000000)29 ; GCN8-NEXT: liveins: $sgpr6, $sgpr10_sgpr1130 ; GCN8-NEXT: {{ $}}31 ; GCN8-NEXT: S_NOP 732 ; GCN8-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 10, implicit $exec33 ; GCN8-NEXT: S_NOP 734 ; GCN8-NEXT: S_CBRANCH_EXECZ %bb.3, implicit $exec35 ; GCN8-NEXT: {{ $}}36 ; GCN8-NEXT: bb.2:37 ; GCN8-NEXT: successors: %bb.3(0x80000000)38 ; GCN8-NEXT: liveins: $sgpr6, $sgpr10_sgpr1139 ; GCN8-NEXT: {{ $}}40 ; GCN8-NEXT: S_NOP 741 ; GCN8-NEXT: SI_SPILL_S32_SAVE killed $sgpr6, %stack.0, implicit $exec, implicit $sgpr0_sgpr1_sgpr2_sgpr3, implicit $sgpr3242 ; GCN8-NEXT: S_NOP 743 ; GCN8-NEXT: S_NOP 044 ; GCN8-NEXT: S_NOP 745 ; GCN8-NEXT: renamable $sgpr6 = SI_SPILL_S32_RESTORE %stack.0, implicit $exec, implicit $sgpr0_sgpr1_sgpr2_sgpr3, implicit $sgpr3246 ; GCN8-NEXT: S_NOP 747 ; GCN8-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 20, implicit $exec48 ; GCN8-NEXT: S_NOP 749 ; GCN8-NEXT: S_BRANCH %bb.350 ; GCN8-NEXT: {{ $}}51 ; GCN8-NEXT: bb.3:52 ; GCN8-NEXT: liveins: $sgpr10_sgpr1153 ; GCN8-NEXT: {{ $}}54 ; GCN8-NEXT: S_NOP 755 ; GCN8-NEXT: $sgpr5 = V_READFIRSTLANE_B32 [[V_MOV_B32_e32_]], implicit $exec56 ; GCN8-NEXT: S_NOP 757 ; GCN8-NEXT: S_STORE_DWORD_IMM $sgpr5, $sgpr10_sgpr11, 0, 058 ; GCN8-NEXT: S_NOP 759 ; GCN8-NEXT: SI_RETURN60 ;61 ; GCN16-LABEL: name: test_snop_padding62 ; GCN16: bb.0:63 ; GCN16-NEXT: successors: %bb.1(0x80000000)64 ; GCN16-NEXT: liveins: $sgpr6, $sgpr10_sgpr1165 ; GCN16-NEXT: {{ $}}66 ; GCN16-NEXT: S_NOP 1567 ; GCN16-NEXT: S_BRANCH %bb.168 ; GCN16-NEXT: {{ $}}69 ; GCN16-NEXT: bb.1:70 ; GCN16-NEXT: successors: %bb.3(0x40000000), %bb.2(0x40000000)71 ; GCN16-NEXT: liveins: $sgpr6, $sgpr10_sgpr1172 ; GCN16-NEXT: {{ $}}73 ; GCN16-NEXT: S_NOP 1574 ; GCN16-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 10, implicit $exec75 ; GCN16-NEXT: S_NOP 1576 ; GCN16-NEXT: S_CBRANCH_EXECZ %bb.3, implicit $exec77 ; GCN16-NEXT: {{ $}}78 ; GCN16-NEXT: bb.2:79 ; GCN16-NEXT: successors: %bb.3(0x80000000)80 ; GCN16-NEXT: liveins: $sgpr6, $sgpr10_sgpr1181 ; GCN16-NEXT: {{ $}}82 ; GCN16-NEXT: S_NOP 1583 ; GCN16-NEXT: SI_SPILL_S32_SAVE killed $sgpr6, %stack.0, implicit $exec, implicit $sgpr0_sgpr1_sgpr2_sgpr3, implicit $sgpr3284 ; GCN16-NEXT: S_NOP 1585 ; GCN16-NEXT: S_NOP 086 ; GCN16-NEXT: S_NOP 1587 ; GCN16-NEXT: renamable $sgpr6 = SI_SPILL_S32_RESTORE %stack.0, implicit $exec, implicit $sgpr0_sgpr1_sgpr2_sgpr3, implicit $sgpr3288 ; GCN16-NEXT: S_NOP 1589 ; GCN16-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 20, implicit $exec90 ; GCN16-NEXT: S_NOP 1591 ; GCN16-NEXT: S_BRANCH %bb.392 ; GCN16-NEXT: {{ $}}93 ; GCN16-NEXT: bb.3:94 ; GCN16-NEXT: liveins: $sgpr10_sgpr1195 ; GCN16-NEXT: {{ $}}96 ; GCN16-NEXT: S_NOP 1597 ; GCN16-NEXT: $sgpr5 = V_READFIRSTLANE_B32 [[V_MOV_B32_e32_]], implicit $exec98 ; GCN16-NEXT: S_NOP 1599 ; GCN16-NEXT: S_STORE_DWORD_IMM $sgpr5, $sgpr10_sgpr11, 0, 0100 ; GCN16-NEXT: S_NOP 15101 ; GCN16-NEXT: SI_RETURN102 bb.0:103 liveins: $sgpr6, $sgpr10_sgpr11104 S_BRANCH %bb.1105 bb.1:106 liveins: $sgpr6, $sgpr10_sgpr11107 %0:vgpr_32 = V_MOV_B32_e32 10, implicit $exec108 S_CBRANCH_EXECZ %bb.3, implicit $exec109 bb.2:110 liveins: $sgpr6, $sgpr10_sgpr11111 SI_SPILL_S32_SAVE killed $sgpr6, %stack.0, implicit $exec, implicit $sgpr0_sgpr1_sgpr2_sgpr3, implicit $sgpr32112 S_NOP 0113 renamable $sgpr6 = SI_SPILL_S32_RESTORE %stack.0, implicit $exec, implicit $sgpr0_sgpr1_sgpr2_sgpr3, implicit $sgpr32114 %0:vgpr_32 = V_MOV_B32_e32 20, implicit $exec115 S_BRANCH %bb.3116 bb.3:117 liveins: $sgpr10_sgpr11118 $sgpr5 = V_READFIRSTLANE_B32 %0:vgpr_32, implicit $exec119 S_STORE_DWORD_IMM $sgpr5, $sgpr10_sgpr11, 0, 0120 SI_RETURN121...122