mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-25 04:39:51 +00:00
Mark 'branch indirect' instruction as an indirect branch.
Not having it confused assembly printing of jumptables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141862 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4e68054b20
commit
898f336c51
@ -3467,8 +3467,10 @@ let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in {
|
||||
[/* no pattern */]>;
|
||||
|
||||
// Indirect branch
|
||||
def BI:
|
||||
BIForm<0b00010101100, "bi\t$func", [(brind R32C:$func)]>;
|
||||
let isIndirectBranch = 1 in {
|
||||
def BI:
|
||||
BIForm<0b00010101100, "bi\t$func", [(brind R32C:$func)]>;
|
||||
}
|
||||
}
|
||||
|
||||
// Conditional branches:
|
||||
|
@ -4,18 +4,18 @@ define i32 @test(i32 %param) {
|
||||
entry:
|
||||
;CHECK: ai {{\$.}}, $3, -1
|
||||
;CHECK: clgti {{\$., \$.}}, 3
|
||||
;CHECK: brnz {{\$.}},.LBB0_2
|
||||
switch i32 %param, label %bb1 [
|
||||
i32 1, label %bb3
|
||||
;CHECK: brnz {{\$.}},.LBB0_
|
||||
switch i32 %param, label %bb2 [
|
||||
i32 1, label %bb1
|
||||
i32 2, label %bb2
|
||||
i32 3, label %bb3
|
||||
i32 4, label %bb1
|
||||
i32 4, label %bb2
|
||||
]
|
||||
|
||||
;CHECK-NOT: # BB#2
|
||||
bb1:
|
||||
ret i32 1
|
||||
bb2:
|
||||
ret i32 2
|
||||
bb3:
|
||||
ret i32 3
|
||||
ret i32 %param
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user