Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / MergeFunc / external-before-local.ll
blob9f2d5e41b700fc17239674ba981bcf1855397431
1 ; RUN: opt -S -passes=mergefunc < %s | FileCheck %s
3 ; We should normalize to test2 rather than test1,
4 ; because it allows us to drop test1 entirely
6 ; CHECK-NOT: define internal void @test1() unnamed_addr
7 ; CHECK: define void @test3() unnamed_addr
8 ; CHECK-NEXT: call void @test2()
9 ; CHECK-NEXT: call void @test2()
11 declare void @dummy()
13 define internal void @test1() unnamed_addr {
14     call void @dummy()
15     call void @dummy()
16     ret void
19 define void @test2() unnamed_addr {
20     call void @dummy()
21     call void @dummy()
22     ret void
25 define void @test3() unnamed_addr {
26     call void @test1()
27     call void @test2()
28     ret void
31 ; We should normalize to the existing test6 rather than
32 ; to a new anonymous strong backing function
34 ; CHECK: define weak void @test5()
35 ; CHECK-NEXT: tail call void @test6()
36 ; CHECK: define weak void @test4()
37 ; CHECK-NEXT: tail call void @test6()
39 declare void @dummy2()
41 define weak void @test4() {
42     call void @dummy2()
43     call void @dummy2()
44     ret void
46 define weak void @test5() {
47     call void @dummy2()
48     call void @dummy2()
49     ret void
51 define void @test6() {
52     call void @dummy2()
53     call void @dummy2()
54     ret void