aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2010-07-08 20:09:45 +0000
committerEli Friedman <eli.friedman@gmail.com>2010-07-08 20:09:45 +0000
commitb085f79e4f8f34b73a524f1946b94f797b7358c7 (patch)
tree16e6691d7a86a1b529a673b6e96df20ce2888b7d
parent0b89799b6fdc6bf88f4800bd0801fe6ed5dffc59 (diff)
PR7588: Fix the _mm_shufflehi_epi16 macro. (The issue was an oversight
involving operator precedence.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107902 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Headers/emmintrin.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Headers/emmintrin.h b/lib/Headers/emmintrin.h
index 8afbe76fbe..f297f36b54 100644
--- a/lib/Headers/emmintrin.h
+++ b/lib/Headers/emmintrin.h
@@ -1222,9 +1222,10 @@ _mm_movemask_epi8(__m128i a)
4, 5, 6, 7))
#define _mm_shufflehi_epi16(a, imm) \
((__m128i)__builtin_shufflevector((__v8hi)(a), (__v8hi) {0}, 0, 1, 2, 3, \
- 4 + ((imm) & 0x3), 4 + ((imm) & 0xc) >> 2, \
- 4 + ((imm) & 0x30) >> 4, \
- 4 + ((imm) & 0xc0) >> 6))
+ 4 + (((imm) & 0x03) >> 0), \
+ 4 + (((imm) & 0x0c) >> 2), \
+ 4 + (((imm) & 0x30) >> 4), \
+ 4 + (((imm) & 0xc0) >> 6)))
static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
_mm_unpackhi_epi8(__m128i a, __m128i b)