[PATCH] [Headers] Improve codegen for _mm_slli_epi32.

Michael Spencer bigcheesegs at gmail.com
Fri Apr 11 04:56:48 PDT 2014


Hi dblaikie,

This generates vector llvm ir for _mm_slli_epi32 to allow
further optimization.

http://reviews.llvm.org/D3353

Files:
  lib/Headers/emmintrin.h

Index: lib/Headers/emmintrin.h
===================================================================
--- lib/Headers/emmintrin.h
+++ lib/Headers/emmintrin.h
@@ -846,7 +846,7 @@
 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
 _mm_slli_epi32(__m128i __a, int __count)
 {
-  return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
+  return (__m128i)((__v4si)__a << (__v4si){__count, __count, __count, __count});
 }
 
 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D3353.1.patch
Type: text/x-patch
Size: 524 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140411/7f36f34a/attachment.bin>


More information about the cfe-commits mailing list