xref: /llvm-project/llvm/test/Transforms/MergeFunc/merge-unnamed-addr-bitcast.ll (revision ee2789001b8558656a13502f0de2c81dcb419430)
1; RUN: opt -S -passes=mergefunc < %s | FileCheck %s
2
3%A = type { i32 }
4%B = type { i32 }
5
6; CHECK-NOT: @b
7
8@x = constant { ptr, ptr }
9  { ptr @a,
10    ptr @b }
11; CHECK: { ptr @a, ptr @a }
12
13define internal i32 @a(%A) unnamed_addr {
14  extractvalue %A %0, 0
15  xor i32 %2, 0
16  ret i32 %3
17}
18
19define internal i32 @b(%B) unnamed_addr {
20  extractvalue %B %0, 0
21  xor i32 %2, 0
22  ret i32 %3
23}
24
25define i32 @c(i32) {
26  insertvalue %B undef, i32 %0, 0
27  call i32 @b(%B %2)
28; CHECK: call i32 @a(%B %2)
29  ret i32 %3
30}
31