155 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -run-pass=regbankselect \3# RUN: -simplify-mir -verify-machineinstrs %s \4# RUN: -o - | FileCheck -check-prefix=RV32I %s5 6--- |7 define i32 @jt_test(i32 signext %in) {8 entry:9 switch i32 %in, label %default [10 i32 1, label %bb111 i32 2, label %bb212 i32 3, label %bb313 i32 4, label %bb414 i32 5, label %bb515 i32 6, label %bb616 ]17 18 bb1: ; preds = %entry19 ret i32 420 21 bb2: ; preds = %entry22 ret i32 323 24 bb3: ; preds = %entry25 ret i32 226 27 bb4: ; preds = %entry28 ret i32 129 30 bb5: ; preds = %entry31 ret i32 10032 33 bb6: ; preds = %entry34 ret i32 20035 36 default: ; preds = %entry37 ret i32 100038 }39 40...41---42name: jt_test43legalized: true44tracksRegLiveness: true45jumpTable:46 kind: block-address47 entries:48 - id: 049 blocks: [ '%bb.2', '%bb.3', '%bb.4', '%bb.5', '%bb.6', '%bb.7' ]50body: |51 ; RV32I-LABEL: name: jt_test52 ; RV32I: bb.0.entry:53 ; RV32I-NEXT: liveins: $x1054 ; RV32I-NEXT: {{ $}}55 ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x1056 ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 557 ; RV32I-NEXT: [[C1:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 20058 ; RV32I-NEXT: [[C2:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 10059 ; RV32I-NEXT: [[C3:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 160 ; RV32I-NEXT: [[C4:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 261 ; RV32I-NEXT: [[C5:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 362 ; RV32I-NEXT: [[C6:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 463 ; RV32I-NEXT: [[C7:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 100064 ; RV32I-NEXT: [[C8:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 165 ; RV32I-NEXT: [[SUB:%[0-9]+]]:gprb(s32) = G_SUB [[COPY]], [[C8]]66 ; RV32I-NEXT: [[ICMP:%[0-9]+]]:gprb(s32) = G_ICMP intpred(ugt), [[SUB]](s32), [[C]]67 ; RV32I-NEXT: G_BRCOND [[ICMP]](s32), %bb.868 ; RV32I-NEXT: {{ $}}69 ; RV32I-NEXT: bb.1.entry:70 ; RV32I-NEXT: successors: %bb.2, %bb.3, %bb.4, %bb.5, %bb.6, %bb.771 ; RV32I-NEXT: {{ $}}72 ; RV32I-NEXT: [[JUMP_TABLE:%[0-9]+]]:gprb(p0) = G_JUMP_TABLE %jump-table.073 ; RV32I-NEXT: G_BRJT [[JUMP_TABLE]](p0), %jump-table.0, [[SUB]](s32)74 ; RV32I-NEXT: {{ $}}75 ; RV32I-NEXT: bb.2.bb1:76 ; RV32I-NEXT: $x10 = COPY [[C6]](s32)77 ; RV32I-NEXT: PseudoRET implicit $x1078 ; RV32I-NEXT: {{ $}}79 ; RV32I-NEXT: bb.3.bb2:80 ; RV32I-NEXT: $x10 = COPY [[C5]](s32)81 ; RV32I-NEXT: PseudoRET implicit $x1082 ; RV32I-NEXT: {{ $}}83 ; RV32I-NEXT: bb.4.bb3:84 ; RV32I-NEXT: $x10 = COPY [[C4]](s32)85 ; RV32I-NEXT: PseudoRET implicit $x1086 ; RV32I-NEXT: {{ $}}87 ; RV32I-NEXT: bb.5.bb4:88 ; RV32I-NEXT: $x10 = COPY [[C3]](s32)89 ; RV32I-NEXT: PseudoRET implicit $x1090 ; RV32I-NEXT: {{ $}}91 ; RV32I-NEXT: bb.6.bb5:92 ; RV32I-NEXT: $x10 = COPY [[C2]](s32)93 ; RV32I-NEXT: PseudoRET implicit $x1094 ; RV32I-NEXT: {{ $}}95 ; RV32I-NEXT: bb.7.bb6:96 ; RV32I-NEXT: $x10 = COPY [[C1]](s32)97 ; RV32I-NEXT: PseudoRET implicit $x1098 ; RV32I-NEXT: {{ $}}99 ; RV32I-NEXT: bb.8.default:100 ; RV32I-NEXT: $x10 = COPY [[C7]](s32)101 ; RV32I-NEXT: PseudoRET implicit $x10102 bb.1.entry:103 successors: %bb.8, %bb.9104 liveins: $x10105 106 %0:_(s32) = COPY $x10107 %4:_(s32) = G_CONSTANT i32 5108 %8:_(s32) = G_CONSTANT i32 200109 %9:_(s32) = G_CONSTANT i32 100110 %10:_(s32) = G_CONSTANT i32 1111 %11:_(s32) = G_CONSTANT i32 2112 %12:_(s32) = G_CONSTANT i32 3113 %13:_(s32) = G_CONSTANT i32 4114 %14:_(s32) = G_CONSTANT i32 1000115 %1:_(s32) = G_CONSTANT i32 1116 %2:_(s32) = G_SUB %0, %1117 %16:_(s32) = G_ICMP intpred(ugt), %2(s32), %4118 G_BRCOND %16(s32), %bb.8119 120 bb.9.entry:121 successors: %bb.2, %bb.3, %bb.4, %bb.5, %bb.6, %bb.7122 123 %7:_(p0) = G_JUMP_TABLE %jump-table.0124 G_BRJT %7(p0), %jump-table.0, %2(s32)125 126 bb.2.bb1:127 $x10 = COPY %13(s32)128 PseudoRET implicit $x10129 130 bb.3.bb2:131 $x10 = COPY %12(s32)132 PseudoRET implicit $x10133 134 bb.4.bb3:135 $x10 = COPY %11(s32)136 PseudoRET implicit $x10137 138 bb.5.bb4:139 $x10 = COPY %10(s32)140 PseudoRET implicit $x10141 142 bb.6.bb5:143 $x10 = COPY %9(s32)144 PseudoRET implicit $x10145 146 bb.7.bb6:147 $x10 = COPY %8(s32)148 PseudoRET implicit $x10149 150 bb.8.default:151 $x10 = COPY %14(s32)152 PseudoRET implicit $x10153 154...155