mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 23:23:38 -04:00
[JumpThread] Do RAUW in case Cond folds to a constant in the CFG
Summary: [JumpThread] Do RAUW in case Cond folds to a constant in the CFG Reviewers: sanjoy Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32407 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301804 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -133,3 +133,60 @@ L3:
|
||||
ret void
|
||||
}
|
||||
|
||||
; Make sure we can do the RAUW for %add...
|
||||
;
|
||||
; CHECK-LABEL: @rauw_if_possible(
|
||||
; CHECK: call void @f4(i32 96)
|
||||
define void @rauw_if_possible(i32 %value) nounwind {
|
||||
entry:
|
||||
%cmp = icmp eq i32 %value, 32
|
||||
br i1 %cmp, label %L0, label %L3
|
||||
L0:
|
||||
call i32 @f2()
|
||||
call i32 @f2()
|
||||
%add = add i32 %value, 64
|
||||
switch i32 %add, label %L3 [
|
||||
i32 32, label %L1
|
||||
i32 96, label %L2
|
||||
]
|
||||
|
||||
L1:
|
||||
call void @f3()
|
||||
ret void
|
||||
L2:
|
||||
call void @f4(i32 %add)
|
||||
ret void
|
||||
L3:
|
||||
call void @f3()
|
||||
ret void
|
||||
}
|
||||
|
||||
; Make sure we can NOT do the RAUW for %add...
|
||||
;
|
||||
; CHECK-LABEL: @rauw_if_possible2(
|
||||
; CHECK: call void @f4(i32 %add)
|
||||
define void @rauw_if_possible2(i32 %value) nounwind {
|
||||
entry:
|
||||
%cmp = icmp eq i32 %value, 32
|
||||
%add = add i32 %value, 64
|
||||
br i1 %cmp, label %L0, label %L2
|
||||
L0:
|
||||
call i32 @f2()
|
||||
call i32 @f2()
|
||||
switch i32 %add, label %L3 [
|
||||
i32 32, label %L1
|
||||
i32 96, label %L2
|
||||
]
|
||||
|
||||
L1:
|
||||
call void @f3()
|
||||
ret void
|
||||
L2:
|
||||
call void @f4(i32 %add)
|
||||
ret void
|
||||
L3:
|
||||
call void @f3()
|
||||
ret void
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user