Mark 'branch indirect' instruction as an indirect branch.
authorKalle Raiskila <kalle.raiskila@nokia.com>
Thu, 13 Oct 2011 11:40:03 +0000 (11:40 +0000)
committerKalle Raiskila <kalle.raiskila@nokia.com>
Thu, 13 Oct 2011 11:40:03 +0000 (11:40 +0000)
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

lib/Target/CellSPU/SPUInstrInfo.td
test/CodeGen/CellSPU/jumptable.ll

index aa6d02ce3ceaef3b980f791c3ca68a3239ff1cf6..f76ebd75bfef75920efce4b0cddb25c2c96c7d97 100644 (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:
index 87376ef6ed53fdf9a010c5ccbf0bb385f8e08cf7..66c2fdeb51fd4afe76aeb09d81a639c2003bc026 100644 (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
 }