brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 56cac99 Raw
160 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=regbankselect \3# RUN:   -simplify-mir -verify-machineinstrs %s \4# RUN:   -o - | FileCheck -check-prefix=RV64I %s5 6--- |7  define i32 @jt_test(i32 signext %in) {8  entry:9    %0 = sext i32 %in to i6410    switch i64 %0, label %default [11      i64 1, label %bb112      i64 2, label %bb213      i64 3, label %bb314      i64 4, label %bb415      i64 5, label %bb516      i64 6, label %bb617    ]18 19  bb1:                                              ; preds = %entry20    ret i32 421 22  bb2:                                              ; preds = %entry23    ret i32 324 25  bb3:                                              ; preds = %entry26    ret i32 227 28  bb4:                                              ; preds = %entry29    ret i32 130 31  bb5:                                              ; preds = %entry32    ret i32 10033 34  bb6:                                              ; preds = %entry35    ret i32 20036 37  default:                                          ; preds = %entry38    ret i32 100039  }40 41...42---43name:            jt_test44legalized:       true45tracksRegLiveness: true46jumpTable:47  kind:            custom3248  entries:49    - id:              050      blocks:          [ '%bb.2', '%bb.3', '%bb.4', '%bb.5', '%bb.6', '%bb.7' ]51body:             |52  ; RV64I-LABEL: name: jt_test53  ; RV64I: bb.0.entry:54  ; RV64I-NEXT:   liveins: $x1055  ; RV64I-NEXT: {{  $}}56  ; RV64I-NEXT:   [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1057  ; RV64I-NEXT:   [[ASSERT_SEXT:%[0-9]+]]:gprb(s64) = G_ASSERT_SEXT [[COPY]], 3258  ; RV64I-NEXT:   [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 559  ; RV64I-NEXT:   [[SEXT_INREG:%[0-9]+]]:gprb(s64) = G_SEXT_INREG [[ASSERT_SEXT]], 3260  ; RV64I-NEXT:   [[C1:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 161  ; RV64I-NEXT:   [[SUB:%[0-9]+]]:gprb(s64) = G_SUB [[SEXT_INREG]], [[C1]]62  ; RV64I-NEXT:   [[ICMP:%[0-9]+]]:gprb(s64) = G_ICMP intpred(ugt), [[SUB]](s64), [[C]]63  ; RV64I-NEXT:   G_BRCOND [[ICMP]](s64), %bb.864  ; RV64I-NEXT: {{  $}}65  ; RV64I-NEXT: bb.1.entry:66  ; RV64I-NEXT:   successors: %bb.2, %bb.3, %bb.4, %bb.5, %bb.6, %bb.767  ; RV64I-NEXT: {{  $}}68  ; RV64I-NEXT:   [[JUMP_TABLE:%[0-9]+]]:gprb(p0) = G_JUMP_TABLE %jump-table.069  ; RV64I-NEXT:   G_BRJT [[JUMP_TABLE]](p0), %jump-table.0, [[SUB]](s64)70  ; RV64I-NEXT: {{  $}}71  ; RV64I-NEXT: bb.2.bb1:72  ; RV64I-NEXT:   [[C2:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 473  ; RV64I-NEXT:   $x10 = COPY [[C2]](s64)74  ; RV64I-NEXT:   PseudoRET implicit $x1075  ; RV64I-NEXT: {{  $}}76  ; RV64I-NEXT: bb.3.bb2:77  ; RV64I-NEXT:   [[C3:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 378  ; RV64I-NEXT:   $x10 = COPY [[C3]](s64)79  ; RV64I-NEXT:   PseudoRET implicit $x1080  ; RV64I-NEXT: {{  $}}81  ; RV64I-NEXT: bb.4.bb3:82  ; RV64I-NEXT:   [[C4:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 283  ; RV64I-NEXT:   $x10 = COPY [[C4]](s64)84  ; RV64I-NEXT:   PseudoRET implicit $x1085  ; RV64I-NEXT: {{  $}}86  ; RV64I-NEXT: bb.5.bb4:87  ; RV64I-NEXT:   [[C5:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 188  ; RV64I-NEXT:   $x10 = COPY [[C5]](s64)89  ; RV64I-NEXT:   PseudoRET implicit $x1090  ; RV64I-NEXT: {{  $}}91  ; RV64I-NEXT: bb.6.bb5:92  ; RV64I-NEXT:   [[C6:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 10093  ; RV64I-NEXT:   $x10 = COPY [[C6]](s64)94  ; RV64I-NEXT:   PseudoRET implicit $x1095  ; RV64I-NEXT: {{  $}}96  ; RV64I-NEXT: bb.7.bb6:97  ; RV64I-NEXT:   [[C7:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 20098  ; RV64I-NEXT:   $x10 = COPY [[C7]](s64)99  ; RV64I-NEXT:   PseudoRET implicit $x10100  ; RV64I-NEXT: {{  $}}101  ; RV64I-NEXT: bb.8.default:102  ; RV64I-NEXT:   [[C8:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 1000103  ; RV64I-NEXT:   $x10 = COPY [[C8]](s64)104  ; RV64I-NEXT:   PseudoRET implicit $x10105  bb.1.entry:106    successors: %bb.8, %bb.9107    liveins: $x10108 109    %1:_(s64) = COPY $x10110    %2:_(s64) = G_ASSERT_SEXT %1, 32111    %7:_(s64) = G_CONSTANT i64 5112    %3:_(s64) = G_SEXT_INREG %2, 32113    %4:_(s64) = G_CONSTANT i64 1114    %5:_(s64) = G_SUB %3, %4115    %26:_(s64) = G_ICMP intpred(ugt), %5(s64), %7116    G_BRCOND %26(s64), %bb.8117 118  bb.9.entry:119    successors: %bb.2, %bb.3, %bb.4, %bb.5, %bb.6, %bb.7120 121    %10:_(p0) = G_JUMP_TABLE %jump-table.0122    G_BRJT %10(p0), %jump-table.0, %5(s64)123 124  bb.2.bb1:125    %22:_(s64) = G_CONSTANT i64 4126    $x10 = COPY %22(s64)127    PseudoRET implicit $x10128 129  bb.3.bb2:130    %20:_(s64) = G_CONSTANT i64 3131    $x10 = COPY %20(s64)132    PseudoRET implicit $x10133 134  bb.4.bb3:135    %18:_(s64) = G_CONSTANT i64 2136    $x10 = COPY %18(s64)137    PseudoRET implicit $x10138 139  bb.5.bb4:140    %16:_(s64) = G_CONSTANT i64 1141    $x10 = COPY %16(s64)142    PseudoRET implicit $x10143 144  bb.6.bb5:145    %14:_(s64) = G_CONSTANT i64 100146    $x10 = COPY %14(s64)147    PseudoRET implicit $x10148 149  bb.7.bb6:150    %12:_(s64) = G_CONSTANT i64 200151    $x10 = COPY %12(s64)152    PseudoRET implicit $x10153 154  bb.8.default:155    %24:_(s64) = G_CONSTANT i64 1000156    $x10 = COPY %24(s64)157    PseudoRET implicit $x10158 159...160