; RUN: opt -S -passes=mergefunc < %s | FileCheck %s | |
%A = type { i32 } | |
%B = type { i32 } | |
; CHECK-NOT: @b | |
@x = constant { ptr, ptr } | |
{ ptr @a, | |
ptr @b } | |
; CHECK: { ptr @a, ptr @a } | |
define internal i32 @a(%A) unnamed_addr { | |
extractvalue %A %0, 0 | |
xor i32 %2, 0 | |
ret i32 %3 | |
} | |
define internal i32 @b(%B) unnamed_addr { | |
extractvalue %B %0, 0 | |
xor i32 %2, 0 | |
ret i32 %3 | |
} | |
define i32 @c(i32) { | |
insertvalue %B undef, i32 %0, 0 | |
call i32 @b(%B %2) | |
; CHECK: call i32 @a(%B %2) | |
ret i32 %3 | |
} |