# Test case with a simple PIC-style jump table where the register containing
# the jump table address is defined outside of the basic block containing the
# jump on register.
#
# One of the destinations of the jump table points past the end of the function
# similar to the code generated for __builtin_unreachable().
.text
.globl main
.type main, @function
main:
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
leaq .LJUMPTABLE(%rip), %rcx
.L13:
cmpl $3, %edi
ja .L2
movslq (%rcx,%rdi,4), %rax
addq %rcx, %rax
jmp *%rax
.L12:
movq %rdi, %rax
popq %rbx
.cfi_remember_state
.cfi_def_cfa_offset 8
ret
.L5:
.cfi_restore_state
addq $9, %rdi
jmp .L12
.L6:
addq $8, %rdi
jmp .L12
.L2:
addq $2, %rdi
jmp .L12
.LUNREACHABLE:
.cfi_endproc
.size main, .-main
.section .rodata
.align 4
.LJUMPTABLE:
.long .L2-.LJUMPTABLE
.long .L6-.LJUMPTABLE
.long .L5-.LJUMPTABLE
.long .LUNREACHABLE-.LJUMPTABLE