; This used to be invalid, but now it's valid.  Ensure the verifier
; doesn't reject it.
; RUN: llvm-as %s -o /dev/null

declare void @doit(i64* inalloca(i64) %a)

define void @a() {
entry:
  %a = alloca inalloca [2 x i32]
  %b = bitcast [2 x i32]* %a to i64*
  call void @doit(i64* inalloca(i64) %b)
  ret void
}

define void @b() {
entry:
  %a = alloca inalloca i64
  call void @doit(i64* inalloca(i64) %a)
  call void @doit(i64* inalloca(i64) %a)
  ret void
}

define void @c(i1 %cond) {
entry:
  br i1 %cond, label %if, label %else

if:
  %a = alloca inalloca i64
  br label %call

else:
  %b = alloca inalloca i64
  br label %call

call:
  %args = phi i64* [ %a, %if ], [ %b, %else ]
  call void @doit(i64* inalloca(i64) %args)
  ret void
}
