Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / AArch64 / jump-table-exynos.ll
blob61b0df5de2af3a45faefa75c01bb4f016c21f61b
1 ; RUN: llc -o - %s -mtriple=aarch64-none-linux-gnu -mattr=+force-32bit-jump-tables -aarch64-min-jump-table-entries=4 -aarch64-enable-atomic-cfg-tidy=0 | FileCheck %s
2 ; RUN: llc -o - %s -mtriple=aarch64-none-linux-gnu -mcpu=exynos-m3 -aarch64-min-jump-table-entries=4 -aarch64-enable-atomic-cfg-tidy=0 | FileCheck %s
4 ; Exynos doesn't want jump tables to be compressed for now.
6 define i32 @test_jumptable(i32 %in)  {
7   switch i32 %in, label %def [
8     i32 0, label %lbl1
9     i32 1, label %lbl2
10     i32 2, label %lbl3
11     i32 4, label %lbl4
12   ]
13 ; CHECK-LABEL: test_jumptable:
14 ; CHECK:     adrp [[JTPAGE:x[0-9]+]], .LJTI0_0
15 ; CHECK:     add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI0_0
16 ; CHECK:  [[PCREL_LBL:.Ltmp.*]]:
17 ; CHECK-NEXT: adr [[PCBASE:x[0-9]+]], [[PCREL_LBL]]
18 ; CHECK:     ldrsw x[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}, lsl #2]
19 ; CHECK:     add [[DEST:x[0-9]+]], [[PCBASE]], x[[OFFSET]]
20 ; CHECK:     br [[DEST]]
23 ; CHECK: .LJTI0_0:
24 ; CHECK-NEXT:     .word .LBB{{.*}}-[[PCREL_LBL]]
26 def:
27   ret i32 0
29 lbl1:
30   ret i32 1
32 lbl2:
33   ret i32 2
35 lbl3:
36   ret i32 4
38 lbl4:
39   ret i32 8
43 define i32 @test_jumptable_minsize(i32 %in) minsize {
44   switch i32 %in, label %def [
45     i32 0, label %lbl1
46     i32 1, label %lbl2
47     i32 2, label %lbl3
48     i32 4, label %lbl4
49   ]
50 ; CHECK-LABEL: test_jumptable_minsize:
51 ; CHECK:     adrp [[JTPAGE:x[0-9]+]], .LJTI1_0
52 ; CHECK:     add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI1_0
53 ; CHECK:     adr [[PCBASE:x[0-9]+]], [[JTBASE:.LBB[0-9]+_[0-9]+]]
54 ; CHECK:     ldrb w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}]
55 ; CHECK:     add [[DEST:x[0-9]+]], [[PCBASE]], x[[OFFSET]], lsl #2
56 ; CHECK:     br [[DEST]]
60 def:
61   ret i32 0
63 lbl1:
64   ret i32 1
66 lbl2:
67   ret i32 2
69 lbl3:
70   ret i32 4
72 lbl4:
73   ret i32 8