Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------===
  2.  *
  3.  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4.  * See https://llvm.org/LICENSE.txt for license information.
  5.  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6.  *
  7.  *===-----------------------------------------------------------------------===
  8.  */
  9.  
  10. #ifndef __IMMINTRIN_H
  11. #error "Never use <avx512vlintrin.h> directly; include <immintrin.h> instead."
  12. #endif
  13.  
  14. #ifndef __AVX512VLINTRIN_H
  15. #define __AVX512VLINTRIN_H
  16.  
  17. #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128)))
  18. #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256)))
  19.  
  20. typedef short __v2hi __attribute__((__vector_size__(4)));
  21. typedef char __v4qi __attribute__((__vector_size__(4)));
  22. typedef char __v2qi __attribute__((__vector_size__(2)));
  23.  
  24. /* Integer compare */
  25.  
  26. #define _mm_cmpeq_epi32_mask(A, B) \
  27.     _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ)
  28. #define _mm_mask_cmpeq_epi32_mask(k, A, B) \
  29.     _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ)
  30. #define _mm_cmpge_epi32_mask(A, B) \
  31.     _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_GE)
  32. #define _mm_mask_cmpge_epi32_mask(k, A, B) \
  33.     _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE)
  34. #define _mm_cmpgt_epi32_mask(A, B) \
  35.     _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_GT)
  36. #define _mm_mask_cmpgt_epi32_mask(k, A, B) \
  37.     _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT)
  38. #define _mm_cmple_epi32_mask(A, B) \
  39.     _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_LE)
  40. #define _mm_mask_cmple_epi32_mask(k, A, B) \
  41.     _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE)
  42. #define _mm_cmplt_epi32_mask(A, B) \
  43.     _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_LT)
  44. #define _mm_mask_cmplt_epi32_mask(k, A, B) \
  45.     _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT)
  46. #define _mm_cmpneq_epi32_mask(A, B) \
  47.     _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_NE)
  48. #define _mm_mask_cmpneq_epi32_mask(k, A, B) \
  49.     _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE)
  50.  
  51. #define _mm256_cmpeq_epi32_mask(A, B) \
  52.     _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ)
  53. #define _mm256_mask_cmpeq_epi32_mask(k, A, B) \
  54.     _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ)
  55. #define _mm256_cmpge_epi32_mask(A, B) \
  56.     _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_GE)
  57. #define _mm256_mask_cmpge_epi32_mask(k, A, B) \
  58.     _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE)
  59. #define _mm256_cmpgt_epi32_mask(A, B) \
  60.     _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_GT)
  61. #define _mm256_mask_cmpgt_epi32_mask(k, A, B) \
  62.     _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT)
  63. #define _mm256_cmple_epi32_mask(A, B) \
  64.     _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_LE)
  65. #define _mm256_mask_cmple_epi32_mask(k, A, B) \
  66.     _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE)
  67. #define _mm256_cmplt_epi32_mask(A, B) \
  68.     _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_LT)
  69. #define _mm256_mask_cmplt_epi32_mask(k, A, B) \
  70.     _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT)
  71. #define _mm256_cmpneq_epi32_mask(A, B) \
  72.     _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_NE)
  73. #define _mm256_mask_cmpneq_epi32_mask(k, A, B) \
  74.     _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE)
  75.  
  76. #define _mm_cmpeq_epu32_mask(A, B) \
  77.     _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ)
  78. #define _mm_mask_cmpeq_epu32_mask(k, A, B) \
  79.     _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ)
  80. #define _mm_cmpge_epu32_mask(A, B) \
  81.     _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_GE)
  82. #define _mm_mask_cmpge_epu32_mask(k, A, B) \
  83.     _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE)
  84. #define _mm_cmpgt_epu32_mask(A, B) \
  85.     _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_GT)
  86. #define _mm_mask_cmpgt_epu32_mask(k, A, B) \
  87.     _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT)
  88. #define _mm_cmple_epu32_mask(A, B) \
  89.     _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_LE)
  90. #define _mm_mask_cmple_epu32_mask(k, A, B) \
  91.     _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE)
  92. #define _mm_cmplt_epu32_mask(A, B) \
  93.     _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_LT)
  94. #define _mm_mask_cmplt_epu32_mask(k, A, B) \
  95.     _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT)
  96. #define _mm_cmpneq_epu32_mask(A, B) \
  97.     _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_NE)
  98. #define _mm_mask_cmpneq_epu32_mask(k, A, B) \
  99.     _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE)
  100.  
  101. #define _mm256_cmpeq_epu32_mask(A, B) \
  102.     _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ)
  103. #define _mm256_mask_cmpeq_epu32_mask(k, A, B) \
  104.     _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ)
  105. #define _mm256_cmpge_epu32_mask(A, B) \
  106.     _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_GE)
  107. #define _mm256_mask_cmpge_epu32_mask(k, A, B) \
  108.     _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE)
  109. #define _mm256_cmpgt_epu32_mask(A, B) \
  110.     _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_GT)
  111. #define _mm256_mask_cmpgt_epu32_mask(k, A, B) \
  112.     _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT)
  113. #define _mm256_cmple_epu32_mask(A, B) \
  114.     _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_LE)
  115. #define _mm256_mask_cmple_epu32_mask(k, A, B) \
  116.     _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE)
  117. #define _mm256_cmplt_epu32_mask(A, B) \
  118.     _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_LT)
  119. #define _mm256_mask_cmplt_epu32_mask(k, A, B) \
  120.     _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT)
  121. #define _mm256_cmpneq_epu32_mask(A, B) \
  122.     _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_NE)
  123. #define _mm256_mask_cmpneq_epu32_mask(k, A, B) \
  124.     _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE)
  125.  
  126. #define _mm_cmpeq_epi64_mask(A, B) \
  127.     _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ)
  128. #define _mm_mask_cmpeq_epi64_mask(k, A, B) \
  129.     _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ)
  130. #define _mm_cmpge_epi64_mask(A, B) \
  131.     _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_GE)
  132. #define _mm_mask_cmpge_epi64_mask(k, A, B) \
  133.     _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE)
  134. #define _mm_cmpgt_epi64_mask(A, B) \
  135.     _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_GT)
  136. #define _mm_mask_cmpgt_epi64_mask(k, A, B) \
  137.     _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT)
  138. #define _mm_cmple_epi64_mask(A, B) \
  139.     _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_LE)
  140. #define _mm_mask_cmple_epi64_mask(k, A, B) \
  141.     _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE)
  142. #define _mm_cmplt_epi64_mask(A, B) \
  143.     _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_LT)
  144. #define _mm_mask_cmplt_epi64_mask(k, A, B) \
  145.     _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT)
  146. #define _mm_cmpneq_epi64_mask(A, B) \
  147.     _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_NE)
  148. #define _mm_mask_cmpneq_epi64_mask(k, A, B) \
  149.     _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE)
  150.  
  151. #define _mm256_cmpeq_epi64_mask(A, B) \
  152.     _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ)
  153. #define _mm256_mask_cmpeq_epi64_mask(k, A, B) \
  154.     _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ)
  155. #define _mm256_cmpge_epi64_mask(A, B) \
  156.     _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_GE)
  157. #define _mm256_mask_cmpge_epi64_mask(k, A, B) \
  158.     _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE)
  159. #define _mm256_cmpgt_epi64_mask(A, B) \
  160.     _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_GT)
  161. #define _mm256_mask_cmpgt_epi64_mask(k, A, B) \
  162.     _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT)
  163. #define _mm256_cmple_epi64_mask(A, B) \
  164.     _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_LE)
  165. #define _mm256_mask_cmple_epi64_mask(k, A, B) \
  166.     _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE)
  167. #define _mm256_cmplt_epi64_mask(A, B) \
  168.     _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_LT)
  169. #define _mm256_mask_cmplt_epi64_mask(k, A, B) \
  170.     _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT)
  171. #define _mm256_cmpneq_epi64_mask(A, B) \
  172.     _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_NE)
  173. #define _mm256_mask_cmpneq_epi64_mask(k, A, B) \
  174.     _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE)
  175.  
  176. #define _mm_cmpeq_epu64_mask(A, B) \
  177.     _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ)
  178. #define _mm_mask_cmpeq_epu64_mask(k, A, B) \
  179.     _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ)
  180. #define _mm_cmpge_epu64_mask(A, B) \
  181.     _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_GE)
  182. #define _mm_mask_cmpge_epu64_mask(k, A, B) \
  183.     _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE)
  184. #define _mm_cmpgt_epu64_mask(A, B) \
  185.     _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_GT)
  186. #define _mm_mask_cmpgt_epu64_mask(k, A, B) \
  187.     _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT)
  188. #define _mm_cmple_epu64_mask(A, B) \
  189.     _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_LE)
  190. #define _mm_mask_cmple_epu64_mask(k, A, B) \
  191.     _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE)
  192. #define _mm_cmplt_epu64_mask(A, B) \
  193.     _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_LT)
  194. #define _mm_mask_cmplt_epu64_mask(k, A, B) \
  195.     _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT)
  196. #define _mm_cmpneq_epu64_mask(A, B) \
  197.     _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_NE)
  198. #define _mm_mask_cmpneq_epu64_mask(k, A, B) \
  199.     _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE)
  200.  
  201. #define _mm256_cmpeq_epu64_mask(A, B) \
  202.     _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ)
  203. #define _mm256_mask_cmpeq_epu64_mask(k, A, B) \
  204.     _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ)
  205. #define _mm256_cmpge_epu64_mask(A, B) \
  206.     _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_GE)
  207. #define _mm256_mask_cmpge_epu64_mask(k, A, B) \
  208.     _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE)
  209. #define _mm256_cmpgt_epu64_mask(A, B) \
  210.     _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_GT)
  211. #define _mm256_mask_cmpgt_epu64_mask(k, A, B) \
  212.     _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT)
  213. #define _mm256_cmple_epu64_mask(A, B) \
  214.     _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_LE)
  215. #define _mm256_mask_cmple_epu64_mask(k, A, B) \
  216.     _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE)
  217. #define _mm256_cmplt_epu64_mask(A, B) \
  218.     _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_LT)
  219. #define _mm256_mask_cmplt_epu64_mask(k, A, B) \
  220.     _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT)
  221. #define _mm256_cmpneq_epu64_mask(A, B) \
  222.     _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_NE)
  223. #define _mm256_mask_cmpneq_epu64_mask(k, A, B) \
  224.     _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE)
  225.  
  226. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  227. _mm256_mask_add_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  228. {
  229.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  230.                                              (__v8si)_mm256_add_epi32(__A, __B),
  231.                                              (__v8si)__W);
  232. }
  233.  
  234. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  235. _mm256_maskz_add_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  236. {
  237.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  238.                                              (__v8si)_mm256_add_epi32(__A, __B),
  239.                                              (__v8si)_mm256_setzero_si256());
  240. }
  241.  
  242. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  243. _mm256_mask_add_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  244. {
  245.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  246.                                              (__v4di)_mm256_add_epi64(__A, __B),
  247.                                              (__v4di)__W);
  248. }
  249.  
  250. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  251. _mm256_maskz_add_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  252. {
  253.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  254.                                              (__v4di)_mm256_add_epi64(__A, __B),
  255.                                              (__v4di)_mm256_setzero_si256());
  256. }
  257.  
  258. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  259. _mm256_mask_sub_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  260. {
  261.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  262.                                              (__v8si)_mm256_sub_epi32(__A, __B),
  263.                                              (__v8si)__W);
  264. }
  265.  
  266. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  267. _mm256_maskz_sub_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  268. {
  269.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  270.                                              (__v8si)_mm256_sub_epi32(__A, __B),
  271.                                              (__v8si)_mm256_setzero_si256());
  272. }
  273.  
  274. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  275. _mm256_mask_sub_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  276. {
  277.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  278.                                              (__v4di)_mm256_sub_epi64(__A, __B),
  279.                                              (__v4di)__W);
  280. }
  281.  
  282. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  283. _mm256_maskz_sub_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  284. {
  285.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  286.                                              (__v4di)_mm256_sub_epi64(__A, __B),
  287.                                              (__v4di)_mm256_setzero_si256());
  288. }
  289.  
  290. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  291. _mm_mask_add_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  292. {
  293.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  294.                                              (__v4si)_mm_add_epi32(__A, __B),
  295.                                              (__v4si)__W);
  296. }
  297.  
  298. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  299. _mm_maskz_add_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  300. {
  301.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  302.                                              (__v4si)_mm_add_epi32(__A, __B),
  303.                                              (__v4si)_mm_setzero_si128());
  304. }
  305.  
  306. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  307. _mm_mask_add_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  308. {
  309.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  310.                                              (__v2di)_mm_add_epi64(__A, __B),
  311.                                              (__v2di)__W);
  312. }
  313.  
  314. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  315. _mm_maskz_add_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  316. {
  317.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  318.                                              (__v2di)_mm_add_epi64(__A, __B),
  319.                                              (__v2di)_mm_setzero_si128());
  320. }
  321.  
  322. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  323. _mm_mask_sub_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  324. {
  325.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  326.                                              (__v4si)_mm_sub_epi32(__A, __B),
  327.                                              (__v4si)__W);
  328. }
  329.  
  330. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  331. _mm_maskz_sub_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  332. {
  333.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  334.                                              (__v4si)_mm_sub_epi32(__A, __B),
  335.                                              (__v4si)_mm_setzero_si128());
  336. }
  337.  
  338. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  339. _mm_mask_sub_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  340. {
  341.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  342.                                              (__v2di)_mm_sub_epi64(__A, __B),
  343.                                              (__v2di)__W);
  344. }
  345.  
  346. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  347. _mm_maskz_sub_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  348. {
  349.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  350.                                              (__v2di)_mm_sub_epi64(__A, __B),
  351.                                              (__v2di)_mm_setzero_si128());
  352. }
  353.  
  354. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  355. _mm256_mask_mul_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
  356. {
  357.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  358.                                              (__v4di)_mm256_mul_epi32(__X, __Y),
  359.                                              (__v4di)__W);
  360. }
  361.  
  362. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  363. _mm256_maskz_mul_epi32(__mmask8 __M, __m256i __X, __m256i __Y)
  364. {
  365.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  366.                                              (__v4di)_mm256_mul_epi32(__X, __Y),
  367.                                              (__v4di)_mm256_setzero_si256());
  368. }
  369.  
  370. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  371. _mm_mask_mul_epi32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
  372. {
  373.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  374.                                              (__v2di)_mm_mul_epi32(__X, __Y),
  375.                                              (__v2di)__W);
  376. }
  377.  
  378. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  379. _mm_maskz_mul_epi32(__mmask8 __M, __m128i __X, __m128i __Y)
  380. {
  381.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  382.                                              (__v2di)_mm_mul_epi32(__X, __Y),
  383.                                              (__v2di)_mm_setzero_si128());
  384. }
  385.  
  386. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  387. _mm256_mask_mul_epu32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
  388. {
  389.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  390.                                              (__v4di)_mm256_mul_epu32(__X, __Y),
  391.                                              (__v4di)__W);
  392. }
  393.  
  394. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  395. _mm256_maskz_mul_epu32(__mmask8 __M, __m256i __X, __m256i __Y)
  396. {
  397.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  398.                                              (__v4di)_mm256_mul_epu32(__X, __Y),
  399.                                              (__v4di)_mm256_setzero_si256());
  400. }
  401.  
  402. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  403. _mm_mask_mul_epu32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
  404. {
  405.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  406.                                              (__v2di)_mm_mul_epu32(__X, __Y),
  407.                                              (__v2di)__W);
  408. }
  409.  
  410. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  411. _mm_maskz_mul_epu32(__mmask8 __M, __m128i __X, __m128i __Y)
  412. {
  413.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  414.                                              (__v2di)_mm_mul_epu32(__X, __Y),
  415.                                              (__v2di)_mm_setzero_si128());
  416. }
  417.  
  418. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  419. _mm256_maskz_mullo_epi32(__mmask8 __M, __m256i __A, __m256i __B)
  420. {
  421.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  422.                                              (__v8si)_mm256_mullo_epi32(__A, __B),
  423.                                              (__v8si)_mm256_setzero_si256());
  424. }
  425.  
  426. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  427. _mm256_mask_mullo_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B)
  428. {
  429.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  430.                                              (__v8si)_mm256_mullo_epi32(__A, __B),
  431.                                              (__v8si)__W);
  432. }
  433.  
  434. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  435. _mm_maskz_mullo_epi32(__mmask8 __M, __m128i __A, __m128i __B)
  436. {
  437.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  438.                                              (__v4si)_mm_mullo_epi32(__A, __B),
  439.                                              (__v4si)_mm_setzero_si128());
  440. }
  441.  
  442. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  443. _mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
  444. {
  445.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  446.                                              (__v4si)_mm_mullo_epi32(__A, __B),
  447.                                              (__v4si)__W);
  448. }
  449.  
  450. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  451. _mm256_and_epi32(__m256i __a, __m256i __b)
  452. {
  453.   return (__m256i)((__v8su)__a & (__v8su)__b);
  454. }
  455.  
  456. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  457. _mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  458. {
  459.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  460.                                              (__v8si)_mm256_and_epi32(__A, __B),
  461.                                              (__v8si)__W);
  462. }
  463.  
  464. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  465. _mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  466. {
  467.   return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
  468. }
  469.  
  470. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  471. _mm_and_epi32(__m128i __a, __m128i __b)
  472. {
  473.   return (__m128i)((__v4su)__a & (__v4su)__b);
  474. }
  475.  
  476. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  477. _mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  478. {
  479.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  480.                                              (__v4si)_mm_and_epi32(__A, __B),
  481.                                              (__v4si)__W);
  482. }
  483.  
  484. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  485. _mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  486. {
  487.   return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
  488. }
  489.  
  490. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  491. _mm256_andnot_epi32(__m256i __A, __m256i __B)
  492. {
  493.   return (__m256i)(~(__v8su)__A & (__v8su)__B);
  494. }
  495.  
  496. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  497. _mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  498. {
  499.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  500.                                           (__v8si)_mm256_andnot_epi32(__A, __B),
  501.                                           (__v8si)__W);
  502. }
  503.  
  504. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  505. _mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  506. {
  507.   return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(),
  508.                                            __U, __A, __B);
  509. }
  510.  
  511. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  512. _mm_andnot_epi32(__m128i __A, __m128i __B)
  513. {
  514.   return (__m128i)(~(__v4su)__A & (__v4su)__B);
  515. }
  516.  
  517. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  518. _mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  519. {
  520.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  521.                                              (__v4si)_mm_andnot_epi32(__A, __B),
  522.                                              (__v4si)__W);
  523. }
  524.  
  525. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  526. _mm_maskz_andnot_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  527. {
  528.   return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
  529. }
  530.  
  531. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  532. _mm256_or_epi32(__m256i __a, __m256i __b)
  533. {
  534.   return (__m256i)((__v8su)__a | (__v8su)__b);
  535. }
  536.  
  537. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  538. _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  539. {
  540.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  541.                                              (__v8si)_mm256_or_epi32(__A, __B),
  542.                                              (__v8si)__W);
  543. }
  544.  
  545. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  546. _mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  547. {
  548.   return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
  549. }
  550.  
  551. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  552. _mm_or_epi32(__m128i __a, __m128i __b)
  553. {
  554.   return (__m128i)((__v4su)__a | (__v4su)__b);
  555. }
  556.  
  557. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  558. _mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  559. {
  560.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  561.                                              (__v4si)_mm_or_epi32(__A, __B),
  562.                                              (__v4si)__W);
  563. }
  564.  
  565. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  566. _mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  567. {
  568.   return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
  569. }
  570.  
  571. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  572. _mm256_xor_epi32(__m256i __a, __m256i __b)
  573. {
  574.   return (__m256i)((__v8su)__a ^ (__v8su)__b);
  575. }
  576.  
  577. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  578. _mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  579. {
  580.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  581.                                              (__v8si)_mm256_xor_epi32(__A, __B),
  582.                                              (__v8si)__W);
  583. }
  584.  
  585. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  586. _mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  587. {
  588.   return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B);
  589. }
  590.  
  591. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  592. _mm_xor_epi32(__m128i __a, __m128i __b)
  593. {
  594.   return (__m128i)((__v4su)__a ^ (__v4su)__b);
  595. }
  596.  
  597. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  598. _mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  599. {
  600.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  601.                                              (__v4si)_mm_xor_epi32(__A, __B),
  602.                                              (__v4si)__W);
  603. }
  604.  
  605. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  606. _mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  607. {
  608.   return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
  609. }
  610.  
  611. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  612. _mm256_and_epi64(__m256i __a, __m256i __b)
  613. {
  614.   return (__m256i)((__v4du)__a & (__v4du)__b);
  615. }
  616.  
  617. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  618. _mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  619. {
  620.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  621.                                              (__v4di)_mm256_and_epi64(__A, __B),
  622.                                              (__v4di)__W);
  623. }
  624.  
  625. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  626. _mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  627. {
  628.   return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
  629. }
  630.  
  631. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  632. _mm_and_epi64(__m128i __a, __m128i __b)
  633. {
  634.   return (__m128i)((__v2du)__a & (__v2du)__b);
  635. }
  636.  
  637. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  638. _mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  639. {
  640.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  641.                                              (__v2di)_mm_and_epi64(__A, __B),
  642.                                              (__v2di)__W);
  643. }
  644.  
  645. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  646. _mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  647. {
  648.   return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
  649. }
  650.  
  651. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  652. _mm256_andnot_epi64(__m256i __A, __m256i __B)
  653. {
  654.   return (__m256i)(~(__v4du)__A & (__v4du)__B);
  655. }
  656.  
  657. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  658. _mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  659. {
  660.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  661.                                           (__v4di)_mm256_andnot_epi64(__A, __B),
  662.                                           (__v4di)__W);
  663. }
  664.  
  665. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  666. _mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  667. {
  668.   return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(),
  669.                                            __U, __A, __B);
  670. }
  671.  
  672. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  673. _mm_andnot_epi64(__m128i __A, __m128i __B)
  674. {
  675.   return (__m128i)(~(__v2du)__A & (__v2du)__B);
  676. }
  677.  
  678. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  679. _mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  680. {
  681.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  682.                                              (__v2di)_mm_andnot_epi64(__A, __B),
  683.                                              (__v2di)__W);
  684. }
  685.  
  686. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  687. _mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  688. {
  689.   return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
  690. }
  691.  
  692. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  693. _mm256_or_epi64(__m256i __a, __m256i __b)
  694. {
  695.   return (__m256i)((__v4du)__a | (__v4du)__b);
  696. }
  697.  
  698. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  699. _mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  700. {
  701.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  702.                                              (__v4di)_mm256_or_epi64(__A, __B),
  703.                                              (__v4di)__W);
  704. }
  705.  
  706. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  707. _mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  708. {
  709.   return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
  710. }
  711.  
  712. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  713. _mm_or_epi64(__m128i __a, __m128i __b)
  714. {
  715.   return (__m128i)((__v2du)__a | (__v2du)__b);
  716. }
  717.  
  718. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  719. _mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  720. {
  721.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  722.                                              (__v2di)_mm_or_epi64(__A, __B),
  723.                                              (__v2di)__W);
  724. }
  725.  
  726. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  727. _mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  728. {
  729.   return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
  730. }
  731.  
  732. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  733. _mm256_xor_epi64(__m256i __a, __m256i __b)
  734. {
  735.   return (__m256i)((__v4du)__a ^ (__v4du)__b);
  736. }
  737.  
  738. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  739. _mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  740. {
  741.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  742.                                              (__v4di)_mm256_xor_epi64(__A, __B),
  743.                                              (__v4di)__W);
  744. }
  745.  
  746. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  747. _mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  748. {
  749.   return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
  750. }
  751.  
  752. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  753. _mm_xor_epi64(__m128i __a, __m128i __b)
  754. {
  755.   return (__m128i)((__v2du)__a ^ (__v2du)__b);
  756. }
  757.  
  758. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  759. _mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
  760.         __m128i __B)
  761. {
  762.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  763.                                              (__v2di)_mm_xor_epi64(__A, __B),
  764.                                              (__v2di)__W);
  765. }
  766.  
  767. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  768. _mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  769. {
  770.   return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B);
  771. }
  772.  
  773. #define _mm_cmp_epi32_mask(a, b, p) \
  774.   ((__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
  775.                                          (__v4si)(__m128i)(b), (int)(p), \
  776.                                          (__mmask8)-1))
  777.  
  778. #define _mm_mask_cmp_epi32_mask(m, a, b, p) \
  779.   ((__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \
  780.                                          (__v4si)(__m128i)(b), (int)(p), \
  781.                                          (__mmask8)(m)))
  782.  
  783. #define _mm_cmp_epu32_mask(a, b, p) \
  784.   ((__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
  785.                                           (__v4si)(__m128i)(b), (int)(p), \
  786.                                           (__mmask8)-1))
  787.  
  788. #define _mm_mask_cmp_epu32_mask(m, a, b, p) \
  789.   ((__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \
  790.                                           (__v4si)(__m128i)(b), (int)(p), \
  791.                                           (__mmask8)(m)))
  792.  
  793. #define _mm256_cmp_epi32_mask(a, b, p) \
  794.   ((__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
  795.                                          (__v8si)(__m256i)(b), (int)(p), \
  796.                                          (__mmask8)-1))
  797.  
  798. #define _mm256_mask_cmp_epi32_mask(m, a, b, p) \
  799.   ((__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \
  800.                                          (__v8si)(__m256i)(b), (int)(p), \
  801.                                          (__mmask8)(m)))
  802.  
  803. #define _mm256_cmp_epu32_mask(a, b, p) \
  804.   ((__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
  805.                                           (__v8si)(__m256i)(b), (int)(p), \
  806.                                           (__mmask8)-1))
  807.  
  808. #define _mm256_mask_cmp_epu32_mask(m, a, b, p) \
  809.   ((__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \
  810.                                           (__v8si)(__m256i)(b), (int)(p), \
  811.                                           (__mmask8)(m)))
  812.  
  813. #define _mm_cmp_epi64_mask(a, b, p) \
  814.   ((__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
  815.                                          (__v2di)(__m128i)(b), (int)(p), \
  816.                                          (__mmask8)-1))
  817.  
  818. #define _mm_mask_cmp_epi64_mask(m, a, b, p) \
  819.   ((__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \
  820.                                          (__v2di)(__m128i)(b), (int)(p), \
  821.                                          (__mmask8)(m)))
  822.  
  823. #define _mm_cmp_epu64_mask(a, b, p) \
  824.   ((__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
  825.                                           (__v2di)(__m128i)(b), (int)(p), \
  826.                                           (__mmask8)-1))
  827.  
  828. #define _mm_mask_cmp_epu64_mask(m, a, b, p) \
  829.   ((__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \
  830.                                           (__v2di)(__m128i)(b), (int)(p), \
  831.                                           (__mmask8)(m)))
  832.  
  833. #define _mm256_cmp_epi64_mask(a, b, p) \
  834.   ((__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
  835.                                          (__v4di)(__m256i)(b), (int)(p), \
  836.                                          (__mmask8)-1))
  837.  
  838. #define _mm256_mask_cmp_epi64_mask(m, a, b, p) \
  839.   ((__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \
  840.                                          (__v4di)(__m256i)(b), (int)(p), \
  841.                                          (__mmask8)(m)))
  842.  
  843. #define _mm256_cmp_epu64_mask(a, b, p) \
  844.   ((__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
  845.                                           (__v4di)(__m256i)(b), (int)(p), \
  846.                                           (__mmask8)-1))
  847.  
  848. #define _mm256_mask_cmp_epu64_mask(m, a, b, p) \
  849.   ((__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \
  850.                                           (__v4di)(__m256i)(b), (int)(p), \
  851.                                           (__mmask8)(m)))
  852.  
  853. #define _mm256_cmp_ps_mask(a, b, p)  \
  854.   ((__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
  855.                                           (__v8sf)(__m256)(b), (int)(p), \
  856.                                           (__mmask8)-1))
  857.  
  858. #define _mm256_mask_cmp_ps_mask(m, a, b, p)  \
  859.   ((__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \
  860.                                           (__v8sf)(__m256)(b), (int)(p), \
  861.                                           (__mmask8)(m)))
  862.  
  863. #define _mm256_cmp_pd_mask(a, b, p)  \
  864.   ((__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
  865.                                           (__v4df)(__m256d)(b), (int)(p), \
  866.                                           (__mmask8)-1))
  867.  
  868. #define _mm256_mask_cmp_pd_mask(m, a, b, p)  \
  869.   ((__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \
  870.                                           (__v4df)(__m256d)(b), (int)(p), \
  871.                                           (__mmask8)(m)))
  872.  
  873. #define _mm_cmp_ps_mask(a, b, p)  \
  874.   ((__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
  875.                                           (__v4sf)(__m128)(b), (int)(p), \
  876.                                           (__mmask8)-1))
  877.  
  878. #define _mm_mask_cmp_ps_mask(m, a, b, p)  \
  879.   ((__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \
  880.                                           (__v4sf)(__m128)(b), (int)(p), \
  881.                                           (__mmask8)(m)))
  882.  
  883. #define _mm_cmp_pd_mask(a, b, p)  \
  884.   ((__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
  885.                                           (__v2df)(__m128d)(b), (int)(p), \
  886.                                           (__mmask8)-1))
  887.  
  888. #define _mm_mask_cmp_pd_mask(m, a, b, p)  \
  889.   ((__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \
  890.                                           (__v2df)(__m128d)(b), (int)(p), \
  891.                                           (__mmask8)(m)))
  892.  
  893. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  894. _mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
  895. {
  896.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  897.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  898.                                              (__v2df) __B,
  899.                                              (__v2df) __C),
  900.                     (__v2df) __A);
  901. }
  902.  
  903. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  904. _mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
  905. {
  906.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  907.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  908.                                              (__v2df) __B,
  909.                                              (__v2df) __C),
  910.                     (__v2df) __C);
  911. }
  912.  
  913. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  914. _mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
  915. {
  916.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  917.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  918.                                              (__v2df) __B,
  919.                                              (__v2df) __C),
  920.                     (__v2df)_mm_setzero_pd());
  921. }
  922.  
  923. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  924. _mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
  925. {
  926.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  927.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  928.                                              (__v2df) __B,
  929.                                              -(__v2df) __C),
  930.                     (__v2df) __A);
  931. }
  932.  
  933. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  934. _mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
  935. {
  936.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  937.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  938.                                              (__v2df) __B,
  939.                                              -(__v2df) __C),
  940.                     (__v2df)_mm_setzero_pd());
  941. }
  942.  
  943. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  944. _mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
  945. {
  946.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  947.                     __builtin_ia32_vfmaddpd (-(__v2df) __A,
  948.                                              (__v2df) __B,
  949.                                              (__v2df) __C),
  950.                     (__v2df) __C);
  951. }
  952.  
  953. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  954. _mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
  955. {
  956.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  957.                     __builtin_ia32_vfmaddpd (-(__v2df) __A,
  958.                                              (__v2df) __B,
  959.                                              (__v2df) __C),
  960.                     (__v2df)_mm_setzero_pd());
  961. }
  962.  
  963. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  964. _mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
  965. {
  966.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  967.                     __builtin_ia32_vfmaddpd (-(__v2df) __A,
  968.                                              (__v2df) __B,
  969.                                              -(__v2df) __C),
  970.                     (__v2df)_mm_setzero_pd());
  971. }
  972.  
  973. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  974. _mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
  975. {
  976.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  977.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  978.                                                 (__v4df) __B,
  979.                                                 (__v4df) __C),
  980.                     (__v4df) __A);
  981. }
  982.  
  983. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  984. _mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
  985. {
  986.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  987.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  988.                                                 (__v4df) __B,
  989.                                                 (__v4df) __C),
  990.                     (__v4df) __C);
  991. }
  992.  
  993. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  994. _mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
  995. {
  996.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  997.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  998.                                                 (__v4df) __B,
  999.                                                 (__v4df) __C),
  1000.                     (__v4df)_mm256_setzero_pd());
  1001. }
  1002.  
  1003. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1004. _mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
  1005. {
  1006.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1007.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  1008.                                                 (__v4df) __B,
  1009.                                                 -(__v4df) __C),
  1010.                     (__v4df) __A);
  1011. }
  1012.  
  1013. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1014. _mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
  1015. {
  1016.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1017.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  1018.                                                 (__v4df) __B,
  1019.                                                 -(__v4df) __C),
  1020.                     (__v4df)_mm256_setzero_pd());
  1021. }
  1022.  
  1023. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1024. _mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
  1025. {
  1026.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1027.                     __builtin_ia32_vfmaddpd256 (-(__v4df) __A,
  1028.                                                 (__v4df) __B,
  1029.                                                 (__v4df) __C),
  1030.                     (__v4df) __C);
  1031. }
  1032.  
  1033. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1034. _mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
  1035. {
  1036.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1037.                     __builtin_ia32_vfmaddpd256 (-(__v4df) __A,
  1038.                                                 (__v4df) __B,
  1039.                                                 (__v4df) __C),
  1040.                     (__v4df)_mm256_setzero_pd());
  1041. }
  1042.  
  1043. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1044. _mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
  1045. {
  1046.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1047.                     __builtin_ia32_vfmaddpd256 (-(__v4df) __A,
  1048.                                                 (__v4df) __B,
  1049.                                                 -(__v4df) __C),
  1050.                     (__v4df)_mm256_setzero_pd());
  1051. }
  1052.  
  1053. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1054. _mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
  1055. {
  1056.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1057.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1058.                                              (__v4sf) __B,
  1059.                                              (__v4sf) __C),
  1060.                     (__v4sf) __A);
  1061. }
  1062.  
  1063. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1064. _mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
  1065. {
  1066.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1067.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1068.                                              (__v4sf) __B,
  1069.                                              (__v4sf) __C),
  1070.                     (__v4sf) __C);
  1071. }
  1072.  
  1073. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1074. _mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
  1075. {
  1076.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1077.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1078.                                              (__v4sf) __B,
  1079.                                              (__v4sf) __C),
  1080.                     (__v4sf)_mm_setzero_ps());
  1081. }
  1082.  
  1083. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1084. _mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
  1085. {
  1086.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1087.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1088.                                              (__v4sf) __B,
  1089.                                              -(__v4sf) __C),
  1090.                     (__v4sf) __A);
  1091. }
  1092.  
  1093. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1094. _mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
  1095. {
  1096.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1097.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1098.                                              (__v4sf) __B,
  1099.                                              -(__v4sf) __C),
  1100.                     (__v4sf)_mm_setzero_ps());
  1101. }
  1102.  
  1103. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1104. _mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
  1105. {
  1106.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1107.                     __builtin_ia32_vfmaddps (-(__v4sf) __A,
  1108.                                              (__v4sf) __B,
  1109.                                              (__v4sf) __C),
  1110.                     (__v4sf) __C);
  1111. }
  1112.  
  1113. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1114. _mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
  1115. {
  1116.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1117.                     __builtin_ia32_vfmaddps (-(__v4sf) __A,
  1118.                                              (__v4sf) __B,
  1119.                                              (__v4sf) __C),
  1120.                     (__v4sf)_mm_setzero_ps());
  1121. }
  1122.  
  1123. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1124. _mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
  1125. {
  1126.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1127.                     __builtin_ia32_vfmaddps (-(__v4sf) __A,
  1128.                                              (__v4sf) __B,
  1129.                                              -(__v4sf) __C),
  1130.                     (__v4sf)_mm_setzero_ps());
  1131. }
  1132.  
  1133. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1134. _mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
  1135. {
  1136.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1137.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1138.                                                 (__v8sf) __B,
  1139.                                                 (__v8sf) __C),
  1140.                     (__v8sf) __A);
  1141. }
  1142.  
  1143. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1144. _mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
  1145. {
  1146.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1147.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1148.                                                 (__v8sf) __B,
  1149.                                                 (__v8sf) __C),
  1150.                     (__v8sf) __C);
  1151. }
  1152.  
  1153. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1154. _mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
  1155. {
  1156.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1157.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1158.                                                 (__v8sf) __B,
  1159.                                                 (__v8sf) __C),
  1160.                     (__v8sf)_mm256_setzero_ps());
  1161. }
  1162.  
  1163. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1164. _mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
  1165. {
  1166.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1167.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1168.                                                 (__v8sf) __B,
  1169.                                                 -(__v8sf) __C),
  1170.                     (__v8sf) __A);
  1171. }
  1172.  
  1173. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1174. _mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
  1175. {
  1176.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1177.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1178.                                                 (__v8sf) __B,
  1179.                                                 -(__v8sf) __C),
  1180.                     (__v8sf)_mm256_setzero_ps());
  1181. }
  1182.  
  1183. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1184. _mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
  1185. {
  1186.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1187.                     __builtin_ia32_vfmaddps256 (-(__v8sf) __A,
  1188.                                                 (__v8sf) __B,
  1189.                                                 (__v8sf) __C),
  1190.                     (__v8sf) __C);
  1191. }
  1192.  
  1193. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1194. _mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
  1195. {
  1196.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1197.                     __builtin_ia32_vfmaddps256 (-(__v8sf) __A,
  1198.                                                 (__v8sf) __B,
  1199.                                                 (__v8sf) __C),
  1200.                     (__v8sf)_mm256_setzero_ps());
  1201. }
  1202.  
  1203. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1204. _mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
  1205. {
  1206.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1207.                     __builtin_ia32_vfmaddps256 (-(__v8sf) __A,
  1208.                                                 (__v8sf) __B,
  1209.                                                 -(__v8sf) __C),
  1210.                     (__v8sf)_mm256_setzero_ps());
  1211. }
  1212.  
  1213. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1214. _mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
  1215. {
  1216.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1217.                     __builtin_ia32_vfmaddsubpd ((__v2df) __A,
  1218.                                                 (__v2df) __B,
  1219.                                                 (__v2df) __C),
  1220.                     (__v2df) __A);
  1221. }
  1222.  
  1223. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1224. _mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
  1225. {
  1226.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1227.                     __builtin_ia32_vfmaddsubpd ((__v2df) __A,
  1228.                                                 (__v2df) __B,
  1229.                                                 (__v2df) __C),
  1230.                     (__v2df) __C);
  1231. }
  1232.  
  1233. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1234. _mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
  1235. {
  1236.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1237.                     __builtin_ia32_vfmaddsubpd ((__v2df) __A,
  1238.                                                 (__v2df) __B,
  1239.                                                 (__v2df) __C),
  1240.                     (__v2df)_mm_setzero_pd());
  1241. }
  1242.  
  1243. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1244. _mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
  1245. {
  1246.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1247.                     __builtin_ia32_vfmaddsubpd ((__v2df) __A,
  1248.                                                 (__v2df) __B,
  1249.                                                 -(__v2df) __C),
  1250.                     (__v2df) __A);
  1251. }
  1252.  
  1253. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1254. _mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C)
  1255. {
  1256.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1257.                     __builtin_ia32_vfmaddsubpd ((__v2df) __A,
  1258.                                                 (__v2df) __B,
  1259.                                                 -(__v2df) __C),
  1260.                     (__v2df)_mm_setzero_pd());
  1261. }
  1262.  
  1263. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1264. _mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
  1265. {
  1266.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1267.                     __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
  1268.                                                    (__v4df) __B,
  1269.                                                    (__v4df) __C),
  1270.                     (__v4df) __A);
  1271. }
  1272.  
  1273. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1274. _mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
  1275. {
  1276.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1277.                     __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
  1278.                                                    (__v4df) __B,
  1279.                                                    (__v4df) __C),
  1280.                     (__v4df) __C);
  1281. }
  1282.  
  1283. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1284. _mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
  1285. {
  1286.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1287.                     __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
  1288.                                                    (__v4df) __B,
  1289.                                                    (__v4df) __C),
  1290.                     (__v4df)_mm256_setzero_pd());
  1291. }
  1292.  
  1293. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1294. _mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
  1295. {
  1296.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1297.                     __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
  1298.                                                    (__v4df) __B,
  1299.                                                    -(__v4df) __C),
  1300.                     (__v4df) __A);
  1301. }
  1302.  
  1303. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1304. _mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C)
  1305. {
  1306.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1307.                     __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
  1308.                                                    (__v4df) __B,
  1309.                                                    -(__v4df) __C),
  1310.                     (__v4df)_mm256_setzero_pd());
  1311. }
  1312.  
  1313. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1314. _mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
  1315. {
  1316.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1317.                     __builtin_ia32_vfmaddsubps ((__v4sf) __A,
  1318.                                                 (__v4sf) __B,
  1319.                                                 (__v4sf) __C),
  1320.                     (__v4sf) __A);
  1321. }
  1322.  
  1323. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1324. _mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
  1325. {
  1326.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1327.                     __builtin_ia32_vfmaddsubps ((__v4sf) __A,
  1328.                                                 (__v4sf) __B,
  1329.                                                 (__v4sf) __C),
  1330.                     (__v4sf) __C);
  1331. }
  1332.  
  1333. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1334. _mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
  1335. {
  1336.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1337.                     __builtin_ia32_vfmaddsubps ((__v4sf) __A,
  1338.                                                 (__v4sf) __B,
  1339.                                                 (__v4sf) __C),
  1340.                     (__v4sf)_mm_setzero_ps());
  1341. }
  1342.  
  1343. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1344. _mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
  1345. {
  1346.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1347.                     __builtin_ia32_vfmaddsubps ((__v4sf) __A,
  1348.                                                 (__v4sf) __B,
  1349.                                                 -(__v4sf) __C),
  1350.                     (__v4sf) __A);
  1351. }
  1352.  
  1353. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1354. _mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C)
  1355. {
  1356.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1357.                     __builtin_ia32_vfmaddsubps ((__v4sf) __A,
  1358.                                                 (__v4sf) __B,
  1359.                                                 -(__v4sf) __C),
  1360.                     (__v4sf)_mm_setzero_ps());
  1361. }
  1362.  
  1363. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1364. _mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B,
  1365.                          __m256 __C)
  1366. {
  1367.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1368.                     __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
  1369.                                                    (__v8sf) __B,
  1370.                                                    (__v8sf) __C),
  1371.                     (__v8sf) __A);
  1372. }
  1373.  
  1374. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1375. _mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
  1376. {
  1377.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1378.                     __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
  1379.                                                    (__v8sf) __B,
  1380.                                                    (__v8sf) __C),
  1381.                     (__v8sf) __C);
  1382. }
  1383.  
  1384. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1385. _mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
  1386. {
  1387.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1388.                     __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
  1389.                                                    (__v8sf) __B,
  1390.                                                    (__v8sf) __C),
  1391.                     (__v8sf)_mm256_setzero_ps());
  1392. }
  1393.  
  1394. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1395. _mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
  1396. {
  1397.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1398.                     __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
  1399.                                                    (__v8sf) __B,
  1400.                                                    -(__v8sf) __C),
  1401.                     (__v8sf) __A);
  1402. }
  1403.  
  1404. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1405. _mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C)
  1406. {
  1407.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1408.                     __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
  1409.                                                    (__v8sf) __B,
  1410.                                                    -(__v8sf) __C),
  1411.                     (__v8sf)_mm256_setzero_ps());
  1412. }
  1413.  
  1414. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1415. _mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
  1416. {
  1417.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1418.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  1419.                                              (__v2df) __B,
  1420.                                              -(__v2df) __C),
  1421.                     (__v2df) __C);
  1422. }
  1423.  
  1424. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1425. _mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
  1426. {
  1427.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1428.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  1429.                                                 (__v4df) __B,
  1430.                                                 -(__v4df) __C),
  1431.                     (__v4df) __C);
  1432. }
  1433.  
  1434. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1435. _mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
  1436. {
  1437.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1438.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1439.                                              (__v4sf) __B,
  1440.                                              -(__v4sf) __C),
  1441.                     (__v4sf) __C);
  1442. }
  1443.  
  1444. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1445. _mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
  1446. {
  1447.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1448.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1449.                                                 (__v8sf) __B,
  1450.                                                 -(__v8sf) __C),
  1451.                     (__v8sf) __C);
  1452. }
  1453.  
  1454. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1455. _mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
  1456. {
  1457.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1458.                     __builtin_ia32_vfmaddsubpd ((__v2df) __A,
  1459.                                                 (__v2df) __B,
  1460.                                                 -(__v2df) __C),
  1461.                     (__v2df) __C);
  1462. }
  1463.  
  1464. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1465. _mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
  1466. {
  1467.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1468.                     __builtin_ia32_vfmaddsubpd256 ((__v4df) __A,
  1469.                                                    (__v4df) __B,
  1470.                                                    -(__v4df) __C),
  1471.                     (__v4df) __C);
  1472. }
  1473.  
  1474. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1475. _mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
  1476. {
  1477.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1478.                     __builtin_ia32_vfmaddsubps ((__v4sf) __A,
  1479.                                                 (__v4sf) __B,
  1480.                                                 -(__v4sf) __C),
  1481.                     (__v4sf) __C);
  1482. }
  1483.  
  1484. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1485. _mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
  1486. {
  1487.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1488.                     __builtin_ia32_vfmaddsubps256 ((__v8sf) __A,
  1489.                                                    (__v8sf) __B,
  1490.                                                    -(__v8sf) __C),
  1491.                     (__v8sf) __C);
  1492. }
  1493.  
  1494. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1495. _mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
  1496. {
  1497.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1498.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  1499.                                              -(__v2df) __B,
  1500.                                              (__v2df) __C),
  1501.                     (__v2df) __A);
  1502. }
  1503.  
  1504. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1505. _mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
  1506. {
  1507.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1508.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  1509.                                                 -(__v4df) __B,
  1510.                                                 (__v4df) __C),
  1511.                     (__v4df) __A);
  1512. }
  1513.  
  1514. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1515. _mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
  1516. {
  1517.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1518.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1519.                                              -(__v4sf) __B,
  1520.                                              (__v4sf) __C),
  1521.                     (__v4sf) __A);
  1522. }
  1523.  
  1524. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1525. _mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
  1526. {
  1527.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1528.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1529.                                                 -(__v8sf) __B,
  1530.                                                 (__v8sf) __C),
  1531.                     (__v8sf) __A);
  1532. }
  1533.  
  1534. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1535. _mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C)
  1536. {
  1537.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1538.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  1539.                                              -(__v2df) __B,
  1540.                                              -(__v2df) __C),
  1541.                     (__v2df) __A);
  1542. }
  1543.  
  1544. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1545. _mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U)
  1546. {
  1547.   return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U,
  1548.                     __builtin_ia32_vfmaddpd ((__v2df) __A,
  1549.                                              -(__v2df) __B,
  1550.                                              -(__v2df) __C),
  1551.                     (__v2df) __C);
  1552. }
  1553.  
  1554. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1555. _mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C)
  1556. {
  1557.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1558.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  1559.                                                 -(__v4df) __B,
  1560.                                                 -(__v4df) __C),
  1561.                     (__v4df) __A);
  1562. }
  1563.  
  1564. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1565. _mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U)
  1566. {
  1567.   return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U,
  1568.                     __builtin_ia32_vfmaddpd256 ((__v4df) __A,
  1569.                                                 -(__v4df) __B,
  1570.                                                 -(__v4df) __C),
  1571.                     (__v4df) __C);
  1572. }
  1573.  
  1574. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1575. _mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C)
  1576. {
  1577.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1578.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1579.                                              -(__v4sf) __B,
  1580.                                              -(__v4sf) __C),
  1581.                     (__v4sf) __A);
  1582. }
  1583.  
  1584. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1585. _mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U)
  1586. {
  1587.   return (__m128) __builtin_ia32_selectps_128((__mmask8) __U,
  1588.                     __builtin_ia32_vfmaddps ((__v4sf) __A,
  1589.                                              -(__v4sf) __B,
  1590.                                              -(__v4sf) __C),
  1591.                     (__v4sf) __C);
  1592. }
  1593.  
  1594. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1595. _mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C)
  1596. {
  1597.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1598.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1599.                                                 -(__v8sf) __B,
  1600.                                                 -(__v8sf) __C),
  1601.                     (__v8sf) __A);
  1602. }
  1603.  
  1604. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1605. _mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U)
  1606. {
  1607.   return (__m256) __builtin_ia32_selectps_256((__mmask8) __U,
  1608.                     __builtin_ia32_vfmaddps256 ((__v8sf) __A,
  1609.                                                 -(__v8sf) __B,
  1610.                                                 -(__v8sf) __C),
  1611.                     (__v8sf) __C);
  1612. }
  1613.  
  1614. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1615. _mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
  1616.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  1617.                                               (__v2df)_mm_add_pd(__A, __B),
  1618.                                               (__v2df)__W);
  1619. }
  1620.  
  1621. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1622. _mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) {
  1623.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  1624.                                               (__v2df)_mm_add_pd(__A, __B),
  1625.                                               (__v2df)_mm_setzero_pd());
  1626. }
  1627.  
  1628. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1629. _mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
  1630.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  1631.                                               (__v4df)_mm256_add_pd(__A, __B),
  1632.                                               (__v4df)__W);
  1633. }
  1634.  
  1635. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1636. _mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) {
  1637.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  1638.                                               (__v4df)_mm256_add_pd(__A, __B),
  1639.                                               (__v4df)_mm256_setzero_pd());
  1640. }
  1641.  
  1642. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1643. _mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  1644.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  1645.                                              (__v4sf)_mm_add_ps(__A, __B),
  1646.                                              (__v4sf)__W);
  1647. }
  1648.  
  1649. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1650. _mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) {
  1651.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  1652.                                              (__v4sf)_mm_add_ps(__A, __B),
  1653.                                              (__v4sf)_mm_setzero_ps());
  1654. }
  1655.  
  1656. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1657. _mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
  1658.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  1659.                                              (__v8sf)_mm256_add_ps(__A, __B),
  1660.                                              (__v8sf)__W);
  1661. }
  1662.  
  1663. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1664. _mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) {
  1665.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  1666.                                              (__v8sf)_mm256_add_ps(__A, __B),
  1667.                                              (__v8sf)_mm256_setzero_ps());
  1668. }
  1669.  
  1670. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1671. _mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) {
  1672.   return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
  1673.                 (__v4si) __W,
  1674.                 (__v4si) __A);
  1675. }
  1676.  
  1677. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  1678. _mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) {
  1679.   return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
  1680.                 (__v8si) __W,
  1681.                 (__v8si) __A);
  1682. }
  1683.  
  1684. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1685. _mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) {
  1686.   return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
  1687.                  (__v2df) __W,
  1688.                  (__v2df) __A);
  1689. }
  1690.  
  1691. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1692. _mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) {
  1693.   return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
  1694.                  (__v4df) __W,
  1695.                  (__v4df) __A);
  1696. }
  1697.  
  1698. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1699. _mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) {
  1700.   return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
  1701.                 (__v4sf) __W,
  1702.                 (__v4sf) __A);
  1703. }
  1704.  
  1705. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1706. _mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) {
  1707.   return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
  1708.                 (__v8sf) __W,
  1709.                 (__v8sf) __A);
  1710. }
  1711.  
  1712. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1713. _mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) {
  1714.   return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
  1715.                 (__v2di) __W,
  1716.                 (__v2di) __A);
  1717. }
  1718.  
  1719. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  1720. _mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) {
  1721.   return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
  1722.                 (__v4di) __W,
  1723.                 (__v4di) __A);
  1724. }
  1725.  
  1726. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1727. _mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) {
  1728.   return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
  1729.                   (__v2df) __W,
  1730.                   (__mmask8) __U);
  1731. }
  1732.  
  1733. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1734. _mm_maskz_compress_pd (__mmask8 __U, __m128d __A) {
  1735.   return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A,
  1736.                   (__v2df)
  1737.                   _mm_setzero_pd (),
  1738.                   (__mmask8) __U);
  1739. }
  1740.  
  1741. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1742. _mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) {
  1743.   return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
  1744.                   (__v4df) __W,
  1745.                   (__mmask8) __U);
  1746. }
  1747.  
  1748. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1749. _mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) {
  1750.   return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A,
  1751.                   (__v4df)
  1752.                   _mm256_setzero_pd (),
  1753.                   (__mmask8) __U);
  1754. }
  1755.  
  1756. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1757. _mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
  1758.   return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
  1759.                   (__v2di) __W,
  1760.                   (__mmask8) __U);
  1761. }
  1762.  
  1763. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1764. _mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) {
  1765.   return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A,
  1766.                   (__v2di)
  1767.                   _mm_setzero_si128 (),
  1768.                   (__mmask8) __U);
  1769. }
  1770.  
  1771. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  1772. _mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
  1773.   return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
  1774.                   (__v4di) __W,
  1775.                   (__mmask8) __U);
  1776. }
  1777.  
  1778. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  1779. _mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) {
  1780.   return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A,
  1781.                   (__v4di)
  1782.                   _mm256_setzero_si256 (),
  1783.                   (__mmask8) __U);
  1784. }
  1785.  
  1786. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1787. _mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) {
  1788.   return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
  1789.                  (__v4sf) __W,
  1790.                  (__mmask8) __U);
  1791. }
  1792.  
  1793. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1794. _mm_maskz_compress_ps (__mmask8 __U, __m128 __A) {
  1795.   return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A,
  1796.                  (__v4sf)
  1797.                  _mm_setzero_ps (),
  1798.                  (__mmask8) __U);
  1799. }
  1800.  
  1801. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1802. _mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) {
  1803.   return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
  1804.                  (__v8sf) __W,
  1805.                  (__mmask8) __U);
  1806. }
  1807.  
  1808. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1809. _mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) {
  1810.   return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A,
  1811.                  (__v8sf)
  1812.                  _mm256_setzero_ps (),
  1813.                  (__mmask8) __U);
  1814. }
  1815.  
  1816. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1817. _mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
  1818.   return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
  1819.                   (__v4si) __W,
  1820.                   (__mmask8) __U);
  1821. }
  1822.  
  1823. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1824. _mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) {
  1825.   return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A,
  1826.                   (__v4si)
  1827.                   _mm_setzero_si128 (),
  1828.                   (__mmask8) __U);
  1829. }
  1830.  
  1831. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  1832. _mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
  1833.   return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
  1834.                   (__v8si) __W,
  1835.                   (__mmask8) __U);
  1836. }
  1837.  
  1838. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  1839. _mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) {
  1840.   return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A,
  1841.                   (__v8si)
  1842.                   _mm256_setzero_si256 (),
  1843.                   (__mmask8) __U);
  1844. }
  1845.  
  1846. static __inline__ void __DEFAULT_FN_ATTRS128
  1847. _mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) {
  1848.   __builtin_ia32_compressstoredf128_mask ((__v2df *) __P,
  1849.             (__v2df) __A,
  1850.             (__mmask8) __U);
  1851. }
  1852.  
  1853. static __inline__ void __DEFAULT_FN_ATTRS256
  1854. _mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) {
  1855.   __builtin_ia32_compressstoredf256_mask ((__v4df *) __P,
  1856.             (__v4df) __A,
  1857.             (__mmask8) __U);
  1858. }
  1859.  
  1860. static __inline__ void __DEFAULT_FN_ATTRS128
  1861. _mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) {
  1862.   __builtin_ia32_compressstoredi128_mask ((__v2di *) __P,
  1863.             (__v2di) __A,
  1864.             (__mmask8) __U);
  1865. }
  1866.  
  1867. static __inline__ void __DEFAULT_FN_ATTRS256
  1868. _mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) {
  1869.   __builtin_ia32_compressstoredi256_mask ((__v4di *) __P,
  1870.             (__v4di) __A,
  1871.             (__mmask8) __U);
  1872. }
  1873.  
  1874. static __inline__ void __DEFAULT_FN_ATTRS128
  1875. _mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) {
  1876.   __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P,
  1877.             (__v4sf) __A,
  1878.             (__mmask8) __U);
  1879. }
  1880.  
  1881. static __inline__ void __DEFAULT_FN_ATTRS256
  1882. _mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) {
  1883.   __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P,
  1884.             (__v8sf) __A,
  1885.             (__mmask8) __U);
  1886. }
  1887.  
  1888. static __inline__ void __DEFAULT_FN_ATTRS128
  1889. _mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) {
  1890.   __builtin_ia32_compressstoresi128_mask ((__v4si *) __P,
  1891.             (__v4si) __A,
  1892.             (__mmask8) __U);
  1893. }
  1894.  
  1895. static __inline__ void __DEFAULT_FN_ATTRS256
  1896. _mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) {
  1897.   __builtin_ia32_compressstoresi256_mask ((__v8si *) __P,
  1898.             (__v8si) __A,
  1899.             (__mmask8) __U);
  1900. }
  1901.  
  1902. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1903. _mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
  1904.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
  1905.                                               (__v2df)_mm_cvtepi32_pd(__A),
  1906.                                               (__v2df)__W);
  1907. }
  1908.  
  1909. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  1910. _mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
  1911.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
  1912.                                               (__v2df)_mm_cvtepi32_pd(__A),
  1913.                                               (__v2df)_mm_setzero_pd());
  1914. }
  1915.  
  1916. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1917. _mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
  1918.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
  1919.                                               (__v4df)_mm256_cvtepi32_pd(__A),
  1920.                                               (__v4df)__W);
  1921. }
  1922.  
  1923. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  1924. _mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) {
  1925.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
  1926.                                               (__v4df)_mm256_cvtepi32_pd(__A),
  1927.                                               (__v4df)_mm256_setzero_pd());
  1928. }
  1929.  
  1930. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1931. _mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
  1932.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  1933.                                              (__v4sf)_mm_cvtepi32_ps(__A),
  1934.                                              (__v4sf)__W);
  1935. }
  1936.  
  1937. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1938. _mm_maskz_cvtepi32_ps (__mmask8 __U, __m128i __A) {
  1939.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  1940.                                              (__v4sf)_mm_cvtepi32_ps(__A),
  1941.                                              (__v4sf)_mm_setzero_ps());
  1942. }
  1943.  
  1944. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1945. _mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
  1946.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  1947.                                              (__v8sf)_mm256_cvtepi32_ps(__A),
  1948.                                              (__v8sf)__W);
  1949. }
  1950.  
  1951. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  1952. _mm256_maskz_cvtepi32_ps (__mmask8 __U, __m256i __A) {
  1953.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  1954.                                              (__v8sf)_mm256_cvtepi32_ps(__A),
  1955.                                              (__v8sf)_mm256_setzero_ps());
  1956. }
  1957.  
  1958. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1959. _mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
  1960.   return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
  1961.                 (__v4si) __W,
  1962.                 (__mmask8) __U);
  1963. }
  1964.  
  1965. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  1966. _mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) {
  1967.   return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A,
  1968.                 (__v4si)
  1969.                 _mm_setzero_si128 (),
  1970.                 (__mmask8) __U);
  1971. }
  1972.  
  1973. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  1974. _mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
  1975.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  1976.                                              (__v4si)_mm256_cvtpd_epi32(__A),
  1977.                                              (__v4si)__W);
  1978. }
  1979.  
  1980. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  1981. _mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) {
  1982.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  1983.                                              (__v4si)_mm256_cvtpd_epi32(__A),
  1984.                                              (__v4si)_mm_setzero_si128());
  1985. }
  1986.  
  1987. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1988. _mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) {
  1989.   return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
  1990.             (__v4sf) __W,
  1991.             (__mmask8) __U);
  1992. }
  1993.  
  1994. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  1995. _mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) {
  1996.   return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A,
  1997.             (__v4sf)
  1998.             _mm_setzero_ps (),
  1999.             (__mmask8) __U);
  2000. }
  2001.  
  2002. static __inline__ __m128 __DEFAULT_FN_ATTRS256
  2003. _mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) {
  2004.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2005.                                              (__v4sf)_mm256_cvtpd_ps(__A),
  2006.                                              (__v4sf)__W);
  2007. }
  2008.  
  2009. static __inline__ __m128 __DEFAULT_FN_ATTRS256
  2010. _mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) {
  2011.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2012.                                              (__v4sf)_mm256_cvtpd_ps(__A),
  2013.                                              (__v4sf)_mm_setzero_ps());
  2014. }
  2015.  
  2016. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2017. _mm_cvtpd_epu32 (__m128d __A) {
  2018.   return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
  2019.                  (__v4si)
  2020.                  _mm_setzero_si128 (),
  2021.                  (__mmask8) -1);
  2022. }
  2023.  
  2024. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2025. _mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
  2026.   return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
  2027.                  (__v4si) __W,
  2028.                  (__mmask8) __U);
  2029. }
  2030.  
  2031. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2032. _mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) {
  2033.   return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A,
  2034.                  (__v4si)
  2035.                  _mm_setzero_si128 (),
  2036.                  (__mmask8) __U);
  2037. }
  2038.  
  2039. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2040. _mm256_cvtpd_epu32 (__m256d __A) {
  2041.   return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
  2042.                  (__v4si)
  2043.                  _mm_setzero_si128 (),
  2044.                  (__mmask8) -1);
  2045. }
  2046.  
  2047. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2048. _mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
  2049.   return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
  2050.                  (__v4si) __W,
  2051.                  (__mmask8) __U);
  2052. }
  2053.  
  2054. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2055. _mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) {
  2056.   return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A,
  2057.                  (__v4si)
  2058.                  _mm_setzero_si128 (),
  2059.                  (__mmask8) __U);
  2060. }
  2061.  
  2062. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2063. _mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
  2064.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2065.                                              (__v4si)_mm_cvtps_epi32(__A),
  2066.                                              (__v4si)__W);
  2067. }
  2068.  
  2069. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2070. _mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) {
  2071.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2072.                                              (__v4si)_mm_cvtps_epi32(__A),
  2073.                                              (__v4si)_mm_setzero_si128());
  2074. }
  2075.  
  2076. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2077. _mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
  2078.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  2079.                                              (__v8si)_mm256_cvtps_epi32(__A),
  2080.                                              (__v8si)__W);
  2081. }
  2082.  
  2083. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2084. _mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) {
  2085.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  2086.                                              (__v8si)_mm256_cvtps_epi32(__A),
  2087.                                              (__v8si)_mm256_setzero_si256());
  2088. }
  2089.  
  2090. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2091. _mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) {
  2092.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2093.                                               (__v2df)_mm_cvtps_pd(__A),
  2094.                                               (__v2df)__W);
  2095. }
  2096.  
  2097. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2098. _mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
  2099.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2100.                                               (__v2df)_mm_cvtps_pd(__A),
  2101.                                               (__v2df)_mm_setzero_pd());
  2102. }
  2103.  
  2104. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2105. _mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) {
  2106.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2107.                                               (__v4df)_mm256_cvtps_pd(__A),
  2108.                                               (__v4df)__W);
  2109. }
  2110.  
  2111. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2112. _mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) {
  2113.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2114.                                               (__v4df)_mm256_cvtps_pd(__A),
  2115.                                               (__v4df)_mm256_setzero_pd());
  2116. }
  2117.  
  2118. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2119. _mm_cvtps_epu32 (__m128 __A) {
  2120.   return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
  2121.                  (__v4si)
  2122.                  _mm_setzero_si128 (),
  2123.                  (__mmask8) -1);
  2124. }
  2125.  
  2126. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2127. _mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
  2128.   return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
  2129.                  (__v4si) __W,
  2130.                  (__mmask8) __U);
  2131. }
  2132.  
  2133. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2134. _mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) {
  2135.   return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A,
  2136.                  (__v4si)
  2137.                  _mm_setzero_si128 (),
  2138.                  (__mmask8) __U);
  2139. }
  2140.  
  2141. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2142. _mm256_cvtps_epu32 (__m256 __A) {
  2143.   return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
  2144.                  (__v8si)
  2145.                  _mm256_setzero_si256 (),
  2146.                  (__mmask8) -1);
  2147. }
  2148.  
  2149. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2150. _mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
  2151.   return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
  2152.                  (__v8si) __W,
  2153.                  (__mmask8) __U);
  2154. }
  2155.  
  2156. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2157. _mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) {
  2158.   return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A,
  2159.                  (__v8si)
  2160.                  _mm256_setzero_si256 (),
  2161.                  (__mmask8) __U);
  2162. }
  2163.  
  2164. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2165. _mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) {
  2166.   return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
  2167.                  (__v4si) __W,
  2168.                  (__mmask8) __U);
  2169. }
  2170.  
  2171. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2172. _mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) {
  2173.   return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A,
  2174.                  (__v4si)
  2175.                  _mm_setzero_si128 (),
  2176.                  (__mmask8) __U);
  2177. }
  2178.  
  2179. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2180. _mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) {
  2181.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2182.                                              (__v4si)_mm256_cvttpd_epi32(__A),
  2183.                                              (__v4si)__W);
  2184. }
  2185.  
  2186. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2187. _mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) {
  2188.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2189.                                              (__v4si)_mm256_cvttpd_epi32(__A),
  2190.                                              (__v4si)_mm_setzero_si128());
  2191. }
  2192.  
  2193. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2194. _mm_cvttpd_epu32 (__m128d __A) {
  2195.   return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
  2196.                   (__v4si)
  2197.                   _mm_setzero_si128 (),
  2198.                   (__mmask8) -1);
  2199. }
  2200.  
  2201. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2202. _mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) {
  2203.   return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
  2204.                   (__v4si) __W,
  2205.                   (__mmask8) __U);
  2206. }
  2207.  
  2208. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2209. _mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) {
  2210.   return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A,
  2211.                   (__v4si)
  2212.                   _mm_setzero_si128 (),
  2213.                   (__mmask8) __U);
  2214. }
  2215.  
  2216. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2217. _mm256_cvttpd_epu32 (__m256d __A) {
  2218.   return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
  2219.                   (__v4si)
  2220.                   _mm_setzero_si128 (),
  2221.                   (__mmask8) -1);
  2222. }
  2223.  
  2224. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2225. _mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) {
  2226.   return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
  2227.                   (__v4si) __W,
  2228.                   (__mmask8) __U);
  2229. }
  2230.  
  2231. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  2232. _mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) {
  2233.   return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A,
  2234.                   (__v4si)
  2235.                   _mm_setzero_si128 (),
  2236.                   (__mmask8) __U);
  2237. }
  2238.  
  2239. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2240. _mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) {
  2241.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2242.                                              (__v4si)_mm_cvttps_epi32(__A),
  2243.                                              (__v4si)__W);
  2244. }
  2245.  
  2246. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2247. _mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) {
  2248.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2249.                                              (__v4si)_mm_cvttps_epi32(__A),
  2250.                                              (__v4si)_mm_setzero_si128());
  2251. }
  2252.  
  2253. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2254. _mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) {
  2255.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  2256.                                              (__v8si)_mm256_cvttps_epi32(__A),
  2257.                                              (__v8si)__W);
  2258. }
  2259.  
  2260. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2261. _mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) {
  2262.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  2263.                                              (__v8si)_mm256_cvttps_epi32(__A),
  2264.                                              (__v8si)_mm256_setzero_si256());
  2265. }
  2266.  
  2267. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2268. _mm_cvttps_epu32 (__m128 __A) {
  2269.   return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
  2270.                   (__v4si)
  2271.                   _mm_setzero_si128 (),
  2272.                   (__mmask8) -1);
  2273. }
  2274.  
  2275. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2276. _mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) {
  2277.   return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
  2278.                   (__v4si) __W,
  2279.                   (__mmask8) __U);
  2280. }
  2281.  
  2282. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2283. _mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) {
  2284.   return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A,
  2285.                   (__v4si)
  2286.                   _mm_setzero_si128 (),
  2287.                   (__mmask8) __U);
  2288. }
  2289.  
  2290. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2291. _mm256_cvttps_epu32 (__m256 __A) {
  2292.   return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
  2293.                   (__v8si)
  2294.                   _mm256_setzero_si256 (),
  2295.                   (__mmask8) -1);
  2296. }
  2297.  
  2298. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2299. _mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) {
  2300.   return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
  2301.                   (__v8si) __W,
  2302.                   (__mmask8) __U);
  2303. }
  2304.  
  2305. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2306. _mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) {
  2307.   return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A,
  2308.                   (__v8si)
  2309.                   _mm256_setzero_si256 (),
  2310.                   (__mmask8) __U);
  2311. }
  2312.  
  2313. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2314. _mm_cvtepu32_pd (__m128i __A) {
  2315.   return (__m128d) __builtin_convertvector(
  2316.       __builtin_shufflevector((__v4su)__A, (__v4su)__A, 0, 1), __v2df);
  2317. }
  2318.  
  2319. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2320. _mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) {
  2321.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
  2322.                                               (__v2df)_mm_cvtepu32_pd(__A),
  2323.                                               (__v2df)__W);
  2324. }
  2325.  
  2326. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2327. _mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
  2328.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U,
  2329.                                               (__v2df)_mm_cvtepu32_pd(__A),
  2330.                                               (__v2df)_mm_setzero_pd());
  2331. }
  2332.  
  2333. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2334. _mm256_cvtepu32_pd (__m128i __A) {
  2335.   return (__m256d)__builtin_convertvector((__v4su)__A, __v4df);
  2336. }
  2337.  
  2338. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2339. _mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) {
  2340.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
  2341.                                               (__v4df)_mm256_cvtepu32_pd(__A),
  2342.                                               (__v4df)__W);
  2343. }
  2344.  
  2345. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2346. _mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) {
  2347.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U,
  2348.                                               (__v4df)_mm256_cvtepu32_pd(__A),
  2349.                                               (__v4df)_mm256_setzero_pd());
  2350. }
  2351.  
  2352. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2353. _mm_cvtepu32_ps (__m128i __A) {
  2354.   return (__m128)__builtin_convertvector((__v4su)__A, __v4sf);
  2355. }
  2356.  
  2357. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2358. _mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) {
  2359.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2360.                                              (__v4sf)_mm_cvtepu32_ps(__A),
  2361.                                              (__v4sf)__W);
  2362. }
  2363.  
  2364. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2365. _mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) {
  2366.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2367.                                              (__v4sf)_mm_cvtepu32_ps(__A),
  2368.                                              (__v4sf)_mm_setzero_ps());
  2369. }
  2370.  
  2371. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2372. _mm256_cvtepu32_ps (__m256i __A) {
  2373.   return (__m256)__builtin_convertvector((__v8su)__A, __v8sf);
  2374. }
  2375.  
  2376. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2377. _mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) {
  2378.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2379.                                              (__v8sf)_mm256_cvtepu32_ps(__A),
  2380.                                              (__v8sf)__W);
  2381. }
  2382.  
  2383. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2384. _mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) {
  2385.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2386.                                              (__v8sf)_mm256_cvtepu32_ps(__A),
  2387.                                              (__v8sf)_mm256_setzero_ps());
  2388. }
  2389.  
  2390. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2391. _mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
  2392.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2393.                                               (__v2df)_mm_div_pd(__A, __B),
  2394.                                               (__v2df)__W);
  2395. }
  2396.  
  2397. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2398. _mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) {
  2399.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2400.                                               (__v2df)_mm_div_pd(__A, __B),
  2401.                                               (__v2df)_mm_setzero_pd());
  2402. }
  2403.  
  2404. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2405. _mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
  2406.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2407.                                               (__v4df)_mm256_div_pd(__A, __B),
  2408.                                               (__v4df)__W);
  2409. }
  2410.  
  2411. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2412. _mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) {
  2413.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2414.                                               (__v4df)_mm256_div_pd(__A, __B),
  2415.                                               (__v4df)_mm256_setzero_pd());
  2416. }
  2417.  
  2418. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2419. _mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  2420.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2421.                                              (__v4sf)_mm_div_ps(__A, __B),
  2422.                                              (__v4sf)__W);
  2423. }
  2424.  
  2425. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2426. _mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) {
  2427.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2428.                                              (__v4sf)_mm_div_ps(__A, __B),
  2429.                                              (__v4sf)_mm_setzero_ps());
  2430. }
  2431.  
  2432. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2433. _mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
  2434.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2435.                                              (__v8sf)_mm256_div_ps(__A, __B),
  2436.                                              (__v8sf)__W);
  2437. }
  2438.  
  2439. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2440. _mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
  2441.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2442.                                              (__v8sf)_mm256_div_ps(__A, __B),
  2443.                                              (__v8sf)_mm256_setzero_ps());
  2444. }
  2445.  
  2446. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2447. _mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) {
  2448.   return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
  2449.                 (__v2df) __W,
  2450.                 (__mmask8) __U);
  2451. }
  2452.  
  2453. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2454. _mm_maskz_expand_pd (__mmask8 __U, __m128d __A) {
  2455.   return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A,
  2456.                  (__v2df)
  2457.                  _mm_setzero_pd (),
  2458.                  (__mmask8) __U);
  2459. }
  2460.  
  2461. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2462. _mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) {
  2463.   return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
  2464.                 (__v4df) __W,
  2465.                 (__mmask8) __U);
  2466. }
  2467.  
  2468. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2469. _mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) {
  2470.   return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A,
  2471.                  (__v4df)
  2472.                  _mm256_setzero_pd (),
  2473.                  (__mmask8) __U);
  2474. }
  2475.  
  2476. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2477. _mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
  2478.   return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
  2479.                 (__v2di) __W,
  2480.                 (__mmask8) __U);
  2481. }
  2482.  
  2483. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2484. _mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) {
  2485.   return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A,
  2486.                  (__v2di)
  2487.                  _mm_setzero_si128 (),
  2488.                  (__mmask8) __U);
  2489. }
  2490.  
  2491. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2492. _mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
  2493.   return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
  2494.                 (__v4di) __W,
  2495.                 (__mmask8) __U);
  2496. }
  2497.  
  2498. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2499. _mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) {
  2500.   return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A,
  2501.                  (__v4di)
  2502.                  _mm256_setzero_si256 (),
  2503.                  (__mmask8) __U);
  2504. }
  2505.  
  2506. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2507. _mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) {
  2508.   return (__m128d) __builtin_ia32_expandloaddf128_mask ((const __v2df *) __P,
  2509.               (__v2df) __W,
  2510.               (__mmask8)
  2511.               __U);
  2512. }
  2513.  
  2514. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2515. _mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
  2516.   return (__m128d) __builtin_ia32_expandloaddf128_mask ((const __v2df *) __P,
  2517.                (__v2df)
  2518.                _mm_setzero_pd (),
  2519.                (__mmask8)
  2520.                __U);
  2521. }
  2522.  
  2523. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2524. _mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) {
  2525.   return (__m256d) __builtin_ia32_expandloaddf256_mask ((const __v4df *) __P,
  2526.               (__v4df) __W,
  2527.               (__mmask8)
  2528.               __U);
  2529. }
  2530.  
  2531. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2532. _mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) {
  2533.   return (__m256d) __builtin_ia32_expandloaddf256_mask ((const __v4df *) __P,
  2534.                (__v4df)
  2535.                _mm256_setzero_pd (),
  2536.                (__mmask8)
  2537.                __U);
  2538. }
  2539.  
  2540. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2541. _mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) {
  2542.   return (__m128i) __builtin_ia32_expandloaddi128_mask ((const __v2di *) __P,
  2543.               (__v2di) __W,
  2544.               (__mmask8)
  2545.               __U);
  2546. }
  2547.  
  2548. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2549. _mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
  2550.   return (__m128i) __builtin_ia32_expandloaddi128_mask ((const __v2di *) __P,
  2551.                (__v2di)
  2552.                _mm_setzero_si128 (),
  2553.                (__mmask8)
  2554.                __U);
  2555. }
  2556.  
  2557. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2558. _mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U,
  2559.              void const *__P) {
  2560.   return (__m256i) __builtin_ia32_expandloaddi256_mask ((const __v4di *) __P,
  2561.               (__v4di) __W,
  2562.               (__mmask8)
  2563.               __U);
  2564. }
  2565.  
  2566. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2567. _mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) {
  2568.   return (__m256i) __builtin_ia32_expandloaddi256_mask ((const __v4di *) __P,
  2569.                (__v4di)
  2570.                _mm256_setzero_si256 (),
  2571.                (__mmask8)
  2572.                __U);
  2573. }
  2574.  
  2575. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2576. _mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) {
  2577.   return (__m128) __builtin_ia32_expandloadsf128_mask ((const __v4sf *) __P,
  2578.                    (__v4sf) __W,
  2579.                    (__mmask8) __U);
  2580. }
  2581.  
  2582. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2583. _mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
  2584.   return (__m128) __builtin_ia32_expandloadsf128_mask ((const __v4sf *) __P,
  2585.               (__v4sf)
  2586.               _mm_setzero_ps (),
  2587.               (__mmask8)
  2588.               __U);
  2589. }
  2590.  
  2591. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2592. _mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) {
  2593.   return (__m256) __builtin_ia32_expandloadsf256_mask ((const __v8sf *) __P,
  2594.                    (__v8sf) __W,
  2595.                    (__mmask8) __U);
  2596. }
  2597.  
  2598. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2599. _mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) {
  2600.   return (__m256) __builtin_ia32_expandloadsf256_mask ((const __v8sf *) __P,
  2601.               (__v8sf)
  2602.               _mm256_setzero_ps (),
  2603.               (__mmask8)
  2604.               __U);
  2605. }
  2606.  
  2607. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2608. _mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) {
  2609.   return (__m128i) __builtin_ia32_expandloadsi128_mask ((const __v4si *) __P,
  2610.               (__v4si) __W,
  2611.               (__mmask8)
  2612.               __U);
  2613. }
  2614.  
  2615. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2616. _mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
  2617.   return (__m128i) __builtin_ia32_expandloadsi128_mask ((const __v4si *) __P,
  2618.                (__v4si)
  2619.                _mm_setzero_si128 (),
  2620.                (__mmask8)     __U);
  2621. }
  2622.  
  2623. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2624. _mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U,
  2625.              void const *__P) {
  2626.   return (__m256i) __builtin_ia32_expandloadsi256_mask ((const __v8si *) __P,
  2627.               (__v8si) __W,
  2628.               (__mmask8)
  2629.               __U);
  2630. }
  2631.  
  2632. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2633. _mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) {
  2634.   return (__m256i) __builtin_ia32_expandloadsi256_mask ((const __v8si *) __P,
  2635.                (__v8si)
  2636.                _mm256_setzero_si256 (),
  2637.                (__mmask8)
  2638.                __U);
  2639. }
  2640.  
  2641. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2642. _mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) {
  2643.   return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
  2644.                (__v4sf) __W,
  2645.                (__mmask8) __U);
  2646. }
  2647.  
  2648. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2649. _mm_maskz_expand_ps (__mmask8 __U, __m128 __A) {
  2650.   return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A,
  2651.                 (__v4sf)
  2652.                 _mm_setzero_ps (),
  2653.                 (__mmask8) __U);
  2654. }
  2655.  
  2656. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2657. _mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) {
  2658.   return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
  2659.                (__v8sf) __W,
  2660.                (__mmask8) __U);
  2661. }
  2662.  
  2663. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2664. _mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) {
  2665.   return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A,
  2666.                 (__v8sf)
  2667.                 _mm256_setzero_ps (),
  2668.                 (__mmask8) __U);
  2669. }
  2670.  
  2671. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2672. _mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) {
  2673.   return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
  2674.                 (__v4si) __W,
  2675.                 (__mmask8) __U);
  2676. }
  2677.  
  2678. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2679. _mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) {
  2680.   return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A,
  2681.                  (__v4si)
  2682.                  _mm_setzero_si128 (),
  2683.                  (__mmask8) __U);
  2684. }
  2685.  
  2686. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2687. _mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) {
  2688.   return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
  2689.                 (__v8si) __W,
  2690.                 (__mmask8) __U);
  2691. }
  2692.  
  2693. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2694. _mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) {
  2695.   return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A,
  2696.                  (__v8si)
  2697.                  _mm256_setzero_si256 (),
  2698.                  (__mmask8) __U);
  2699. }
  2700.  
  2701. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2702. _mm_getexp_pd (__m128d __A) {
  2703.   return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
  2704.                 (__v2df)
  2705.                 _mm_setzero_pd (),
  2706.                 (__mmask8) -1);
  2707. }
  2708.  
  2709. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2710. _mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) {
  2711.   return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
  2712.                 (__v2df) __W,
  2713.                 (__mmask8) __U);
  2714. }
  2715.  
  2716. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2717. _mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) {
  2718.   return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A,
  2719.                 (__v2df)
  2720.                 _mm_setzero_pd (),
  2721.                 (__mmask8) __U);
  2722. }
  2723.  
  2724. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2725. _mm256_getexp_pd (__m256d __A) {
  2726.   return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
  2727.                 (__v4df)
  2728.                 _mm256_setzero_pd (),
  2729.                 (__mmask8) -1);
  2730. }
  2731.  
  2732. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2733. _mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) {
  2734.   return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
  2735.                 (__v4df) __W,
  2736.                 (__mmask8) __U);
  2737. }
  2738.  
  2739. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2740. _mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) {
  2741.   return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A,
  2742.                 (__v4df)
  2743.                 _mm256_setzero_pd (),
  2744.                 (__mmask8) __U);
  2745. }
  2746.  
  2747. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2748. _mm_getexp_ps (__m128 __A) {
  2749.   return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
  2750.                (__v4sf)
  2751.                _mm_setzero_ps (),
  2752.                (__mmask8) -1);
  2753. }
  2754.  
  2755. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2756. _mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) {
  2757.   return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
  2758.                (__v4sf) __W,
  2759.                (__mmask8) __U);
  2760. }
  2761.  
  2762. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2763. _mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) {
  2764.   return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A,
  2765.                (__v4sf)
  2766.                _mm_setzero_ps (),
  2767.                (__mmask8) __U);
  2768. }
  2769.  
  2770. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2771. _mm256_getexp_ps (__m256 __A) {
  2772.   return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
  2773.                (__v8sf)
  2774.                _mm256_setzero_ps (),
  2775.                (__mmask8) -1);
  2776. }
  2777.  
  2778. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2779. _mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) {
  2780.   return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
  2781.                (__v8sf) __W,
  2782.                (__mmask8) __U);
  2783. }
  2784.  
  2785. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2786. _mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) {
  2787.   return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A,
  2788.                (__v8sf)
  2789.                _mm256_setzero_ps (),
  2790.                (__mmask8) __U);
  2791. }
  2792.  
  2793. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2794. _mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
  2795.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2796.                                               (__v2df)_mm_max_pd(__A, __B),
  2797.                                               (__v2df)__W);
  2798. }
  2799.  
  2800. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2801. _mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) {
  2802.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2803.                                               (__v2df)_mm_max_pd(__A, __B),
  2804.                                               (__v2df)_mm_setzero_pd());
  2805. }
  2806.  
  2807. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2808. _mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
  2809.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2810.                                               (__v4df)_mm256_max_pd(__A, __B),
  2811.                                               (__v4df)__W);
  2812. }
  2813.  
  2814. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2815. _mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) {
  2816.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2817.                                               (__v4df)_mm256_max_pd(__A, __B),
  2818.                                               (__v4df)_mm256_setzero_pd());
  2819. }
  2820.  
  2821. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2822. _mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  2823.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2824.                                              (__v4sf)_mm_max_ps(__A, __B),
  2825.                                              (__v4sf)__W);
  2826. }
  2827.  
  2828. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2829. _mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) {
  2830.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2831.                                              (__v4sf)_mm_max_ps(__A, __B),
  2832.                                              (__v4sf)_mm_setzero_ps());
  2833. }
  2834.  
  2835. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2836. _mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
  2837.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2838.                                              (__v8sf)_mm256_max_ps(__A, __B),
  2839.                                              (__v8sf)__W);
  2840. }
  2841.  
  2842. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2843. _mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) {
  2844.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2845.                                              (__v8sf)_mm256_max_ps(__A, __B),
  2846.                                              (__v8sf)_mm256_setzero_ps());
  2847. }
  2848.  
  2849. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2850. _mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
  2851.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2852.                                               (__v2df)_mm_min_pd(__A, __B),
  2853.                                               (__v2df)__W);
  2854. }
  2855.  
  2856. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2857. _mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) {
  2858.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2859.                                               (__v2df)_mm_min_pd(__A, __B),
  2860.                                               (__v2df)_mm_setzero_pd());
  2861. }
  2862.  
  2863. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2864. _mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
  2865.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2866.                                               (__v4df)_mm256_min_pd(__A, __B),
  2867.                                               (__v4df)__W);
  2868. }
  2869.  
  2870. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2871. _mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) {
  2872.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2873.                                               (__v4df)_mm256_min_pd(__A, __B),
  2874.                                               (__v4df)_mm256_setzero_pd());
  2875. }
  2876.  
  2877. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2878. _mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  2879.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2880.                                              (__v4sf)_mm_min_ps(__A, __B),
  2881.                                              (__v4sf)__W);
  2882. }
  2883.  
  2884. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2885. _mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) {
  2886.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2887.                                              (__v4sf)_mm_min_ps(__A, __B),
  2888.                                              (__v4sf)_mm_setzero_ps());
  2889. }
  2890.  
  2891. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2892. _mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
  2893.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2894.                                              (__v8sf)_mm256_min_ps(__A, __B),
  2895.                                              (__v8sf)__W);
  2896. }
  2897.  
  2898. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2899. _mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) {
  2900.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2901.                                              (__v8sf)_mm256_min_ps(__A, __B),
  2902.                                              (__v8sf)_mm256_setzero_ps());
  2903. }
  2904.  
  2905. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2906. _mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
  2907.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2908.                                               (__v2df)_mm_mul_pd(__A, __B),
  2909.                                               (__v2df)__W);
  2910. }
  2911.  
  2912. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  2913. _mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) {
  2914.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  2915.                                               (__v2df)_mm_mul_pd(__A, __B),
  2916.                                               (__v2df)_mm_setzero_pd());
  2917. }
  2918.  
  2919. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2920. _mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
  2921.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2922.                                               (__v4df)_mm256_mul_pd(__A, __B),
  2923.                                               (__v4df)__W);
  2924. }
  2925.  
  2926. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  2927. _mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) {
  2928.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  2929.                                               (__v4df)_mm256_mul_pd(__A, __B),
  2930.                                               (__v4df)_mm256_setzero_pd());
  2931. }
  2932.  
  2933. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2934. _mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  2935.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2936.                                              (__v4sf)_mm_mul_ps(__A, __B),
  2937.                                              (__v4sf)__W);
  2938. }
  2939.  
  2940. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  2941. _mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) {
  2942.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  2943.                                              (__v4sf)_mm_mul_ps(__A, __B),
  2944.                                              (__v4sf)_mm_setzero_ps());
  2945. }
  2946.  
  2947. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2948. _mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
  2949.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2950.                                              (__v8sf)_mm256_mul_ps(__A, __B),
  2951.                                              (__v8sf)__W);
  2952. }
  2953.  
  2954. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  2955. _mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) {
  2956.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  2957.                                              (__v8sf)_mm256_mul_ps(__A, __B),
  2958.                                              (__v8sf)_mm256_setzero_ps());
  2959. }
  2960.  
  2961. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2962. _mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
  2963.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2964.                                              (__v4si)_mm_abs_epi32(__A),
  2965.                                              (__v4si)__W);
  2966. }
  2967.  
  2968. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2969. _mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) {
  2970.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  2971.                                              (__v4si)_mm_abs_epi32(__A),
  2972.                                              (__v4si)_mm_setzero_si128());
  2973. }
  2974.  
  2975. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2976. _mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
  2977.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  2978.                                              (__v8si)_mm256_abs_epi32(__A),
  2979.                                              (__v8si)__W);
  2980. }
  2981.  
  2982. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  2983. _mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) {
  2984.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  2985.                                              (__v8si)_mm256_abs_epi32(__A),
  2986.                                              (__v8si)_mm256_setzero_si256());
  2987. }
  2988.  
  2989. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2990. _mm_abs_epi64 (__m128i __A) {
  2991.   return (__m128i)__builtin_elementwise_abs((__v2di)__A);
  2992. }
  2993.  
  2994. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  2995. _mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) {
  2996.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  2997.                                              (__v2di)_mm_abs_epi64(__A),
  2998.                                              (__v2di)__W);
  2999. }
  3000.  
  3001. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3002. _mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) {
  3003.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  3004.                                              (__v2di)_mm_abs_epi64(__A),
  3005.                                              (__v2di)_mm_setzero_si128());
  3006. }
  3007.  
  3008. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3009. _mm256_abs_epi64 (__m256i __A) {
  3010.   return (__m256i)__builtin_elementwise_abs((__v4di)__A);
  3011. }
  3012.  
  3013. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3014. _mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) {
  3015.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  3016.                                              (__v4di)_mm256_abs_epi64(__A),
  3017.                                              (__v4di)__W);
  3018. }
  3019.  
  3020. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3021. _mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) {
  3022.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  3023.                                              (__v4di)_mm256_abs_epi64(__A),
  3024.                                              (__v4di)_mm256_setzero_si256());
  3025. }
  3026.  
  3027. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3028. _mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
  3029.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3030.                                              (__v4si)_mm_max_epi32(__A, __B),
  3031.                                              (__v4si)_mm_setzero_si128());
  3032. }
  3033.  
  3034. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3035. _mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3036.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3037.                                              (__v4si)_mm_max_epi32(__A, __B),
  3038.                                              (__v4si)__W);
  3039. }
  3040.  
  3041. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3042. _mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
  3043.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3044.                                              (__v8si)_mm256_max_epi32(__A, __B),
  3045.                                              (__v8si)_mm256_setzero_si256());
  3046. }
  3047.  
  3048. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3049. _mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3050.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3051.                                              (__v8si)_mm256_max_epi32(__A, __B),
  3052.                                              (__v8si)__W);
  3053. }
  3054.  
  3055. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3056. _mm_max_epi64 (__m128i __A, __m128i __B) {
  3057.   return (__m128i)__builtin_elementwise_max((__v2di)__A, (__v2di)__B);
  3058. }
  3059.  
  3060. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3061. _mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
  3062.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3063.                                              (__v2di)_mm_max_epi64(__A, __B),
  3064.                                              (__v2di)_mm_setzero_si128());
  3065. }
  3066.  
  3067. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3068. _mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3069.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3070.                                              (__v2di)_mm_max_epi64(__A, __B),
  3071.                                              (__v2di)__W);
  3072. }
  3073.  
  3074. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3075. _mm256_max_epi64 (__m256i __A, __m256i __B) {
  3076.   return (__m256i)__builtin_elementwise_max((__v4di)__A, (__v4di)__B);
  3077. }
  3078.  
  3079. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3080. _mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
  3081.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3082.                                              (__v4di)_mm256_max_epi64(__A, __B),
  3083.                                              (__v4di)_mm256_setzero_si256());
  3084. }
  3085.  
  3086. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3087. _mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3088.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3089.                                              (__v4di)_mm256_max_epi64(__A, __B),
  3090.                                              (__v4di)__W);
  3091. }
  3092.  
  3093. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3094. _mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
  3095.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3096.                                              (__v4si)_mm_max_epu32(__A, __B),
  3097.                                              (__v4si)_mm_setzero_si128());
  3098. }
  3099.  
  3100. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3101. _mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3102.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3103.                                              (__v4si)_mm_max_epu32(__A, __B),
  3104.                                              (__v4si)__W);
  3105. }
  3106.  
  3107. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3108. _mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
  3109.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3110.                                              (__v8si)_mm256_max_epu32(__A, __B),
  3111.                                              (__v8si)_mm256_setzero_si256());
  3112. }
  3113.  
  3114. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3115. _mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3116.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3117.                                              (__v8si)_mm256_max_epu32(__A, __B),
  3118.                                              (__v8si)__W);
  3119. }
  3120.  
  3121. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3122. _mm_max_epu64 (__m128i __A, __m128i __B) {
  3123.   return (__m128i)__builtin_elementwise_max((__v2du)__A, (__v2du)__B);
  3124. }
  3125.  
  3126. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3127. _mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
  3128.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3129.                                              (__v2di)_mm_max_epu64(__A, __B),
  3130.                                              (__v2di)_mm_setzero_si128());
  3131. }
  3132.  
  3133. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3134. _mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3135.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3136.                                              (__v2di)_mm_max_epu64(__A, __B),
  3137.                                              (__v2di)__W);
  3138. }
  3139.  
  3140. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3141. _mm256_max_epu64 (__m256i __A, __m256i __B) {
  3142.   return (__m256i)__builtin_elementwise_max((__v4du)__A, (__v4du)__B);
  3143. }
  3144.  
  3145. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3146. _mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
  3147.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3148.                                              (__v4di)_mm256_max_epu64(__A, __B),
  3149.                                              (__v4di)_mm256_setzero_si256());
  3150. }
  3151.  
  3152. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3153. _mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3154.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3155.                                              (__v4di)_mm256_max_epu64(__A, __B),
  3156.                                              (__v4di)__W);
  3157. }
  3158.  
  3159. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3160. _mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) {
  3161.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3162.                                              (__v4si)_mm_min_epi32(__A, __B),
  3163.                                              (__v4si)_mm_setzero_si128());
  3164. }
  3165.  
  3166. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3167. _mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3168.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3169.                                              (__v4si)_mm_min_epi32(__A, __B),
  3170.                                              (__v4si)__W);
  3171. }
  3172.  
  3173. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3174. _mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) {
  3175.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3176.                                              (__v8si)_mm256_min_epi32(__A, __B),
  3177.                                              (__v8si)_mm256_setzero_si256());
  3178. }
  3179.  
  3180. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3181. _mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3182.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3183.                                              (__v8si)_mm256_min_epi32(__A, __B),
  3184.                                              (__v8si)__W);
  3185. }
  3186.  
  3187. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3188. _mm_min_epi64 (__m128i __A, __m128i __B) {
  3189.   return (__m128i)__builtin_elementwise_min((__v2di)__A, (__v2di)__B);
  3190. }
  3191.  
  3192. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3193. _mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3194.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3195.                                              (__v2di)_mm_min_epi64(__A, __B),
  3196.                                              (__v2di)__W);
  3197. }
  3198.  
  3199. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3200. _mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) {
  3201.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3202.                                              (__v2di)_mm_min_epi64(__A, __B),
  3203.                                              (__v2di)_mm_setzero_si128());
  3204. }
  3205.  
  3206. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3207. _mm256_min_epi64 (__m256i __A, __m256i __B) {
  3208.   return (__m256i)__builtin_elementwise_min((__v4di)__A, (__v4di)__B);
  3209. }
  3210.  
  3211. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3212. _mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3213.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3214.                                              (__v4di)_mm256_min_epi64(__A, __B),
  3215.                                              (__v4di)__W);
  3216. }
  3217.  
  3218. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3219. _mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) {
  3220.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3221.                                              (__v4di)_mm256_min_epi64(__A, __B),
  3222.                                              (__v4di)_mm256_setzero_si256());
  3223. }
  3224.  
  3225. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3226. _mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) {
  3227.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3228.                                              (__v4si)_mm_min_epu32(__A, __B),
  3229.                                              (__v4si)_mm_setzero_si128());
  3230. }
  3231.  
  3232. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3233. _mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3234.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  3235.                                              (__v4si)_mm_min_epu32(__A, __B),
  3236.                                              (__v4si)__W);
  3237. }
  3238.  
  3239. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3240. _mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) {
  3241.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3242.                                              (__v8si)_mm256_min_epu32(__A, __B),
  3243.                                              (__v8si)_mm256_setzero_si256());
  3244. }
  3245.  
  3246. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3247. _mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3248.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  3249.                                              (__v8si)_mm256_min_epu32(__A, __B),
  3250.                                              (__v8si)__W);
  3251. }
  3252.  
  3253. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3254. _mm_min_epu64 (__m128i __A, __m128i __B) {
  3255.   return (__m128i)__builtin_elementwise_min((__v2du)__A, (__v2du)__B);
  3256. }
  3257.  
  3258. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3259. _mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) {
  3260.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3261.                                              (__v2di)_mm_min_epu64(__A, __B),
  3262.                                              (__v2di)__W);
  3263. }
  3264.  
  3265. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3266. _mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) {
  3267.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M,
  3268.                                              (__v2di)_mm_min_epu64(__A, __B),
  3269.                                              (__v2di)_mm_setzero_si128());
  3270. }
  3271.  
  3272. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3273. _mm256_min_epu64 (__m256i __A, __m256i __B) {
  3274.   return (__m256i)__builtin_elementwise_min((__v4du)__A, (__v4du)__B);
  3275. }
  3276.  
  3277. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3278. _mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) {
  3279.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3280.                                              (__v4di)_mm256_min_epu64(__A, __B),
  3281.                                              (__v4di)__W);
  3282. }
  3283.  
  3284. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3285. _mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) {
  3286.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  3287.                                              (__v4di)_mm256_min_epu64(__A, __B),
  3288.                                              (__v4di)_mm256_setzero_si256());
  3289. }
  3290.  
  3291. #define _mm_roundscale_pd(A, imm) \
  3292.   ((__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
  3293.                                                (int)(imm), \
  3294.                                                (__v2df)_mm_setzero_pd(), \
  3295.                                                (__mmask8)-1))
  3296.  
  3297.  
  3298. #define _mm_mask_roundscale_pd(W, U, A, imm) \
  3299.   ((__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
  3300.                                                (int)(imm), \
  3301.                                                (__v2df)(__m128d)(W), \
  3302.                                                (__mmask8)(U)))
  3303.  
  3304.  
  3305. #define _mm_maskz_roundscale_pd(U, A, imm) \
  3306.   ((__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \
  3307.                                                (int)(imm), \
  3308.                                                (__v2df)_mm_setzero_pd(), \
  3309.                                                (__mmask8)(U)))
  3310.  
  3311.  
  3312. #define _mm256_roundscale_pd(A, imm) \
  3313.   ((__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
  3314.                                                (int)(imm), \
  3315.                                                (__v4df)_mm256_setzero_pd(), \
  3316.                                                (__mmask8)-1))
  3317.  
  3318.  
  3319. #define _mm256_mask_roundscale_pd(W, U, A, imm) \
  3320.   ((__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
  3321.                                                (int)(imm), \
  3322.                                                (__v4df)(__m256d)(W), \
  3323.                                                (__mmask8)(U)))
  3324.  
  3325.  
  3326. #define _mm256_maskz_roundscale_pd(U, A, imm)  \
  3327.   ((__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \
  3328.                                                (int)(imm), \
  3329.                                                (__v4df)_mm256_setzero_pd(), \
  3330.                                                (__mmask8)(U)))
  3331.  
  3332. #define _mm_roundscale_ps(A, imm)  \
  3333.   ((__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
  3334.                                               (__v4sf)_mm_setzero_ps(), \
  3335.                                               (__mmask8)-1))
  3336.  
  3337.  
  3338. #define _mm_mask_roundscale_ps(W, U, A, imm)  \
  3339.   ((__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
  3340.                                               (__v4sf)(__m128)(W), \
  3341.                                               (__mmask8)(U)))
  3342.  
  3343.  
  3344. #define _mm_maskz_roundscale_ps(U, A, imm)  \
  3345.   ((__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \
  3346.                                               (__v4sf)_mm_setzero_ps(), \
  3347.                                               (__mmask8)(U)))
  3348.  
  3349. #define _mm256_roundscale_ps(A, imm)  \
  3350.   ((__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
  3351.                                               (__v8sf)_mm256_setzero_ps(), \
  3352.                                               (__mmask8)-1))
  3353.  
  3354. #define _mm256_mask_roundscale_ps(W, U, A, imm)  \
  3355.   ((__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
  3356.                                               (__v8sf)(__m256)(W), \
  3357.                                               (__mmask8)(U)))
  3358.  
  3359.  
  3360. #define _mm256_maskz_roundscale_ps(U, A, imm)  \
  3361.   ((__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \
  3362.                                               (__v8sf)_mm256_setzero_ps(), \
  3363.                                               (__mmask8)(U)))
  3364.  
  3365. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3366. _mm_scalef_pd (__m128d __A, __m128d __B) {
  3367.   return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
  3368.                 (__v2df) __B,
  3369.                 (__v2df)
  3370.                 _mm_setzero_pd (),
  3371.                 (__mmask8) -1);
  3372. }
  3373.  
  3374. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3375. _mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A,
  3376.         __m128d __B) {
  3377.   return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
  3378.                 (__v2df) __B,
  3379.                 (__v2df) __W,
  3380.                 (__mmask8) __U);
  3381. }
  3382.  
  3383. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3384. _mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) {
  3385.   return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A,
  3386.                 (__v2df) __B,
  3387.                 (__v2df)
  3388.                 _mm_setzero_pd (),
  3389.                 (__mmask8) __U);
  3390. }
  3391.  
  3392. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3393. _mm256_scalef_pd (__m256d __A, __m256d __B) {
  3394.   return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
  3395.                 (__v4df) __B,
  3396.                 (__v4df)
  3397.                 _mm256_setzero_pd (),
  3398.                 (__mmask8) -1);
  3399. }
  3400.  
  3401. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3402. _mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A,
  3403.            __m256d __B) {
  3404.   return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
  3405.                 (__v4df) __B,
  3406.                 (__v4df) __W,
  3407.                 (__mmask8) __U);
  3408. }
  3409.  
  3410. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3411. _mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) {
  3412.   return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A,
  3413.                 (__v4df) __B,
  3414.                 (__v4df)
  3415.                 _mm256_setzero_pd (),
  3416.                 (__mmask8) __U);
  3417. }
  3418.  
  3419. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3420. _mm_scalef_ps (__m128 __A, __m128 __B) {
  3421.   return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
  3422.                (__v4sf) __B,
  3423.                (__v4sf)
  3424.                _mm_setzero_ps (),
  3425.                (__mmask8) -1);
  3426. }
  3427.  
  3428. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3429. _mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  3430.   return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
  3431.                (__v4sf) __B,
  3432.                (__v4sf) __W,
  3433.                (__mmask8) __U);
  3434. }
  3435.  
  3436. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3437. _mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) {
  3438.   return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A,
  3439.                (__v4sf) __B,
  3440.                (__v4sf)
  3441.                _mm_setzero_ps (),
  3442.                (__mmask8) __U);
  3443. }
  3444.  
  3445. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3446. _mm256_scalef_ps (__m256 __A, __m256 __B) {
  3447.   return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
  3448.                (__v8sf) __B,
  3449.                (__v8sf)
  3450.                _mm256_setzero_ps (),
  3451.                (__mmask8) -1);
  3452. }
  3453.  
  3454. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3455. _mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A,
  3456.            __m256 __B) {
  3457.   return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
  3458.                (__v8sf) __B,
  3459.                (__v8sf) __W,
  3460.                (__mmask8) __U);
  3461. }
  3462.  
  3463. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3464. _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
  3465.   return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A,
  3466.                (__v8sf) __B,
  3467.                (__v8sf)
  3468.                _mm256_setzero_ps (),
  3469.                (__mmask8) __U);
  3470. }
  3471.  
  3472. #define _mm_i64scatter_pd(addr, index, v1, scale) \
  3473.   __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)-1, \
  3474.                                (__v2di)(__m128i)(index), \
  3475.                                (__v2df)(__m128d)(v1), (int)(scale))
  3476.  
  3477. #define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) \
  3478.   __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)(mask), \
  3479.                                (__v2di)(__m128i)(index), \
  3480.                                (__v2df)(__m128d)(v1), (int)(scale))
  3481.  
  3482. #define _mm_i64scatter_epi64(addr, index, v1, scale) \
  3483.   __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)-1, \
  3484.                                (__v2di)(__m128i)(index), \
  3485.                                (__v2di)(__m128i)(v1), (int)(scale))
  3486.  
  3487. #define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
  3488.   __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)(mask), \
  3489.                                (__v2di)(__m128i)(index), \
  3490.                                (__v2di)(__m128i)(v1), (int)(scale))
  3491.  
  3492. #define _mm256_i64scatter_pd(addr, index, v1, scale) \
  3493.   __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)-1, \
  3494.                                (__v4di)(__m256i)(index), \
  3495.                                (__v4df)(__m256d)(v1), (int)(scale))
  3496.  
  3497. #define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) \
  3498.   __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)(mask), \
  3499.                                (__v4di)(__m256i)(index), \
  3500.                                (__v4df)(__m256d)(v1), (int)(scale))
  3501.  
  3502. #define _mm256_i64scatter_epi64(addr, index, v1, scale) \
  3503.   __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)-1, \
  3504.                                (__v4di)(__m256i)(index), \
  3505.                                (__v4di)(__m256i)(v1), (int)(scale))
  3506.  
  3507. #define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
  3508.   __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)(mask), \
  3509.                                (__v4di)(__m256i)(index), \
  3510.                                (__v4di)(__m256i)(v1), (int)(scale))
  3511.  
  3512. #define _mm_i64scatter_ps(addr, index, v1, scale) \
  3513.   __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)-1, \
  3514.                                (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
  3515.                                (int)(scale))
  3516.  
  3517. #define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) \
  3518.   __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)(mask), \
  3519.                                (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
  3520.                                (int)(scale))
  3521.  
  3522. #define _mm_i64scatter_epi32(addr, index, v1, scale) \
  3523.   __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)-1, \
  3524.                                (__v2di)(__m128i)(index), \
  3525.                                (__v4si)(__m128i)(v1), (int)(scale))
  3526.  
  3527. #define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
  3528.   __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)(mask), \
  3529.                                (__v2di)(__m128i)(index), \
  3530.                                (__v4si)(__m128i)(v1), (int)(scale))
  3531.  
  3532. #define _mm256_i64scatter_ps(addr, index, v1, scale) \
  3533.   __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)-1, \
  3534.                                (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
  3535.                                (int)(scale))
  3536.  
  3537. #define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) \
  3538.   __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)(mask), \
  3539.                                (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
  3540.                                (int)(scale))
  3541.  
  3542. #define _mm256_i64scatter_epi32(addr, index, v1, scale) \
  3543.   __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)-1, \
  3544.                                (__v4di)(__m256i)(index), \
  3545.                                (__v4si)(__m128i)(v1), (int)(scale))
  3546.  
  3547. #define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
  3548.   __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)(mask), \
  3549.                                (__v4di)(__m256i)(index), \
  3550.                                (__v4si)(__m128i)(v1), (int)(scale))
  3551.  
  3552. #define _mm_i32scatter_pd(addr, index, v1, scale) \
  3553.   __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)-1, \
  3554.                                (__v4si)(__m128i)(index), \
  3555.                                (__v2df)(__m128d)(v1), (int)(scale))
  3556.  
  3557. #define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) \
  3558.     __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)(mask), \
  3559.                                  (__v4si)(__m128i)(index), \
  3560.                                  (__v2df)(__m128d)(v1), (int)(scale))
  3561.  
  3562. #define _mm_i32scatter_epi64(addr, index, v1, scale) \
  3563.     __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)-1, \
  3564.                                  (__v4si)(__m128i)(index), \
  3565.                                  (__v2di)(__m128i)(v1), (int)(scale))
  3566.  
  3567. #define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
  3568.     __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)(mask), \
  3569.                                  (__v4si)(__m128i)(index), \
  3570.                                  (__v2di)(__m128i)(v1), (int)(scale))
  3571.  
  3572. #define _mm256_i32scatter_pd(addr, index, v1, scale) \
  3573.     __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)-1, \
  3574.                                  (__v4si)(__m128i)(index), \
  3575.                                  (__v4df)(__m256d)(v1), (int)(scale))
  3576.  
  3577. #define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) \
  3578.     __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)(mask), \
  3579.                                  (__v4si)(__m128i)(index), \
  3580.                                  (__v4df)(__m256d)(v1), (int)(scale))
  3581.  
  3582. #define _mm256_i32scatter_epi64(addr, index, v1, scale) \
  3583.     __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)-1, \
  3584.                                  (__v4si)(__m128i)(index), \
  3585.                                  (__v4di)(__m256i)(v1), (int)(scale))
  3586.  
  3587. #define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
  3588.     __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)(mask), \
  3589.                                  (__v4si)(__m128i)(index), \
  3590.                                  (__v4di)(__m256i)(v1), (int)(scale))
  3591.  
  3592. #define _mm_i32scatter_ps(addr, index, v1, scale) \
  3593.     __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)-1, \
  3594.                                  (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
  3595.                                  (int)(scale))
  3596.  
  3597. #define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) \
  3598.     __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)(mask), \
  3599.                                  (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
  3600.                                  (int)(scale))
  3601.  
  3602. #define _mm_i32scatter_epi32(addr, index, v1, scale) \
  3603.     __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)-1, \
  3604.                                  (__v4si)(__m128i)(index), \
  3605.                                  (__v4si)(__m128i)(v1), (int)(scale))
  3606.  
  3607. #define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
  3608.     __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)(mask), \
  3609.                                  (__v4si)(__m128i)(index), \
  3610.                                  (__v4si)(__m128i)(v1), (int)(scale))
  3611.  
  3612. #define _mm256_i32scatter_ps(addr, index, v1, scale) \
  3613.     __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)-1, \
  3614.                                  (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
  3615.                                  (int)(scale))
  3616.  
  3617. #define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) \
  3618.     __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)(mask), \
  3619.                                  (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
  3620.                                  (int)(scale))
  3621.  
  3622. #define _mm256_i32scatter_epi32(addr, index, v1, scale) \
  3623.     __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)-1, \
  3624.                                  (__v8si)(__m256i)(index), \
  3625.                                  (__v8si)(__m256i)(v1), (int)(scale))
  3626.  
  3627. #define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
  3628.     __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)(mask), \
  3629.                                  (__v8si)(__m256i)(index), \
  3630.                                  (__v8si)(__m256i)(v1), (int)(scale))
  3631.  
  3632.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3633.   _mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) {
  3634.     return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  3635.                                                 (__v2df)_mm_sqrt_pd(__A),
  3636.                                                 (__v2df)__W);
  3637.   }
  3638.  
  3639.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3640.   _mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) {
  3641.     return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  3642.                                                 (__v2df)_mm_sqrt_pd(__A),
  3643.                                                 (__v2df)_mm_setzero_pd());
  3644.   }
  3645.  
  3646.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3647.   _mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) {
  3648.     return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  3649.                                                 (__v4df)_mm256_sqrt_pd(__A),
  3650.                                                 (__v4df)__W);
  3651.   }
  3652.  
  3653.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3654.   _mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) {
  3655.     return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  3656.                                                 (__v4df)_mm256_sqrt_pd(__A),
  3657.                                                 (__v4df)_mm256_setzero_pd());
  3658.   }
  3659.  
  3660.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3661.   _mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) {
  3662.     return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  3663.                                                (__v4sf)_mm_sqrt_ps(__A),
  3664.                                                (__v4sf)__W);
  3665.   }
  3666.  
  3667.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3668.   _mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) {
  3669.     return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  3670.                                                (__v4sf)_mm_sqrt_ps(__A),
  3671.                                                (__v4sf)_mm_setzero_ps());
  3672.   }
  3673.  
  3674.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3675.   _mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) {
  3676.     return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  3677.                                                (__v8sf)_mm256_sqrt_ps(__A),
  3678.                                                (__v8sf)__W);
  3679.   }
  3680.  
  3681.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3682.   _mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) {
  3683.     return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  3684.                                                (__v8sf)_mm256_sqrt_ps(__A),
  3685.                                                (__v8sf)_mm256_setzero_ps());
  3686.   }
  3687.  
  3688.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3689.   _mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) {
  3690.     return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  3691.                                                 (__v2df)_mm_sub_pd(__A, __B),
  3692.                                                 (__v2df)__W);
  3693.   }
  3694.  
  3695.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3696.   _mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) {
  3697.     return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  3698.                                                 (__v2df)_mm_sub_pd(__A, __B),
  3699.                                                 (__v2df)_mm_setzero_pd());
  3700.   }
  3701.  
  3702.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3703.   _mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
  3704.     return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  3705.                                                 (__v4df)_mm256_sub_pd(__A, __B),
  3706.                                                 (__v4df)__W);
  3707.   }
  3708.  
  3709.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3710.   _mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) {
  3711.     return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  3712.                                                 (__v4df)_mm256_sub_pd(__A, __B),
  3713.                                                 (__v4df)_mm256_setzero_pd());
  3714.   }
  3715.  
  3716.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3717.   _mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
  3718.     return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  3719.                                                (__v4sf)_mm_sub_ps(__A, __B),
  3720.                                                (__v4sf)__W);
  3721.   }
  3722.  
  3723.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3724.   _mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) {
  3725.     return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  3726.                                                (__v4sf)_mm_sub_ps(__A, __B),
  3727.                                                (__v4sf)_mm_setzero_ps());
  3728.   }
  3729.  
  3730.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3731.   _mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
  3732.     return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  3733.                                                (__v8sf)_mm256_sub_ps(__A, __B),
  3734.                                                (__v8sf)__W);
  3735.   }
  3736.  
  3737.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3738.   _mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) {
  3739.     return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  3740.                                                (__v8sf)_mm256_sub_ps(__A, __B),
  3741.                                                (__v8sf)_mm256_setzero_ps());
  3742.   }
  3743.  
  3744.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3745.   _mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) {
  3746.     return (__m128i)__builtin_ia32_vpermi2vard128((__v4si) __A, (__v4si)__I,
  3747.                                                   (__v4si)__B);
  3748.   }
  3749.  
  3750.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3751.   _mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I,
  3752.                               __m128i __B) {
  3753.     return (__m128i)__builtin_ia32_selectd_128(__U,
  3754.                                     (__v4si)_mm_permutex2var_epi32(__A, __I, __B),
  3755.                                     (__v4si)__A);
  3756.   }
  3757.  
  3758.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3759.   _mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U,
  3760.                                __m128i __B) {
  3761.     return (__m128i)__builtin_ia32_selectd_128(__U,
  3762.                                     (__v4si)_mm_permutex2var_epi32(__A, __I, __B),
  3763.                                     (__v4si)__I);
  3764.   }
  3765.  
  3766.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3767.   _mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I,
  3768.                                __m128i __B) {
  3769.     return (__m128i)__builtin_ia32_selectd_128(__U,
  3770.                                     (__v4si)_mm_permutex2var_epi32(__A, __I, __B),
  3771.                                     (__v4si)_mm_setzero_si128());
  3772.   }
  3773.  
  3774.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3775.   _mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) {
  3776.     return (__m256i)__builtin_ia32_vpermi2vard256((__v8si)__A, (__v8si) __I,
  3777.                                                   (__v8si) __B);
  3778.   }
  3779.  
  3780.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3781.   _mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I,
  3782.                                  __m256i __B) {
  3783.     return (__m256i)__builtin_ia32_selectd_256(__U,
  3784.                                  (__v8si)_mm256_permutex2var_epi32(__A, __I, __B),
  3785.                                  (__v8si)__A);
  3786.   }
  3787.  
  3788.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3789.   _mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U,
  3790.                                   __m256i __B) {
  3791.     return (__m256i)__builtin_ia32_selectd_256(__U,
  3792.                                  (__v8si)_mm256_permutex2var_epi32(__A, __I, __B),
  3793.                                  (__v8si)__I);
  3794.   }
  3795.  
  3796.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3797.   _mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I,
  3798.                                   __m256i __B) {
  3799.     return (__m256i)__builtin_ia32_selectd_256(__U,
  3800.                                  (__v8si)_mm256_permutex2var_epi32(__A, __I, __B),
  3801.                                  (__v8si)_mm256_setzero_si256());
  3802.   }
  3803.  
  3804.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3805.   _mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) {
  3806.     return (__m128d)__builtin_ia32_vpermi2varpd128((__v2df)__A, (__v2di)__I,
  3807.                                                    (__v2df)__B);
  3808.   }
  3809.  
  3810.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3811.   _mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) {
  3812.     return (__m128d)__builtin_ia32_selectpd_128(__U,
  3813.                                        (__v2df)_mm_permutex2var_pd(__A, __I, __B),
  3814.                                        (__v2df)__A);
  3815.   }
  3816.  
  3817.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3818.   _mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) {
  3819.     return (__m128d)__builtin_ia32_selectpd_128(__U,
  3820.                                        (__v2df)_mm_permutex2var_pd(__A, __I, __B),
  3821.                                        (__v2df)(__m128d)__I);
  3822.   }
  3823.  
  3824.   static __inline__ __m128d __DEFAULT_FN_ATTRS128
  3825.   _mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) {
  3826.     return (__m128d)__builtin_ia32_selectpd_128(__U,
  3827.                                        (__v2df)_mm_permutex2var_pd(__A, __I, __B),
  3828.                                        (__v2df)_mm_setzero_pd());
  3829.   }
  3830.  
  3831.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3832.   _mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) {
  3833.     return (__m256d)__builtin_ia32_vpermi2varpd256((__v4df)__A, (__v4di)__I,
  3834.                                                    (__v4df)__B);
  3835.   }
  3836.  
  3837.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3838.   _mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I,
  3839.                               __m256d __B) {
  3840.     return (__m256d)__builtin_ia32_selectpd_256(__U,
  3841.                                     (__v4df)_mm256_permutex2var_pd(__A, __I, __B),
  3842.                                     (__v4df)__A);
  3843.   }
  3844.  
  3845.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3846.   _mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U,
  3847.                                __m256d __B) {
  3848.     return (__m256d)__builtin_ia32_selectpd_256(__U,
  3849.                                     (__v4df)_mm256_permutex2var_pd(__A, __I, __B),
  3850.                                     (__v4df)(__m256d)__I);
  3851.   }
  3852.  
  3853.   static __inline__ __m256d __DEFAULT_FN_ATTRS256
  3854.   _mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I,
  3855.                                __m256d __B) {
  3856.     return (__m256d)__builtin_ia32_selectpd_256(__U,
  3857.                                     (__v4df)_mm256_permutex2var_pd(__A, __I, __B),
  3858.                                     (__v4df)_mm256_setzero_pd());
  3859.   }
  3860.  
  3861.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3862.   _mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) {
  3863.     return (__m128)__builtin_ia32_vpermi2varps128((__v4sf)__A, (__v4si)__I,
  3864.                                                   (__v4sf)__B);
  3865.   }
  3866.  
  3867.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3868.   _mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) {
  3869.     return (__m128)__builtin_ia32_selectps_128(__U,
  3870.                                        (__v4sf)_mm_permutex2var_ps(__A, __I, __B),
  3871.                                        (__v4sf)__A);
  3872.   }
  3873.  
  3874.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3875.   _mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) {
  3876.     return (__m128)__builtin_ia32_selectps_128(__U,
  3877.                                        (__v4sf)_mm_permutex2var_ps(__A, __I, __B),
  3878.                                        (__v4sf)(__m128)__I);
  3879.   }
  3880.  
  3881.   static __inline__ __m128 __DEFAULT_FN_ATTRS128
  3882.   _mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) {
  3883.     return (__m128)__builtin_ia32_selectps_128(__U,
  3884.                                        (__v4sf)_mm_permutex2var_ps(__A, __I, __B),
  3885.                                        (__v4sf)_mm_setzero_ps());
  3886.   }
  3887.  
  3888.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3889.   _mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) {
  3890.     return (__m256)__builtin_ia32_vpermi2varps256((__v8sf)__A, (__v8si)__I,
  3891.                                                   (__v8sf) __B);
  3892.   }
  3893.  
  3894.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3895.   _mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) {
  3896.     return (__m256)__builtin_ia32_selectps_256(__U,
  3897.                                     (__v8sf)_mm256_permutex2var_ps(__A, __I, __B),
  3898.                                     (__v8sf)__A);
  3899.   }
  3900.  
  3901.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3902.   _mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U,
  3903.                                __m256 __B) {
  3904.     return (__m256)__builtin_ia32_selectps_256(__U,
  3905.                                     (__v8sf)_mm256_permutex2var_ps(__A, __I, __B),
  3906.                                     (__v8sf)(__m256)__I);
  3907.   }
  3908.  
  3909.   static __inline__ __m256 __DEFAULT_FN_ATTRS256
  3910.   _mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I,
  3911.                                __m256 __B) {
  3912.     return (__m256)__builtin_ia32_selectps_256(__U,
  3913.                                     (__v8sf)_mm256_permutex2var_ps(__A, __I, __B),
  3914.                                     (__v8sf)_mm256_setzero_ps());
  3915.   }
  3916.  
  3917.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3918.   _mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) {
  3919.     return (__m128i)__builtin_ia32_vpermi2varq128((__v2di)__A, (__v2di)__I,
  3920.                                                   (__v2di)__B);
  3921.   }
  3922.  
  3923.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3924.   _mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I,
  3925.                               __m128i __B) {
  3926.     return (__m128i)__builtin_ia32_selectq_128(__U,
  3927.                                     (__v2di)_mm_permutex2var_epi64(__A, __I, __B),
  3928.                                     (__v2di)__A);
  3929.   }
  3930.  
  3931.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3932.   _mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U,
  3933.                                __m128i __B) {
  3934.     return (__m128i)__builtin_ia32_selectq_128(__U,
  3935.                                     (__v2di)_mm_permutex2var_epi64(__A, __I, __B),
  3936.                                     (__v2di)__I);
  3937.   }
  3938.  
  3939.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3940.   _mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I,
  3941.                                __m128i __B) {
  3942.     return (__m128i)__builtin_ia32_selectq_128(__U,
  3943.                                     (__v2di)_mm_permutex2var_epi64(__A, __I, __B),
  3944.                                     (__v2di)_mm_setzero_si128());
  3945.   }
  3946.  
  3947.  
  3948.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3949.   _mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) {
  3950.     return (__m256i)__builtin_ia32_vpermi2varq256((__v4di)__A, (__v4di) __I,
  3951.                                                   (__v4di) __B);
  3952.   }
  3953.  
  3954.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3955.   _mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I,
  3956.                                  __m256i __B) {
  3957.     return (__m256i)__builtin_ia32_selectq_256(__U,
  3958.                                  (__v4di)_mm256_permutex2var_epi64(__A, __I, __B),
  3959.                                  (__v4di)__A);
  3960.   }
  3961.  
  3962.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3963.   _mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U,
  3964.                                   __m256i __B) {
  3965.     return (__m256i)__builtin_ia32_selectq_256(__U,
  3966.                                  (__v4di)_mm256_permutex2var_epi64(__A, __I, __B),
  3967.                                  (__v4di)__I);
  3968.   }
  3969.  
  3970.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3971.   _mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I,
  3972.                                   __m256i __B) {
  3973.     return (__m256i)__builtin_ia32_selectq_256(__U,
  3974.                                  (__v4di)_mm256_permutex2var_epi64(__A, __I, __B),
  3975.                                  (__v4di)_mm256_setzero_si256());
  3976.   }
  3977.  
  3978.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3979.   _mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
  3980.   {
  3981.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  3982.                                                (__v4si)_mm_cvtepi8_epi32(__A),
  3983.                                                (__v4si)__W);
  3984.   }
  3985.  
  3986.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  3987.   _mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A)
  3988.   {
  3989.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  3990.                                                (__v4si)_mm_cvtepi8_epi32(__A),
  3991.                                                (__v4si)_mm_setzero_si128());
  3992.   }
  3993.  
  3994.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  3995.   _mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A)
  3996.   {
  3997.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  3998.                                                (__v8si)_mm256_cvtepi8_epi32(__A),
  3999.                                                (__v8si)__W);
  4000.   }
  4001.  
  4002.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4003.   _mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A)
  4004.   {
  4005.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4006.                                                (__v8si)_mm256_cvtepi8_epi32(__A),
  4007.                                                (__v8si)_mm256_setzero_si256());
  4008.   }
  4009.  
  4010.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4011.   _mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
  4012.   {
  4013.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4014.                                                (__v2di)_mm_cvtepi8_epi64(__A),
  4015.                                                (__v2di)__W);
  4016.   }
  4017.  
  4018.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4019.   _mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
  4020.   {
  4021.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4022.                                                (__v2di)_mm_cvtepi8_epi64(__A),
  4023.                                                (__v2di)_mm_setzero_si128());
  4024.   }
  4025.  
  4026.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4027.   _mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
  4028.   {
  4029.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4030.                                                (__v4di)_mm256_cvtepi8_epi64(__A),
  4031.                                                (__v4di)__W);
  4032.   }
  4033.  
  4034.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4035.   _mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A)
  4036.   {
  4037.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4038.                                                (__v4di)_mm256_cvtepi8_epi64(__A),
  4039.                                                (__v4di)_mm256_setzero_si256());
  4040.   }
  4041.  
  4042.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4043.   _mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
  4044.   {
  4045.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4046.                                                (__v2di)_mm_cvtepi32_epi64(__X),
  4047.                                                (__v2di)__W);
  4048.   }
  4049.  
  4050.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4051.   _mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
  4052.   {
  4053.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4054.                                                (__v2di)_mm_cvtepi32_epi64(__X),
  4055.                                                (__v2di)_mm_setzero_si128());
  4056.   }
  4057.  
  4058.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4059.   _mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
  4060.   {
  4061.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4062.                                                (__v4di)_mm256_cvtepi32_epi64(__X),
  4063.                                                (__v4di)__W);
  4064.   }
  4065.  
  4066.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4067.   _mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X)
  4068.   {
  4069.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4070.                                                (__v4di)_mm256_cvtepi32_epi64(__X),
  4071.                                                (__v4di)_mm256_setzero_si256());
  4072.   }
  4073.  
  4074.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4075.   _mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
  4076.   {
  4077.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4078.                                                (__v4si)_mm_cvtepi16_epi32(__A),
  4079.                                                (__v4si)__W);
  4080.   }
  4081.  
  4082.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4083.   _mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A)
  4084.   {
  4085.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4086.                                                (__v4si)_mm_cvtepi16_epi32(__A),
  4087.                                                (__v4si)_mm_setzero_si128());
  4088.   }
  4089.  
  4090.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4091.   _mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
  4092.   {
  4093.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4094.                                                (__v8si)_mm256_cvtepi16_epi32(__A),
  4095.                                                (__v8si)__W);
  4096.   }
  4097.  
  4098.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4099.   _mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A)
  4100.   {
  4101.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4102.                                                (__v8si)_mm256_cvtepi16_epi32(__A),
  4103.                                                (__v8si)_mm256_setzero_si256());
  4104.   }
  4105.  
  4106.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4107.   _mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
  4108.   {
  4109.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4110.                                                (__v2di)_mm_cvtepi16_epi64(__A),
  4111.                                                (__v2di)__W);
  4112.   }
  4113.  
  4114.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4115.   _mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
  4116.   {
  4117.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4118.                                                (__v2di)_mm_cvtepi16_epi64(__A),
  4119.                                                (__v2di)_mm_setzero_si128());
  4120.   }
  4121.  
  4122.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4123.   _mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
  4124.   {
  4125.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4126.                                                (__v4di)_mm256_cvtepi16_epi64(__A),
  4127.                                                (__v4di)__W);
  4128.   }
  4129.  
  4130.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4131.   _mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A)
  4132.   {
  4133.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4134.                                                (__v4di)_mm256_cvtepi16_epi64(__A),
  4135.                                                (__v4di)_mm256_setzero_si256());
  4136.   }
  4137.  
  4138.  
  4139.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4140.   _mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A)
  4141.   {
  4142.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4143.                                                (__v4si)_mm_cvtepu8_epi32(__A),
  4144.                                                (__v4si)__W);
  4145.   }
  4146.  
  4147.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4148.   _mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
  4149.   {
  4150.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4151.                                                (__v4si)_mm_cvtepu8_epi32(__A),
  4152.                                                (__v4si)_mm_setzero_si128());
  4153.   }
  4154.  
  4155.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4156.   _mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A)
  4157.   {
  4158.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4159.                                                (__v8si)_mm256_cvtepu8_epi32(__A),
  4160.                                                (__v8si)__W);
  4161.   }
  4162.  
  4163.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4164.   _mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A)
  4165.   {
  4166.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4167.                                                (__v8si)_mm256_cvtepu8_epi32(__A),
  4168.                                                (__v8si)_mm256_setzero_si256());
  4169.   }
  4170.  
  4171.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4172.   _mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A)
  4173.   {
  4174.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4175.                                                (__v2di)_mm_cvtepu8_epi64(__A),
  4176.                                                (__v2di)__W);
  4177.   }
  4178.  
  4179.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4180.   _mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A)
  4181.   {
  4182.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4183.                                                (__v2di)_mm_cvtepu8_epi64(__A),
  4184.                                                (__v2di)_mm_setzero_si128());
  4185.   }
  4186.  
  4187.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4188.   _mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A)
  4189.   {
  4190.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4191.                                                (__v4di)_mm256_cvtepu8_epi64(__A),
  4192.                                                (__v4di)__W);
  4193.   }
  4194.  
  4195.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4196.   _mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
  4197.   {
  4198.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4199.                                                (__v4di)_mm256_cvtepu8_epi64(__A),
  4200.                                                (__v4di)_mm256_setzero_si256());
  4201.   }
  4202.  
  4203.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4204.   _mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X)
  4205.   {
  4206.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4207.                                                (__v2di)_mm_cvtepu32_epi64(__X),
  4208.                                                (__v2di)__W);
  4209.   }
  4210.  
  4211.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4212.   _mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
  4213.   {
  4214.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4215.                                                (__v2di)_mm_cvtepu32_epi64(__X),
  4216.                                                (__v2di)_mm_setzero_si128());
  4217.   }
  4218.  
  4219.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4220.   _mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X)
  4221.   {
  4222.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4223.                                                (__v4di)_mm256_cvtepu32_epi64(__X),
  4224.                                                (__v4di)__W);
  4225.   }
  4226.  
  4227.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4228.   _mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X)
  4229.   {
  4230.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4231.                                                (__v4di)_mm256_cvtepu32_epi64(__X),
  4232.                                                (__v4di)_mm256_setzero_si256());
  4233.   }
  4234.  
  4235.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4236.   _mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A)
  4237.   {
  4238.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4239.                                                (__v4si)_mm_cvtepu16_epi32(__A),
  4240.                                                (__v4si)__W);
  4241.   }
  4242.  
  4243.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4244.   _mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
  4245.   {
  4246.     return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4247.                                                (__v4si)_mm_cvtepu16_epi32(__A),
  4248.                                                (__v4si)_mm_setzero_si128());
  4249.   }
  4250.  
  4251.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4252.   _mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A)
  4253.   {
  4254.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4255.                                                (__v8si)_mm256_cvtepu16_epi32(__A),
  4256.                                                (__v8si)__W);
  4257.   }
  4258.  
  4259.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4260.   _mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A)
  4261.   {
  4262.     return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4263.                                                (__v8si)_mm256_cvtepu16_epi32(__A),
  4264.                                                (__v8si)_mm256_setzero_si256());
  4265.   }
  4266.  
  4267.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4268.   _mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A)
  4269.   {
  4270.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4271.                                                (__v2di)_mm_cvtepu16_epi64(__A),
  4272.                                                (__v2di)__W);
  4273.   }
  4274.  
  4275.   static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4276.   _mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
  4277.   {
  4278.     return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4279.                                                (__v2di)_mm_cvtepu16_epi64(__A),
  4280.                                                (__v2di)_mm_setzero_si128());
  4281.   }
  4282.  
  4283.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4284.   _mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A)
  4285.   {
  4286.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4287.                                                (__v4di)_mm256_cvtepu16_epi64(__A),
  4288.                                                (__v4di)__W);
  4289.   }
  4290.  
  4291.   static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4292.   _mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A)
  4293.   {
  4294.     return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4295.                                                (__v4di)_mm256_cvtepu16_epi64(__A),
  4296.                                                (__v4di)_mm256_setzero_si256());
  4297.   }
  4298.  
  4299.  
  4300. #define _mm_rol_epi32(a, b) \
  4301.   ((__m128i)__builtin_ia32_prold128((__v4si)(__m128i)(a), (int)(b)))
  4302.  
  4303. #define _mm_mask_rol_epi32(w, u, a, b) \
  4304.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
  4305.                                        (__v4si)_mm_rol_epi32((a), (b)), \
  4306.                                        (__v4si)(__m128i)(w)))
  4307.  
  4308. #define _mm_maskz_rol_epi32(u, a, b) \
  4309.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
  4310.                                        (__v4si)_mm_rol_epi32((a), (b)), \
  4311.                                        (__v4si)_mm_setzero_si128()))
  4312.  
  4313. #define _mm256_rol_epi32(a, b) \
  4314.   ((__m256i)__builtin_ia32_prold256((__v8si)(__m256i)(a), (int)(b)))
  4315.  
  4316. #define _mm256_mask_rol_epi32(w, u, a, b) \
  4317.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
  4318.                                        (__v8si)_mm256_rol_epi32((a), (b)), \
  4319.                                        (__v8si)(__m256i)(w)))
  4320.  
  4321. #define _mm256_maskz_rol_epi32(u, a, b) \
  4322.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
  4323.                                        (__v8si)_mm256_rol_epi32((a), (b)), \
  4324.                                        (__v8si)_mm256_setzero_si256()))
  4325.  
  4326. #define _mm_rol_epi64(a, b) \
  4327.   ((__m128i)__builtin_ia32_prolq128((__v2di)(__m128i)(a), (int)(b)))
  4328.  
  4329. #define _mm_mask_rol_epi64(w, u, a, b) \
  4330.   ((__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
  4331.                                        (__v2di)_mm_rol_epi64((a), (b)), \
  4332.                                        (__v2di)(__m128i)(w)))
  4333.  
  4334. #define _mm_maskz_rol_epi64(u, a, b) \
  4335.   ((__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
  4336.                                        (__v2di)_mm_rol_epi64((a), (b)), \
  4337.                                        (__v2di)_mm_setzero_si128()))
  4338.  
  4339. #define _mm256_rol_epi64(a, b) \
  4340.   ((__m256i)__builtin_ia32_prolq256((__v4di)(__m256i)(a), (int)(b)))
  4341.  
  4342. #define _mm256_mask_rol_epi64(w, u, a, b) \
  4343.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
  4344.                                        (__v4di)_mm256_rol_epi64((a), (b)), \
  4345.                                        (__v4di)(__m256i)(w)))
  4346.  
  4347. #define _mm256_maskz_rol_epi64(u, a, b) \
  4348.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
  4349.                                        (__v4di)_mm256_rol_epi64((a), (b)), \
  4350.                                        (__v4di)_mm256_setzero_si256()))
  4351.  
  4352. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4353. _mm_rolv_epi32 (__m128i __A, __m128i __B)
  4354. {
  4355.   return (__m128i)__builtin_ia32_prolvd128((__v4si)__A, (__v4si)__B);
  4356. }
  4357.  
  4358. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4359. _mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4360. {
  4361.   return (__m128i)__builtin_ia32_selectd_128(__U,
  4362.                                              (__v4si)_mm_rolv_epi32(__A, __B),
  4363.                                              (__v4si)__W);
  4364. }
  4365.  
  4366. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4367. _mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
  4368. {
  4369.   return (__m128i)__builtin_ia32_selectd_128(__U,
  4370.                                              (__v4si)_mm_rolv_epi32(__A, __B),
  4371.                                              (__v4si)_mm_setzero_si128());
  4372. }
  4373.  
  4374. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4375. _mm256_rolv_epi32 (__m256i __A, __m256i __B)
  4376. {
  4377.   return (__m256i)__builtin_ia32_prolvd256((__v8si)__A, (__v8si)__B);
  4378. }
  4379.  
  4380. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4381. _mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  4382. {
  4383.   return (__m256i)__builtin_ia32_selectd_256(__U,
  4384.                                             (__v8si)_mm256_rolv_epi32(__A, __B),
  4385.                                             (__v8si)__W);
  4386. }
  4387.  
  4388. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4389. _mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
  4390. {
  4391.   return (__m256i)__builtin_ia32_selectd_256(__U,
  4392.                                             (__v8si)_mm256_rolv_epi32(__A, __B),
  4393.                                             (__v8si)_mm256_setzero_si256());
  4394. }
  4395.  
  4396. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4397. _mm_rolv_epi64 (__m128i __A, __m128i __B)
  4398. {
  4399.   return (__m128i)__builtin_ia32_prolvq128((__v2di)__A, (__v2di)__B);
  4400. }
  4401.  
  4402. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4403. _mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4404. {
  4405.   return (__m128i)__builtin_ia32_selectq_128(__U,
  4406.                                              (__v2di)_mm_rolv_epi64(__A, __B),
  4407.                                              (__v2di)__W);
  4408. }
  4409.  
  4410. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4411. _mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
  4412. {
  4413.   return (__m128i)__builtin_ia32_selectq_128(__U,
  4414.                                              (__v2di)_mm_rolv_epi64(__A, __B),
  4415.                                              (__v2di)_mm_setzero_si128());
  4416. }
  4417.  
  4418. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4419. _mm256_rolv_epi64 (__m256i __A, __m256i __B)
  4420. {
  4421.   return (__m256i)__builtin_ia32_prolvq256((__v4di)__A, (__v4di)__B);
  4422. }
  4423.  
  4424. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4425. _mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  4426. {
  4427.   return (__m256i)__builtin_ia32_selectq_256(__U,
  4428.                                             (__v4di)_mm256_rolv_epi64(__A, __B),
  4429.                                             (__v4di)__W);
  4430. }
  4431.  
  4432. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4433. _mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
  4434. {
  4435.   return (__m256i)__builtin_ia32_selectq_256(__U,
  4436.                                             (__v4di)_mm256_rolv_epi64(__A, __B),
  4437.                                             (__v4di)_mm256_setzero_si256());
  4438. }
  4439.  
  4440. #define _mm_ror_epi32(a, b) \
  4441.   ((__m128i)__builtin_ia32_prord128((__v4si)(__m128i)(a), (int)(b)))
  4442.  
  4443. #define _mm_mask_ror_epi32(w, u, a, b) \
  4444.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
  4445.                                        (__v4si)_mm_ror_epi32((a), (b)), \
  4446.                                        (__v4si)(__m128i)(w)))
  4447.  
  4448. #define _mm_maskz_ror_epi32(u, a, b) \
  4449.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \
  4450.                                        (__v4si)_mm_ror_epi32((a), (b)), \
  4451.                                        (__v4si)_mm_setzero_si128()))
  4452.  
  4453. #define _mm256_ror_epi32(a, b) \
  4454.   ((__m256i)__builtin_ia32_prord256((__v8si)(__m256i)(a), (int)(b)))
  4455.  
  4456. #define _mm256_mask_ror_epi32(w, u, a, b) \
  4457.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
  4458.                                        (__v8si)_mm256_ror_epi32((a), (b)), \
  4459.                                        (__v8si)(__m256i)(w)))
  4460.  
  4461. #define _mm256_maskz_ror_epi32(u, a, b) \
  4462.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \
  4463.                                        (__v8si)_mm256_ror_epi32((a), (b)), \
  4464.                                        (__v8si)_mm256_setzero_si256()))
  4465.  
  4466. #define _mm_ror_epi64(a, b) \
  4467.   ((__m128i)__builtin_ia32_prorq128((__v2di)(__m128i)(a), (int)(b)))
  4468.  
  4469. #define _mm_mask_ror_epi64(w, u, a, b) \
  4470.   ((__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
  4471.                                        (__v2di)_mm_ror_epi64((a), (b)), \
  4472.                                        (__v2di)(__m128i)(w)))
  4473.  
  4474. #define _mm_maskz_ror_epi64(u, a, b) \
  4475.   ((__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \
  4476.                                        (__v2di)_mm_ror_epi64((a), (b)), \
  4477.                                        (__v2di)_mm_setzero_si128()))
  4478.  
  4479. #define _mm256_ror_epi64(a, b) \
  4480.   ((__m256i)__builtin_ia32_prorq256((__v4di)(__m256i)(a), (int)(b)))
  4481.  
  4482. #define _mm256_mask_ror_epi64(w, u, a, b) \
  4483.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
  4484.                                        (__v4di)_mm256_ror_epi64((a), (b)), \
  4485.                                        (__v4di)(__m256i)(w)))
  4486.  
  4487. #define _mm256_maskz_ror_epi64(u, a, b) \
  4488.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \
  4489.                                        (__v4di)_mm256_ror_epi64((a), (b)), \
  4490.                                        (__v4di)_mm256_setzero_si256()))
  4491.  
  4492. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4493. _mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4494. {
  4495.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4496.                                              (__v4si)_mm_sll_epi32(__A, __B),
  4497.                                              (__v4si)__W);
  4498. }
  4499.  
  4500. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4501. _mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  4502. {
  4503.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4504.                                              (__v4si)_mm_sll_epi32(__A, __B),
  4505.                                              (__v4si)_mm_setzero_si128());
  4506. }
  4507.  
  4508. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4509. _mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
  4510. {
  4511.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4512.                                              (__v8si)_mm256_sll_epi32(__A, __B),
  4513.                                              (__v8si)__W);
  4514. }
  4515.  
  4516. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4517. _mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B)
  4518. {
  4519.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4520.                                              (__v8si)_mm256_sll_epi32(__A, __B),
  4521.                                              (__v8si)_mm256_setzero_si256());
  4522. }
  4523.  
  4524. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4525. _mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
  4526. {
  4527.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4528.                                              (__v4si)_mm_slli_epi32(__A, (int)__B),
  4529.                                              (__v4si)__W);
  4530. }
  4531.  
  4532. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4533. _mm_maskz_slli_epi32(__mmask8 __U, __m128i __A, unsigned int __B)
  4534. {
  4535.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4536.                                              (__v4si)_mm_slli_epi32(__A, (int)__B),
  4537.                                              (__v4si)_mm_setzero_si128());
  4538. }
  4539.  
  4540. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4541. _mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
  4542. {
  4543.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4544.                                              (__v8si)_mm256_slli_epi32(__A, (int)__B),
  4545.                                              (__v8si)__W);
  4546. }
  4547.  
  4548. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4549. _mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A, unsigned int __B)
  4550. {
  4551.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4552.                                              (__v8si)_mm256_slli_epi32(__A, (int)__B),
  4553.                                              (__v8si)_mm256_setzero_si256());
  4554. }
  4555.  
  4556. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4557. _mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4558. {
  4559.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4560.                                              (__v2di)_mm_sll_epi64(__A, __B),
  4561.                                              (__v2di)__W);
  4562. }
  4563.  
  4564. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4565. _mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  4566. {
  4567.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4568.                                              (__v2di)_mm_sll_epi64(__A, __B),
  4569.                                              (__v2di)_mm_setzero_si128());
  4570. }
  4571.  
  4572. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4573. _mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
  4574. {
  4575.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4576.                                              (__v4di)_mm256_sll_epi64(__A, __B),
  4577.                                              (__v4di)__W);
  4578. }
  4579.  
  4580. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4581. _mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B)
  4582. {
  4583.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4584.                                              (__v4di)_mm256_sll_epi64(__A, __B),
  4585.                                              (__v4di)_mm256_setzero_si256());
  4586. }
  4587.  
  4588. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4589. _mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
  4590. {
  4591.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4592.                                              (__v2di)_mm_slli_epi64(__A, (int)__B),
  4593.                                              (__v2di)__W);
  4594. }
  4595.  
  4596. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4597. _mm_maskz_slli_epi64(__mmask8 __U, __m128i __A, unsigned int __B)
  4598. {
  4599.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4600.                                              (__v2di)_mm_slli_epi64(__A, (int)__B),
  4601.                                              (__v2di)_mm_setzero_si128());
  4602. }
  4603.  
  4604. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4605. _mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
  4606. {
  4607.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4608.                                              (__v4di)_mm256_slli_epi64(__A, (int)__B),
  4609.                                              (__v4di)__W);
  4610. }
  4611.  
  4612. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4613. _mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A, unsigned int __B)
  4614. {
  4615.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4616.                                              (__v4di)_mm256_slli_epi64(__A, (int)__B),
  4617.                                              (__v4di)_mm256_setzero_si256());
  4618. }
  4619.  
  4620. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4621. _mm_rorv_epi32 (__m128i __A, __m128i __B)
  4622. {
  4623.   return (__m128i)__builtin_ia32_prorvd128((__v4si)__A, (__v4si)__B);
  4624. }
  4625.  
  4626. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4627. _mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4628. {
  4629.   return (__m128i)__builtin_ia32_selectd_128(__U,
  4630.                                              (__v4si)_mm_rorv_epi32(__A, __B),
  4631.                                              (__v4si)__W);
  4632. }
  4633.  
  4634. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4635. _mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
  4636. {
  4637.   return (__m128i)__builtin_ia32_selectd_128(__U,
  4638.                                              (__v4si)_mm_rorv_epi32(__A, __B),
  4639.                                              (__v4si)_mm_setzero_si128());
  4640. }
  4641.  
  4642. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4643. _mm256_rorv_epi32 (__m256i __A, __m256i __B)
  4644. {
  4645.   return (__m256i)__builtin_ia32_prorvd256((__v8si)__A, (__v8si)__B);
  4646. }
  4647.  
  4648. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4649. _mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  4650. {
  4651.   return (__m256i)__builtin_ia32_selectd_256(__U,
  4652.                                             (__v8si)_mm256_rorv_epi32(__A, __B),
  4653.                                             (__v8si)__W);
  4654. }
  4655.  
  4656. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4657. _mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
  4658. {
  4659.   return (__m256i)__builtin_ia32_selectd_256(__U,
  4660.                                             (__v8si)_mm256_rorv_epi32(__A, __B),
  4661.                                             (__v8si)_mm256_setzero_si256());
  4662. }
  4663.  
  4664. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4665. _mm_rorv_epi64 (__m128i __A, __m128i __B)
  4666. {
  4667.   return (__m128i)__builtin_ia32_prorvq128((__v2di)__A, (__v2di)__B);
  4668. }
  4669.  
  4670. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4671. _mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4672. {
  4673.   return (__m128i)__builtin_ia32_selectq_128(__U,
  4674.                                              (__v2di)_mm_rorv_epi64(__A, __B),
  4675.                                              (__v2di)__W);
  4676. }
  4677.  
  4678. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4679. _mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
  4680. {
  4681.   return (__m128i)__builtin_ia32_selectq_128(__U,
  4682.                                              (__v2di)_mm_rorv_epi64(__A, __B),
  4683.                                              (__v2di)_mm_setzero_si128());
  4684. }
  4685.  
  4686. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4687. _mm256_rorv_epi64 (__m256i __A, __m256i __B)
  4688. {
  4689.   return (__m256i)__builtin_ia32_prorvq256((__v4di)__A, (__v4di)__B);
  4690. }
  4691.  
  4692. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4693. _mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  4694. {
  4695.   return (__m256i)__builtin_ia32_selectq_256(__U,
  4696.                                             (__v4di)_mm256_rorv_epi64(__A, __B),
  4697.                                             (__v4di)__W);
  4698. }
  4699.  
  4700. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4701. _mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
  4702. {
  4703.   return (__m256i)__builtin_ia32_selectq_256(__U,
  4704.                                             (__v4di)_mm256_rorv_epi64(__A, __B),
  4705.                                             (__v4di)_mm256_setzero_si256());
  4706. }
  4707.  
  4708. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4709. _mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
  4710. {
  4711.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4712.                                              (__v2di)_mm_sllv_epi64(__X, __Y),
  4713.                                              (__v2di)__W);
  4714. }
  4715.  
  4716. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4717. _mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
  4718. {
  4719.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4720.                                              (__v2di)_mm_sllv_epi64(__X, __Y),
  4721.                                              (__v2di)_mm_setzero_si128());
  4722. }
  4723.  
  4724. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4725. _mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
  4726. {
  4727.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4728.                                             (__v4di)_mm256_sllv_epi64(__X, __Y),
  4729.                                             (__v4di)__W);
  4730. }
  4731.  
  4732. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4733. _mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y)
  4734. {
  4735.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4736.                                             (__v4di)_mm256_sllv_epi64(__X, __Y),
  4737.                                             (__v4di)_mm256_setzero_si256());
  4738. }
  4739.  
  4740. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4741. _mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
  4742. {
  4743.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4744.                                              (__v4si)_mm_sllv_epi32(__X, __Y),
  4745.                                              (__v4si)__W);
  4746. }
  4747.  
  4748. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4749. _mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
  4750. {
  4751.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4752.                                              (__v4si)_mm_sllv_epi32(__X, __Y),
  4753.                                              (__v4si)_mm_setzero_si128());
  4754. }
  4755.  
  4756. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4757. _mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
  4758. {
  4759.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4760.                                             (__v8si)_mm256_sllv_epi32(__X, __Y),
  4761.                                             (__v8si)__W);
  4762. }
  4763.  
  4764. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4765. _mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
  4766. {
  4767.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4768.                                             (__v8si)_mm256_sllv_epi32(__X, __Y),
  4769.                                             (__v8si)_mm256_setzero_si256());
  4770. }
  4771.  
  4772. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4773. _mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
  4774. {
  4775.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4776.                                              (__v2di)_mm_srlv_epi64(__X, __Y),
  4777.                                              (__v2di)__W);
  4778. }
  4779.  
  4780. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4781. _mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
  4782. {
  4783.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4784.                                              (__v2di)_mm_srlv_epi64(__X, __Y),
  4785.                                              (__v2di)_mm_setzero_si128());
  4786. }
  4787.  
  4788. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4789. _mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
  4790. {
  4791.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4792.                                             (__v4di)_mm256_srlv_epi64(__X, __Y),
  4793.                                             (__v4di)__W);
  4794. }
  4795.  
  4796. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4797. _mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y)
  4798. {
  4799.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4800.                                             (__v4di)_mm256_srlv_epi64(__X, __Y),
  4801.                                             (__v4di)_mm256_setzero_si256());
  4802. }
  4803.  
  4804. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4805. _mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
  4806. {
  4807.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4808.                                             (__v4si)_mm_srlv_epi32(__X, __Y),
  4809.                                             (__v4si)__W);
  4810. }
  4811.  
  4812. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4813. _mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
  4814. {
  4815.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4816.                                             (__v4si)_mm_srlv_epi32(__X, __Y),
  4817.                                             (__v4si)_mm_setzero_si128());
  4818. }
  4819.  
  4820. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4821. _mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
  4822. {
  4823.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4824.                                             (__v8si)_mm256_srlv_epi32(__X, __Y),
  4825.                                             (__v8si)__W);
  4826. }
  4827.  
  4828. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4829. _mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
  4830. {
  4831.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4832.                                             (__v8si)_mm256_srlv_epi32(__X, __Y),
  4833.                                             (__v8si)_mm256_setzero_si256());
  4834. }
  4835.  
  4836. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4837. _mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4838. {
  4839.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4840.                                              (__v4si)_mm_srl_epi32(__A, __B),
  4841.                                              (__v4si)__W);
  4842. }
  4843.  
  4844. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4845. _mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  4846. {
  4847.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4848.                                              (__v4si)_mm_srl_epi32(__A, __B),
  4849.                                              (__v4si)_mm_setzero_si128());
  4850. }
  4851.  
  4852. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4853. _mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
  4854. {
  4855.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4856.                                              (__v8si)_mm256_srl_epi32(__A, __B),
  4857.                                              (__v8si)__W);
  4858. }
  4859.  
  4860. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4861. _mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B)
  4862. {
  4863.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4864.                                              (__v8si)_mm256_srl_epi32(__A, __B),
  4865.                                              (__v8si)_mm256_setzero_si256());
  4866. }
  4867.  
  4868. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4869. _mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
  4870. {
  4871.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4872.                                              (__v4si)_mm_srli_epi32(__A, (int)__B),
  4873.                                              (__v4si)__W);
  4874. }
  4875.  
  4876. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4877. _mm_maskz_srli_epi32(__mmask8 __U, __m128i __A, unsigned int __B)
  4878. {
  4879.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4880.                                              (__v4si)_mm_srli_epi32(__A, (int)__B),
  4881.                                              (__v4si)_mm_setzero_si128());
  4882. }
  4883.  
  4884. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4885. _mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
  4886. {
  4887.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4888.                                              (__v8si)_mm256_srli_epi32(__A, (int)__B),
  4889.                                              (__v8si)__W);
  4890. }
  4891.  
  4892. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4893. _mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A, unsigned int __B)
  4894. {
  4895.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4896.                                              (__v8si)_mm256_srli_epi32(__A, (int)__B),
  4897.                                              (__v8si)_mm256_setzero_si256());
  4898. }
  4899.  
  4900. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4901. _mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  4902. {
  4903.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4904.                                              (__v2di)_mm_srl_epi64(__A, __B),
  4905.                                              (__v2di)__W);
  4906. }
  4907.  
  4908. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4909. _mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  4910. {
  4911.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4912.                                              (__v2di)_mm_srl_epi64(__A, __B),
  4913.                                              (__v2di)_mm_setzero_si128());
  4914. }
  4915.  
  4916. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4917. _mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
  4918. {
  4919.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4920.                                              (__v4di)_mm256_srl_epi64(__A, __B),
  4921.                                              (__v4di)__W);
  4922. }
  4923.  
  4924. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4925. _mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B)
  4926. {
  4927.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4928.                                              (__v4di)_mm256_srl_epi64(__A, __B),
  4929.                                              (__v4di)_mm256_setzero_si256());
  4930. }
  4931.  
  4932. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4933. _mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
  4934. {
  4935.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4936.                                              (__v2di)_mm_srli_epi64(__A, (int)__B),
  4937.                                              (__v2di)__W);
  4938. }
  4939.  
  4940. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4941. _mm_maskz_srli_epi64(__mmask8 __U, __m128i __A, unsigned int __B)
  4942. {
  4943.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  4944.                                              (__v2di)_mm_srli_epi64(__A, (int)__B),
  4945.                                              (__v2di)_mm_setzero_si128());
  4946. }
  4947.  
  4948. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4949. _mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
  4950. {
  4951.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4952.                                              (__v4di)_mm256_srli_epi64(__A, (int)__B),
  4953.                                              (__v4di)__W);
  4954. }
  4955.  
  4956. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4957. _mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A, unsigned int __B)
  4958. {
  4959.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  4960.                                              (__v4di)_mm256_srli_epi64(__A, (int)__B),
  4961.                                              (__v4di)_mm256_setzero_si256());
  4962. }
  4963.  
  4964. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4965. _mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
  4966. {
  4967.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4968.                                             (__v4si)_mm_srav_epi32(__X, __Y),
  4969.                                             (__v4si)__W);
  4970. }
  4971.  
  4972. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4973. _mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y)
  4974. {
  4975.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  4976.                                             (__v4si)_mm_srav_epi32(__X, __Y),
  4977.                                             (__v4si)_mm_setzero_si128());
  4978. }
  4979.  
  4980. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4981. _mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
  4982. {
  4983.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4984.                                             (__v8si)_mm256_srav_epi32(__X, __Y),
  4985.                                             (__v8si)__W);
  4986. }
  4987.  
  4988. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  4989. _mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y)
  4990. {
  4991.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  4992.                                             (__v8si)_mm256_srav_epi32(__X, __Y),
  4993.                                             (__v8si)_mm256_setzero_si256());
  4994. }
  4995.  
  4996. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  4997. _mm_srav_epi64(__m128i __X, __m128i __Y)
  4998. {
  4999.   return (__m128i)__builtin_ia32_psravq128((__v2di)__X, (__v2di)__Y);
  5000. }
  5001.  
  5002. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5003. _mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y)
  5004. {
  5005.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  5006.                                              (__v2di)_mm_srav_epi64(__X, __Y),
  5007.                                              (__v2di)__W);
  5008. }
  5009.  
  5010. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5011. _mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y)
  5012. {
  5013.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  5014.                                              (__v2di)_mm_srav_epi64(__X, __Y),
  5015.                                              (__v2di)_mm_setzero_si128());
  5016. }
  5017.  
  5018. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5019. _mm256_srav_epi64(__m256i __X, __m256i __Y)
  5020. {
  5021.   return (__m256i)__builtin_ia32_psravq256((__v4di)__X, (__v4di) __Y);
  5022. }
  5023.  
  5024. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5025. _mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y)
  5026. {
  5027.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  5028.                                              (__v4di)_mm256_srav_epi64(__X, __Y),
  5029.                                              (__v4di)__W);
  5030. }
  5031.  
  5032. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5033. _mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y)
  5034. {
  5035.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  5036.                                              (__v4di)_mm256_srav_epi64(__X, __Y),
  5037.                                              (__v4di)_mm256_setzero_si256());
  5038. }
  5039.  
  5040. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5041. _mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
  5042. {
  5043.   return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
  5044.                  (__v4si) __A,
  5045.                  (__v4si) __W);
  5046. }
  5047.  
  5048. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5049. _mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A)
  5050. {
  5051.   return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U,
  5052.                  (__v4si) __A,
  5053.                  (__v4si) _mm_setzero_si128 ());
  5054. }
  5055.  
  5056.  
  5057. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5058. _mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
  5059. {
  5060.   return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
  5061.                  (__v8si) __A,
  5062.                  (__v8si) __W);
  5063. }
  5064.  
  5065. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5066. _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
  5067. {
  5068.   return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U,
  5069.                  (__v8si) __A,
  5070.                  (__v8si) _mm256_setzero_si256 ());
  5071. }
  5072.  
  5073. static __inline __m128i __DEFAULT_FN_ATTRS128
  5074. _mm_load_epi32 (void const *__P)
  5075. {
  5076.   return *(const __m128i *) __P;
  5077. }
  5078.  
  5079. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5080. _mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
  5081. {
  5082.   return (__m128i) __builtin_ia32_movdqa32load128_mask ((const __v4si *) __P,
  5083.               (__v4si) __W,
  5084.               (__mmask8)
  5085.               __U);
  5086. }
  5087.  
  5088. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5089. _mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
  5090. {
  5091.   return (__m128i) __builtin_ia32_movdqa32load128_mask ((const __v4si *) __P,
  5092.               (__v4si)
  5093.               _mm_setzero_si128 (),
  5094.               (__mmask8)
  5095.               __U);
  5096. }
  5097.  
  5098. static __inline __m256i __DEFAULT_FN_ATTRS256
  5099. _mm256_load_epi32 (void const *__P)
  5100. {
  5101.   return *(const __m256i *) __P;
  5102. }
  5103.  
  5104. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5105. _mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
  5106. {
  5107.   return (__m256i) __builtin_ia32_movdqa32load256_mask ((const __v8si *) __P,
  5108.               (__v8si) __W,
  5109.               (__mmask8)
  5110.               __U);
  5111. }
  5112.  
  5113. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5114. _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
  5115. {
  5116.   return (__m256i) __builtin_ia32_movdqa32load256_mask ((const __v8si *) __P,
  5117.               (__v8si)
  5118.               _mm256_setzero_si256 (),
  5119.               (__mmask8)
  5120.               __U);
  5121. }
  5122.  
  5123. static __inline void __DEFAULT_FN_ATTRS128
  5124. _mm_store_epi32 (void *__P, __m128i __A)
  5125. {
  5126.   *(__m128i *) __P = __A;
  5127. }
  5128.  
  5129. static __inline__ void __DEFAULT_FN_ATTRS128
  5130. _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
  5131. {
  5132.   __builtin_ia32_movdqa32store128_mask ((__v4si *) __P,
  5133.           (__v4si) __A,
  5134.           (__mmask8) __U);
  5135. }
  5136.  
  5137. static __inline void __DEFAULT_FN_ATTRS256
  5138. _mm256_store_epi32 (void *__P, __m256i __A)
  5139. {
  5140.   *(__m256i *) __P = __A;
  5141. }
  5142.  
  5143. static __inline__ void __DEFAULT_FN_ATTRS256
  5144. _mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
  5145. {
  5146.   __builtin_ia32_movdqa32store256_mask ((__v8si *) __P,
  5147.           (__v8si) __A,
  5148.           (__mmask8) __U);
  5149. }
  5150.  
  5151. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5152. _mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
  5153. {
  5154.   return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
  5155.                  (__v2di) __A,
  5156.                  (__v2di) __W);
  5157. }
  5158.  
  5159. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5160. _mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A)
  5161. {
  5162.   return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U,
  5163.                  (__v2di) __A,
  5164.                  (__v2di) _mm_setzero_si128 ());
  5165. }
  5166.  
  5167. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5168. _mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
  5169. {
  5170.   return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
  5171.                  (__v4di) __A,
  5172.                  (__v4di) __W);
  5173. }
  5174.  
  5175. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5176. _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
  5177. {
  5178.   return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U,
  5179.                  (__v4di) __A,
  5180.                  (__v4di) _mm256_setzero_si256 ());
  5181. }
  5182.  
  5183. static __inline __m128i __DEFAULT_FN_ATTRS128
  5184. _mm_load_epi64 (void const *__P)
  5185. {
  5186.   return *(const __m128i *) __P;
  5187. }
  5188.  
  5189. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5190. _mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
  5191. {
  5192.   return (__m128i) __builtin_ia32_movdqa64load128_mask ((const __v2di *) __P,
  5193.               (__v2di) __W,
  5194.               (__mmask8)
  5195.               __U);
  5196. }
  5197.  
  5198. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5199. _mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
  5200. {
  5201.   return (__m128i) __builtin_ia32_movdqa64load128_mask ((const __v2di *) __P,
  5202.               (__v2di)
  5203.               _mm_setzero_si128 (),
  5204.               (__mmask8)
  5205.               __U);
  5206. }
  5207.  
  5208. static __inline __m256i __DEFAULT_FN_ATTRS256
  5209. _mm256_load_epi64 (void const *__P)
  5210. {
  5211.   return *(const __m256i *) __P;
  5212. }
  5213.  
  5214. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5215. _mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
  5216. {
  5217.   return (__m256i) __builtin_ia32_movdqa64load256_mask ((const __v4di *) __P,
  5218.               (__v4di) __W,
  5219.               (__mmask8)
  5220.               __U);
  5221. }
  5222.  
  5223. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5224. _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
  5225. {
  5226.   return (__m256i) __builtin_ia32_movdqa64load256_mask ((const __v4di *) __P,
  5227.               (__v4di)
  5228.               _mm256_setzero_si256 (),
  5229.               (__mmask8)
  5230.               __U);
  5231. }
  5232.  
  5233. static __inline void __DEFAULT_FN_ATTRS128
  5234. _mm_store_epi64 (void *__P, __m128i __A)
  5235. {
  5236.   *(__m128i *) __P = __A;
  5237. }
  5238.  
  5239. static __inline__ void __DEFAULT_FN_ATTRS128
  5240. _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
  5241. {
  5242.   __builtin_ia32_movdqa64store128_mask ((__v2di *) __P,
  5243.           (__v2di) __A,
  5244.           (__mmask8) __U);
  5245. }
  5246.  
  5247. static __inline void __DEFAULT_FN_ATTRS256
  5248. _mm256_store_epi64 (void *__P, __m256i __A)
  5249. {
  5250.   *(__m256i *) __P = __A;
  5251. }
  5252.  
  5253. static __inline__ void __DEFAULT_FN_ATTRS256
  5254. _mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
  5255. {
  5256.   __builtin_ia32_movdqa64store256_mask ((__v4di *) __P,
  5257.           (__v4di) __A,
  5258.           (__mmask8) __U);
  5259. }
  5260.  
  5261. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5262. _mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A)
  5263. {
  5264.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  5265.                                               (__v2df)_mm_movedup_pd(__A),
  5266.                                               (__v2df)__W);
  5267. }
  5268.  
  5269. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5270. _mm_maskz_movedup_pd (__mmask8 __U, __m128d __A)
  5271. {
  5272.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  5273.                                               (__v2df)_mm_movedup_pd(__A),
  5274.                                               (__v2df)_mm_setzero_pd());
  5275. }
  5276.  
  5277. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5278. _mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A)
  5279. {
  5280.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  5281.                                               (__v4df)_mm256_movedup_pd(__A),
  5282.                                               (__v4df)__W);
  5283. }
  5284.  
  5285. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5286. _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A)
  5287. {
  5288.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  5289.                                               (__v4df)_mm256_movedup_pd(__A),
  5290.                                               (__v4df)_mm256_setzero_pd());
  5291. }
  5292.  
  5293. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5294. _mm_mask_set1_epi32(__m128i __O, __mmask8 __M, int __A)
  5295. {
  5296.    return (__m128i)__builtin_ia32_selectd_128(__M,
  5297.                                               (__v4si) _mm_set1_epi32(__A),
  5298.                                               (__v4si)__O);
  5299. }
  5300.  
  5301. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5302. _mm_maskz_set1_epi32( __mmask8 __M, int __A)
  5303. {
  5304.    return (__m128i)__builtin_ia32_selectd_128(__M,
  5305.                                               (__v4si) _mm_set1_epi32(__A),
  5306.                                               (__v4si)_mm_setzero_si128());
  5307. }
  5308.  
  5309. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5310. _mm256_mask_set1_epi32(__m256i __O, __mmask8 __M, int __A)
  5311. {
  5312.    return (__m256i)__builtin_ia32_selectd_256(__M,
  5313.                                               (__v8si) _mm256_set1_epi32(__A),
  5314.                                               (__v8si)__O);
  5315. }
  5316.  
  5317. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5318. _mm256_maskz_set1_epi32( __mmask8 __M, int __A)
  5319. {
  5320.    return (__m256i)__builtin_ia32_selectd_256(__M,
  5321.                                               (__v8si) _mm256_set1_epi32(__A),
  5322.                                               (__v8si)_mm256_setzero_si256());
  5323. }
  5324.  
  5325.  
  5326. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5327. _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A)
  5328. {
  5329.   return (__m128i) __builtin_ia32_selectq_128(__M,
  5330.                                               (__v2di) _mm_set1_epi64x(__A),
  5331.                                               (__v2di) __O);
  5332. }
  5333.  
  5334. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5335. _mm_maskz_set1_epi64 (__mmask8 __M, long long __A)
  5336. {
  5337.   return (__m128i) __builtin_ia32_selectq_128(__M,
  5338.                                               (__v2di) _mm_set1_epi64x(__A),
  5339.                                               (__v2di) _mm_setzero_si128());
  5340. }
  5341.  
  5342. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5343. _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A)
  5344. {
  5345.   return (__m256i) __builtin_ia32_selectq_256(__M,
  5346.                                               (__v4di) _mm256_set1_epi64x(__A),
  5347.                                               (__v4di) __O) ;
  5348. }
  5349.  
  5350. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5351. _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A)
  5352. {
  5353.    return (__m256i) __builtin_ia32_selectq_256(__M,
  5354.                                                (__v4di) _mm256_set1_epi64x(__A),
  5355.                                                (__v4di) _mm256_setzero_si256());
  5356. }
  5357.  
  5358. #define _mm_fixupimm_pd(A, B, C, imm) \
  5359.   ((__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
  5360.                                               (__v2df)(__m128d)(B), \
  5361.                                               (__v2di)(__m128i)(C), (int)(imm), \
  5362.                                               (__mmask8)-1))
  5363.  
  5364. #define _mm_mask_fixupimm_pd(A, U, B, C, imm) \
  5365.   ((__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \
  5366.                                               (__v2df)(__m128d)(B), \
  5367.                                               (__v2di)(__m128i)(C), (int)(imm), \
  5368.                                               (__mmask8)(U)))
  5369.  
  5370. #define _mm_maskz_fixupimm_pd(U, A, B, C, imm) \
  5371.   ((__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \
  5372.                                                (__v2df)(__m128d)(B), \
  5373.                                                (__v2di)(__m128i)(C), \
  5374.                                                (int)(imm), (__mmask8)(U)))
  5375.  
  5376. #define _mm256_fixupimm_pd(A, B, C, imm) \
  5377.   ((__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
  5378.                                               (__v4df)(__m256d)(B), \
  5379.                                               (__v4di)(__m256i)(C), (int)(imm), \
  5380.                                               (__mmask8)-1))
  5381.  
  5382. #define _mm256_mask_fixupimm_pd(A, U, B, C, imm) \
  5383.   ((__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \
  5384.                                               (__v4df)(__m256d)(B), \
  5385.                                               (__v4di)(__m256i)(C), (int)(imm), \
  5386.                                               (__mmask8)(U)))
  5387.  
  5388. #define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) \
  5389.   ((__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \
  5390.                                                (__v4df)(__m256d)(B), \
  5391.                                                (__v4di)(__m256i)(C), \
  5392.                                                (int)(imm), (__mmask8)(U)))
  5393.  
  5394. #define _mm_fixupimm_ps(A, B, C, imm) \
  5395.   ((__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
  5396.                                              (__v4sf)(__m128)(B), \
  5397.                                              (__v4si)(__m128i)(C), (int)(imm), \
  5398.                                              (__mmask8)-1))
  5399.  
  5400. #define _mm_mask_fixupimm_ps(A, U, B, C, imm) \
  5401.   ((__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \
  5402.                                              (__v4sf)(__m128)(B), \
  5403.                                              (__v4si)(__m128i)(C), (int)(imm), \
  5404.                                              (__mmask8)(U)))
  5405.  
  5406. #define _mm_maskz_fixupimm_ps(U, A, B, C, imm) \
  5407.   ((__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \
  5408.                                               (__v4sf)(__m128)(B), \
  5409.                                               (__v4si)(__m128i)(C), (int)(imm), \
  5410.                                               (__mmask8)(U)))
  5411.  
  5412. #define _mm256_fixupimm_ps(A, B, C, imm) \
  5413.   ((__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
  5414.                                              (__v8sf)(__m256)(B), \
  5415.                                              (__v8si)(__m256i)(C), (int)(imm), \
  5416.                                              (__mmask8)-1))
  5417.  
  5418. #define _mm256_mask_fixupimm_ps(A, U, B, C, imm) \
  5419.   ((__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \
  5420.                                              (__v8sf)(__m256)(B), \
  5421.                                              (__v8si)(__m256i)(C), (int)(imm), \
  5422.                                              (__mmask8)(U)))
  5423.  
  5424. #define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) \
  5425.   ((__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \
  5426.                                               (__v8sf)(__m256)(B), \
  5427.                                               (__v8si)(__m256i)(C), (int)(imm), \
  5428.                                               (__mmask8)(U)))
  5429.  
  5430. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5431. _mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P)
  5432. {
  5433.   return (__m128d) __builtin_ia32_loadapd128_mask ((const __v2df *) __P,
  5434.                (__v2df) __W,
  5435.                (__mmask8) __U);
  5436. }
  5437.  
  5438. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5439. _mm_maskz_load_pd (__mmask8 __U, void const *__P)
  5440. {
  5441.   return (__m128d) __builtin_ia32_loadapd128_mask ((const __v2df *) __P,
  5442.                (__v2df)
  5443.                _mm_setzero_pd (),
  5444.                (__mmask8) __U);
  5445. }
  5446.  
  5447. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5448. _mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P)
  5449. {
  5450.   return (__m256d) __builtin_ia32_loadapd256_mask ((const __v4df *) __P,
  5451.                (__v4df) __W,
  5452.                (__mmask8) __U);
  5453. }
  5454.  
  5455. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5456. _mm256_maskz_load_pd (__mmask8 __U, void const *__P)
  5457. {
  5458.   return (__m256d) __builtin_ia32_loadapd256_mask ((const __v4df *) __P,
  5459.                (__v4df)
  5460.                _mm256_setzero_pd (),
  5461.                (__mmask8) __U);
  5462. }
  5463.  
  5464. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5465. _mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P)
  5466. {
  5467.   return (__m128) __builtin_ia32_loadaps128_mask ((const __v4sf *) __P,
  5468.               (__v4sf) __W,
  5469.               (__mmask8) __U);
  5470. }
  5471.  
  5472. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5473. _mm_maskz_load_ps (__mmask8 __U, void const *__P)
  5474. {
  5475.   return (__m128) __builtin_ia32_loadaps128_mask ((const __v4sf *) __P,
  5476.               (__v4sf)
  5477.               _mm_setzero_ps (),
  5478.               (__mmask8) __U);
  5479. }
  5480.  
  5481. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5482. _mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P)
  5483. {
  5484.   return (__m256) __builtin_ia32_loadaps256_mask ((const __v8sf *) __P,
  5485.               (__v8sf) __W,
  5486.               (__mmask8) __U);
  5487. }
  5488.  
  5489. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5490. _mm256_maskz_load_ps (__mmask8 __U, void const *__P)
  5491. {
  5492.   return (__m256) __builtin_ia32_loadaps256_mask ((const __v8sf *) __P,
  5493.               (__v8sf)
  5494.               _mm256_setzero_ps (),
  5495.               (__mmask8) __U);
  5496. }
  5497.  
  5498. static __inline __m128i __DEFAULT_FN_ATTRS128
  5499. _mm_loadu_epi64 (void const *__P)
  5500. {
  5501.   struct __loadu_epi64 {
  5502.     __m128i_u __v;
  5503.   } __attribute__((__packed__, __may_alias__));
  5504.   return ((const struct __loadu_epi64*)__P)->__v;
  5505. }
  5506.  
  5507. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5508. _mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
  5509. {
  5510.   return (__m128i) __builtin_ia32_loaddqudi128_mask ((const __v2di *) __P,
  5511.                  (__v2di) __W,
  5512.                  (__mmask8) __U);
  5513. }
  5514.  
  5515. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5516. _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
  5517. {
  5518.   return (__m128i) __builtin_ia32_loaddqudi128_mask ((const __v2di *) __P,
  5519.                  (__v2di)
  5520.                  _mm_setzero_si128 (),
  5521.                  (__mmask8) __U);
  5522. }
  5523.  
  5524. static __inline __m256i __DEFAULT_FN_ATTRS256
  5525. _mm256_loadu_epi64 (void const *__P)
  5526. {
  5527.   struct __loadu_epi64 {
  5528.     __m256i_u __v;
  5529.   } __attribute__((__packed__, __may_alias__));
  5530.   return ((const struct __loadu_epi64*)__P)->__v;
  5531. }
  5532.  
  5533. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5534. _mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
  5535. {
  5536.   return (__m256i) __builtin_ia32_loaddqudi256_mask ((const __v4di *) __P,
  5537.                  (__v4di) __W,
  5538.                  (__mmask8) __U);
  5539. }
  5540.  
  5541. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5542. _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
  5543. {
  5544.   return (__m256i) __builtin_ia32_loaddqudi256_mask ((const __v4di *) __P,
  5545.                  (__v4di)
  5546.                  _mm256_setzero_si256 (),
  5547.                  (__mmask8) __U);
  5548. }
  5549.  
  5550. static __inline __m128i __DEFAULT_FN_ATTRS128
  5551. _mm_loadu_epi32 (void const *__P)
  5552. {
  5553.   struct __loadu_epi32 {
  5554.     __m128i_u __v;
  5555.   } __attribute__((__packed__, __may_alias__));
  5556.   return ((const struct __loadu_epi32*)__P)->__v;
  5557. }
  5558.  
  5559. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5560. _mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
  5561. {
  5562.   return (__m128i) __builtin_ia32_loaddqusi128_mask ((const __v4si *) __P,
  5563.                  (__v4si) __W,
  5564.                  (__mmask8) __U);
  5565. }
  5566.  
  5567. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  5568. _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
  5569. {
  5570.   return (__m128i) __builtin_ia32_loaddqusi128_mask ((const __v4si *) __P,
  5571.                  (__v4si)
  5572.                  _mm_setzero_si128 (),
  5573.                  (__mmask8) __U);
  5574. }
  5575.  
  5576. static __inline __m256i __DEFAULT_FN_ATTRS256
  5577. _mm256_loadu_epi32 (void const *__P)
  5578. {
  5579.   struct __loadu_epi32 {
  5580.     __m256i_u __v;
  5581.   } __attribute__((__packed__, __may_alias__));
  5582.   return ((const struct __loadu_epi32*)__P)->__v;
  5583. }
  5584.  
  5585. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5586. _mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
  5587. {
  5588.   return (__m256i) __builtin_ia32_loaddqusi256_mask ((const __v8si *) __P,
  5589.                  (__v8si) __W,
  5590.                  (__mmask8) __U);
  5591. }
  5592.  
  5593. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  5594. _mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
  5595. {
  5596.   return (__m256i) __builtin_ia32_loaddqusi256_mask ((const __v8si *) __P,
  5597.                  (__v8si)
  5598.                  _mm256_setzero_si256 (),
  5599.                  (__mmask8) __U);
  5600. }
  5601.  
  5602. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5603. _mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P)
  5604. {
  5605.   return (__m128d) __builtin_ia32_loadupd128_mask ((const __v2df *) __P,
  5606.                (__v2df) __W,
  5607.                (__mmask8) __U);
  5608. }
  5609.  
  5610. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5611. _mm_maskz_loadu_pd (__mmask8 __U, void const *__P)
  5612. {
  5613.   return (__m128d) __builtin_ia32_loadupd128_mask ((const __v2df *) __P,
  5614.                (__v2df)
  5615.                _mm_setzero_pd (),
  5616.                (__mmask8) __U);
  5617. }
  5618.  
  5619. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5620. _mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P)
  5621. {
  5622.   return (__m256d) __builtin_ia32_loadupd256_mask ((const __v4df *) __P,
  5623.                (__v4df) __W,
  5624.                (__mmask8) __U);
  5625. }
  5626.  
  5627. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5628. _mm256_maskz_loadu_pd (__mmask8 __U, void const *__P)
  5629. {
  5630.   return (__m256d) __builtin_ia32_loadupd256_mask ((const __v4df *) __P,
  5631.                (__v4df)
  5632.                _mm256_setzero_pd (),
  5633.                (__mmask8) __U);
  5634. }
  5635.  
  5636. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5637. _mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P)
  5638. {
  5639.   return (__m128) __builtin_ia32_loadups128_mask ((const __v4sf *) __P,
  5640.               (__v4sf) __W,
  5641.               (__mmask8) __U);
  5642. }
  5643.  
  5644. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5645. _mm_maskz_loadu_ps (__mmask8 __U, void const *__P)
  5646. {
  5647.   return (__m128) __builtin_ia32_loadups128_mask ((const __v4sf *) __P,
  5648.               (__v4sf)
  5649.               _mm_setzero_ps (),
  5650.               (__mmask8) __U);
  5651. }
  5652.  
  5653. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5654. _mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P)
  5655. {
  5656.   return (__m256) __builtin_ia32_loadups256_mask ((const __v8sf *) __P,
  5657.               (__v8sf) __W,
  5658.               (__mmask8) __U);
  5659. }
  5660.  
  5661. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5662. _mm256_maskz_loadu_ps (__mmask8 __U, void const *__P)
  5663. {
  5664.   return (__m256) __builtin_ia32_loadups256_mask ((const __v8sf *) __P,
  5665.               (__v8sf)
  5666.               _mm256_setzero_ps (),
  5667.               (__mmask8) __U);
  5668. }
  5669.  
  5670. static __inline__ void __DEFAULT_FN_ATTRS128
  5671. _mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
  5672. {
  5673.   __builtin_ia32_storeapd128_mask ((__v2df *) __P,
  5674.            (__v2df) __A,
  5675.            (__mmask8) __U);
  5676. }
  5677.  
  5678. static __inline__ void __DEFAULT_FN_ATTRS256
  5679. _mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
  5680. {
  5681.   __builtin_ia32_storeapd256_mask ((__v4df *) __P,
  5682.            (__v4df) __A,
  5683.            (__mmask8) __U);
  5684. }
  5685.  
  5686. static __inline__ void __DEFAULT_FN_ATTRS128
  5687. _mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
  5688. {
  5689.   __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
  5690.            (__v4sf) __A,
  5691.            (__mmask8) __U);
  5692. }
  5693.  
  5694. static __inline__ void __DEFAULT_FN_ATTRS256
  5695. _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
  5696. {
  5697.   __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
  5698.            (__v8sf) __A,
  5699.            (__mmask8) __U);
  5700. }
  5701.  
  5702. static __inline void __DEFAULT_FN_ATTRS128
  5703. _mm_storeu_epi64 (void *__P, __m128i __A)
  5704. {
  5705.   struct __storeu_epi64 {
  5706.     __m128i_u __v;
  5707.   } __attribute__((__packed__, __may_alias__));
  5708.   ((struct __storeu_epi64*)__P)->__v = __A;
  5709. }
  5710.  
  5711. static __inline__ void __DEFAULT_FN_ATTRS128
  5712. _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
  5713. {
  5714.   __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
  5715.              (__v2di) __A,
  5716.              (__mmask8) __U);
  5717. }
  5718.  
  5719. static __inline void __DEFAULT_FN_ATTRS256
  5720. _mm256_storeu_epi64 (void *__P, __m256i __A)
  5721. {
  5722.   struct __storeu_epi64 {
  5723.     __m256i_u __v;
  5724.   } __attribute__((__packed__, __may_alias__));
  5725.   ((struct __storeu_epi64*)__P)->__v = __A;
  5726. }
  5727.  
  5728. static __inline__ void __DEFAULT_FN_ATTRS256
  5729. _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
  5730. {
  5731.   __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
  5732.              (__v4di) __A,
  5733.              (__mmask8) __U);
  5734. }
  5735.  
  5736. static __inline void __DEFAULT_FN_ATTRS128
  5737. _mm_storeu_epi32 (void *__P, __m128i __A)
  5738. {
  5739.   struct __storeu_epi32 {
  5740.     __m128i_u __v;
  5741.   } __attribute__((__packed__, __may_alias__));
  5742.   ((struct __storeu_epi32*)__P)->__v = __A;
  5743. }
  5744.  
  5745. static __inline__ void __DEFAULT_FN_ATTRS128
  5746. _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
  5747. {
  5748.   __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
  5749.              (__v4si) __A,
  5750.              (__mmask8) __U);
  5751. }
  5752.  
  5753. static __inline void __DEFAULT_FN_ATTRS256
  5754. _mm256_storeu_epi32 (void *__P, __m256i __A)
  5755. {
  5756.   struct __storeu_epi32 {
  5757.     __m256i_u __v;
  5758.   } __attribute__((__packed__, __may_alias__));
  5759.   ((struct __storeu_epi32*)__P)->__v = __A;
  5760. }
  5761.  
  5762. static __inline__ void __DEFAULT_FN_ATTRS256
  5763. _mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
  5764. {
  5765.   __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
  5766.              (__v8si) __A,
  5767.              (__mmask8) __U);
  5768. }
  5769.  
  5770. static __inline__ void __DEFAULT_FN_ATTRS128
  5771. _mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
  5772. {
  5773.   __builtin_ia32_storeupd128_mask ((__v2df *) __P,
  5774.            (__v2df) __A,
  5775.            (__mmask8) __U);
  5776. }
  5777.  
  5778. static __inline__ void __DEFAULT_FN_ATTRS256
  5779. _mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
  5780. {
  5781.   __builtin_ia32_storeupd256_mask ((__v4df *) __P,
  5782.            (__v4df) __A,
  5783.            (__mmask8) __U);
  5784. }
  5785.  
  5786. static __inline__ void __DEFAULT_FN_ATTRS128
  5787. _mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
  5788. {
  5789.   __builtin_ia32_storeups128_mask ((__v4sf *) __P,
  5790.            (__v4sf) __A,
  5791.            (__mmask8) __U);
  5792. }
  5793.  
  5794. static __inline__ void __DEFAULT_FN_ATTRS256
  5795. _mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
  5796. {
  5797.   __builtin_ia32_storeups256_mask ((__v8sf *) __P,
  5798.            (__v8sf) __A,
  5799.            (__mmask8) __U);
  5800. }
  5801.  
  5802.  
  5803. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5804. _mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
  5805. {
  5806.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  5807.                                               (__v2df)_mm_unpackhi_pd(__A, __B),
  5808.                                               (__v2df)__W);
  5809. }
  5810.  
  5811. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5812. _mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B)
  5813. {
  5814.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  5815.                                               (__v2df)_mm_unpackhi_pd(__A, __B),
  5816.                                               (__v2df)_mm_setzero_pd());
  5817. }
  5818.  
  5819. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5820. _mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
  5821. {
  5822.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  5823.                                            (__v4df)_mm256_unpackhi_pd(__A, __B),
  5824.                                            (__v4df)__W);
  5825. }
  5826.  
  5827. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5828. _mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B)
  5829. {
  5830.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  5831.                                            (__v4df)_mm256_unpackhi_pd(__A, __B),
  5832.                                            (__v4df)_mm256_setzero_pd());
  5833. }
  5834.  
  5835. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5836. _mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
  5837. {
  5838.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  5839.                                              (__v4sf)_mm_unpackhi_ps(__A, __B),
  5840.                                              (__v4sf)__W);
  5841. }
  5842.  
  5843. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5844. _mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B)
  5845. {
  5846.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  5847.                                              (__v4sf)_mm_unpackhi_ps(__A, __B),
  5848.                                              (__v4sf)_mm_setzero_ps());
  5849. }
  5850.  
  5851. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5852. _mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
  5853. {
  5854.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  5855.                                            (__v8sf)_mm256_unpackhi_ps(__A, __B),
  5856.                                            (__v8sf)__W);
  5857. }
  5858.  
  5859. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5860. _mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B)
  5861. {
  5862.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  5863.                                            (__v8sf)_mm256_unpackhi_ps(__A, __B),
  5864.                                            (__v8sf)_mm256_setzero_ps());
  5865. }
  5866.  
  5867. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5868. _mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
  5869. {
  5870.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  5871.                                               (__v2df)_mm_unpacklo_pd(__A, __B),
  5872.                                               (__v2df)__W);
  5873. }
  5874.  
  5875. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5876. _mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B)
  5877. {
  5878.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  5879.                                               (__v2df)_mm_unpacklo_pd(__A, __B),
  5880.                                               (__v2df)_mm_setzero_pd());
  5881. }
  5882.  
  5883. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5884. _mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B)
  5885. {
  5886.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  5887.                                            (__v4df)_mm256_unpacklo_pd(__A, __B),
  5888.                                            (__v4df)__W);
  5889. }
  5890.  
  5891. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5892. _mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B)
  5893. {
  5894.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  5895.                                            (__v4df)_mm256_unpacklo_pd(__A, __B),
  5896.                                            (__v4df)_mm256_setzero_pd());
  5897. }
  5898.  
  5899. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5900. _mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
  5901. {
  5902.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  5903.                                              (__v4sf)_mm_unpacklo_ps(__A, __B),
  5904.                                              (__v4sf)__W);
  5905. }
  5906.  
  5907. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5908. _mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B)
  5909. {
  5910.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  5911.                                              (__v4sf)_mm_unpacklo_ps(__A, __B),
  5912.                                              (__v4sf)_mm_setzero_ps());
  5913. }
  5914.  
  5915. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5916. _mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B)
  5917. {
  5918.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  5919.                                            (__v8sf)_mm256_unpacklo_ps(__A, __B),
  5920.                                            (__v8sf)__W);
  5921. }
  5922.  
  5923. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  5924. _mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B)
  5925. {
  5926.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  5927.                                            (__v8sf)_mm256_unpacklo_ps(__A, __B),
  5928.                                            (__v8sf)_mm256_setzero_ps());
  5929. }
  5930.  
  5931. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5932. _mm_rcp14_pd (__m128d __A)
  5933. {
  5934.   return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
  5935.                 (__v2df)
  5936.                 _mm_setzero_pd (),
  5937.                 (__mmask8) -1);
  5938. }
  5939.  
  5940. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5941. _mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
  5942. {
  5943.   return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
  5944.                 (__v2df) __W,
  5945.                 (__mmask8) __U);
  5946. }
  5947.  
  5948. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  5949. _mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
  5950. {
  5951.   return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
  5952.                 (__v2df)
  5953.                 _mm_setzero_pd (),
  5954.                 (__mmask8) __U);
  5955. }
  5956.  
  5957. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5958. _mm256_rcp14_pd (__m256d __A)
  5959. {
  5960.   return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
  5961.                 (__v4df)
  5962.                 _mm256_setzero_pd (),
  5963.                 (__mmask8) -1);
  5964. }
  5965.  
  5966. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5967. _mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
  5968. {
  5969.   return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
  5970.                 (__v4df) __W,
  5971.                 (__mmask8) __U);
  5972. }
  5973.  
  5974. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  5975. _mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
  5976. {
  5977.   return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
  5978.                 (__v4df)
  5979.                 _mm256_setzero_pd (),
  5980.                 (__mmask8) __U);
  5981. }
  5982.  
  5983. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5984. _mm_rcp14_ps (__m128 __A)
  5985. {
  5986.   return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
  5987.                (__v4sf)
  5988.                _mm_setzero_ps (),
  5989.                (__mmask8) -1);
  5990. }
  5991.  
  5992. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  5993. _mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
  5994. {
  5995.   return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
  5996.                (__v4sf) __W,
  5997.                (__mmask8) __U);
  5998. }
  5999.  
  6000. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6001. _mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
  6002. {
  6003.   return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
  6004.                (__v4sf)
  6005.                _mm_setzero_ps (),
  6006.                (__mmask8) __U);
  6007. }
  6008.  
  6009. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6010. _mm256_rcp14_ps (__m256 __A)
  6011. {
  6012.   return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
  6013.                (__v8sf)
  6014.                _mm256_setzero_ps (),
  6015.                (__mmask8) -1);
  6016. }
  6017.  
  6018. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6019. _mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
  6020. {
  6021.   return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
  6022.                (__v8sf) __W,
  6023.                (__mmask8) __U);
  6024. }
  6025.  
  6026. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6027. _mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
  6028. {
  6029.   return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
  6030.                (__v8sf)
  6031.                _mm256_setzero_ps (),
  6032.                (__mmask8) __U);
  6033. }
  6034.  
  6035. #define _mm_mask_permute_pd(W, U, X, C) \
  6036.   ((__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
  6037.                                         (__v2df)_mm_permute_pd((X), (C)), \
  6038.                                         (__v2df)(__m128d)(W)))
  6039.  
  6040. #define _mm_maskz_permute_pd(U, X, C) \
  6041.   ((__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
  6042.                                         (__v2df)_mm_permute_pd((X), (C)), \
  6043.                                         (__v2df)_mm_setzero_pd()))
  6044.  
  6045. #define _mm256_mask_permute_pd(W, U, X, C) \
  6046.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  6047.                                         (__v4df)_mm256_permute_pd((X), (C)), \
  6048.                                         (__v4df)(__m256d)(W)))
  6049.  
  6050. #define _mm256_maskz_permute_pd(U, X, C) \
  6051.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  6052.                                         (__v4df)_mm256_permute_pd((X), (C)), \
  6053.                                         (__v4df)_mm256_setzero_pd()))
  6054.  
  6055. #define _mm_mask_permute_ps(W, U, X, C) \
  6056.   ((__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
  6057.                                        (__v4sf)_mm_permute_ps((X), (C)), \
  6058.                                        (__v4sf)(__m128)(W)))
  6059.  
  6060. #define _mm_maskz_permute_ps(U, X, C) \
  6061.   ((__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
  6062.                                        (__v4sf)_mm_permute_ps((X), (C)), \
  6063.                                        (__v4sf)_mm_setzero_ps()))
  6064.  
  6065. #define _mm256_mask_permute_ps(W, U, X, C) \
  6066.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  6067.                                        (__v8sf)_mm256_permute_ps((X), (C)), \
  6068.                                        (__v8sf)(__m256)(W)))
  6069.  
  6070. #define _mm256_maskz_permute_ps(U, X, C) \
  6071.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  6072.                                        (__v8sf)_mm256_permute_ps((X), (C)), \
  6073.                                        (__v8sf)_mm256_setzero_ps()))
  6074.  
  6075. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  6076. _mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C)
  6077. {
  6078.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  6079.                                             (__v2df)_mm_permutevar_pd(__A, __C),
  6080.                                             (__v2df)__W);
  6081. }
  6082.  
  6083. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  6084. _mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C)
  6085. {
  6086.   return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U,
  6087.                                             (__v2df)_mm_permutevar_pd(__A, __C),
  6088.                                             (__v2df)_mm_setzero_pd());
  6089. }
  6090.  
  6091. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6092. _mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C)
  6093. {
  6094.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  6095.                                          (__v4df)_mm256_permutevar_pd(__A, __C),
  6096.                                          (__v4df)__W);
  6097. }
  6098.  
  6099. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6100. _mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C)
  6101. {
  6102.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  6103.                                          (__v4df)_mm256_permutevar_pd(__A, __C),
  6104.                                          (__v4df)_mm256_setzero_pd());
  6105. }
  6106.  
  6107. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6108. _mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C)
  6109. {
  6110.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  6111.                                             (__v4sf)_mm_permutevar_ps(__A, __C),
  6112.                                             (__v4sf)__W);
  6113. }
  6114.  
  6115. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6116. _mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C)
  6117. {
  6118.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  6119.                                             (__v4sf)_mm_permutevar_ps(__A, __C),
  6120.                                             (__v4sf)_mm_setzero_ps());
  6121. }
  6122.  
  6123. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6124. _mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C)
  6125. {
  6126.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  6127.                                           (__v8sf)_mm256_permutevar_ps(__A, __C),
  6128.                                           (__v8sf)__W);
  6129. }
  6130.  
  6131. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6132. _mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C)
  6133. {
  6134.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  6135.                                           (__v8sf)_mm256_permutevar_ps(__A, __C),
  6136.                                           (__v8sf)_mm256_setzero_ps());
  6137. }
  6138.  
  6139. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6140. _mm_test_epi32_mask (__m128i __A, __m128i __B)
  6141. {
  6142.   return _mm_cmpneq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
  6143. }
  6144.  
  6145. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6146. _mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
  6147. {
  6148.   return _mm_mask_cmpneq_epi32_mask (__U, _mm_and_si128 (__A, __B),
  6149.                                      _mm_setzero_si128());
  6150. }
  6151.  
  6152. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6153. _mm256_test_epi32_mask (__m256i __A, __m256i __B)
  6154. {
  6155.   return _mm256_cmpneq_epi32_mask (_mm256_and_si256 (__A, __B),
  6156.                                    _mm256_setzero_si256());
  6157. }
  6158.  
  6159. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6160. _mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
  6161. {
  6162.   return _mm256_mask_cmpneq_epi32_mask (__U, _mm256_and_si256 (__A, __B),
  6163.                                         _mm256_setzero_si256());
  6164. }
  6165.  
  6166. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6167. _mm_test_epi64_mask (__m128i __A, __m128i __B)
  6168. {
  6169.   return _mm_cmpneq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
  6170. }
  6171.  
  6172. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6173. _mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
  6174. {
  6175.   return _mm_mask_cmpneq_epi64_mask (__U, _mm_and_si128 (__A, __B),
  6176.                                      _mm_setzero_si128());
  6177. }
  6178.  
  6179. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6180. _mm256_test_epi64_mask (__m256i __A, __m256i __B)
  6181. {
  6182.   return _mm256_cmpneq_epi64_mask (_mm256_and_si256 (__A, __B),
  6183.                                    _mm256_setzero_si256());
  6184. }
  6185.  
  6186. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6187. _mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
  6188. {
  6189.   return _mm256_mask_cmpneq_epi64_mask (__U, _mm256_and_si256 (__A, __B),
  6190.                                         _mm256_setzero_si256());
  6191. }
  6192.  
  6193. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6194. _mm_testn_epi32_mask (__m128i __A, __m128i __B)
  6195. {
  6196.   return _mm_cmpeq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
  6197. }
  6198.  
  6199. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6200. _mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
  6201. {
  6202.   return _mm_mask_cmpeq_epi32_mask (__U, _mm_and_si128 (__A, __B),
  6203.                                     _mm_setzero_si128());
  6204. }
  6205.  
  6206. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6207. _mm256_testn_epi32_mask (__m256i __A, __m256i __B)
  6208. {
  6209.   return _mm256_cmpeq_epi32_mask (_mm256_and_si256 (__A, __B),
  6210.                                   _mm256_setzero_si256());
  6211. }
  6212.  
  6213. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6214. _mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
  6215. {
  6216.   return _mm256_mask_cmpeq_epi32_mask (__U, _mm256_and_si256 (__A, __B),
  6217.                                        _mm256_setzero_si256());
  6218. }
  6219.  
  6220. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6221. _mm_testn_epi64_mask (__m128i __A, __m128i __B)
  6222. {
  6223.   return _mm_cmpeq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128());
  6224. }
  6225.  
  6226. static __inline__ __mmask8 __DEFAULT_FN_ATTRS128
  6227. _mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
  6228. {
  6229.   return _mm_mask_cmpeq_epi64_mask (__U, _mm_and_si128 (__A, __B),
  6230.                                     _mm_setzero_si128());
  6231. }
  6232.  
  6233. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6234. _mm256_testn_epi64_mask (__m256i __A, __m256i __B)
  6235. {
  6236.   return _mm256_cmpeq_epi64_mask (_mm256_and_si256 (__A, __B),
  6237.                                   _mm256_setzero_si256());
  6238. }
  6239.  
  6240. static __inline__ __mmask8 __DEFAULT_FN_ATTRS256
  6241. _mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
  6242. {
  6243.   return _mm256_mask_cmpeq_epi64_mask (__U, _mm256_and_si256 (__A, __B),
  6244.                                        _mm256_setzero_si256());
  6245. }
  6246.  
  6247. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6248. _mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  6249. {
  6250.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6251.                                            (__v4si)_mm_unpackhi_epi32(__A, __B),
  6252.                                            (__v4si)__W);
  6253. }
  6254.  
  6255. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6256. _mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  6257. {
  6258.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6259.                                            (__v4si)_mm_unpackhi_epi32(__A, __B),
  6260.                                            (__v4si)_mm_setzero_si128());
  6261. }
  6262.  
  6263. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6264. _mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  6265. {
  6266.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6267.                                         (__v8si)_mm256_unpackhi_epi32(__A, __B),
  6268.                                         (__v8si)__W);
  6269. }
  6270.  
  6271. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6272. _mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  6273. {
  6274.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6275.                                         (__v8si)_mm256_unpackhi_epi32(__A, __B),
  6276.                                         (__v8si)_mm256_setzero_si256());
  6277. }
  6278.  
  6279. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6280. _mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  6281. {
  6282.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  6283.                                            (__v2di)_mm_unpackhi_epi64(__A, __B),
  6284.                                            (__v2di)__W);
  6285. }
  6286.  
  6287. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6288. _mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  6289. {
  6290.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  6291.                                            (__v2di)_mm_unpackhi_epi64(__A, __B),
  6292.                                            (__v2di)_mm_setzero_si128());
  6293. }
  6294.  
  6295. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6296. _mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  6297. {
  6298.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  6299.                                         (__v4di)_mm256_unpackhi_epi64(__A, __B),
  6300.                                         (__v4di)__W);
  6301. }
  6302.  
  6303. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6304. _mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  6305. {
  6306.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  6307.                                         (__v4di)_mm256_unpackhi_epi64(__A, __B),
  6308.                                         (__v4di)_mm256_setzero_si256());
  6309. }
  6310.  
  6311. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6312. _mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  6313. {
  6314.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6315.                                            (__v4si)_mm_unpacklo_epi32(__A, __B),
  6316.                                            (__v4si)__W);
  6317. }
  6318.  
  6319. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6320. _mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  6321. {
  6322.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6323.                                            (__v4si)_mm_unpacklo_epi32(__A, __B),
  6324.                                            (__v4si)_mm_setzero_si128());
  6325. }
  6326.  
  6327. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6328. _mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  6329. {
  6330.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6331.                                         (__v8si)_mm256_unpacklo_epi32(__A, __B),
  6332.                                         (__v8si)__W);
  6333. }
  6334.  
  6335. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6336. _mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B)
  6337. {
  6338.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6339.                                         (__v8si)_mm256_unpacklo_epi32(__A, __B),
  6340.                                         (__v8si)_mm256_setzero_si256());
  6341. }
  6342.  
  6343. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6344. _mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  6345. {
  6346.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  6347.                                            (__v2di)_mm_unpacklo_epi64(__A, __B),
  6348.                                            (__v2di)__W);
  6349. }
  6350.  
  6351. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6352. _mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  6353. {
  6354.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
  6355.                                            (__v2di)_mm_unpacklo_epi64(__A, __B),
  6356.                                            (__v2di)_mm_setzero_si128());
  6357. }
  6358.  
  6359. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6360. _mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
  6361. {
  6362.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  6363.                                         (__v4di)_mm256_unpacklo_epi64(__A, __B),
  6364.                                         (__v4di)__W);
  6365. }
  6366.  
  6367. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6368. _mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B)
  6369. {
  6370.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
  6371.                                         (__v4di)_mm256_unpacklo_epi64(__A, __B),
  6372.                                         (__v4di)_mm256_setzero_si256());
  6373. }
  6374.  
  6375. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6376. _mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  6377. {
  6378.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6379.                                              (__v4si)_mm_sra_epi32(__A, __B),
  6380.                                              (__v4si)__W);
  6381. }
  6382.  
  6383. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6384. _mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B)
  6385. {
  6386.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6387.                                              (__v4si)_mm_sra_epi32(__A, __B),
  6388.                                              (__v4si)_mm_setzero_si128());
  6389. }
  6390.  
  6391. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6392. _mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
  6393. {
  6394.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6395.                                              (__v8si)_mm256_sra_epi32(__A, __B),
  6396.                                              (__v8si)__W);
  6397. }
  6398.  
  6399. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6400. _mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B)
  6401. {
  6402.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6403.                                              (__v8si)_mm256_sra_epi32(__A, __B),
  6404.                                              (__v8si)_mm256_setzero_si256());
  6405. }
  6406.  
  6407. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6408. _mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __B)
  6409. {
  6410.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6411.                                              (__v4si)_mm_srai_epi32(__A, (int)__B),
  6412.                                              (__v4si)__W);
  6413. }
  6414.  
  6415. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6416. _mm_maskz_srai_epi32(__mmask8 __U, __m128i __A, unsigned int __B)
  6417. {
  6418.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
  6419.                                              (__v4si)_mm_srai_epi32(__A, (int)__B),
  6420.                                              (__v4si)_mm_setzero_si128());
  6421. }
  6422.  
  6423. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6424. _mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A, unsigned int __B)
  6425. {
  6426.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6427.                                              (__v8si)_mm256_srai_epi32(__A, (int)__B),
  6428.                                              (__v8si)__W);
  6429. }
  6430.  
  6431. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6432. _mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A, unsigned int __B)
  6433. {
  6434.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
  6435.                                              (__v8si)_mm256_srai_epi32(__A, (int)__B),
  6436.                                              (__v8si)_mm256_setzero_si256());
  6437. }
  6438.  
  6439. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6440. _mm_sra_epi64(__m128i __A, __m128i __B)
  6441. {
  6442.   return (__m128i)__builtin_ia32_psraq128((__v2di)__A, (__v2di)__B);
  6443. }
  6444.  
  6445. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6446. _mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
  6447. {
  6448.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
  6449.                                              (__v2di)_mm_sra_epi64(__A, __B), \
  6450.                                              (__v2di)__W);
  6451. }
  6452.  
  6453. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6454. _mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B)
  6455. {
  6456.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
  6457.                                              (__v2di)_mm_sra_epi64(__A, __B), \
  6458.                                              (__v2di)_mm_setzero_si128());
  6459. }
  6460.  
  6461. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6462. _mm256_sra_epi64(__m256i __A, __m128i __B)
  6463. {
  6464.   return (__m256i)__builtin_ia32_psraq256((__v4di) __A, (__v2di) __B);
  6465. }
  6466.  
  6467. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6468. _mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B)
  6469. {
  6470.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
  6471.                                            (__v4di)_mm256_sra_epi64(__A, __B), \
  6472.                                            (__v4di)__W);
  6473. }
  6474.  
  6475. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6476. _mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B)
  6477. {
  6478.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
  6479.                                            (__v4di)_mm256_sra_epi64(__A, __B), \
  6480.                                            (__v4di)_mm256_setzero_si256());
  6481. }
  6482.  
  6483. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6484. _mm_srai_epi64(__m128i __A, unsigned int __imm)
  6485. {
  6486.   return (__m128i)__builtin_ia32_psraqi128((__v2di)__A, (int)__imm);
  6487. }
  6488.  
  6489. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6490. _mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A, unsigned int __imm)
  6491. {
  6492.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
  6493.                                            (__v2di)_mm_srai_epi64(__A, __imm), \
  6494.                                            (__v2di)__W);
  6495. }
  6496.  
  6497. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6498. _mm_maskz_srai_epi64(__mmask8 __U, __m128i __A, unsigned int __imm)
  6499. {
  6500.   return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \
  6501.                                            (__v2di)_mm_srai_epi64(__A, __imm), \
  6502.                                            (__v2di)_mm_setzero_si128());
  6503. }
  6504.  
  6505. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6506. _mm256_srai_epi64(__m256i __A, unsigned int __imm)
  6507. {
  6508.   return (__m256i)__builtin_ia32_psraqi256((__v4di)__A, (int)__imm);
  6509. }
  6510.  
  6511. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6512. _mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A,
  6513.                        unsigned int __imm)
  6514. {
  6515.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
  6516.                                         (__v4di)_mm256_srai_epi64(__A, __imm), \
  6517.                                         (__v4di)__W);
  6518. }
  6519.  
  6520. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6521. _mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A, unsigned int __imm)
  6522. {
  6523.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \
  6524.                                         (__v4di)_mm256_srai_epi64(__A, __imm), \
  6525.                                         (__v4di)_mm256_setzero_si256());
  6526. }
  6527.  
  6528. #define _mm_ternarylogic_epi32(A, B, C, imm)                                   \
  6529.   ((__m128i)__builtin_ia32_pternlogd128_mask(                                  \
  6530.       (__v4si)(__m128i)(A), (__v4si)(__m128i)(B), (__v4si)(__m128i)(C),        \
  6531.       (unsigned char)(imm), (__mmask8)-1))
  6532.  
  6533. #define _mm_mask_ternarylogic_epi32(A, U, B, C, imm)                           \
  6534.   ((__m128i)__builtin_ia32_pternlogd128_mask(                                  \
  6535.       (__v4si)(__m128i)(A), (__v4si)(__m128i)(B), (__v4si)(__m128i)(C),        \
  6536.       (unsigned char)(imm), (__mmask8)(U)))
  6537.  
  6538. #define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm)                          \
  6539.   ((__m128i)__builtin_ia32_pternlogd128_maskz(                                 \
  6540.       (__v4si)(__m128i)(A), (__v4si)(__m128i)(B), (__v4si)(__m128i)(C),        \
  6541.       (unsigned char)(imm), (__mmask8)(U)))
  6542.  
  6543. #define _mm256_ternarylogic_epi32(A, B, C, imm)                                \
  6544.   ((__m256i)__builtin_ia32_pternlogd256_mask(                                  \
  6545.       (__v8si)(__m256i)(A), (__v8si)(__m256i)(B), (__v8si)(__m256i)(C),        \
  6546.       (unsigned char)(imm), (__mmask8)-1))
  6547.  
  6548. #define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm)                        \
  6549.   ((__m256i)__builtin_ia32_pternlogd256_mask(                                  \
  6550.       (__v8si)(__m256i)(A), (__v8si)(__m256i)(B), (__v8si)(__m256i)(C),        \
  6551.       (unsigned char)(imm), (__mmask8)(U)))
  6552.  
  6553. #define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm)                       \
  6554.   ((__m256i)__builtin_ia32_pternlogd256_maskz(                                 \
  6555.       (__v8si)(__m256i)(A), (__v8si)(__m256i)(B), (__v8si)(__m256i)(C),        \
  6556.       (unsigned char)(imm), (__mmask8)(U)))
  6557.  
  6558. #define _mm_ternarylogic_epi64(A, B, C, imm)                                   \
  6559.   ((__m128i)__builtin_ia32_pternlogq128_mask(                                  \
  6560.       (__v2di)(__m128i)(A), (__v2di)(__m128i)(B), (__v2di)(__m128i)(C),        \
  6561.       (unsigned char)(imm), (__mmask8)-1))
  6562.  
  6563. #define _mm_mask_ternarylogic_epi64(A, U, B, C, imm)                           \
  6564.   ((__m128i)__builtin_ia32_pternlogq128_mask(                                  \
  6565.       (__v2di)(__m128i)(A), (__v2di)(__m128i)(B), (__v2di)(__m128i)(C),        \
  6566.       (unsigned char)(imm), (__mmask8)(U)))
  6567.  
  6568. #define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm)                          \
  6569.   ((__m128i)__builtin_ia32_pternlogq128_maskz(                                 \
  6570.       (__v2di)(__m128i)(A), (__v2di)(__m128i)(B), (__v2di)(__m128i)(C),        \
  6571.       (unsigned char)(imm), (__mmask8)(U)))
  6572.  
  6573. #define _mm256_ternarylogic_epi64(A, B, C, imm)                                \
  6574.   ((__m256i)__builtin_ia32_pternlogq256_mask(                                  \
  6575.       (__v4di)(__m256i)(A), (__v4di)(__m256i)(B), (__v4di)(__m256i)(C),        \
  6576.       (unsigned char)(imm), (__mmask8)-1))
  6577.  
  6578. #define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm)                        \
  6579.   ((__m256i)__builtin_ia32_pternlogq256_mask(                                  \
  6580.       (__v4di)(__m256i)(A), (__v4di)(__m256i)(B), (__v4di)(__m256i)(C),        \
  6581.       (unsigned char)(imm), (__mmask8)(U)))
  6582.  
  6583. #define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm)                       \
  6584.   ((__m256i)__builtin_ia32_pternlogq256_maskz(                                 \
  6585.       (__v4di)(__m256i)(A), (__v4di)(__m256i)(B), (__v4di)(__m256i)(C),        \
  6586.       (unsigned char)(imm), (__mmask8)(U)))
  6587.  
  6588. #define _mm256_shuffle_f32x4(A, B, imm) \
  6589.   ((__m256)__builtin_ia32_shuf_f32x4_256((__v8sf)(__m256)(A), \
  6590.                                          (__v8sf)(__m256)(B), (int)(imm)))
  6591.  
  6592. #define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) \
  6593.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  6594.                                        (__v8sf)_mm256_shuffle_f32x4((A), (B), (imm)), \
  6595.                                        (__v8sf)(__m256)(W)))
  6596.  
  6597. #define _mm256_maskz_shuffle_f32x4(U, A, B, imm) \
  6598.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  6599.                                        (__v8sf)_mm256_shuffle_f32x4((A), (B), (imm)), \
  6600.                                        (__v8sf)_mm256_setzero_ps()))
  6601.  
  6602. #define _mm256_shuffle_f64x2(A, B, imm) \
  6603.   ((__m256d)__builtin_ia32_shuf_f64x2_256((__v4df)(__m256d)(A), \
  6604.                                           (__v4df)(__m256d)(B), (int)(imm)))
  6605.  
  6606. #define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) \
  6607.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  6608.                                        (__v4df)_mm256_shuffle_f64x2((A), (B), (imm)), \
  6609.                                        (__v4df)(__m256d)(W)))
  6610.  
  6611. #define _mm256_maskz_shuffle_f64x2(U, A, B, imm) \
  6612.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  6613.                                        (__v4df)_mm256_shuffle_f64x2((A), (B), (imm)), \
  6614.                                        (__v4df)_mm256_setzero_pd()))
  6615.  
  6616. #define _mm256_shuffle_i32x4(A, B, imm) \
  6617.   ((__m256i)__builtin_ia32_shuf_i32x4_256((__v8si)(__m256i)(A), \
  6618.                                           (__v8si)(__m256i)(B), (int)(imm)))
  6619.  
  6620. #define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) \
  6621.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  6622.                                        (__v8si)_mm256_shuffle_i32x4((A), (B), (imm)), \
  6623.                                        (__v8si)(__m256i)(W)))
  6624.  
  6625. #define _mm256_maskz_shuffle_i32x4(U, A, B, imm) \
  6626.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  6627.                                        (__v8si)_mm256_shuffle_i32x4((A), (B), (imm)), \
  6628.                                        (__v8si)_mm256_setzero_si256()))
  6629.  
  6630. #define _mm256_shuffle_i64x2(A, B, imm) \
  6631.   ((__m256i)__builtin_ia32_shuf_i64x2_256((__v4di)(__m256i)(A), \
  6632.                                           (__v4di)(__m256i)(B), (int)(imm)))
  6633.  
  6634. #define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) \
  6635.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
  6636.                                        (__v4di)_mm256_shuffle_i64x2((A), (B), (imm)), \
  6637.                                        (__v4di)(__m256i)(W)))
  6638.  
  6639.  
  6640. #define _mm256_maskz_shuffle_i64x2(U, A, B, imm) \
  6641.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
  6642.                                        (__v4di)_mm256_shuffle_i64x2((A), (B), (imm)), \
  6643.                                        (__v4di)_mm256_setzero_si256()))
  6644.  
  6645. #define _mm_mask_shuffle_pd(W, U, A, B, M) \
  6646.   ((__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
  6647.                                         (__v2df)_mm_shuffle_pd((A), (B), (M)), \
  6648.                                         (__v2df)(__m128d)(W)))
  6649.  
  6650. #define _mm_maskz_shuffle_pd(U, A, B, M) \
  6651.   ((__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \
  6652.                                         (__v2df)_mm_shuffle_pd((A), (B), (M)), \
  6653.                                         (__v2df)_mm_setzero_pd()))
  6654.  
  6655. #define _mm256_mask_shuffle_pd(W, U, A, B, M) \
  6656.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  6657.                                         (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
  6658.                                         (__v4df)(__m256d)(W)))
  6659.  
  6660. #define _mm256_maskz_shuffle_pd(U, A, B, M) \
  6661.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  6662.                                         (__v4df)_mm256_shuffle_pd((A), (B), (M)), \
  6663.                                         (__v4df)_mm256_setzero_pd()))
  6664.  
  6665. #define _mm_mask_shuffle_ps(W, U, A, B, M) \
  6666.   ((__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
  6667.                                        (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
  6668.                                        (__v4sf)(__m128)(W)))
  6669.  
  6670. #define _mm_maskz_shuffle_ps(U, A, B, M) \
  6671.   ((__m128)__builtin_ia32_selectps_128((__mmask8)(U), \
  6672.                                        (__v4sf)_mm_shuffle_ps((A), (B), (M)), \
  6673.                                        (__v4sf)_mm_setzero_ps()))
  6674.  
  6675. #define _mm256_mask_shuffle_ps(W, U, A, B, M) \
  6676.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  6677.                                        (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
  6678.                                        (__v8sf)(__m256)(W)))
  6679.  
  6680. #define _mm256_maskz_shuffle_ps(U, A, B, M) \
  6681.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  6682.                                        (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \
  6683.                                        (__v8sf)_mm256_setzero_ps()))
  6684.  
  6685. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  6686. _mm_rsqrt14_pd (__m128d __A)
  6687. {
  6688.   return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
  6689.                  (__v2df)
  6690.                  _mm_setzero_pd (),
  6691.                  (__mmask8) -1);
  6692. }
  6693.  
  6694. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  6695. _mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
  6696. {
  6697.   return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
  6698.                  (__v2df) __W,
  6699.                  (__mmask8) __U);
  6700. }
  6701.  
  6702. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  6703. _mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
  6704. {
  6705.   return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
  6706.                  (__v2df)
  6707.                  _mm_setzero_pd (),
  6708.                  (__mmask8) __U);
  6709. }
  6710.  
  6711. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6712. _mm256_rsqrt14_pd (__m256d __A)
  6713. {
  6714.   return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
  6715.                  (__v4df)
  6716.                  _mm256_setzero_pd (),
  6717.                  (__mmask8) -1);
  6718. }
  6719.  
  6720. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6721. _mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
  6722. {
  6723.   return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
  6724.                  (__v4df) __W,
  6725.                  (__mmask8) __U);
  6726. }
  6727.  
  6728. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6729. _mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
  6730. {
  6731.   return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
  6732.                  (__v4df)
  6733.                  _mm256_setzero_pd (),
  6734.                  (__mmask8) __U);
  6735. }
  6736.  
  6737. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6738. _mm_rsqrt14_ps (__m128 __A)
  6739. {
  6740.   return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
  6741.                 (__v4sf)
  6742.                 _mm_setzero_ps (),
  6743.                 (__mmask8) -1);
  6744. }
  6745.  
  6746. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6747. _mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
  6748. {
  6749.   return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
  6750.                 (__v4sf) __W,
  6751.                 (__mmask8) __U);
  6752. }
  6753.  
  6754. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6755. _mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
  6756. {
  6757.   return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
  6758.                 (__v4sf)
  6759.                 _mm_setzero_ps (),
  6760.                 (__mmask8) __U);
  6761. }
  6762.  
  6763. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6764. _mm256_rsqrt14_ps (__m256 __A)
  6765. {
  6766.   return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
  6767.                 (__v8sf)
  6768.                 _mm256_setzero_ps (),
  6769.                 (__mmask8) -1);
  6770. }
  6771.  
  6772. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6773. _mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
  6774. {
  6775.   return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
  6776.                 (__v8sf) __W,
  6777.                 (__mmask8) __U);
  6778. }
  6779.  
  6780. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6781. _mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
  6782. {
  6783.   return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
  6784.                 (__v8sf)
  6785.                 _mm256_setzero_ps (),
  6786.                 (__mmask8) __U);
  6787. }
  6788.  
  6789. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6790. _mm256_broadcast_f32x4(__m128 __A)
  6791. {
  6792.   return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A,
  6793.                                          0, 1, 2, 3, 0, 1, 2, 3);
  6794. }
  6795.  
  6796. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6797. _mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A)
  6798. {
  6799.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__M,
  6800.                                             (__v8sf)_mm256_broadcast_f32x4(__A),
  6801.                                             (__v8sf)__O);
  6802. }
  6803.  
  6804. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6805. _mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
  6806. {
  6807.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__M,
  6808.                                             (__v8sf)_mm256_broadcast_f32x4(__A),
  6809.                                             (__v8sf)_mm256_setzero_ps());
  6810. }
  6811.  
  6812. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6813. _mm256_broadcast_i32x4(__m128i __A)
  6814. {
  6815.   return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A,
  6816.                                           0, 1, 2, 3, 0, 1, 2, 3);
  6817. }
  6818.  
  6819. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6820. _mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A)
  6821. {
  6822.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  6823.                                             (__v8si)_mm256_broadcast_i32x4(__A),
  6824.                                             (__v8si)__O);
  6825. }
  6826.  
  6827. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6828. _mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A)
  6829. {
  6830.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  6831.                                             (__v8si)_mm256_broadcast_i32x4(__A),
  6832.                                             (__v8si)_mm256_setzero_si256());
  6833. }
  6834.  
  6835. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6836. _mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
  6837. {
  6838.   return (__m256d)__builtin_ia32_selectpd_256(__M,
  6839.                                               (__v4df) _mm256_broadcastsd_pd(__A),
  6840.                                               (__v4df) __O);
  6841. }
  6842.  
  6843. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  6844. _mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
  6845. {
  6846.   return (__m256d)__builtin_ia32_selectpd_256(__M,
  6847.                                               (__v4df) _mm256_broadcastsd_pd(__A),
  6848.                                               (__v4df) _mm256_setzero_pd());
  6849. }
  6850.  
  6851. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6852. _mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
  6853. {
  6854.   return (__m128)__builtin_ia32_selectps_128(__M,
  6855.                                              (__v4sf) _mm_broadcastss_ps(__A),
  6856.                                              (__v4sf) __O);
  6857. }
  6858.  
  6859. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  6860. _mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
  6861. {
  6862.   return (__m128)__builtin_ia32_selectps_128(__M,
  6863.                                              (__v4sf) _mm_broadcastss_ps(__A),
  6864.                                              (__v4sf) _mm_setzero_ps());
  6865. }
  6866.  
  6867. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6868. _mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
  6869. {
  6870.   return (__m256)__builtin_ia32_selectps_256(__M,
  6871.                                              (__v8sf) _mm256_broadcastss_ps(__A),
  6872.                                              (__v8sf) __O);
  6873. }
  6874.  
  6875. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  6876. _mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
  6877. {
  6878.   return (__m256)__builtin_ia32_selectps_256(__M,
  6879.                                              (__v8sf) _mm256_broadcastss_ps(__A),
  6880.                                              (__v8sf) _mm256_setzero_ps());
  6881. }
  6882.  
  6883. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6884. _mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
  6885. {
  6886.   return (__m128i)__builtin_ia32_selectd_128(__M,
  6887.                                              (__v4si) _mm_broadcastd_epi32(__A),
  6888.                                              (__v4si) __O);
  6889. }
  6890.  
  6891. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6892. _mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
  6893. {
  6894.   return (__m128i)__builtin_ia32_selectd_128(__M,
  6895.                                              (__v4si) _mm_broadcastd_epi32(__A),
  6896.                                              (__v4si) _mm_setzero_si128());
  6897. }
  6898.  
  6899. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6900. _mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
  6901. {
  6902.   return (__m256i)__builtin_ia32_selectd_256(__M,
  6903.                                              (__v8si) _mm256_broadcastd_epi32(__A),
  6904.                                              (__v8si) __O);
  6905. }
  6906.  
  6907. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6908. _mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
  6909. {
  6910.   return (__m256i)__builtin_ia32_selectd_256(__M,
  6911.                                              (__v8si) _mm256_broadcastd_epi32(__A),
  6912.                                              (__v8si) _mm256_setzero_si256());
  6913. }
  6914.  
  6915. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6916. _mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
  6917. {
  6918.   return (__m128i)__builtin_ia32_selectq_128(__M,
  6919.                                              (__v2di) _mm_broadcastq_epi64(__A),
  6920.                                              (__v2di) __O);
  6921. }
  6922.  
  6923. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6924. _mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
  6925. {
  6926.   return (__m128i)__builtin_ia32_selectq_128(__M,
  6927.                                              (__v2di) _mm_broadcastq_epi64(__A),
  6928.                                              (__v2di) _mm_setzero_si128());
  6929. }
  6930.  
  6931. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6932. _mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
  6933. {
  6934.   return (__m256i)__builtin_ia32_selectq_256(__M,
  6935.                                              (__v4di) _mm256_broadcastq_epi64(__A),
  6936.                                              (__v4di) __O);
  6937. }
  6938.  
  6939. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  6940. _mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
  6941. {
  6942.   return (__m256i)__builtin_ia32_selectq_256(__M,
  6943.                                              (__v4di) _mm256_broadcastq_epi64(__A),
  6944.                                              (__v4di) _mm256_setzero_si256());
  6945. }
  6946.  
  6947. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6948. _mm_cvtsepi32_epi8 (__m128i __A)
  6949. {
  6950.   return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
  6951.                (__v16qi)_mm_undefined_si128(),
  6952.                (__mmask8) -1);
  6953. }
  6954.  
  6955. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6956. _mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
  6957. {
  6958.   return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
  6959.                (__v16qi) __O, __M);
  6960. }
  6961.  
  6962. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  6963. _mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
  6964. {
  6965.   return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
  6966.                (__v16qi) _mm_setzero_si128 (),
  6967.                __M);
  6968. }
  6969.  
  6970. static __inline__ void __DEFAULT_FN_ATTRS128
  6971. _mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
  6972. {
  6973.   __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
  6974. }
  6975.  
  6976. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  6977. _mm256_cvtsepi32_epi8 (__m256i __A)
  6978. {
  6979.   return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
  6980.                (__v16qi)_mm_undefined_si128(),
  6981.                (__mmask8) -1);
  6982. }
  6983.  
  6984. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  6985. _mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
  6986. {
  6987.   return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
  6988.                (__v16qi) __O, __M);
  6989. }
  6990.  
  6991. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  6992. _mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
  6993. {
  6994.   return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
  6995.                (__v16qi) _mm_setzero_si128 (),
  6996.                __M);
  6997. }
  6998.  
  6999. static __inline__ void __DEFAULT_FN_ATTRS256
  7000. _mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
  7001. {
  7002.   __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
  7003. }
  7004.  
  7005. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7006. _mm_cvtsepi32_epi16 (__m128i __A)
  7007. {
  7008.   return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
  7009.                (__v8hi)_mm_setzero_si128 (),
  7010.                (__mmask8) -1);
  7011. }
  7012.  
  7013. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7014. _mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
  7015. {
  7016.   return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
  7017.                (__v8hi)__O,
  7018.                __M);
  7019. }
  7020.  
  7021. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7022. _mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
  7023. {
  7024.   return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
  7025.                (__v8hi) _mm_setzero_si128 (),
  7026.                __M);
  7027. }
  7028.  
  7029. static __inline__ void __DEFAULT_FN_ATTRS128
  7030. _mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
  7031. {
  7032.   __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
  7033. }
  7034.  
  7035. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7036. _mm256_cvtsepi32_epi16 (__m256i __A)
  7037. {
  7038.   return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
  7039.                (__v8hi)_mm_undefined_si128(),
  7040.                (__mmask8) -1);
  7041. }
  7042.  
  7043. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7044. _mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
  7045. {
  7046.   return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
  7047.                (__v8hi) __O, __M);
  7048. }
  7049.  
  7050. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7051. _mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
  7052. {
  7053.   return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
  7054.                (__v8hi) _mm_setzero_si128 (),
  7055.                __M);
  7056. }
  7057.  
  7058. static __inline__ void __DEFAULT_FN_ATTRS256
  7059. _mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
  7060. {
  7061.   __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
  7062. }
  7063.  
  7064. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7065. _mm_cvtsepi64_epi8 (__m128i __A)
  7066. {
  7067.   return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
  7068.                (__v16qi)_mm_undefined_si128(),
  7069.                (__mmask8) -1);
  7070. }
  7071.  
  7072. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7073. _mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
  7074. {
  7075.   return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
  7076.                (__v16qi) __O, __M);
  7077. }
  7078.  
  7079. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7080. _mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
  7081. {
  7082.   return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
  7083.                (__v16qi) _mm_setzero_si128 (),
  7084.                __M);
  7085. }
  7086.  
  7087. static __inline__ void __DEFAULT_FN_ATTRS128
  7088. _mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
  7089. {
  7090.   __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
  7091. }
  7092.  
  7093. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7094. _mm256_cvtsepi64_epi8 (__m256i __A)
  7095. {
  7096.   return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
  7097.                (__v16qi)_mm_undefined_si128(),
  7098.                (__mmask8) -1);
  7099. }
  7100.  
  7101. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7102. _mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
  7103. {
  7104.   return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
  7105.                (__v16qi) __O, __M);
  7106. }
  7107.  
  7108. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7109. _mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
  7110. {
  7111.   return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
  7112.                (__v16qi) _mm_setzero_si128 (),
  7113.                __M);
  7114. }
  7115.  
  7116. static __inline__ void __DEFAULT_FN_ATTRS256
  7117. _mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
  7118. {
  7119.   __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
  7120. }
  7121.  
  7122. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7123. _mm_cvtsepi64_epi32 (__m128i __A)
  7124. {
  7125.   return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
  7126.                (__v4si)_mm_undefined_si128(),
  7127.                (__mmask8) -1);
  7128. }
  7129.  
  7130. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7131. _mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
  7132. {
  7133.   return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
  7134.                (__v4si) __O, __M);
  7135. }
  7136.  
  7137. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7138. _mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
  7139. {
  7140.   return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
  7141.                (__v4si) _mm_setzero_si128 (),
  7142.                __M);
  7143. }
  7144.  
  7145. static __inline__ void __DEFAULT_FN_ATTRS128
  7146. _mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
  7147. {
  7148.   __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
  7149. }
  7150.  
  7151. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7152. _mm256_cvtsepi64_epi32 (__m256i __A)
  7153. {
  7154.   return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
  7155.                (__v4si)_mm_undefined_si128(),
  7156.                (__mmask8) -1);
  7157. }
  7158.  
  7159. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7160. _mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
  7161. {
  7162.   return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
  7163.                (__v4si)__O,
  7164.                __M);
  7165. }
  7166.  
  7167. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7168. _mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
  7169. {
  7170.   return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
  7171.                (__v4si) _mm_setzero_si128 (),
  7172.                __M);
  7173. }
  7174.  
  7175. static __inline__ void __DEFAULT_FN_ATTRS256
  7176. _mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
  7177. {
  7178.   __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
  7179. }
  7180.  
  7181. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7182. _mm_cvtsepi64_epi16 (__m128i __A)
  7183. {
  7184.   return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
  7185.                (__v8hi)_mm_undefined_si128(),
  7186.                (__mmask8) -1);
  7187. }
  7188.  
  7189. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7190. _mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
  7191. {
  7192.   return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
  7193.                (__v8hi) __O, __M);
  7194. }
  7195.  
  7196. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7197. _mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
  7198. {
  7199.   return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
  7200.                (__v8hi) _mm_setzero_si128 (),
  7201.                __M);
  7202. }
  7203.  
  7204. static __inline__ void __DEFAULT_FN_ATTRS128
  7205. _mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
  7206. {
  7207.   __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
  7208. }
  7209.  
  7210. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7211. _mm256_cvtsepi64_epi16 (__m256i __A)
  7212. {
  7213.   return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
  7214.                (__v8hi)_mm_undefined_si128(),
  7215.                (__mmask8) -1);
  7216. }
  7217.  
  7218. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7219. _mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
  7220. {
  7221.   return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
  7222.                (__v8hi) __O, __M);
  7223. }
  7224.  
  7225. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7226. _mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
  7227. {
  7228.   return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
  7229.                (__v8hi) _mm_setzero_si128 (),
  7230.                __M);
  7231. }
  7232.  
  7233. static __inline__ void __DEFAULT_FN_ATTRS256
  7234. _mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
  7235. {
  7236.   __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
  7237. }
  7238.  
  7239. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7240. _mm_cvtusepi32_epi8 (__m128i __A)
  7241. {
  7242.   return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
  7243.                 (__v16qi)_mm_undefined_si128(),
  7244.                 (__mmask8) -1);
  7245. }
  7246.  
  7247. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7248. _mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
  7249. {
  7250.   return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
  7251.                 (__v16qi) __O,
  7252.                 __M);
  7253. }
  7254.  
  7255. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7256. _mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
  7257. {
  7258.   return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
  7259.                 (__v16qi) _mm_setzero_si128 (),
  7260.                 __M);
  7261. }
  7262.  
  7263. static __inline__ void __DEFAULT_FN_ATTRS128
  7264. _mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
  7265. {
  7266.   __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
  7267. }
  7268.  
  7269. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7270. _mm256_cvtusepi32_epi8 (__m256i __A)
  7271. {
  7272.   return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
  7273.                 (__v16qi)_mm_undefined_si128(),
  7274.                 (__mmask8) -1);
  7275. }
  7276.  
  7277. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7278. _mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
  7279. {
  7280.   return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
  7281.                 (__v16qi) __O,
  7282.                 __M);
  7283. }
  7284.  
  7285. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7286. _mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
  7287. {
  7288.   return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
  7289.                 (__v16qi) _mm_setzero_si128 (),
  7290.                 __M);
  7291. }
  7292.  
  7293. static __inline__ void __DEFAULT_FN_ATTRS256
  7294. _mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
  7295. {
  7296.   __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
  7297. }
  7298.  
  7299. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7300. _mm_cvtusepi32_epi16 (__m128i __A)
  7301. {
  7302.   return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
  7303.                 (__v8hi)_mm_undefined_si128(),
  7304.                 (__mmask8) -1);
  7305. }
  7306.  
  7307. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7308. _mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
  7309. {
  7310.   return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
  7311.                 (__v8hi) __O, __M);
  7312. }
  7313.  
  7314. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7315. _mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
  7316. {
  7317.   return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
  7318.                 (__v8hi) _mm_setzero_si128 (),
  7319.                 __M);
  7320. }
  7321.  
  7322. static __inline__ void __DEFAULT_FN_ATTRS128
  7323. _mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
  7324. {
  7325.   __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
  7326. }
  7327.  
  7328. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7329. _mm256_cvtusepi32_epi16 (__m256i __A)
  7330. {
  7331.   return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
  7332.                 (__v8hi) _mm_undefined_si128(),
  7333.                 (__mmask8) -1);
  7334. }
  7335.  
  7336. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7337. _mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
  7338. {
  7339.   return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
  7340.                 (__v8hi) __O, __M);
  7341. }
  7342.  
  7343. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7344. _mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
  7345. {
  7346.   return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
  7347.                 (__v8hi) _mm_setzero_si128 (),
  7348.                 __M);
  7349. }
  7350.  
  7351. static __inline__ void __DEFAULT_FN_ATTRS256
  7352. _mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
  7353. {
  7354.   __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
  7355. }
  7356.  
  7357. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7358. _mm_cvtusepi64_epi8 (__m128i __A)
  7359. {
  7360.   return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
  7361.                 (__v16qi)_mm_undefined_si128(),
  7362.                 (__mmask8) -1);
  7363. }
  7364.  
  7365. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7366. _mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
  7367. {
  7368.   return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
  7369.                 (__v16qi) __O,
  7370.                 __M);
  7371. }
  7372.  
  7373. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7374. _mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
  7375. {
  7376.   return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
  7377.                 (__v16qi) _mm_setzero_si128 (),
  7378.                 __M);
  7379. }
  7380.  
  7381. static __inline__ void __DEFAULT_FN_ATTRS128
  7382. _mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
  7383. {
  7384.   __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
  7385. }
  7386.  
  7387. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7388. _mm256_cvtusepi64_epi8 (__m256i __A)
  7389. {
  7390.   return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
  7391.                 (__v16qi)_mm_undefined_si128(),
  7392.                 (__mmask8) -1);
  7393. }
  7394.  
  7395. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7396. _mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
  7397. {
  7398.   return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
  7399.                 (__v16qi) __O,
  7400.                 __M);
  7401. }
  7402.  
  7403. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7404. _mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
  7405. {
  7406.   return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
  7407.                 (__v16qi) _mm_setzero_si128 (),
  7408.                 __M);
  7409. }
  7410.  
  7411. static __inline__ void __DEFAULT_FN_ATTRS256
  7412. _mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
  7413. {
  7414.   __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
  7415. }
  7416.  
  7417. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7418. _mm_cvtusepi64_epi32 (__m128i __A)
  7419. {
  7420.   return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
  7421.                 (__v4si)_mm_undefined_si128(),
  7422.                 (__mmask8) -1);
  7423. }
  7424.  
  7425. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7426. _mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
  7427. {
  7428.   return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
  7429.                 (__v4si) __O, __M);
  7430. }
  7431.  
  7432. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7433. _mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
  7434. {
  7435.   return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
  7436.                 (__v4si) _mm_setzero_si128 (),
  7437.                 __M);
  7438. }
  7439.  
  7440. static __inline__ void __DEFAULT_FN_ATTRS128
  7441. _mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
  7442. {
  7443.   __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
  7444. }
  7445.  
  7446. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7447. _mm256_cvtusepi64_epi32 (__m256i __A)
  7448. {
  7449.   return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
  7450.                 (__v4si)_mm_undefined_si128(),
  7451.                 (__mmask8) -1);
  7452. }
  7453.  
  7454. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7455. _mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
  7456. {
  7457.   return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
  7458.                 (__v4si) __O, __M);
  7459. }
  7460.  
  7461. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7462. _mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
  7463. {
  7464.   return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
  7465.                 (__v4si) _mm_setzero_si128 (),
  7466.                 __M);
  7467. }
  7468.  
  7469. static __inline__ void __DEFAULT_FN_ATTRS256
  7470. _mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
  7471. {
  7472.   __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
  7473. }
  7474.  
  7475. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7476. _mm_cvtusepi64_epi16 (__m128i __A)
  7477. {
  7478.   return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
  7479.                 (__v8hi)_mm_undefined_si128(),
  7480.                 (__mmask8) -1);
  7481. }
  7482.  
  7483. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7484. _mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
  7485. {
  7486.   return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
  7487.                 (__v8hi) __O, __M);
  7488. }
  7489.  
  7490. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7491. _mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
  7492. {
  7493.   return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
  7494.                 (__v8hi) _mm_setzero_si128 (),
  7495.                 __M);
  7496. }
  7497.  
  7498. static __inline__ void __DEFAULT_FN_ATTRS128
  7499. _mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
  7500. {
  7501.   __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
  7502. }
  7503.  
  7504. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7505. _mm256_cvtusepi64_epi16 (__m256i __A)
  7506. {
  7507.   return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
  7508.                 (__v8hi)_mm_undefined_si128(),
  7509.                 (__mmask8) -1);
  7510. }
  7511.  
  7512. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7513. _mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
  7514. {
  7515.   return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
  7516.                 (__v8hi) __O, __M);
  7517. }
  7518.  
  7519. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7520. _mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
  7521. {
  7522.   return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
  7523.                 (__v8hi) _mm_setzero_si128 (),
  7524.                 __M);
  7525. }
  7526.  
  7527. static __inline__ void __DEFAULT_FN_ATTRS256
  7528. _mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
  7529. {
  7530.   __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
  7531. }
  7532.  
  7533. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7534. _mm_cvtepi32_epi8 (__m128i __A)
  7535. {
  7536.   return (__m128i)__builtin_shufflevector(
  7537.       __builtin_convertvector((__v4si)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1,
  7538.       2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7);
  7539. }
  7540.  
  7541. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7542. _mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
  7543. {
  7544.   return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
  7545.               (__v16qi) __O, __M);
  7546. }
  7547.  
  7548. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7549. _mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
  7550. {
  7551.   return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
  7552.               (__v16qi)
  7553.               _mm_setzero_si128 (),
  7554.               __M);
  7555. }
  7556.  
  7557. static __inline__ void __DEFAULT_FN_ATTRS128
  7558. _mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
  7559. {
  7560.   __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
  7561. }
  7562.  
  7563. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7564. _mm256_cvtepi32_epi8 (__m256i __A)
  7565. {
  7566.   return (__m128i)__builtin_shufflevector(
  7567.       __builtin_convertvector((__v8si)__A, __v8qi),
  7568.       (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  7569.       12, 13, 14, 15);
  7570. }
  7571.  
  7572. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7573. _mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
  7574. {
  7575.   return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
  7576.               (__v16qi) __O, __M);
  7577. }
  7578.  
  7579. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7580. _mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
  7581. {
  7582.   return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
  7583.               (__v16qi) _mm_setzero_si128 (),
  7584.               __M);
  7585. }
  7586.  
  7587. static __inline__ void __DEFAULT_FN_ATTRS256
  7588. _mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
  7589. {
  7590.   __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
  7591. }
  7592.  
  7593. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7594. _mm_cvtepi32_epi16 (__m128i __A)
  7595. {
  7596.   return (__m128i)__builtin_shufflevector(
  7597.       __builtin_convertvector((__v4si)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1,
  7598.       2, 3, 4, 5, 6, 7);
  7599. }
  7600.  
  7601. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7602. _mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
  7603. {
  7604.   return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
  7605.               (__v8hi) __O, __M);
  7606. }
  7607.  
  7608. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7609. _mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
  7610. {
  7611.   return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
  7612.               (__v8hi) _mm_setzero_si128 (),
  7613.               __M);
  7614. }
  7615.  
  7616. static __inline__ void __DEFAULT_FN_ATTRS128
  7617. _mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
  7618. {
  7619.   __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
  7620. }
  7621.  
  7622. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7623. _mm256_cvtepi32_epi16 (__m256i __A)
  7624. {
  7625.   return (__m128i)__builtin_convertvector((__v8si)__A, __v8hi);
  7626. }
  7627.  
  7628. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7629. _mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
  7630. {
  7631.   return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
  7632.               (__v8hi) __O, __M);
  7633. }
  7634.  
  7635. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7636. _mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
  7637. {
  7638.   return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
  7639.               (__v8hi) _mm_setzero_si128 (),
  7640.               __M);
  7641. }
  7642.  
  7643. static __inline__ void __DEFAULT_FN_ATTRS256
  7644. _mm256_mask_cvtepi32_storeu_epi16 (void *  __P, __mmask8 __M, __m256i __A)
  7645. {
  7646.   __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
  7647. }
  7648.  
  7649. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7650. _mm_cvtepi64_epi8 (__m128i __A)
  7651. {
  7652.   return (__m128i)__builtin_shufflevector(
  7653.       __builtin_convertvector((__v2di)__A, __v2qi), (__v2qi){0, 0}, 0, 1, 2, 3,
  7654.       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
  7655. }
  7656.  
  7657. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7658. _mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
  7659. {
  7660.   return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
  7661.               (__v16qi) __O, __M);
  7662. }
  7663.  
  7664. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7665. _mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
  7666. {
  7667.   return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
  7668.               (__v16qi) _mm_setzero_si128 (),
  7669.               __M);
  7670. }
  7671.  
  7672. static __inline__ void __DEFAULT_FN_ATTRS128
  7673. _mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
  7674. {
  7675.   __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
  7676. }
  7677.  
  7678. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7679. _mm256_cvtepi64_epi8 (__m256i __A)
  7680. {
  7681.   return (__m128i)__builtin_shufflevector(
  7682.       __builtin_convertvector((__v4di)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1,
  7683.       2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7);
  7684. }
  7685.  
  7686. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7687. _mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
  7688. {
  7689.   return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
  7690.               (__v16qi) __O, __M);
  7691. }
  7692.  
  7693. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7694. _mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
  7695. {
  7696.   return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
  7697.               (__v16qi) _mm_setzero_si128 (),
  7698.               __M);
  7699. }
  7700.  
  7701. static __inline__ void __DEFAULT_FN_ATTRS256
  7702. _mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
  7703. {
  7704.   __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
  7705. }
  7706.  
  7707. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7708. _mm_cvtepi64_epi32 (__m128i __A)
  7709. {
  7710.   return (__m128i)__builtin_shufflevector(
  7711.       __builtin_convertvector((__v2di)__A, __v2si), (__v2si){0, 0}, 0, 1, 2, 3);
  7712. }
  7713.  
  7714. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7715. _mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
  7716. {
  7717.   return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
  7718.               (__v4si) __O, __M);
  7719. }
  7720.  
  7721. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7722. _mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
  7723. {
  7724.   return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
  7725.               (__v4si) _mm_setzero_si128 (),
  7726.               __M);
  7727. }
  7728.  
  7729. static __inline__ void __DEFAULT_FN_ATTRS128
  7730. _mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
  7731. {
  7732.   __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
  7733. }
  7734.  
  7735. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7736. _mm256_cvtepi64_epi32 (__m256i __A)
  7737. {
  7738.   return (__m128i)__builtin_convertvector((__v4di)__A, __v4si);
  7739. }
  7740.  
  7741. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7742. _mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
  7743. {
  7744.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  7745.                                              (__v4si)_mm256_cvtepi64_epi32(__A),
  7746.                                              (__v4si)__O);
  7747. }
  7748.  
  7749. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7750. _mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
  7751. {
  7752.   return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M,
  7753.                                              (__v4si)_mm256_cvtepi64_epi32(__A),
  7754.                                              (__v4si)_mm_setzero_si128());
  7755. }
  7756.  
  7757. static __inline__ void __DEFAULT_FN_ATTRS256
  7758. _mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
  7759. {
  7760.   __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
  7761. }
  7762.  
  7763. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7764. _mm_cvtepi64_epi16 (__m128i __A)
  7765. {
  7766.   return (__m128i)__builtin_shufflevector(
  7767.       __builtin_convertvector((__v2di)__A, __v2hi), (__v2hi){0, 0}, 0, 1, 2, 3,
  7768.       3, 3, 3, 3);
  7769. }
  7770.  
  7771. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7772. _mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
  7773. {
  7774.   return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
  7775.               (__v8hi)__O,
  7776.               __M);
  7777. }
  7778.  
  7779. static __inline__ __m128i __DEFAULT_FN_ATTRS128
  7780. _mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
  7781. {
  7782.   return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
  7783.               (__v8hi) _mm_setzero_si128 (),
  7784.               __M);
  7785. }
  7786.  
  7787. static __inline__ void __DEFAULT_FN_ATTRS128
  7788. _mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
  7789. {
  7790.   __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
  7791. }
  7792.  
  7793. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7794. _mm256_cvtepi64_epi16 (__m256i __A)
  7795. {
  7796.   return (__m128i)__builtin_shufflevector(
  7797.       __builtin_convertvector((__v4di)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1,
  7798.       2, 3, 4, 5, 6, 7);
  7799. }
  7800.  
  7801. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7802. _mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
  7803. {
  7804.   return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
  7805.               (__v8hi) __O, __M);
  7806. }
  7807.  
  7808. static __inline__ __m128i __DEFAULT_FN_ATTRS256
  7809. _mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
  7810. {
  7811.   return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
  7812.               (__v8hi) _mm_setzero_si128 (),
  7813.               __M);
  7814. }
  7815.  
  7816. static __inline__ void __DEFAULT_FN_ATTRS256
  7817. _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
  7818. {
  7819.   __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
  7820. }
  7821.  
  7822. #define _mm256_extractf32x4_ps(A, imm) \
  7823.   ((__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
  7824.                                                 (int)(imm), \
  7825.                                                 (__v4sf)_mm_undefined_ps(), \
  7826.                                                 (__mmask8)-1))
  7827.  
  7828. #define _mm256_mask_extractf32x4_ps(W, U, A, imm) \
  7829.   ((__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
  7830.                                                 (int)(imm), \
  7831.                                                 (__v4sf)(__m128)(W), \
  7832.                                                 (__mmask8)(U)))
  7833.  
  7834. #define _mm256_maskz_extractf32x4_ps(U, A, imm) \
  7835.   ((__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
  7836.                                                 (int)(imm), \
  7837.                                                 (__v4sf)_mm_setzero_ps(), \
  7838.                                                 (__mmask8)(U)))
  7839.  
  7840. #define _mm256_extracti32x4_epi32(A, imm) \
  7841.   ((__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
  7842.                                                  (int)(imm), \
  7843.                                                  (__v4si)_mm_undefined_si128(), \
  7844.                                                  (__mmask8)-1))
  7845.  
  7846. #define _mm256_mask_extracti32x4_epi32(W, U, A, imm) \
  7847.   ((__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
  7848.                                                  (int)(imm), \
  7849.                                                  (__v4si)(__m128i)(W), \
  7850.                                                  (__mmask8)(U)))
  7851.  
  7852. #define _mm256_maskz_extracti32x4_epi32(U, A, imm) \
  7853.   ((__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
  7854.                                                  (int)(imm), \
  7855.                                                  (__v4si)_mm_setzero_si128(), \
  7856.                                                  (__mmask8)(U)))
  7857.  
  7858. #define _mm256_insertf32x4(A, B, imm) \
  7859.   ((__m256)__builtin_ia32_insertf32x4_256((__v8sf)(__m256)(A), \
  7860.                                           (__v4sf)(__m128)(B), (int)(imm)))
  7861.  
  7862. #define _mm256_mask_insertf32x4(W, U, A, B, imm) \
  7863.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  7864.                                   (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \
  7865.                                   (__v8sf)(__m256)(W)))
  7866.  
  7867. #define _mm256_maskz_insertf32x4(U, A, B, imm) \
  7868.   ((__m256)__builtin_ia32_selectps_256((__mmask8)(U), \
  7869.                                   (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \
  7870.                                   (__v8sf)_mm256_setzero_ps()))
  7871.  
  7872. #define _mm256_inserti32x4(A, B, imm) \
  7873.   ((__m256i)__builtin_ia32_inserti32x4_256((__v8si)(__m256i)(A), \
  7874.                                            (__v4si)(__m128i)(B), (int)(imm)))
  7875.  
  7876. #define _mm256_mask_inserti32x4(W, U, A, B, imm) \
  7877.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  7878.                                   (__v8si)_mm256_inserti32x4((A), (B), (imm)), \
  7879.                                   (__v8si)(__m256i)(W)))
  7880.  
  7881. #define _mm256_maskz_inserti32x4(U, A, B, imm) \
  7882.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  7883.                                   (__v8si)_mm256_inserti32x4((A), (B), (imm)), \
  7884.                                   (__v8si)_mm256_setzero_si256()))
  7885.  
  7886. #define _mm_getmant_pd(A, B, C) \
  7887.   ((__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
  7888.                                              (int)(((C)<<2) | (B)), \
  7889.                                              (__v2df)_mm_setzero_pd(), \
  7890.                                              (__mmask8)-1))
  7891.  
  7892. #define _mm_mask_getmant_pd(W, U, A, B, C) \
  7893.   ((__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
  7894.                                              (int)(((C)<<2) | (B)), \
  7895.                                              (__v2df)(__m128d)(W), \
  7896.                                              (__mmask8)(U)))
  7897.  
  7898. #define _mm_maskz_getmant_pd(U, A, B, C) \
  7899.   ((__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \
  7900.                                              (int)(((C)<<2) | (B)), \
  7901.                                              (__v2df)_mm_setzero_pd(), \
  7902.                                              (__mmask8)(U)))
  7903.  
  7904. #define _mm256_getmant_pd(A, B, C) \
  7905.   ((__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
  7906.                                              (int)(((C)<<2) | (B)), \
  7907.                                              (__v4df)_mm256_setzero_pd(), \
  7908.                                              (__mmask8)-1))
  7909.  
  7910. #define _mm256_mask_getmant_pd(W, U, A, B, C) \
  7911.   ((__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
  7912.                                              (int)(((C)<<2) | (B)), \
  7913.                                              (__v4df)(__m256d)(W), \
  7914.                                              (__mmask8)(U)))
  7915.  
  7916. #define _mm256_maskz_getmant_pd(U, A, B, C) \
  7917.   ((__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \
  7918.                                              (int)(((C)<<2) | (B)), \
  7919.                                              (__v4df)_mm256_setzero_pd(), \
  7920.                                              (__mmask8)(U)))
  7921.  
  7922. #define _mm_getmant_ps(A, B, C) \
  7923.   ((__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
  7924.                                             (int)(((C)<<2) | (B)), \
  7925.                                             (__v4sf)_mm_setzero_ps(), \
  7926.                                             (__mmask8)-1))
  7927.  
  7928. #define _mm_mask_getmant_ps(W, U, A, B, C) \
  7929.   ((__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
  7930.                                             (int)(((C)<<2) | (B)), \
  7931.                                             (__v4sf)(__m128)(W), \
  7932.                                             (__mmask8)(U)))
  7933.  
  7934. #define _mm_maskz_getmant_ps(U, A, B, C) \
  7935.   ((__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \
  7936.                                             (int)(((C)<<2) | (B)), \
  7937.                                             (__v4sf)_mm_setzero_ps(), \
  7938.                                             (__mmask8)(U)))
  7939.  
  7940. #define _mm256_getmant_ps(A, B, C) \
  7941.   ((__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
  7942.                                             (int)(((C)<<2) | (B)), \
  7943.                                             (__v8sf)_mm256_setzero_ps(), \
  7944.                                             (__mmask8)-1))
  7945.  
  7946. #define _mm256_mask_getmant_ps(W, U, A, B, C) \
  7947.   ((__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
  7948.                                             (int)(((C)<<2) | (B)), \
  7949.                                             (__v8sf)(__m256)(W), \
  7950.                                             (__mmask8)(U)))
  7951.  
  7952. #define _mm256_maskz_getmant_ps(U, A, B, C) \
  7953.   ((__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \
  7954.                                             (int)(((C)<<2) | (B)), \
  7955.                                             (__v8sf)_mm256_setzero_ps(), \
  7956.                                             (__mmask8)(U)))
  7957.  
  7958. #define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
  7959.   ((__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
  7960.                                          (void const *)(addr), \
  7961.                                          (__v2di)(__m128i)(index), \
  7962.                                          (__mmask8)(mask), (int)(scale)))
  7963.  
  7964. #define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
  7965.   ((__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
  7966.                                          (void const *)(addr), \
  7967.                                          (__v2di)(__m128i)(index), \
  7968.                                          (__mmask8)(mask), (int)(scale)))
  7969.  
  7970. #define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
  7971.   ((__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
  7972.                                          (void const *)(addr), \
  7973.                                          (__v4di)(__m256i)(index), \
  7974.                                          (__mmask8)(mask), (int)(scale)))
  7975.  
  7976. #define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
  7977.   ((__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
  7978.                                          (void const *)(addr), \
  7979.                                          (__v4di)(__m256i)(index), \
  7980.                                          (__mmask8)(mask), (int)(scale)))
  7981.  
  7982. #define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
  7983.   ((__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
  7984.                                         (void const *)(addr), \
  7985.                                         (__v2di)(__m128i)(index), \
  7986.                                         (__mmask8)(mask), (int)(scale)))
  7987.  
  7988. #define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
  7989.   ((__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
  7990.                                          (void const *)(addr), \
  7991.                                          (__v2di)(__m128i)(index), \
  7992.                                          (__mmask8)(mask), (int)(scale)))
  7993.  
  7994. #define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
  7995.   ((__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
  7996.                                         (void const *)(addr), \
  7997.                                         (__v4di)(__m256i)(index), \
  7998.                                         (__mmask8)(mask), (int)(scale)))
  7999.  
  8000. #define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
  8001.   ((__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
  8002.                                          (void const *)(addr), \
  8003.                                          (__v4di)(__m256i)(index), \
  8004.                                          (__mmask8)(mask), (int)(scale)))
  8005.  
  8006. #define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
  8007.   ((__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
  8008.                                          (void const *)(addr), \
  8009.                                          (__v4si)(__m128i)(index), \
  8010.                                          (__mmask8)(mask), (int)(scale)))
  8011.  
  8012. #define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
  8013.   ((__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
  8014.                                          (void const *)(addr), \
  8015.                                          (__v4si)(__m128i)(index), \
  8016.                                          (__mmask8)(mask), (int)(scale)))
  8017.  
  8018. #define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
  8019.   ((__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
  8020.                                          (void const *)(addr), \
  8021.                                          (__v4si)(__m128i)(index), \
  8022.                                          (__mmask8)(mask), (int)(scale)))
  8023.  
  8024. #define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
  8025.   ((__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
  8026.                                          (void const *)(addr), \
  8027.                                          (__v4si)(__m128i)(index), \
  8028.                                          (__mmask8)(mask), (int)(scale)))
  8029.  
  8030. #define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
  8031.   ((__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
  8032.                                         (void const *)(addr), \
  8033.                                         (__v4si)(__m128i)(index), \
  8034.                                         (__mmask8)(mask), (int)(scale)))
  8035.  
  8036. #define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
  8037.   ((__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
  8038.                                          (void const *)(addr), \
  8039.                                          (__v4si)(__m128i)(index), \
  8040.                                          (__mmask8)(mask), (int)(scale)))
  8041.  
  8042. #define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
  8043.   ((__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
  8044.                                         (void const *)(addr), \
  8045.                                         (__v8si)(__m256i)(index), \
  8046.                                         (__mmask8)(mask), (int)(scale)))
  8047.  
  8048. #define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
  8049.   ((__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
  8050.                                          (void const *)(addr), \
  8051.                                          (__v8si)(__m256i)(index), \
  8052.                                          (__mmask8)(mask), (int)(scale)))
  8053.  
  8054. #define _mm256_permutex_pd(X, C) \
  8055.   ((__m256d)__builtin_ia32_permdf256((__v4df)(__m256d)(X), (int)(C)))
  8056.  
  8057. #define _mm256_mask_permutex_pd(W, U, X, C) \
  8058.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  8059.                                        (__v4df)_mm256_permutex_pd((X), (C)), \
  8060.                                        (__v4df)(__m256d)(W)))
  8061.  
  8062. #define _mm256_maskz_permutex_pd(U, X, C) \
  8063.   ((__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \
  8064.                                         (__v4df)_mm256_permutex_pd((X), (C)), \
  8065.                                         (__v4df)_mm256_setzero_pd()))
  8066.  
  8067. #define _mm256_permutex_epi64(X, C) \
  8068.   ((__m256i)__builtin_ia32_permdi256((__v4di)(__m256i)(X), (int)(C)))
  8069.  
  8070. #define _mm256_mask_permutex_epi64(W, U, X, C) \
  8071.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
  8072.                                       (__v4di)_mm256_permutex_epi64((X), (C)), \
  8073.                                       (__v4di)(__m256i)(W)))
  8074.  
  8075. #define _mm256_maskz_permutex_epi64(U, X, C) \
  8076.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
  8077.                                       (__v4di)_mm256_permutex_epi64((X), (C)), \
  8078.                                       (__v4di)_mm256_setzero_si256()))
  8079.  
  8080. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  8081. _mm256_permutexvar_pd (__m256i __X, __m256d __Y)
  8082. {
  8083.   return (__m256d)__builtin_ia32_permvardf256((__v4df)__Y, (__v4di)__X);
  8084. }
  8085.  
  8086. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  8087. _mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
  8088.           __m256d __Y)
  8089. {
  8090.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  8091.                                         (__v4df)_mm256_permutexvar_pd(__X, __Y),
  8092.                                         (__v4df)__W);
  8093. }
  8094.  
  8095. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  8096. _mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
  8097. {
  8098.   return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U,
  8099.                                         (__v4df)_mm256_permutexvar_pd(__X, __Y),
  8100.                                         (__v4df)_mm256_setzero_pd());
  8101. }
  8102.  
  8103. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  8104. _mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y)
  8105. {
  8106.   return (__m256i)__builtin_ia32_permvardi256((__v4di) __Y, (__v4di) __X);
  8107. }
  8108.  
  8109. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  8110. _mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
  8111. {
  8112.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  8113.                                      (__v4di)_mm256_permutexvar_epi64(__X, __Y),
  8114.                                      (__v4di)_mm256_setzero_si256());
  8115. }
  8116.  
  8117. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  8118. _mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
  8119.              __m256i __Y)
  8120. {
  8121.   return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M,
  8122.                                      (__v4di)_mm256_permutexvar_epi64(__X, __Y),
  8123.                                      (__v4di)__W);
  8124. }
  8125.  
  8126. #define _mm256_permutexvar_ps(A, B) _mm256_permutevar8x32_ps((B), (A))
  8127.  
  8128. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8129. _mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y)
  8130. {
  8131.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  8132.                                         (__v8sf)_mm256_permutexvar_ps(__X, __Y),
  8133.                                         (__v8sf)__W);
  8134. }
  8135.  
  8136. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8137. _mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y)
  8138. {
  8139.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  8140.                                         (__v8sf)_mm256_permutexvar_ps(__X, __Y),
  8141.                                         (__v8sf)_mm256_setzero_ps());
  8142. }
  8143.  
  8144. #define _mm256_permutexvar_epi32(A, B) _mm256_permutevar8x32_epi32((B), (A))
  8145.  
  8146. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  8147. _mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X,
  8148.                               __m256i __Y)
  8149. {
  8150.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  8151.                                      (__v8si)_mm256_permutexvar_epi32(__X, __Y),
  8152.                                      (__v8si)__W);
  8153. }
  8154.  
  8155. static __inline__ __m256i __DEFAULT_FN_ATTRS256
  8156. _mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y)
  8157. {
  8158.   return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M,
  8159.                                      (__v8si)_mm256_permutexvar_epi32(__X, __Y),
  8160.                                      (__v8si)_mm256_setzero_si256());
  8161. }
  8162.  
  8163. #define _mm_alignr_epi32(A, B, imm) \
  8164.   ((__m128i)__builtin_ia32_alignd128((__v4si)(__m128i)(A), \
  8165.                                      (__v4si)(__m128i)(B), (int)(imm)))
  8166.  
  8167. #define _mm_mask_alignr_epi32(W, U, A, B, imm) \
  8168.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
  8169.                                     (__v4si)_mm_alignr_epi32((A), (B), (imm)), \
  8170.                                     (__v4si)(__m128i)(W)))
  8171.  
  8172. #define _mm_maskz_alignr_epi32(U, A, B, imm) \
  8173.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
  8174.                                     (__v4si)_mm_alignr_epi32((A), (B), (imm)), \
  8175.                                     (__v4si)_mm_setzero_si128()))
  8176.  
  8177. #define _mm256_alignr_epi32(A, B, imm) \
  8178.   ((__m256i)__builtin_ia32_alignd256((__v8si)(__m256i)(A), \
  8179.                                      (__v8si)(__m256i)(B), (int)(imm)))
  8180.  
  8181. #define _mm256_mask_alignr_epi32(W, U, A, B, imm) \
  8182.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  8183.                                  (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \
  8184.                                  (__v8si)(__m256i)(W)))
  8185.  
  8186. #define _mm256_maskz_alignr_epi32(U, A, B, imm) \
  8187.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  8188.                                  (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \
  8189.                                  (__v8si)_mm256_setzero_si256()))
  8190.  
  8191. #define _mm_alignr_epi64(A, B, imm) \
  8192.   ((__m128i)__builtin_ia32_alignq128((__v2di)(__m128i)(A), \
  8193.                                      (__v2di)(__m128i)(B), (int)(imm)))
  8194.  
  8195. #define _mm_mask_alignr_epi64(W, U, A, B, imm) \
  8196.   ((__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
  8197.                                     (__v2di)_mm_alignr_epi64((A), (B), (imm)), \
  8198.                                     (__v2di)(__m128i)(W)))
  8199.  
  8200. #define _mm_maskz_alignr_epi64(U, A, B, imm) \
  8201.   ((__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \
  8202.                                     (__v2di)_mm_alignr_epi64((A), (B), (imm)), \
  8203.                                     (__v2di)_mm_setzero_si128()))
  8204.  
  8205. #define _mm256_alignr_epi64(A, B, imm) \
  8206.   ((__m256i)__builtin_ia32_alignq256((__v4di)(__m256i)(A), \
  8207.                                      (__v4di)(__m256i)(B), (int)(imm)))
  8208.  
  8209. #define _mm256_mask_alignr_epi64(W, U, A, B, imm) \
  8210.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
  8211.                                  (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \
  8212.                                  (__v4di)(__m256i)(W)))
  8213.  
  8214. #define _mm256_maskz_alignr_epi64(U, A, B, imm) \
  8215.   ((__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \
  8216.                                  (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \
  8217.                                  (__v4di)_mm256_setzero_si256()))
  8218.  
  8219. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8220. _mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
  8221. {
  8222.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  8223.                                              (__v4sf)_mm_movehdup_ps(__A),
  8224.                                              (__v4sf)__W);
  8225. }
  8226.  
  8227. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8228. _mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
  8229. {
  8230.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  8231.                                              (__v4sf)_mm_movehdup_ps(__A),
  8232.                                              (__v4sf)_mm_setzero_ps());
  8233. }
  8234.  
  8235. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8236. _mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
  8237. {
  8238.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  8239.                                              (__v8sf)_mm256_movehdup_ps(__A),
  8240.                                              (__v8sf)__W);
  8241. }
  8242.  
  8243. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8244. _mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
  8245. {
  8246.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  8247.                                              (__v8sf)_mm256_movehdup_ps(__A),
  8248.                                              (__v8sf)_mm256_setzero_ps());
  8249. }
  8250.  
  8251. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8252. _mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
  8253. {
  8254.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  8255.                                              (__v4sf)_mm_moveldup_ps(__A),
  8256.                                              (__v4sf)__W);
  8257. }
  8258.  
  8259. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8260. _mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
  8261. {
  8262.   return (__m128)__builtin_ia32_selectps_128((__mmask8)__U,
  8263.                                              (__v4sf)_mm_moveldup_ps(__A),
  8264.                                              (__v4sf)_mm_setzero_ps());
  8265. }
  8266.  
  8267. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8268. _mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
  8269. {
  8270.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  8271.                                              (__v8sf)_mm256_moveldup_ps(__A),
  8272.                                              (__v8sf)__W);
  8273. }
  8274.  
  8275. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8276. _mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
  8277. {
  8278.   return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
  8279.                                              (__v8sf)_mm256_moveldup_ps(__A),
  8280.                                              (__v8sf)_mm256_setzero_ps());
  8281. }
  8282.  
  8283. #define _mm256_mask_shuffle_epi32(W, U, A, I) \
  8284.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  8285.                                        (__v8si)_mm256_shuffle_epi32((A), (I)), \
  8286.                                        (__v8si)(__m256i)(W)))
  8287.  
  8288. #define _mm256_maskz_shuffle_epi32(U, A, I) \
  8289.   ((__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \
  8290.                                        (__v8si)_mm256_shuffle_epi32((A), (I)), \
  8291.                                        (__v8si)_mm256_setzero_si256()))
  8292.  
  8293. #define _mm_mask_shuffle_epi32(W, U, A, I) \
  8294.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
  8295.                                        (__v4si)_mm_shuffle_epi32((A), (I)), \
  8296.                                        (__v4si)(__m128i)(W)))
  8297.  
  8298. #define _mm_maskz_shuffle_epi32(U, A, I) \
  8299.   ((__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \
  8300.                                        (__v4si)_mm_shuffle_epi32((A), (I)), \
  8301.                                        (__v4si)_mm_setzero_si128()))
  8302.  
  8303. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  8304. _mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
  8305. {
  8306.   return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
  8307.               (__v2df) __A,
  8308.               (__v2df) __W);
  8309. }
  8310.  
  8311. static __inline__ __m128d __DEFAULT_FN_ATTRS128
  8312. _mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
  8313. {
  8314.   return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U,
  8315.               (__v2df) __A,
  8316.               (__v2df) _mm_setzero_pd ());
  8317. }
  8318.  
  8319. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  8320. _mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
  8321. {
  8322.   return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
  8323.               (__v4df) __A,
  8324.               (__v4df) __W);
  8325. }
  8326.  
  8327. static __inline__ __m256d __DEFAULT_FN_ATTRS256
  8328. _mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
  8329. {
  8330.   return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U,
  8331.               (__v4df) __A,
  8332.               (__v4df) _mm256_setzero_pd ());
  8333. }
  8334.  
  8335. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8336. _mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
  8337. {
  8338.   return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
  8339.              (__v4sf) __A,
  8340.              (__v4sf) __W);
  8341. }
  8342.  
  8343. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8344. _mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
  8345. {
  8346.   return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U,
  8347.              (__v4sf) __A,
  8348.              (__v4sf) _mm_setzero_ps ());
  8349. }
  8350.  
  8351. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8352. _mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
  8353. {
  8354.   return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
  8355.              (__v8sf) __A,
  8356.              (__v8sf) __W);
  8357. }
  8358.  
  8359. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8360. _mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
  8361. {
  8362.   return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U,
  8363.              (__v8sf) __A,
  8364.              (__v8sf) _mm256_setzero_ps ());
  8365. }
  8366.  
  8367. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8368. _mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
  8369. {
  8370.   return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
  8371.              (__v4sf) __W,
  8372.              (__mmask8) __U);
  8373. }
  8374.  
  8375. static __inline__ __m128 __DEFAULT_FN_ATTRS128
  8376. _mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
  8377. {
  8378.   return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
  8379.              (__v4sf)
  8380.              _mm_setzero_ps (),
  8381.              (__mmask8) __U);
  8382. }
  8383.  
  8384. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8385. _mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
  8386. {
  8387.   return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
  8388.                 (__v8sf) __W,
  8389.                 (__mmask8) __U);
  8390. }
  8391.  
  8392. static __inline__ __m256 __DEFAULT_FN_ATTRS256
  8393. _mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
  8394. {
  8395.   return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
  8396.                 (__v8sf)
  8397.                 _mm256_setzero_ps (),
  8398.                 (__mmask8) __U);
  8399. }
  8400.  
  8401. #define _mm_mask_cvt_roundps_ph(W, U, A, I) \
  8402.   ((__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
  8403.                                           (__v8hi)(__m128i)(W), \
  8404.                                           (__mmask8)(U)))
  8405.  
  8406. #define _mm_maskz_cvt_roundps_ph(U, A, I) \
  8407.   ((__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \
  8408.                                           (__v8hi)_mm_setzero_si128(), \
  8409.                                           (__mmask8)(U)))
  8410.  
  8411. #define _mm_mask_cvtps_ph  _mm_mask_cvt_roundps_ph
  8412. #define _mm_maskz_cvtps_ph _mm_maskz_cvt_roundps_ph
  8413.  
  8414. #define _mm256_mask_cvt_roundps_ph(W, U, A, I) \
  8415.   ((__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
  8416.                                              (__v8hi)(__m128i)(W), \
  8417.                                              (__mmask8)(U)))
  8418.  
  8419. #define _mm256_maskz_cvt_roundps_ph(U, A, I) \
  8420.   ((__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \
  8421.                                              (__v8hi)_mm_setzero_si128(), \
  8422.                                              (__mmask8)(U)))
  8423.  
  8424. #define _mm256_mask_cvtps_ph  _mm256_mask_cvt_roundps_ph
  8425. #define _mm256_maskz_cvtps_ph _mm256_maskz_cvt_roundps_ph
  8426.  
  8427.  
  8428. #undef __DEFAULT_FN_ATTRS128
  8429. #undef __DEFAULT_FN_ATTRS256
  8430.  
  8431. #endif /* __AVX512VLINTRIN_H */
  8432.