1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32 3--- | 4 5 define i32 @Unconditional_branch(i32 %a, i32 %b) { 6 entry: 7 br label %block 8 9 end: ; preds = %block 10 ret i32 %a 11 12 block: ; preds = %entry 13 br label %end 14 } 15 16 define i32 @Conditional_branch(i1 %cond, i32 %a, i32 %b) { 17 br i1 %cond, label %if.then, label %if.else 18 19 if.then: ; preds = %0 20 ret i32 %a 21 22 if.else: ; preds = %0 23 ret i32 %b 24 } 25 26... 27--- 28name: Unconditional_branch 29alignment: 4 30legalized: true 31tracksRegLiveness: true 32body: | 33 ; MIPS32-LABEL: name: Unconditional_branch 34 ; MIPS32: bb.0.entry: 35 ; MIPS32: successors: %bb.2(0x80000000) 36 ; MIPS32: liveins: $a0, $a1 37 ; MIPS32: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0 38 ; MIPS32: G_BR %bb.2 39 ; MIPS32: bb.1.end: 40 ; MIPS32: $v0 = COPY [[COPY]](s32) 41 ; MIPS32: RetRA implicit $v0 42 ; MIPS32: bb.2.block: 43 ; MIPS32: successors: %bb.1(0x80000000) 44 ; MIPS32: G_BR %bb.1 45 bb.1.entry: 46 liveins: $a0, $a1 47 48 %0:_(s32) = COPY $a0 49 G_BR %bb.3 50 51 bb.2.end: 52 $v0 = COPY %0(s32) 53 RetRA implicit $v0 54 55 bb.3.block: 56 G_BR %bb.2 57 58... 59--- 60name: Conditional_branch 61alignment: 4 62legalized: true 63tracksRegLiveness: true 64body: | 65 ; MIPS32-LABEL: name: Conditional_branch 66 ; MIPS32: bb.0 (%ir-block.0): 67 ; MIPS32: successors: %bb.1(0x40000000), %bb.2(0x40000000) 68 ; MIPS32: liveins: $a0, $a1, $a2 69 ; MIPS32: [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0 70 ; MIPS32: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1 71 ; MIPS32: [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2 72 ; MIPS32: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1 73 ; MIPS32: [[COPY3:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32) 74 ; MIPS32: [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY3]], [[C]] 75 ; MIPS32: G_BRCOND [[AND]](s32), %bb.1 76 ; MIPS32: G_BR %bb.2 77 ; MIPS32: bb.1.if.then: 78 ; MIPS32: $v0 = COPY [[COPY1]](s32) 79 ; MIPS32: RetRA implicit $v0 80 ; MIPS32: bb.2.if.else: 81 ; MIPS32: $v0 = COPY [[COPY2]](s32) 82 ; MIPS32: RetRA implicit $v0 83 bb.1 (%ir-block.0): 84 liveins: $a0, $a1, $a2 85 86 %3:_(s32) = COPY $a0 87 %1:_(s32) = COPY $a1 88 %2:_(s32) = COPY $a2 89 %5:_(s32) = G_CONSTANT i32 1 90 %6:_(s32) = COPY %3(s32) 91 %4:_(s32) = G_AND %6, %5 92 G_BRCOND %4(s32), %bb.2 93 G_BR %bb.3 94 95 bb.2.if.then: 96 $v0 = COPY %1(s32) 97 RetRA implicit $v0 98 99 bb.3.if.else: 100 $v0 = COPY %2(s32) 101 RetRA implicit $v0 102 103... 104