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