#include // Inline the typedef of __m128 instead of including immintrin.h. #if defined(__GNUC__) || defined(__clang__) typedef float __m128 __attribute__((__vector_size__(16), __may_alias__)); #elif defined(_MSC_VER) typedef union __declspec(intrin_type) __declspec(align(16)) __m128 { float m128_f32[4]; } __m128; #else #error "Unknown vendor" #endif void test20652(const __m128& a) { union { __m128 value; float array[4]; } b; b.value = a; assert(b.array[0] == 1); assert(b.array[1] == 1); assert(b.array[2] == 1); assert(b.array[3] == 1); }