// #target: macos-x64

module unionx64;

union Foo
{
    long a;
    char[12] b;
}
extern fn void hello2(Foo f);

fn void hello(Foo f)
{
    hello2(f);
}

/* #expect: unionx64.ll

%Foo = type { i64, [8 x i8] }

declare void @hello2(i64, i64) #0

; Function Attrs:
define void @unionx64.hello(i64 %0, i64 %1) #0 {
entry:
  %f = alloca %Foo, align 8
  store i64 %0, ptr %f, align 8
  %ptradd = getelementptr inbounds i8, ptr %f, i64 8
  store i64 %1, ptr %ptradd, align 8
  %lo = load i64, ptr %f, align 8
  %ptradd1 = getelementptr inbounds i8, ptr %f, i64 8
  %hi = load i64, ptr %ptradd1, align 8
  call void @hello2(i64 %lo, i64 %hi)
  ret void
}
