File tree Expand file tree Collapse file tree 1 file changed +53
-0
lines changed
llvm/test/Transforms/CorrelatedValuePropagation Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Original file line number Diff line number Diff line change @@ -308,6 +308,59 @@ default:
308
308
ret i8 123
309
309
}
310
310
311
+ define i8 @ucmp_switch_callsite_range (i32 %x , i32 %y ) {
312
+ ; CHECK-LABEL: @ucmp_switch_callsite_range(
313
+ ; CHECK-NEXT: [[CMP:%.*]] = call range(i8 -2, 3) i8 @llvm.ucmp.i8.i32(i32 [[X:%.*]], i32 [[Y:%.*]])
314
+ ; CHECK-NEXT: switch i8 [[CMP]], label [[DEFAULT_UNREACHABLE:%.*]] [
315
+ ; CHECK-NEXT: i8 -2, label [[BB_NEG2:%.*]]
316
+ ; CHECK-NEXT: i8 -1, label [[BB_NEG1:%.*]]
317
+ ; CHECK-NEXT: i8 0, label [[BB_0:%.*]]
318
+ ; CHECK-NEXT: i8 1, label [[BB_1:%.*]]
319
+ ; CHECK-NEXT: i8 2, label [[BB_2:%.*]]
320
+ ; CHECK-NEXT: ]
321
+ ; CHECK: bb.neg2:
322
+ ; CHECK-NEXT: ret i8 -2
323
+ ; CHECK: bb.neg1:
324
+ ; CHECK-NEXT: ret i8 -1
325
+ ; CHECK: bb.0:
326
+ ; CHECK-NEXT: ret i8 0
327
+ ; CHECK: bb.1:
328
+ ; CHECK-NEXT: ret i8 1
329
+ ; CHECK: bb.2:
330
+ ; CHECK-NEXT: ret i8 2
331
+ ; CHECK: default.unreachable:
332
+ ; CHECK-NEXT: unreachable
333
+ ; CHECK: default:
334
+ ; CHECK-NEXT: ret i8 123
335
+ ;
336
+ %cmp = call range(i8 -2 , 3 ) i8 @llvm.ucmp (i32 %x , i32 %y )
337
+ switch i8 %cmp , label %default [
338
+ i8 -2 , label %bb.neg2
339
+ i8 -1 , label %bb.neg1
340
+ i8 0 , label %bb.0
341
+ i8 1 , label %bb.1
342
+ i8 2 , label %bb.2
343
+ ]
344
+
345
+ bb.neg2:
346
+ ret i8 -2
347
+
348
+ bb.neg1:
349
+ ret i8 -1
350
+
351
+ bb.0 :
352
+ ret i8 0
353
+
354
+ bb.1 :
355
+ ret i8 1
356
+
357
+ bb.2 :
358
+ ret i8 2
359
+
360
+ default:
361
+ ret i8 123
362
+ }
363
+
311
364
define i8 @scmp_switch (i32 %x , i32 %y ) {
312
365
; CHECK-LABEL: @scmp_switch(
313
366
; CHECK-NEXT: [[CMP:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[X:%.*]], i32 [[Y:%.*]])
You can’t perform that action at this time.
0 commit comments