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