union-align.c
432 Bytes
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | grep load | grep "4 x float" | not grep "align 4"
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | grep load | grep "4 x float" | grep "align 16"
// PR3432
// rdar://6536377
typedef float __m128 __attribute__ ((__vector_size__ (16)));
typedef union
{
int i[4];
float f[4];
__m128 v;
} u_t;
__m128 t(u_t *a) {
return a->v;
}