129 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -o - -run-pass=block-placement -mcpu=gfx1010 -mattr=-inst-fwd-prefetch-bug -verify-machineinstrs %s | FileCheck -check-prefixes=GFX10 %s3# RUN: llc -mtriple=amdgcn -o - -run-pass=block-placement -mcpu=gfx1100 -mattr=-inst-fwd-prefetch-bug -verify-machineinstrs %s | FileCheck -check-prefixes=GFX11 %s4 5# RUN: llc -mtriple=amdgcn -o - -passes='require<profile-summary>,function(machine-function(block-placement<tail-merge>))' -mcpu=gfx1100 -mattr=-inst-fwd-prefetch-bug -verify-machineinstrs %s | FileCheck -check-prefixes=GFX11 %s6 7# Used to fail with8# Assertion `Out && "Header of loop has no predecessors from outside loop?"9 10---11name: loop_header_nopred12body: |13 ; GFX10-LABEL: name: loop_header_nopred14 ; GFX10: bb.0:15 ; GFX10-NEXT: successors: %bb.2(0x80000000)16 ; GFX10-NEXT: {{ $}}17 ; GFX10-NEXT: S_BRANCH %bb.218 ; GFX10-NEXT: {{ $}}19 ; GFX10-NEXT: bb.1 (align 64):20 ; GFX10-NEXT: successors: %bb.7(0x04000000), %bb.2(0x7c000000)21 ; GFX10-NEXT: {{ $}}22 ; GFX10-NEXT: S_CBRANCH_VCCNZ %bb.7, implicit $vcc_lo23 ; GFX10-NEXT: {{ $}}24 ; GFX10-NEXT: bb.2:25 ; GFX10-NEXT: successors: %bb.5(0x40000000), %bb.1(0x40000000)26 ; GFX10-NEXT: {{ $}}27 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec28 ; GFX10-NEXT: {{ $}}29 ; GFX10-NEXT: bb.5:30 ; GFX10-NEXT: successors: %bb.1(0x04000000), %bb.5(0x7c000000)31 ; GFX10-NEXT: {{ $}}32 ; GFX10-NEXT: S_NOP 033 ; GFX10-NEXT: S_NOP 034 ; GFX10-NEXT: S_NOP 035 ; GFX10-NEXT: S_NOP 036 ; GFX10-NEXT: S_NOP 037 ; GFX10-NEXT: S_NOP 038 ; GFX10-NEXT: S_NOP 039 ; GFX10-NEXT: S_NOP 040 ; GFX10-NEXT: S_NOP 041 ; GFX10-NEXT: S_NOP 042 ; GFX10-NEXT: S_NOP 043 ; GFX10-NEXT: S_CBRANCH_EXECZ %bb.5, implicit $exec44 ; GFX10-NEXT: S_BRANCH %bb.145 ; GFX10-NEXT: {{ $}}46 ; GFX10-NEXT: bb.7:47 ; GFX10-NEXT: S_ENDPGM 048 ;49 ; GFX11-LABEL: name: loop_header_nopred50 ; GFX11: bb.0:51 ; GFX11-NEXT: successors: %bb.2(0x80000000)52 ; GFX11-NEXT: {{ $}}53 ; GFX11-NEXT: S_BRANCH %bb.254 ; GFX11-NEXT: {{ $}}55 ; GFX11-NEXT: bb.1:56 ; GFX11-NEXT: successors: %bb.7(0x04000000), %bb.2(0x7c000000)57 ; GFX11-NEXT: {{ $}}58 ; GFX11-NEXT: S_CBRANCH_VCCNZ %bb.7, implicit $vcc_lo59 ; GFX11-NEXT: {{ $}}60 ; GFX11-NEXT: bb.2:61 ; GFX11-NEXT: successors: %bb.5(0x40000000), %bb.1(0x40000000)62 ; GFX11-NEXT: {{ $}}63 ; GFX11-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec64 ; GFX11-NEXT: {{ $}}65 ; GFX11-NEXT: bb.5:66 ; GFX11-NEXT: successors: %bb.1(0x04000000), %bb.5(0x7c000000)67 ; GFX11-NEXT: {{ $}}68 ; GFX11-NEXT: S_NOP 069 ; GFX11-NEXT: S_NOP 070 ; GFX11-NEXT: S_NOP 071 ; GFX11-NEXT: S_NOP 072 ; GFX11-NEXT: S_NOP 073 ; GFX11-NEXT: S_NOP 074 ; GFX11-NEXT: S_NOP 075 ; GFX11-NEXT: S_NOP 076 ; GFX11-NEXT: S_NOP 077 ; GFX11-NEXT: S_NOP 078 ; GFX11-NEXT: S_NOP 079 ; GFX11-NEXT: S_CBRANCH_EXECZ %bb.5, implicit $exec80 ; GFX11-NEXT: S_BRANCH %bb.181 ; GFX11-NEXT: {{ $}}82 ; GFX11-NEXT: bb.7:83 ; GFX11-NEXT: S_ENDPGM 084 bb.0:85 successors: %bb.1(0x80000000)86 87 bb.1:88 successors: %bb.2(0x40000000), %bb.3(0x40000000)89 90 S_CBRANCH_VCCZ %bb.3, implicit $vcc91 S_BRANCH %bb.292 93 bb.2:94 successors: %bb.3(0x80000000)95 96 bb.3:97 successors: %bb.4(0x40000000), %bb.6(0x40000000)98 99 S_CBRANCH_EXECZ %bb.6, implicit $exec100 S_BRANCH %bb.4101 102 bb.4:103 successors: %bb.5(0x04000000), %bb.4(0x7c000000)104 105 S_NOP 0106 S_NOP 0107 S_NOP 0108 S_NOP 0109 S_NOP 0110 S_NOP 0111 S_NOP 0112 S_NOP 0113 S_NOP 0114 S_NOP 0115 S_NOP 0116 S_CBRANCH_EXECZ %bb.4, implicit $exec117 118 bb.5:119 successors: %bb.6(0x80000000)120 121 bb.6:122 successors: %bb.7(0x04000000), %bb.1(0x7c000000)123 124 S_CBRANCH_VCCZ %bb.1, implicit $vcc125 126 bb.7:127 S_ENDPGM 0128...129