[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / MC / AArch64 / jump-table.s
blobc4b879e6ef079c5779d02cf77574257bebe2aa55
1 // RUN: llvm-mc < %s -triple=aarch64-none-linux-gnu -filetype=obj | llvm-readobj -r | FileCheck %s
3 .file "<stdin>"
4 .text
5 .globl test_jumptable
6 .type test_jumptable,@function
7 test_jumptable: // @test_jumptable
8 .cfi_startproc
9 // %bb.0:
10 ubfx w1, w0, #0, #32
11 cmp w0, #4
12 b.hi .LBB0_3
13 // %bb.1:
14 adrp x0, .LJTI0_0
15 add x0, x0, #:lo12:.LJTI0_0
16 ldr x0, [x0, x1, lsl #3]
17 br x0
18 .LBB0_2: // %lbl1
19 movz x0, #1
20 ret
21 .LBB0_3: // %def
22 mov x0, xzr
23 ret
24 .LBB0_4: // %lbl2
25 movz x0, #2
26 ret
27 .LBB0_5: // %lbl3
28 movz x0, #4
29 ret
30 .LBB0_6: // %lbl4
31 movz x0, #8
32 ret
33 .Ltmp0:
34 .size test_jumptable, .Ltmp0-test_jumptable
35 .cfi_endproc
36 .section .rodata,"a",@progbits
37 .align 3
38 .LJTI0_0:
39 .xword .LBB0_2
40 .xword .LBB0_4
41 .xword .LBB0_5
42 .xword .LBB0_3
43 .xword .LBB0_6
47 // First make sure we get a page/lo12 pair in .text to pick up the jump-table
49 // CHECK: Relocations [
50 // CHECK: Section ({{[0-9]+}}) .rela.text {
51 // CHECK-NEXT: 0x{{[0-9,A-F]+}} R_AARCH64_ADR_PREL_PG_HI21 .rodata
52 // CHECK-NEXT: 0x{{[0-9,A-F]+}} R_AARCH64_ADD_ABS_LO12_NC .rodata
53 // CHECK: }
55 // Also check the targets in .rodata are relocated
56 // CHECK: Section ({{[0-9]+}}) .rela.rodata {
57 // CHECK-NEXT: 0x{{[0-9,A-F]+}} R_AARCH64_ABS64 .text
58 // CHECK: }
59 // CHECK: ]