15e22e446STeresa Johnson; Check the linkage types in both the per-module and combined summaries.
268da426eSMehdi Amini; RUN: opt -module-summary %s -o %t.o
35e22e446STeresa Johnson; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
45e22e446STeresa Johnson; RUN: llvm-lto -thinlto -o %t2 %t.o
55e22e446STeresa Johnson; RUN: llvm-bcanalyzer -dump %t2.thinlto.bc | FileCheck %s --check-prefix=COMBINED
65e22e446STeresa Johnson
75e22e446STeresa Johnsondefine private void @private()
8*e4b0231cSRafael Espindola; CHECK: <PERMODULE {{.*}} op1=72
9*e4b0231cSRafael Espindola; COMBINED-DAG: <COMBINED {{.*}} op2=72
105e22e446STeresa Johnson{
115e22e446STeresa Johnson  ret void
125e22e446STeresa Johnson}
135e22e446STeresa Johnson
145e22e446STeresa Johnsondefine internal void @internal()
15c3ed48c1SMehdi Amini; CHECK: <PERMODULE {{.*}} op1=7
1602e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=7
17c3ed48c1SMehdi Amini{
18c3ed48c1SMehdi Amini  ret void
19c3ed48c1SMehdi Amini}
20c3ed48c1SMehdi Amini
21c3ed48c1SMehdi Aminidefine available_externally void @available_externally()
22c3ed48c1SMehdi Amini; CHECK: <PERMODULE {{.*}} op1=1
2302e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=1
24c3ed48c1SMehdi Amini{
25c3ed48c1SMehdi Amini  ret void
26c3ed48c1SMehdi Amini}
27c3ed48c1SMehdi Amini
28c3ed48c1SMehdi Aminidefine linkonce void @linkonce()
29c3ed48c1SMehdi Amini; CHECK: <PERMODULE {{.*}} op1=2
3002e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=2
31c3ed48c1SMehdi Amini{
32c3ed48c1SMehdi Amini  ret void
33c3ed48c1SMehdi Amini}
34c3ed48c1SMehdi Amini
35c3ed48c1SMehdi Aminidefine weak void @weak()
36c3ed48c1SMehdi Amini; CHECK: <PERMODULE {{.*}} op1=4
3702e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=4
38c3ed48c1SMehdi Amini{
39c3ed48c1SMehdi Amini  ret void
40c3ed48c1SMehdi Amini}
41c3ed48c1SMehdi Amini
42c3ed48c1SMehdi Aminidefine linkonce_odr void @linkonce_odr()
4376a1c1d0STeresa Johnson; CHECK: <PERMODULE {{.*}} op1=3
4402e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=3
455e22e446STeresa Johnson{
465e22e446STeresa Johnson  ret void
475e22e446STeresa Johnson}
485e22e446STeresa Johnson
495e22e446STeresa Johnsondefine weak_odr void @weak_odr()
50c3ed48c1SMehdi Amini; CHECK: <PERMODULE {{.*}} op1=5
5102e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=5
525e22e446STeresa Johnson{
535e22e446STeresa Johnson  ret void
545e22e446STeresa Johnson}
555e22e446STeresa Johnson
565e22e446STeresa Johnsondefine external void @external()
5776a1c1d0STeresa Johnson; CHECK: <PERMODULE {{.*}} op1=0
5802e98331STeresa Johnson; COMBINED-DAG: <COMBINED {{.*}} op2=0
595e22e446STeresa Johnson{
605e22e446STeresa Johnson  ret void
615e22e446STeresa Johnson}
62