@@ -29,29 +29,32 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
2929; CHECK-NEXT: pushl %ebx
3030; CHECK-NEXT: pushl %edi
3131; CHECK-NEXT: pushl %esi
32- ; CHECK-NEXT: subl $12 , %esp
32+ ; CHECK-NEXT: subl $28 , %esp
3333; CHECK-NEXT: .cfi_offset %esi, -20
3434; CHECK-NEXT: .cfi_offset %edi, -16
3535; CHECK-NEXT: .cfi_offset %ebx, -12
3636; CHECK-NEXT: xorl %eax, %eax
37+ ; CHECK-NEXT: xorl %edi, %edi
3738; CHECK-NEXT: testb %al, %al
3839; CHECK-NEXT: Ltmp0:
39- ; CHECK-NEXT: ## implicit-def: $edi
40+ ; CHECK-NEXT: ## implicit-def: $ebx
4041; CHECK-NEXT: calll __Znam
4142; CHECK-NEXT: Ltmp1:
4243; CHECK-NEXT: ## %bb.1: ## %bb11
4344; CHECK-NEXT: movl %eax, %esi
44- ; CHECK-NEXT: movb $1, %bl
45- ; CHECK-NEXT: testb %bl , %bl
45+ ; CHECK-NEXT: movb $1, %al
46+ ; CHECK-NEXT: testb %al , %al
4647; CHECK-NEXT: jne LBB0_2
4748; CHECK-NEXT: ## %bb.7: ## %bb31
48- ; CHECK-NEXT: ## implicit-def: $edi
49+ ; CHECK-NEXT: ## implicit-def: $eax
50+ ; CHECK-NEXT: ## kill: killed $eax
4951; CHECK-NEXT: LBB0_8: ## %bb38
5052; CHECK-NEXT: ## =>This Loop Header: Depth=1
5153; CHECK-NEXT: ## Child Loop BB0_13 Depth 2
5254; CHECK-NEXT: ## Child Loop BB0_16 Depth 3
5355; CHECK-NEXT: ## Child Loop BB0_21 Depth 2
54- ; CHECK-NEXT: testb %bl, %bl
56+ ; CHECK-NEXT: movb $1, %al
57+ ; CHECK-NEXT: testb %al, %al
5558; CHECK-NEXT: jne LBB0_9
5659; CHECK-NEXT: ## %bb.10: ## %bb41
5760; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
@@ -75,7 +78,8 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
7578; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
7679; CHECK-NEXT: ## => This Loop Header: Depth=2
7780; CHECK-NEXT: ## Child Loop BB0_16 Depth 3
78- ; CHECK-NEXT: testb %bl, %bl
81+ ; CHECK-NEXT: movb $1, %cl
82+ ; CHECK-NEXT: testb %cl, %cl
7983; CHECK-NEXT: jne LBB0_19
8084; CHECK-NEXT: ## %bb.14: ## %bb48
8185; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
@@ -84,13 +88,14 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
8488; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
8589; CHECK-NEXT: xorl %ecx, %ecx
8690; CHECK-NEXT: movl %esi, %edx
91+ ; CHECK-NEXT: movl %edi, %ebx
8792; CHECK-NEXT: LBB0_16: ## %bb49
8893; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
8994; CHECK-NEXT: ## Parent Loop BB0_13 Depth=2
9095; CHECK-NEXT: ## => This Inner Loop Header: Depth=3
9196; CHECK-NEXT: incl %ecx
9297; CHECK-NEXT: addl $4, %edx
93- ; CHECK-NEXT: testb %bl, %bl
98+ ; CHECK-NEXT: decl %ebx
9499; CHECK-NEXT: jne LBB0_16
95100; CHECK-NEXT: LBB0_17: ## %bb57
96101; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
@@ -102,42 +107,44 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
102107; CHECK-NEXT: movl %eax, {{[0-9]+}}(%esp)
103108; CHECK-NEXT: movl $0, (%esp)
104109; CHECK-NEXT: calll ___bzero
105- ; CHECK-NEXT: testb %bl, %bl
110+ ; CHECK-NEXT: movb $1, %al
111+ ; CHECK-NEXT: testb %al, %al
106112; CHECK-NEXT: jne LBB0_22
107113; CHECK-NEXT: ## %bb.20: ## %bb61.preheader
108114; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
109115; CHECK-NEXT: movl %esi, %eax
116+ ; CHECK-NEXT: movl %edi, %ecx
110117; CHECK-NEXT: LBB0_21: ## %bb61
111118; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
112119; CHECK-NEXT: ## => This Inner Loop Header: Depth=2
113120; CHECK-NEXT: movl $0, (%eax)
114121; CHECK-NEXT: addl $4, %eax
115- ; CHECK-NEXT: testb %bl, %bl
122+ ; CHECK-NEXT: decl %ecx
116123; CHECK-NEXT: jne LBB0_21
117124; CHECK-NEXT: LBB0_22: ## %bb67
118125; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
119- ; CHECK-NEXT: decl %edi
126+ ; CHECK-NEXT: decl {{[-0-9]+}}(%e{{[sb]}}p) ## 4-byte Folded Spill
120127; CHECK-NEXT: jmp LBB0_8
121128; CHECK-NEXT: LBB0_18: ## %bb43
122129; CHECK-NEXT: Ltmp5:
123- ; CHECK-NEXT: movl %esi, %edi
130+ ; CHECK-NEXT: movl %esi, %ebx
124131; CHECK-NEXT: calll _OnOverFlow
125132; CHECK-NEXT: Ltmp6:
126133; CHECK-NEXT: jmp LBB0_3
127134; CHECK-NEXT: LBB0_2: ## %bb29
128135; CHECK-NEXT: Ltmp7:
129- ; CHECK-NEXT: movl %esi, %edi
136+ ; CHECK-NEXT: movl %esi, %ebx
130137; CHECK-NEXT: calll _OnOverFlow
131138; CHECK-NEXT: Ltmp8:
132139; CHECK-NEXT: LBB0_3: ## %bb30
133140; CHECK-NEXT: ud2
134141; CHECK-NEXT: LBB0_4: ## %bb20.loopexit
135142; CHECK-NEXT: Ltmp4:
136143; CHECK-NEXT: LBB0_9:
137- ; CHECK-NEXT: movl %esi, %edi
144+ ; CHECK-NEXT: movl %esi, %ebx
138145; CHECK-NEXT: LBB0_6: ## %bb23
139- ; CHECK-NEXT: testl %edi , %edi
140- ; CHECK-NEXT: addl $12 , %esp
146+ ; CHECK-NEXT: testl %ebx , %ebx
147+ ; CHECK-NEXT: addl $28 , %esp
141148; CHECK-NEXT: popl %esi
142149; CHECK-NEXT: popl %edi
143150; CHECK-NEXT: popl %ebx
0 commit comments