Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / loop_header_nopred.mir
blobefa24a9bee7de9abe8ce2f8b37d5c73ffa76ae19
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -o - -run-pass=block-placement -mcpu=gfx1010 -mattr=-inst-fwd-prefetch-bug -verify-machineinstrs %s | FileCheck -check-prefixes=GFX10 %s
3 # RUN: llc -mtriple=amdgcn -o - -run-pass=block-placement -mcpu=gfx1100 -mattr=-inst-fwd-prefetch-bug -verify-machineinstrs %s | FileCheck -check-prefixes=GFX11 %s
5 # Used to fail with
6 # Assertion `Out && "Header of loop has no predecessors from outside loop?"
8 ---
9 name:            loop_header_nopred
10 body:             |
11   ; GFX10-LABEL: name: loop_header_nopred
12   ; GFX10: bb.0:
13   ; GFX10-NEXT:   successors: %bb.2(0x80000000)
14   ; GFX10-NEXT: {{  $}}
15   ; GFX10-NEXT:   S_BRANCH %bb.2
16   ; GFX10-NEXT: {{  $}}
17   ; GFX10-NEXT: bb.1 (align 64):
18   ; GFX10-NEXT:   successors: %bb.7(0x04000000), %bb.2(0x7c000000)
19   ; GFX10-NEXT: {{  $}}
20   ; GFX10-NEXT:   S_CBRANCH_VCCNZ %bb.7, implicit $vcc_lo
21   ; GFX10-NEXT: {{  $}}
22   ; GFX10-NEXT: bb.2:
23   ; GFX10-NEXT:   successors: %bb.5(0x40000000), %bb.1(0x40000000)
24   ; GFX10-NEXT: {{  $}}
25   ; GFX10-NEXT:   S_CBRANCH_EXECZ %bb.1, implicit $exec
26   ; GFX10-NEXT: {{  $}}
27   ; GFX10-NEXT: bb.5:
28   ; GFX10-NEXT:   successors: %bb.1(0x04000000), %bb.5(0x7c000000)
29   ; GFX10-NEXT: {{  $}}
30   ; GFX10-NEXT:   S_NOP 0
31   ; GFX10-NEXT:   S_NOP 0
32   ; GFX10-NEXT:   S_NOP 0
33   ; GFX10-NEXT:   S_NOP 0
34   ; GFX10-NEXT:   S_NOP 0
35   ; GFX10-NEXT:   S_NOP 0
36   ; GFX10-NEXT:   S_NOP 0
37   ; GFX10-NEXT:   S_NOP 0
38   ; GFX10-NEXT:   S_NOP 0
39   ; GFX10-NEXT:   S_NOP 0
40   ; GFX10-NEXT:   S_NOP 0
41   ; GFX10-NEXT:   S_CBRANCH_EXECZ %bb.5, implicit $exec
42   ; GFX10-NEXT:   S_BRANCH %bb.1
43   ; GFX10-NEXT: {{  $}}
44   ; GFX10-NEXT: bb.7:
45   ; GFX10-NEXT:   S_ENDPGM 0
46   ;
47   ; GFX11-LABEL: name: loop_header_nopred
48   ; GFX11: bb.0:
49   ; GFX11-NEXT:   successors: %bb.2(0x80000000)
50   ; GFX11-NEXT: {{  $}}
51   ; GFX11-NEXT:   S_BRANCH %bb.2
52   ; GFX11-NEXT: {{  $}}
53   ; GFX11-NEXT: bb.1:
54   ; GFX11-NEXT:   successors: %bb.7(0x04000000), %bb.2(0x7c000000)
55   ; GFX11-NEXT: {{  $}}
56   ; GFX11-NEXT:   S_CBRANCH_VCCNZ %bb.7, implicit $vcc_lo
57   ; GFX11-NEXT: {{  $}}
58   ; GFX11-NEXT: bb.2:
59   ; GFX11-NEXT:   successors: %bb.5(0x40000000), %bb.1(0x40000000)
60   ; GFX11-NEXT: {{  $}}
61   ; GFX11-NEXT:   S_CBRANCH_EXECZ %bb.1, implicit $exec
62   ; GFX11-NEXT: {{  $}}
63   ; GFX11-NEXT: bb.5:
64   ; GFX11-NEXT:   successors: %bb.1(0x04000000), %bb.5(0x7c000000)
65   ; GFX11-NEXT: {{  $}}
66   ; GFX11-NEXT:   S_NOP 0
67   ; GFX11-NEXT:   S_NOP 0
68   ; GFX11-NEXT:   S_NOP 0
69   ; GFX11-NEXT:   S_NOP 0
70   ; GFX11-NEXT:   S_NOP 0
71   ; GFX11-NEXT:   S_NOP 0
72   ; GFX11-NEXT:   S_NOP 0
73   ; GFX11-NEXT:   S_NOP 0
74   ; GFX11-NEXT:   S_NOP 0
75   ; GFX11-NEXT:   S_NOP 0
76   ; GFX11-NEXT:   S_NOP 0
77   ; GFX11-NEXT:   S_CBRANCH_EXECZ %bb.5, implicit $exec
78   ; GFX11-NEXT:   S_BRANCH %bb.1
79   ; GFX11-NEXT: {{  $}}
80   ; GFX11-NEXT: bb.7:
81   ; GFX11-NEXT:   S_ENDPGM 0
82   bb.0:
83     successors: %bb.1(0x80000000)
85   bb.1:
86     successors: %bb.2(0x40000000), %bb.3(0x40000000)
88     S_CBRANCH_VCCZ %bb.3, implicit $vcc
89     S_BRANCH %bb.2
91   bb.2:
92     successors: %bb.3(0x80000000)
94   bb.3:
95     successors: %bb.4(0x40000000), %bb.6(0x40000000)
97     S_CBRANCH_EXECZ %bb.6, implicit $exec
98     S_BRANCH %bb.4
100   bb.4:
101     successors: %bb.5(0x04000000), %bb.4(0x7c000000)
103     S_NOP 0
104     S_NOP 0
105     S_NOP 0
106     S_NOP 0
107     S_NOP 0
108     S_NOP 0
109     S_NOP 0
110     S_NOP 0
111     S_NOP 0
112     S_NOP 0
113     S_NOP 0
114     S_CBRANCH_EXECZ %bb.4, implicit $exec
116   bb.5:
117     successors: %bb.6(0x80000000)
119   bb.6:
120     successors: %bb.7(0x04000000), %bb.1(0x7c000000)
122     S_CBRANCH_VCCZ %bb.1, implicit $vcc
124   bb.7:
125     S_ENDPGM 0