36 lines
870 B
LLVM
36 lines
870 B
LLVM
|
; RUN: opt -S -passes=mergefunc < %s | FileCheck %s
|
||
|
|
||
|
@llvm.compiler.used = appending global [1 x ptr] [ptr @a], section "llvm.metadata"
|
||
|
|
||
|
define internal i32 @a(i32 %a) unnamed_addr {
|
||
|
%b = xor i32 %a, 0
|
||
|
%c = xor i32 %b, 0
|
||
|
ret i32 %c
|
||
|
}
|
||
|
|
||
|
define i32 @b(i32 %a) unnamed_addr {
|
||
|
%b = xor i32 %a, 0
|
||
|
%c = xor i32 %b, 0
|
||
|
ret i32 %c
|
||
|
}
|
||
|
|
||
|
define i32 @c(i32 %a) unnamed_addr {
|
||
|
%b = tail call i32 @a(i32 %a)
|
||
|
ret i32 %b
|
||
|
}
|
||
|
|
||
|
; CHECK-LABEL: @llvm.compiler.used = appending global [1 x ptr] [ptr @a], section "llvm.metadata"
|
||
|
|
||
|
; CHECK-LABEL: define i32 @b(i32 %a) unnamed_addr
|
||
|
; CHECK-NEXT: xor
|
||
|
; CHECK-NEXT: xor
|
||
|
; CHECK-NEXT: ret
|
||
|
|
||
|
; CHECK-LABEL: define i32 @c(i32 %a) unnamed_addr
|
||
|
; CHECK-NEXT: tail call i32 @b(i32 %a)
|
||
|
; CHECK-NEXT: ret
|
||
|
|
||
|
; CHECK-LABEL: define internal i32 @a(i32 %0) unnamed_addr
|
||
|
; CHECK-NEXT: tail call i32 @b(i32 %0)
|
||
|
; CHECK-NEXT: ret
|