aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Basic/BuiltinsX86.def1
-rw-r--r--lib/Headers/xmmintrin.h4
2 files changed, 2 insertions, 3 deletions
diff --git a/include/clang/Basic/BuiltinsX86.def b/include/clang/Basic/BuiltinsX86.def
index 8a730a836b..cb14f5015e 100644
--- a/include/clang/Basic/BuiltinsX86.def
+++ b/include/clang/Basic/BuiltinsX86.def
@@ -82,6 +82,7 @@ BUILTIN(__builtin_ia32_psradi, "V2iV2ii", "")
BUILTIN(__builtin_ia32_packsswb, "V8cV4sV4s", "")
BUILTIN(__builtin_ia32_packssdw, "V4sV2iV2i", "")
BUILTIN(__builtin_ia32_packuswb, "V8cV4sV4s", "")
+BUILTIN(__builtin_ia32_pshufw, "V4sV4sIi", "")
BUILTIN(__builtin_ia32_punpckhbw, "V8cV8cV8c", "")
BUILTIN(__builtin_ia32_punpckhwd, "V4sV4sV4s", "")
BUILTIN(__builtin_ia32_punpckhdq, "V2iV2iV2i", "")
diff --git a/lib/Headers/xmmintrin.h b/lib/Headers/xmmintrin.h
index 8363b4594b..6f270f8e08 100644
--- a/lib/Headers/xmmintrin.h
+++ b/lib/Headers/xmmintrin.h
@@ -712,9 +712,7 @@ _mm_mulhi_pu16(__m64 a, __m64 b)
}
#define _mm_shuffle_pi16(a, n) \
- ((__m64)__builtin_shufflevector((__v4hi)(a), (__v4hi) {0}, \
- (n) & 0x3, ((n) & 0xc) >> 2, \
- ((n) & 0x30) >> 4, ((n) & 0xc0) >> 6))
+ ((__m64)__builtin_ia32_pshufw(a, n))
static __inline__ void __attribute__((__always_inline__, __nodebug__))
_mm_maskmove_si64(__m64 d, __m64 n, char *p)