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
diff --git a/lib/Target/CellSPU/SPUInstrInfo.td b/lib/Target/CellSPU/SPUInstrInfo.td
index aa6d02c..f76ebd7 100644
--- a/lib/Target/CellSPU/SPUInstrInfo.td
+++ b/lib/Target/CellSPU/SPUInstrInfo.td
@@ -3467,8 +3467,10 @@
         [/* 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:
diff --git a/test/CodeGen/CellSPU/jumptable.ll b/test/CodeGen/CellSPU/jumptable.ll
index 87376ef..66c2fde 100644
--- a/test/CodeGen/CellSPU/jumptable.ll
+++ b/test/CodeGen/CellSPU/jumptable.ll
@@ -4,18 +4,18 @@
 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
 }