# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s --- | define i32 @foo(i32 %a) { entry: %0 = icmp sle i32 %a, 10 br i1 %0, label %less, label %exit less: ret i32 0 exit: ret i32 %a } define i32 @bar(i32 %a) { entry: %0 = icmp sle i32 %a, 10 br i1 %0, label %less, label %exit less: ret i32 0 exit: ret i32 %a } ... --- name: foo tracksRegLiveness: true liveins: - { reg: '%edi' } # CHECK-LABEL: name: foo # CHECK: body: | # CHECK-NEXT: bb.0.entry: # CHECK-NEXT: successors: %bb.1.less(0x40000000 / 0x80000000 = 50.00%), %bb.2.exit(0x40000000 / 0x80000000 = 50.00%) # CHECK-NEXT: liveins: %edi # CHECK: CMP32ri8 %edi, 10, implicit-def %eflags # CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags # CHECK: bb.1.less: # CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags # CHECK-NEXT: RETQ killed %eax # CHECK: bb.2.exit: # CHECK-NEXT: liveins: %edi # CHECK: %eax = COPY killed %edi # CHECK-NEXT: RETQ killed %eax body: | bb.0.entry: successors: %bb.1.less, %bb.2.exit liveins: %edi CMP32ri8 %edi, 10, implicit-def %eflags JG_1 %bb.2.exit, implicit killed %eflags bb.1.less: %eax = MOV32r0 implicit-def dead %eflags RETQ killed %eax bb.2.exit: liveins: %edi %eax = COPY killed %edi RETQ killed %eax ... --- name: bar tracksRegLiveness: true liveins: - { reg: '%edi' } # CHECK-LABEL: name: bar # CHECK: body: | # CHECK-NEXT: bb.0.entry: # CHECK-NEXT: successors: %bb.1.less(0x40000000 / 0x80000000 = 50.00%), %bb.2.exit(0x40000000 / 0x80000000 = 50.00%) # CHECK-NEXT: liveins: %edi # CHECK: CMP32ri8 %edi, 10, implicit-def %eflags # CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags # CHECK: bb.1.less: # CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags # CHECK-NEXT: RETQ killed %eax # CHECK: bb.2.exit: # CHECK-NEXT: liveins: %edi # CHECK: %eax = COPY killed %edi # CHECK-NEXT: RETQ killed %eax body: | bb.0.entry: successors: %bb.1.less, %bb.2.exit liveins: %edi CMP32ri8 %edi, 10, implicit-def %eflags JG_1 %bb.2.exit, implicit killed %eflags bb.1.less: %eax = MOV32r0 implicit-def dead %eflags RETQ killed %eax bb.2.exit: liveins: %edi %eax = COPY killed %edi RETQ killed %eax ...