[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / CodeGen / Xtensa / jumpt.ll
blob66c2fc39e3952be954cf6549f6764a9b479b236a
1 ; RUN: llc -mtriple=xtensa -verify-machineinstrs < %s \
2 ; RUN:   | FileCheck %s
4 define void @switch_4_xtensa(i32 %in, ptr %out) nounwind {
5 ; CHECK: .literal_position
6 ; CHECK-NEXT:  .LCPI0_0, .LJTI0_0
7 ; CHECK-LABEL: switch_4_xtensa:
8 ; CHECK:       # %bb.0:
9 ; CHECK-NEXT:  addi a9, a2, -1
10 ; CHECK-NEXT:  movi a8, 3
11 ; CHECK-NEXT:  bltu a8, a9, .LBB0_6
12 ; CHECK-NEXT:  # %bb.1:
13 ; CHECK-NEXT:  l32r a10, .LCPI0_0
14 ; CHECK-NEXT:  addx4 a9, a9, a10
15 ; CHECK-NEXT:  l32i a9, a9, 0
16 ; CHECK-NEXT:  jx a9
17 ; CHECK:       ret
19 entry:
20   switch i32 %in, label %exit [
21     i32 1, label %bb1
22     i32 2, label %bb2
23     i32 3, label %bb3
24    i32 4, label %bb4
25   ]
26 bb1:
27   store i32 4, ptr %out
28   br label %exit
29 bb2:
30   store i32 3, ptr %out
31   br label %exit
32 bb3:
33   store i32 2, ptr %out
34   br label %exit
35 bb4:
36   store i32 1, ptr %out
37   br label %exit
38 exit:
39   ret void