[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Hexagon / swp-prolog-phi4.ll
blob50fc9a9c89302de57aea1b3c70977dfbefaf0a2a
1 ; RUN: llc -march=hexagon -mcpu=hexagonv5 -verify-machineinstrs < %s
3 ; Test that the name rewriter code doesn't chase the Phi operands for
4 ; Phis that do not occur in the loop that is being pipelined.
6 define void @test(i32 %srcStride) local_unnamed_addr #0 {
7 entry:
8   br label %for.body
10 for.body:
11   %add.ptr3.pn = phi ptr [ undef, %entry ], [ %src4.0394, %for.end ]
12   %src2.0390 = phi ptr [ undef, %entry ], [ %add.ptr3.pn, %for.end ]
13   %src4.0394 = getelementptr inbounds i8, ptr %add.ptr3.pn, i32 %srcStride
14   %sri414 = load i8, ptr undef, align 1
15   br i1 undef, label %for.body9.epil, label %for.body9.preheader.new
17 for.body9.preheader.new:
18   br label %for.body9.epil
20 for.body9.epil:
21   %inc.sink385.epil = phi i32 [ %add17.epil, %for.body9.epil ], [ 2, %for.body ], [ undef, %for.body9.preheader.new ]
22   %sr420.epil = phi i8 [ undef, %for.body9.epil ], [ %sri414, %for.body ], [ undef, %for.body9.preheader.new ]
23   %sr421.epil = phi i8 [ %sr420.epil, %for.body9.epil ], [ undef, %for.body ], [ undef, %for.body9.preheader.new ]
24   %sr422.epil = phi i8 [ %sr421.epil, %for.body9.epil ], [ 0, %for.body ], [ undef, %for.body9.preheader.new ]
25   %epil.iter = phi i32 [ %epil.iter.sub, %for.body9.epil ], [ undef, %for.body9.preheader.new ], [ undef, %for.body ]
26   %add17.epil = add nuw i32 %inc.sink385.epil, 1
27   %add21.epil = add i32 %inc.sink385.epil, 2
28   %arrayidx22.epil = getelementptr inbounds i8, ptr undef, i32 %add21.epil
29   %conv27.epil = zext i8 %sr422.epil to i32
30   %0 = load i8, ptr null, align 1
31   %conv61.epil = zext i8 %0 to i32
32   %arrayidx94.epil = getelementptr inbounds i8, ptr %src4.0394, i32 %add17.epil
33   %1 = load i8, ptr %arrayidx94.epil, align 1
34   %add35.epil = add i32 0, %conv27.epil
35   %add39.epil = add i32 %add35.epil, 0
36   %add43.epil = add i32 %add39.epil, 0
37   %add47.epil = add i32 %add43.epil, 0
38   %add51.epil = add i32 %add47.epil, 0
39   %add54.epil = add i32 %add51.epil, 0
40   %add58.epil = add i32 %add54.epil, 0
41   %add62.epil = add i32 %add58.epil, %conv61.epil
42   %add66.epil = add i32 %add62.epil, 0
43   %add70.epil = add i32 %add66.epil, 0
44   %add73.epil = add i32 %add70.epil, 0
45   %add77.epil = add i32 %add73.epil, 0
46   %add81.epil = add i32 %add77.epil, 0
47   %add85.epil = add i32 %add81.epil, 0
48   %add89.epil = add i32 %add85.epil, 0
49   %add92.epil = add i32 %add89.epil, 0
50   %add96.epil = add i32 %add92.epil, 0
51   %add100.epil = add i32 %add96.epil, 0
52   %mul.epil = mul nsw i32 %add100.epil, 2621
53   %add101.epil = add nsw i32 %mul.epil, 32768
54   %shr369.epil = lshr i32 %add101.epil, 16
55   %conv102.epil = trunc i32 %shr369.epil to i8
56   store i8 %conv102.epil, ptr undef, align 1
57   %epil.iter.sub = add i32 %epil.iter, -1
58   %epil.iter.cmp = icmp eq i32 %epil.iter.sub, 0
59   br i1 %epil.iter.cmp, label %for.end, label %for.body9.epil
61 for.end:
62   br label %for.body
65 attributes #0 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="hexagonv5" "unsafe-fp-math"="false" "use-soft-float"="false" }