164c92844SNick Lewycky; RUN: llvm-as < %s | llvm-dis | FileCheck %s
2*6e1009b6SDuncan P. N. Exon Smith; RUN: verify-uselistorder < %s -preserve-bc-use-list-order
364c92844SNick Lewycky; PR9857
464c92844SNick Lewycky
564c92844SNick Lewyckydefine void @f(i8** nocapture %ptr1) {
664c92844SNick Lewycky; CHECK: define void @f
764c92844SNick Lewyckyentry:
864c92844SNick Lewycky  br label %here.i
964c92844SNick Lewycky
1064c92844SNick Lewyckyhere.i:
1164c92844SNick Lewycky  store i8* blockaddress(@doit, %here), i8** %ptr1, align 8
1264c92844SNick Lewycky; CHECK: blockaddress(@doit, %here)
1364c92844SNick Lewycky  br label %doit.exit
1464c92844SNick Lewycky
1564c92844SNick Lewyckydoit.exit:
1664c92844SNick Lewycky  ret void
1764c92844SNick Lewycky}
1864c92844SNick Lewycky
1964c92844SNick Lewyckydefine void @doit(i8** nocapture %pptr) {
2064c92844SNick Lewycky; CHECK: define void @doit
2164c92844SNick Lewyckyentry:
2264c92844SNick Lewycky  br label %here
2364c92844SNick Lewycky
2464c92844SNick Lewyckyhere:
2564c92844SNick Lewycky  store i8* blockaddress(@doit, %here), i8** %pptr, align 8
2664c92844SNick Lewycky; CHECK: blockaddress(@doit, %here)
2764c92844SNick Lewycky  br label %end
2864c92844SNick Lewycky
2964c92844SNick Lewyckyend:
3064c92844SNick Lewycky  ret void
3164c92844SNick Lewycky}
32736a4fc4SBenjamin Kramer
33736a4fc4SBenjamin Kramer; PR13895
34736a4fc4SBenjamin Kramerdefine void @doitagain(i8** nocapture %pptr) {
35736a4fc4SBenjamin Kramer; CHECK: define void @doitagain
36736a4fc4SBenjamin Kramerentry:
37736a4fc4SBenjamin Kramer  br label %here
38736a4fc4SBenjamin Kramer
39736a4fc4SBenjamin Kramerhere:
40736a4fc4SBenjamin Kramer  store i8* blockaddress(@doit, %here), i8** %pptr, align 8
41736a4fc4SBenjamin Kramer; CHECK: blockaddress(@doit, %here)
42736a4fc4SBenjamin Kramer  br label %end
43736a4fc4SBenjamin Kramer
44736a4fc4SBenjamin Kramerend:
45736a4fc4SBenjamin Kramer  ret void
46736a4fc4SBenjamin Kramer}
47