1
- ; RUN: llc -max-registers-for-gc-values=256 -verify-machineinstrs -stop-after twoaddressinstruction < %s | FileCheck --check-prefixes CHECK,CHECK-LV %s
2
- ; RUN: llc -max-registers-for-gc-values=256 -verify-machineinstrs -stop-after twoaddressinstruction -early-live-intervals < %s | FileCheck --check-prefixes CHECK,CHECK-LIS %s
1
+ ; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2
+ ; RUN: llc -max-registers-for-gc-values=256 -verify-machineinstrs -stop-after twoaddressinstruction < %s | FileCheck --check-prefix=CHECK-LV %s
3
+ ; RUN: llc -max-registers-for-gc-values=256 -verify-machineinstrs -stop-after twoaddressinstruction -early-live-intervals < %s | FileCheck --check-prefix=CHECK-LIS %s
3
4
4
5
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2"
5
6
target triple = "x86_64-unknown-linux-gnu"
@@ -10,26 +11,54 @@ declare void @bar(ptr addrspace(1)) gc "statepoint-example"
10
11
declare ptr @fake_personality_function ()
11
12
12
13
; Simplest possible test demonstrating the problem
13
-
14
- ; CHECK-LABEL: name: test
15
- ; CHECK: bb.0
16
- ; CHECK-LV: %0:gr64 = COPY killed $rdi
17
- ; CHECK-LIS: %0:gr64 = COPY $rdi
18
- ; CHECK: %1:gr64 = COPY %0
19
- ; CHECK: %1:gr64 = STATEPOINT 2, 5, 0, undef %2:gr64, 2, 0, 2, 0, 2, 0, 2, 1, %1(tied-def 0), 2, 0, 2, 1, 0, 0
20
- ; CHECK-LV: TEST64rr killed %0, %0, implicit-def $eflags
21
- ; CHECK-LIS: TEST64rr %0, %0, implicit-def $eflags
22
- ; CHECK: JCC_1 %bb.2, 4, implicit killed $eflags
23
- ; CHECK: JMP_1 %bb.1
24
- ; CHECK: bb.1
25
- ; CHECK-LV: $rdi = COPY killed %1
26
- ; CHECK-LV: STATEPOINT 2, 5, 1, undef %3:gr64, killed $rdi, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0
27
- ; CHECK-LIS: $rdi = COPY %1
28
- ; CHECK-LIS: STATEPOINT 2, 5, 1, undef %3:gr64, $rdi, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0
29
- ; CHECK: RET 0
30
- ; CHECK: bb.2
31
- ; CHECK: RET 0
32
14
define void @test (ptr addrspace (1 ) %a ) gc "statepoint-example" {
15
+ ; CHECK-LV-LABEL: name: test
16
+ ; CHECK-LV: bb.0.entry:
17
+ ; CHECK-LV-NEXT: successors: %bb.2(0x30000000), %bb.1(0x50000000)
18
+ ; CHECK-LV-NEXT: liveins: $rdi
19
+ ; CHECK-LV-NEXT: {{ $}}
20
+ ; CHECK-LV-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY killed $rdi
21
+ ; CHECK-LV-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
22
+ ; CHECK-LV-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY [[COPY]]
23
+ ; CHECK-LV-NEXT: [[COPY1:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 0, undef %2:gr64, 2, 0, 2, 0, 2, 0, 2, 1, [[COPY1]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp
24
+ ; CHECK-LV-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
25
+ ; CHECK-LV-NEXT: TEST64rr killed [[COPY]], [[COPY]], implicit-def $eflags
26
+ ; CHECK-LV-NEXT: JCC_1 %bb.2, 4, implicit killed $eflags
27
+ ; CHECK-LV-NEXT: JMP_1 %bb.1
28
+ ; CHECK-LV-NEXT: {{ $}}
29
+ ; CHECK-LV-NEXT: bb.1.not_zero:
30
+ ; CHECK-LV-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
31
+ ; CHECK-LV-NEXT: $rdi = COPY killed [[COPY1]]
32
+ ; CHECK-LV-NEXT: STATEPOINT 2, 5, 1, undef %3:gr64, killed $rdi, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_64, implicit-def $rsp, implicit-def $ssp
33
+ ; CHECK-LV-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
34
+ ; CHECK-LV-NEXT: RET 0
35
+ ; CHECK-LV-NEXT: {{ $}}
36
+ ; CHECK-LV-NEXT: bb.2.zero:
37
+ ; CHECK-LV-NEXT: RET 0
38
+ ;
39
+ ; CHECK-LIS-LABEL: name: test
40
+ ; CHECK-LIS: bb.0.entry:
41
+ ; CHECK-LIS-NEXT: successors: %bb.2(0x30000000), %bb.1(0x50000000)
42
+ ; CHECK-LIS-NEXT: liveins: $rdi
43
+ ; CHECK-LIS-NEXT: {{ $}}
44
+ ; CHECK-LIS-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
45
+ ; CHECK-LIS-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
46
+ ; CHECK-LIS-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY [[COPY]]
47
+ ; CHECK-LIS-NEXT: [[COPY1:%[0-9]+]]:gr64 = STATEPOINT 2, 5, 0, undef %2:gr64, 2, 0, 2, 0, 2, 0, 2, 1, [[COPY1]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp
48
+ ; CHECK-LIS-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
49
+ ; CHECK-LIS-NEXT: TEST64rr [[COPY]], [[COPY]], implicit-def $eflags
50
+ ; CHECK-LIS-NEXT: JCC_1 %bb.2, 4, implicit killed $eflags
51
+ ; CHECK-LIS-NEXT: JMP_1 %bb.1
52
+ ; CHECK-LIS-NEXT: {{ $}}
53
+ ; CHECK-LIS-NEXT: bb.1.not_zero:
54
+ ; CHECK-LIS-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
55
+ ; CHECK-LIS-NEXT: $rdi = COPY [[COPY1]]
56
+ ; CHECK-LIS-NEXT: STATEPOINT 2, 5, 1, undef %3:gr64, $rdi, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, csr_64, implicit-def $rsp, implicit-def $ssp
57
+ ; CHECK-LIS-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
58
+ ; CHECK-LIS-NEXT: RET 0
59
+ ; CHECK-LIS-NEXT: {{ $}}
60
+ ; CHECK-LIS-NEXT: bb.2.zero:
61
+ ; CHECK-LIS-NEXT: RET 0
33
62
entry:
34
63
%not7 = icmp eq ptr addrspace (1 ) %a , null
35
64
%statepoint_token1745 = call token (i64 , i32 , ptr , i32 , i32 , ...) @llvm.experimental.gc.statepoint.p0 (i64 2 , i32 5 , ptr nonnull elementtype(void ()) @foo , i32 0 , i32 0 , i32 0 , i32 0 ) [ "deopt" (), "gc-live" (ptr addrspace (1 ) %a ) ]
@@ -45,28 +74,138 @@ zero:
45
74
}
46
75
47
76
; A bit more complex test, where both registers are used in same successor BB
48
-
49
- ; CHECK-LABEL: name: test2
50
- ; CHECK: bb.2
51
- ; CHECK: %1:gr64 = STATEPOINT 2882400000, 0, 0, undef %11:gr64, 2, 0, 2, 0, 2, 0, 2, 1, %1(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64
52
- ; CHECK: %10:gr64 = COPY %1
53
- ; CHECK: %10:gr64 = STATEPOINT 2882400000, 0, 0, undef %13:gr64, 2, 0, 2, 0, 2, 0, 2, 1, %10(tied-def 0), 2, 0, 2, 1, 0, 0, csr_64
54
- ; CHECK: JMP_1 %bb.3
55
- ; CHECK: bb.3
56
- ; CHECK: %18:gr8 = COPY %17.sub_8bit
57
- ; CHECK-LV: TEST8rr killed %18, %18, implicit-def $eflags
58
- ; CHECK-LIS: TEST8rr %18, %18, implicit-def $eflags
59
- ; CHECK: JCC_1 %bb.5, 5, implicit killed $eflags
60
- ; CHECK: JMP_1 %bb.4
61
- ; CHECK: bb.4
62
- ; CHECK: bb.5
63
- ; CHECK: %3:gr64 = COPY %10
64
- ; CHECK: %4:gr64 = COPY killed %10
65
- ; CHECK: %4:gr64 = nuw ADD64ri32 %4, 8, implicit-def dead $eflags
66
- ; CHECK: TEST64rr killed %1, %1, implicit-def $eflags
67
- ; CHECK: JCC_1 %bb.1, 5, implicit killed $eflags
68
- ; CHECK: JMP_1 %bb.6
69
77
define void @test2 (ptr addrspace (1 ) %this , i32 %0 , ptr addrspace (1 ) %p0 , ptr addrspace (1 ) %p1 ) gc "statepoint-example" personality ptr @fake_personality_function {
78
+ ; CHECK-LV-LABEL: name: test2
79
+ ; CHECK-LV: bb.0.preheader:
80
+ ; CHECK-LV-NEXT: successors: %bb.1(0x80000000)
81
+ ; CHECK-LV-NEXT: liveins: $rdx, $rcx
82
+ ; CHECK-LV-NEXT: {{ $}}
83
+ ; CHECK-LV-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY killed $rcx
84
+ ; CHECK-LV-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY killed $rdx
85
+ ; CHECK-LV-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
86
+ ; CHECK-LV-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY killed [[COPY1]]
87
+ ; CHECK-LV-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY killed [[COPY]]
88
+ ; CHECK-LV-NEXT: {{ $}}
89
+ ; CHECK-LV-NEXT: bb.1.loop.head:
90
+ ; CHECK-LV-NEXT: successors: %bb.6(0x04000000), %bb.2(0x7c000000)
91
+ ; CHECK-LV-NEXT: {{ $}}
92
+ ; CHECK-LV-NEXT: [[COPY4:%[0-9]+]]:gr64 = COPY killed [[COPY3]]
93
+ ; CHECK-LV-NEXT: [[COPY5:%[0-9]+]]:gr64 = COPY killed [[COPY2]]
94
+ ; CHECK-LV-NEXT: TEST64rr killed [[COPY5]], [[COPY5]], implicit-def $eflags
95
+ ; CHECK-LV-NEXT: JCC_1 %bb.6, 5, implicit killed $eflags
96
+ ; CHECK-LV-NEXT: JMP_1 %bb.2
97
+ ; CHECK-LV-NEXT: {{ $}}
98
+ ; CHECK-LV-NEXT: bb.2.BB3:
99
+ ; CHECK-LV-NEXT: successors: %bb.3(0x7ffff800), %bb.7(0x00000800)
100
+ ; CHECK-LV-NEXT: {{ $}}
101
+ ; CHECK-LV-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
102
+ ; CHECK-LV-NEXT: [[COPY4:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 0, undef %11:gr64, 2, 0, 2, 0, 2, 0, 2, 1, [[COPY4]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp, implicit-def dead $rax
103
+ ; CHECK-LV-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
104
+ ; CHECK-LV-NEXT: EH_LABEL <mcsymbol >
105
+ ; CHECK-LV-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
106
+ ; CHECK-LV-NEXT: [[COPY6:%[0-9]+]]:gr64 = COPY [[COPY4]]
107
+ ; CHECK-LV-NEXT: [[COPY6:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 0, undef %13:gr64, 2, 0, 2, 0, 2, 0, 2, 1, [[COPY6]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp, implicit-def dead $rax
108
+ ; CHECK-LV-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
109
+ ; CHECK-LV-NEXT: EH_LABEL <mcsymbol >
110
+ ; CHECK-LV-NEXT: JMP_1 %bb.3
111
+ ; CHECK-LV-NEXT: {{ $}}
112
+ ; CHECK-LV-NEXT: bb.3.BB2:
113
+ ; CHECK-LV-NEXT: successors: %bb.4(0x40000000), %bb.5(0x40000000)
114
+ ; CHECK-LV-NEXT: {{ $}}
115
+ ; CHECK-LV-NEXT: [[COPY7:%[0-9]+]]:gr8 = COPY [[MOV32r0_]].sub_8bit
116
+ ; CHECK-LV-NEXT: TEST8rr killed [[COPY7]], [[COPY7]], implicit-def $eflags
117
+ ; CHECK-LV-NEXT: JCC_1 %bb.5, 5, implicit killed $eflags
118
+ ; CHECK-LV-NEXT: JMP_1 %bb.4
119
+ ; CHECK-LV-NEXT: {{ $}}
120
+ ; CHECK-LV-NEXT: bb.4.BB4:
121
+ ; CHECK-LV-NEXT: successors: %bb.5(0x80000000)
122
+ ; CHECK-LV-NEXT: {{ $}}
123
+ ; CHECK-LV-NEXT: bb.5.tail:
124
+ ; CHECK-LV-NEXT: successors: %bb.6(0x04000000), %bb.1(0x7c000000)
125
+ ; CHECK-LV-NEXT: {{ $}}
126
+ ; CHECK-LV-NEXT: [[COPY8:%[0-9]+]]:gr64 = COPY [[COPY6]]
127
+ ; CHECK-LV-NEXT: [[COPY9:%[0-9]+]]:gr64 = COPY killed [[COPY6]]
128
+ ; CHECK-LV-NEXT: [[COPY9:%[0-9]+]]:gr64 = nuw ADD64ri32 [[COPY9]], 8, implicit-def dead $eflags
129
+ ; CHECK-LV-NEXT: TEST64rr killed [[COPY4]], [[COPY4]], implicit-def $eflags
130
+ ; CHECK-LV-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY killed [[COPY9]]
131
+ ; CHECK-LV-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY killed [[COPY8]]
132
+ ; CHECK-LV-NEXT: JCC_1 %bb.1, 5, implicit killed $eflags
133
+ ; CHECK-LV-NEXT: JMP_1 %bb.6
134
+ ; CHECK-LV-NEXT: {{ $}}
135
+ ; CHECK-LV-NEXT: bb.6.BB1:
136
+ ; CHECK-LV-NEXT: RET 0
137
+ ; CHECK-LV-NEXT: {{ $}}
138
+ ; CHECK-LV-NEXT: bb.7.BB6 (landing-pad):
139
+ ; CHECK-LV-NEXT: liveins: $rax, $rdx
140
+ ; CHECK-LV-NEXT: {{ $}}
141
+ ; CHECK-LV-NEXT: EH_LABEL <mcsymbol >
142
+ ; CHECK-LV-NEXT: RET 0
143
+ ;
144
+ ; CHECK-LIS-LABEL: name: test2
145
+ ; CHECK-LIS: bb.0.preheader:
146
+ ; CHECK-LIS-NEXT: successors: %bb.1(0x80000000)
147
+ ; CHECK-LIS-NEXT: liveins: $rdx, $rcx
148
+ ; CHECK-LIS-NEXT: {{ $}}
149
+ ; CHECK-LIS-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rcx
150
+ ; CHECK-LIS-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rdx
151
+ ; CHECK-LIS-NEXT: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
152
+ ; CHECK-LIS-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY [[COPY1]]
153
+ ; CHECK-LIS-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY]]
154
+ ; CHECK-LIS-NEXT: {{ $}}
155
+ ; CHECK-LIS-NEXT: bb.1.loop.head:
156
+ ; CHECK-LIS-NEXT: successors: %bb.6(0x04000000), %bb.2(0x7c000000)
157
+ ; CHECK-LIS-NEXT: {{ $}}
158
+ ; CHECK-LIS-NEXT: [[COPY4:%[0-9]+]]:gr64 = COPY [[COPY3]]
159
+ ; CHECK-LIS-NEXT: [[COPY5:%[0-9]+]]:gr64 = COPY [[COPY2]]
160
+ ; CHECK-LIS-NEXT: TEST64rr [[COPY5]], [[COPY5]], implicit-def $eflags
161
+ ; CHECK-LIS-NEXT: JCC_1 %bb.6, 5, implicit killed $eflags
162
+ ; CHECK-LIS-NEXT: JMP_1 %bb.2
163
+ ; CHECK-LIS-NEXT: {{ $}}
164
+ ; CHECK-LIS-NEXT: bb.2.BB3:
165
+ ; CHECK-LIS-NEXT: successors: %bb.3(0x7ffff800), %bb.7(0x00000800)
166
+ ; CHECK-LIS-NEXT: {{ $}}
167
+ ; CHECK-LIS-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
168
+ ; CHECK-LIS-NEXT: [[COPY4:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 0, undef %11:gr64, 2, 0, 2, 0, 2, 0, 2, 1, [[COPY4]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp, implicit-def dead $rax
169
+ ; CHECK-LIS-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
170
+ ; CHECK-LIS-NEXT: EH_LABEL <mcsymbol >
171
+ ; CHECK-LIS-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
172
+ ; CHECK-LIS-NEXT: [[COPY6:%[0-9]+]]:gr64 = COPY [[COPY4]]
173
+ ; CHECK-LIS-NEXT: [[COPY6:%[0-9]+]]:gr64 = STATEPOINT 2882400000, 0, 0, undef %13:gr64, 2, 0, 2, 0, 2, 0, 2, 1, [[COPY6]](tied-def 0), 2, 0, 2, 1, 0, 0, csr_64, implicit-def $rsp, implicit-def $ssp, implicit-def dead $rax
174
+ ; CHECK-LIS-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
175
+ ; CHECK-LIS-NEXT: EH_LABEL <mcsymbol >
176
+ ; CHECK-LIS-NEXT: JMP_1 %bb.3
177
+ ; CHECK-LIS-NEXT: {{ $}}
178
+ ; CHECK-LIS-NEXT: bb.3.BB2:
179
+ ; CHECK-LIS-NEXT: successors: %bb.4(0x40000000), %bb.5(0x40000000)
180
+ ; CHECK-LIS-NEXT: {{ $}}
181
+ ; CHECK-LIS-NEXT: [[COPY7:%[0-9]+]]:gr8 = COPY [[MOV32r0_]].sub_8bit
182
+ ; CHECK-LIS-NEXT: TEST8rr [[COPY7]], [[COPY7]], implicit-def $eflags
183
+ ; CHECK-LIS-NEXT: JCC_1 %bb.5, 5, implicit killed $eflags
184
+ ; CHECK-LIS-NEXT: JMP_1 %bb.4
185
+ ; CHECK-LIS-NEXT: {{ $}}
186
+ ; CHECK-LIS-NEXT: bb.4.BB4:
187
+ ; CHECK-LIS-NEXT: successors: %bb.5(0x80000000)
188
+ ; CHECK-LIS-NEXT: {{ $}}
189
+ ; CHECK-LIS-NEXT: bb.5.tail:
190
+ ; CHECK-LIS-NEXT: successors: %bb.6(0x04000000), %bb.1(0x7c000000)
191
+ ; CHECK-LIS-NEXT: {{ $}}
192
+ ; CHECK-LIS-NEXT: [[COPY8:%[0-9]+]]:gr64 = COPY [[COPY6]]
193
+ ; CHECK-LIS-NEXT: [[COPY9:%[0-9]+]]:gr64 = COPY killed [[COPY6]]
194
+ ; CHECK-LIS-NEXT: [[COPY9:%[0-9]+]]:gr64 = nuw ADD64ri32 [[COPY9]], 8, implicit-def dead $eflags
195
+ ; CHECK-LIS-NEXT: TEST64rr killed [[COPY4]], [[COPY4]], implicit-def $eflags
196
+ ; CHECK-LIS-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY [[COPY9]]
197
+ ; CHECK-LIS-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY8]]
198
+ ; CHECK-LIS-NEXT: JCC_1 %bb.1, 5, implicit killed $eflags
199
+ ; CHECK-LIS-NEXT: JMP_1 %bb.6
200
+ ; CHECK-LIS-NEXT: {{ $}}
201
+ ; CHECK-LIS-NEXT: bb.6.BB1:
202
+ ; CHECK-LIS-NEXT: RET 0
203
+ ; CHECK-LIS-NEXT: {{ $}}
204
+ ; CHECK-LIS-NEXT: bb.7.BB6 (landing-pad):
205
+ ; CHECK-LIS-NEXT: liveins: $rax, $rdx
206
+ ; CHECK-LIS-NEXT: {{ $}}
207
+ ; CHECK-LIS-NEXT: EH_LABEL <mcsymbol >
208
+ ; CHECK-LIS-NEXT: RET 0
70
209
preheader:
71
210
br label %loop.head
72
211
0 commit comments