xref: /llvm-project/llvm/test/Transforms/MergeFunc/byval-attr-type.ll (revision ee2789001b8558656a13502f0de2c81dcb419430)
1; RUN: opt -S -passes=mergefunc %s | FileCheck %s
2
3@i = global i32 0
4@f = global float 0.0
5
6define internal void @foo() {
7; CHECK: define internal void @foo()
8  call void @callee_i32(ptr byval(i32) @i)
9  ret void
10}
11
12define internal void @bar() {
13; CHECK: define internal void @bar()
14  call void @callee_float(ptr byval(float) @f)
15  ret void
16}
17
18define internal void @baz() {
19; CHECK-NOT: define{{.*}}@bar
20  call void @callee_float(ptr byval(float) @f)
21  ret void
22}
23
24define void @user() {
25; CHECK-LABEL: define void @user
26; CHECK: call void @foo()
27; CHECK: call void @bar()
28; CHECK: call void @bar()
29
30  call void @foo()
31  call void @bar()
32  call void @baz()
33  ret void
34}
35
36declare void @callee_i32(ptr byval(i32))
37declare void @callee_float(ptr byval(float))
38