mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-14 17:06:38 +00:00
[SimplifyCFG] test for trunc condition (NFC)
This commit is contained in:
parent
8b40a09bf5
commit
4dd80b73b0
@ -84,6 +84,37 @@ final_right:
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @one_pred_trunc_cond(i8 %v0, i8 %v1) {
|
||||
; CHECK-LABEL: @one_pred_trunc_cond(
|
||||
; CHECK-NEXT: pred:
|
||||
; CHECK-NEXT: [[C0:%.*]] = icmp eq i8 [[V0:%.*]], 0
|
||||
; CHECK-NEXT: br i1 [[C0]], label [[DISPATCH:%.*]], label [[FINAL_RIGHT:%.*]]
|
||||
; CHECK: dispatch:
|
||||
; CHECK-NEXT: [[C1:%.*]] = trunc i8 [[V1:%.*]] to i1
|
||||
; CHECK-NEXT: br i1 [[C1]], label [[FINAL_LEFT:%.*]], label [[FINAL_RIGHT]]
|
||||
; CHECK: common.ret:
|
||||
; CHECK-NEXT: ret void
|
||||
; CHECK: final_left:
|
||||
; CHECK-NEXT: call void @sideeffect0()
|
||||
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
|
||||
; CHECK: final_right:
|
||||
; CHECK-NEXT: call void @sideeffect1()
|
||||
; CHECK-NEXT: br label [[COMMON_RET]]
|
||||
;
|
||||
pred:
|
||||
%c0 = icmp eq i8 %v0, 0
|
||||
br i1 %c0, label %dispatch, label %final_right
|
||||
dispatch:
|
||||
%c1 = trunc i8 %v1 to i1
|
||||
br i1 %c1, label %final_left, label %final_right
|
||||
final_left:
|
||||
call void @sideeffect0()
|
||||
ret void
|
||||
final_right:
|
||||
call void @sideeffect1()
|
||||
ret void
|
||||
}
|
||||
|
||||
; More complex case, there's an extra op that is safe to execute unconditionally.
|
||||
|
||||
define void @one_pred_with_extra_op(i8 %v0, i8 %v1) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user