Skip to content

Commit bfc9e92

Browse files
committed
Add more tests
1 parent dd4fdf6 commit bfc9e92

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,38 @@ else:
218218
ret i32 %i1
219219
}
220220

221+
define i32 @wrapping_known_range_2(i8 range(i8 0, 6) %arg) {
222+
; CHECK-LABEL: @wrapping_known_range_2(
223+
; CHECK-NEXT: [[ARG_OFF:%.*]] = add i8 [[ARG:%.*]], -1
224+
; CHECK-NEXT: [[SWITCH:%.*]] = icmp ult i8 [[ARG_OFF]], 1
225+
; CHECK-NEXT: br i1 [[SWITCH]], label [[ELSE:%.*]], label [[IF:%.*]]
226+
; CHECK: common.ret:
227+
; CHECK-NEXT: [[COMMON_RET_OP:%.*]] = phi i32 [ [[I0:%.*]], [[IF]] ], [ [[I1:%.*]], [[ELSE]] ]
228+
; CHECK-NEXT: ret i32 [[COMMON_RET_OP]]
229+
; CHECK: if:
230+
; CHECK-NEXT: [[I0]] = call i32 @f(i32 0)
231+
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
232+
; CHECK: else:
233+
; CHECK-NEXT: [[I1]] = call i32 @f(i32 1)
234+
; CHECK-NEXT: br label [[COMMON_RET]]
235+
;
236+
switch i8 %arg, label %else [
237+
i8 0, label %if
238+
i8 2, label %if
239+
i8 3, label %if
240+
i8 4, label %if
241+
i8 5, label %if
242+
]
243+
244+
if:
245+
%i0 = call i32 @f(i32 0)
246+
ret i32 %i0
247+
248+
else:
249+
%i1 = call i32 @f(i32 1)
250+
ret i32 %i1
251+
}
252+
221253
define i32 @wrapping_range(i8 %arg) {
222254
; CHECK-LABEL: @wrapping_range(
223255
; CHECK-NEXT: [[ARG_OFF:%.*]] = add i8 [[ARG:%.*]], -1

0 commit comments

Comments
 (0)