| ; RUN: opt -S -mergefunc < %s | FileCheck %s |
| |
| ; After test3 and test4 have been merged, we should detect that |
| ; test1 and test2 can also be merged. |
| |
| ; CHECK: define void @test4() unnamed_addr |
| ; CHECK-NEXT: tail call void @test3() |
| ; CHECK: define void @test2() unnamed_addr |
| ; CHECK-NEXT: tail call void @test1() |
| |
| declare void @dummy() |
| |
| define void @test1() unnamed_addr { |
| call void @test3() |
| call void @test3() |
| ret void |
| } |
| |
| define void @test2() unnamed_addr { |
| call void @test4() |
| call void @test4() |
| ret void |
| } |
| |
| define void @test3() unnamed_addr { |
| call void @dummy() |
| call void @dummy() |
| ret void |
| } |
| |
| define void @test4() unnamed_addr { |
| call void @dummy() |
| call void @dummy() |
| ret void |
| } |