@cpp-linter/clang-tidy-linux-arm64 18.1.5 → 20.1.0

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 (282) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{18 → 20}/include/__clang_cuda_device_functions.h +14 -0
  4. package/lib/clang/{18 → 20}/include/__clang_cuda_intrinsics.h +1 -3
  5. package/lib/clang/{18 → 20}/include/__clang_cuda_math.h +5 -0
  6. package/lib/clang/{18 → 20}/include/__clang_hip_cmath.h +6 -1
  7. package/lib/clang/{18 → 20}/include/__clang_hip_math.h +5 -0
  8. package/lib/clang/20/include/__stdarg_header_macro.h +12 -0
  9. package/lib/clang/20/include/__stddef_header_macro.h +12 -0
  10. package/lib/clang/{18 → 20}/include/adcintrin.h +5 -0
  11. package/lib/clang/{18 → 20}/include/adxintrin.h +5 -0
  12. package/lib/clang/{18 → 20}/include/altivec.h +8 -8
  13. package/lib/clang/20/include/amdgpuintrin.h +194 -0
  14. package/lib/clang/20/include/amxavx512intrin.h +382 -0
  15. package/lib/clang/20/include/amxbf16transposeintrin.h +94 -0
  16. package/lib/clang/20/include/amxcomplextransposeintrin.h +303 -0
  17. package/lib/clang/{18 → 20}/include/amxfp16intrin.h +35 -0
  18. package/lib/clang/20/include/amxfp16transposeintrin.h +94 -0
  19. package/lib/clang/20/include/amxfp8intrin.h +230 -0
  20. package/lib/clang/{18 → 20}/include/amxintrin.h +5 -35
  21. package/lib/clang/20/include/amxmovrsintrin.h +48 -0
  22. package/lib/clang/20/include/amxmovrstransposeintrin.h +200 -0
  23. package/lib/clang/20/include/amxtf32intrin.h +108 -0
  24. package/lib/clang/20/include/amxtf32transposeintrin.h +105 -0
  25. package/lib/clang/20/include/amxtransposeintrin.h +248 -0
  26. package/lib/clang/{18 → 20}/include/arm_acle.h +49 -26
  27. package/lib/clang/{18 → 20}/include/arm_fp16.h +1 -1
  28. package/lib/clang/{18 → 20}/include/arm_neon.h +45631 -43745
  29. package/lib/clang/{18 → 20}/include/arm_sme.h +641 -6
  30. package/lib/clang/{18 → 20}/include/arm_sve.h +28311 -27738
  31. package/lib/clang/{18 → 20}/include/arm_vector_types.h +92 -5
  32. package/lib/clang/20/include/avx10_2_512bf16intrin.h +561 -0
  33. package/lib/clang/20/include/avx10_2_512convertintrin.h +320 -0
  34. package/lib/clang/20/include/avx10_2_512minmaxintrin.h +127 -0
  35. package/lib/clang/20/include/avx10_2_512niintrin.h +314 -0
  36. package/lib/clang/20/include/avx10_2_512satcvtdsintrin.h +303 -0
  37. package/lib/clang/20/include/avx10_2_512satcvtintrin.h +301 -0
  38. package/lib/clang/20/include/avx10_2bf16intrin.h +1085 -0
  39. package/lib/clang/20/include/avx10_2convertintrin.h +589 -0
  40. package/lib/clang/20/include/avx10_2copyintrin.h +66 -0
  41. package/lib/clang/20/include/avx10_2minmaxintrin.h +277 -0
  42. package/lib/clang/20/include/avx10_2niintrin.h +2075 -0
  43. package/lib/clang/20/include/avx10_2satcvtdsintrin.h +496 -0
  44. package/lib/clang/20/include/avx10_2satcvtintrin.h +444 -0
  45. package/lib/clang/{18 → 20}/include/avx2intrin.h +9 -0
  46. package/lib/clang/{18 → 20}/include/avx512bitalgintrin.h +2 -2
  47. package/lib/clang/{18 → 20}/include/avx512fintrin.h +22 -14
  48. package/lib/clang/{18 → 20}/include/avx512fp16intrin.h +38 -38
  49. package/lib/clang/{18 → 20}/include/avx512vlbitalgintrin.h +4 -4
  50. package/lib/clang/{18 → 20}/include/avx512vpopcntdqintrin.h +12 -4
  51. package/lib/clang/{18 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
  52. package/lib/clang/{18 → 20}/include/avxintrin.h +88 -60
  53. package/lib/clang/{18 → 20}/include/avxvnniint16intrin.h +36 -77
  54. package/lib/clang/{18 → 20}/include/avxvnniint8intrin.h +36 -77
  55. package/lib/clang/{18 → 20}/include/bmi2intrin.h +15 -17
  56. package/lib/clang/{18 → 20}/include/bmiintrin.h +33 -41
  57. package/lib/clang/{18 → 20}/include/builtins.h +3 -0
  58. package/lib/clang/{18 → 20}/include/cmpccxaddintrin.h +1 -1
  59. package/lib/clang/{18 → 20}/include/cpuid.h +35 -14
  60. package/lib/clang/{18 → 20}/include/cuda_wrappers/algorithm +1 -1
  61. package/lib/clang/{18 → 20}/include/cuda_wrappers/cmath +4 -0
  62. package/lib/clang/{18 → 20}/include/cuda_wrappers/new +2 -0
  63. package/lib/clang/{18 → 20}/include/emmintrin.h +442 -277
  64. package/lib/clang/{18 → 20}/include/float.h +28 -0
  65. package/lib/clang/{18 → 20}/include/fmaintrin.h +32 -16
  66. package/lib/clang/{18 → 20}/include/gfniintrin.h +32 -10
  67. package/lib/clang/20/include/gpuintrin.h +224 -0
  68. package/lib/clang/{18 → 20}/include/hexagon_types.h +8 -4
  69. package/lib/clang/{18 → 20}/include/hlsl/hlsl_basic_types.h +57 -4
  70. package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
  71. package/lib/clang/20/include/hlsl/hlsl_intrinsics.h +2814 -0
  72. package/lib/clang/{18 → 20}/include/hlsl.h +11 -0
  73. package/lib/clang/{18 → 20}/include/hvx_hexagon_protos.h +427 -0
  74. package/lib/clang/{18 → 20}/include/ia32intrin.h +36 -36
  75. package/lib/clang/{18 → 20}/include/immintrin.h +171 -161
  76. package/lib/clang/{18 → 20}/include/intrin.h +62 -228
  77. package/lib/clang/20/include/intrin0.h +256 -0
  78. package/lib/clang/{18 → 20}/include/inttypes.h +4 -0
  79. package/lib/clang/{18 → 20}/include/iso646.h +4 -0
  80. package/lib/clang/{18 → 20}/include/keylockerintrin.h +5 -8
  81. package/lib/clang/{18 → 20}/include/larchintrin.h +22 -8
  82. package/lib/clang/{18 → 20}/include/lasxintrin.h +27 -25
  83. package/lib/clang/{18 → 20}/include/limits.h +12 -4
  84. package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/assert.h +1 -1
  85. package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
  86. package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdlib.h +8 -0
  87. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  88. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  89. package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  90. package/lib/clang/{18 → 20}/include/lsxintrin.h +27 -25
  91. package/lib/clang/{18 → 20}/include/lzcntintrin.h +10 -7
  92. package/lib/clang/20/include/mm3dnow.h +22 -0
  93. package/lib/clang/{18 → 20}/include/mmintrin.h +285 -239
  94. package/lib/clang/{18 → 20}/include/module.modulemap +16 -5
  95. package/lib/clang/20/include/movrs_avx10_2_512intrin.h +98 -0
  96. package/lib/clang/20/include/movrs_avx10_2intrin.h +174 -0
  97. package/lib/clang/20/include/movrsintrin.h +59 -0
  98. package/lib/clang/20/include/nvptxintrin.h +202 -0
  99. package/lib/clang/{18 → 20}/include/opencl-c-base.h +8 -0
  100. package/lib/clang/{18 → 20}/include/opencl-c.h +15 -0
  101. package/lib/clang/{18 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
  102. package/lib/clang/{18 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
  103. package/lib/clang/{18 → 20}/include/pmmintrin.h +16 -3
  104. package/lib/clang/{18 → 20}/include/popcntintrin.h +7 -7
  105. package/lib/clang/{18 → 20}/include/prfchwintrin.h +10 -8
  106. package/lib/clang/20/include/ptrauth.h +336 -0
  107. package/lib/clang/20/include/riscv_corev_alu.h +128 -0
  108. package/lib/clang/{18 → 20}/include/riscv_vector.h +0 -5
  109. package/lib/clang/20/include/sifive_vector.h +118 -0
  110. package/lib/clang/20/include/sm4evexintrin.h +32 -0
  111. package/lib/clang/{18 → 20}/include/smmintrin.h +18 -12
  112. package/lib/clang/{18 → 20}/include/stdarg.h +15 -19
  113. package/lib/clang/{18 → 20}/include/stdatomic.h +11 -1
  114. package/lib/clang/{18 → 20}/include/stdbool.h +5 -0
  115. package/lib/clang/{18 → 20}/include/stddef.h +38 -22
  116. package/lib/clang/{18 → 20}/include/stdint.h +5 -0
  117. package/lib/clang/{18 → 20}/include/stdnoreturn.h +6 -0
  118. package/lib/clang/{18 → 20}/include/tbmintrin.h +25 -37
  119. package/lib/clang/{18 → 20}/include/tmmintrin.h +84 -54
  120. package/lib/clang/{18 → 20}/include/varargs.h +5 -1
  121. package/lib/clang/{18 → 20}/include/vecintrin.h +1778 -60
  122. package/lib/clang/{18 → 20}/include/wasm_simd128.h +167 -21
  123. package/lib/clang/{18 → 20}/include/x86gprintrin.h +7 -14
  124. package/lib/clang/20/include/x86intrin.h +53 -0
  125. package/lib/clang/{18 → 20}/include/xmmintrin.h +455 -276
  126. package/lib/clang/20/include/yvals_core.h +25 -0
  127. package/lib/clang/20/include/zos_wrappers/builtins.h +18 -0
  128. package/package.json +6 -6
  129. package/lib/clang/18/include/avx512erintrin.h +0 -271
  130. package/lib/clang/18/include/avx512pfintrin.h +0 -92
  131. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +0 -624
  132. package/lib/clang/18/include/mm3dnow.h +0 -157
  133. package/lib/clang/18/include/sifive_vector.h +0 -16
  134. package/lib/clang/18/include/x86intrin.h +0 -67
  135. /package/lib/clang/{18 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
  136. /package/lib/clang/{18 → 20}/include/__clang_cuda_cmath.h +0 -0
  137. /package/lib/clang/{18 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
  138. /package/lib/clang/{18 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
  139. /package/lib/clang/{18 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
  140. /package/lib/clang/{18 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
  141. /package/lib/clang/{18 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
  142. /package/lib/clang/{18 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
  143. /package/lib/clang/{18 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
  144. /package/lib/clang/{18 → 20}/include/__clang_hip_stdlib.h +0 -0
  145. /package/lib/clang/{18 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
  146. /package/lib/clang/{18 → 20}/include/__stdarg___va_copy.h +0 -0
  147. /package/lib/clang/{18 → 20}/include/__stdarg_va_arg.h +0 -0
  148. /package/lib/clang/{18 → 20}/include/__stdarg_va_copy.h +0 -0
  149. /package/lib/clang/{18 → 20}/include/__stdarg_va_list.h +0 -0
  150. /package/lib/clang/{18 → 20}/include/__stddef_max_align_t.h +0 -0
  151. /package/lib/clang/{18 → 20}/include/__stddef_null.h +0 -0
  152. /package/lib/clang/{18 → 20}/include/__stddef_nullptr_t.h +0 -0
  153. /package/lib/clang/{18 → 20}/include/__stddef_offsetof.h +0 -0
  154. /package/lib/clang/{18 → 20}/include/__stddef_ptrdiff_t.h +0 -0
  155. /package/lib/clang/{18 → 20}/include/__stddef_rsize_t.h +0 -0
  156. /package/lib/clang/{18 → 20}/include/__stddef_size_t.h +0 -0
  157. /package/lib/clang/{18 → 20}/include/__stddef_unreachable.h +0 -0
  158. /package/lib/clang/{18 → 20}/include/__stddef_wchar_t.h +0 -0
  159. /package/lib/clang/{18 → 20}/include/__stddef_wint_t.h +0 -0
  160. /package/lib/clang/{18 → 20}/include/__wmmintrin_aes.h +0 -0
  161. /package/lib/clang/{18 → 20}/include/__wmmintrin_pclmul.h +0 -0
  162. /package/lib/clang/{18 → 20}/include/ammintrin.h +0 -0
  163. /package/lib/clang/{18 → 20}/include/amxcomplexintrin.h +0 -0
  164. /package/lib/clang/{18 → 20}/include/arm64intr.h +0 -0
  165. /package/lib/clang/{18 → 20}/include/arm_bf16.h +0 -0
  166. /package/lib/clang/{18 → 20}/include/arm_cde.h +0 -0
  167. /package/lib/clang/{18 → 20}/include/arm_cmse.h +0 -0
  168. /package/lib/clang/{18 → 20}/include/arm_mve.h +0 -0
  169. /package/lib/clang/{18 → 20}/include/arm_neon_sve_bridge.h +0 -0
  170. /package/lib/clang/{18 → 20}/include/armintr.h +0 -0
  171. /package/lib/clang/{18 → 20}/include/avx512bf16intrin.h +0 -0
  172. /package/lib/clang/{18 → 20}/include/avx512bwintrin.h +0 -0
  173. /package/lib/clang/{18 → 20}/include/avx512cdintrin.h +0 -0
  174. /package/lib/clang/{18 → 20}/include/avx512dqintrin.h +0 -0
  175. /package/lib/clang/{18 → 20}/include/avx512ifmaintrin.h +0 -0
  176. /package/lib/clang/{18 → 20}/include/avx512ifmavlintrin.h +0 -0
  177. /package/lib/clang/{18 → 20}/include/avx512vbmi2intrin.h +0 -0
  178. /package/lib/clang/{18 → 20}/include/avx512vbmiintrin.h +0 -0
  179. /package/lib/clang/{18 → 20}/include/avx512vbmivlintrin.h +0 -0
  180. /package/lib/clang/{18 → 20}/include/avx512vlbf16intrin.h +0 -0
  181. /package/lib/clang/{18 → 20}/include/avx512vlbwintrin.h +0 -0
  182. /package/lib/clang/{18 → 20}/include/avx512vlcdintrin.h +0 -0
  183. /package/lib/clang/{18 → 20}/include/avx512vldqintrin.h +0 -0
  184. /package/lib/clang/{18 → 20}/include/avx512vlfp16intrin.h +0 -0
  185. /package/lib/clang/{18 → 20}/include/avx512vlintrin.h +0 -0
  186. /package/lib/clang/{18 → 20}/include/avx512vlvbmi2intrin.h +0 -0
  187. /package/lib/clang/{18 → 20}/include/avx512vlvnniintrin.h +0 -0
  188. /package/lib/clang/{18 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
  189. /package/lib/clang/{18 → 20}/include/avx512vnniintrin.h +0 -0
  190. /package/lib/clang/{18 → 20}/include/avx512vp2intersectintrin.h +0 -0
  191. /package/lib/clang/{18 → 20}/include/avxifmaintrin.h +0 -0
  192. /package/lib/clang/{18 → 20}/include/avxneconvertintrin.h +0 -0
  193. /package/lib/clang/{18 → 20}/include/avxvnniintrin.h +0 -0
  194. /package/lib/clang/{18 → 20}/include/cet.h +0 -0
  195. /package/lib/clang/{18 → 20}/include/cetintrin.h +0 -0
  196. /package/lib/clang/{18 → 20}/include/cldemoteintrin.h +0 -0
  197. /package/lib/clang/{18 → 20}/include/clflushoptintrin.h +0 -0
  198. /package/lib/clang/{18 → 20}/include/clwbintrin.h +0 -0
  199. /package/lib/clang/{18 → 20}/include/clzerointrin.h +0 -0
  200. /package/lib/clang/{18 → 20}/include/crc32intrin.h +0 -0
  201. /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
  202. /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  203. /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  204. /package/lib/clang/{18 → 20}/include/cuda_wrappers/complex +0 -0
  205. /package/lib/clang/{18 → 20}/include/enqcmdintrin.h +0 -0
  206. /package/lib/clang/{18 → 20}/include/f16cintrin.h +0 -0
  207. /package/lib/clang/{18 → 20}/include/fma4intrin.h +0 -0
  208. /package/lib/clang/{18 → 20}/include/fxsrintrin.h +0 -0
  209. /package/lib/clang/{18 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
  210. /package/lib/clang/{18 → 20}/include/hexagon_protos.h +0 -0
  211. /package/lib/clang/{18 → 20}/include/hresetintrin.h +0 -0
  212. /package/lib/clang/{18 → 20}/include/htmintrin.h +0 -0
  213. /package/lib/clang/{18 → 20}/include/htmxlintrin.h +0 -0
  214. /package/lib/clang/{18 → 20}/include/invpcidintrin.h +0 -0
  215. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
  216. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
  217. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/string.h +0 -0
  218. /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/time.h +0 -0
  219. /package/lib/clang/{18 → 20}/include/lwpintrin.h +0 -0
  220. /package/lib/clang/{18 → 20}/include/mm_malloc.h +0 -0
  221. /package/lib/clang/{18 → 20}/include/movdirintrin.h +0 -0
  222. /package/lib/clang/{18 → 20}/include/msa.h +0 -0
  223. /package/lib/clang/{18 → 20}/include/mwaitxintrin.h +0 -0
  224. /package/lib/clang/{18 → 20}/include/nmmintrin.h +0 -0
  225. /package/lib/clang/{18 → 20}/include/openmp_wrappers/cmath +0 -0
  226. /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex +0 -0
  227. /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex.h +0 -0
  228. /package/lib/clang/{18 → 20}/include/openmp_wrappers/math.h +0 -0
  229. /package/lib/clang/{18 → 20}/include/openmp_wrappers/new +0 -0
  230. /package/lib/clang/{18 → 20}/include/pconfigintrin.h +0 -0
  231. /package/lib/clang/{18 → 20}/include/pkuintrin.h +0 -0
  232. /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
  233. /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
  234. /package/lib/clang/{18 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
  235. /package/lib/clang/{18 → 20}/include/ppc_wrappers/immintrin.h +0 -0
  236. /package/lib/clang/{18 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
  237. /package/lib/clang/{18 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
  238. /package/lib/clang/{18 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
  239. /package/lib/clang/{18 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
  240. /package/lib/clang/{18 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
  241. /package/lib/clang/{18 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
  242. /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
  243. /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
  244. /package/lib/clang/{18 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
  245. /package/lib/clang/{18 → 20}/include/prfchiintrin.h +0 -0
  246. /package/lib/clang/{18 → 20}/include/ptwriteintrin.h +0 -0
  247. /package/lib/clang/{18 → 20}/include/raointintrin.h +0 -0
  248. /package/lib/clang/{18 → 20}/include/rdpruintrin.h +0 -0
  249. /package/lib/clang/{18 → 20}/include/rdseedintrin.h +0 -0
  250. /package/lib/clang/{18 → 20}/include/riscv_bitmanip.h +0 -0
  251. /package/lib/clang/{18 → 20}/include/riscv_crypto.h +0 -0
  252. /package/lib/clang/{18 → 20}/include/riscv_ntlh.h +0 -0
  253. /package/lib/clang/{18 → 20}/include/rtmintrin.h +0 -0
  254. /package/lib/clang/{18 → 20}/include/s390intrin.h +0 -0
  255. /package/lib/clang/{18 → 20}/include/serializeintrin.h +0 -0
  256. /package/lib/clang/{18 → 20}/include/sgxintrin.h +0 -0
  257. /package/lib/clang/{18 → 20}/include/sha512intrin.h +0 -0
  258. /package/lib/clang/{18 → 20}/include/shaintrin.h +0 -0
  259. /package/lib/clang/{18 → 20}/include/sm3intrin.h +0 -0
  260. /package/lib/clang/{18 → 20}/include/sm4intrin.h +0 -0
  261. /package/lib/clang/{18 → 20}/include/stdalign.h +0 -0
  262. /package/lib/clang/{18 → 20}/include/stdckdint.h +0 -0
  263. /package/lib/clang/{18 → 20}/include/tgmath.h +0 -0
  264. /package/lib/clang/{18 → 20}/include/tsxldtrkintrin.h +0 -0
  265. /package/lib/clang/{18 → 20}/include/uintrintrin.h +0 -0
  266. /package/lib/clang/{18 → 20}/include/unwind.h +0 -0
  267. /package/lib/clang/{18 → 20}/include/usermsrintrin.h +0 -0
  268. /package/lib/clang/{18 → 20}/include/vadefs.h +0 -0
  269. /package/lib/clang/{18 → 20}/include/vaesintrin.h +0 -0
  270. /package/lib/clang/{18 → 20}/include/velintrin.h +0 -0
  271. /package/lib/clang/{18 → 20}/include/velintrin_approx.h +0 -0
  272. /package/lib/clang/{18 → 20}/include/velintrin_gen.h +0 -0
  273. /package/lib/clang/{18 → 20}/include/vpclmulqdqintrin.h +0 -0
  274. /package/lib/clang/{18 → 20}/include/waitpkgintrin.h +0 -0
  275. /package/lib/clang/{18 → 20}/include/wbnoinvdintrin.h +0 -0
  276. /package/lib/clang/{18 → 20}/include/wmmintrin.h +0 -0
  277. /package/lib/clang/{18 → 20}/include/xopintrin.h +0 -0
  278. /package/lib/clang/{18 → 20}/include/xsavecintrin.h +0 -0
  279. /package/lib/clang/{18 → 20}/include/xsaveintrin.h +0 -0
  280. /package/lib/clang/{18 → 20}/include/xsaveoptintrin.h +0 -0
  281. /package/lib/clang/{18 → 20}/include/xsavesintrin.h +0 -0
  282. /package/lib/clang/{18 → 20}/include/xtestintrin.h +0 -0
@@ -21,10 +21,45 @@ typedef int __v2si __attribute__((__vector_size__(8)));
21
21
  typedef short __v4hi __attribute__((__vector_size__(8)));
22
22
  typedef char __v8qi __attribute__((__vector_size__(8)));
23
23
 
24
+ /* Unsigned types */
25
+ typedef unsigned long long __v1du __attribute__ ((__vector_size__ (8)));
26
+ typedef unsigned int __v2su __attribute__ ((__vector_size__ (8)));
27
+ typedef unsigned short __v4hu __attribute__((__vector_size__(8)));
28
+ typedef unsigned char __v8qu __attribute__((__vector_size__(8)));
29
+
30
+ /* We need an explicitly signed variant for char. Note that this shouldn't
31
+ * appear in the interface though. */
32
+ typedef signed char __v8qs __attribute__((__vector_size__(8)));
33
+
34
+ /* SSE/SSE2 types */
35
+ typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16)));
36
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
37
+ typedef int __v4si __attribute__((__vector_size__(16)));
38
+ typedef short __v8hi __attribute__((__vector_size__(16)));
39
+ typedef char __v16qi __attribute__((__vector_size__(16)));
40
+
24
41
  /* Define the default attributes for the functions in this file. */
25
- #define __DEFAULT_FN_ATTRS \
26
- __attribute__((__always_inline__, __nodebug__, __target__("mmx,no-evex512"), \
27
- __min_vector_width__(64)))
42
+ #if defined(__EVEX512__) && !defined(__AVX10_1_512__)
43
+ #define __DEFAULT_FN_ATTRS_SSE2 \
44
+ __attribute__((__always_inline__, __nodebug__, \
45
+ __target__("sse2,no-evex512"), __min_vector_width__(128)))
46
+ #else
47
+ #define __DEFAULT_FN_ATTRS_SSE2 \
48
+ __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
49
+ __min_vector_width__(128)))
50
+ #endif
51
+
52
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
53
+ #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr
54
+ #else
55
+ #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2
56
+ #endif
57
+
58
+ #define __trunc64(x) \
59
+ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0)
60
+ #define __anyext128(x) \
61
+ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
62
+ 1, -1, -1)
28
63
 
29
64
  /// Clears the MMX state by setting the state of the x87 stack registers
30
65
  /// to empty.
@@ -50,10 +85,10 @@ _mm_empty(void) {
50
85
  /// A 32-bit integer value.
51
86
  /// \returns A 64-bit integer vector. The lower 32 bits contain the value of the
52
87
  /// parameter. The upper 32 bits are set to 0.
53
- static __inline__ __m64 __DEFAULT_FN_ATTRS
88
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
54
89
  _mm_cvtsi32_si64(int __i)
55
90
  {
56
- return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
91
+ return __extension__ (__m64)(__v2si){__i, 0};
57
92
  }
58
93
 
59
94
  /// Returns the lower 32 bits of a 64-bit integer vector as a 32-bit
@@ -67,10 +102,10 @@ _mm_cvtsi32_si64(int __i)
67
102
  /// A 64-bit integer vector.
68
103
  /// \returns A 32-bit signed integer value containing the lower 32 bits of the
69
104
  /// parameter.
70
- static __inline__ int __DEFAULT_FN_ATTRS
105
+ static __inline__ int __DEFAULT_FN_ATTRS_SSE2
71
106
  _mm_cvtsi64_si32(__m64 __m)
72
107
  {
73
- return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
108
+ return ((__v2si)__m)[0];
74
109
  }
75
110
 
76
111
  /// Casts a 64-bit signed integer value into a 64-bit integer vector.
@@ -83,7 +118,7 @@ _mm_cvtsi64_si32(__m64 __m)
83
118
  /// A 64-bit signed integer.
84
119
  /// \returns A 64-bit integer vector containing the same bitwise pattern as the
85
120
  /// parameter.
86
- static __inline__ __m64 __DEFAULT_FN_ATTRS
121
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
87
122
  _mm_cvtsi64_m64(long long __i)
88
123
  {
89
124
  return (__m64)__i;
@@ -99,100 +134,88 @@ _mm_cvtsi64_m64(long long __i)
99
134
  /// A 64-bit integer vector.
100
135
  /// \returns A 64-bit signed integer containing the same bitwise pattern as the
101
136
  /// parameter.
102
- static __inline__ long long __DEFAULT_FN_ATTRS
137
+ static __inline__ long long __DEFAULT_FN_ATTRS_SSE2
103
138
  _mm_cvtm64_si64(__m64 __m)
104
139
  {
105
140
  return (long long)__m;
106
141
  }
107
142
 
108
- /// Converts 16-bit signed integers from both 64-bit integer vector
109
- /// parameters of [4 x i16] into 8-bit signed integer values, and constructs
110
- /// a 64-bit integer vector of [8 x i8] as the result. Positive values
111
- /// greater than 0x7F are saturated to 0x7F. Negative values less than 0x80
112
- /// are saturated to 0x80.
143
+ /// Converts, with saturation, 16-bit signed integers from both 64-bit integer
144
+ /// vector parameters of [4 x i16] into 8-bit signed integer values, and
145
+ /// constructs a 64-bit integer vector of [8 x i8] as the result.
146
+ ///
147
+ /// Positive values greater than 0x7F are saturated to 0x7F. Negative values
148
+ /// less than 0x80 are saturated to 0x80.
113
149
  ///
114
150
  /// \headerfile <x86intrin.h>
115
151
  ///
116
152
  /// This intrinsic corresponds to the <c> PACKSSWB </c> instruction.
117
153
  ///
118
154
  /// \param __m1
119
- /// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
120
- /// 16-bit signed integer and is converted to an 8-bit signed integer with
121
- /// saturation. Positive values greater than 0x7F are saturated to 0x7F.
122
- /// Negative values less than 0x80 are saturated to 0x80. The converted
123
- /// [4 x i8] values are written to the lower 32 bits of the result.
155
+ /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
156
+ /// written to the lower 32 bits of the result.
124
157
  /// \param __m2
125
- /// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
126
- /// 16-bit signed integer and is converted to an 8-bit signed integer with
127
- /// saturation. Positive values greater than 0x7F are saturated to 0x7F.
128
- /// Negative values less than 0x80 are saturated to 0x80. The converted
129
- /// [4 x i8] values are written to the upper 32 bits of the result.
158
+ /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
159
+ /// written to the upper 32 bits of the result.
130
160
  /// \returns A 64-bit integer vector of [8 x i8] containing the converted
131
161
  /// values.
132
- static __inline__ __m64 __DEFAULT_FN_ATTRS
162
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
133
163
  _mm_packs_pi16(__m64 __m1, __m64 __m2)
134
164
  {
135
- return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
165
+ return __trunc64(__builtin_ia32_packsswb128(
166
+ (__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){}));
136
167
  }
137
168
 
138
- /// Converts 32-bit signed integers from both 64-bit integer vector
139
- /// parameters of [2 x i32] into 16-bit signed integer values, and constructs
140
- /// a 64-bit integer vector of [4 x i16] as the result. Positive values
141
- /// greater than 0x7FFF are saturated to 0x7FFF. Negative values less than
142
- /// 0x8000 are saturated to 0x8000.
169
+ /// Converts, with saturation, 32-bit signed integers from both 64-bit integer
170
+ /// vector parameters of [2 x i32] into 16-bit signed integer values, and
171
+ /// constructs a 64-bit integer vector of [4 x i16] as the result.
172
+ ///
173
+ /// Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative
174
+ /// values less than 0x8000 are saturated to 0x8000.
143
175
  ///
144
176
  /// \headerfile <x86intrin.h>
145
177
  ///
146
178
  /// This intrinsic corresponds to the <c> PACKSSDW </c> instruction.
147
179
  ///
148
180
  /// \param __m1
149
- /// A 64-bit integer vector of [2 x i32]. Each 32-bit element is treated as a
150
- /// 32-bit signed integer and is converted to a 16-bit signed integer with
151
- /// saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF.
152
- /// Negative values less than 0x8000 are saturated to 0x8000. The converted
153
- /// [2 x i16] values are written to the lower 32 bits of the result.
181
+ /// A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are
182
+ /// written to the lower 32 bits of the result.
154
183
  /// \param __m2
155
- /// A 64-bit integer vector of [2 x i32]. Each 32-bit element is treated as a
156
- /// 32-bit signed integer and is converted to a 16-bit signed integer with
157
- /// saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF.
158
- /// Negative values less than 0x8000 are saturated to 0x8000. The converted
159
- /// [2 x i16] values are written to the upper 32 bits of the result.
184
+ /// A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are
185
+ /// written to the upper 32 bits of the result.
160
186
  /// \returns A 64-bit integer vector of [4 x i16] containing the converted
161
187
  /// values.
162
- static __inline__ __m64 __DEFAULT_FN_ATTRS
188
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
163
189
  _mm_packs_pi32(__m64 __m1, __m64 __m2)
164
190
  {
165
- return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
191
+ return __trunc64(__builtin_ia32_packssdw128(
192
+ (__v4si)__builtin_shufflevector(__m1, __m2, 0, 1), (__v4si){}));
166
193
  }
167
194
 
168
- /// Converts 16-bit signed integers from both 64-bit integer vector
169
- /// parameters of [4 x i16] into 8-bit unsigned integer values, and
170
- /// constructs a 64-bit integer vector of [8 x i8] as the result. Values
171
- /// greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated
172
- /// to 0.
195
+ /// Converts, with saturation, 16-bit signed integers from both 64-bit integer
196
+ /// vector parameters of [4 x i16] into 8-bit unsigned integer values, and
197
+ /// constructs a 64-bit integer vector of [8 x i8] as the result.
198
+ ///
199
+ /// Values greater than 0xFF are saturated to 0xFF. Values less than 0 are
200
+ /// saturated to 0.
173
201
  ///
174
202
  /// \headerfile <x86intrin.h>
175
203
  ///
176
204
  /// This intrinsic corresponds to the <c> PACKUSWB </c> instruction.
177
205
  ///
178
206
  /// \param __m1
179
- /// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
180
- /// 16-bit signed integer and is converted to an 8-bit unsigned integer with
181
- /// saturation. Values greater than 0xFF are saturated to 0xFF. Values less
182
- /// than 0 are saturated to 0. The converted [4 x i8] values are written to
183
- /// the lower 32 bits of the result.
207
+ /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
208
+ /// written to the lower 32 bits of the result.
184
209
  /// \param __m2
185
- /// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a
186
- /// 16-bit signed integer and is converted to an 8-bit unsigned integer with
187
- /// saturation. Values greater than 0xFF are saturated to 0xFF. Values less
188
- /// than 0 are saturated to 0. The converted [4 x i8] values are written to
189
- /// the upper 32 bits of the result.
210
+ /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
211
+ /// written to the upper 32 bits of the result.
190
212
  /// \returns A 64-bit integer vector of [8 x i8] containing the converted
191
213
  /// values.
192
- static __inline__ __m64 __DEFAULT_FN_ATTRS
214
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
193
215
  _mm_packs_pu16(__m64 __m1, __m64 __m2)
194
216
  {
195
- return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
217
+ return __trunc64(__builtin_ia32_packuswb128(
218
+ (__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){}));
196
219
  }
197
220
 
198
221
  /// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8]
@@ -216,10 +239,11 @@ _mm_packs_pu16(__m64 __m1, __m64 __m2)
216
239
  /// Bits [63:56] are written to bits [63:56] of the result.
217
240
  /// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
218
241
  /// values.
219
- static __inline__ __m64 __DEFAULT_FN_ATTRS
242
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
220
243
  _mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
221
244
  {
222
- return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
245
+ return (__m64)__builtin_shufflevector((__v8qi)__m1, (__v8qi)__m2,
246
+ 4, 12, 5, 13, 6, 14, 7, 15);
223
247
  }
224
248
 
225
249
  /// Unpacks the upper 32 bits from two 64-bit integer vectors of
@@ -239,10 +263,11 @@ _mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
239
263
  /// Bits [63:48] are written to bits [63:48] of the result.
240
264
  /// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
241
265
  /// values.
242
- static __inline__ __m64 __DEFAULT_FN_ATTRS
266
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
243
267
  _mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
244
268
  {
245
- return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
269
+ return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2,
270
+ 2, 6, 3, 7);
246
271
  }
247
272
 
248
273
  /// Unpacks the upper 32 bits from two 64-bit integer vectors of
@@ -260,10 +285,10 @@ _mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
260
285
  /// the upper 32 bits of the result.
261
286
  /// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
262
287
  /// values.
263
- static __inline__ __m64 __DEFAULT_FN_ATTRS
288
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
264
289
  _mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
265
290
  {
266
- return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
291
+ return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 1, 3);
267
292
  }
268
293
 
269
294
  /// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8]
@@ -287,10 +312,11 @@ _mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
287
312
  /// Bits [31:24] are written to bits [63:56] of the result.
288
313
  /// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
289
314
  /// values.
290
- static __inline__ __m64 __DEFAULT_FN_ATTRS
315
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
291
316
  _mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
292
317
  {
293
- return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
318
+ return (__m64)__builtin_shufflevector((__v8qi)__m1, (__v8qi)__m2,
319
+ 0, 8, 1, 9, 2, 10, 3, 11);
294
320
  }
295
321
 
296
322
  /// Unpacks the lower 32 bits from two 64-bit integer vectors of
@@ -310,10 +336,11 @@ _mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
310
336
  /// Bits [31:16] are written to bits [63:48] of the result.
311
337
  /// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
312
338
  /// values.
313
- static __inline__ __m64 __DEFAULT_FN_ATTRS
339
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
314
340
  _mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
315
341
  {
316
- return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
342
+ return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2,
343
+ 0, 4, 1, 5);
317
344
  }
318
345
 
319
346
  /// Unpacks the lower 32 bits from two 64-bit integer vectors of
@@ -331,10 +358,10 @@ _mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
331
358
  /// the upper 32 bits of the result.
332
359
  /// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
333
360
  /// values.
334
- static __inline__ __m64 __DEFAULT_FN_ATTRS
361
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
335
362
  _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
336
363
  {
337
- return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
364
+ return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 0, 2);
338
365
  }
339
366
 
340
367
  /// Adds each 8-bit integer element of the first 64-bit integer vector
@@ -352,10 +379,10 @@ _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
352
379
  /// A 64-bit integer vector of [8 x i8].
353
380
  /// \returns A 64-bit integer vector of [8 x i8] containing the sums of both
354
381
  /// parameters.
355
- static __inline__ __m64 __DEFAULT_FN_ATTRS
382
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
356
383
  _mm_add_pi8(__m64 __m1, __m64 __m2)
357
384
  {
358
- return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
385
+ return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2));
359
386
  }
360
387
 
361
388
  /// Adds each 16-bit integer element of the first 64-bit integer vector
@@ -373,10 +400,10 @@ _mm_add_pi8(__m64 __m1, __m64 __m2)
373
400
  /// A 64-bit integer vector of [4 x i16].
374
401
  /// \returns A 64-bit integer vector of [4 x i16] containing the sums of both
375
402
  /// parameters.
376
- static __inline__ __m64 __DEFAULT_FN_ATTRS
403
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
377
404
  _mm_add_pi16(__m64 __m1, __m64 __m2)
378
405
  {
379
- return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
406
+ return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2));
380
407
  }
381
408
 
382
409
  /// Adds each 32-bit integer element of the first 64-bit integer vector
@@ -394,17 +421,19 @@ _mm_add_pi16(__m64 __m1, __m64 __m2)
394
421
  /// A 64-bit integer vector of [2 x i32].
395
422
  /// \returns A 64-bit integer vector of [2 x i32] containing the sums of both
396
423
  /// parameters.
397
- static __inline__ __m64 __DEFAULT_FN_ATTRS
424
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
398
425
  _mm_add_pi32(__m64 __m1, __m64 __m2)
399
426
  {
400
- return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
427
+ return (__m64)(((__v2su)__m1) + ((__v2su)__m2));
401
428
  }
402
429
 
403
- /// Adds each 8-bit signed integer element of the first 64-bit integer
404
- /// vector of [8 x i8] to the corresponding 8-bit signed integer element of
405
- /// the second 64-bit integer vector of [8 x i8]. Positive sums greater than
406
- /// 0x7F are saturated to 0x7F. Negative sums less than 0x80 are saturated to
407
- /// 0x80. The results are packed into a 64-bit integer vector of [8 x i8].
430
+ /// Adds, with saturation, each 8-bit signed integer element of the first
431
+ /// 64-bit integer vector of [8 x i8] to the corresponding 8-bit signed
432
+ /// integer element of the second 64-bit integer vector of [8 x i8].
433
+ ///
434
+ /// Positive sums greater than 0x7F are saturated to 0x7F. Negative sums
435
+ /// less than 0x80 are saturated to 0x80. The results are packed into a
436
+ /// 64-bit integer vector of [8 x i8].
408
437
  ///
409
438
  /// \headerfile <x86intrin.h>
410
439
  ///
@@ -416,18 +445,19 @@ _mm_add_pi32(__m64 __m1, __m64 __m2)
416
445
  /// A 64-bit integer vector of [8 x i8].
417
446
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums
418
447
  /// of both parameters.
419
- static __inline__ __m64 __DEFAULT_FN_ATTRS
448
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
420
449
  _mm_adds_pi8(__m64 __m1, __m64 __m2)
421
450
  {
422
- return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
451
+ return (__m64)__builtin_elementwise_add_sat((__v8qs)__m1, (__v8qs)__m2);
423
452
  }
424
453
 
425
- /// Adds each 16-bit signed integer element of the first 64-bit integer
426
- /// vector of [4 x i16] to the corresponding 16-bit signed integer element of
427
- /// the second 64-bit integer vector of [4 x i16]. Positive sums greater than
428
- /// 0x7FFF are saturated to 0x7FFF. Negative sums less than 0x8000 are
429
- /// saturated to 0x8000. The results are packed into a 64-bit integer vector
430
- /// of [4 x i16].
454
+ /// Adds, with saturation, each 16-bit signed integer element of the first
455
+ /// 64-bit integer vector of [4 x i16] to the corresponding 16-bit signed
456
+ /// integer element of the second 64-bit integer vector of [4 x i16].
457
+ ///
458
+ /// Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums
459
+ /// less than 0x8000 are saturated to 0x8000. The results are packed into a
460
+ /// 64-bit integer vector of [4 x i16].
431
461
  ///
432
462
  /// \headerfile <x86intrin.h>
433
463
  ///
@@ -439,17 +469,18 @@ _mm_adds_pi8(__m64 __m1, __m64 __m2)
439
469
  /// A 64-bit integer vector of [4 x i16].
440
470
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums
441
471
  /// of both parameters.
442
- static __inline__ __m64 __DEFAULT_FN_ATTRS
472
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
443
473
  _mm_adds_pi16(__m64 __m1, __m64 __m2)
444
474
  {
445
- return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
475
+ return (__m64)__builtin_elementwise_add_sat((__v4hi)__m1, (__v4hi)__m2);
446
476
  }
447
477
 
448
- /// Adds each 8-bit unsigned integer element of the first 64-bit integer
449
- /// vector of [8 x i8] to the corresponding 8-bit unsigned integer element of
450
- /// the second 64-bit integer vector of [8 x i8]. Sums greater than 0xFF are
451
- /// saturated to 0xFF. The results are packed into a 64-bit integer vector of
452
- /// [8 x i8].
478
+ /// Adds, with saturation, each 8-bit unsigned integer element of the first
479
+ /// 64-bit integer vector of [8 x i8] to the corresponding 8-bit unsigned
480
+ /// integer element of the second 64-bit integer vector of [8 x i8].
481
+ ///
482
+ /// Sums greater than 0xFF are saturated to 0xFF. The results are packed
483
+ /// into a 64-bit integer vector of [8 x i8].
453
484
  ///
454
485
  /// \headerfile <x86intrin.h>
455
486
  ///
@@ -461,17 +492,18 @@ _mm_adds_pi16(__m64 __m1, __m64 __m2)
461
492
  /// A 64-bit integer vector of [8 x i8].
462
493
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated
463
494
  /// unsigned sums of both parameters.
464
- static __inline__ __m64 __DEFAULT_FN_ATTRS
495
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
465
496
  _mm_adds_pu8(__m64 __m1, __m64 __m2)
466
497
  {
467
- return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
498
+ return (__m64)__builtin_elementwise_add_sat((__v8qu)__m1, (__v8qu)__m2);
468
499
  }
469
500
 
470
- /// Adds each 16-bit unsigned integer element of the first 64-bit integer
471
- /// vector of [4 x i16] to the corresponding 16-bit unsigned integer element
472
- /// of the second 64-bit integer vector of [4 x i16]. Sums greater than
473
- /// 0xFFFF are saturated to 0xFFFF. The results are packed into a 64-bit
474
- /// integer vector of [4 x i16].
501
+ /// Adds, with saturation, each 16-bit unsigned integer element of the first
502
+ /// 64-bit integer vector of [4 x i16] to the corresponding 16-bit unsigned
503
+ /// integer element of the second 64-bit integer vector of [4 x i16].
504
+ ///
505
+ /// Sums greater than 0xFFFF are saturated to 0xFFFF. The results are packed
506
+ /// into a 64-bit integer vector of [4 x i16].
475
507
  ///
476
508
  /// \headerfile <x86intrin.h>
477
509
  ///
@@ -483,10 +515,10 @@ _mm_adds_pu8(__m64 __m1, __m64 __m2)
483
515
  /// A 64-bit integer vector of [4 x i16].
484
516
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated
485
517
  /// unsigned sums of both parameters.
486
- static __inline__ __m64 __DEFAULT_FN_ATTRS
518
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
487
519
  _mm_adds_pu16(__m64 __m1, __m64 __m2)
488
520
  {
489
- return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
521
+ return (__m64)__builtin_elementwise_add_sat((__v4hu)__m1, (__v4hu)__m2);
490
522
  }
491
523
 
492
524
  /// Subtracts each 8-bit integer element of the second 64-bit integer
@@ -504,10 +536,10 @@ _mm_adds_pu16(__m64 __m1, __m64 __m2)
504
536
  /// A 64-bit integer vector of [8 x i8] containing the subtrahends.
505
537
  /// \returns A 64-bit integer vector of [8 x i8] containing the differences of
506
538
  /// both parameters.
507
- static __inline__ __m64 __DEFAULT_FN_ATTRS
539
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
508
540
  _mm_sub_pi8(__m64 __m1, __m64 __m2)
509
541
  {
510
- return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
542
+ return (__m64)(((__v8qu)__m1) - ((__v8qu)__m2));
511
543
  }
512
544
 
513
545
  /// Subtracts each 16-bit integer element of the second 64-bit integer
@@ -525,10 +557,10 @@ _mm_sub_pi8(__m64 __m1, __m64 __m2)
525
557
  /// A 64-bit integer vector of [4 x i16] containing the subtrahends.
526
558
  /// \returns A 64-bit integer vector of [4 x i16] containing the differences of
527
559
  /// both parameters.
528
- static __inline__ __m64 __DEFAULT_FN_ATTRS
560
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
529
561
  _mm_sub_pi16(__m64 __m1, __m64 __m2)
530
562
  {
531
- return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
563
+ return (__m64)(((__v4hu)__m1) - ((__v4hu)__m2));
532
564
  }
533
565
 
534
566
  /// Subtracts each 32-bit integer element of the second 64-bit integer
@@ -546,18 +578,19 @@ _mm_sub_pi16(__m64 __m1, __m64 __m2)
546
578
  /// A 64-bit integer vector of [2 x i32] containing the subtrahends.
547
579
  /// \returns A 64-bit integer vector of [2 x i32] containing the differences of
548
580
  /// both parameters.
549
- static __inline__ __m64 __DEFAULT_FN_ATTRS
581
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
550
582
  _mm_sub_pi32(__m64 __m1, __m64 __m2)
551
583
  {
552
- return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
584
+ return (__m64)(((__v2su)__m1) - ((__v2su)__m2));
553
585
  }
554
586
 
555
- /// Subtracts each 8-bit signed integer element of the second 64-bit
556
- /// integer vector of [8 x i8] from the corresponding 8-bit signed integer
557
- /// element of the first 64-bit integer vector of [8 x i8]. Positive results
558
- /// greater than 0x7F are saturated to 0x7F. Negative results less than 0x80
559
- /// are saturated to 0x80. The results are packed into a 64-bit integer
560
- /// vector of [8 x i8].
587
+ /// Subtracts, with saturation, each 8-bit signed integer element of the second
588
+ /// 64-bit integer vector of [8 x i8] from the corresponding 8-bit signed
589
+ /// integer element of the first 64-bit integer vector of [8 x i8].
590
+ ///
591
+ /// Positive results greater than 0x7F are saturated to 0x7F. Negative
592
+ /// results less than 0x80 are saturated to 0x80. The results are packed
593
+ /// into a 64-bit integer vector of [8 x i8].
561
594
  ///
562
595
  /// \headerfile <x86intrin.h>
563
596
  ///
@@ -569,18 +602,19 @@ _mm_sub_pi32(__m64 __m1, __m64 __m2)
569
602
  /// A 64-bit integer vector of [8 x i8] containing the subtrahends.
570
603
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated
571
604
  /// differences of both parameters.
572
- static __inline__ __m64 __DEFAULT_FN_ATTRS
605
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
573
606
  _mm_subs_pi8(__m64 __m1, __m64 __m2)
574
607
  {
575
- return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
608
+ return (__m64)__builtin_elementwise_sub_sat((__v8qs)__m1, (__v8qs)__m2);
576
609
  }
577
610
 
578
- /// Subtracts each 16-bit signed integer element of the second 64-bit
579
- /// integer vector of [4 x i16] from the corresponding 16-bit signed integer
580
- /// element of the first 64-bit integer vector of [4 x i16]. Positive results
581
- /// greater than 0x7FFF are saturated to 0x7FFF. Negative results less than
582
- /// 0x8000 are saturated to 0x8000. The results are packed into a 64-bit
583
- /// integer vector of [4 x i16].
611
+ /// Subtracts, with saturation, each 16-bit signed integer element of the
612
+ /// second 64-bit integer vector of [4 x i16] from the corresponding 16-bit
613
+ /// signed integer element of the first 64-bit integer vector of [4 x i16].
614
+ ///
615
+ /// Positive results greater than 0x7FFF are saturated to 0x7FFF. Negative
616
+ /// results less than 0x8000 are saturated to 0x8000. The results are packed
617
+ /// into a 64-bit integer vector of [4 x i16].
584
618
  ///
585
619
  /// \headerfile <x86intrin.h>
586
620
  ///
@@ -592,10 +626,10 @@ _mm_subs_pi8(__m64 __m1, __m64 __m2)
592
626
  /// A 64-bit integer vector of [4 x i16] containing the subtrahends.
593
627
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated
594
628
  /// differences of both parameters.
595
- static __inline__ __m64 __DEFAULT_FN_ATTRS
629
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
596
630
  _mm_subs_pi16(__m64 __m1, __m64 __m2)
597
631
  {
598
- return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
632
+ return (__m64)__builtin_elementwise_sub_sat((__v4hi)__m1, (__v4hi)__m2);
599
633
  }
600
634
 
601
635
  /// Subtracts each 8-bit unsigned integer element of the second 64-bit
@@ -616,10 +650,10 @@ _mm_subs_pi16(__m64 __m1, __m64 __m2)
616
650
  /// A 64-bit integer vector of [8 x i8] containing the subtrahends.
617
651
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated
618
652
  /// differences of both parameters.
619
- static __inline__ __m64 __DEFAULT_FN_ATTRS
653
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
620
654
  _mm_subs_pu8(__m64 __m1, __m64 __m2)
621
655
  {
622
- return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
656
+ return (__m64)__builtin_elementwise_sub_sat((__v8qu)__m1, (__v8qu)__m2);
623
657
  }
624
658
 
625
659
  /// Subtracts each 16-bit unsigned integer element of the second 64-bit
@@ -640,10 +674,10 @@ _mm_subs_pu8(__m64 __m1, __m64 __m2)
640
674
  /// A 64-bit integer vector of [4 x i16] containing the subtrahends.
641
675
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated
642
676
  /// differences of both parameters.
643
- static __inline__ __m64 __DEFAULT_FN_ATTRS
677
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
644
678
  _mm_subs_pu16(__m64 __m1, __m64 __m2)
645
679
  {
646
- return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
680
+ return (__m64)__builtin_elementwise_sub_sat((__v4hu)__m1, (__v4hu)__m2);
647
681
  }
648
682
 
649
683
  /// Multiplies each 16-bit signed integer element of the first 64-bit
@@ -667,10 +701,11 @@ _mm_subs_pu16(__m64 __m1, __m64 __m2)
667
701
  /// A 64-bit integer vector of [4 x i16].
668
702
  /// \returns A 64-bit integer vector of [2 x i32] containing the sums of
669
703
  /// products of both parameters.
670
- static __inline__ __m64 __DEFAULT_FN_ATTRS
704
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
671
705
  _mm_madd_pi16(__m64 __m1, __m64 __m2)
672
706
  {
673
- return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
707
+ return __trunc64(__builtin_ia32_pmaddwd128((__v8hi)__anyext128(__m1),
708
+ (__v8hi)__anyext128(__m2)));
674
709
  }
675
710
 
676
711
  /// Multiplies each 16-bit signed integer element of the first 64-bit
@@ -688,10 +723,11 @@ _mm_madd_pi16(__m64 __m1, __m64 __m2)
688
723
  /// A 64-bit integer vector of [4 x i16].
689
724
  /// \returns A 64-bit integer vector of [4 x i16] containing the upper 16 bits
690
725
  /// of the products of both parameters.
691
- static __inline__ __m64 __DEFAULT_FN_ATTRS
726
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
692
727
  _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
693
728
  {
694
- return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
729
+ return __trunc64(__builtin_ia32_pmulhw128((__v8hi)__anyext128(__m1),
730
+ (__v8hi)__anyext128(__m2)));
695
731
  }
696
732
 
697
733
  /// Multiplies each 16-bit signed integer element of the first 64-bit
@@ -709,10 +745,10 @@ _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
709
745
  /// A 64-bit integer vector of [4 x i16].
710
746
  /// \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits
711
747
  /// of the products of both parameters.
712
- static __inline__ __m64 __DEFAULT_FN_ATTRS
748
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
713
749
  _mm_mullo_pi16(__m64 __m1, __m64 __m2)
714
750
  {
715
- return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
751
+ return (__m64)(((__v4hu)__m1) * ((__v4hu)__m2));
716
752
  }
717
753
 
718
754
  /// Left-shifts each 16-bit signed integer element of the first
@@ -732,10 +768,11 @@ _mm_mullo_pi16(__m64 __m1, __m64 __m2)
732
768
  /// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
733
769
  /// values. If \a __count is greater or equal to 16, the result is set to all
734
770
  /// 0.
735
- static __inline__ __m64 __DEFAULT_FN_ATTRS
771
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
736
772
  _mm_sll_pi16(__m64 __m, __m64 __count)
737
773
  {
738
- return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
774
+ return __trunc64(__builtin_ia32_psllw128((__v8hi)__anyext128(__m),
775
+ (__v8hi)__anyext128(__count)));
739
776
  }
740
777
 
741
778
  /// Left-shifts each 16-bit signed integer element of a 64-bit integer
@@ -754,10 +791,11 @@ _mm_sll_pi16(__m64 __m, __m64 __count)
754
791
  /// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
755
792
  /// values. If \a __count is greater or equal to 16, the result is set to all
756
793
  /// 0.
757
- static __inline__ __m64 __DEFAULT_FN_ATTRS
794
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
758
795
  _mm_slli_pi16(__m64 __m, int __count)
759
796
  {
760
- return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
797
+ return __trunc64(__builtin_ia32_psllwi128((__v8hi)__anyext128(__m),
798
+ __count));
761
799
  }
762
800
 
763
801
  /// Left-shifts each 32-bit signed integer element of the first
@@ -777,10 +815,11 @@ _mm_slli_pi16(__m64 __m, int __count)
777
815
  /// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
778
816
  /// values. If \a __count is greater or equal to 32, the result is set to all
779
817
  /// 0.
780
- static __inline__ __m64 __DEFAULT_FN_ATTRS
818
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
781
819
  _mm_sll_pi32(__m64 __m, __m64 __count)
782
820
  {
783
- return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
821
+ return __trunc64(__builtin_ia32_pslld128((__v4si)__anyext128(__m),
822
+ (__v4si)__anyext128(__count)));
784
823
  }
785
824
 
786
825
  /// Left-shifts each 32-bit signed integer element of a 64-bit integer
@@ -799,10 +838,11 @@ _mm_sll_pi32(__m64 __m, __m64 __count)
799
838
  /// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
800
839
  /// values. If \a __count is greater or equal to 32, the result is set to all
801
840
  /// 0.
802
- static __inline__ __m64 __DEFAULT_FN_ATTRS
841
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
803
842
  _mm_slli_pi32(__m64 __m, int __count)
804
843
  {
805
- return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
844
+ return __trunc64(__builtin_ia32_pslldi128((__v4si)__anyext128(__m),
845
+ __count));
806
846
  }
807
847
 
808
848
  /// Left-shifts the first 64-bit integer parameter by the number of bits
@@ -819,10 +859,11 @@ _mm_slli_pi32(__m64 __m, int __count)
819
859
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
820
860
  /// \returns A 64-bit integer vector containing the left-shifted value. If
821
861
  /// \a __count is greater or equal to 64, the result is set to 0.
822
- static __inline__ __m64 __DEFAULT_FN_ATTRS
862
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
823
863
  _mm_sll_si64(__m64 __m, __m64 __count)
824
864
  {
825
- return (__m64)__builtin_ia32_psllq((__v1di)__m, __count);
865
+ return __trunc64(__builtin_ia32_psllq128((__v2di)__anyext128(__m),
866
+ (__v2di)__anyext128(__count)));
826
867
  }
827
868
 
828
869
  /// Left-shifts the first parameter, which is a 64-bit integer, by the
@@ -839,10 +880,11 @@ _mm_sll_si64(__m64 __m, __m64 __count)
839
880
  /// A 32-bit integer value.
840
881
  /// \returns A 64-bit integer vector containing the left-shifted value. If
841
882
  /// \a __count is greater or equal to 64, the result is set to 0.
842
- static __inline__ __m64 __DEFAULT_FN_ATTRS
883
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
843
884
  _mm_slli_si64(__m64 __m, int __count)
844
885
  {
845
- return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count);
886
+ return __trunc64(__builtin_ia32_psllqi128((__v2di)__anyext128(__m),
887
+ __count));
846
888
  }
847
889
 
848
890
  /// Right-shifts each 16-bit integer element of the first parameter,
@@ -863,10 +905,11 @@ _mm_slli_si64(__m64 __m, int __count)
863
905
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
864
906
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
865
907
  /// values.
866
- static __inline__ __m64 __DEFAULT_FN_ATTRS
908
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
867
909
  _mm_sra_pi16(__m64 __m, __m64 __count)
868
910
  {
869
- return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
911
+ return __trunc64(__builtin_ia32_psraw128((__v8hi)__anyext128(__m),
912
+ (__v8hi)__anyext128(__count)));
870
913
  }
871
914
 
872
915
  /// Right-shifts each 16-bit integer element of a 64-bit integer vector
@@ -886,10 +929,11 @@ _mm_sra_pi16(__m64 __m, __m64 __count)
886
929
  /// A 32-bit integer value.
887
930
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
888
931
  /// values.
889
- static __inline__ __m64 __DEFAULT_FN_ATTRS
932
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
890
933
  _mm_srai_pi16(__m64 __m, int __count)
891
934
  {
892
- return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
935
+ return __trunc64(__builtin_ia32_psrawi128((__v8hi)__anyext128(__m),
936
+ __count));
893
937
  }
894
938
 
895
939
  /// Right-shifts each 32-bit integer element of the first parameter,
@@ -910,10 +954,11 @@ _mm_srai_pi16(__m64 __m, int __count)
910
954
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
911
955
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
912
956
  /// values.
913
- static __inline__ __m64 __DEFAULT_FN_ATTRS
957
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
914
958
  _mm_sra_pi32(__m64 __m, __m64 __count)
915
959
  {
916
- return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
960
+ return __trunc64(__builtin_ia32_psrad128((__v4si)__anyext128(__m),
961
+ (__v4si)__anyext128(__count)));
917
962
  }
918
963
 
919
964
  /// Right-shifts each 32-bit integer element of a 64-bit integer vector
@@ -933,10 +978,11 @@ _mm_sra_pi32(__m64 __m, __m64 __count)
933
978
  /// A 32-bit integer value.
934
979
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
935
980
  /// values.
936
- static __inline__ __m64 __DEFAULT_FN_ATTRS
981
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
937
982
  _mm_srai_pi32(__m64 __m, int __count)
938
983
  {
939
- return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
984
+ return __trunc64(__builtin_ia32_psradi128((__v4si)__anyext128(__m),
985
+ __count));
940
986
  }
941
987
 
942
988
  /// Right-shifts each 16-bit integer element of the first parameter,
@@ -956,10 +1002,11 @@ _mm_srai_pi32(__m64 __m, int __count)
956
1002
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
957
1003
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
958
1004
  /// values.
959
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1005
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
960
1006
  _mm_srl_pi16(__m64 __m, __m64 __count)
961
1007
  {
962
- return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
1008
+ return __trunc64(__builtin_ia32_psrlw128((__v8hi)__anyext128(__m),
1009
+ (__v8hi)__anyext128(__count)));
963
1010
  }
964
1011
 
965
1012
  /// Right-shifts each 16-bit integer element of a 64-bit integer vector
@@ -978,10 +1025,11 @@ _mm_srl_pi16(__m64 __m, __m64 __count)
978
1025
  /// A 32-bit integer value.
979
1026
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
980
1027
  /// values.
981
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1028
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
982
1029
  _mm_srli_pi16(__m64 __m, int __count)
983
1030
  {
984
- return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
1031
+ return __trunc64(__builtin_ia32_psrlwi128((__v8hi)__anyext128(__m),
1032
+ __count));
985
1033
  }
986
1034
 
987
1035
  /// Right-shifts each 32-bit integer element of the first parameter,
@@ -1001,10 +1049,11 @@ _mm_srli_pi16(__m64 __m, int __count)
1001
1049
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
1002
1050
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
1003
1051
  /// values.
1004
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1052
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1005
1053
  _mm_srl_pi32(__m64 __m, __m64 __count)
1006
1054
  {
1007
- return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
1055
+ return __trunc64(__builtin_ia32_psrld128((__v4si)__anyext128(__m),
1056
+ (__v4si)__anyext128(__count)));
1008
1057
  }
1009
1058
 
1010
1059
  /// Right-shifts each 32-bit integer element of a 64-bit integer vector
@@ -1023,10 +1072,11 @@ _mm_srl_pi32(__m64 __m, __m64 __count)
1023
1072
  /// A 32-bit integer value.
1024
1073
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
1025
1074
  /// values.
1026
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1075
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1027
1076
  _mm_srli_pi32(__m64 __m, int __count)
1028
1077
  {
1029
- return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
1078
+ return __trunc64(__builtin_ia32_psrldi128((__v4si)__anyext128(__m),
1079
+ __count));
1030
1080
  }
1031
1081
 
1032
1082
  /// Right-shifts the first 64-bit integer parameter by the number of bits
@@ -1043,10 +1093,11 @@ _mm_srli_pi32(__m64 __m, int __count)
1043
1093
  /// \param __count
1044
1094
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
1045
1095
  /// \returns A 64-bit integer vector containing the right-shifted value.
1046
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1096
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1047
1097
  _mm_srl_si64(__m64 __m, __m64 __count)
1048
1098
  {
1049
- return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count);
1099
+ return __trunc64(__builtin_ia32_psrlq128((__v2di)__anyext128(__m),
1100
+ (__v2di)__anyext128(__count)));
1050
1101
  }
1051
1102
 
1052
1103
  /// Right-shifts the first parameter, which is a 64-bit integer, by the
@@ -1064,10 +1115,11 @@ _mm_srl_si64(__m64 __m, __m64 __count)
1064
1115
  /// \param __count
1065
1116
  /// A 32-bit integer value.
1066
1117
  /// \returns A 64-bit integer vector containing the right-shifted value.
1067
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1118
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1068
1119
  _mm_srli_si64(__m64 __m, int __count)
1069
1120
  {
1070
- return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count);
1121
+ return __trunc64(__builtin_ia32_psrlqi128((__v2di)__anyext128(__m),
1122
+ __count));
1071
1123
  }
1072
1124
 
1073
1125
  /// Performs a bitwise AND of two 64-bit integer vectors.
@@ -1082,10 +1134,10 @@ _mm_srli_si64(__m64 __m, int __count)
1082
1134
  /// A 64-bit integer vector.
1083
1135
  /// \returns A 64-bit integer vector containing the bitwise AND of both
1084
1136
  /// parameters.
1085
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1137
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1086
1138
  _mm_and_si64(__m64 __m1, __m64 __m2)
1087
1139
  {
1088
- return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2);
1140
+ return (__m64)(((__v1du)__m1) & ((__v1du)__m2));
1089
1141
  }
1090
1142
 
1091
1143
  /// Performs a bitwise NOT of the first 64-bit integer vector, and then
@@ -1103,10 +1155,10 @@ _mm_and_si64(__m64 __m1, __m64 __m2)
1103
1155
  /// A 64-bit integer vector.
1104
1156
  /// \returns A 64-bit integer vector containing the bitwise AND of the second
1105
1157
  /// parameter and the one's complement of the first parameter.
1106
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1158
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1107
1159
  _mm_andnot_si64(__m64 __m1, __m64 __m2)
1108
1160
  {
1109
- return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2);
1161
+ return (__m64)(~((__v1du)__m1) & ((__v1du)__m2));
1110
1162
  }
1111
1163
 
1112
1164
  /// Performs a bitwise OR of two 64-bit integer vectors.
@@ -1121,10 +1173,10 @@ _mm_andnot_si64(__m64 __m1, __m64 __m2)
1121
1173
  /// A 64-bit integer vector.
1122
1174
  /// \returns A 64-bit integer vector containing the bitwise OR of both
1123
1175
  /// parameters.
1124
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1176
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1125
1177
  _mm_or_si64(__m64 __m1, __m64 __m2)
1126
1178
  {
1127
- return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2);
1179
+ return (__m64)(((__v1du)__m1) | ((__v1du)__m2));
1128
1180
  }
1129
1181
 
1130
1182
  /// Performs a bitwise exclusive OR of two 64-bit integer vectors.
@@ -1139,17 +1191,17 @@ _mm_or_si64(__m64 __m1, __m64 __m2)
1139
1191
  /// A 64-bit integer vector.
1140
1192
  /// \returns A 64-bit integer vector containing the bitwise exclusive OR of both
1141
1193
  /// parameters.
1142
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1194
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1143
1195
  _mm_xor_si64(__m64 __m1, __m64 __m2)
1144
1196
  {
1145
- return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2);
1197
+ return (__m64)(((__v1du)__m1) ^ ((__v1du)__m2));
1146
1198
  }
1147
1199
 
1148
1200
  /// Compares the 8-bit integer elements of two 64-bit integer vectors of
1149
1201
  /// [8 x i8] to determine if the element of the first vector is equal to the
1150
1202
  /// corresponding element of the second vector.
1151
1203
  ///
1152
- /// The comparison yields 0 for false, 0xFF for true.
1204
+ /// Each comparison returns 0 for false, 0xFF for true.
1153
1205
  ///
1154
1206
  /// \headerfile <x86intrin.h>
1155
1207
  ///
@@ -1161,17 +1213,17 @@ _mm_xor_si64(__m64 __m1, __m64 __m2)
1161
1213
  /// A 64-bit integer vector of [8 x i8].
1162
1214
  /// \returns A 64-bit integer vector of [8 x i8] containing the comparison
1163
1215
  /// results.
1164
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1216
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1165
1217
  _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
1166
1218
  {
1167
- return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
1219
+ return (__m64)(((__v8qi)__m1) == ((__v8qi)__m2));
1168
1220
  }
1169
1221
 
1170
1222
  /// Compares the 16-bit integer elements of two 64-bit integer vectors of
1171
1223
  /// [4 x i16] to determine if the element of the first vector is equal to the
1172
1224
  /// corresponding element of the second vector.
1173
1225
  ///
1174
- /// The comparison yields 0 for false, 0xFFFF for true.
1226
+ /// Each comparison returns 0 for false, 0xFFFF for true.
1175
1227
  ///
1176
1228
  /// \headerfile <x86intrin.h>
1177
1229
  ///
@@ -1183,17 +1235,17 @@ _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
1183
1235
  /// A 64-bit integer vector of [4 x i16].
1184
1236
  /// \returns A 64-bit integer vector of [4 x i16] containing the comparison
1185
1237
  /// results.
1186
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1238
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1187
1239
  _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
1188
1240
  {
1189
- return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
1241
+ return (__m64)(((__v4hi)__m1) == ((__v4hi)__m2));
1190
1242
  }
1191
1243
 
1192
1244
  /// Compares the 32-bit integer elements of two 64-bit integer vectors of
1193
1245
  /// [2 x i32] to determine if the element of the first vector is equal to the
1194
1246
  /// corresponding element of the second vector.
1195
1247
  ///
1196
- /// The comparison yields 0 for false, 0xFFFFFFFF for true.
1248
+ /// Each comparison returns 0 for false, 0xFFFFFFFF for true.
1197
1249
  ///
1198
1250
  /// \headerfile <x86intrin.h>
1199
1251
  ///
@@ -1205,17 +1257,17 @@ _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
1205
1257
  /// A 64-bit integer vector of [2 x i32].
1206
1258
  /// \returns A 64-bit integer vector of [2 x i32] containing the comparison
1207
1259
  /// results.
1208
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1260
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1209
1261
  _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
1210
1262
  {
1211
- return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
1263
+ return (__m64)(((__v2si)__m1) == ((__v2si)__m2));
1212
1264
  }
1213
1265
 
1214
1266
  /// Compares the 8-bit integer elements of two 64-bit integer vectors of
1215
1267
  /// [8 x i8] to determine if the element of the first vector is greater than
1216
1268
  /// the corresponding element of the second vector.
1217
1269
  ///
1218
- /// The comparison yields 0 for false, 0xFF for true.
1270
+ /// Each comparison returns 0 for false, 0xFF for true.
1219
1271
  ///
1220
1272
  /// \headerfile <x86intrin.h>
1221
1273
  ///
@@ -1227,17 +1279,19 @@ _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
1227
1279
  /// A 64-bit integer vector of [8 x i8].
1228
1280
  /// \returns A 64-bit integer vector of [8 x i8] containing the comparison
1229
1281
  /// results.
1230
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1282
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1231
1283
  _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
1232
1284
  {
1233
- return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2);
1285
+ /* This function always performs a signed comparison, but __v8qi is a char
1286
+ which may be signed or unsigned, so use __v8qs. */
1287
+ return (__m64)((__v8qs)__m1 > (__v8qs)__m2);
1234
1288
  }
1235
1289
 
1236
1290
  /// Compares the 16-bit integer elements of two 64-bit integer vectors of
1237
1291
  /// [4 x i16] to determine if the element of the first vector is greater than
1238
1292
  /// the corresponding element of the second vector.
1239
1293
  ///
1240
- /// The comparison yields 0 for false, 0xFFFF for true.
1294
+ /// Each comparison returns 0 for false, 0xFFFF for true.
1241
1295
  ///
1242
1296
  /// \headerfile <x86intrin.h>
1243
1297
  ///
@@ -1249,17 +1303,17 @@ _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
1249
1303
  /// A 64-bit integer vector of [4 x i16].
1250
1304
  /// \returns A 64-bit integer vector of [4 x i16] containing the comparison
1251
1305
  /// results.
1252
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1306
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1253
1307
  _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
1254
1308
  {
1255
- return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
1309
+ return (__m64)((__v4hi)__m1 > (__v4hi)__m2);
1256
1310
  }
1257
1311
 
1258
1312
  /// Compares the 32-bit integer elements of two 64-bit integer vectors of
1259
1313
  /// [2 x i32] to determine if the element of the first vector is greater than
1260
1314
  /// the corresponding element of the second vector.
1261
1315
  ///
1262
- /// The comparison yields 0 for false, 0xFFFFFFFF for true.
1316
+ /// Each comparison returns 0 for false, 0xFFFFFFFF for true.
1263
1317
  ///
1264
1318
  /// \headerfile <x86intrin.h>
1265
1319
  ///
@@ -1271,10 +1325,10 @@ _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
1271
1325
  /// A 64-bit integer vector of [2 x i32].
1272
1326
  /// \returns A 64-bit integer vector of [2 x i32] containing the comparison
1273
1327
  /// results.
1274
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1328
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1275
1329
  _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
1276
1330
  {
1277
- return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
1331
+ return (__m64)((__v2si)__m1 > (__v2si)__m2);
1278
1332
  }
1279
1333
 
1280
1334
  /// Constructs a 64-bit integer vector initialized to zero.
@@ -1284,10 +1338,9 @@ _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
1284
1338
  /// This intrinsic corresponds to the <c> PXOR </c> instruction.
1285
1339
  ///
1286
1340
  /// \returns An initialized 64-bit integer vector with all elements set to zero.
1287
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1288
- _mm_setzero_si64(void)
1289
- {
1290
- return __extension__ (__m64){ 0LL };
1341
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1342
+ _mm_setzero_si64(void) {
1343
+ return __extension__(__m64){0LL};
1291
1344
  }
1292
1345
 
1293
1346
  /// Constructs a 64-bit integer vector initialized with the specified
@@ -1305,10 +1358,9 @@ _mm_setzero_si64(void)
1305
1358
  /// A 32-bit integer value used to initialize the lower 32 bits of the
1306
1359
  /// result.
1307
1360
  /// \returns An initialized 64-bit integer vector.
1308
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1309
- _mm_set_pi32(int __i1, int __i0)
1310
- {
1311
- return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
1361
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1362
+ _mm_set_pi32(int __i1, int __i0) {
1363
+ return __extension__(__m64)(__v2si){__i0, __i1};
1312
1364
  }
1313
1365
 
1314
1366
  /// Constructs a 64-bit integer vector initialized with the specified
@@ -1328,10 +1380,9 @@ _mm_set_pi32(int __i1, int __i0)
1328
1380
  /// \param __s0
1329
1381
  /// A 16-bit integer value used to initialize bits [15:0] of the result.
1330
1382
  /// \returns An initialized 64-bit integer vector.
1331
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1332
- _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
1333
- {
1334
- return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
1383
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1384
+ _mm_set_pi16(short __s3, short __s2, short __s1, short __s0) {
1385
+ return __extension__(__m64)(__v4hi){__s0, __s1, __s2, __s3};
1335
1386
  }
1336
1387
 
1337
1388
  /// Constructs a 64-bit integer vector initialized with the specified
@@ -1359,12 +1410,11 @@ _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
1359
1410
  /// \param __b0
1360
1411
  /// An 8-bit integer value used to initialize bits [7:0] of the result.
1361
1412
  /// \returns An initialized 64-bit integer vector.
1362
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1413
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1363
1414
  _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
1364
- char __b1, char __b0)
1365
- {
1366
- return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
1367
- __b4, __b5, __b6, __b7);
1415
+ char __b1, char __b0) {
1416
+ return __extension__(__m64)(__v8qi){__b0, __b1, __b2, __b3,
1417
+ __b4, __b5, __b6, __b7};
1368
1418
  }
1369
1419
 
1370
1420
  /// Constructs a 64-bit integer vector of [2 x i32], with each of the
@@ -1380,10 +1430,9 @@ _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
1380
1430
  /// A 32-bit integer value used to initialize each vector element of the
1381
1431
  /// result.
1382
1432
  /// \returns An initialized 64-bit integer vector of [2 x i32].
1383
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1384
- _mm_set1_pi32(int __i)
1385
- {
1386
- return _mm_set_pi32(__i, __i);
1433
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1434
+ _mm_set1_pi32(int __i) {
1435
+ return _mm_set_pi32(__i, __i);
1387
1436
  }
1388
1437
 
1389
1438
  /// Constructs a 64-bit integer vector of [4 x i16], with each of the
@@ -1399,10 +1448,9 @@ _mm_set1_pi32(int __i)
1399
1448
  /// A 16-bit integer value used to initialize each vector element of the
1400
1449
  /// result.
1401
1450
  /// \returns An initialized 64-bit integer vector of [4 x i16].
1402
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1403
- _mm_set1_pi16(short __w)
1404
- {
1405
- return _mm_set_pi16(__w, __w, __w, __w);
1451
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1452
+ _mm_set1_pi16(short __w) {
1453
+ return _mm_set_pi16(__w, __w, __w, __w);
1406
1454
  }
1407
1455
 
1408
1456
  /// Constructs a 64-bit integer vector of [8 x i8], with each of the
@@ -1417,10 +1465,9 @@ _mm_set1_pi16(short __w)
1417
1465
  /// An 8-bit integer value used to initialize each vector element of the
1418
1466
  /// result.
1419
1467
  /// \returns An initialized 64-bit integer vector of [8 x i8].
1420
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1421
- _mm_set1_pi8(char __b)
1422
- {
1423
- return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
1468
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1469
+ _mm_set1_pi8(char __b) {
1470
+ return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
1424
1471
  }
1425
1472
 
1426
1473
  /// Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1438,10 +1485,9 @@ _mm_set1_pi8(char __b)
1438
1485
  /// A 32-bit integer value used to initialize the upper 32 bits of the
1439
1486
  /// result.
1440
1487
  /// \returns An initialized 64-bit integer vector.
1441
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1442
- _mm_setr_pi32(int __i0, int __i1)
1443
- {
1444
- return _mm_set_pi32(__i1, __i0);
1488
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1489
+ _mm_setr_pi32(int __i0, int __i1) {
1490
+ return _mm_set_pi32(__i1, __i0);
1445
1491
  }
1446
1492
 
1447
1493
  /// Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1461,10 +1507,9 @@ _mm_setr_pi32(int __i0, int __i1)
1461
1507
  /// \param __w3
1462
1508
  /// A 16-bit integer value used to initialize bits [63:48] of the result.
1463
1509
  /// \returns An initialized 64-bit integer vector.
1464
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1465
- _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
1466
- {
1467
- return _mm_set_pi16(__w3, __w2, __w1, __w0);
1510
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1511
+ _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) {
1512
+ return _mm_set_pi16(__w3, __w2, __w1, __w0);
1468
1513
  }
1469
1514
 
1470
1515
  /// Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1492,14 +1537,15 @@ _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
1492
1537
  /// \param __b7
1493
1538
  /// An 8-bit integer value used to initialize bits [63:56] of the result.
1494
1539
  /// \returns An initialized 64-bit integer vector.
1495
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1540
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1496
1541
  _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
1497
- char __b6, char __b7)
1498
- {
1499
- return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
1542
+ char __b6, char __b7) {
1543
+ return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
1500
1544
  }
1501
1545
 
1502
- #undef __DEFAULT_FN_ATTRS
1546
+ #undef __anyext128
1547
+ #undef __trunc64
1548
+ #undef __DEFAULT_FN_ATTRS_SSE2
1503
1549
 
1504
1550
  /* Aliases for compatibility. */
1505
1551
  #define _m_empty _mm_empty