Index: lib/Headers/xmmintrin.h =================================================================== --- lib/Headers/xmmintrin.h +++ lib/Headers/xmmintrin.h @@ -2823,6 +2823,8 @@ #ifdef _MSC_VER #define _MM_ALIGN16 __declspec(align(16)) +#else +#define _MM_ALIGN16 __attribute__((aligned(16))) #endif #define _MM_SHUFFLE(z, y, x, w) (((z) << 6) | ((y) << 4) | ((x) << 2) | (w)) Index: test/Headers/xmmintrin.c =================================================================== --- test/Headers/xmmintrin.c +++ test/Headers/xmmintrin.c @@ -7,6 +7,9 @@ // REQUIRES: x86-registered-target #include +// CHECK: @c = common global i8 0, align 16 +_MM_ALIGN16 char c; + // Make sure the last step of _mm_cvtps_pi16 converts <4 x i32> to <4 x i16> by // checking that clang emits PACKSSDW instead of PACKSSWB.