[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / RISCV / indirectbr.ll
blob01201e818fa908b65e1a16eedc012825b4bbfb90
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
3 ; RUN:   | FileCheck %s -check-prefix=RV32I
5 define i32 @indirectbr(i8* %target) nounwind {
6 ; RV32I-LABEL: indirectbr:
7 ; RV32I:       # %bb.0:
8 ; RV32I-NEXT:    addi sp, sp, -16
9 ; RV32I-NEXT:    sw ra, 12(sp)
10 ; RV32I-NEXT:    jr a0
11 ; RV32I-NEXT:  .LBB0_1: # %test_label
12 ; RV32I-NEXT:    mv a0, zero
13 ; RV32I-NEXT:    lw ra, 12(sp)
14 ; RV32I-NEXT:    addi sp, sp, 16
15 ; RV32I-NEXT:    ret
16   indirectbr i8* %target, [label %test_label]
17 test_label:
18   br label %ret
19 ret:
20   ret i32 0
23 define i32 @indirectbr_with_offset(i8* %a) nounwind {
24 ; RV32I-LABEL: indirectbr_with_offset:
25 ; RV32I:       # %bb.0:
26 ; RV32I-NEXT:    addi sp, sp, -16
27 ; RV32I-NEXT:    sw ra, 12(sp)
28 ; RV32I-NEXT:    jr 1380(a0)
29 ; RV32I-NEXT:  .LBB1_1: # %test_label
30 ; RV32I-NEXT:    mv a0, zero
31 ; RV32I-NEXT:    lw ra, 12(sp)
32 ; RV32I-NEXT:    addi sp, sp, 16
33 ; RV32I-NEXT:    ret
34   %target = getelementptr inbounds i8, i8* %a, i32 1380
35   indirectbr i8* %target, [label %test_label]
36 test_label:
37   br label %ret
38 ret:
39   ret i32 0