1 # RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
5 define i32 @foo(i32 %a) {
7 %0 = icmp sle i32 %a, 10
8 br i1 %0, label %less, label %exit
17 define i32 @bar(i32 %a) {
19 %0 = icmp sle i32 %a, 10
20 br i1 %0, label %less, label %exit
32 tracksRegLiveness: true
35 # CHECK-LABEL: name: foo
37 # CHECK-NEXT: bb.0.entry:
38 # CHECK-NEXT: successors: %bb.1.less, %bb.2.exit
39 # CHECK-NEXT: liveins: %edi
40 # CHECK: CMP32ri8 %edi, 10, implicit-def %eflags
41 # CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags
44 # CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags
45 # CHECK-NEXT: RETQ killed %eax
48 # CHECK-NEXT: liveins: %edi
49 # CHECK: %eax = COPY killed %edi
50 # CHECK-NEXT: RETQ killed %eax
53 successors: %bb.1.less, %bb.2.exit
57 CMP32ri8 %edi, 10, implicit-def %eflags
59 JG_1 %bb.2.exit, implicit killed %eflags
64 %eax = MOV32r0 implicit-def dead %eflags
70 %eax = COPY killed %edi
76 tracksRegLiveness: true
79 # CHECK-LABEL: name: bar
81 # CHECK-NEXT: bb.0.entry:
82 # CHECK-NEXT: successors: %bb.1.less, %bb.2.exit
83 # CHECK-NEXT: liveins: %edi
84 # CHECK: CMP32ri8 %edi, 10, implicit-def %eflags
85 # CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags
88 # CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags
89 # CHECK-NEXT: RETQ killed %eax
92 # CHECK-NEXT: liveins: %edi
93 # CHECK: %eax = COPY killed %edi
94 # CHECK-NEXT: RETQ killed %eax
98 successors: %bb.1.less, %bb.2.exit
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
105 bb.2.exit: liveins: %edi
106 %eax = COPY killed %edi