Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: third_party/asan/asan_clang_Linux/lib/clang/3.1/include/emmintrin.h

Issue 8575016: Update ASan Linux binaries to r1085 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /*===---- emmintrin.h - SSE2 intrinsics ------------------------------------=== 1 /*===---- emmintrin.h - SSE2 intrinsics ------------------------------------===
2 * 2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy 3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal 4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights 5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is 7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions: 8 * furnished to do so, subject to the following conditions:
9 * 9 *
10 * The above copyright notice and this permission notice shall be included in 10 * The above copyright notice and this permission notice shall be included in
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 { 814 {
815 return a | b; 815 return a | b;
816 } 816 }
817 817
818 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 818 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
819 _mm_xor_si128(__m128i a, __m128i b) 819 _mm_xor_si128(__m128i a, __m128i b)
820 { 820 {
821 return a ^ b; 821 return a ^ b;
822 } 822 }
823 823
824 #define _mm_slli_si128(VEC, IMM) \ 824 #define _mm_slli_si128(a, count) __extension__ ({ \
825 ((__m128i)__builtin_ia32_pslldqi128((__m128i)(VEC), (IMM)*8)) 825 __m128i __a = (a); \
826 (__m128i)__builtin_ia32_pslldqi128(__a, (count)*8); })
826 827
827 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 828 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
828 _mm_slli_epi16(__m128i a, int count) 829 _mm_slli_epi16(__m128i a, int count)
829 { 830 {
830 return (__m128i)__builtin_ia32_psllwi128((__v8hi)a, count); 831 return (__m128i)__builtin_ia32_psllwi128((__v8hi)a, count);
831 } 832 }
832 833
833 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 834 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
834 _mm_sll_epi16(__m128i a, __m128i count) 835 _mm_sll_epi16(__m128i a, __m128i count)
835 { 836 {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 return (__m128i)__builtin_ia32_psradi128((__v4si)a, count); 879 return (__m128i)__builtin_ia32_psradi128((__v4si)a, count);
879 } 880 }
880 881
881 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 882 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
882 _mm_sra_epi32(__m128i a, __m128i count) 883 _mm_sra_epi32(__m128i a, __m128i count)
883 { 884 {
884 return (__m128i)__builtin_ia32_psrad128((__v4si)a, (__v4si)count); 885 return (__m128i)__builtin_ia32_psrad128((__v4si)a, (__v4si)count);
885 } 886 }
886 887
887 888
888 #define _mm_srli_si128(VEC, IMM) \ 889 #define _mm_srli_si128(a, count) __extension__ ({ \
889 ((__m128i)__builtin_ia32_psrldqi128((__m128i)(VEC), (IMM)*8)) 890 __m128i __a = (a); \
891 (__m128i)__builtin_ia32_psrldqi128(__a, (count)*8); })
890 892
891 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 893 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
892 _mm_srli_epi16(__m128i a, int count) 894 _mm_srli_epi16(__m128i a, int count)
893 { 895 {
894 return (__m128i)__builtin_ia32_psrlwi128((__v8hi)a, count); 896 return (__m128i)__builtin_ia32_psrlwi128((__v8hi)a, count);
895 } 897 }
896 898
897 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 899 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
898 _mm_srl_epi16(__m128i a, __m128i count) 900 _mm_srl_epi16(__m128i a, __m128i count)
899 { 901 {
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 c[imm & 7] = b; 1254 c[imm & 7] = b;
1253 return (__m128i)c; 1255 return (__m128i)c;
1254 } 1256 }
1255 1257
1256 static __inline__ int __attribute__((__always_inline__, __nodebug__)) 1258 static __inline__ int __attribute__((__always_inline__, __nodebug__))
1257 _mm_movemask_epi8(__m128i a) 1259 _mm_movemask_epi8(__m128i a)
1258 { 1260 {
1259 return __builtin_ia32_pmovmskb128((__v16qi)a); 1261 return __builtin_ia32_pmovmskb128((__v16qi)a);
1260 } 1262 }
1261 1263
1262 #define _mm_shuffle_epi32(a, imm) \ 1264 #define _mm_shuffle_epi32(a, imm) __extension__ ({ \
1263 ((__m128i)__builtin_shufflevector((__v4si)(a), (__v4si) _mm_set1_epi32(0), \ 1265 __m128i __a = (a); \
1264 (imm) & 0x3, ((imm) & 0xc) >> 2, \ 1266 (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si) _mm_set1_epi32(0), \
1265 ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6)) 1267 (imm) & 0x3, ((imm) & 0xc) >> 2, \
1268 ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6); })
1266 1269
1270 #define _mm_shufflelo_epi16(a, imm) __extension__ ({ \
1271 __m128i __a = (a); \
1272 (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi) _mm_set1_epi16(0), \
1273 (imm) & 0x3, ((imm) & 0xc) >> 2, \
1274 ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6, \
1275 4, 5, 6, 7); })
1267 1276
1268 #define _mm_shufflelo_epi16(a, imm) \ 1277 #define _mm_shufflehi_epi16(a, imm) __extension__ ({ \
1269 ((__m128i)__builtin_shufflevector((__v8hi)(a), (__v8hi) _mm_set1_epi16(0), \ 1278 __m128i __a = (a); \
1270 (imm) & 0x3, ((imm) & 0xc) >> 2, \ 1279 (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi) _mm_set1_epi16(0), \
1271 ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6, \ 1280 0, 1, 2, 3, \
1272 4, 5, 6, 7)) 1281 4 + (((imm) & 0x03) >> 0), \
1273 #define _mm_shufflehi_epi16(a, imm) \ 1282 4 + (((imm) & 0x0c) >> 2), \
1274 ((__m128i)__builtin_shufflevector((__v8hi)(a), (__v8hi) _mm_set1_epi16(0), 0, 1, 2, 3, \ 1283 4 + (((imm) & 0x30) >> 4), \
1275 4 + (((imm) & 0x03) >> 0), \ 1284 4 + (((imm) & 0xc0) >> 6)); })
1276 4 + (((imm) & 0x0c) >> 2), \
1277 4 + (((imm) & 0x30) >> 4), \
1278 4 + (((imm) & 0xc0) >> 6)))
1279 1285
1280 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 1286 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
1281 _mm_unpackhi_epi8(__m128i a, __m128i b) 1287 _mm_unpackhi_epi8(__m128i a, __m128i b)
1282 { 1288 {
1283 return (__m128i)__builtin_shufflevector((__v16qi)a, (__v16qi)b, 8, 16+8, 9, 16 +9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15); 1289 return (__m128i)__builtin_shufflevector((__v16qi)a, (__v16qi)b, 8, 16+8, 9, 16 +9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15);
1284 } 1290 }
1285 1291
1286 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 1292 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
1287 _mm_unpackhi_epi16(__m128i a, __m128i b) 1293 _mm_unpackhi_epi16(__m128i a, __m128i b)
1288 { 1294 {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1354 { 1360 {
1355 return __builtin_shufflevector(a, b, 0, 2+0); 1361 return __builtin_shufflevector(a, b, 0, 2+0);
1356 } 1362 }
1357 1363
1358 static __inline__ int __attribute__((__always_inline__, __nodebug__)) 1364 static __inline__ int __attribute__((__always_inline__, __nodebug__))
1359 _mm_movemask_pd(__m128d a) 1365 _mm_movemask_pd(__m128d a)
1360 { 1366 {
1361 return __builtin_ia32_movmskpd(a); 1367 return __builtin_ia32_movmskpd(a);
1362 } 1368 }
1363 1369
1364 #define _mm_shuffle_pd(a, b, i) \ 1370 #define _mm_shuffle_pd(a, b, i) __extension__ ({ \
1365 (__builtin_shufflevector((__m128d)(a), (__m128d)(b), (i) & 1, \ 1371 __m128d __a = (a); \
1366 (((i) & 2) >> 1) + 2)) 1372 __m128d __b = (b); \
1373 __builtin_shufflevector(__a, __b, (i) & 1, (((i) & 2) >> 1) + 2); })
1367 1374
1368 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__)) 1375 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
1369 _mm_castpd_ps(__m128d in) 1376 _mm_castpd_ps(__m128d in)
1370 { 1377 {
1371 return (__m128)in; 1378 return (__m128)in;
1372 } 1379 }
1373 1380
1374 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__)) 1381 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
1375 _mm_castpd_si128(__m128d in) 1382 _mm_castpd_si128(__m128d in)
1376 { 1383 {
(...skipping 28 matching lines...) Expand all
1405 _mm_pause(void) 1412 _mm_pause(void)
1406 { 1413 {
1407 __asm__ volatile ("pause"); 1414 __asm__ volatile ("pause");
1408 } 1415 }
1409 1416
1410 #define _MM_SHUFFLE2(x, y) (((x) << 1) | (y)) 1417 #define _MM_SHUFFLE2(x, y) (((x) << 1) | (y))
1411 1418
1412 #endif /* __SSE2__ */ 1419 #endif /* __SSE2__ */
1413 1420
1414 #endif /* __EMMINTRIN_H */ 1421 #endif /* __EMMINTRIN_H */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698