1; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
2
3
4; CHECK: Just Ref: call void @ro() <-> call void @f0()
5
6declare void @f0()
7declare void @ro() readonly
8
9define void @test0() {
10  call void @f0()
11  call void @ro()
12  ret void
13}
14
15; CHECK: NoModRef:   call void @llvm.memset.p0i8.i64(i8* @A, i8 0, i64 1, i32 1, i1 false) <->   call void @llvm.memset.p0i8.i64(i8* @B, i8 0, i64 1, i32 1, i1 false)
16; CHECK: NoModRef:   call void @llvm.memset.p0i8.i64(i8* @B, i8 0, i64 1, i32 1, i1 false) <->   call void @llvm.memset.p0i8.i64(i8* @A, i8 0, i64 1, i32 1, i1 false)
17
18declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind
19
20@A = external global i8
21@B = external global i8
22define void @test1() {
23  call void @llvm.memset.p0i8.i64(i8* @A, i8 0, i64 1, i32 1, i1 false)
24  call void @llvm.memset.p0i8.i64(i8* @B, i8 0, i64 1, i32 1, i1 false)
25  ret void
26}
27