@cpp-linter/clang-tidy-win32-x64 19.1.0 → 21.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 (285) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{19 → 21}/include/__clang_cuda_device_functions.h +14 -0
  4. package/lib/clang/{19 → 21}/include/__clang_cuda_intrinsics.h +295 -8
  5. package/lib/clang/{19 → 21}/include/__clang_cuda_math.h +5 -0
  6. package/lib/clang/{19 → 21}/include/__clang_cuda_runtime_wrapper.h +1 -0
  7. package/lib/clang/{19 → 21}/include/__clang_cuda_texture_intrinsics.h +437 -2
  8. package/lib/clang/{19 → 21}/include/__clang_hip_cmath.h +15 -9
  9. package/lib/clang/{19 → 21}/include/__clang_hip_libdevice_declares.h +12 -20
  10. package/lib/clang/{19 → 21}/include/__clang_hip_math.h +110 -29
  11. package/lib/clang/{19 → 21}/include/__clang_hip_runtime_wrapper.h +3 -0
  12. package/lib/clang/21/include/__clang_spirv_builtins.h +217 -0
  13. package/lib/clang/{19 → 21}/include/__stdarg_va_arg.h +2 -2
  14. package/lib/clang/{19 → 21}/include/adcintrin.h +5 -0
  15. package/lib/clang/{19 → 21}/include/adxintrin.h +5 -0
  16. package/lib/clang/{19 → 21}/include/altivec.h +90 -87
  17. package/lib/clang/21/include/amdgpuintrin.h +191 -0
  18. package/lib/clang/21/include/amxavx512intrin.h +382 -0
  19. package/lib/clang/21/include/amxbf16transposeintrin.h +94 -0
  20. package/lib/clang/{19 → 21}/include/amxcomplexintrin.h +4 -6
  21. package/lib/clang/21/include/amxcomplextransposeintrin.h +303 -0
  22. package/lib/clang/{19 → 21}/include/amxfp16intrin.h +35 -0
  23. package/lib/clang/21/include/amxfp16transposeintrin.h +94 -0
  24. package/lib/clang/21/include/amxfp8intrin.h +230 -0
  25. package/lib/clang/{19 → 21}/include/amxintrin.h +5 -35
  26. package/lib/clang/21/include/amxmovrsintrin.h +48 -0
  27. package/lib/clang/21/include/amxmovrstransposeintrin.h +200 -0
  28. package/lib/clang/21/include/amxtf32intrin.h +108 -0
  29. package/lib/clang/21/include/amxtf32transposeintrin.h +105 -0
  30. package/lib/clang/21/include/amxtransposeintrin.h +248 -0
  31. package/lib/clang/{19/include/hlsl.h → 21/include/andes_vector.h} +7 -6
  32. package/lib/clang/{19 → 21}/include/arm_acle.h +29 -62
  33. package/lib/clang/{19 → 21}/include/arm_fp16.h +89 -89
  34. package/lib/clang/{19 → 21}/include/arm_neon.h +24549 -20140
  35. package/lib/clang/{19 → 21}/include/arm_sme.h +1016 -94
  36. package/lib/clang/{19 → 21}/include/arm_sve.h +4633 -3272
  37. package/lib/clang/{19 → 21}/include/arm_vector_types.h +87 -0
  38. package/lib/clang/21/include/avx10_2_512bf16intrin.h +561 -0
  39. package/lib/clang/21/include/avx10_2_512convertintrin.h +322 -0
  40. package/lib/clang/21/include/avx10_2_512minmaxintrin.h +127 -0
  41. package/lib/clang/21/include/avx10_2_512niintrin.h +314 -0
  42. package/lib/clang/21/include/avx10_2_512satcvtdsintrin.h +307 -0
  43. package/lib/clang/21/include/avx10_2_512satcvtintrin.h +301 -0
  44. package/lib/clang/21/include/avx10_2bf16intrin.h +1085 -0
  45. package/lib/clang/21/include/avx10_2convertintrin.h +3257 -0
  46. package/lib/clang/21/include/avx10_2copyintrin.h +66 -0
  47. package/lib/clang/21/include/avx10_2minmaxintrin.h +232 -0
  48. package/lib/clang/21/include/avx10_2niintrin.h +409 -0
  49. package/lib/clang/21/include/avx10_2satcvtdsintrin.h +376 -0
  50. package/lib/clang/21/include/avx10_2satcvtintrin.h +312 -0
  51. package/lib/clang/{19 → 21}/include/avx2intrin.h +9 -0
  52. package/lib/clang/{19 → 21}/include/avx512bitalgintrin.h +2 -2
  53. package/lib/clang/{19 → 21}/include/avx512fintrin.h +22 -14
  54. package/lib/clang/{19 → 21}/include/avx512fp16intrin.h +2 -1
  55. package/lib/clang/{19 → 21}/include/avx512vlbitalgintrin.h +4 -4
  56. package/lib/clang/{19 → 21}/include/avx512vpopcntdqintrin.h +12 -4
  57. package/lib/clang/{19 → 21}/include/avx512vpopcntdqvlintrin.h +16 -8
  58. package/lib/clang/{19 → 21}/include/avxintrin.h +30 -16
  59. package/lib/clang/{19 → 21}/include/avxvnniint16intrin.h +36 -77
  60. package/lib/clang/{19 → 21}/include/avxvnniint8intrin.h +36 -77
  61. package/lib/clang/{19 → 21}/include/bmi2intrin.h +15 -17
  62. package/lib/clang/{19 → 21}/include/bmiintrin.h +31 -41
  63. package/lib/clang/{19 → 21}/include/cmpccxaddintrin.h +1 -1
  64. package/lib/clang/{19 → 21}/include/cpuid.h +36 -33
  65. package/lib/clang/21/include/cuda_wrappers/bits/c++config.h +61 -0
  66. package/lib/clang/21/include/cuda_wrappers/cmath +44 -0
  67. package/lib/clang/{19 → 21}/include/cuda_wrappers/new +2 -0
  68. package/lib/clang/{19 → 21}/include/emmintrin.h +141 -107
  69. package/lib/clang/{19 → 21}/include/float.h +2 -11
  70. package/lib/clang/{19 → 21}/include/gfniintrin.h +32 -10
  71. package/lib/clang/21/include/gpuintrin.h +328 -0
  72. package/lib/clang/{19 → 21}/include/hexagon_types.h +8 -4
  73. package/lib/clang/{19/include/hlsl/hlsl_intrinsics.h → 21/include/hlsl/hlsl_alias_intrinsics.h} +1214 -100
  74. package/lib/clang/{19 → 21}/include/hlsl/hlsl_basic_types.h +47 -1
  75. package/lib/clang/21/include/hlsl/hlsl_compat_overloads.h +427 -0
  76. package/lib/clang/21/include/hlsl/hlsl_detail.h +54 -0
  77. package/lib/clang/21/include/hlsl/hlsl_intrinsic_helpers.h +144 -0
  78. package/lib/clang/21/include/hlsl/hlsl_intrinsics.h +526 -0
  79. package/lib/clang/21/include/hlsl/hlsl_spirv.h +28 -0
  80. package/lib/clang/21/include/hlsl.h +38 -0
  81. package/lib/clang/{19 → 21}/include/hvx_hexagon_protos.h +427 -0
  82. package/lib/clang/{19 → 21}/include/immintrin.h +45 -185
  83. package/lib/clang/{19 → 21}/include/intrin.h +41 -14
  84. package/lib/clang/{19 → 21}/include/intrin0.h +10 -1
  85. package/lib/clang/{19 → 21}/include/keylockerintrin.h +0 -9
  86. package/lib/clang/{19 → 21}/include/larchintrin.h +22 -8
  87. package/lib/clang/{19 → 21}/include/lasxintrin.h +27 -25
  88. package/lib/clang/{19 → 21}/include/limits.h +7 -4
  89. package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/ctype.h +38 -0
  90. package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/stdlib.h +9 -1
  91. package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  92. package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  93. package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  94. package/lib/clang/{19 → 21}/include/lsxintrin.h +27 -25
  95. package/lib/clang/{19 → 21}/include/lzcntintrin.h +13 -8
  96. package/lib/clang/{19 → 21}/include/mmintrin.h +209 -155
  97. package/lib/clang/{19 → 21}/include/module.modulemap +15 -4
  98. package/lib/clang/21/include/movrs_avx10_2_512intrin.h +98 -0
  99. package/lib/clang/21/include/movrs_avx10_2intrin.h +174 -0
  100. package/lib/clang/21/include/movrsintrin.h +59 -0
  101. package/lib/clang/21/include/nvptxintrin.h +219 -0
  102. package/lib/clang/{19 → 21}/include/opencl-c-base.h +23 -1
  103. package/lib/clang/{19 → 21}/include/opencl-c.h +298 -39
  104. package/lib/clang/{19 → 21}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
  105. package/lib/clang/{19 → 21}/include/openmp_wrappers/complex_cmath.h +7 -2
  106. package/lib/clang/{19 → 21}/include/pmmintrin.h +16 -3
  107. package/lib/clang/{19 → 21}/include/popcntintrin.h +7 -7
  108. package/lib/clang/{19 → 21}/include/prfchwintrin.h +10 -13
  109. package/lib/clang/{19 → 21}/include/ptrauth.h +65 -2
  110. package/lib/clang/21/include/riscv_corev_alu.h +128 -0
  111. package/lib/clang/{19 → 21}/include/riscv_vector.h +0 -5
  112. package/lib/clang/{19 → 21}/include/shaintrin.h +3 -2
  113. package/lib/clang/21/include/sm4evexintrin.h +32 -0
  114. package/lib/clang/{19 → 21}/include/smmintrin.h +6 -0
  115. package/lib/clang/{19 → 21}/include/stdalign.h +0 -5
  116. package/lib/clang/21/include/stdcountof.h +15 -0
  117. package/lib/clang/{19 → 21}/include/stdint.h +18 -129
  118. package/lib/clang/{19 → 21}/include/tbmintrin.h +25 -37
  119. package/lib/clang/{19 → 21}/include/tmmintrin.h +64 -38
  120. package/lib/clang/{19 → 21}/include/vecintrin.h +1784 -61
  121. package/lib/clang/{19 → 21}/include/wasm_simd128.h +167 -21
  122. package/lib/clang/{19 → 21}/include/x86gprintrin.h +0 -14
  123. package/lib/clang/{19 → 21}/include/x86intrin.h +0 -18
  124. package/lib/clang/{19 → 21}/include/xmmintrin.h +173 -179
  125. package/package.json +6 -6
  126. package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
  127. /package/lib/clang/{19 → 21}/include/__clang_cuda_builtin_vars.h +0 -0
  128. /package/lib/clang/{19 → 21}/include/__clang_cuda_cmath.h +0 -0
  129. /package/lib/clang/{19 → 21}/include/__clang_cuda_complex_builtins.h +0 -0
  130. /package/lib/clang/{19 → 21}/include/__clang_cuda_libdevice_declares.h +0 -0
  131. /package/lib/clang/{19 → 21}/include/__clang_cuda_math_forward_declares.h +0 -0
  132. /package/lib/clang/{19 → 21}/include/__clang_hip_stdlib.h +0 -0
  133. /package/lib/clang/{19 → 21}/include/__stdarg___gnuc_va_list.h +0 -0
  134. /package/lib/clang/{19 → 21}/include/__stdarg___va_copy.h +0 -0
  135. /package/lib/clang/{19 → 21}/include/__stdarg_header_macro.h +0 -0
  136. /package/lib/clang/{19 → 21}/include/__stdarg_va_copy.h +0 -0
  137. /package/lib/clang/{19 → 21}/include/__stdarg_va_list.h +0 -0
  138. /package/lib/clang/{19 → 21}/include/__stddef_header_macro.h +0 -0
  139. /package/lib/clang/{19 → 21}/include/__stddef_max_align_t.h +0 -0
  140. /package/lib/clang/{19 → 21}/include/__stddef_null.h +0 -0
  141. /package/lib/clang/{19 → 21}/include/__stddef_nullptr_t.h +0 -0
  142. /package/lib/clang/{19 → 21}/include/__stddef_offsetof.h +0 -0
  143. /package/lib/clang/{19 → 21}/include/__stddef_ptrdiff_t.h +0 -0
  144. /package/lib/clang/{19 → 21}/include/__stddef_rsize_t.h +0 -0
  145. /package/lib/clang/{19 → 21}/include/__stddef_size_t.h +0 -0
  146. /package/lib/clang/{19 → 21}/include/__stddef_unreachable.h +0 -0
  147. /package/lib/clang/{19 → 21}/include/__stddef_wchar_t.h +0 -0
  148. /package/lib/clang/{19 → 21}/include/__stddef_wint_t.h +0 -0
  149. /package/lib/clang/{19 → 21}/include/__wmmintrin_aes.h +0 -0
  150. /package/lib/clang/{19 → 21}/include/__wmmintrin_pclmul.h +0 -0
  151. /package/lib/clang/{19 → 21}/include/ammintrin.h +0 -0
  152. /package/lib/clang/{19 → 21}/include/arm64intr.h +0 -0
  153. /package/lib/clang/{19 → 21}/include/arm_bf16.h +0 -0
  154. /package/lib/clang/{19 → 21}/include/arm_cde.h +0 -0
  155. /package/lib/clang/{19 → 21}/include/arm_cmse.h +0 -0
  156. /package/lib/clang/{19 → 21}/include/arm_mve.h +0 -0
  157. /package/lib/clang/{19 → 21}/include/arm_neon_sve_bridge.h +0 -0
  158. /package/lib/clang/{19 → 21}/include/armintr.h +0 -0
  159. /package/lib/clang/{19 → 21}/include/avx512bf16intrin.h +0 -0
  160. /package/lib/clang/{19 → 21}/include/avx512bwintrin.h +0 -0
  161. /package/lib/clang/{19 → 21}/include/avx512cdintrin.h +0 -0
  162. /package/lib/clang/{19 → 21}/include/avx512dqintrin.h +0 -0
  163. /package/lib/clang/{19 → 21}/include/avx512ifmaintrin.h +0 -0
  164. /package/lib/clang/{19 → 21}/include/avx512ifmavlintrin.h +0 -0
  165. /package/lib/clang/{19 → 21}/include/avx512vbmi2intrin.h +0 -0
  166. /package/lib/clang/{19 → 21}/include/avx512vbmiintrin.h +0 -0
  167. /package/lib/clang/{19 → 21}/include/avx512vbmivlintrin.h +0 -0
  168. /package/lib/clang/{19 → 21}/include/avx512vlbf16intrin.h +0 -0
  169. /package/lib/clang/{19 → 21}/include/avx512vlbwintrin.h +0 -0
  170. /package/lib/clang/{19 → 21}/include/avx512vlcdintrin.h +0 -0
  171. /package/lib/clang/{19 → 21}/include/avx512vldqintrin.h +0 -0
  172. /package/lib/clang/{19 → 21}/include/avx512vlfp16intrin.h +0 -0
  173. /package/lib/clang/{19 → 21}/include/avx512vlintrin.h +0 -0
  174. /package/lib/clang/{19 → 21}/include/avx512vlvbmi2intrin.h +0 -0
  175. /package/lib/clang/{19 → 21}/include/avx512vlvnniintrin.h +0 -0
  176. /package/lib/clang/{19 → 21}/include/avx512vlvp2intersectintrin.h +0 -0
  177. /package/lib/clang/{19 → 21}/include/avx512vnniintrin.h +0 -0
  178. /package/lib/clang/{19 → 21}/include/avx512vp2intersectintrin.h +0 -0
  179. /package/lib/clang/{19 → 21}/include/avxifmaintrin.h +0 -0
  180. /package/lib/clang/{19 → 21}/include/avxneconvertintrin.h +0 -0
  181. /package/lib/clang/{19 → 21}/include/avxvnniintrin.h +0 -0
  182. /package/lib/clang/{19 → 21}/include/builtins.h +0 -0
  183. /package/lib/clang/{19 → 21}/include/cet.h +0 -0
  184. /package/lib/clang/{19 → 21}/include/cetintrin.h +0 -0
  185. /package/lib/clang/{19 → 21}/include/cldemoteintrin.h +0 -0
  186. /package/lib/clang/{19 → 21}/include/clflushoptintrin.h +0 -0
  187. /package/lib/clang/{19 → 21}/include/clwbintrin.h +0 -0
  188. /package/lib/clang/{19 → 21}/include/clzerointrin.h +0 -0
  189. /package/lib/clang/{19 → 21}/include/crc32intrin.h +0 -0
  190. /package/lib/clang/{19 → 21}/include/cuda_wrappers/algorithm +0 -0
  191. /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/basic_string.h +0 -0
  192. /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  193. /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  194. /package/lib/clang/{19 → 21}/include/cuda_wrappers/complex +0 -0
  195. /package/lib/clang/{19 → 21}/include/enqcmdintrin.h +0 -0
  196. /package/lib/clang/{19 → 21}/include/f16cintrin.h +0 -0
  197. /package/lib/clang/{19 → 21}/include/fma4intrin.h +0 -0
  198. /package/lib/clang/{19 → 21}/include/fmaintrin.h +0 -0
  199. /package/lib/clang/{19 → 21}/include/fxsrintrin.h +0 -0
  200. /package/lib/clang/{19 → 21}/include/hexagon_circ_brev_intrinsics.h +0 -0
  201. /package/lib/clang/{19 → 21}/include/hexagon_protos.h +0 -0
  202. /package/lib/clang/{19 → 21}/include/hresetintrin.h +0 -0
  203. /package/lib/clang/{19 → 21}/include/htmintrin.h +0 -0
  204. /package/lib/clang/{19 → 21}/include/htmxlintrin.h +0 -0
  205. /package/lib/clang/{19 → 21}/include/ia32intrin.h +0 -0
  206. /package/lib/clang/{19 → 21}/include/inttypes.h +0 -0
  207. /package/lib/clang/{19 → 21}/include/invpcidintrin.h +0 -0
  208. /package/lib/clang/{19 → 21}/include/iso646.h +0 -0
  209. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/assert.h +0 -0
  210. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/inttypes.h +0 -0
  211. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/stdio.h +0 -0
  212. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/string.h +0 -0
  213. /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/time.h +0 -0
  214. /package/lib/clang/{19 → 21}/include/lwpintrin.h +0 -0
  215. /package/lib/clang/{19 → 21}/include/mm3dnow.h +0 -0
  216. /package/lib/clang/{19 → 21}/include/mm_malloc.h +0 -0
  217. /package/lib/clang/{19 → 21}/include/movdirintrin.h +0 -0
  218. /package/lib/clang/{19 → 21}/include/msa.h +0 -0
  219. /package/lib/clang/{19 → 21}/include/mwaitxintrin.h +0 -0
  220. /package/lib/clang/{19 → 21}/include/nmmintrin.h +0 -0
  221. /package/lib/clang/{19 → 21}/include/openmp_wrappers/cmath +0 -0
  222. /package/lib/clang/{19 → 21}/include/openmp_wrappers/complex +0 -0
  223. /package/lib/clang/{19 → 21}/include/openmp_wrappers/complex.h +0 -0
  224. /package/lib/clang/{19 → 21}/include/openmp_wrappers/math.h +0 -0
  225. /package/lib/clang/{19 → 21}/include/openmp_wrappers/new +0 -0
  226. /package/lib/clang/{19 → 21}/include/pconfigintrin.h +0 -0
  227. /package/lib/clang/{19 → 21}/include/pkuintrin.h +0 -0
  228. /package/lib/clang/{19 → 21}/include/ppc_wrappers/bmi2intrin.h +0 -0
  229. /package/lib/clang/{19 → 21}/include/ppc_wrappers/bmiintrin.h +0 -0
  230. /package/lib/clang/{19 → 21}/include/ppc_wrappers/emmintrin.h +0 -0
  231. /package/lib/clang/{19 → 21}/include/ppc_wrappers/immintrin.h +0 -0
  232. /package/lib/clang/{19 → 21}/include/ppc_wrappers/mm_malloc.h +0 -0
  233. /package/lib/clang/{19 → 21}/include/ppc_wrappers/mmintrin.h +0 -0
  234. /package/lib/clang/{19 → 21}/include/ppc_wrappers/nmmintrin.h +0 -0
  235. /package/lib/clang/{19 → 21}/include/ppc_wrappers/pmmintrin.h +0 -0
  236. /package/lib/clang/{19 → 21}/include/ppc_wrappers/smmintrin.h +0 -0
  237. /package/lib/clang/{19 → 21}/include/ppc_wrappers/tmmintrin.h +0 -0
  238. /package/lib/clang/{19 → 21}/include/ppc_wrappers/x86gprintrin.h +0 -0
  239. /package/lib/clang/{19 → 21}/include/ppc_wrappers/x86intrin.h +0 -0
  240. /package/lib/clang/{19 → 21}/include/ppc_wrappers/xmmintrin.h +0 -0
  241. /package/lib/clang/{19 → 21}/include/prfchiintrin.h +0 -0
  242. /package/lib/clang/{19 → 21}/include/ptwriteintrin.h +0 -0
  243. /package/lib/clang/{19 → 21}/include/raointintrin.h +0 -0
  244. /package/lib/clang/{19 → 21}/include/rdpruintrin.h +0 -0
  245. /package/lib/clang/{19 → 21}/include/rdseedintrin.h +0 -0
  246. /package/lib/clang/{19 → 21}/include/riscv_bitmanip.h +0 -0
  247. /package/lib/clang/{19 → 21}/include/riscv_crypto.h +0 -0
  248. /package/lib/clang/{19 → 21}/include/riscv_ntlh.h +0 -0
  249. /package/lib/clang/{19 → 21}/include/rtmintrin.h +0 -0
  250. /package/lib/clang/{19 → 21}/include/s390intrin.h +0 -0
  251. /package/lib/clang/{19 → 21}/include/serializeintrin.h +0 -0
  252. /package/lib/clang/{19 → 21}/include/sgxintrin.h +0 -0
  253. /package/lib/clang/{19 → 21}/include/sha512intrin.h +0 -0
  254. /package/lib/clang/{19 → 21}/include/sifive_vector.h +0 -0
  255. /package/lib/clang/{19 → 21}/include/sm3intrin.h +0 -0
  256. /package/lib/clang/{19 → 21}/include/sm4intrin.h +0 -0
  257. /package/lib/clang/{19 → 21}/include/stdarg.h +0 -0
  258. /package/lib/clang/{19 → 21}/include/stdatomic.h +0 -0
  259. /package/lib/clang/{19 → 21}/include/stdbool.h +0 -0
  260. /package/lib/clang/{19 → 21}/include/stdckdint.h +0 -0
  261. /package/lib/clang/{19 → 21}/include/stddef.h +0 -0
  262. /package/lib/clang/{19 → 21}/include/stdnoreturn.h +0 -0
  263. /package/lib/clang/{19 → 21}/include/tgmath.h +0 -0
  264. /package/lib/clang/{19 → 21}/include/tsxldtrkintrin.h +0 -0
  265. /package/lib/clang/{19 → 21}/include/uintrintrin.h +0 -0
  266. /package/lib/clang/{19 → 21}/include/unwind.h +0 -0
  267. /package/lib/clang/{19 → 21}/include/usermsrintrin.h +0 -0
  268. /package/lib/clang/{19 → 21}/include/vadefs.h +0 -0
  269. /package/lib/clang/{19 → 21}/include/vaesintrin.h +0 -0
  270. /package/lib/clang/{19 → 21}/include/varargs.h +0 -0
  271. /package/lib/clang/{19 → 21}/include/velintrin.h +0 -0
  272. /package/lib/clang/{19 → 21}/include/velintrin_approx.h +0 -0
  273. /package/lib/clang/{19 → 21}/include/velintrin_gen.h +0 -0
  274. /package/lib/clang/{19 → 21}/include/vpclmulqdqintrin.h +0 -0
  275. /package/lib/clang/{19 → 21}/include/waitpkgintrin.h +0 -0
  276. /package/lib/clang/{19 → 21}/include/wbnoinvdintrin.h +0 -0
  277. /package/lib/clang/{19 → 21}/include/wmmintrin.h +0 -0
  278. /package/lib/clang/{19 → 21}/include/xopintrin.h +0 -0
  279. /package/lib/clang/{19 → 21}/include/xsavecintrin.h +0 -0
  280. /package/lib/clang/{19 → 21}/include/xsaveintrin.h +0 -0
  281. /package/lib/clang/{19 → 21}/include/xsaveoptintrin.h +0 -0
  282. /package/lib/clang/{19 → 21}/include/xsavesintrin.h +0 -0
  283. /package/lib/clang/{19 → 21}/include/xtestintrin.h +0 -0
  284. /package/lib/clang/{19 → 21}/include/yvals_core.h +0 -0
  285. /package/lib/clang/{19 → 21}/include/zos_wrappers/builtins.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,7 +134,7 @@ _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;
@@ -124,10 +159,11 @@ _mm_cvtm64_si64(__m64 __m)
124
159
  /// written to the upper 32 bits of the result.
125
160
  /// \returns A 64-bit integer vector of [8 x i8] containing the converted
126
161
  /// values.
127
- static __inline__ __m64 __DEFAULT_FN_ATTRS
162
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
128
163
  _mm_packs_pi16(__m64 __m1, __m64 __m2)
129
164
  {
130
- return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
165
+ return __trunc64(__builtin_ia32_packsswb128(
166
+ (__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){}));
131
167
  }
132
168
 
133
169
  /// Converts, with saturation, 32-bit signed integers from both 64-bit integer
@@ -149,10 +185,11 @@ _mm_packs_pi16(__m64 __m1, __m64 __m2)
149
185
  /// written to the upper 32 bits of the result.
150
186
  /// \returns A 64-bit integer vector of [4 x i16] containing the converted
151
187
  /// values.
152
- static __inline__ __m64 __DEFAULT_FN_ATTRS
188
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
153
189
  _mm_packs_pi32(__m64 __m1, __m64 __m2)
154
190
  {
155
- return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
191
+ return __trunc64(__builtin_ia32_packssdw128(
192
+ (__v4si)__builtin_shufflevector(__m1, __m2, 0, 1), (__v4si){}));
156
193
  }
157
194
 
158
195
  /// Converts, with saturation, 16-bit signed integers from both 64-bit integer
@@ -174,10 +211,11 @@ _mm_packs_pi32(__m64 __m1, __m64 __m2)
174
211
  /// written to the upper 32 bits of the result.
175
212
  /// \returns A 64-bit integer vector of [8 x i8] containing the converted
176
213
  /// values.
177
- static __inline__ __m64 __DEFAULT_FN_ATTRS
214
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
178
215
  _mm_packs_pu16(__m64 __m1, __m64 __m2)
179
216
  {
180
- return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
217
+ return __trunc64(__builtin_ia32_packuswb128(
218
+ (__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){}));
181
219
  }
182
220
 
183
221
  /// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8]
@@ -201,10 +239,11 @@ _mm_packs_pu16(__m64 __m1, __m64 __m2)
201
239
  /// Bits [63:56] are written to bits [63:56] of the result.
202
240
  /// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
203
241
  /// values.
204
- static __inline__ __m64 __DEFAULT_FN_ATTRS
242
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
205
243
  _mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
206
244
  {
207
- 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);
208
247
  }
209
248
 
210
249
  /// Unpacks the upper 32 bits from two 64-bit integer vectors of
@@ -224,10 +263,11 @@ _mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
224
263
  /// Bits [63:48] are written to bits [63:48] of the result.
225
264
  /// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
226
265
  /// values.
227
- static __inline__ __m64 __DEFAULT_FN_ATTRS
266
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
228
267
  _mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
229
268
  {
230
- return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
269
+ return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2,
270
+ 2, 6, 3, 7);
231
271
  }
232
272
 
233
273
  /// Unpacks the upper 32 bits from two 64-bit integer vectors of
@@ -245,10 +285,10 @@ _mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
245
285
  /// the upper 32 bits of the result.
246
286
  /// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
247
287
  /// values.
248
- static __inline__ __m64 __DEFAULT_FN_ATTRS
288
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
249
289
  _mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
250
290
  {
251
- return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
291
+ return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 1, 3);
252
292
  }
253
293
 
254
294
  /// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8]
@@ -272,10 +312,11 @@ _mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
272
312
  /// Bits [31:24] are written to bits [63:56] of the result.
273
313
  /// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
274
314
  /// values.
275
- static __inline__ __m64 __DEFAULT_FN_ATTRS
315
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
276
316
  _mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
277
317
  {
278
- 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);
279
320
  }
280
321
 
281
322
  /// Unpacks the lower 32 bits from two 64-bit integer vectors of
@@ -295,10 +336,11 @@ _mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
295
336
  /// Bits [31:16] are written to bits [63:48] of the result.
296
337
  /// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
297
338
  /// values.
298
- static __inline__ __m64 __DEFAULT_FN_ATTRS
339
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
299
340
  _mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
300
341
  {
301
- return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
342
+ return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2,
343
+ 0, 4, 1, 5);
302
344
  }
303
345
 
304
346
  /// Unpacks the lower 32 bits from two 64-bit integer vectors of
@@ -316,10 +358,10 @@ _mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
316
358
  /// the upper 32 bits of the result.
317
359
  /// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
318
360
  /// values.
319
- static __inline__ __m64 __DEFAULT_FN_ATTRS
361
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
320
362
  _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
321
363
  {
322
- return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
364
+ return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 0, 2);
323
365
  }
324
366
 
325
367
  /// Adds each 8-bit integer element of the first 64-bit integer vector
@@ -337,10 +379,10 @@ _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
337
379
  /// A 64-bit integer vector of [8 x i8].
338
380
  /// \returns A 64-bit integer vector of [8 x i8] containing the sums of both
339
381
  /// parameters.
340
- static __inline__ __m64 __DEFAULT_FN_ATTRS
382
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
341
383
  _mm_add_pi8(__m64 __m1, __m64 __m2)
342
384
  {
343
- return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
385
+ return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2));
344
386
  }
345
387
 
346
388
  /// Adds each 16-bit integer element of the first 64-bit integer vector
@@ -358,10 +400,10 @@ _mm_add_pi8(__m64 __m1, __m64 __m2)
358
400
  /// A 64-bit integer vector of [4 x i16].
359
401
  /// \returns A 64-bit integer vector of [4 x i16] containing the sums of both
360
402
  /// parameters.
361
- static __inline__ __m64 __DEFAULT_FN_ATTRS
403
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
362
404
  _mm_add_pi16(__m64 __m1, __m64 __m2)
363
405
  {
364
- return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
406
+ return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2));
365
407
  }
366
408
 
367
409
  /// Adds each 32-bit integer element of the first 64-bit integer vector
@@ -379,10 +421,10 @@ _mm_add_pi16(__m64 __m1, __m64 __m2)
379
421
  /// A 64-bit integer vector of [2 x i32].
380
422
  /// \returns A 64-bit integer vector of [2 x i32] containing the sums of both
381
423
  /// parameters.
382
- static __inline__ __m64 __DEFAULT_FN_ATTRS
424
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
383
425
  _mm_add_pi32(__m64 __m1, __m64 __m2)
384
426
  {
385
- return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
427
+ return (__m64)(((__v2su)__m1) + ((__v2su)__m2));
386
428
  }
387
429
 
388
430
  /// Adds, with saturation, each 8-bit signed integer element of the first
@@ -403,10 +445,10 @@ _mm_add_pi32(__m64 __m1, __m64 __m2)
403
445
  /// A 64-bit integer vector of [8 x i8].
404
446
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums
405
447
  /// of both parameters.
406
- static __inline__ __m64 __DEFAULT_FN_ATTRS
448
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
407
449
  _mm_adds_pi8(__m64 __m1, __m64 __m2)
408
450
  {
409
- return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
451
+ return (__m64)__builtin_elementwise_add_sat((__v8qs)__m1, (__v8qs)__m2);
410
452
  }
411
453
 
412
454
  /// Adds, with saturation, each 16-bit signed integer element of the first
@@ -427,10 +469,10 @@ _mm_adds_pi8(__m64 __m1, __m64 __m2)
427
469
  /// A 64-bit integer vector of [4 x i16].
428
470
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums
429
471
  /// of both parameters.
430
- static __inline__ __m64 __DEFAULT_FN_ATTRS
472
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
431
473
  _mm_adds_pi16(__m64 __m1, __m64 __m2)
432
474
  {
433
- return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
475
+ return (__m64)__builtin_elementwise_add_sat((__v4hi)__m1, (__v4hi)__m2);
434
476
  }
435
477
 
436
478
  /// Adds, with saturation, each 8-bit unsigned integer element of the first
@@ -450,10 +492,10 @@ _mm_adds_pi16(__m64 __m1, __m64 __m2)
450
492
  /// A 64-bit integer vector of [8 x i8].
451
493
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated
452
494
  /// unsigned sums of both parameters.
453
- static __inline__ __m64 __DEFAULT_FN_ATTRS
495
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
454
496
  _mm_adds_pu8(__m64 __m1, __m64 __m2)
455
497
  {
456
- return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
498
+ return (__m64)__builtin_elementwise_add_sat((__v8qu)__m1, (__v8qu)__m2);
457
499
  }
458
500
 
459
501
  /// Adds, with saturation, each 16-bit unsigned integer element of the first
@@ -473,10 +515,10 @@ _mm_adds_pu8(__m64 __m1, __m64 __m2)
473
515
  /// A 64-bit integer vector of [4 x i16].
474
516
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated
475
517
  /// unsigned sums of both parameters.
476
- static __inline__ __m64 __DEFAULT_FN_ATTRS
518
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
477
519
  _mm_adds_pu16(__m64 __m1, __m64 __m2)
478
520
  {
479
- return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
521
+ return (__m64)__builtin_elementwise_add_sat((__v4hu)__m1, (__v4hu)__m2);
480
522
  }
481
523
 
482
524
  /// Subtracts each 8-bit integer element of the second 64-bit integer
@@ -494,10 +536,10 @@ _mm_adds_pu16(__m64 __m1, __m64 __m2)
494
536
  /// A 64-bit integer vector of [8 x i8] containing the subtrahends.
495
537
  /// \returns A 64-bit integer vector of [8 x i8] containing the differences of
496
538
  /// both parameters.
497
- static __inline__ __m64 __DEFAULT_FN_ATTRS
539
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
498
540
  _mm_sub_pi8(__m64 __m1, __m64 __m2)
499
541
  {
500
- return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
542
+ return (__m64)(((__v8qu)__m1) - ((__v8qu)__m2));
501
543
  }
502
544
 
503
545
  /// Subtracts each 16-bit integer element of the second 64-bit integer
@@ -515,10 +557,10 @@ _mm_sub_pi8(__m64 __m1, __m64 __m2)
515
557
  /// A 64-bit integer vector of [4 x i16] containing the subtrahends.
516
558
  /// \returns A 64-bit integer vector of [4 x i16] containing the differences of
517
559
  /// both parameters.
518
- static __inline__ __m64 __DEFAULT_FN_ATTRS
560
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
519
561
  _mm_sub_pi16(__m64 __m1, __m64 __m2)
520
562
  {
521
- return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
563
+ return (__m64)(((__v4hu)__m1) - ((__v4hu)__m2));
522
564
  }
523
565
 
524
566
  /// Subtracts each 32-bit integer element of the second 64-bit integer
@@ -536,10 +578,10 @@ _mm_sub_pi16(__m64 __m1, __m64 __m2)
536
578
  /// A 64-bit integer vector of [2 x i32] containing the subtrahends.
537
579
  /// \returns A 64-bit integer vector of [2 x i32] containing the differences of
538
580
  /// both parameters.
539
- static __inline__ __m64 __DEFAULT_FN_ATTRS
581
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
540
582
  _mm_sub_pi32(__m64 __m1, __m64 __m2)
541
583
  {
542
- return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
584
+ return (__m64)(((__v2su)__m1) - ((__v2su)__m2));
543
585
  }
544
586
 
545
587
  /// Subtracts, with saturation, each 8-bit signed integer element of the second
@@ -560,10 +602,10 @@ _mm_sub_pi32(__m64 __m1, __m64 __m2)
560
602
  /// A 64-bit integer vector of [8 x i8] containing the subtrahends.
561
603
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated
562
604
  /// differences of both parameters.
563
- static __inline__ __m64 __DEFAULT_FN_ATTRS
605
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
564
606
  _mm_subs_pi8(__m64 __m1, __m64 __m2)
565
607
  {
566
- return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
608
+ return (__m64)__builtin_elementwise_sub_sat((__v8qs)__m1, (__v8qs)__m2);
567
609
  }
568
610
 
569
611
  /// Subtracts, with saturation, each 16-bit signed integer element of the
@@ -584,10 +626,10 @@ _mm_subs_pi8(__m64 __m1, __m64 __m2)
584
626
  /// A 64-bit integer vector of [4 x i16] containing the subtrahends.
585
627
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated
586
628
  /// differences of both parameters.
587
- static __inline__ __m64 __DEFAULT_FN_ATTRS
629
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
588
630
  _mm_subs_pi16(__m64 __m1, __m64 __m2)
589
631
  {
590
- return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
632
+ return (__m64)__builtin_elementwise_sub_sat((__v4hi)__m1, (__v4hi)__m2);
591
633
  }
592
634
 
593
635
  /// Subtracts each 8-bit unsigned integer element of the second 64-bit
@@ -608,10 +650,10 @@ _mm_subs_pi16(__m64 __m1, __m64 __m2)
608
650
  /// A 64-bit integer vector of [8 x i8] containing the subtrahends.
609
651
  /// \returns A 64-bit integer vector of [8 x i8] containing the saturated
610
652
  /// differences of both parameters.
611
- static __inline__ __m64 __DEFAULT_FN_ATTRS
653
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
612
654
  _mm_subs_pu8(__m64 __m1, __m64 __m2)
613
655
  {
614
- return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
656
+ return (__m64)__builtin_elementwise_sub_sat((__v8qu)__m1, (__v8qu)__m2);
615
657
  }
616
658
 
617
659
  /// Subtracts each 16-bit unsigned integer element of the second 64-bit
@@ -632,10 +674,10 @@ _mm_subs_pu8(__m64 __m1, __m64 __m2)
632
674
  /// A 64-bit integer vector of [4 x i16] containing the subtrahends.
633
675
  /// \returns A 64-bit integer vector of [4 x i16] containing the saturated
634
676
  /// differences of both parameters.
635
- static __inline__ __m64 __DEFAULT_FN_ATTRS
677
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
636
678
  _mm_subs_pu16(__m64 __m1, __m64 __m2)
637
679
  {
638
- return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
680
+ return (__m64)__builtin_elementwise_sub_sat((__v4hu)__m1, (__v4hu)__m2);
639
681
  }
640
682
 
641
683
  /// Multiplies each 16-bit signed integer element of the first 64-bit
@@ -659,10 +701,11 @@ _mm_subs_pu16(__m64 __m1, __m64 __m2)
659
701
  /// A 64-bit integer vector of [4 x i16].
660
702
  /// \returns A 64-bit integer vector of [2 x i32] containing the sums of
661
703
  /// products of both parameters.
662
- static __inline__ __m64 __DEFAULT_FN_ATTRS
704
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
663
705
  _mm_madd_pi16(__m64 __m1, __m64 __m2)
664
706
  {
665
- return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
707
+ return __trunc64(__builtin_ia32_pmaddwd128((__v8hi)__anyext128(__m1),
708
+ (__v8hi)__anyext128(__m2)));
666
709
  }
667
710
 
668
711
  /// Multiplies each 16-bit signed integer element of the first 64-bit
@@ -680,10 +723,11 @@ _mm_madd_pi16(__m64 __m1, __m64 __m2)
680
723
  /// A 64-bit integer vector of [4 x i16].
681
724
  /// \returns A 64-bit integer vector of [4 x i16] containing the upper 16 bits
682
725
  /// of the products of both parameters.
683
- static __inline__ __m64 __DEFAULT_FN_ATTRS
726
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
684
727
  _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
685
728
  {
686
- return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
729
+ return __trunc64(__builtin_ia32_pmulhw128((__v8hi)__anyext128(__m1),
730
+ (__v8hi)__anyext128(__m2)));
687
731
  }
688
732
 
689
733
  /// Multiplies each 16-bit signed integer element of the first 64-bit
@@ -701,10 +745,10 @@ _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
701
745
  /// A 64-bit integer vector of [4 x i16].
702
746
  /// \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits
703
747
  /// of the products of both parameters.
704
- static __inline__ __m64 __DEFAULT_FN_ATTRS
748
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
705
749
  _mm_mullo_pi16(__m64 __m1, __m64 __m2)
706
750
  {
707
- return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
751
+ return (__m64)(((__v4hu)__m1) * ((__v4hu)__m2));
708
752
  }
709
753
 
710
754
  /// Left-shifts each 16-bit signed integer element of the first
@@ -724,10 +768,11 @@ _mm_mullo_pi16(__m64 __m1, __m64 __m2)
724
768
  /// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
725
769
  /// values. If \a __count is greater or equal to 16, the result is set to all
726
770
  /// 0.
727
- static __inline__ __m64 __DEFAULT_FN_ATTRS
771
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
728
772
  _mm_sll_pi16(__m64 __m, __m64 __count)
729
773
  {
730
- return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
774
+ return __trunc64(__builtin_ia32_psllw128((__v8hi)__anyext128(__m),
775
+ (__v8hi)__anyext128(__count)));
731
776
  }
732
777
 
733
778
  /// Left-shifts each 16-bit signed integer element of a 64-bit integer
@@ -746,10 +791,11 @@ _mm_sll_pi16(__m64 __m, __m64 __count)
746
791
  /// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
747
792
  /// values. If \a __count is greater or equal to 16, the result is set to all
748
793
  /// 0.
749
- static __inline__ __m64 __DEFAULT_FN_ATTRS
794
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
750
795
  _mm_slli_pi16(__m64 __m, int __count)
751
796
  {
752
- return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
797
+ return __trunc64(__builtin_ia32_psllwi128((__v8hi)__anyext128(__m),
798
+ __count));
753
799
  }
754
800
 
755
801
  /// Left-shifts each 32-bit signed integer element of the first
@@ -769,10 +815,11 @@ _mm_slli_pi16(__m64 __m, int __count)
769
815
  /// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
770
816
  /// values. If \a __count is greater or equal to 32, the result is set to all
771
817
  /// 0.
772
- static __inline__ __m64 __DEFAULT_FN_ATTRS
818
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
773
819
  _mm_sll_pi32(__m64 __m, __m64 __count)
774
820
  {
775
- return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
821
+ return __trunc64(__builtin_ia32_pslld128((__v4si)__anyext128(__m),
822
+ (__v4si)__anyext128(__count)));
776
823
  }
777
824
 
778
825
  /// Left-shifts each 32-bit signed integer element of a 64-bit integer
@@ -791,10 +838,11 @@ _mm_sll_pi32(__m64 __m, __m64 __count)
791
838
  /// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
792
839
  /// values. If \a __count is greater or equal to 32, the result is set to all
793
840
  /// 0.
794
- static __inline__ __m64 __DEFAULT_FN_ATTRS
841
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
795
842
  _mm_slli_pi32(__m64 __m, int __count)
796
843
  {
797
- return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
844
+ return __trunc64(__builtin_ia32_pslldi128((__v4si)__anyext128(__m),
845
+ __count));
798
846
  }
799
847
 
800
848
  /// Left-shifts the first 64-bit integer parameter by the number of bits
@@ -811,10 +859,11 @@ _mm_slli_pi32(__m64 __m, int __count)
811
859
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
812
860
  /// \returns A 64-bit integer vector containing the left-shifted value. If
813
861
  /// \a __count is greater or equal to 64, the result is set to 0.
814
- static __inline__ __m64 __DEFAULT_FN_ATTRS
862
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
815
863
  _mm_sll_si64(__m64 __m, __m64 __count)
816
864
  {
817
- return (__m64)__builtin_ia32_psllq((__v1di)__m, __count);
865
+ return __trunc64(__builtin_ia32_psllq128((__v2di)__anyext128(__m),
866
+ (__v2di)__anyext128(__count)));
818
867
  }
819
868
 
820
869
  /// Left-shifts the first parameter, which is a 64-bit integer, by the
@@ -831,10 +880,11 @@ _mm_sll_si64(__m64 __m, __m64 __count)
831
880
  /// A 32-bit integer value.
832
881
  /// \returns A 64-bit integer vector containing the left-shifted value. If
833
882
  /// \a __count is greater or equal to 64, the result is set to 0.
834
- static __inline__ __m64 __DEFAULT_FN_ATTRS
883
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
835
884
  _mm_slli_si64(__m64 __m, int __count)
836
885
  {
837
- return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count);
886
+ return __trunc64(__builtin_ia32_psllqi128((__v2di)__anyext128(__m),
887
+ __count));
838
888
  }
839
889
 
840
890
  /// Right-shifts each 16-bit integer element of the first parameter,
@@ -855,10 +905,11 @@ _mm_slli_si64(__m64 __m, int __count)
855
905
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
856
906
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
857
907
  /// values.
858
- static __inline__ __m64 __DEFAULT_FN_ATTRS
908
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
859
909
  _mm_sra_pi16(__m64 __m, __m64 __count)
860
910
  {
861
- return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
911
+ return __trunc64(__builtin_ia32_psraw128((__v8hi)__anyext128(__m),
912
+ (__v8hi)__anyext128(__count)));
862
913
  }
863
914
 
864
915
  /// Right-shifts each 16-bit integer element of a 64-bit integer vector
@@ -878,10 +929,11 @@ _mm_sra_pi16(__m64 __m, __m64 __count)
878
929
  /// A 32-bit integer value.
879
930
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
880
931
  /// values.
881
- static __inline__ __m64 __DEFAULT_FN_ATTRS
932
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
882
933
  _mm_srai_pi16(__m64 __m, int __count)
883
934
  {
884
- return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
935
+ return __trunc64(__builtin_ia32_psrawi128((__v8hi)__anyext128(__m),
936
+ __count));
885
937
  }
886
938
 
887
939
  /// Right-shifts each 32-bit integer element of the first parameter,
@@ -902,10 +954,11 @@ _mm_srai_pi16(__m64 __m, int __count)
902
954
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
903
955
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
904
956
  /// values.
905
- static __inline__ __m64 __DEFAULT_FN_ATTRS
957
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
906
958
  _mm_sra_pi32(__m64 __m, __m64 __count)
907
959
  {
908
- return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
960
+ return __trunc64(__builtin_ia32_psrad128((__v4si)__anyext128(__m),
961
+ (__v4si)__anyext128(__count)));
909
962
  }
910
963
 
911
964
  /// Right-shifts each 32-bit integer element of a 64-bit integer vector
@@ -925,10 +978,11 @@ _mm_sra_pi32(__m64 __m, __m64 __count)
925
978
  /// A 32-bit integer value.
926
979
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
927
980
  /// values.
928
- static __inline__ __m64 __DEFAULT_FN_ATTRS
981
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
929
982
  _mm_srai_pi32(__m64 __m, int __count)
930
983
  {
931
- return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
984
+ return __trunc64(__builtin_ia32_psradi128((__v4si)__anyext128(__m),
985
+ __count));
932
986
  }
933
987
 
934
988
  /// Right-shifts each 16-bit integer element of the first parameter,
@@ -948,10 +1002,11 @@ _mm_srai_pi32(__m64 __m, int __count)
948
1002
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
949
1003
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
950
1004
  /// values.
951
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1005
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
952
1006
  _mm_srl_pi16(__m64 __m, __m64 __count)
953
1007
  {
954
- return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
1008
+ return __trunc64(__builtin_ia32_psrlw128((__v8hi)__anyext128(__m),
1009
+ (__v8hi)__anyext128(__count)));
955
1010
  }
956
1011
 
957
1012
  /// Right-shifts each 16-bit integer element of a 64-bit integer vector
@@ -970,10 +1025,11 @@ _mm_srl_pi16(__m64 __m, __m64 __count)
970
1025
  /// A 32-bit integer value.
971
1026
  /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
972
1027
  /// values.
973
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1028
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
974
1029
  _mm_srli_pi16(__m64 __m, int __count)
975
1030
  {
976
- return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
1031
+ return __trunc64(__builtin_ia32_psrlwi128((__v8hi)__anyext128(__m),
1032
+ __count));
977
1033
  }
978
1034
 
979
1035
  /// Right-shifts each 32-bit integer element of the first parameter,
@@ -993,10 +1049,11 @@ _mm_srli_pi16(__m64 __m, int __count)
993
1049
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
994
1050
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
995
1051
  /// values.
996
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1052
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
997
1053
  _mm_srl_pi32(__m64 __m, __m64 __count)
998
1054
  {
999
- return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
1055
+ return __trunc64(__builtin_ia32_psrld128((__v4si)__anyext128(__m),
1056
+ (__v4si)__anyext128(__count)));
1000
1057
  }
1001
1058
 
1002
1059
  /// Right-shifts each 32-bit integer element of a 64-bit integer vector
@@ -1015,10 +1072,11 @@ _mm_srl_pi32(__m64 __m, __m64 __count)
1015
1072
  /// A 32-bit integer value.
1016
1073
  /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
1017
1074
  /// values.
1018
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1075
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1019
1076
  _mm_srli_pi32(__m64 __m, int __count)
1020
1077
  {
1021
- return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
1078
+ return __trunc64(__builtin_ia32_psrldi128((__v4si)__anyext128(__m),
1079
+ __count));
1022
1080
  }
1023
1081
 
1024
1082
  /// Right-shifts the first 64-bit integer parameter by the number of bits
@@ -1035,10 +1093,11 @@ _mm_srli_pi32(__m64 __m, int __count)
1035
1093
  /// \param __count
1036
1094
  /// A 64-bit integer vector interpreted as a single 64-bit integer.
1037
1095
  /// \returns A 64-bit integer vector containing the right-shifted value.
1038
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1096
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1039
1097
  _mm_srl_si64(__m64 __m, __m64 __count)
1040
1098
  {
1041
- return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count);
1099
+ return __trunc64(__builtin_ia32_psrlq128((__v2di)__anyext128(__m),
1100
+ (__v2di)__anyext128(__count)));
1042
1101
  }
1043
1102
 
1044
1103
  /// Right-shifts the first parameter, which is a 64-bit integer, by the
@@ -1056,10 +1115,11 @@ _mm_srl_si64(__m64 __m, __m64 __count)
1056
1115
  /// \param __count
1057
1116
  /// A 32-bit integer value.
1058
1117
  /// \returns A 64-bit integer vector containing the right-shifted value.
1059
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1118
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1060
1119
  _mm_srli_si64(__m64 __m, int __count)
1061
1120
  {
1062
- return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count);
1121
+ return __trunc64(__builtin_ia32_psrlqi128((__v2di)__anyext128(__m),
1122
+ __count));
1063
1123
  }
1064
1124
 
1065
1125
  /// Performs a bitwise AND of two 64-bit integer vectors.
@@ -1074,10 +1134,10 @@ _mm_srli_si64(__m64 __m, int __count)
1074
1134
  /// A 64-bit integer vector.
1075
1135
  /// \returns A 64-bit integer vector containing the bitwise AND of both
1076
1136
  /// parameters.
1077
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1137
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1078
1138
  _mm_and_si64(__m64 __m1, __m64 __m2)
1079
1139
  {
1080
- return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2);
1140
+ return (__m64)(((__v1du)__m1) & ((__v1du)__m2));
1081
1141
  }
1082
1142
 
1083
1143
  /// Performs a bitwise NOT of the first 64-bit integer vector, and then
@@ -1095,10 +1155,10 @@ _mm_and_si64(__m64 __m1, __m64 __m2)
1095
1155
  /// A 64-bit integer vector.
1096
1156
  /// \returns A 64-bit integer vector containing the bitwise AND of the second
1097
1157
  /// parameter and the one's complement of the first parameter.
1098
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1158
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1099
1159
  _mm_andnot_si64(__m64 __m1, __m64 __m2)
1100
1160
  {
1101
- return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2);
1161
+ return (__m64)(~((__v1du)__m1) & ((__v1du)__m2));
1102
1162
  }
1103
1163
 
1104
1164
  /// Performs a bitwise OR of two 64-bit integer vectors.
@@ -1113,10 +1173,10 @@ _mm_andnot_si64(__m64 __m1, __m64 __m2)
1113
1173
  /// A 64-bit integer vector.
1114
1174
  /// \returns A 64-bit integer vector containing the bitwise OR of both
1115
1175
  /// parameters.
1116
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1176
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1117
1177
  _mm_or_si64(__m64 __m1, __m64 __m2)
1118
1178
  {
1119
- return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2);
1179
+ return (__m64)(((__v1du)__m1) | ((__v1du)__m2));
1120
1180
  }
1121
1181
 
1122
1182
  /// Performs a bitwise exclusive OR of two 64-bit integer vectors.
@@ -1131,10 +1191,10 @@ _mm_or_si64(__m64 __m1, __m64 __m2)
1131
1191
  /// A 64-bit integer vector.
1132
1192
  /// \returns A 64-bit integer vector containing the bitwise exclusive OR of both
1133
1193
  /// parameters.
1134
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1194
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1135
1195
  _mm_xor_si64(__m64 __m1, __m64 __m2)
1136
1196
  {
1137
- return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2);
1197
+ return (__m64)(((__v1du)__m1) ^ ((__v1du)__m2));
1138
1198
  }
1139
1199
 
1140
1200
  /// Compares the 8-bit integer elements of two 64-bit integer vectors of
@@ -1153,10 +1213,10 @@ _mm_xor_si64(__m64 __m1, __m64 __m2)
1153
1213
  /// A 64-bit integer vector of [8 x i8].
1154
1214
  /// \returns A 64-bit integer vector of [8 x i8] containing the comparison
1155
1215
  /// results.
1156
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1216
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1157
1217
  _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
1158
1218
  {
1159
- return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
1219
+ return (__m64)(((__v8qi)__m1) == ((__v8qi)__m2));
1160
1220
  }
1161
1221
 
1162
1222
  /// Compares the 16-bit integer elements of two 64-bit integer vectors of
@@ -1175,10 +1235,10 @@ _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
1175
1235
  /// A 64-bit integer vector of [4 x i16].
1176
1236
  /// \returns A 64-bit integer vector of [4 x i16] containing the comparison
1177
1237
  /// results.
1178
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1238
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1179
1239
  _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
1180
1240
  {
1181
- return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
1241
+ return (__m64)(((__v4hi)__m1) == ((__v4hi)__m2));
1182
1242
  }
1183
1243
 
1184
1244
  /// Compares the 32-bit integer elements of two 64-bit integer vectors of
@@ -1197,10 +1257,10 @@ _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
1197
1257
  /// A 64-bit integer vector of [2 x i32].
1198
1258
  /// \returns A 64-bit integer vector of [2 x i32] containing the comparison
1199
1259
  /// results.
1200
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1260
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1201
1261
  _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
1202
1262
  {
1203
- return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
1263
+ return (__m64)(((__v2si)__m1) == ((__v2si)__m2));
1204
1264
  }
1205
1265
 
1206
1266
  /// Compares the 8-bit integer elements of two 64-bit integer vectors of
@@ -1219,10 +1279,12 @@ _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
1219
1279
  /// A 64-bit integer vector of [8 x i8].
1220
1280
  /// \returns A 64-bit integer vector of [8 x i8] containing the comparison
1221
1281
  /// results.
1222
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1282
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1223
1283
  _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
1224
1284
  {
1225
- 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);
1226
1288
  }
1227
1289
 
1228
1290
  /// Compares the 16-bit integer elements of two 64-bit integer vectors of
@@ -1241,10 +1303,10 @@ _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
1241
1303
  /// A 64-bit integer vector of [4 x i16].
1242
1304
  /// \returns A 64-bit integer vector of [4 x i16] containing the comparison
1243
1305
  /// results.
1244
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1306
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1245
1307
  _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
1246
1308
  {
1247
- return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
1309
+ return (__m64)((__v4hi)__m1 > (__v4hi)__m2);
1248
1310
  }
1249
1311
 
1250
1312
  /// Compares the 32-bit integer elements of two 64-bit integer vectors of
@@ -1263,10 +1325,10 @@ _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
1263
1325
  /// A 64-bit integer vector of [2 x i32].
1264
1326
  /// \returns A 64-bit integer vector of [2 x i32] containing the comparison
1265
1327
  /// results.
1266
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1328
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
1267
1329
  _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
1268
1330
  {
1269
- return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
1331
+ return (__m64)((__v2si)__m1 > (__v2si)__m2);
1270
1332
  }
1271
1333
 
1272
1334
  /// Constructs a 64-bit integer vector initialized to zero.
@@ -1276,10 +1338,9 @@ _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
1276
1338
  /// This intrinsic corresponds to the <c> PXOR </c> instruction.
1277
1339
  ///
1278
1340
  /// \returns An initialized 64-bit integer vector with all elements set to zero.
1279
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1280
- _mm_setzero_si64(void)
1281
- {
1282
- return __extension__ (__m64){ 0LL };
1341
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1342
+ _mm_setzero_si64(void) {
1343
+ return __extension__(__m64){0LL};
1283
1344
  }
1284
1345
 
1285
1346
  /// Constructs a 64-bit integer vector initialized with the specified
@@ -1297,10 +1358,9 @@ _mm_setzero_si64(void)
1297
1358
  /// A 32-bit integer value used to initialize the lower 32 bits of the
1298
1359
  /// result.
1299
1360
  /// \returns An initialized 64-bit integer vector.
1300
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1301
- _mm_set_pi32(int __i1, int __i0)
1302
- {
1303
- 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};
1304
1364
  }
1305
1365
 
1306
1366
  /// Constructs a 64-bit integer vector initialized with the specified
@@ -1320,10 +1380,9 @@ _mm_set_pi32(int __i1, int __i0)
1320
1380
  /// \param __s0
1321
1381
  /// A 16-bit integer value used to initialize bits [15:0] of the result.
1322
1382
  /// \returns An initialized 64-bit integer vector.
1323
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1324
- _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
1325
- {
1326
- 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};
1327
1386
  }
1328
1387
 
1329
1388
  /// Constructs a 64-bit integer vector initialized with the specified
@@ -1351,12 +1410,11 @@ _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
1351
1410
  /// \param __b0
1352
1411
  /// An 8-bit integer value used to initialize bits [7:0] of the result.
1353
1412
  /// \returns An initialized 64-bit integer vector.
1354
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1413
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1355
1414
  _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
1356
- char __b1, char __b0)
1357
- {
1358
- return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
1359
- __b4, __b5, __b6, __b7);
1415
+ char __b1, char __b0) {
1416
+ return __extension__(__m64)(__v8qi){__b0, __b1, __b2, __b3,
1417
+ __b4, __b5, __b6, __b7};
1360
1418
  }
1361
1419
 
1362
1420
  /// Constructs a 64-bit integer vector of [2 x i32], with each of the
@@ -1372,10 +1430,9 @@ _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
1372
1430
  /// A 32-bit integer value used to initialize each vector element of the
1373
1431
  /// result.
1374
1432
  /// \returns An initialized 64-bit integer vector of [2 x i32].
1375
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1376
- _mm_set1_pi32(int __i)
1377
- {
1378
- 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);
1379
1436
  }
1380
1437
 
1381
1438
  /// Constructs a 64-bit integer vector of [4 x i16], with each of the
@@ -1391,10 +1448,9 @@ _mm_set1_pi32(int __i)
1391
1448
  /// A 16-bit integer value used to initialize each vector element of the
1392
1449
  /// result.
1393
1450
  /// \returns An initialized 64-bit integer vector of [4 x i16].
1394
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1395
- _mm_set1_pi16(short __w)
1396
- {
1397
- 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);
1398
1454
  }
1399
1455
 
1400
1456
  /// Constructs a 64-bit integer vector of [8 x i8], with each of the
@@ -1409,10 +1465,9 @@ _mm_set1_pi16(short __w)
1409
1465
  /// An 8-bit integer value used to initialize each vector element of the
1410
1466
  /// result.
1411
1467
  /// \returns An initialized 64-bit integer vector of [8 x i8].
1412
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1413
- _mm_set1_pi8(char __b)
1414
- {
1415
- 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);
1416
1471
  }
1417
1472
 
1418
1473
  /// Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1430,10 +1485,9 @@ _mm_set1_pi8(char __b)
1430
1485
  /// A 32-bit integer value used to initialize the upper 32 bits of the
1431
1486
  /// result.
1432
1487
  /// \returns An initialized 64-bit integer vector.
1433
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1434
- _mm_setr_pi32(int __i0, int __i1)
1435
- {
1436
- 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);
1437
1491
  }
1438
1492
 
1439
1493
  /// Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1453,10 +1507,9 @@ _mm_setr_pi32(int __i0, int __i1)
1453
1507
  /// \param __w3
1454
1508
  /// A 16-bit integer value used to initialize bits [63:48] of the result.
1455
1509
  /// \returns An initialized 64-bit integer vector.
1456
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1457
- _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
1458
- {
1459
- 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);
1460
1513
  }
1461
1514
 
1462
1515
  /// Constructs a 64-bit integer vector, initialized in reverse order with
@@ -1484,14 +1537,15 @@ _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
1484
1537
  /// \param __b7
1485
1538
  /// An 8-bit integer value used to initialize bits [63:56] of the result.
1486
1539
  /// \returns An initialized 64-bit integer vector.
1487
- static __inline__ __m64 __DEFAULT_FN_ATTRS
1540
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
1488
1541
  _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
1489
- char __b6, char __b7)
1490
- {
1491
- 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);
1492
1544
  }
1493
1545
 
1494
- #undef __DEFAULT_FN_ATTRS
1546
+ #undef __anyext128
1547
+ #undef __trunc64
1548
+ #undef __DEFAULT_FN_ATTRS_SSE2
1495
1549
 
1496
1550
  /* Aliases for compatibility. */
1497
1551
  #define _m_empty _mm_empty