1; RUN: llc --mtriple=loongarch64 < %s | FileCheck %s
2
3define i32 @indirectbr(ptr %target) nounwind {
4; CHECK-LABEL: indirectbr:
5; CHECK:       # %bb.0:
6; CHECK-NEXT:    jirl $zero, $a0, 0
7; CHECK-NEXT:  .LBB0_1: # %test_label
8; CHECK-NEXT:    move $a0, $zero
9; CHECK-NEXT:    jirl $zero, $ra, 0
10  indirectbr ptr %target, [label %test_label]
11test_label:
12  br label %ret
13ret:
14  ret i32 0
15}
16
17define i32 @indirectbr_with_offset(ptr %a) nounwind {
18; CHECK-LABEL: indirectbr_with_offset:
19; CHECK:       # %bb.0:
20; CHECK-NEXT:    jirl $zero, $a0, 1380
21; CHECK-NEXT:  .LBB1_1: # %test_label
22; CHECK-NEXT:    move $a0, $zero
23; CHECK-NEXT:    jirl $zero, $ra, 0
24  %target = getelementptr inbounds i8, ptr %a, i32 1380
25  indirectbr ptr %target, [label %test_label]
26test_label:
27  br label %ret
28ret:
29  ret i32 0
30}
31