1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -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 30tracksRegLiveness: true 31body: | 32 ; MIPS32-LABEL: name: Unconditional_branch 33 ; MIPS32: bb.0.entry: 34 ; MIPS32: successors: %bb.2(0x80000000) 35 ; MIPS32: liveins: $a0, $a1 36 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 37 ; MIPS32: G_BR %bb.2 38 ; MIPS32: bb.1.end: 39 ; MIPS32: $v0 = COPY [[COPY]](s32) 40 ; MIPS32: RetRA implicit $v0 41 ; MIPS32: bb.2.block: 42 ; MIPS32: successors: %bb.1(0x80000000) 43 ; MIPS32: G_BR %bb.1 44 bb.1.entry: 45 liveins: $a0, $a1 46 47 %0:_(s32) = COPY $a0 48 G_BR %bb.3 49 50 bb.2.end: 51 $v0 = COPY %0(s32) 52 RetRA implicit $v0 53 54 bb.3.block: 55 G_BR %bb.2 56 57... 58--- 59name: Conditional_branch 60alignment: 4 61tracksRegLiveness: true 62body: | 63 ; MIPS32-LABEL: name: Conditional_branch 64 ; MIPS32: bb.0 (%ir-block.0): 65 ; MIPS32: successors: %bb.1(0x40000000), %bb.2(0x40000000) 66 ; MIPS32: liveins: $a0, $a1, $a2 67 ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 68 ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 69 ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 70 ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1 71 ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY]](s32) 72 ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C]] 73 ; MIPS32: G_BRCOND [[AND]](s32), %bb.1 74 ; MIPS32: G_BR %bb.2 75 ; MIPS32: bb.1.if.then: 76 ; MIPS32: $v0 = COPY [[COPY1]](s32) 77 ; MIPS32: RetRA implicit $v0 78 ; MIPS32: bb.2.if.else: 79 ; MIPS32: $v0 = COPY [[COPY2]](s32) 80 ; MIPS32: RetRA implicit $v0 81 bb.1 (%ir-block.0): 82 liveins: $a0, $a1, $a2 83 84 %3:_(s32) = COPY $a0 85 %0:_(s1) = G_TRUNC %3(s32) 86 %1:_(s32) = COPY $a1 87 %2:_(s32) = COPY $a2 88 G_BRCOND %0(s1), %bb.2 89 G_BR %bb.3 90 91 bb.2.if.then: 92 $v0 = COPY %1(s32) 93 RetRA implicit $v0 94 95 bb.3.if.else: 96 $v0 = COPY %2(s32) 97 RetRA implicit $v0 98 99... 100 101