brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · db53a78 Raw
76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --include-generated-funcs --version 52; RUN: opt -p mergefunc -S %s | FileCheck %s3 4@llvm.used = appending global [3 x ptr] [ptr @linkonce_odr_caller_of_foo_1, ptr @linkonce_odr_caller_of_foo_2, ptr @linkonce_odr_caller_of_foo_3]5 6define void @caller_of_callers(ptr %p) {7  call void @linkonce_odr_caller_of_foo_1(ptr %p)8  call void @linkonce_odr_caller_of_foo_2(ptr %p)9  call void @linkonce_odr_caller_of_foo_3(ptr %p)10  ret void11}12 13define linkonce_odr void @linkonce_odr_caller_of_foo_1(ptr %p) {14entry:15  tail call void @foo(ptr %p)16  tail call void @foo(ptr %p)17  tail call void @foo(ptr %p)18  ret void19}20 21define linkonce_odr void @linkonce_odr_caller_of_foo_2(ptr %p) {22entry:23  tail call void @foo(ptr %p)24  tail call void @foo(ptr %p)25  tail call void @foo(ptr %p)26  ret void27}28 29define linkonce_odr void @linkonce_odr_caller_of_foo_3(ptr %p) {30entry:31  tail call void @foo(ptr %p)32  tail call void @foo(ptr %p)33  tail call void @foo(ptr %p)34  ret void35}36 37declare void @foo(ptr)38 39;.40; CHECK: @llvm.used = appending global [3 x ptr] [ptr @linkonce_odr_caller_of_foo_1, ptr @linkonce_odr_caller_of_foo_2, ptr @linkonce_odr_caller_of_foo_3]41;.42; CHECK-LABEL: define void @caller_of_callers(43; CHECK-SAME: ptr [[P:%.*]]) {44; CHECK-NEXT:    call void @[[GLOB0:[0-9]+]](ptr [[P]])45; CHECK-NEXT:    call void @[[GLOB0]](ptr [[P]])46; CHECK-NEXT:    call void @[[GLOB0]](ptr [[P]])47; CHECK-NEXT:    ret void48;49;50; CHECK-LABEL: define private void @0(51; CHECK-SAME: ptr [[P:%.*]]) {52; CHECK-NEXT:  [[ENTRY:.*:]]53; CHECK-NEXT:    tail call void @foo(ptr [[P]])54; CHECK-NEXT:    tail call void @foo(ptr [[P]])55; CHECK-NEXT:    tail call void @foo(ptr [[P]])56; CHECK-NEXT:    ret void57;58;59; CHECK-LABEL: define linkonce_odr void @linkonce_odr_caller_of_foo_2(60; CHECK-SAME: ptr [[TMP0:%.*]]) {61; CHECK-NEXT:    tail call void @[[GLOB0]](ptr [[TMP0]])62; CHECK-NEXT:    ret void63;64;65; CHECK-LABEL: define linkonce_odr void @linkonce_odr_caller_of_foo_1(66; CHECK-SAME: ptr [[TMP0:%.*]]) {67; CHECK-NEXT:    tail call void @[[GLOB0]](ptr [[TMP0]])68; CHECK-NEXT:    ret void69;70;71; CHECK-LABEL: define linkonce_odr void @linkonce_odr_caller_of_foo_3(72; CHECK-SAME: ptr [[TMP0:%.*]]) {73; CHECK-NEXT:    tail call void @[[GLOB0]](ptr [[TMP0]])74; CHECK-NEXT:    ret void75;76