brintos

brintos / llvm-project-archived public Read only

0
0
Text · 917 B · e65813d Raw
44 lines · plain
1; RUN: llc -verify-machineinstrs -o - %s -aarch64-min-jump-table-entries=4 -mtriple=arm64_32-apple-ios7.0 -aarch64-enable-atomic-cfg-tidy=0 | FileCheck %s2 3define i32 @test_jumptable(i32 %in) {4; CHECK: test_jumptable5 6  switch i32 %in, label %def [7    i32 0, label %lbl18    i32 1, label %lbl29    i32 2, label %lbl310    i32 4, label %lbl411  ]12 13; CHECK: mov     w[[INDEX:[0-9]+]], w014; CHECK: adrp    [[JTPAGE:x[0-9]+]], LJTI0_0@PAGE15; CHECK: add     x[[JT:[0-9]+]], [[JTPAGE]], LJTI0_0@PAGEOFF16; CHECK: adr     [[BASE_BLOCK:x[0-9]+]], LBB0_217; CHECK: ldrb    w[[OFFSET:[0-9]+]], [x[[JT]], x[[INDEX]]]18; CHECK: add     [[DEST:x[0-9]+]], [[BASE_BLOCK]], x[[OFFSET]], lsl #219; CHECK: br      [[DEST]]20 21def:22  ret i32 023 24lbl1:25  ret i32 126 27lbl2:28  ret i32 229 30lbl3:31  ret i32 432 33lbl4:34  ret i32 835 36}37 38; CHECK: LJTI0_0:39; CHECK-NEXT: .byte40; CHECK-NEXT: .byte41; CHECK-NEXT: .byte42; CHECK-NEXT: .byte43; CHECK-NEXT: .byte44