@cpp-linter/clang-tidy-win32-x64 14.0.0 → 16.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_intrinsics.h +7 -7
  4. package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_texture_intrinsics.h +2 -0
  5. package/lib/clang/{14.0.0 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
  6. package/lib/clang/{14.0.0 → 16}/include/__clang_hip_math.h +10 -13
  7. package/lib/clang/{14.0.0 → 16}/include/__clang_hip_runtime_wrapper.h +1 -0
  8. package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
  9. package/lib/clang/{14.0.0 → 16}/include/__wmmintrin_pclmul.h +10 -10
  10. package/lib/clang/{14.0.0 → 16}/include/altivec.h +501 -262
  11. package/lib/clang/16/include/amxfp16intrin.h +58 -0
  12. package/lib/clang/{14.0.0 → 16}/include/amxintrin.h +32 -2
  13. package/lib/clang/{14.0.0 → 16}/include/arm_acle.h +76 -75
  14. package/lib/clang/{14.0.0 → 16}/include/arm_fp16.h +90 -90
  15. package/lib/clang/{14.0.0 → 16}/include/arm_neon.h +28468 -28638
  16. package/lib/clang/{14.0.0 → 16}/include/arm_neon_sve_bridge.h +0 -2
  17. package/lib/clang/{14.0.0 → 16}/include/arm_sve.h +7848 -7996
  18. package/lib/clang/{14.0.0 → 16}/include/avx2intrin.h +8 -8
  19. package/lib/clang/{14.0.0 → 16}/include/avx512bf16intrin.h +18 -15
  20. package/lib/clang/{14.0.0 → 16}/include/avx512bwintrin.h +12 -12
  21. package/lib/clang/{14.0.0 → 16}/include/avx512fintrin.h +78 -75
  22. package/lib/clang/{14.0.0 → 16}/include/avx512fp16intrin.h +6 -9
  23. package/lib/clang/{14.0.0 → 16}/include/avx512ifmavlintrin.h +13 -27
  24. package/lib/clang/{14.0.0 → 16}/include/avx512vlbf16intrin.h +31 -38
  25. package/lib/clang/{14.0.0 → 16}/include/avx512vlbwintrin.h +360 -8
  26. package/lib/clang/{14.0.0 → 16}/include/avx512vlfp16intrin.h +3 -0
  27. package/lib/clang/{14.0.0 → 16}/include/avx512vlintrin.h +81 -95
  28. package/lib/clang/{14.0.0 → 16}/include/avx512vlvnniintrin.h +16 -16
  29. package/lib/clang/16/include/avxifmaintrin.h +177 -0
  30. package/lib/clang/{14.0.0 → 16}/include/avxintrin.h +77 -32
  31. package/lib/clang/16/include/avxneconvertintrin.h +484 -0
  32. package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
  33. package/lib/clang/{14.0.0 → 16}/include/avxvnniintrin.h +16 -16
  34. package/lib/clang/{14.0.0 → 16}/include/bmiintrin.h +6 -2
  35. package/lib/clang/{14.0.0 → 16}/include/cetintrin.h +12 -6
  36. package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
  37. package/lib/clang/{14.0.0 → 16}/include/cpuid.h +12 -1
  38. package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
  39. package/lib/clang/{14.0.0 → 16}/include/emmintrin.h +559 -769
  40. package/lib/clang/{14.0.0 → 16}/include/f16cintrin.h +3 -3
  41. package/lib/clang/{14.0.0 → 16}/include/float.h +17 -10
  42. package/lib/clang/{14.0.0 → 16}/include/gfniintrin.h +7 -5
  43. package/lib/clang/16/include/hlsl/hlsl_basic_types.h +67 -0
  44. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +223 -0
  45. package/lib/clang/16/include/hlsl.h +15 -0
  46. package/lib/clang/{14.0.0 → 16}/include/hresetintrin.h +2 -2
  47. package/lib/clang/{14.0.0 → 16}/include/ia32intrin.h +11 -11
  48. package/lib/clang/{14.0.0 → 16}/include/immintrin.h +56 -24
  49. package/lib/clang/{14.0.0 → 16}/include/intrin.h +12 -21
  50. package/lib/clang/{14.0.0 → 16}/include/keylockerintrin.h +22 -22
  51. package/lib/clang/16/include/larchintrin.h +234 -0
  52. package/lib/clang/{14.0.0 → 16}/include/limits.h +3 -2
  53. package/lib/clang/{14.0.0 → 16}/include/mm_malloc.h +3 -3
  54. package/lib/clang/{14.0.0 → 16}/include/opencl-c-base.h +29 -0
  55. package/lib/clang/{14.0.0 → 16}/include/opencl-c.h +6904 -7100
  56. package/lib/clang/{14.0.0 → 16}/include/pmmintrin.h +1 -1
  57. package/lib/clang/16/include/ppc_wrappers/bmi2intrin.h +134 -0
  58. package/lib/clang/16/include/ppc_wrappers/bmiintrin.h +165 -0
  59. package/lib/clang/16/include/ppc_wrappers/emmintrin.h +2268 -0
  60. package/lib/clang/16/include/ppc_wrappers/immintrin.h +27 -0
  61. package/lib/clang/{14.0.0 → 16}/include/ppc_wrappers/mm_malloc.h +12 -17
  62. package/lib/clang/{14.0.0 → 16}/include/ppc_wrappers/mmintrin.h +389 -387
  63. package/lib/clang/16/include/ppc_wrappers/pmmintrin.h +145 -0
  64. package/lib/clang/16/include/ppc_wrappers/smmintrin.h +663 -0
  65. package/lib/clang/16/include/ppc_wrappers/tmmintrin.h +453 -0
  66. package/lib/clang/{14.0.0/include/stdnoreturn.h → 16/include/ppc_wrappers/x86gprintrin.h} +7 -6
  67. package/lib/clang/16/include/ppc_wrappers/x86intrin.h +28 -0
  68. package/lib/clang/16/include/ppc_wrappers/xmmintrin.h +1827 -0
  69. package/lib/clang/16/include/prfchiintrin.h +61 -0
  70. package/lib/clang/16/include/raointintrin.h +203 -0
  71. package/lib/clang/16/include/rdpruintrin.h +57 -0
  72. package/lib/clang/{14.0.0 → 16}/include/rdseedintrin.h +3 -3
  73. package/lib/clang/16/include/riscv_vector.h +211 -0
  74. package/lib/clang/{14.0.0 → 16}/include/rtmintrin.h +1 -1
  75. package/lib/clang/{14.0.0 → 16}/include/smmintrin.h +236 -259
  76. package/lib/clang/{14.0.0 → 16}/include/stdarg.h +23 -7
  77. package/lib/clang/{14.0.0 → 16}/include/stdatomic.h +7 -7
  78. package/lib/clang/{14.0.0 → 16}/include/stdbool.h +10 -7
  79. package/lib/clang/{14.0.0 → 16}/include/stddef.h +9 -2
  80. package/lib/clang/{14.0.0 → 16}/include/stdint.h +158 -40
  81. package/lib/clang/16/include/stdnoreturn.h +29 -0
  82. package/lib/clang/{14.0.0 → 16}/include/uintrintrin.h +8 -8
  83. package/lib/clang/{14.0.0 → 16}/include/unwind.h +10 -6
  84. package/lib/clang/16/include/velintrin.h +71 -0
  85. package/lib/clang/16/include/velintrin_approx.h +120 -0
  86. package/lib/clang/16/include/velintrin_gen.h +1257 -0
  87. package/lib/clang/{14.0.0 → 16}/include/wasm_simd128.h +2 -2
  88. package/lib/clang/16/include/x86gprintrin.h +65 -0
  89. package/lib/clang/{14.0.0 → 16}/include/x86intrin.h +4 -0
  90. package/lib/clang/{14.0.0 → 16}/include/xmmintrin.h +10 -5
  91. package/package.json +6 -6
  92. package/lib/clang/14.0.0/include/ppc_wrappers/emmintrin.h +0 -2325
  93. package/lib/clang/14.0.0/include/ppc_wrappers/pmmintrin.h +0 -151
  94. package/lib/clang/14.0.0/include/ppc_wrappers/smmintrin.h +0 -110
  95. package/lib/clang/14.0.0/include/ppc_wrappers/tmmintrin.h +0 -496
  96. package/lib/clang/14.0.0/include/ppc_wrappers/xmmintrin.h +0 -1844
  97. package/lib/clang/14.0.0/include/riscv_vector.h +0 -95423
  98. package/lib/clang/14.0.0/include/x86gprintrin.h +0 -35
  99. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
  100. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_cmath.h +0 -0
  101. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_complex_builtins.h +0 -0
  102. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_device_functions.h +0 -0
  103. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_libdevice_declares.h +0 -0
  104. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_math.h +0 -0
  105. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
  106. /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_runtime_wrapper.h +0 -0
  107. /package/lib/clang/{14.0.0 → 16}/include/__clang_hip_cmath.h +0 -0
  108. /package/lib/clang/{14.0.0 → 16}/include/__stddef_max_align_t.h +0 -0
  109. /package/lib/clang/{14.0.0 → 16}/include/__wmmintrin_aes.h +0 -0
  110. /package/lib/clang/{14.0.0 → 16}/include/adxintrin.h +0 -0
  111. /package/lib/clang/{14.0.0 → 16}/include/ammintrin.h +0 -0
  112. /package/lib/clang/{14.0.0 → 16}/include/arm64intr.h +0 -0
  113. /package/lib/clang/{14.0.0 → 16}/include/arm_bf16.h +0 -0
  114. /package/lib/clang/{14.0.0 → 16}/include/arm_cde.h +0 -0
  115. /package/lib/clang/{14.0.0 → 16}/include/arm_cmse.h +0 -0
  116. /package/lib/clang/{14.0.0 → 16}/include/arm_mve.h +0 -0
  117. /package/lib/clang/{14.0.0 → 16}/include/armintr.h +0 -0
  118. /package/lib/clang/{14.0.0 → 16}/include/avx512bitalgintrin.h +0 -0
  119. /package/lib/clang/{14.0.0 → 16}/include/avx512cdintrin.h +0 -0
  120. /package/lib/clang/{14.0.0 → 16}/include/avx512dqintrin.h +0 -0
  121. /package/lib/clang/{14.0.0 → 16}/include/avx512erintrin.h +0 -0
  122. /package/lib/clang/{14.0.0 → 16}/include/avx512ifmaintrin.h +0 -0
  123. /package/lib/clang/{14.0.0 → 16}/include/avx512pfintrin.h +0 -0
  124. /package/lib/clang/{14.0.0 → 16}/include/avx512vbmi2intrin.h +0 -0
  125. /package/lib/clang/{14.0.0 → 16}/include/avx512vbmiintrin.h +0 -0
  126. /package/lib/clang/{14.0.0 → 16}/include/avx512vbmivlintrin.h +0 -0
  127. /package/lib/clang/{14.0.0 → 16}/include/avx512vlbitalgintrin.h +0 -0
  128. /package/lib/clang/{14.0.0 → 16}/include/avx512vlcdintrin.h +0 -0
  129. /package/lib/clang/{14.0.0 → 16}/include/avx512vldqintrin.h +0 -0
  130. /package/lib/clang/{14.0.0 → 16}/include/avx512vlvbmi2intrin.h +0 -0
  131. /package/lib/clang/{14.0.0 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
  132. /package/lib/clang/{14.0.0 → 16}/include/avx512vnniintrin.h +0 -0
  133. /package/lib/clang/{14.0.0 → 16}/include/avx512vp2intersectintrin.h +0 -0
  134. /package/lib/clang/{14.0.0 → 16}/include/avx512vpopcntdqintrin.h +0 -0
  135. /package/lib/clang/{14.0.0 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
  136. /package/lib/clang/{14.0.0 → 16}/include/bmi2intrin.h +0 -0
  137. /package/lib/clang/{14.0.0 → 16}/include/builtins.h +0 -0
  138. /package/lib/clang/{14.0.0 → 16}/include/cet.h +0 -0
  139. /package/lib/clang/{14.0.0 → 16}/include/cldemoteintrin.h +0 -0
  140. /package/lib/clang/{14.0.0 → 16}/include/clflushoptintrin.h +0 -0
  141. /package/lib/clang/{14.0.0 → 16}/include/clwbintrin.h +0 -0
  142. /package/lib/clang/{14.0.0 → 16}/include/clzerointrin.h +0 -0
  143. /package/lib/clang/{14.0.0 → 16}/include/crc32intrin.h +0 -0
  144. /package/lib/clang/{14.0.0 → 16}/include/cuda_wrappers/algorithm +0 -0
  145. /package/lib/clang/{14.0.0 → 16}/include/cuda_wrappers/complex +0 -0
  146. /package/lib/clang/{14.0.0 → 16}/include/cuda_wrappers/new +0 -0
  147. /package/lib/clang/{14.0.0 → 16}/include/enqcmdintrin.h +0 -0
  148. /package/lib/clang/{14.0.0 → 16}/include/fma4intrin.h +0 -0
  149. /package/lib/clang/{14.0.0 → 16}/include/fmaintrin.h +0 -0
  150. /package/lib/clang/{14.0.0 → 16}/include/fxsrintrin.h +0 -0
  151. /package/lib/clang/{14.0.0 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
  152. /package/lib/clang/{14.0.0 → 16}/include/hexagon_protos.h +0 -0
  153. /package/lib/clang/{14.0.0 → 16}/include/hexagon_types.h +0 -0
  154. /package/lib/clang/{14.0.0 → 16}/include/htmintrin.h +0 -0
  155. /package/lib/clang/{14.0.0 → 16}/include/htmxlintrin.h +0 -0
  156. /package/lib/clang/{14.0.0 → 16}/include/hvx_hexagon_protos.h +0 -0
  157. /package/lib/clang/{14.0.0 → 16}/include/inttypes.h +0 -0
  158. /package/lib/clang/{14.0.0 → 16}/include/invpcidintrin.h +0 -0
  159. /package/lib/clang/{14.0.0 → 16}/include/iso646.h +0 -0
  160. /package/lib/clang/{14.0.0 → 16}/include/lwpintrin.h +0 -0
  161. /package/lib/clang/{14.0.0 → 16}/include/lzcntintrin.h +0 -0
  162. /package/lib/clang/{14.0.0 → 16}/include/mm3dnow.h +0 -0
  163. /package/lib/clang/{14.0.0 → 16}/include/mmintrin.h +0 -0
  164. /package/lib/clang/{14.0.0 → 16}/include/module.modulemap +0 -0
  165. /package/lib/clang/{14.0.0 → 16}/include/movdirintrin.h +0 -0
  166. /package/lib/clang/{14.0.0 → 16}/include/msa.h +0 -0
  167. /package/lib/clang/{14.0.0 → 16}/include/mwaitxintrin.h +0 -0
  168. /package/lib/clang/{14.0.0 → 16}/include/nmmintrin.h +0 -0
  169. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  170. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/cmath +0 -0
  171. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/complex +0 -0
  172. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/complex.h +0 -0
  173. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
  174. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/math.h +0 -0
  175. /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/new +0 -0
  176. /package/lib/clang/{14.0.0 → 16}/include/pconfigintrin.h +0 -0
  177. /package/lib/clang/{14.0.0 → 16}/include/pkuintrin.h +0 -0
  178. /package/lib/clang/{14.0.0 → 16}/include/popcntintrin.h +0 -0
  179. /package/lib/clang/{14.0.0 → 16}/include/prfchwintrin.h +0 -0
  180. /package/lib/clang/{14.0.0 → 16}/include/ptwriteintrin.h +0 -0
  181. /package/lib/clang/{14.0.0 → 16}/include/s390intrin.h +0 -0
  182. /package/lib/clang/{14.0.0 → 16}/include/serializeintrin.h +0 -0
  183. /package/lib/clang/{14.0.0 → 16}/include/sgxintrin.h +0 -0
  184. /package/lib/clang/{14.0.0 → 16}/include/shaintrin.h +0 -0
  185. /package/lib/clang/{14.0.0 → 16}/include/stdalign.h +0 -0
  186. /package/lib/clang/{14.0.0 → 16}/include/tbmintrin.h +0 -0
  187. /package/lib/clang/{14.0.0 → 16}/include/tgmath.h +0 -0
  188. /package/lib/clang/{14.0.0 → 16}/include/tmmintrin.h +0 -0
  189. /package/lib/clang/{14.0.0 → 16}/include/tsxldtrkintrin.h +0 -0
  190. /package/lib/clang/{14.0.0 → 16}/include/vadefs.h +0 -0
  191. /package/lib/clang/{14.0.0 → 16}/include/vaesintrin.h +0 -0
  192. /package/lib/clang/{14.0.0 → 16}/include/varargs.h +0 -0
  193. /package/lib/clang/{14.0.0 → 16}/include/vecintrin.h +0 -0
  194. /package/lib/clang/{14.0.0 → 16}/include/vpclmulqdqintrin.h +0 -0
  195. /package/lib/clang/{14.0.0 → 16}/include/waitpkgintrin.h +0 -0
  196. /package/lib/clang/{14.0.0 → 16}/include/wbnoinvdintrin.h +0 -0
  197. /package/lib/clang/{14.0.0 → 16}/include/wmmintrin.h +0 -0
  198. /package/lib/clang/{14.0.0 → 16}/include/xopintrin.h +0 -0
  199. /package/lib/clang/{14.0.0 → 16}/include/xsavecintrin.h +0 -0
  200. /package/lib/clang/{14.0.0 → 16}/include/xsaveintrin.h +0 -0
  201. /package/lib/clang/{14.0.0 → 16}/include/xsaveoptintrin.h +0 -0
  202. /package/lib/clang/{14.0.0 → 16}/include/xsavesintrin.h +0 -0
  203. /package/lib/clang/{14.0.0 → 16}/include/xtestintrin.h +0 -0
@@ -17,23 +17,25 @@
17
17
  #include <tmmintrin.h>
18
18
 
19
19
  /* Define the default attributes for the functions in this file. */
20
- #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128)))
20
+ #define __DEFAULT_FN_ATTRS \
21
+ __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), \
22
+ __min_vector_width__(128)))
21
23
 
22
24
  /* SSE4 Rounding macros. */
23
- #define _MM_FROUND_TO_NEAREST_INT 0x00
24
- #define _MM_FROUND_TO_NEG_INF 0x01
25
- #define _MM_FROUND_TO_POS_INF 0x02
26
- #define _MM_FROUND_TO_ZERO 0x03
27
- #define _MM_FROUND_CUR_DIRECTION 0x04
28
-
29
- #define _MM_FROUND_RAISE_EXC 0x00
30
- #define _MM_FROUND_NO_EXC 0x08
31
-
32
- #define _MM_FROUND_NINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEAREST_INT)
33
- #define _MM_FROUND_FLOOR (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEG_INF)
34
- #define _MM_FROUND_CEIL (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_POS_INF)
35
- #define _MM_FROUND_TRUNC (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_ZERO)
36
- #define _MM_FROUND_RINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTION)
25
+ #define _MM_FROUND_TO_NEAREST_INT 0x00
26
+ #define _MM_FROUND_TO_NEG_INF 0x01
27
+ #define _MM_FROUND_TO_POS_INF 0x02
28
+ #define _MM_FROUND_TO_ZERO 0x03
29
+ #define _MM_FROUND_CUR_DIRECTION 0x04
30
+
31
+ #define _MM_FROUND_RAISE_EXC 0x00
32
+ #define _MM_FROUND_NO_EXC 0x08
33
+
34
+ #define _MM_FROUND_NINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEAREST_INT)
35
+ #define _MM_FROUND_FLOOR (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEG_INF)
36
+ #define _MM_FROUND_CEIL (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_POS_INF)
37
+ #define _MM_FROUND_TRUNC (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_ZERO)
38
+ #define _MM_FROUND_RINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTION)
37
39
  #define _MM_FROUND_NEARBYINT (_MM_FROUND_NO_EXC | _MM_FROUND_CUR_DIRECTION)
38
40
 
39
41
  /// Rounds up each element of the 128-bit vector of [4 x float] to an
@@ -51,7 +53,7 @@
51
53
  /// \param X
52
54
  /// A 128-bit vector of [4 x float] values to be rounded up.
53
55
  /// \returns A 128-bit vector of [4 x float] containing the rounded values.
54
- #define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL)
56
+ #define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL)
55
57
 
56
58
  /// Rounds up each element of the 128-bit vector of [2 x double] to an
57
59
  /// integer and returns the rounded values in a 128-bit vector of
@@ -68,7 +70,7 @@
68
70
  /// \param X
69
71
  /// A 128-bit vector of [2 x double] values to be rounded up.
70
72
  /// \returns A 128-bit vector of [2 x double] containing the rounded values.
71
- #define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL)
73
+ #define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL)
72
74
 
73
75
  /// Copies three upper elements of the first 128-bit vector operand to
74
76
  /// the corresponding three upper elements of the 128-bit result vector of
@@ -93,7 +95,7 @@
93
95
  /// of the result.
94
96
  /// \returns A 128-bit vector of [4 x float] containing the copied and rounded
95
97
  /// values.
96
- #define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL)
98
+ #define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL)
97
99
 
98
100
  /// Copies the upper element of the first 128-bit vector operand to the
99
101
  /// corresponding upper element of the 128-bit result vector of [2 x double].
@@ -118,7 +120,7 @@
118
120
  /// of the result.
119
121
  /// \returns A 128-bit vector of [2 x double] containing the copied and rounded
120
122
  /// values.
121
- #define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL)
123
+ #define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL)
122
124
 
123
125
  /// Rounds down each element of the 128-bit vector of [4 x float] to an
124
126
  /// an integer and returns the rounded values in a 128-bit vector of
@@ -135,7 +137,7 @@
135
137
  /// \param X
136
138
  /// A 128-bit vector of [4 x float] values to be rounded down.
137
139
  /// \returns A 128-bit vector of [4 x float] containing the rounded values.
138
- #define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR)
140
+ #define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR)
139
141
 
140
142
  /// Rounds down each element of the 128-bit vector of [2 x double] to an
141
143
  /// integer and returns the rounded values in a 128-bit vector of
@@ -152,7 +154,7 @@
152
154
  /// \param X
153
155
  /// A 128-bit vector of [2 x double].
154
156
  /// \returns A 128-bit vector of [2 x double] containing the rounded values.
155
- #define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR)
157
+ #define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR)
156
158
 
157
159
  /// Copies three upper elements of the first 128-bit vector operand to
158
160
  /// the corresponding three upper elements of the 128-bit result vector of
@@ -177,7 +179,7 @@
177
179
  /// of the result.
178
180
  /// \returns A 128-bit vector of [4 x float] containing the copied and rounded
179
181
  /// values.
180
- #define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR)
182
+ #define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR)
181
183
 
182
184
  /// Copies the upper element of the first 128-bit vector operand to the
183
185
  /// corresponding upper element of the 128-bit result vector of [2 x double].
@@ -202,7 +204,7 @@
202
204
  /// of the result.
203
205
  /// \returns A 128-bit vector of [2 x double] containing the copied and rounded
204
206
  /// values.
205
- #define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR)
207
+ #define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR)
206
208
 
207
209
  /// Rounds each element of the 128-bit vector of [4 x float] to an
208
210
  /// integer value according to the rounding control specified by the second
@@ -234,7 +236,7 @@
234
236
  /// 10: Upward (toward positive infinity) \n
235
237
  /// 11: Truncated
236
238
  /// \returns A 128-bit vector of [4 x float] containing the rounded values.
237
- #define _mm_round_ps(X, M) \
239
+ #define _mm_round_ps(X, M) \
238
240
  ((__m128)__builtin_ia32_roundps((__v4sf)(__m128)(X), (M)))
239
241
 
240
242
  /// Copies three upper elements of the first 128-bit vector operand to
@@ -275,9 +277,9 @@
275
277
  /// 11: Truncated
276
278
  /// \returns A 128-bit vector of [4 x float] containing the copied and rounded
277
279
  /// values.
278
- #define _mm_round_ss(X, Y, M) \
279
- ((__m128)__builtin_ia32_roundss((__v4sf)(__m128)(X), \
280
- (__v4sf)(__m128)(Y), (M)))
280
+ #define _mm_round_ss(X, Y, M) \
281
+ ((__m128)__builtin_ia32_roundss((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), \
282
+ (M)))
281
283
 
282
284
  /// Rounds each element of the 128-bit vector of [2 x double] to an
283
285
  /// integer value according to the rounding control specified by the second
@@ -309,7 +311,7 @@
309
311
  /// 10: Upward (toward positive infinity) \n
310
312
  /// 11: Truncated
311
313
  /// \returns A 128-bit vector of [2 x double] containing the rounded values.
312
- #define _mm_round_pd(X, M) \
314
+ #define _mm_round_pd(X, M) \
313
315
  ((__m128d)__builtin_ia32_roundpd((__v2df)(__m128d)(X), (M)))
314
316
 
315
317
  /// Copies the upper element of the first 128-bit vector operand to the
@@ -350,9 +352,9 @@
350
352
  /// 11: Truncated
351
353
  /// \returns A 128-bit vector of [2 x double] containing the copied and rounded
352
354
  /// values.
353
- #define _mm_round_sd(X, Y, M) \
354
- ((__m128d)__builtin_ia32_roundsd((__v2df)(__m128d)(X), \
355
- (__v2df)(__m128d)(Y), (M)))
355
+ #define _mm_round_sd(X, Y, M) \
356
+ ((__m128d)__builtin_ia32_roundsd((__v2df)(__m128d)(X), (__v2df)(__m128d)(Y), \
357
+ (M)))
356
358
 
357
359
  /* SSE4 Packed Blending Intrinsics. */
358
360
  /// Returns a 128-bit vector of [2 x double] where the values are
@@ -379,9 +381,9 @@
379
381
  /// When a mask bit is 1, the corresponding 64-bit element in operand \a V2
380
382
  /// is copied to the same position in the result.
381
383
  /// \returns A 128-bit vector of [2 x double] containing the copied values.
382
- #define _mm_blend_pd(V1, V2, M) \
383
- ((__m128d) __builtin_ia32_blendpd ((__v2df)(__m128d)(V1), \
384
- (__v2df)(__m128d)(V2), (int)(M)))
384
+ #define _mm_blend_pd(V1, V2, M) \
385
+ ((__m128d)__builtin_ia32_blendpd((__v2df)(__m128d)(V1), \
386
+ (__v2df)(__m128d)(V2), (int)(M)))
385
387
 
386
388
  /// Returns a 128-bit vector of [4 x float] where the values are selected
387
389
  /// from either the first or second operand as specified by the third
@@ -407,9 +409,9 @@
407
409
  /// When a mask bit is 1, the corresponding 32-bit element in operand \a V2
408
410
  /// is copied to the same position in the result.
409
411
  /// \returns A 128-bit vector of [4 x float] containing the copied values.
410
- #define _mm_blend_ps(V1, V2, M) \
411
- ((__m128) __builtin_ia32_blendps ((__v4sf)(__m128)(V1), \
412
- (__v4sf)(__m128)(V2), (int)(M)))
412
+ #define _mm_blend_ps(V1, V2, M) \
413
+ ((__m128)__builtin_ia32_blendps((__v4sf)(__m128)(V1), (__v4sf)(__m128)(V2), \
414
+ (int)(M)))
413
415
 
414
416
  /// Returns a 128-bit vector of [2 x double] where the values are
415
417
  /// selected from either the first or second operand as specified by the
@@ -431,11 +433,11 @@
431
433
  /// position in the result. When a mask bit is 1, the corresponding 64-bit
432
434
  /// element in operand \a __V2 is copied to the same position in the result.
433
435
  /// \returns A 128-bit vector of [2 x double] containing the copied values.
434
- static __inline__ __m128d __DEFAULT_FN_ATTRS
435
- _mm_blendv_pd (__m128d __V1, __m128d __V2, __m128d __M)
436
- {
437
- return (__m128d) __builtin_ia32_blendvpd ((__v2df)__V1, (__v2df)__V2,
438
- (__v2df)__M);
436
+ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_blendv_pd(__m128d __V1,
437
+ __m128d __V2,
438
+ __m128d __M) {
439
+ return (__m128d)__builtin_ia32_blendvpd((__v2df)__V1, (__v2df)__V2,
440
+ (__v2df)__M);
439
441
  }
440
442
 
441
443
  /// Returns a 128-bit vector of [4 x float] where the values are
@@ -458,11 +460,11 @@ _mm_blendv_pd (__m128d __V1, __m128d __V2, __m128d __M)
458
460
  /// position in the result. When a mask bit is 1, the corresponding 32-bit
459
461
  /// element in operand \a __V2 is copied to the same position in the result.
460
462
  /// \returns A 128-bit vector of [4 x float] containing the copied values.
461
- static __inline__ __m128 __DEFAULT_FN_ATTRS
462
- _mm_blendv_ps (__m128 __V1, __m128 __V2, __m128 __M)
463
- {
464
- return (__m128) __builtin_ia32_blendvps ((__v4sf)__V1, (__v4sf)__V2,
465
- (__v4sf)__M);
463
+ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_blendv_ps(__m128 __V1,
464
+ __m128 __V2,
465
+ __m128 __M) {
466
+ return (__m128)__builtin_ia32_blendvps((__v4sf)__V1, (__v4sf)__V2,
467
+ (__v4sf)__M);
466
468
  }
467
469
 
468
470
  /// Returns a 128-bit vector of [16 x i8] where the values are selected
@@ -485,11 +487,11 @@ _mm_blendv_ps (__m128 __V1, __m128 __V2, __m128 __M)
485
487
  /// position in the result. When a mask bit is 1, the corresponding 8-bit
486
488
  /// element in operand \a __V2 is copied to the same position in the result.
487
489
  /// \returns A 128-bit vector of [16 x i8] containing the copied values.
488
- static __inline__ __m128i __DEFAULT_FN_ATTRS
489
- _mm_blendv_epi8 (__m128i __V1, __m128i __V2, __m128i __M)
490
- {
491
- return (__m128i) __builtin_ia32_pblendvb128 ((__v16qi)__V1, (__v16qi)__V2,
492
- (__v16qi)__M);
490
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_blendv_epi8(__m128i __V1,
491
+ __m128i __V2,
492
+ __m128i __M) {
493
+ return (__m128i)__builtin_ia32_pblendvb128((__v16qi)__V1, (__v16qi)__V2,
494
+ (__v16qi)__M);
493
495
  }
494
496
 
495
497
  /// Returns a 128-bit vector of [8 x i16] where the values are selected
@@ -516,9 +518,9 @@ _mm_blendv_epi8 (__m128i __V1, __m128i __V2, __m128i __M)
516
518
  /// When a mask bit is 1, the corresponding 16-bit element in operand \a V2
517
519
  /// is copied to the same position in the result.
518
520
  /// \returns A 128-bit vector of [8 x i16] containing the copied values.
519
- #define _mm_blend_epi16(V1, V2, M) \
520
- ((__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \
521
- (__v8hi)(__m128i)(V2), (int)(M)))
521
+ #define _mm_blend_epi16(V1, V2, M) \
522
+ ((__m128i)__builtin_ia32_pblendw128((__v8hi)(__m128i)(V1), \
523
+ (__v8hi)(__m128i)(V2), (int)(M)))
522
524
 
523
525
  /* SSE4 Dword Multiply Instructions. */
524
526
  /// Multiples corresponding elements of two 128-bit vectors of [4 x i32]
@@ -534,10 +536,9 @@ _mm_blendv_epi8 (__m128i __V1, __m128i __V2, __m128i __M)
534
536
  /// \param __V2
535
537
  /// A 128-bit integer vector.
536
538
  /// \returns A 128-bit integer vector containing the products of both operands.
537
- static __inline__ __m128i __DEFAULT_FN_ATTRS
538
- _mm_mullo_epi32 (__m128i __V1, __m128i __V2)
539
- {
540
- return (__m128i) ((__v4su)__V1 * (__v4su)__V2);
539
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mullo_epi32(__m128i __V1,
540
+ __m128i __V2) {
541
+ return (__m128i)((__v4su)__V1 * (__v4su)__V2);
541
542
  }
542
543
 
543
544
  /// Multiplies corresponding even-indexed elements of two 128-bit
@@ -554,10 +555,9 @@ _mm_mullo_epi32 (__m128i __V1, __m128i __V2)
554
555
  /// A 128-bit vector of [4 x i32].
555
556
  /// \returns A 128-bit vector of [2 x i64] containing the products of both
556
557
  /// operands.
557
- static __inline__ __m128i __DEFAULT_FN_ATTRS
558
- _mm_mul_epi32 (__m128i __V1, __m128i __V2)
559
- {
560
- return (__m128i) __builtin_ia32_pmuldq128 ((__v4si)__V1, (__v4si)__V2);
558
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epi32(__m128i __V1,
559
+ __m128i __V2) {
560
+ return (__m128i)__builtin_ia32_pmuldq128((__v4si)__V1, (__v4si)__V2);
561
561
  }
562
562
 
563
563
  /* SSE4 Floating Point Dot Product Instructions. */
@@ -593,9 +593,8 @@ _mm_mul_epi32 (__m128i __V1, __m128i __V2)
593
593
  /// each [4 x float] subvector. If a bit is set, the dot product is returned
594
594
  /// in the corresponding element; otherwise that element is set to zero.
595
595
  /// \returns A 128-bit vector of [4 x float] containing the dot product.
596
- #define _mm_dp_ps(X, Y, M) \
597
- ((__m128) __builtin_ia32_dpps((__v4sf)(__m128)(X), \
598
- (__v4sf)(__m128)(Y), (M)))
596
+ #define _mm_dp_ps(X, Y, M) \
597
+ ((__m128)__builtin_ia32_dpps((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), (M)))
599
598
 
600
599
  /// Computes the dot product of the two 128-bit vectors of [2 x double]
601
600
  /// and returns it in the elements of the 128-bit result vector of
@@ -628,9 +627,9 @@ _mm_mul_epi32 (__m128i __V1, __m128i __V2)
628
627
  /// to the lowest element and bit [1] corresponding to the highest element of
629
628
  /// each [2 x double] vector. If a bit is set, the dot product is returned in
630
629
  /// the corresponding element; otherwise that element is set to zero.
631
- #define _mm_dp_pd(X, Y, M) \
632
- ((__m128d) __builtin_ia32_dppd((__v2df)(__m128d)(X), \
633
- (__v2df)(__m128d)(Y), (M)))
630
+ #define _mm_dp_pd(X, Y, M) \
631
+ ((__m128d)__builtin_ia32_dppd((__v2df)(__m128d)(X), (__v2df)(__m128d)(Y), \
632
+ (M)))
634
633
 
635
634
  /* SSE4 Streaming Load Hint Instruction. */
636
635
  /// Loads integer values from a 128-bit aligned memory location to a
@@ -645,10 +644,9 @@ _mm_mul_epi32 (__m128i __V1, __m128i __V2)
645
644
  /// values.
646
645
  /// \returns A 128-bit integer vector containing the data stored at the
647
646
  /// specified memory location.
648
- static __inline__ __m128i __DEFAULT_FN_ATTRS
649
- _mm_stream_load_si128 (__m128i const *__V)
650
- {
651
- return (__m128i) __builtin_nontemporal_load ((const __v2di *) __V);
647
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
648
+ _mm_stream_load_si128(__m128i const *__V) {
649
+ return (__m128i)__builtin_nontemporal_load((const __v2di *)__V);
652
650
  }
653
651
 
654
652
  /* SSE4 Packed Integer Min/Max Instructions. */
@@ -665,10 +663,9 @@ _mm_stream_load_si128 (__m128i const *__V)
665
663
  /// \param __V2
666
664
  /// A 128-bit vector of [16 x i8]
667
665
  /// \returns A 128-bit vector of [16 x i8] containing the lesser values.
668
- static __inline__ __m128i __DEFAULT_FN_ATTRS
669
- _mm_min_epi8 (__m128i __V1, __m128i __V2)
670
- {
671
- return (__m128i) __builtin_elementwise_min((__v16qs) __V1, (__v16qs) __V2);
666
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi8(__m128i __V1,
667
+ __m128i __V2) {
668
+ return (__m128i)__builtin_elementwise_min((__v16qs)__V1, (__v16qs)__V2);
672
669
  }
673
670
 
674
671
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -684,10 +681,9 @@ _mm_min_epi8 (__m128i __V1, __m128i __V2)
684
681
  /// \param __V2
685
682
  /// A 128-bit vector of [16 x i8].
686
683
  /// \returns A 128-bit vector of [16 x i8] containing the greater values.
687
- static __inline__ __m128i __DEFAULT_FN_ATTRS
688
- _mm_max_epi8 (__m128i __V1, __m128i __V2)
689
- {
690
- return (__m128i) __builtin_elementwise_max((__v16qs) __V1, (__v16qs) __V2);
684
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi8(__m128i __V1,
685
+ __m128i __V2) {
686
+ return (__m128i)__builtin_elementwise_max((__v16qs)__V1, (__v16qs)__V2);
691
687
  }
692
688
 
693
689
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -703,10 +699,9 @@ _mm_max_epi8 (__m128i __V1, __m128i __V2)
703
699
  /// \param __V2
704
700
  /// A 128-bit vector of [8 x u16].
705
701
  /// \returns A 128-bit vector of [8 x u16] containing the lesser values.
706
- static __inline__ __m128i __DEFAULT_FN_ATTRS
707
- _mm_min_epu16 (__m128i __V1, __m128i __V2)
708
- {
709
- return (__m128i) __builtin_elementwise_min((__v8hu) __V1, (__v8hu) __V2);
702
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu16(__m128i __V1,
703
+ __m128i __V2) {
704
+ return (__m128i)__builtin_elementwise_min((__v8hu)__V1, (__v8hu)__V2);
710
705
  }
711
706
 
712
707
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -722,10 +717,9 @@ _mm_min_epu16 (__m128i __V1, __m128i __V2)
722
717
  /// \param __V2
723
718
  /// A 128-bit vector of [8 x u16].
724
719
  /// \returns A 128-bit vector of [8 x u16] containing the greater values.
725
- static __inline__ __m128i __DEFAULT_FN_ATTRS
726
- _mm_max_epu16 (__m128i __V1, __m128i __V2)
727
- {
728
- return (__m128i) __builtin_elementwise_max((__v8hu) __V1, (__v8hu) __V2);
720
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu16(__m128i __V1,
721
+ __m128i __V2) {
722
+ return (__m128i)__builtin_elementwise_max((__v8hu)__V1, (__v8hu)__V2);
729
723
  }
730
724
 
731
725
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -741,10 +735,9 @@ _mm_max_epu16 (__m128i __V1, __m128i __V2)
741
735
  /// \param __V2
742
736
  /// A 128-bit vector of [4 x i32].
743
737
  /// \returns A 128-bit vector of [4 x i32] containing the lesser values.
744
- static __inline__ __m128i __DEFAULT_FN_ATTRS
745
- _mm_min_epi32 (__m128i __V1, __m128i __V2)
746
- {
747
- return (__m128i) __builtin_elementwise_min((__v4si) __V1, (__v4si) __V2);
738
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi32(__m128i __V1,
739
+ __m128i __V2) {
740
+ return (__m128i)__builtin_elementwise_min((__v4si)__V1, (__v4si)__V2);
748
741
  }
749
742
 
750
743
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -760,10 +753,9 @@ _mm_min_epi32 (__m128i __V1, __m128i __V2)
760
753
  /// \param __V2
761
754
  /// A 128-bit vector of [4 x i32].
762
755
  /// \returns A 128-bit vector of [4 x i32] containing the greater values.
763
- static __inline__ __m128i __DEFAULT_FN_ATTRS
764
- _mm_max_epi32 (__m128i __V1, __m128i __V2)
765
- {
766
- return (__m128i) __builtin_elementwise_max((__v4si) __V1, (__v4si) __V2);
756
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi32(__m128i __V1,
757
+ __m128i __V2) {
758
+ return (__m128i)__builtin_elementwise_max((__v4si)__V1, (__v4si)__V2);
767
759
  }
768
760
 
769
761
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -779,10 +771,9 @@ _mm_max_epi32 (__m128i __V1, __m128i __V2)
779
771
  /// \param __V2
780
772
  /// A 128-bit vector of [4 x u32].
781
773
  /// \returns A 128-bit vector of [4 x u32] containing the lesser values.
782
- static __inline__ __m128i __DEFAULT_FN_ATTRS
783
- _mm_min_epu32 (__m128i __V1, __m128i __V2)
784
- {
785
- return (__m128i) __builtin_elementwise_min((__v4su) __V1, (__v4su) __V2);
774
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu32(__m128i __V1,
775
+ __m128i __V2) {
776
+ return (__m128i)__builtin_elementwise_min((__v4su)__V1, (__v4su)__V2);
786
777
  }
787
778
 
788
779
  /// Compares the corresponding elements of two 128-bit vectors of
@@ -798,10 +789,9 @@ _mm_min_epu32 (__m128i __V1, __m128i __V2)
798
789
  /// \param __V2
799
790
  /// A 128-bit vector of [4 x u32].
800
791
  /// \returns A 128-bit vector of [4 x u32] containing the greater values.
801
- static __inline__ __m128i __DEFAULT_FN_ATTRS
802
- _mm_max_epu32 (__m128i __V1, __m128i __V2)
803
- {
804
- return (__m128i) __builtin_elementwise_max((__v4su) __V1, (__v4su) __V2);
792
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu32(__m128i __V1,
793
+ __m128i __V2) {
794
+ return (__m128i)__builtin_elementwise_max((__v4su)__V1, (__v4su)__V2);
805
795
  }
806
796
 
807
797
  /* SSE4 Insertion and Extraction from XMM Register Instructions. */
@@ -828,7 +818,7 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
828
818
  /// parameter, is copied to the result.
829
819
  /// \param N
830
820
  /// Specifies which bits from operand \a Y will be copied, which bits in the
831
- /// result they will be be copied to, and which bits in the result will be
821
+ /// result they will be copied to, and which bits in the result will be
832
822
  /// cleared. The following assignments are made: \n
833
823
  /// Bits [7:6] specify the bits to copy from operand \a Y: \n
834
824
  /// 00: Selects bits [31:0] from operand \a Y. \n
@@ -869,21 +859,24 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
869
859
  /// 10: Bits [95:64] of parameter \a X are returned. \n
870
860
  /// 11: Bits [127:96] of parameter \a X are returned.
871
861
  /// \returns A 32-bit integer containing the extracted 32 bits of float data.
872
- #define _mm_extract_ps(X, N) \
873
- __builtin_bit_cast(int, __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)))
862
+ #define _mm_extract_ps(X, N) \
863
+ __builtin_bit_cast( \
864
+ int, __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)))
874
865
 
875
866
  /* Miscellaneous insert and extract macros. */
876
867
  /* Extract a single-precision float from X at index N into D. */
877
- #define _MM_EXTRACT_FLOAT(D, X, N) \
878
- do { (D) = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); } while (0)
868
+ #define _MM_EXTRACT_FLOAT(D, X, N) \
869
+ do { \
870
+ (D) = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); \
871
+ } while (0)
879
872
 
880
873
  /* Or together 2 sets of indexes (X and Y) with the zeroing bits (Z) to create
881
874
  an index suitable for _mm_insert_ps. */
882
875
  #define _MM_MK_INSERTPS_NDX(X, Y, Z) (((X) << 6) | ((Y) << 4) | (Z))
883
876
 
884
877
  /* Extract a float from X at index N into the first index of the return. */
885
- #define _MM_PICK_OUT_PS(X, N) _mm_insert_ps (_mm_setzero_ps(), (X), \
886
- _MM_MK_INSERTPS_NDX((N), 0, 0x0e))
878
+ #define _MM_PICK_OUT_PS(X, N) \
879
+ _mm_insert_ps(_mm_setzero_ps(), (X), _MM_MK_INSERTPS_NDX((N), 0, 0x0e))
887
880
 
888
881
  /* Insert int into packed integer array at index. */
889
882
  /// Constructs a 128-bit vector of [16 x i8] by first making a copy of
@@ -926,9 +919,9 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
926
919
  /// 1110: Bits [119:112] of the result are used for insertion. \n
927
920
  /// 1111: Bits [127:120] of the result are used for insertion.
928
921
  /// \returns A 128-bit integer vector containing the constructed values.
929
- #define _mm_insert_epi8(X, I, N) \
930
- ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), \
931
- (int)(I), (int)(N)))
922
+ #define _mm_insert_epi8(X, I, N) \
923
+ ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), (int)(I), \
924
+ (int)(N)))
932
925
 
933
926
  /// Constructs a 128-bit vector of [4 x i32] by first making a copy of
934
927
  /// the 128-bit integer vector parameter, and then inserting the 32-bit
@@ -958,9 +951,9 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
958
951
  /// 10: Bits [95:64] of the result are used for insertion. \n
959
952
  /// 11: Bits [127:96] of the result are used for insertion.
960
953
  /// \returns A 128-bit integer vector containing the constructed values.
961
- #define _mm_insert_epi32(X, I, N) \
962
- ((__m128i)__builtin_ia32_vec_set_v4si((__v4si)(__m128i)(X), \
963
- (int)(I), (int)(N)))
954
+ #define _mm_insert_epi32(X, I, N) \
955
+ ((__m128i)__builtin_ia32_vec_set_v4si((__v4si)(__m128i)(X), (int)(I), \
956
+ (int)(N)))
964
957
 
965
958
  #ifdef __x86_64__
966
959
  /// Constructs a 128-bit vector of [2 x i64] by first making a copy of
@@ -989,9 +982,9 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
989
982
  /// 0: Bits [63:0] of the result are used for insertion. \n
990
983
  /// 1: Bits [127:64] of the result are used for insertion. \n
991
984
  /// \returns A 128-bit integer vector containing the constructed values.
992
- #define _mm_insert_epi64(X, I, N) \
993
- ((__m128i)__builtin_ia32_vec_set_v2di((__v2di)(__m128i)(X), \
994
- (long long)(I), (int)(N)))
985
+ #define _mm_insert_epi64(X, I, N) \
986
+ ((__m128i)__builtin_ia32_vec_set_v2di((__v2di)(__m128i)(X), (long long)(I), \
987
+ (int)(N)))
995
988
  #endif /* __x86_64__ */
996
989
 
997
990
  /* Extract int from packed integer array at index. This returns the element
@@ -1032,8 +1025,8 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
1032
1025
  /// \returns An unsigned integer, whose lower 8 bits are selected from the
1033
1026
  /// 128-bit integer vector parameter and the remaining bits are assigned
1034
1027
  /// zeros.
1035
- #define _mm_extract_epi8(X, N) \
1036
- ((int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \
1028
+ #define _mm_extract_epi8(X, N) \
1029
+ ((int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \
1037
1030
  (int)(N)))
1038
1031
 
1039
1032
  /// Extracts a 32-bit element from the 128-bit integer vector of
@@ -1058,10 +1051,9 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
1058
1051
  /// 11: Bits [127:96] of the parameter \a X are exracted.
1059
1052
  /// \returns An integer, whose lower 32 bits are selected from the 128-bit
1060
1053
  /// integer vector parameter and the remaining bits are assigned zeros.
1061
- #define _mm_extract_epi32(X, N) \
1054
+ #define _mm_extract_epi32(X, N) \
1062
1055
  ((int)__builtin_ia32_vec_ext_v4si((__v4si)(__m128i)(X), (int)(N)))
1063
1056
 
1064
- #ifdef __x86_64__
1065
1057
  /// Extracts a 64-bit element from the 128-bit integer vector of
1066
1058
  /// [2 x i64], using the immediate value parameter \a N as a selector.
1067
1059
  ///
@@ -1071,7 +1063,8 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
1071
1063
  /// long long _mm_extract_epi64(__m128i X, const int N);
1072
1064
  /// \endcode
1073
1065
  ///
1074
- /// This intrinsic corresponds to the <c> VPEXTRQ / PEXTRQ </c> instruction.
1066
+ /// This intrinsic corresponds to the <c> VPEXTRQ / PEXTRQ </c> instruction
1067
+ /// in 64-bit mode.
1075
1068
  ///
1076
1069
  /// \param X
1077
1070
  /// A 128-bit integer vector.
@@ -1081,9 +1074,8 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
1081
1074
  /// 0: Bits [63:0] are returned. \n
1082
1075
  /// 1: Bits [127:64] are returned. \n
1083
1076
  /// \returns A 64-bit integer.
1084
- #define _mm_extract_epi64(X, N) \
1077
+ #define _mm_extract_epi64(X, N) \
1085
1078
  ((long long)__builtin_ia32_vec_ext_v2di((__v2di)(__m128i)(X), (int)(N)))
1086
- #endif /* __x86_64 */
1087
1079
 
1088
1080
  /* SSE4 128-bit Packed Integer Comparisons. */
1089
1081
  /// Tests whether the specified bits in a 128-bit integer vector are all
@@ -1098,9 +1090,8 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
1098
1090
  /// \param __V
1099
1091
  /// A 128-bit integer vector selecting which bits to test in operand \a __M.
1100
1092
  /// \returns TRUE if the specified bits are all zeros; FALSE otherwise.
1101
- static __inline__ int __DEFAULT_FN_ATTRS
1102
- _mm_testz_si128(__m128i __M, __m128i __V)
1103
- {
1093
+ static __inline__ int __DEFAULT_FN_ATTRS _mm_testz_si128(__m128i __M,
1094
+ __m128i __V) {
1104
1095
  return __builtin_ia32_ptestz128((__v2di)__M, (__v2di)__V);
1105
1096
  }
1106
1097
 
@@ -1116,9 +1107,8 @@ _mm_testz_si128(__m128i __M, __m128i __V)
1116
1107
  /// \param __V
1117
1108
  /// A 128-bit integer vector selecting which bits to test in operand \a __M.
1118
1109
  /// \returns TRUE if the specified bits are all ones; FALSE otherwise.
1119
- static __inline__ int __DEFAULT_FN_ATTRS
1120
- _mm_testc_si128(__m128i __M, __m128i __V)
1121
- {
1110
+ static __inline__ int __DEFAULT_FN_ATTRS _mm_testc_si128(__m128i __M,
1111
+ __m128i __V) {
1122
1112
  return __builtin_ia32_ptestc128((__v2di)__M, (__v2di)__V);
1123
1113
  }
1124
1114
 
@@ -1135,9 +1125,8 @@ _mm_testc_si128(__m128i __M, __m128i __V)
1135
1125
  /// A 128-bit integer vector selecting which bits to test in operand \a __M.
1136
1126
  /// \returns TRUE if the specified bits are neither all zeros nor all ones;
1137
1127
  /// FALSE otherwise.
1138
- static __inline__ int __DEFAULT_FN_ATTRS
1139
- _mm_testnzc_si128(__m128i __M, __m128i __V)
1140
- {
1128
+ static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M,
1129
+ __m128i __V) {
1141
1130
  return __builtin_ia32_ptestnzc128((__v2di)__M, (__v2di)__V);
1142
1131
  }
1143
1132
 
@@ -1156,7 +1145,7 @@ _mm_testnzc_si128(__m128i __M, __m128i __V)
1156
1145
  /// A 128-bit integer vector containing the bits to be tested.
1157
1146
  /// \returns TRUE if the bits specified in the operand are all set to 1; FALSE
1158
1147
  /// otherwise.
1159
- #define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V)))
1148
+ #define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_set1_epi32(-1))
1160
1149
 
1161
1150
  /// Tests whether the specified bits in a 128-bit integer vector are
1162
1151
  /// neither all zeros nor all ones.
@@ -1193,7 +1182,7 @@ _mm_testnzc_si128(__m128i __M, __m128i __V)
1193
1182
  /// \param V
1194
1183
  /// A 128-bit integer vector selecting which bits to test in operand \a M.
1195
1184
  /// \returns TRUE if the specified bits are all zeros; FALSE otherwise.
1196
- #define _mm_test_all_zeros(M, V) _mm_testz_si128 ((M), (V))
1185
+ #define _mm_test_all_zeros(M, V) _mm_testz_si128((M), (V))
1197
1186
 
1198
1187
  /* SSE4 64-bit Packed Integer Comparisons. */
1199
1188
  /// Compares each of the corresponding 64-bit values of the 128-bit
@@ -1208,9 +1197,8 @@ _mm_testnzc_si128(__m128i __M, __m128i __V)
1208
1197
  /// \param __V2
1209
1198
  /// A 128-bit integer vector.
1210
1199
  /// \returns A 128-bit integer vector containing the comparison results.
1211
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1212
- _mm_cmpeq_epi64(__m128i __V1, __m128i __V2)
1213
- {
1200
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi64(__m128i __V1,
1201
+ __m128i __V2) {
1214
1202
  return (__m128i)((__v2di)__V1 == (__v2di)__V2);
1215
1203
  }
1216
1204
 
@@ -1225,15 +1213,16 @@ _mm_cmpeq_epi64(__m128i __V1, __m128i __V2)
1225
1213
  /// This intrinsic corresponds to the <c> VPMOVSXBW / PMOVSXBW </c> instruction.
1226
1214
  ///
1227
1215
  /// \param __V
1228
- /// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are sign-
1229
- /// extended to 16-bit values.
1216
+ /// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are
1217
+ /// sign-extended to 16-bit values.
1230
1218
  /// \returns A 128-bit vector of [8 x i16] containing the sign-extended values.
1231
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1232
- _mm_cvtepi8_epi16(__m128i __V)
1233
- {
1219
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi16(__m128i __V) {
1234
1220
  /* This function always performs a signed extension, but __v16qi is a char
1235
1221
  which may be signed or unsigned, so use __v16qs. */
1236
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi);
1222
+ return (__m128i) __builtin_convertvector(
1223
+ __builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6,
1224
+ 7),
1225
+ __v8hi);
1237
1226
  }
1238
1227
 
1239
1228
  /// Sign-extends each of the lower four 8-bit integer elements of a
@@ -1249,12 +1238,11 @@ _mm_cvtepi8_epi16(__m128i __V)
1249
1238
  /// A 128-bit vector of [16 x i8]. The lower four 8-bit elements are
1250
1239
  /// sign-extended to 32-bit values.
1251
1240
  /// \returns A 128-bit vector of [4 x i32] containing the sign-extended values.
1252
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1253
- _mm_cvtepi8_epi32(__m128i __V)
1254
- {
1241
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi32(__m128i __V) {
1255
1242
  /* This function always performs a signed extension, but __v16qi is a char
1256
1243
  which may be signed or unsigned, so use __v16qs. */
1257
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4si);
1244
+ return (__m128i) __builtin_convertvector(
1245
+ __builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4si);
1258
1246
  }
1259
1247
 
1260
1248
  /// Sign-extends each of the lower two 8-bit integer elements of a
@@ -1270,12 +1258,11 @@ _mm_cvtepi8_epi32(__m128i __V)
1270
1258
  /// A 128-bit vector of [16 x i8]. The lower two 8-bit elements are
1271
1259
  /// sign-extended to 64-bit values.
1272
1260
  /// \returns A 128-bit vector of [2 x i64] containing the sign-extended values.
1273
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1274
- _mm_cvtepi8_epi64(__m128i __V)
1275
- {
1261
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi64(__m128i __V) {
1276
1262
  /* This function always performs a signed extension, but __v16qi is a char
1277
1263
  which may be signed or unsigned, so use __v16qs. */
1278
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1), __v2di);
1264
+ return (__m128i) __builtin_convertvector(
1265
+ __builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1), __v2di);
1279
1266
  }
1280
1267
 
1281
1268
  /// Sign-extends each of the lower four 16-bit integer elements of a
@@ -1291,10 +1278,9 @@ _mm_cvtepi8_epi64(__m128i __V)
1291
1278
  /// A 128-bit vector of [8 x i16]. The lower four 16-bit elements are
1292
1279
  /// sign-extended to 32-bit values.
1293
1280
  /// \returns A 128-bit vector of [4 x i32] containing the sign-extended values.
1294
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1295
- _mm_cvtepi16_epi32(__m128i __V)
1296
- {
1297
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4si);
1281
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi16_epi32(__m128i __V) {
1282
+ return (__m128i) __builtin_convertvector(
1283
+ __builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4si);
1298
1284
  }
1299
1285
 
1300
1286
  /// Sign-extends each of the lower two 16-bit integer elements of a
@@ -1310,10 +1296,9 @@ _mm_cvtepi16_epi32(__m128i __V)
1310
1296
  /// A 128-bit vector of [8 x i16]. The lower two 16-bit elements are
1311
1297
  /// sign-extended to 64-bit values.
1312
1298
  /// \returns A 128-bit vector of [2 x i64] containing the sign-extended values.
1313
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1314
- _mm_cvtepi16_epi64(__m128i __V)
1315
- {
1316
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1), __v2di);
1299
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi16_epi64(__m128i __V) {
1300
+ return (__m128i) __builtin_convertvector(
1301
+ __builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1), __v2di);
1317
1302
  }
1318
1303
 
1319
1304
  /// Sign-extends each of the lower two 32-bit integer elements of a
@@ -1329,10 +1314,9 @@ _mm_cvtepi16_epi64(__m128i __V)
1329
1314
  /// A 128-bit vector of [4 x i32]. The lower two 32-bit elements are
1330
1315
  /// sign-extended to 64-bit values.
1331
1316
  /// \returns A 128-bit vector of [2 x i64] containing the sign-extended values.
1332
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1333
- _mm_cvtepi32_epi64(__m128i __V)
1334
- {
1335
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4si)__V, (__v4si)__V, 0, 1), __v2di);
1317
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi32_epi64(__m128i __V) {
1318
+ return (__m128i) __builtin_convertvector(
1319
+ __builtin_shufflevector((__v4si)__V, (__v4si)__V, 0, 1), __v2di);
1336
1320
  }
1337
1321
 
1338
1322
  /* SSE4 Packed Integer Zero-Extension. */
@@ -1349,10 +1333,11 @@ _mm_cvtepi32_epi64(__m128i __V)
1349
1333
  /// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are
1350
1334
  /// zero-extended to 16-bit values.
1351
1335
  /// \returns A 128-bit vector of [8 x i16] containing the zero-extended values.
1352
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1353
- _mm_cvtepu8_epi16(__m128i __V)
1354
- {
1355
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi);
1336
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi16(__m128i __V) {
1337
+ return (__m128i) __builtin_convertvector(
1338
+ __builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6,
1339
+ 7),
1340
+ __v8hi);
1356
1341
  }
1357
1342
 
1358
1343
  /// Zero-extends each of the lower four 8-bit integer elements of a
@@ -1368,10 +1353,9 @@ _mm_cvtepu8_epi16(__m128i __V)
1368
1353
  /// A 128-bit vector of [16 x i8]. The lower four 8-bit elements are
1369
1354
  /// zero-extended to 32-bit values.
1370
1355
  /// \returns A 128-bit vector of [4 x i32] containing the zero-extended values.
1371
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1372
- _mm_cvtepu8_epi32(__m128i __V)
1373
- {
1374
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si);
1356
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi32(__m128i __V) {
1357
+ return (__m128i) __builtin_convertvector(
1358
+ __builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si);
1375
1359
  }
1376
1360
 
1377
1361
  /// Zero-extends each of the lower two 8-bit integer elements of a
@@ -1387,10 +1371,9 @@ _mm_cvtepu8_epi32(__m128i __V)
1387
1371
  /// A 128-bit vector of [16 x i8]. The lower two 8-bit elements are
1388
1372
  /// zero-extended to 64-bit values.
1389
1373
  /// \returns A 128-bit vector of [2 x i64] containing the zero-extended values.
1390
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1391
- _mm_cvtepu8_epi64(__m128i __V)
1392
- {
1393
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di);
1374
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi64(__m128i __V) {
1375
+ return (__m128i) __builtin_convertvector(
1376
+ __builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di);
1394
1377
  }
1395
1378
 
1396
1379
  /// Zero-extends each of the lower four 16-bit integer elements of a
@@ -1406,10 +1389,9 @@ _mm_cvtepu8_epi64(__m128i __V)
1406
1389
  /// A 128-bit vector of [8 x i16]. The lower four 16-bit elements are
1407
1390
  /// zero-extended to 32-bit values.
1408
1391
  /// \returns A 128-bit vector of [4 x i32] containing the zero-extended values.
1409
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1410
- _mm_cvtepu16_epi32(__m128i __V)
1411
- {
1412
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si);
1392
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu16_epi32(__m128i __V) {
1393
+ return (__m128i) __builtin_convertvector(
1394
+ __builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si);
1413
1395
  }
1414
1396
 
1415
1397
  /// Zero-extends each of the lower two 16-bit integer elements of a
@@ -1425,10 +1407,9 @@ _mm_cvtepu16_epi32(__m128i __V)
1425
1407
  /// A 128-bit vector of [8 x i16]. The lower two 16-bit elements are
1426
1408
  /// zero-extended to 64-bit values.
1427
1409
  /// \returns A 128-bit vector of [2 x i64] containing the zero-extended values.
1428
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1429
- _mm_cvtepu16_epi64(__m128i __V)
1430
- {
1431
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di);
1410
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu16_epi64(__m128i __V) {
1411
+ return (__m128i) __builtin_convertvector(
1412
+ __builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di);
1432
1413
  }
1433
1414
 
1434
1415
  /// Zero-extends each of the lower two 32-bit integer elements of a
@@ -1444,10 +1425,9 @@ _mm_cvtepu16_epi64(__m128i __V)
1444
1425
  /// A 128-bit vector of [4 x i32]. The lower two 32-bit elements are
1445
1426
  /// zero-extended to 64-bit values.
1446
1427
  /// \returns A 128-bit vector of [2 x i64] containing the zero-extended values.
1447
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1448
- _mm_cvtepu32_epi64(__m128i __V)
1449
- {
1450
- return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4su)__V, (__v4su)__V, 0, 1), __v2di);
1428
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu32_epi64(__m128i __V) {
1429
+ return (__m128i) __builtin_convertvector(
1430
+ __builtin_shufflevector((__v4su)__V, (__v4su)__V, 0, 1), __v2di);
1451
1431
  }
1452
1432
 
1453
1433
  /* SSE4 Pack with Unsigned Saturation. */
@@ -1473,10 +1453,9 @@ _mm_cvtepu32_epi64(__m128i __V)
1473
1453
  /// less than 0x0000 are saturated to 0x0000. The converted [4 x i16] values
1474
1454
  /// are written to the higher 64 bits of the result.
1475
1455
  /// \returns A 128-bit vector of [8 x i16] containing the converted values.
1476
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1477
- _mm_packus_epi32(__m128i __V1, __m128i __V2)
1478
- {
1479
- return (__m128i) __builtin_ia32_packusdw128((__v4si)__V1, (__v4si)__V2);
1456
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi32(__m128i __V1,
1457
+ __m128i __V2) {
1458
+ return (__m128i)__builtin_ia32_packusdw128((__v4si)__V1, (__v4si)__V2);
1480
1459
  }
1481
1460
 
1482
1461
  /* SSE4 Multiple Packed Sums of Absolute Difference. */
@@ -1515,9 +1494,9 @@ _mm_packus_epi32(__m128i __V1, __m128i __V2)
1515
1494
  /// \endcode
1516
1495
  /// \returns A 128-bit integer vector containing the sums of the sets of
1517
1496
  /// absolute differences between both operands.
1518
- #define _mm_mpsadbw_epu8(X, Y, M) \
1519
- ((__m128i) __builtin_ia32_mpsadbw128((__v16qi)(__m128i)(X), \
1520
- (__v16qi)(__m128i)(Y), (M)))
1497
+ #define _mm_mpsadbw_epu8(X, Y, M) \
1498
+ ((__m128i)__builtin_ia32_mpsadbw128((__v16qi)(__m128i)(X), \
1499
+ (__v16qi)(__m128i)(Y), (M)))
1521
1500
 
1522
1501
  /// Finds the minimum unsigned 16-bit element in the input 128-bit
1523
1502
  /// vector of [8 x u16] and returns it and along with its index.
@@ -1532,10 +1511,8 @@ _mm_packus_epi32(__m128i __V1, __m128i __V2)
1532
1511
  /// \returns A 128-bit value where bits [15:0] contain the minimum value found
1533
1512
  /// in parameter \a __V, bits [18:16] contain the index of the minimum value
1534
1513
  /// and the remaining bits are set to 0.
1535
- static __inline__ __m128i __DEFAULT_FN_ATTRS
1536
- _mm_minpos_epu16(__m128i __V)
1537
- {
1538
- return (__m128i) __builtin_ia32_phminposuw128((__v8hi)__V);
1514
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_minpos_epu16(__m128i __V) {
1515
+ return (__m128i)__builtin_ia32_phminposuw128((__v8hi)__V);
1539
1516
  }
1540
1517
 
1541
1518
  /* Handle the sse4.2 definitions here. */
@@ -1544,33 +1521,34 @@ _mm_minpos_epu16(__m128i __V)
1544
1521
  so we'll do the same. */
1545
1522
 
1546
1523
  #undef __DEFAULT_FN_ATTRS
1547
- #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4.2")))
1524
+ #define __DEFAULT_FN_ATTRS \
1525
+ __attribute__((__always_inline__, __nodebug__, __target__("sse4.2")))
1548
1526
 
1549
1527
  /* These specify the type of data that we're comparing. */
1550
- #define _SIDD_UBYTE_OPS 0x00
1551
- #define _SIDD_UWORD_OPS 0x01
1552
- #define _SIDD_SBYTE_OPS 0x02
1553
- #define _SIDD_SWORD_OPS 0x03
1528
+ #define _SIDD_UBYTE_OPS 0x00
1529
+ #define _SIDD_UWORD_OPS 0x01
1530
+ #define _SIDD_SBYTE_OPS 0x02
1531
+ #define _SIDD_SWORD_OPS 0x03
1554
1532
 
1555
1533
  /* These specify the type of comparison operation. */
1556
- #define _SIDD_CMP_EQUAL_ANY 0x00
1557
- #define _SIDD_CMP_RANGES 0x04
1558
- #define _SIDD_CMP_EQUAL_EACH 0x08
1559
- #define _SIDD_CMP_EQUAL_ORDERED 0x0c
1534
+ #define _SIDD_CMP_EQUAL_ANY 0x00
1535
+ #define _SIDD_CMP_RANGES 0x04
1536
+ #define _SIDD_CMP_EQUAL_EACH 0x08
1537
+ #define _SIDD_CMP_EQUAL_ORDERED 0x0c
1560
1538
 
1561
1539
  /* These macros specify the polarity of the operation. */
1562
- #define _SIDD_POSITIVE_POLARITY 0x00
1563
- #define _SIDD_NEGATIVE_POLARITY 0x10
1564
- #define _SIDD_MASKED_POSITIVE_POLARITY 0x20
1565
- #define _SIDD_MASKED_NEGATIVE_POLARITY 0x30
1540
+ #define _SIDD_POSITIVE_POLARITY 0x00
1541
+ #define _SIDD_NEGATIVE_POLARITY 0x10
1542
+ #define _SIDD_MASKED_POSITIVE_POLARITY 0x20
1543
+ #define _SIDD_MASKED_NEGATIVE_POLARITY 0x30
1566
1544
 
1567
1545
  /* These macros are used in _mm_cmpXstri() to specify the return. */
1568
- #define _SIDD_LEAST_SIGNIFICANT 0x00
1569
- #define _SIDD_MOST_SIGNIFICANT 0x40
1546
+ #define _SIDD_LEAST_SIGNIFICANT 0x00
1547
+ #define _SIDD_MOST_SIGNIFICANT 0x40
1570
1548
 
1571
1549
  /* These macros are used in _mm_cmpXstri() to specify the return. */
1572
- #define _SIDD_BIT_MASK 0x00
1573
- #define _SIDD_UNIT_MASK 0x40
1550
+ #define _SIDD_BIT_MASK 0x00
1551
+ #define _SIDD_UNIT_MASK 0x40
1574
1552
 
1575
1553
  /* SSE4.2 Packed Comparison Intrinsics. */
1576
1554
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -1625,8 +1603,8 @@ _mm_minpos_epu16(__m128i __V)
1625
1603
  /// repeating each bit 8 or 16 times).
1626
1604
  /// \returns Returns a 128-bit integer vector representing the result mask of
1627
1605
  /// the comparison.
1628
- #define _mm_cmpistrm(A, B, M) \
1629
- ((__m128i)__builtin_ia32_pcmpistrm128((__v16qi)(__m128i)(A), \
1606
+ #define _mm_cmpistrm(A, B, M) \
1607
+ ((__m128i)__builtin_ia32_pcmpistrm128((__v16qi)(__m128i)(A), \
1630
1608
  (__v16qi)(__m128i)(B), (int)(M)))
1631
1609
 
1632
1610
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -1679,9 +1657,9 @@ _mm_minpos_epu16(__m128i __V)
1679
1657
  /// 0: The index of the least significant set bit. \n
1680
1658
  /// 1: The index of the most significant set bit. \n
1681
1659
  /// \returns Returns an integer representing the result index of the comparison.
1682
- #define _mm_cmpistri(A, B, M) \
1683
- ((int)__builtin_ia32_pcmpistri128((__v16qi)(__m128i)(A), \
1684
- (__v16qi)(__m128i)(B), (int)(M)))
1660
+ #define _mm_cmpistri(A, B, M) \
1661
+ ((int)__builtin_ia32_pcmpistri128((__v16qi)(__m128i)(A), \
1662
+ (__v16qi)(__m128i)(B), (int)(M)))
1685
1663
 
1686
1664
  /// Uses the immediate operand \a M to perform a comparison of string
1687
1665
  /// data with explicitly defined lengths that is contained in source operands
@@ -1739,9 +1717,9 @@ _mm_minpos_epu16(__m128i __V)
1739
1717
  /// repeating each bit 8 or 16 times). \n
1740
1718
  /// \returns Returns a 128-bit integer vector representing the result mask of
1741
1719
  /// the comparison.
1742
- #define _mm_cmpestrm(A, LA, B, LB, M) \
1743
- ((__m128i)__builtin_ia32_pcmpestrm128((__v16qi)(__m128i)(A), (int)(LA), \
1744
- (__v16qi)(__m128i)(B), (int)(LB), \
1720
+ #define _mm_cmpestrm(A, LA, B, LB, M) \
1721
+ ((__m128i)__builtin_ia32_pcmpestrm128((__v16qi)(__m128i)(A), (int)(LA), \
1722
+ (__v16qi)(__m128i)(B), (int)(LB), \
1745
1723
  (int)(M)))
1746
1724
 
1747
1725
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -1798,9 +1776,9 @@ _mm_minpos_epu16(__m128i __V)
1798
1776
  /// 0: The index of the least significant set bit. \n
1799
1777
  /// 1: The index of the most significant set bit. \n
1800
1778
  /// \returns Returns an integer representing the result index of the comparison.
1801
- #define _mm_cmpestri(A, LA, B, LB, M) \
1802
- ((int)__builtin_ia32_pcmpestri128((__v16qi)(__m128i)(A), (int)(LA), \
1803
- (__v16qi)(__m128i)(B), (int)(LB), \
1779
+ #define _mm_cmpestri(A, LA, B, LB, M) \
1780
+ ((int)__builtin_ia32_pcmpestri128((__v16qi)(__m128i)(A), (int)(LA), \
1781
+ (__v16qi)(__m128i)(B), (int)(LB), \
1804
1782
  (int)(M)))
1805
1783
 
1806
1784
  /* SSE4.2 Packed Comparison Intrinsics and EFlag Reading. */
@@ -1850,8 +1828,8 @@ _mm_minpos_epu16(__m128i __V)
1850
1828
  /// to the size of \a A or \a B. \n
1851
1829
  /// \returns Returns 1 if the bit mask is zero and the length of the string in
1852
1830
  /// \a B is the maximum; otherwise, returns 0.
1853
- #define _mm_cmpistra(A, B, M) \
1854
- ((int)__builtin_ia32_pcmpistria128((__v16qi)(__m128i)(A), \
1831
+ #define _mm_cmpistra(A, B, M) \
1832
+ ((int)__builtin_ia32_pcmpistria128((__v16qi)(__m128i)(A), \
1855
1833
  (__v16qi)(__m128i)(B), (int)(M)))
1856
1834
 
1857
1835
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -1899,8 +1877,8 @@ _mm_minpos_epu16(__m128i __V)
1899
1877
  /// 11: Negate the bit mask only for bits with an index less than or equal
1900
1878
  /// to the size of \a A or \a B.
1901
1879
  /// \returns Returns 1 if the bit mask is non-zero, otherwise, returns 0.
1902
- #define _mm_cmpistrc(A, B, M) \
1903
- ((int)__builtin_ia32_pcmpistric128((__v16qi)(__m128i)(A), \
1880
+ #define _mm_cmpistrc(A, B, M) \
1881
+ ((int)__builtin_ia32_pcmpistric128((__v16qi)(__m128i)(A), \
1904
1882
  (__v16qi)(__m128i)(B), (int)(M)))
1905
1883
 
1906
1884
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -1947,8 +1925,8 @@ _mm_minpos_epu16(__m128i __V)
1947
1925
  /// 11: Negate the bit mask only for bits with an index less than or equal
1948
1926
  /// to the size of \a A or \a B. \n
1949
1927
  /// \returns Returns bit 0 of the resulting bit mask.
1950
- #define _mm_cmpistro(A, B, M) \
1951
- ((int)__builtin_ia32_pcmpistrio128((__v16qi)(__m128i)(A), \
1928
+ #define _mm_cmpistro(A, B, M) \
1929
+ ((int)__builtin_ia32_pcmpistrio128((__v16qi)(__m128i)(A), \
1952
1930
  (__v16qi)(__m128i)(B), (int)(M)))
1953
1931
 
1954
1932
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -1997,8 +1975,8 @@ _mm_minpos_epu16(__m128i __V)
1997
1975
  /// to the size of \a A or \a B. \n
1998
1976
  /// \returns Returns 1 if the length of the string in \a A is less than the
1999
1977
  /// maximum, otherwise, returns 0.
2000
- #define _mm_cmpistrs(A, B, M) \
2001
- ((int)__builtin_ia32_pcmpistris128((__v16qi)(__m128i)(A), \
1978
+ #define _mm_cmpistrs(A, B, M) \
1979
+ ((int)__builtin_ia32_pcmpistris128((__v16qi)(__m128i)(A), \
2002
1980
  (__v16qi)(__m128i)(B), (int)(M)))
2003
1981
 
2004
1982
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -2047,8 +2025,8 @@ _mm_minpos_epu16(__m128i __V)
2047
2025
  /// to the size of \a A or \a B.
2048
2026
  /// \returns Returns 1 if the length of the string in \a B is less than the
2049
2027
  /// maximum, otherwise, returns 0.
2050
- #define _mm_cmpistrz(A, B, M) \
2051
- ((int)__builtin_ia32_pcmpistriz128((__v16qi)(__m128i)(A), \
2028
+ #define _mm_cmpistrz(A, B, M) \
2029
+ ((int)__builtin_ia32_pcmpistriz128((__v16qi)(__m128i)(A), \
2052
2030
  (__v16qi)(__m128i)(B), (int)(M)))
2053
2031
 
2054
2032
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -2101,9 +2079,9 @@ _mm_minpos_epu16(__m128i __V)
2101
2079
  /// to the size of \a A or \a B.
2102
2080
  /// \returns Returns 1 if the bit mask is zero and the length of the string in
2103
2081
  /// \a B is the maximum, otherwise, returns 0.
2104
- #define _mm_cmpestra(A, LA, B, LB, M) \
2105
- ((int)__builtin_ia32_pcmpestria128((__v16qi)(__m128i)(A), (int)(LA), \
2106
- (__v16qi)(__m128i)(B), (int)(LB), \
2082
+ #define _mm_cmpestra(A, LA, B, LB, M) \
2083
+ ((int)__builtin_ia32_pcmpestria128((__v16qi)(__m128i)(A), (int)(LA), \
2084
+ (__v16qi)(__m128i)(B), (int)(LB), \
2107
2085
  (int)(M)))
2108
2086
 
2109
2087
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -2155,9 +2133,9 @@ _mm_minpos_epu16(__m128i __V)
2155
2133
  /// 11: Negate the bit mask only for bits with an index less than or equal
2156
2134
  /// to the size of \a A or \a B. \n
2157
2135
  /// \returns Returns 1 if the resulting mask is non-zero, otherwise, returns 0.
2158
- #define _mm_cmpestrc(A, LA, B, LB, M) \
2159
- ((int)__builtin_ia32_pcmpestric128((__v16qi)(__m128i)(A), (int)(LA), \
2160
- (__v16qi)(__m128i)(B), (int)(LB), \
2136
+ #define _mm_cmpestrc(A, LA, B, LB, M) \
2137
+ ((int)__builtin_ia32_pcmpestric128((__v16qi)(__m128i)(A), (int)(LA), \
2138
+ (__v16qi)(__m128i)(B), (int)(LB), \
2161
2139
  (int)(M)))
2162
2140
 
2163
2141
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -2208,9 +2186,9 @@ _mm_minpos_epu16(__m128i __V)
2208
2186
  /// 11: Negate the bit mask only for bits with an index less than or equal
2209
2187
  /// to the size of \a A or \a B.
2210
2188
  /// \returns Returns bit 0 of the resulting bit mask.
2211
- #define _mm_cmpestro(A, LA, B, LB, M) \
2212
- ((int)__builtin_ia32_pcmpestrio128((__v16qi)(__m128i)(A), (int)(LA), \
2213
- (__v16qi)(__m128i)(B), (int)(LB), \
2189
+ #define _mm_cmpestro(A, LA, B, LB, M) \
2190
+ ((int)__builtin_ia32_pcmpestrio128((__v16qi)(__m128i)(A), (int)(LA), \
2191
+ (__v16qi)(__m128i)(B), (int)(LB), \
2214
2192
  (int)(M)))
2215
2193
 
2216
2194
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -2263,9 +2241,9 @@ _mm_minpos_epu16(__m128i __V)
2263
2241
  /// to the size of \a A or \a B. \n
2264
2242
  /// \returns Returns 1 if the length of the string in \a A is less than the
2265
2243
  /// maximum, otherwise, returns 0.
2266
- #define _mm_cmpestrs(A, LA, B, LB, M) \
2267
- ((int)__builtin_ia32_pcmpestris128((__v16qi)(__m128i)(A), (int)(LA), \
2268
- (__v16qi)(__m128i)(B), (int)(LB), \
2244
+ #define _mm_cmpestrs(A, LA, B, LB, M) \
2245
+ ((int)__builtin_ia32_pcmpestris128((__v16qi)(__m128i)(A), (int)(LA), \
2246
+ (__v16qi)(__m128i)(B), (int)(LB), \
2269
2247
  (int)(M)))
2270
2248
 
2271
2249
  /// Uses the immediate operand \a M to perform a comparison of string
@@ -2317,9 +2295,9 @@ _mm_minpos_epu16(__m128i __V)
2317
2295
  /// to the size of \a A or \a B.
2318
2296
  /// \returns Returns 1 if the length of the string in \a B is less than the
2319
2297
  /// maximum, otherwise, returns 0.
2320
- #define _mm_cmpestrz(A, LA, B, LB, M) \
2321
- ((int)__builtin_ia32_pcmpestriz128((__v16qi)(__m128i)(A), (int)(LA), \
2322
- (__v16qi)(__m128i)(B), (int)(LB), \
2298
+ #define _mm_cmpestrz(A, LA, B, LB, M) \
2299
+ ((int)__builtin_ia32_pcmpestriz128((__v16qi)(__m128i)(A), (int)(LA), \
2300
+ (__v16qi)(__m128i)(B), (int)(LB), \
2323
2301
  (int)(M)))
2324
2302
 
2325
2303
  /* SSE4.2 Compare Packed Data -- Greater Than. */
@@ -2336,9 +2314,8 @@ _mm_minpos_epu16(__m128i __V)
2336
2314
  /// \param __V2
2337
2315
  /// A 128-bit integer vector.
2338
2316
  /// \returns A 128-bit integer vector containing the comparison results.
2339
- static __inline__ __m128i __DEFAULT_FN_ATTRS
2340
- _mm_cmpgt_epi64(__m128i __V1, __m128i __V2)
2341
- {
2317
+ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi64(__m128i __V1,
2318
+ __m128i __V2) {
2342
2319
  return (__m128i)((__v2di)__V1 > (__v2di)__V2);
2343
2320
  }
2344
2321