36 lines · plain
1; RUN: opt -S -passes=mergefunc < %s | FileCheck %s2 3@llvm.compiler.used = appending global [1 x ptr] [ptr @a], section "llvm.metadata"4 5define internal i32 @a(i32 %a) unnamed_addr {6 %b = xor i32 %a, 07 %c = xor i32 %b, 08 ret i32 %c9}10 11define i32 @b(i32 %a) unnamed_addr {12 %b = xor i32 %a, 013 %c = xor i32 %b, 014 ret i32 %c15}16 17define i32 @c(i32 %a) unnamed_addr {18 %b = tail call i32 @a(i32 %a)19 ret i32 %b20}21 22; CHECK-LABEL: @llvm.compiler.used = appending global [1 x ptr] [ptr @a], section "llvm.metadata"23 24; CHECK-LABEL: define i32 @b(i32 %a) unnamed_addr25; CHECK-NEXT: xor26; CHECK-NEXT: xor27; CHECK-NEXT: ret28 29; CHECK-LABEL: define i32 @c(i32 %a) unnamed_addr30; CHECK-NEXT: tail call i32 @b(i32 %a)31; CHECK-NEXT: ret32 33; CHECK-LABEL: define internal i32 @a(i32 %0) unnamed_addr34; CHECK-NEXT: tail call i32 @b(i32 %0)35; CHECK-NEXT: ret36