// { dg-do compile { target c++11 } } // { dg-additional-options "-Wno-psabi" } typedef int v4si __attribute__((vector_size (4 * sizeof (int)))); typedef float v4sf __attribute__((vector_size (4 * sizeof (float)))); constexpr v4sf a = __builtin_convertvector (v4si { 1, 2, -3, -4 }, v4sf); constexpr v4sf foo (v4si x) { return __builtin_convertvector (x, v4sf); } constexpr v4sf b = foo (v4si { 3, 4, -1, -2 }); static_assert (a[0] == 1.0f && a[1] == 2.0f && a[2] == -3.0f && a[3] == -4.0f, ""); static_assert (b[0] == 3.0f && b[1] == 4.0f && b[2] == -1.0f && b[3] == -2.0f, "");