Compiler projects using llvm
; RUN: opt -S -mergefunc %s | FileCheck %s

; CHECK-LABEL: define void @foo
; CHECK: call void %bc
define void @foo(i8* byval(i8) %a0, i8* swiftself %a4) {
entry:
  %bc = bitcast i8* %a0 to void (i8*, i8*)*
  call void %bc(i8* byval(i8) %a0, i8* swiftself %a4)
  ret void
}

; CHECK-LABEL: define void @bar
; CHECK: call void %bc
define void @bar(i8* byval(i8) %a0, i8** swifterror %a4) {
entry:
  %bc = bitcast i8* %a0 to void (i8*, i8**)*
  call void %bc(i8* byval(i8) %a0, i8** swifterror %a4)
  ret void
}