brintos

brintos / llvm-project-archived public Read only

0
0
Text · 870 B · 1bd748f Raw
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