xref: /llvm-project/llvm/test/CodeGen/Xtensa/jumpt.ll (revision cc8fdd60c2f791dba70c9e458173640d7da836e3)
1; RUN: llc -mtriple=xtensa -verify-machineinstrs < %s \
2; RUN:   | FileCheck %s
3
4define 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
18
19entry:
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  ]
26bb1:
27  store i32 4, ptr %out
28  br label %exit
29bb2:
30  store i32 3, ptr %out
31  br label %exit
32bb3:
33  store i32 2, ptr %out
34  br label %exit
35bb4:
36  store i32 1, ptr %out
37  br label %exit
38exit:
39  ret void
40}
41