Skip to content

Commit 71a8d2e

Browse files
author
Hendrik Greving
authored
[MachineLICM] Relax overlay conservative PHI check (#67186)
Skip LICM if PHI belongs to the current loop, e.g. is in the loop's header. This prevents LICM from bailing for CFGs like L1: R = LoopInvariant // can be LICM'd BR L1 L2: PHI(R, ..) BR L2
1 parent 7b3bbd8 commit 71a8d2e

11 files changed

+204
-230
lines changed

llvm/lib/CodeGen/MachineLICM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1050,7 +1050,7 @@ bool MachineLICMBase::HasLoopPHIUse(const MachineInstr *MI,
10501050
if (UseMI.isPHI()) {
10511051
// A PHI inside the loop causes a copy because the live range of Reg is
10521052
// extended across the PHI.
1053-
if (CurLoop->contains(&UseMI))
1053+
if (CurLoop->getHeader() == UseMI.getParent())
10541054
return true;
10551055
// A PHI in an exit block can cause a copy to be inserted if the PHI
10561056
// has multiple predecessors in the loop with different values.

llvm/test/CodeGen/X86/2008-04-28-CoalescerBug.ll

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ define void @t(ptr %depth, ptr %bop, i32 %mode) nounwind {
1515
; CHECK-NEXT: je LBB0_3
1616
; CHECK-NEXT: ## %bb.1: ## %entry
1717
; CHECK-NEXT: cmpl $1, %edx
18-
; CHECK-NEXT: jne LBB0_10
18+
; CHECK-NEXT: jne LBB0_9
1919
; CHECK-NEXT: .p2align 4, 0x90
2020
; CHECK-NEXT: LBB0_2: ## %bb2898.us
2121
; CHECK-NEXT: ## =>This Inner Loop Header: Depth=1
@@ -26,15 +26,12 @@ define void @t(ptr %depth, ptr %bop, i32 %mode) nounwind {
2626
; CHECK-NEXT: LBB0_4: ## %bb13088
2727
; CHECK-NEXT: ## =>This Inner Loop Header: Depth=1
2828
; CHECK-NEXT: testb %al, %al
29-
; CHECK-NEXT: jne LBB0_5
30-
; CHECK-NEXT: ## %bb.6: ## %bb13101
29+
; CHECK-NEXT: movl $65535, %ecx ## imm = 0xFFFF
30+
; CHECK-NEXT: jne LBB0_6
31+
; CHECK-NEXT: ## %bb.5: ## %bb13101
3132
; CHECK-NEXT: ## in Loop: Header=BB0_4 Depth=1
3233
; CHECK-NEXT: xorl %ecx, %ecx
33-
; CHECK-NEXT: jmp LBB0_7
34-
; CHECK-NEXT: .p2align 4, 0x90
35-
; CHECK-NEXT: LBB0_5: ## in Loop: Header=BB0_4 Depth=1
36-
; CHECK-NEXT: movl $65535, %ecx ## imm = 0xFFFF
37-
; CHECK-NEXT: LBB0_7: ## %bb13107
34+
; CHECK-NEXT: LBB0_6: ## %bb13107
3835
; CHECK-NEXT: ## in Loop: Header=BB0_4 Depth=1
3936
; CHECK-NEXT: movl %ecx, %edx
4037
; CHECK-NEXT: shll $16, %edx
@@ -44,11 +41,11 @@ define void @t(ptr %depth, ptr %bop, i32 %mode) nounwind {
4441
; CHECK-NEXT: subl %edx, %ecx
4542
; CHECK-NEXT: testw %cx, %cx
4643
; CHECK-NEXT: je LBB0_4
47-
; CHECK-NEXT: ## %bb.8: ## %bb13236
44+
; CHECK-NEXT: ## %bb.7: ## %bb13236
4845
; CHECK-NEXT: ## in Loop: Header=BB0_4 Depth=1
4946
; CHECK-NEXT: testb %al, %al
5047
; CHECK-NEXT: jne LBB0_4
51-
; CHECK-NEXT: ## %bb.9: ## %bb13572
48+
; CHECK-NEXT: ## %bb.8: ## %bb13572
5249
; CHECK-NEXT: ## in Loop: Header=BB0_4 Depth=1
5350
; CHECK-NEXT: movzwl %cx, %ecx
5451
; CHECK-NEXT: movl %ecx, %edx
@@ -58,7 +55,7 @@ define void @t(ptr %depth, ptr %bop, i32 %mode) nounwind {
5855
; CHECK-NEXT: shrl $16, %edx
5956
; CHECK-NEXT: movw %dx, 0
6057
; CHECK-NEXT: jmp LBB0_4
61-
; CHECK-NEXT: LBB0_10: ## %return
58+
; CHECK-NEXT: LBB0_9: ## %return
6259
; CHECK-NEXT: retq
6360
entry:
6461
switch i32 %mode, label %return [

llvm/test/CodeGen/X86/2012-01-10-UndefExceptionEdge.ll

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
3333
; CHECK-NEXT: .cfi_offset %esi, -20
3434
; CHECK-NEXT: .cfi_offset %edi, -16
3535
; CHECK-NEXT: .cfi_offset %ebx, -12
36-
; CHECK-NEXT: xorl %eax, %eax
37-
; CHECK-NEXT: xorl %edi, %edi
38-
; CHECK-NEXT: testb %al, %al
36+
; CHECK-NEXT: xorl %ebx, %ebx
37+
; CHECK-NEXT: testb %bl, %bl
3938
; CHECK-NEXT: Ltmp0:
40-
; CHECK-NEXT: ## implicit-def: $ebx
39+
; CHECK-NEXT: ## implicit-def: $edi
4140
; CHECK-NEXT: calll __Znam
4241
; CHECK-NEXT: Ltmp1:
4342
; CHECK-NEXT: ## %bb.1: ## %bb11
@@ -86,16 +85,16 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
8685
; CHECK-NEXT: jne LBB0_17
8786
; CHECK-NEXT: ## %bb.15: ## %bb49.preheader
8887
; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
89-
; CHECK-NEXT: xorl %ecx, %ecx
90-
; CHECK-NEXT: movl %esi, %edx
91-
; CHECK-NEXT: movl %edi, %ebx
88+
; CHECK-NEXT: movl %esi, %ecx
89+
; CHECK-NEXT: movl %ebx, %edx
90+
; CHECK-NEXT: xorl %edi, %edi
9291
; CHECK-NEXT: LBB0_16: ## %bb49
9392
; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
9493
; CHECK-NEXT: ## Parent Loop BB0_13 Depth=2
9594
; CHECK-NEXT: ## => This Inner Loop Header: Depth=3
96-
; CHECK-NEXT: incl %ecx
97-
; CHECK-NEXT: addl $4, %edx
98-
; CHECK-NEXT: decl %ebx
95+
; CHECK-NEXT: incl %edi
96+
; CHECK-NEXT: addl $4, %ecx
97+
; CHECK-NEXT: decl %edx
9998
; CHECK-NEXT: jne LBB0_16
10099
; CHECK-NEXT: LBB0_17: ## %bb57
101100
; CHECK-NEXT: ## in Loop: Header=BB0_13 Depth=2
@@ -113,7 +112,7 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
113112
; CHECK-NEXT: ## %bb.20: ## %bb61.preheader
114113
; CHECK-NEXT: ## in Loop: Header=BB0_8 Depth=1
115114
; CHECK-NEXT: movl %esi, %eax
116-
; CHECK-NEXT: movl %edi, %ecx
115+
; CHECK-NEXT: movl %ebx, %ecx
117116
; CHECK-NEXT: LBB0_21: ## %bb61
118117
; CHECK-NEXT: ## Parent Loop BB0_8 Depth=1
119118
; CHECK-NEXT: ## => This Inner Loop Header: Depth=2
@@ -127,23 +126,23 @@ define void @f(ptr nocapture %arg, ptr nocapture %arg1, ptr nocapture %arg2, ptr
127126
; CHECK-NEXT: jmp LBB0_8
128127
; CHECK-NEXT: LBB0_18: ## %bb43
129128
; CHECK-NEXT: Ltmp5:
130-
; CHECK-NEXT: movl %esi, %ebx
129+
; CHECK-NEXT: movl %esi, %edi
131130
; CHECK-NEXT: calll _OnOverFlow
132131
; CHECK-NEXT: Ltmp6:
133132
; CHECK-NEXT: jmp LBB0_3
134133
; CHECK-NEXT: LBB0_2: ## %bb29
135134
; CHECK-NEXT: Ltmp7:
136-
; CHECK-NEXT: movl %esi, %ebx
135+
; CHECK-NEXT: movl %esi, %edi
137136
; CHECK-NEXT: calll _OnOverFlow
138137
; CHECK-NEXT: Ltmp8:
139138
; CHECK-NEXT: LBB0_3: ## %bb30
140139
; CHECK-NEXT: ud2
141140
; CHECK-NEXT: LBB0_4: ## %bb20.loopexit
142141
; CHECK-NEXT: Ltmp4:
143142
; CHECK-NEXT: LBB0_9:
144-
; CHECK-NEXT: movl %esi, %ebx
143+
; CHECK-NEXT: movl %esi, %edi
145144
; CHECK-NEXT: LBB0_6: ## %bb23
146-
; CHECK-NEXT: testl %ebx, %ebx
145+
; CHECK-NEXT: testl %edi, %edi
147146
; CHECK-NEXT: addl $28, %esp
148147
; CHECK-NEXT: popl %esi
149148
; CHECK-NEXT: popl %edi

llvm/test/CodeGen/X86/cmpxchg-clobber-flags.ll

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ define i32 @test_control_flow(ptr %p, i32 %i, i32 %j) nounwind {
137137
; 32-ALL-NEXT: # Parent Loop BB1_2 Depth=1
138138
; 32-ALL-NEXT: # => This Inner Loop Header: Depth=2
139139
; 32-ALL-NEXT: movl %edx, %eax
140-
; 32-ALL-NEXT: xorl %edx, %edx
141-
; 32-ALL-NEXT: testl %eax, %eax
140+
; 32-ALL-NEXT: testl %edx, %edx
141+
; 32-ALL-NEXT: movl $0, %edx
142142
; 32-ALL-NEXT: je .LBB1_3
143143
; 32-ALL-NEXT: # %bb.4: # %while.body.i
144144
; 32-ALL-NEXT: # in Loop: Header=BB1_2 Depth=1
@@ -148,33 +148,6 @@ define i32 @test_control_flow(ptr %p, i32 %i, i32 %j) nounwind {
148148
; 32-ALL-NEXT: xorl %eax, %eax
149149
; 32-ALL-NEXT: .LBB1_6: # %cond.end
150150
; 32-ALL-NEXT: retl
151-
;
152-
; 64-ALL-LABEL: test_control_flow:
153-
; 64-ALL: # %bb.0: # %entry
154-
; 64-ALL-NEXT: movl %esi, %eax
155-
; 64-ALL-NEXT: cmpl %edx, %esi
156-
; 64-ALL-NEXT: jle .LBB1_5
157-
; 64-ALL-NEXT: .p2align 4, 0x90
158-
; 64-ALL-NEXT: .LBB1_1: # %while.condthread-pre-split.i
159-
; 64-ALL-NEXT: # =>This Loop Header: Depth=1
160-
; 64-ALL-NEXT: # Child Loop BB1_2 Depth 2
161-
; 64-ALL-NEXT: movl (%rdi), %ecx
162-
; 64-ALL-NEXT: .p2align 4, 0x90
163-
; 64-ALL-NEXT: .LBB1_2: # %while.cond.i
164-
; 64-ALL-NEXT: # Parent Loop BB1_1 Depth=1
165-
; 64-ALL-NEXT: # => This Inner Loop Header: Depth=2
166-
; 64-ALL-NEXT: movl %ecx, %eax
167-
; 64-ALL-NEXT: xorl %ecx, %ecx
168-
; 64-ALL-NEXT: testl %eax, %eax
169-
; 64-ALL-NEXT: je .LBB1_2
170-
; 64-ALL-NEXT: # %bb.3: # %while.body.i
171-
; 64-ALL-NEXT: # in Loop: Header=BB1_1 Depth=1
172-
; 64-ALL-NEXT: lock cmpxchgl %eax, (%rdi)
173-
; 64-ALL-NEXT: jne .LBB1_1
174-
; 64-ALL-NEXT: # %bb.4:
175-
; 64-ALL-NEXT: xorl %eax, %eax
176-
; 64-ALL-NEXT: .LBB1_5: # %cond.end
177-
; 64-ALL-NEXT: retq
178151
entry:
179152
%cmp = icmp sgt i32 %i, %j
180153
br i1 %cmp, label %loop_start, label %cond.end

llvm/test/CodeGen/X86/conditional-tailcall.ll

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -456,70 +456,74 @@ define zeroext i1 @pr31257(ptr nocapture readonly dereferenceable(8) %s) minsize
456456
; WIN64-NEXT: .LBB3_1: # %for.cond
457457
; WIN64-NEXT: # =>This Inner Loop Header: Depth=1
458458
; WIN64-NEXT: testq %rax, %rax # encoding: [0x48,0x85,0xc0]
459-
; WIN64-NEXT: je .LBB3_11 # encoding: [0x74,A]
460-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_11-1, kind: FK_PCRel_1
459+
; WIN64-NEXT: je .LBB3_12 # encoding: [0x74,A]
460+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_12-1, kind: FK_PCRel_1
461461
; WIN64-NEXT: # %bb.2: # %for.body
462462
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
463463
; WIN64-NEXT: cmpl $2, %r8d # encoding: [0x41,0x83,0xf8,0x02]
464-
; WIN64-NEXT: je .LBB3_9 # encoding: [0x74,A]
465-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_9-1, kind: FK_PCRel_1
464+
; WIN64-NEXT: je .LBB3_10 # encoding: [0x74,A]
465+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_10-1, kind: FK_PCRel_1
466466
; WIN64-NEXT: # %bb.3: # %for.body
467467
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
468468
; WIN64-NEXT: cmpl $1, %r8d # encoding: [0x41,0x83,0xf8,0x01]
469-
; WIN64-NEXT: je .LBB3_7 # encoding: [0x74,A]
470-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_7-1, kind: FK_PCRel_1
469+
; WIN64-NEXT: je .LBB3_8 # encoding: [0x74,A]
470+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_8-1, kind: FK_PCRel_1
471471
; WIN64-NEXT: # %bb.4: # %for.body
472472
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
473473
; WIN64-NEXT: testl %r8d, %r8d # encoding: [0x45,0x85,0xc0]
474-
; WIN64-NEXT: jne .LBB3_10 # encoding: [0x75,A]
475-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_10-1, kind: FK_PCRel_1
474+
; WIN64-NEXT: jne .LBB3_11 # encoding: [0x75,A]
475+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_11-1, kind: FK_PCRel_1
476476
; WIN64-NEXT: # %bb.5: # %sw.bb
477477
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
478478
; WIN64-NEXT: movzbl (%rcx), %r9d # encoding: [0x44,0x0f,0xb6,0x09]
479479
; WIN64-NEXT: cmpl $43, %r9d # encoding: [0x41,0x83,0xf9,0x2b]
480480
; WIN64-NEXT: movl $1, %r8d # encoding: [0x41,0xb8,0x01,0x00,0x00,0x00]
481-
; WIN64-NEXT: je .LBB3_10 # encoding: [0x74,A]
482-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_10-1, kind: FK_PCRel_1
481+
; WIN64-NEXT: je .LBB3_11 # encoding: [0x74,A]
482+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_11-1, kind: FK_PCRel_1
483483
; WIN64-NEXT: # %bb.6: # %sw.bb
484484
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
485485
; WIN64-NEXT: cmpl $45, %r9d # encoding: [0x41,0x83,0xf9,0x2d]
486-
; WIN64-NEXT: je .LBB3_10 # encoding: [0x74,A]
487-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_10-1, kind: FK_PCRel_1
488-
; WIN64-NEXT: jmp .LBB3_8 # encoding: [0xeb,A]
489-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_8-1, kind: FK_PCRel_1
490-
; WIN64-NEXT: .LBB3_7: # %sw.bb14
491-
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
492-
; WIN64-NEXT: movzbl (%rcx), %r9d # encoding: [0x44,0x0f,0xb6,0x09]
493-
; WIN64-NEXT: .LBB3_8: # %if.else
486+
; WIN64-NEXT: je .LBB3_11 # encoding: [0x74,A]
487+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_11-1, kind: FK_PCRel_1
488+
; WIN64-NEXT: # %bb.7: # %if.else
494489
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
495490
; WIN64-NEXT: addl $-48, %r9d # encoding: [0x41,0x83,0xc1,0xd0]
496-
; WIN64-NEXT: movl $2, %r8d # encoding: [0x41,0xb8,0x02,0x00,0x00,0x00]
497491
; WIN64-NEXT: cmpl $10, %r9d # encoding: [0x41,0x83,0xf9,0x0a]
498-
; WIN64-NEXT: jb .LBB3_10 # encoding: [0x72,A]
499-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_10-1, kind: FK_PCRel_1
500-
; WIN64-NEXT: jmp .LBB3_12 # encoding: [0xeb,A]
501-
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_12-1, kind: FK_PCRel_1
502-
; WIN64-NEXT: .LBB3_9: # %sw.bb22
492+
; WIN64-NEXT: jmp .LBB3_9 # encoding: [0xeb,A]
493+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_9-1, kind: FK_PCRel_1
494+
; WIN64-NEXT: .LBB3_8: # %sw.bb14
495+
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
496+
; WIN64-NEXT: movzbl (%rcx), %r8d # encoding: [0x44,0x0f,0xb6,0x01]
497+
; WIN64-NEXT: addl $-48, %r8d # encoding: [0x41,0x83,0xc0,0xd0]
498+
; WIN64-NEXT: cmpl $10, %r8d # encoding: [0x41,0x83,0xf8,0x0a]
499+
; WIN64-NEXT: .LBB3_9: # %if.else
503500
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
504-
; WIN64-NEXT: movzbl (%rcx), %r9d # encoding: [0x44,0x0f,0xb6,0x09]
505-
; WIN64-NEXT: addl $-48, %r9d # encoding: [0x41,0x83,0xc1,0xd0]
506501
; WIN64-NEXT: movl $2, %r8d # encoding: [0x41,0xb8,0x02,0x00,0x00,0x00]
507-
; WIN64-NEXT: cmpl $10, %r9d # encoding: [0x41,0x83,0xf9,0x0a]
502+
; WIN64-NEXT: jb .LBB3_11 # encoding: [0x72,A]
503+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_11-1, kind: FK_PCRel_1
504+
; WIN64-NEXT: jmp .LBB3_13 # encoding: [0xeb,A]
505+
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_13-1, kind: FK_PCRel_1
506+
; WIN64-NEXT: .LBB3_10: # %sw.bb22
507+
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
508+
; WIN64-NEXT: movzbl (%rcx), %r8d # encoding: [0x44,0x0f,0xb6,0x01]
509+
; WIN64-NEXT: addl $-48, %r8d # encoding: [0x41,0x83,0xc0,0xd0]
510+
; WIN64-NEXT: cmpl $10, %r8d # encoding: [0x41,0x83,0xf8,0x0a]
511+
; WIN64-NEXT: movl $2, %r8d # encoding: [0x41,0xb8,0x02,0x00,0x00,0x00]
508512
; WIN64-NEXT: jae _Z20isValidIntegerSuffixN9__gnu_cxx17__normal_iteratorIPKcSsEES3_ # TAILCALL
509513
; WIN64-NEXT: # encoding: [0x73,A]
510514
; WIN64-NEXT: # fixup A - offset: 1, value: _Z20isValidIntegerSuffixN9__gnu_cxx17__normal_iteratorIPKcSsEES3_-1, kind: FK_PCRel_1
511-
; WIN64-NEXT: .LBB3_10: # %for.inc
515+
; WIN64-NEXT: .LBB3_11: # %for.inc
512516
; WIN64-NEXT: # in Loop: Header=BB3_1 Depth=1
513517
; WIN64-NEXT: incq %rcx # encoding: [0x48,0xff,0xc1]
514518
; WIN64-NEXT: decq %rax # encoding: [0x48,0xff,0xc8]
515519
; WIN64-NEXT: jmp .LBB3_1 # encoding: [0xeb,A]
516520
; WIN64-NEXT: # fixup A - offset: 1, value: .LBB3_1-1, kind: FK_PCRel_1
517-
; WIN64-NEXT: .LBB3_11:
521+
; WIN64-NEXT: .LBB3_12:
518522
; WIN64-NEXT: cmpl $2, %r8d # encoding: [0x41,0x83,0xf8,0x02]
519523
; WIN64-NEXT: sete %al # encoding: [0x0f,0x94,0xc0]
520524
; WIN64-NEXT: # kill: def $al killed $al killed $eax
521525
; WIN64-NEXT: retq # encoding: [0xc3]
522-
; WIN64-NEXT: .LBB3_12:
526+
; WIN64-NEXT: .LBB3_13:
523527
; WIN64-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
524528
; WIN64-NEXT: # kill: def $al killed $al killed $eax
525529
; WIN64-NEXT: retq # encoding: [0xc3]

llvm/test/CodeGen/X86/licm-nested.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
; REQUIRES: asserts
2-
; RUN: llc -mtriple=x86_64-apple-darwin < %s -o /dev/null -stats -info-output-file - | grep "hoisted out of loops" | grep 3
2+
; RUN: llc -mtriple=x86_64-apple-darwin < %s -o /dev/null -stats -info-output-file - | grep "hoisted out of loops" | grep 7
33

44
; MachineLICM should be able to hoist the symbolic addresses out of
55
; the inner loops.

llvm/test/CodeGen/X86/loop-strength-reduce7.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ define fastcc void @outer_loop(ptr nocapture %gfp, ptr nocapture %xr, i32 %targ_
1717
; CHECK-NEXT: LBB0_2: ## %bb28.i37
1818
; CHECK-NEXT: ## =>This Loop Header: Depth=1
1919
; CHECK-NEXT: ## Child Loop BB0_3 Depth 2
20-
; CHECK-NEXT: xorl %edx, %edx
21-
; CHECK-NEXT: movl %eax, %esi
20+
; CHECK-NEXT: movl %eax, %edx
21+
; CHECK-NEXT: xorl %esi, %esi
2222
; CHECK-NEXT: .p2align 4, 0x90
2323
; CHECK-NEXT: LBB0_3: ## %bb29.i38
2424
; CHECK-NEXT: ## Parent Loop BB0_2 Depth=1
2525
; CHECK-NEXT: ## => This Inner Loop Header: Depth=2
26-
; CHECK-NEXT: incl %edx
27-
; CHECK-NEXT: addl $12, %esi
28-
; CHECK-NEXT: cmpl $11, %edx
26+
; CHECK-NEXT: incl %esi
27+
; CHECK-NEXT: addl $12, %edx
28+
; CHECK-NEXT: cmpl $11, %esi
2929
; CHECK-NEXT: jbe LBB0_3
3030
; CHECK-NEXT: ## %bb.1: ## %bb28.i37.loopexit
3131
; CHECK-NEXT: ## in Loop: Header=BB0_2 Depth=1

0 commit comments

Comments
 (0)