Skip to content

Commit 3a063f5

Browse files
committed
[NFC][CVP] Add one switch testcase
1 parent 5ca250a commit 3a063f5

File tree

1 file changed

+34
-0
lines changed
  • llvm/test/Transforms/CorrelatedValuePropagation

1 file changed

+34
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/basic.ll

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,40 @@ unreachable:
377377
ret void
378378
}
379379

380+
define i32 @switch_range(i32 %cond) {
381+
; CHECK-LABEL: @switch_range(
382+
; CHECK-NEXT: entry:
383+
; CHECK-NEXT: [[S:%.*]] = urem i32 [[COND:%.*]], 3
384+
; CHECK-NEXT: [[S1:%.*]] = add nuw nsw i32 [[S]], 1
385+
; CHECK-NEXT: switch i32 [[S1]], label [[UNREACHABLE:%.*]] [
386+
; CHECK-NEXT: i32 1, label [[EXIT1:%.*]]
387+
; CHECK-NEXT: i32 2, label [[EXIT2:%.*]]
388+
; CHECK-NEXT: i32 3, label [[EXIT1]]
389+
; CHECK-NEXT: ]
390+
; CHECK: exit1:
391+
; CHECK-NEXT: ret i32 1
392+
; CHECK: exit2:
393+
; CHECK-NEXT: ret i32 2
394+
; CHECK: unreachable:
395+
; CHECK-NEXT: ret i32 0
396+
;
397+
entry:
398+
%s = urem i32 %cond, 3
399+
%s1 = add i32 %s, 1
400+
switch i32 %s1, label %unreachable [
401+
i32 1, label %exit1
402+
i32 2, label %exit2
403+
i32 3, label %exit1
404+
]
405+
406+
exit1:
407+
ret i32 1
408+
exit2:
409+
ret i32 2
410+
unreachable:
411+
ret i32 0
412+
}
413+
380414
define i1 @arg_attribute(i8* nonnull %a) {
381415
; CHECK-LABEL: @arg_attribute(
382416
; CHECK-NEXT: ret i1 false

0 commit comments

Comments
 (0)