[PATCH] D21173: [X86] _MM_ALIGN16 attribute support for non-windows targets

Zvi Rackover via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 9 00:21:09 PDT 2016


zvi created this revision.
zvi added reviewers: aaboud, mkuper, echristo, cfe-commits.
zvi set the repository for this revision to rL LLVM.
zvi added a project: clang-c.
Herald added a subscriber: mehdi_amini.

This patch adds support for the _MM_ALIGN16 attribute on non-windows targets. This aligns Clang with ICC which supports the attribute on all targets.

Fixes PR28056

Repository:
  rL LLVM

http://reviews.llvm.org/D21173

Files:
  lib/Headers/xmmintrin.h
  test/Headers/xmmintrin.c

Index: test/Headers/xmmintrin.c
===================================================================
--- test/Headers/xmmintrin.c
+++ test/Headers/xmmintrin.c
@@ -7,6 +7,9 @@
 // REQUIRES: x86-registered-target
 #include <xmmintrin.h>
 
+// 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.
 
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))


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21173.60145.patch
Type: text/x-patch
Size: 831 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160609/af231fbb/attachment.bin>


More information about the cfe-commits mailing list