1*75da10d1SCharles Saternos; RUN: opt -module-summary %s -o %t.o
2*75da10d1SCharles Saternos; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
3*75da10d1SCharles Saternos
4*75da10d1SCharles Saternos; CHECK: <GLOBALVAL_SUMMARY_BLOCK
5*75da10d1SCharles Saternos; ensure @f is marked readnone
6*75da10d1SCharles Saternos; CHECK:  <PERMODULE {{.*}} op0=0 {{.*}} op3=1
7*75da10d1SCharles Saternos; ensure @g is marked readonly
8*75da10d1SCharles Saternos; CHECK:  <PERMODULE {{.*}} op0=1 {{.*}} op3=2
9*75da10d1SCharles Saternos; ensure @h is marked norecurse
10*75da10d1SCharles Saternos; CHECK:  <PERMODULE {{.*}} op0=2 {{.*}} op3=4
11*75da10d1SCharles Saternos; ensure @i is marked returndoesnotalias
12*75da10d1SCharles Saternos; CHECK:  <PERMODULE {{.*}} op0=3 {{.*}} op3=8
13*75da10d1SCharles Saternos
14*75da10d1SCharles Saternosdefine void @f() readnone {
15*75da10d1SCharles Saternos   ret void
16*75da10d1SCharles Saternos}
17*75da10d1SCharles Saternosdefine void @g() readonly {
18*75da10d1SCharles Saternos   ret void
19*75da10d1SCharles Saternos}
20*75da10d1SCharles Saternosdefine void @h() norecurse {
21*75da10d1SCharles Saternos   ret void
22*75da10d1SCharles Saternos}
23*75da10d1SCharles Saternos
24*75da10d1SCharles Saternosdefine noalias i8* @i() {
25*75da10d1SCharles Saternos   %r = alloca i8
26*75da10d1SCharles Saternos   ret i8* %r
27*75da10d1SCharles Saternos}
28