annotate test/CodeGen/Hexagon/swp-epilog-phi10.ll @ 146:3fc4d5c3e21e

set tail call flag for code segment in CGCAll
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:23:36 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
1 ; RUN: llc -march=hexagon -mcpu=hexagonv5 < %s
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
2 ; REQUIRES: asserts
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
3
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
4 define void @test(i8* noalias nocapture readonly %src, i32 %srcStride) local_unnamed_addr #0 {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
5 entry:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
6 %add.ptr = getelementptr inbounds i8, i8* %src, i32 %srcStride
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
7 %add.ptr2 = getelementptr inbounds i8, i8* %add.ptr, i32 %srcStride
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
8 %add.ptr3 = getelementptr inbounds i8, i8* %add.ptr2, i32 %srcStride
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
9 br label %for.body9.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
10
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
11 for.body9.epil:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
12 %inc.sink385.epil = phi i32 [ %add17.epil, %for.body9.epil ], [ 2, %entry ]
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
13 %sr.epil = phi i8 [ %0, %for.body9.epil ], [ undef, %entry ]
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
14 %sr431.epil = phi i8 [ %2, %for.body9.epil ], [ 0, %entry ]
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
15 %sr432.epil = phi i8 [ %sr431.epil, %for.body9.epil ], [ 0, %entry ]
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
16 %epil.iter = phi i32 [ %epil.iter.sub, %for.body9.epil ], [ undef, %entry ]
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
17 %sub11.epil = add i32 %inc.sink385.epil, -1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
18 %add17.epil = add nuw i32 %inc.sink385.epil, 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
19 %conv19.epil = zext i8 %sr.epil to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
20 %add21.epil = add i32 %inc.sink385.epil, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
21 %arrayidx22.epil = getelementptr inbounds i8, i8* %src, i32 %add21.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
22 %0 = load i8, i8* %arrayidx22.epil, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
23 %conv23.epil = zext i8 %0 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
24 %1 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
25 %conv42.epil = zext i8 %1 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
26 %conv53.epil = zext i8 %sr432.epil to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
27 %2 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
28 %conv61.epil = zext i8 %2 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
29 %3 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
30 %conv65.epil = zext i8 %3 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
31 %4 = load i8, i8* null, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
32 %conv69.epil = zext i8 %4 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
33 %5 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
34 %conv72.epil = zext i8 %5 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
35 %6 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
36 %conv76.epil = zext i8 %6 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
37 %7 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
38 %conv80.epil = zext i8 %7 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
39 %8 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
40 %conv84.epil = zext i8 %8 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
41 %9 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
42 %conv88.epil = zext i8 %9 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
43 %10 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
44 %conv91.epil = zext i8 %10 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
45 %11 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
46 %conv95.epil = zext i8 %11 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
47 %12 = load i8, i8* undef, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
48 %conv99.epil = zext i8 %12 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
49 %add.epil = add nuw nsw i32 0, %conv19.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
50 %add16.epil = add nuw nsw i32 %add.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
51 %add20.epil = add nuw nsw i32 %add16.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
52 %add24.epil = add nuw nsw i32 %add20.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
53 %add28.epil = add nuw nsw i32 %add24.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
54 %add32.epil = add nuw nsw i32 %add28.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
55 %add35.epil = add i32 %add32.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
56 %add39.epil = add i32 %add35.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
57 %add43.epil = add i32 %add39.epil, %conv53.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
58 %add47.epil = add i32 %add43.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
59 %add51.epil = add i32 %add47.epil, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
60 %add54.epil = add i32 %add51.epil, %conv23.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
61 %add58.epil = add i32 %add54.epil, %conv42.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
62 %add62.epil = add i32 %add58.epil, %conv61.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
63 %add66.epil = add i32 %add62.epil, %conv65.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
64 %add70.epil = add i32 %add66.epil, %conv69.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
65 %add73.epil = add i32 %add70.epil, %conv72.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
66 %add77.epil = add i32 %add73.epil, %conv76.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
67 %add81.epil = add i32 %add77.epil, %conv80.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
68 %add85.epil = add i32 %add81.epil, %conv84.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
69 %add89.epil = add i32 %add85.epil, %conv88.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
70 %add92.epil = add i32 %add89.epil, %conv91.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
71 %add96.epil = add i32 %add92.epil, %conv95.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
72 %add100.epil = add i32 %add96.epil, %conv99.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
73 %mul.epil = mul nsw i32 %add100.epil, 2621
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
74 %add101.epil = add nsw i32 %mul.epil, 32768
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
75 %shr369.epil = lshr i32 %add101.epil, 16
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
76 %conv102.epil = trunc i32 %shr369.epil to i8
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
77 %arrayidx103.epil = getelementptr inbounds i8, i8* undef, i32 %inc.sink385.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
78 store i8 %conv102.epil, i8* %arrayidx103.epil, align 1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
79 %epil.iter.sub = add i32 %epil.iter, -1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
80 %epil.iter.cmp = icmp eq i32 %epil.iter.sub, 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
81 br i1 %epil.iter.cmp, label %for.end, label %for.body9.epil
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
82
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
83 for.end:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
84 unreachable
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
85 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
86
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
87 attributes #0 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "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" }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
88