//@ add-minicore
//@ revisions:x86-linux x86-darwin

//@[x86-linux] compile-flags: --target i686-unknown-linux-gnu
//@[x86-linux] needs-llvm-components: x86
//@[x86-darwin] compile-flags: --target i686-apple-darwin
//@[x86-darwin] needs-llvm-components: x86

// Tests that aggregates containing vector types get their alignment increased to 16 on Darwin.

#![feature(no_core, repr_simd, simd_ffi)]
#![crate_type = "lib"]
#![no_std]
#![no_core]
#![allow(non_camel_case_types)]

extern crate minicore;
use minicore::*;

#[repr(simd)]
pub struct i32x4([i32; 4]);

#[repr(C)]
pub struct Foo {
    a: i32x4,
    b: i8,
}

// This tests that we recursively check for vector types, not just at the top level.
#[repr(C)]
pub struct DoubleFoo {
    one: Foo,
    two: Foo,
}

extern "C" {
    // x86-linux: declare void @f({{.*}}byval([32 x i8]) align 4{{.*}})
    // x86-darwin: declare void @f({{.*}}byval([32 x i8]) align 16{{.*}})
    fn f(foo: Foo);

    // x86-linux: declare void @g({{.*}}byval([64 x i8]) align 4{{.*}})
    // x86-darwin: declare void @g({{.*}}byval([64 x i8]) align 16{{.*}})
    fn g(foo: DoubleFoo);
}

pub fn main() {
    unsafe { f(Foo { a: i32x4([1, 2, 3, 4]), b: 0 }) }

    unsafe {
        g(DoubleFoo {
            one: Foo { a: i32x4([1, 2, 3, 4]), b: 0 },
            two: Foo { a: i32x4([1, 2, 3, 4]), b: 0 },
        })
    }
}
