1# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o - %s | FileCheck %s 2 3--- | 4 5 define i32 @foo(i32 %a) { 6 entry: 7 %0 = icmp sle i32 %a, 10 8 br i1 %0, label %less, label %exit 9 10 less: 11 ret i32 0 12 13 exit: 14 ret i32 %a 15 } 16 17 define i32 @bar(i32 %a) { 18 entry: 19 %0 = icmp sle i32 %a, 10 20 br i1 %0, label %less, label %exit 21 22 less: 23 ret i32 0 24 25 exit: 26 ret i32 %a 27 } 28 29... 30--- 31name: foo 32tracksRegLiveness: true 33liveins: 34 - { reg: '%edi' } 35# CHECK-LABEL: name: foo 36# CHECK: body: | 37# CHECK-NEXT: bb.0.entry: 38# CHECK-NEXT: successors: %bb.1.less(0x40000000 / 0x80000000 = 50.00%), %bb.2.exit(0x40000000 / 0x80000000 = 50.00%) 39# CHECK-NEXT: liveins: %edi 40# CHECK: CMP32ri8 %edi, 10, implicit-def %eflags 41# CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags 42 43# CHECK: bb.1.less: 44# CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags 45# CHECK-NEXT: RETQ killed %eax 46 47# CHECK: bb.2.exit: 48# CHECK-NEXT: liveins: %edi 49# CHECK: %eax = COPY killed %edi 50# CHECK-NEXT: RETQ killed %eax 51body: | 52 bb.0.entry: 53 successors: %bb.1.less, %bb.2.exit 54 55 liveins: %edi 56 57 CMP32ri8 %edi, 10, implicit-def %eflags 58 59 JG_1 %bb.2.exit, implicit killed %eflags 60 61 bb.1.less: 62 63 64 %eax = MOV32r0 implicit-def dead %eflags 65 RETQ killed %eax 66 bb.2.exit: 67 68 69 liveins: %edi 70 %eax = COPY killed %edi 71 RETQ killed %eax 72 73... 74--- 75name: bar 76tracksRegLiveness: true 77liveins: 78 - { reg: '%edi' } 79# CHECK-LABEL: name: bar 80# CHECK: body: | 81# CHECK-NEXT: bb.0.entry: 82# CHECK-NEXT: successors: %bb.1.less(0x40000000 / 0x80000000 = 50.00%), %bb.2.exit(0x40000000 / 0x80000000 = 50.00%) 83# CHECK-NEXT: liveins: %edi 84# CHECK: CMP32ri8 %edi, 10, implicit-def %eflags 85# CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags 86 87# CHECK: bb.1.less: 88# CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags 89# CHECK-NEXT: RETQ killed %eax 90 91# CHECK: bb.2.exit: 92# CHECK-NEXT: liveins: %edi 93# CHECK: %eax = COPY killed %edi 94# CHECK-NEXT: RETQ killed %eax 95body: | 96 97 bb.0.entry: 98 successors: %bb.1.less, %bb.2.exit 99 liveins: %edi 100 CMP32ri8 %edi, 10, implicit-def %eflags 101 JG_1 %bb.2.exit, implicit killed %eflags 102 bb.1.less: %eax = MOV32r0 implicit-def dead %eflags 103 RETQ killed %eax 104 105 bb.2.exit: liveins: %edi 106 %eax = COPY killed %edi 107 RETQ killed %eax 108 109... 110