xref: /llvm-project/llvm/test/Analysis/TypeBasedAliasAnalysis/sink.ll (revision 6402fc22e1bccd0984beadfe931511175bac688c)
1; RUN: opt -aa-pipeline=tbaa -passes=sink -S < %s | FileCheck %s
2
3; CHECK: a:
4; CHECK:   %f = load float, ptr %p, align 4, !tbaa [[TAGA:!.*]]
5; CHECK:   store float %f, ptr %q
6
7define void @foo(ptr %p, i1 %c, ptr %q, ptr %r) {
8  %f = load float, ptr %p, !tbaa !0
9  store float 0.0, ptr %r, !tbaa !1
10  br i1 %c, label %a, label %b
11a:
12  store float %f, ptr %q
13  br label %b
14b:
15  ret void
16}
17
18; CHECK: [[TAGA]] = !{[[TYPEA:!.*]], [[TYPEA]], i64 0}
19; CHECK: [[TYPEA]] = !{!"A", !{{.*}}}
20!0 = !{!3, !3, i64 0}
21!1 = !{!4, !4, i64 0}
22!2 = !{!"test"}
23!3 = !{!"A", !2}
24!4 = !{!"B", !2}
25