@@ -117,17 +117,16 @@ switch.1:
117
117
ret i32 %phi
118
118
}
119
119
120
- ; TODO: Determine that the default destination is dead.
121
120
define i32 @test_local_range (ptr %p ) {
122
121
; CHECK-LABEL: @test_local_range(
123
122
; CHECK-NEXT: [[X:%.*]] = load i32, ptr [[P:%.*]], align 4, !range [[RNG0]]
124
- ; CHECK-NEXT: switch i32 [[X]], label [[SWITCH_DEFAULT :%.*]] [
123
+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT_UNREACHABLE :%.*]] [
125
124
; CHECK-NEXT: i32 0, label [[SWITCH_0:%.*]]
126
125
; CHECK-NEXT: i32 1, label [[SWITCH_1:%.*]]
127
126
; CHECK-NEXT: i32 2, label [[SWITCH_2:%.*]]
128
127
; CHECK-NEXT: ]
129
- ; CHECK: switch. default:
130
- ; CHECK-NEXT: ret i32 -1
128
+ ; CHECK: default.unreachable :
129
+ ; CHECK-NEXT: unreachable
131
130
; CHECK: switch.0:
132
131
; CHECK-NEXT: ret i32 0
133
132
; CHECK: switch.1:
@@ -163,14 +162,14 @@ switch.3:
163
162
define i32 @test_duplicate_successors (ptr %p ) {
164
163
; CHECK-LABEL: @test_duplicate_successors(
165
164
; CHECK-NEXT: [[X:%.*]] = load i32, ptr [[P:%.*]], align 4, !range [[RNG0]]
166
- ; CHECK-NEXT: switch i32 [[X]], label [[SWITCH_DEFAULT :%.*]] [
165
+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT_UNREACHABLE :%.*]] [
167
166
; CHECK-NEXT: i32 0, label [[SWITCH_0:%.*]]
168
167
; CHECK-NEXT: i32 1, label [[SWITCH_0]]
169
168
; CHECK-NEXT: i32 2, label [[SWITCH_1:%.*]]
170
169
; CHECK-NEXT: i32 3, label [[SWITCH_1]]
171
170
; CHECK-NEXT: ]
172
- ; CHECK: switch. default:
173
- ; CHECK-NEXT: ret i32 -1
171
+ ; CHECK: default.unreachable :
172
+ ; CHECK-NEXT: unreachable
174
173
; CHECK: switch.0:
175
174
; CHECK-NEXT: ret i32 0
176
175
; CHECK: switch.1:
@@ -203,13 +202,13 @@ switch.2:
203
202
; range information.
204
203
define internal i32 @test_ip_range (i32 %x ) {
205
204
; CHECK-LABEL: @test_ip_range(
206
- ; CHECK-NEXT: switch i32 [[X:%.*]], label [[SWITCH_DEFAULT :%.*]] [
205
+ ; CHECK-NEXT: switch i32 [[X:%.*]], label [[DEFAULT_UNREACHABLE :%.*]] [
207
206
; CHECK-NEXT: i32 3, label [[SWITCH_3:%.*]]
208
207
; CHECK-NEXT: i32 1, label [[SWITCH_1:%.*]]
209
208
; CHECK-NEXT: i32 2, label [[SWITCH_2:%.*]]
210
209
; CHECK-NEXT: ], !prof [[PROF1:![0-9]+]]
211
- ; CHECK: switch. default:
212
- ; CHECK-NEXT: ret i32 -1
210
+ ; CHECK: default.unreachable :
211
+ ; CHECK-NEXT: unreachable
213
212
; CHECK: switch.1:
214
213
; CHECK-NEXT: ret i32 1
215
214
; CHECK: switch.2:
@@ -242,8 +241,8 @@ switch.3:
242
241
243
242
define void @call_test_ip_range () {
244
243
; CHECK-LABEL: @call_test_ip_range(
245
- ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @test_ip_range(i32 1)
246
- ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @test_ip_range(i32 3)
244
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @test_ip_range(i32 1), !range [[RNG2:![0-9]+]]
245
+ ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @test_ip_range(i32 3), !range [[RNG2]]
247
246
; CHECK-NEXT: ret void
248
247
;
249
248
call i32 @test_ip_range (i32 1 )
@@ -309,7 +308,7 @@ define i32 @test_default_unreachable_by_dom_cond(i32 %x) {
309
308
; CHECK-NEXT: [[OR_COND:%.*]] = icmp ult i32 [[X:%.*]], 4
310
309
; CHECK-NEXT: br i1 [[OR_COND]], label [[IF_THEN:%.*]], label [[RETURN:%.*]]
311
310
; CHECK: if.then:
312
- ; CHECK-NEXT: switch i32 [[X]], label [[SW_EPILOG :%.*]] [
311
+ ; CHECK-NEXT: switch i32 [[X]], label [[DEFAULT_UNREACHABLE :%.*]] [
313
312
; CHECK-NEXT: i32 0, label [[SW_BB:%.*]]
314
313
; CHECK-NEXT: i32 1, label [[SW_BB2:%.*]]
315
314
; CHECK-NEXT: i32 2, label [[SW_BB4:%.*]]
@@ -327,11 +326,10 @@ define i32 @test_default_unreachable_by_dom_cond(i32 %x) {
327
326
; CHECK: sw.bb6:
328
327
; CHECK-NEXT: [[CALL7:%.*]] = tail call i32 @g(i32 5)
329
328
; CHECK-NEXT: br label [[RETURN]]
330
- ; CHECK: sw.epilog:
331
- ; CHECK-NEXT: call void @foo()
332
- ; CHECK-NEXT: br label [[RETURN]]
329
+ ; CHECK: default.unreachable:
330
+ ; CHECK-NEXT: unreachable
333
331
; CHECK: return:
334
- ; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[CALL7]], [[SW_BB6]] ], [ [[CALL5]], [[SW_BB4]] ], [ [[CALL3]], [[SW_BB2]] ], [ [[CALL]], [[SW_BB]] ], [ -23, [[SW_EPILOG]] ], [ -23, [[ ENTRY:%.*]] ]
332
+ ; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[CALL7]], [[SW_BB6]] ], [ [[CALL5]], [[SW_BB4]] ], [ [[CALL3]], [[SW_BB2]] ], [ [[CALL]], [[SW_BB]] ], [ -23, [[ENTRY:%.*]] ]
335
333
; CHECK-NEXT: ret i32 [[RETVAL_0]]
336
334
;
337
335
entry:
0 commit comments