Home | History | Annotate | Download | only in ARM
      1 ; RUN: llc <%s -mtriple=arm-unknown-linux-gnueabi -jump-table-type=single | FileCheck --check-prefix=ARM %s
      2 ; RUN: llc <%s -mtriple=thumb-unknown-linux-gnueabi -jump-table-type=single | FileCheck --check-prefix=THUMB %s
      3 
      4 define void @indirect_fun() unnamed_addr jumptable {
      5   ret void
      6 }
      7 define void ()* @get_fun() {
      8   ret void ()* @indirect_fun
      9 
     10 ; ARM:         ldr     r0, [[LABEL:.*]]
     11 ; ARM:         mov     pc, lr
     12 ; ARM: [[LABEL]]:
     13 ; ARM:         .long   __llvm_jump_instr_table_0_1
     14 
     15 ; THUMB:         ldr     r0, [[LABEL:.*]]
     16 ; THUMB:         bx      lr
     17 ; THUMB: [[LABEL]]:
     18 ; THUMB:         .long   __llvm_jump_instr_table_0_1
     19 }
     20 
     21 ; ARM:         .globl  __llvm_jump_instr_table_0_1
     22 ; ARM:         .align  3
     23 ; ARM:         .type   __llvm_jump_instr_table_0_1,%function
     24 ; ARM: __llvm_jump_instr_table_0_1:
     25 ; ARM:         b     indirect_fun(PLT)
     26 
     27 ; THUMB:         .globl  __llvm_jump_instr_table_0_1
     28 ; THUMB:         .align  3
     29 ; THUMB:         .thumb_func
     30 ; THUMB:         .type   __llvm_jump_instr_table_0_1,%function
     31 ; THUMB: __llvm_jump_instr_table_0_1:
     32 ; THUMB:         b     indirect_fun(PLT)
     33