1; RUN: llvm-as < %s | llvm-dis | FileCheck %s 2; RUN: verify-uselistorder < %s 3 4declare void @extern_func() 5 6define void @call_extern_func() { 7; CHECK: call void dso_local_equivalent @extern_func() 8 call void dso_local_equivalent @extern_func() 9 ret void 10} 11 12declare hidden void @hidden_func() 13declare protected void @protected_func() 14declare dso_local void @dso_local_func() 15define internal void @internal_func() { 16entry: 17 ret void 18} 19define private void @private_func() { 20entry: 21 ret void 22} 23 24; CHECK: call void dso_local_equivalent @hidden_func() 25define void @call_hidden_func() { 26 call void dso_local_equivalent @hidden_func() 27 ret void 28} 29 30define void @call_protected_func() { 31; CHECK: call void dso_local_equivalent @protected_func() 32 call void dso_local_equivalent @protected_func() 33 ret void 34} 35 36define void @call_dso_local_func() { 37; CHECK: call void dso_local_equivalent @dso_local_func() 38 call void dso_local_equivalent @dso_local_func() 39 ret void 40} 41 42define void @call_internal_func() { 43; CHECK: call void dso_local_equivalent @internal_func() 44 call void dso_local_equivalent @internal_func() 45 ret void 46} 47 48define void @aliasee_func() { 49entry: 50 ret void 51} 52 53@alias_func = alias void (), void ()* @aliasee_func 54@dso_local_alias_func = dso_local alias void (), void ()* @aliasee_func 55 56define void @call_alias_func() { 57; CHECK: call void dso_local_equivalent @alias_func() 58 call void dso_local_equivalent @alias_func() 59 ret void 60} 61 62define void @call_dso_local_alias_func() { 63; CHECK: call void dso_local_equivalent @dso_local_alias_func() 64 call void dso_local_equivalent @dso_local_alias_func() 65 ret void 66} 67 68@ifunc_func = ifunc void (), void ()* ()* @resolver 69@dso_local_ifunc_func = dso_local ifunc void (), void ()* ()* @resolver 70 71define internal void ()* @resolver() { 72entry: 73 ret void ()* null 74} 75 76define void @call_ifunc_func() { 77; CHECK: call void dso_local_equivalent @ifunc_func() 78 call void dso_local_equivalent @ifunc_func() 79 ret void 80} 81 82define void @call_dso_local_ifunc_func() { 83; CHECK: call void dso_local_equivalent @dso_local_ifunc_func() 84 call void dso_local_equivalent @dso_local_ifunc_func() 85 ret void 86} 87