// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106139
// { dg-do compile }

alias A = int[4];

static if (__traits(compiles, __vector(A))):

A vector2array(__vector(A) v)
{
    return cast(A)v;
}

void vector2array(ref A a, __vector(A) v)
{
    a = cast(A)v;
}

__vector(A) array2vector(A a)
{
    return cast(__vector(A)) a;
}

void array2vector(ref __vector(A) v, A a)
{
    v = cast(__vector(A))a;
}

A vector2array_array(__vector(A) v)
{
    return v.array;
}

void vector2array_array(ref A a, __vector(A) v)
{
    a = v.array;
}
