; CHECK-NEXT: testb %al, %al
; CHECK-NEXT: jne .LBB1_26
; CHECK-NEXT: # %bb.1: # %if.end19
-; CHECK-NEXT: movl %esi, %ebp
+; CHECK-NEXT: movl %esi, %r13d
; CHECK-NEXT: movq %rdi, %r12
-; CHECK-NEXT: movl (%rax), %r14d
-; CHECK-NEXT: leal (,%r14,4), %r13d
-; CHECK-NEXT: movl %r13d, %r15d
+; CHECK-NEXT: movl (%rax), %ebp
+; CHECK-NEXT: leal (,%rbp,4), %r14d
+; CHECK-NEXT: movl %r14d, %r15d
; CHECK-NEXT: movl $1, %esi
; CHECK-NEXT: movq %r15, %rdi
; CHECK-NEXT: callq cli_calloc
-; CHECK-NEXT: testl %ebp, %ebp
+; CHECK-NEXT: testl %r13d, %r13d
; CHECK-NEXT: je .LBB1_25
; CHECK-NEXT: # %bb.2: # %if.end19
-; CHECK-NEXT: testl %r14d, %r14d
+; CHECK-NEXT: testl %ebp, %ebp
; CHECK-NEXT: je .LBB1_25
; CHECK-NEXT: # %bb.3: # %if.end19
; CHECK-NEXT: movq %rax, %rbx
; CHECK-NEXT: testb %al, %al
; CHECK-NEXT: jne .LBB1_25
; CHECK-NEXT: # %bb.4: # %if.end19
-; CHECK-NEXT: cmpq %r12, %rax
+; CHECK-NEXT: cmpq %r12, %rbx
; CHECK-NEXT: jb .LBB1_25
; CHECK-NEXT: # %bb.5: # %if.end50
; CHECK-NEXT: movq %rbx, %rdi
; CHECK-NEXT: movq %r15, %rdx
; CHECK-NEXT: callq memcpy
-; CHECK-NEXT: cmpl $4, %r13d
+; CHECK-NEXT: cmpl $4, %r14d
; CHECK-NEXT: jb .LBB1_28
; CHECK-NEXT: # %bb.6: # %shared_preheader
; CHECK-NEXT: movb $32, %dl
; CHECK-NEXT: xorl %eax, %eax
; CHECK-NEXT: # implicit-def: $rcx
-; CHECK-NEXT: testl %eax, %eax
+; CHECK-NEXT: testl %ebp, %ebp
; CHECK-NEXT: je .LBB1_18
; CHECK-NEXT: .p2align 4, 0x90
; CHECK-NEXT: .LBB1_8: # %shared_loop_header
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
-; CHECK-NEXT: cmpq %rbx, %rax
-; CHECK-NEXT: jb .LBB1_27
+; CHECK-NEXT: testq %rbx, %rbx
+; CHECK-NEXT: jne .LBB1_27
; CHECK-NEXT: # %bb.9: # %inner_loop_body
; CHECK-NEXT: # in Loop: Header=BB1_8 Depth=1
; CHECK-NEXT: testl %eax, %eax
; CHECK-NEXT: jns .LBB1_8
; CHECK-NEXT: # %bb.10: # %if.end96.i
; CHECK-NEXT: # in Loop: Header=BB1_8 Depth=1
-; CHECK-NEXT: cmpl $3, %eax
+; CHECK-NEXT: cmpl $3, %ebp
; CHECK-NEXT: jae .LBB1_22
; CHECK-NEXT: # %bb.11: # %if.end287.i
; CHECK-NEXT: # in Loop: Header=BB1_8 Depth=1
; CHECK-NEXT: xorl %esi, %esi
-; CHECK-NEXT: cmpl $1, %eax
+; CHECK-NEXT: cmpl $1, %ebp
; CHECK-NEXT: setne %dl
; CHECK-NEXT: testb %al, %al
; CHECK-NEXT: jne .LBB1_15
; CHECK-NEXT: decl %esi
; CHECK-NEXT: movzwl %si, %esi
; CHECK-NEXT: leaq 1(%rcx,%rsi), %rcx
-; CHECK-NEXT: testl %eax, %eax
+; CHECK-NEXT: testl %ebp, %ebp
; CHECK-NEXT: jne .LBB1_8
; CHECK-NEXT: .LBB1_18: # %while.cond.us1412.i
; CHECK-NEXT: xorl %eax, %eax
%notrhs = icmp eq i32 %0, 0
%or.cond117.not = or i1 %1, %notrhs
%or.cond202 = or i1 %or.cond117.not, undef
- %cmp35 = icmp ult i8* undef, %exe
+ %cmp35 = icmp ult i8* %call, %exe
%or.cond203 = or i1 %or.cond202, %cmp35
br i1 %or.cond203, label %cleanup, label %if.end50
outer_loop_header: ; preds = %outer_loop_latch, %shared_preheader
%bits.1.i = phi i8 [ 32, %shared_preheader ], [ %bits.43.i, %outer_loop_latch ]
%dst.0.ph.i = phi i8* [ undef, %shared_preheader ], [ %scevgep679.i, %outer_loop_latch ]
- %2 = icmp eq i32 undef, 0
+ %2 = icmp eq i32 %0, 0
br i1 %2, label %while.cond.us1412.i, label %shared_loop_header
while.cond.us1412.i: ; preds = %outer_loop_header
shared_loop_header: ; preds = %dup_early2, %dup_early1
%dst.0.i = phi i8* [ undef, %inner_loop_body ], [ %dst.0.ph.i, %outer_loop_header ], [ undef, %dead_block ]
- %cmp3.i1172.i = icmp ult i8* undef, %call
+ %cmp3.i1172.i = icmp ult i8* null, %call
br i1 %cmp3.i1172.i, label %wunpsect.exit.thread.loopexit389, label %inner_loop_body
inner_loop_body: ; preds = %shared_loop_header
br i1 %3, label %if.end96.i, label %shared_loop_header
dead_block: ; preds = %inner_loop_body
- %cmp75.i = icmp ult i8* %dst.0.i, undef
+ %cmp75.i = icmp ult i8* %dst.0.i, null
br label %shared_loop_header
if.end96.i: ; preds = %inner_loop_body
- %cmp97.i = icmp ugt i32 undef, 2
+ %cmp97.i = icmp ugt i32 %0, 2
br i1 %cmp97.i, label %if.then99.i, label %if.end287.i
if.then99.i: ; preds = %if.end96.i
br label %cleanup
if.end287.i: ; preds = %if.end96.i
- %cmp291.i = icmp ne i32 undef, 1
+ %cmp291.i = icmp ne i32 %0, 1
%conv294.i = select i1 %cmp291.i, i16 4, i16 3
br i1 undef, label %if.end308.i, label %outer_loop_latch
; and if.then64, and then the block dup2 gets duplicated into land.lhs.true
; and if.end70
-define void @repeated_tail_dup(i1 %a1, i1 %a2, i32* %a4, i32* %a5, i8* %a6) #0 align 2 {
+define void @repeated_tail_dup(i1 %a1, i1 %a2, i32* %a4, i32* %a5, i8* %a6, i32 %a7) #0 align 2 {
; CHECK-LABEL: repeated_tail_dup:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: .p2align 4, 0x90
; CHECK-NEXT: # %bb.4: # %if.then64
; CHECK-NEXT: # in Loop: Header=BB0_1 Depth=1
; CHECK-NEXT: movb $1, (%r8)
-; CHECK-NEXT: testl %eax, %eax
+; CHECK-NEXT: testl %r9d, %r9d
; CHECK-NEXT: je .LBB0_1
; CHECK-NEXT: jmp .LBB0_8
; CHECK-NEXT: .p2align 4, 0x90
; CHECK-NEXT: .LBB0_6: # %dup2
; CHECK-NEXT: # in Loop: Header=BB0_1 Depth=1
; CHECK-NEXT: movl $2, (%rcx)
-; CHECK-NEXT: testl %eax, %eax
+; CHECK-NEXT: testl %r9d, %r9d
; CHECK-NEXT: je .LBB0_1
; CHECK-NEXT: .LBB0_8: # %for.end
; CHECK-NEXT: retq
dup1: ; preds = %dup2, %if.then64
%val = load i32, i32* %a4, align 8
- %switch = icmp ult i32 undef, 1
+ %switch = icmp ult i32 %a7, 1
br i1 %switch, label %for.cond, label %for.end
for.end: ; preds = %dup1