[AMDGPU] Add True16 register classes.
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / loop_header_nopred.mir
blobb7e1dfb2eda28c0cbb9e1f8166700e3c2d37c4b1
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -o - -run-pass=block-placement -mcpu=gfx1010 -mattr=-inst-fwd-prefetch-bug -verify-machineinstrs %s | FileCheck -check-prefixes=GFX10 %s
3 # RUN: llc -march=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   ; GFX11-LABEL: name: loop_header_nopred
47   ; GFX11: bb.0:
48   ; GFX11-NEXT:   successors: %bb.2(0x80000000)
49   ; GFX11-NEXT: {{  $}}
50   ; GFX11-NEXT:   S_BRANCH %bb.2
51   ; GFX11-NEXT: {{  $}}
52   ; GFX11-NEXT: bb.1:
53   ; GFX11-NEXT:   successors: %bb.7(0x04000000), %bb.2(0x7c000000)
54   ; GFX11-NEXT: {{  $}}
55   ; GFX11-NEXT:   S_CBRANCH_VCCNZ %bb.7, implicit $vcc_lo
56   ; GFX11-NEXT: {{  $}}
57   ; GFX11-NEXT: bb.2:
58   ; GFX11-NEXT:   successors: %bb.5(0x40000000), %bb.1(0x40000000)
59   ; GFX11-NEXT: {{  $}}
60   ; GFX11-NEXT:   S_CBRANCH_EXECZ %bb.1, implicit $exec
61   ; GFX11-NEXT: {{  $}}
62   ; GFX11-NEXT: bb.5:
63   ; GFX11-NEXT:   successors: %bb.1(0x04000000), %bb.5(0x7c000000)
64   ; GFX11-NEXT: {{  $}}
65   ; GFX11-NEXT:   S_NOP 0
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_CBRANCH_EXECZ %bb.5, implicit $exec
77   ; GFX11-NEXT:   S_BRANCH %bb.1
78   ; GFX11-NEXT: {{  $}}
79   ; GFX11-NEXT: bb.7:
80   ; GFX11-NEXT:   S_ENDPGM 0
81   bb.0:
82     successors: %bb.1(0x80000000)
84   bb.1:
85     successors: %bb.2(0x40000000), %bb.3(0x40000000)
87     S_CBRANCH_VCCZ %bb.3, implicit $vcc
88     S_BRANCH %bb.2
90   bb.2:
91     successors: %bb.3(0x80000000)
93   bb.3:
94     successors: %bb.4(0x40000000), %bb.6(0x40000000)
96     S_CBRANCH_EXECZ %bb.6, implicit $exec
97     S_BRANCH %bb.4
99   bb.4:
100     successors: %bb.5(0x04000000), %bb.4(0x7c000000)
102     S_NOP 0
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_CBRANCH_EXECZ %bb.4, implicit $exec
115   bb.5:
116     successors: %bb.6(0x80000000)
118   bb.6:
119     successors: %bb.7(0x04000000), %bb.1(0x7c000000)
121     S_CBRANCH_VCCZ %bb.1, implicit $vcc
123   bb.7:
124     S_ENDPGM 0