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