1
1
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2
- # RUN: llc -run-pass=livevars, phi-node-elimination -verify-machineinstrs -mtriple=aarch64-linux-gnu -o - %s | FileCheck %s
2
+ # RUN: llc -run-pass=phi-node-elimination -mtriple=aarch64-linux-gnu -o - %s | FileCheck %s
3
3
4
4
# Verify that the original COPY in bb.1 is reappropriated as the PHI source in bb.2,
5
5
# instead of creating a new COPY with the same source register.
@@ -13,18 +13,18 @@ body: |
13
13
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
14
14
; CHECK-NEXT: liveins: $nzcv, $w0
15
15
; CHECK-NEXT: {{ $}}
16
- ; CHECK-NEXT: %a:gpr32 = COPY killed $w0
16
+ ; CHECK-NEXT: %a:gpr32 = COPY $w0
17
17
; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = IMPLICIT_DEF
18
- ; CHECK-NEXT: Bcc 8, %bb.2, implicit killed $nzcv
18
+ ; CHECK-NEXT: Bcc 8, %bb.2, implicit $nzcv
19
19
; CHECK-NEXT: {{ $}}
20
20
; CHECK-NEXT: bb.1:
21
21
; CHECK-NEXT: successors: %bb.2(0x80000000)
22
22
; CHECK-NEXT: {{ $}}
23
- ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = COPY killed %a
23
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = COPY %a
24
24
; CHECK-NEXT: {{ $}}
25
25
; CHECK-NEXT: bb.2:
26
- ; CHECK-NEXT: %c:gpr32 = COPY killed [[DEF]]
27
- ; CHECK-NEXT: dead %d:gpr32 = COPY killed %c
26
+ ; CHECK-NEXT: %c:gpr32 = COPY [[DEF]]
27
+ ; CHECK-NEXT: %d:gpr32 = COPY %c
28
28
bb.0:
29
29
liveins: $nzcv, $w0
30
30
%a:gpr32 = COPY $w0
@@ -46,16 +46,16 @@ body: |
46
46
; CHECK-NEXT: liveins: $nzcv, $w0
47
47
; CHECK-NEXT: {{ $}}
48
48
; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = IMPLICIT_DEF
49
- ; CHECK-NEXT: Bcc 8, %bb.2, implicit killed $nzcv
49
+ ; CHECK-NEXT: Bcc 8, %bb.2, implicit $nzcv
50
50
; CHECK-NEXT: {{ $}}
51
51
; CHECK-NEXT: bb.1:
52
52
; CHECK-NEXT: successors: %bb.2(0x80000000)
53
53
; CHECK-NEXT: {{ $}}
54
- ; CHECK-NEXT: dead $x0 = IMPLICIT_DEF implicit-def $w0
55
- ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = COPY killed $w0
54
+ ; CHECK-NEXT: $x0 = IMPLICIT_DEF
55
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr32 = COPY $w0
56
56
; CHECK-NEXT: {{ $}}
57
57
; CHECK-NEXT: bb.2:
58
- ; CHECK-NEXT: dead %b:gpr32 = COPY killed [[DEF]]
58
+ ; CHECK-NEXT: %b:gpr32 = COPY [[DEF]]
59
59
bb.0:
60
60
liveins: $nzcv, $w0
61
61
Bcc 8, %bb.2, implicit $nzcv
@@ -83,15 +83,15 @@ body: |
83
83
; CHECK-NEXT: bb.1:
84
84
; CHECK-NEXT: successors: %bb.2(0x80000000)
85
85
; CHECK-NEXT: {{ $}}
86
- ; CHECK-NEXT: dead [[DEF:%[0-9]+]]:gpr64 = IMPLICIT_DEF
87
- ; CHECK-NEXT: dead [[DEF1:%[0-9]+]]:gpr64 = IMPLICIT_DEF
86
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr64 = IMPLICIT_DEF
87
+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:gpr64 = IMPLICIT_DEF
88
88
; CHECK-NEXT: B %bb.2
89
89
; CHECK-NEXT: {{ $}}
90
90
; CHECK-NEXT: bb.2:
91
91
; CHECK-NEXT: successors: %bb.1(0x80000000)
92
92
; CHECK-NEXT: {{ $}}
93
- ; CHECK-NEXT: dead [[DEF2:%[0-9]+]]:gpr64 = IMPLICIT_DEF
94
- ; CHECK-NEXT: dead [[DEF3:%[0-9]+]]:gpr64 = IMPLICIT_DEF
93
+ ; CHECK-NEXT: [[DEF2:%[0-9]+]]:gpr64 = IMPLICIT_DEF
94
+ ; CHECK-NEXT: [[DEF3:%[0-9]+]]:gpr64 = IMPLICIT_DEF
95
95
; CHECK-NEXT: B %bb.1
96
96
bb.0:
97
97
liveins: $wzr, $xzr
@@ -117,77 +117,3 @@ body: |
117
117
118
118
...
119
119
120
- ---
121
- name : update_livevars
122
- tracksRegLiveness : true
123
- body : |
124
- ; CHECK-LABEL: name: update_livevars
125
- ; CHECK: bb.0:
126
- ; CHECK-NEXT: successors: %bb.1(0x80000000)
127
- ; CHECK-NEXT: liveins: $w0, $w1, $nzcv
128
- ; CHECK-NEXT: {{ $}}
129
- ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY killed $w0
130
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY killed $w1
131
- ; CHECK-NEXT: B %bb.1
132
- ; CHECK-NEXT: {{ $}}
133
- ; CHECK-NEXT: bb.1:
134
- ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
135
- ; CHECK-NEXT: liveins: $nzcv
136
- ; CHECK-NEXT: {{ $}}
137
- ; CHECK-NEXT: dead [[COPY2:%[0-9]+]]:gpr32 = COPY killed [[COPY1]]
138
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]]
139
- ; CHECK-NEXT: Bcc 1, %bb.1, implicit $nzcv
140
- ; CHECK-NEXT: {{ $}}
141
- ; CHECK-NEXT: bb.2:
142
- ; CHECK-NEXT: successors: %bb.1(0x80000000)
143
- ; CHECK-NEXT: liveins: $nzcv
144
- ; CHECK-NEXT: {{ $}}
145
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = IMPLICIT_DEF
146
- ; CHECK-NEXT: B %bb.1
147
- bb.0:
148
- successors: %bb.1
149
- liveins: $w0, $w1, $nzcv
150
-
151
- %0:gpr32 = COPY killed $w0
152
- %1:gpr32 = COPY killed $w1
153
- B %bb.1
154
-
155
- bb.1:
156
- successors: %bb.2, %bb.1
157
- liveins: $nzcv
158
-
159
- %2:gpr32 = PHI %3, %bb.2, %1, %bb.0, %3, %bb.1
160
- %3:gpr32 = COPY %0
161
- Bcc 1, %bb.1, implicit $nzcv
162
-
163
- bb.2:
164
- successors: %bb.1
165
- liveins: $nzcv
166
-
167
- B %bb.1
168
- ...
169
-
170
- ---
171
- name : copy_subreg
172
- tracksRegLiveness : true
173
- body : |
174
- ; CHECK-LABEL: name: copy_subreg
175
- ; CHECK: bb.0:
176
- ; CHECK-NEXT: successors: %bb.1(0x80000000)
177
- ; CHECK-NEXT: liveins: $x0
178
- ; CHECK-NEXT: {{ $}}
179
- ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY killed $x0
180
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY killed [[COPY]]
181
- ; CHECK-NEXT: {{ $}}
182
- ; CHECK-NEXT: bb.1:
183
- ; CHECK-NEXT: dead [[COPY2:%[0-9]+]]:gpr32 = COPY killed [[COPY1]].sub_32
184
- bb.0:
185
- successors: %bb.1
186
- liveins: $x0
187
-
188
- %0:gpr64 = COPY killed $x0
189
- %1:gpr64 = COPY killed %0
190
-
191
- bb.1:
192
- %2:gpr32 = PHI %1.sub_32, %bb.0
193
- ...
0 commit comments