; REQUIRES: asserts
; RUN: opt -mergefunc -stats -disable-output < %s 2>&1 | grep "functions merged"

; This test is checks whether we can merge
;   vector<intptr_t>::push_back(0)
; and
;   vector<void *>::push_back(0)
; .

target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"

%0 = type { i32, void ()* }
%1 = type { i64, i1 }
%"class.std::vector" = type { [24 x i8] }

@vi = global %"class.std::vector" zeroinitializer, align 8
@__dso_handle = external unnamed_addr global i8*
@vp = global %"class.std::vector" zeroinitializer, align 8
@llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I_a }]

define linkonce_odr void @_ZNSt6vectorIlSaIlEED1Ev(%"class.std::vector"* nocapture %this) unnamed_addr align 2 {
entry:
  %tmp2.i.i = bitcast %"class.std::vector"* %this to i64**
  %tmp3.i.i = load i64*, i64** %tmp2.i.i, align 8
  %tobool.i.i.i = icmp eq i64* %tmp3.i.i, null
  br i1 %tobool.i.i.i, label %_ZNSt6vectorIlSaIlEED2Ev.exit, label %if.then.i.i.i

if.then.i.i.i:                                    ; preds = %entry
  %0 = bitcast i64* %tmp3.i.i to i8*
  tail call void @_ZdlPv(i8* %0) nounwind
  ret void

_ZNSt6vectorIlSaIlEED2Ev.exit:                    ; preds = %entry
  ret void
}

declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*)

define linkonce_odr void @_ZNSt6vectorIPvSaIS0_EED1Ev(%"class.std::vector"* nocapture %this) unnamed_addr align 2 {
entry:
  %tmp2.i.i = bitcast %"class.std::vector"* %this to i8***
  %tmp3.i.i = load i8**, i8*** %tmp2.i.i, align 8
  %tobool.i.i.i = icmp eq i8** %tmp3.i.i, null
  br i1 %tobool.i.i.i, label %_ZNSt6vectorIPvSaIS0_EED2Ev.exit, label %if.then.i.i.i

if.then.i.i.i:                                    ; preds = %entry
  %0 = bitcast i8** %tmp3.i.i to i8*
  tail call void @_ZdlPv(i8* %0) nounwind
  ret void

_ZNSt6vectorIPvSaIS0_EED2Ev.exit:                 ; preds = %entry
  ret void
}

declare void @_Z1fv()

declare void @_ZNSt6vectorIPvSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_(%"class.std::vector"* nocapture %this, i8** %__position.coerce, i8** nocapture %__x) align 2

declare void @_ZdlPv(i8*) nounwind

declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind

declare void @_ZSt17__throw_bad_allocv() noreturn

declare noalias i8* @_Znwm(i64)

declare void @_ZNSt6vectorIlSaIlEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPlS1_EERKl(%"class.std::vector"* nocapture %this, i64* %__position.coerce, i64* nocapture %__x) align 2

declare void @_GLOBAL__I_a()

declare %1 @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone
