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:
Kalle Raiskila 2011-10-13 11:40:03 +00:00
parent 4e68054b20
commit 898f336c51
2 changed files with 10 additions and 8 deletions

View File

@ -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:

View File

@ -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
}