@cpp-linter/clang-tidy-win32-x64 19.1.0 → 23.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/23/include/__clang_cuda_complex_builtins.h +236 -0
  4. package/lib/clang/{19 → 23}/include/__clang_cuda_device_functions.h +15 -1
  5. package/lib/clang/{19 → 23}/include/__clang_cuda_intrinsics.h +288 -20
  6. package/lib/clang/{19 → 23}/include/__clang_cuda_math.h +5 -0
  7. package/lib/clang/{19 → 23}/include/__clang_cuda_math_forward_declares.h +5 -0
  8. package/lib/clang/{19 → 23}/include/__clang_cuda_runtime_wrapper.h +28 -5
  9. package/lib/clang/{19 → 23}/include/__clang_cuda_texture_intrinsics.h +437 -2
  10. package/lib/clang/23/include/__clang_gpu_builtin_vars.h +71 -0
  11. package/lib/clang/23/include/__clang_gpu_device_functions.h +411 -0
  12. package/lib/clang/23/include/__clang_gpu_intrinsics.h +242 -0
  13. package/lib/clang/{19 → 23}/include/__clang_hip_cmath.h +15 -9
  14. package/lib/clang/{19 → 23}/include/__clang_hip_libdevice_declares.h +24 -139
  15. package/lib/clang/{19 → 23}/include/__clang_hip_math.h +115 -34
  16. package/lib/clang/{19 → 23}/include/__clang_hip_runtime_wrapper.h +12 -1
  17. package/lib/clang/23/include/__clang_spirv_builtins.h +217 -0
  18. package/lib/clang/23/include/__clang_spirv_libdevice_declares.h +170 -0
  19. package/lib/clang/23/include/__clang_spirv_math.h +719 -0
  20. package/lib/clang/{19/include/float.h → 23/include/__float_float.h} +14 -34
  21. package/lib/clang/23/include/__float_header_macro.h +12 -0
  22. package/lib/clang/23/include/__float_infinity_nan.h +20 -0
  23. package/lib/clang/{19 → 23}/include/__stdarg_va_arg.h +2 -2
  24. package/lib/clang/{19 → 23}/include/adcintrin.h +5 -0
  25. package/lib/clang/{19 → 23}/include/adxintrin.h +5 -0
  26. package/lib/clang/{19 → 23}/include/altivec.h +169 -96
  27. package/lib/clang/23/include/amdgpuintrin.h +164 -0
  28. package/lib/clang/23/include/amdhsa_abi.h +83 -0
  29. package/lib/clang/23/include/amo.h +220 -0
  30. package/lib/clang/23/include/amxavx512intrin.h +596 -0
  31. package/lib/clang/{19 → 23}/include/amxcomplexintrin.h +4 -6
  32. package/lib/clang/{19 → 23}/include/amxfp16intrin.h +35 -0
  33. package/lib/clang/23/include/amxfp8intrin.h +230 -0
  34. package/lib/clang/{19 → 23}/include/amxintrin.h +3 -35
  35. package/lib/clang/23/include/amxmovrsintrin.h +48 -0
  36. package/lib/clang/23/include/andes_vector.h +21 -0
  37. package/lib/clang/23/include/arm64_neon.h +21 -0
  38. package/lib/clang/{19 → 23}/include/arm64intr.h +10 -0
  39. package/lib/clang/{19 → 23}/include/arm_acle.h +67 -89
  40. package/lib/clang/{19 → 23}/include/arm_fp16.h +89 -89
  41. package/lib/clang/{19 → 23}/include/arm_neon.h +43614 -38901
  42. package/lib/clang/{19 → 23}/include/arm_sme.h +1028 -94
  43. package/lib/clang/{19 → 23}/include/arm_sve.h +7331 -5170
  44. package/lib/clang/{19 → 23}/include/arm_vector_types.h +87 -0
  45. package/lib/clang/23/include/avx10_2_512bf16intrin.h +568 -0
  46. package/lib/clang/23/include/avx10_2_512convertintrin.h +322 -0
  47. package/lib/clang/23/include/avx10_2_512minmaxintrin.h +127 -0
  48. package/lib/clang/23/include/avx10_2_512niintrin.h +314 -0
  49. package/lib/clang/23/include/avx10_2_512satcvtdsintrin.h +307 -0
  50. package/lib/clang/23/include/avx10_2_512satcvtintrin.h +301 -0
  51. package/lib/clang/23/include/avx10_2bf16intrin.h +1094 -0
  52. package/lib/clang/23/include/avx10_2convertintrin.h +3257 -0
  53. package/lib/clang/23/include/avx10_2copyintrin.h +66 -0
  54. package/lib/clang/23/include/avx10_2minmaxintrin.h +232 -0
  55. package/lib/clang/23/include/avx10_2niintrin.h +409 -0
  56. package/lib/clang/23/include/avx10_2satcvtdsintrin.h +376 -0
  57. package/lib/clang/23/include/avx10_2satcvtintrin.h +312 -0
  58. package/lib/clang/{19 → 23}/include/avx2intrin.h +284 -378
  59. package/lib/clang/{19 → 23}/include/avx512bf16intrin.h +25 -16
  60. package/lib/clang/{19 → 23}/include/avx512bitalgintrin.h +21 -32
  61. package/lib/clang/23/include/avx512bmmintrin.h +174 -0
  62. package/lib/clang/23/include/avx512bmmvlintrin.h +245 -0
  63. package/lib/clang/{19 → 23}/include/avx512bwintrin.h +405 -534
  64. package/lib/clang/23/include/avx512cdintrin.h +112 -0
  65. package/lib/clang/{19 → 23}/include/avx512dqintrin.h +132 -161
  66. package/lib/clang/{19 → 23}/include/avx512fintrin.h +1068 -1496
  67. package/lib/clang/{19 → 23}/include/avx512fp16intrin.h +126 -129
  68. package/lib/clang/23/include/avx512ifmaintrin.h +68 -0
  69. package/lib/clang/23/include/avx512ifmavlintrin.h +138 -0
  70. package/lib/clang/{19 → 23}/include/avx512vbmi2intrin.h +55 -48
  71. package/lib/clang/{19 → 23}/include/avx512vbmiintrin.h +19 -27
  72. package/lib/clang/{19 → 23}/include/avx512vbmivlintrin.h +35 -49
  73. package/lib/clang/{19 → 23}/include/avx512vlbf16intrin.h +32 -22
  74. package/lib/clang/{19 → 23}/include/avx512vlbitalgintrin.h +41 -57
  75. package/lib/clang/{19 → 23}/include/avx512vlbwintrin.h +494 -609
  76. package/lib/clang/23/include/avx512vlcdintrin.h +202 -0
  77. package/lib/clang/{19 → 23}/include/avx512vldqintrin.h +110 -127
  78. package/lib/clang/{19 → 23}/include/avx512vlfp16intrin.h +130 -111
  79. package/lib/clang/{19 → 23}/include/avx512vlintrin.h +1025 -1395
  80. package/lib/clang/{19 → 23}/include/avx512vlvbmi2intrin.h +102 -95
  81. package/lib/clang/{19 → 23}/include/avx512vlvnniintrin.h +50 -52
  82. package/lib/clang/{19 → 23}/include/avx512vlvp2intersectintrin.h +2 -2
  83. package/lib/clang/{19 → 23}/include/avx512vnniintrin.h +42 -45
  84. package/lib/clang/{19 → 23}/include/avx512vp2intersectintrin.h +2 -3
  85. package/lib/clang/{19 → 23}/include/avx512vpopcntdqintrin.h +10 -4
  86. package/lib/clang/{19 → 23}/include/avx512vpopcntdqvlintrin.h +20 -10
  87. package/lib/clang/{19 → 23}/include/avxifmaintrin.h +16 -0
  88. package/lib/clang/{19 → 23}/include/avxintrin.h +186 -248
  89. package/lib/clang/{19 → 23}/include/avxvnniint16intrin.h +130 -152
  90. package/lib/clang/{19 → 23}/include/avxvnniint8intrin.h +68 -85
  91. package/lib/clang/{19 → 23}/include/avxvnniintrin.h +39 -26
  92. package/lib/clang/{19 → 23}/include/bmi2intrin.h +15 -17
  93. package/lib/clang/{19 → 23}/include/bmiintrin.h +31 -41
  94. package/lib/clang/{19 → 23}/include/cmpccxaddintrin.h +1 -1
  95. package/lib/clang/{19 → 23}/include/cpuid.h +137 -37
  96. package/lib/clang/{19 → 23}/include/crc32intrin.h +10 -8
  97. package/lib/clang/23/include/cuda_wrappers/__utility/declval.h +28 -0
  98. package/lib/clang/23/include/cuda_wrappers/bits/c++config.h +61 -0
  99. package/lib/clang/23/include/cuda_wrappers/cmath +44 -0
  100. package/lib/clang/{19 → 23}/include/cuda_wrappers/new +2 -0
  101. package/lib/clang/{19 → 23}/include/emmintrin.h +306 -272
  102. package/lib/clang/23/include/endian.h +91 -0
  103. package/lib/clang/{19 → 23}/include/f16cintrin.h +23 -9
  104. package/lib/clang/23/include/float.h +48 -0
  105. package/lib/clang/23/include/fma4intrin.h +220 -0
  106. package/lib/clang/{19 → 23}/include/fmaintrin.h +96 -66
  107. package/lib/clang/{19 → 23}/include/gfniintrin.h +39 -12
  108. package/lib/clang/23/include/gpuintrin.h +348 -0
  109. package/lib/clang/{19 → 23}/include/hexagon_types.h +31 -24
  110. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics.h +222 -0
  111. package/lib/clang/23/include/hlsl/hlsl_alias_intrinsics_gen.inc +3869 -0
  112. package/lib/clang/23/include/hlsl/hlsl_basic_types.h +370 -0
  113. package/lib/clang/23/include/hlsl/hlsl_compat_overloads.h +559 -0
  114. package/lib/clang/23/include/hlsl/hlsl_detail.h +56 -0
  115. package/lib/clang/23/include/hlsl/hlsl_inline_intrinsics_gen.inc +546 -0
  116. package/lib/clang/23/include/hlsl/hlsl_intrinsic_helpers.h +170 -0
  117. package/lib/clang/23/include/hlsl/hlsl_intrinsics.h +331 -0
  118. package/lib/clang/23/include/hlsl/hlsl_spirv.h +28 -0
  119. package/lib/clang/23/include/hlsl.h +38 -0
  120. package/lib/clang/{19 → 23}/include/hvx_hexagon_protos.h +1041 -803
  121. package/lib/clang/{19 → 23}/include/immintrin.h +35 -185
  122. package/lib/clang/{19 → 23}/include/intrin.h +62 -21
  123. package/lib/clang/{19 → 23}/include/intrin0.h +10 -1
  124. package/lib/clang/{19 → 23}/include/keylockerintrin.h +0 -9
  125. package/lib/clang/{19 → 23}/include/larchintrin.h +24 -8
  126. package/lib/clang/{19 → 23}/include/lasxintrin.h +140 -25
  127. package/lib/clang/{19 → 23}/include/limits.h +7 -4
  128. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/assert.h +3 -5
  129. package/lib/clang/23/include/llvm_libc_wrappers/ctype.h +29 -0
  130. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/inttypes.h +3 -5
  131. package/lib/clang/23/include/llvm_libc_wrappers/stdio.h +52 -0
  132. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/stdlib.h +3 -16
  133. package/lib/clang/23/include/llvm_libc_wrappers/string.h +29 -0
  134. package/lib/clang/{19 → 23}/include/llvm_libc_wrappers/time.h +4 -10
  135. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  136. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  137. package/lib/clang/23/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  138. package/lib/clang/{19 → 23}/include/lsxintrin.h +27 -25
  139. package/lib/clang/{19 → 23}/include/lzcntintrin.h +13 -8
  140. package/lib/clang/{19 → 23}/include/mmintrin.h +241 -256
  141. package/lib/clang/{19 → 23}/include/module.modulemap +54 -9
  142. package/lib/clang/23/include/movrs_avx10_2_512intrin.h +98 -0
  143. package/lib/clang/23/include/movrs_avx10_2intrin.h +174 -0
  144. package/lib/clang/23/include/movrsintrin.h +59 -0
  145. package/lib/clang/23/include/nvptxintrin.h +208 -0
  146. package/lib/clang/{19 → 23}/include/opencl-c-base.h +28 -92
  147. package/lib/clang/{19 → 23}/include/opencl-c.h +506 -140
  148. package/lib/clang/{19 → 23}/include/openmp_wrappers/__clang_openmp_device_functions.h +18 -5
  149. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex +7 -1
  150. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex.h +6 -0
  151. package/lib/clang/{19 → 23}/include/openmp_wrappers/complex_cmath.h +7 -2
  152. package/lib/clang/{19 → 23}/include/openmp_wrappers/math.h +10 -0
  153. package/lib/clang/{19 → 23}/include/pmmintrin.h +24 -23
  154. package/lib/clang/{19 → 23}/include/popcntintrin.h +7 -7
  155. package/lib/clang/{19 → 23}/include/prfchwintrin.h +10 -13
  156. package/lib/clang/{19 → 23}/include/ptrauth.h +169 -14
  157. package/lib/clang/{19 → 23}/include/riscv_bitmanip.h +7 -0
  158. package/lib/clang/23/include/riscv_corev_alu.h +130 -0
  159. package/lib/clang/{19 → 23}/include/riscv_crypto.h +8 -0
  160. package/lib/clang/23/include/riscv_mips.h +36 -0
  161. package/lib/clang/23/include/riscv_nds.h +92 -0
  162. package/lib/clang/{19 → 23}/include/riscv_ntlh.h +2 -0
  163. package/lib/clang/23/include/riscv_packed_simd.h +644 -0
  164. package/lib/clang/{19 → 23}/include/riscv_vector.h +43 -5
  165. package/lib/clang/{19 → 23}/include/shaintrin.h +3 -2
  166. package/lib/clang/{19 → 23}/include/sifive_vector.h +76 -2
  167. package/lib/clang/23/include/sm4evexintrin.h +32 -0
  168. package/lib/clang/{19 → 23}/include/smmintrin.h +80 -56
  169. package/lib/clang/23/include/spirvintrin.h +167 -0
  170. package/lib/clang/{19 → 23}/include/stdalign.h +0 -5
  171. package/lib/clang/23/include/stdcountof.h +15 -0
  172. package/lib/clang/23/include/stddefer.h +19 -0
  173. package/lib/clang/{19 → 23}/include/stdint.h +23 -143
  174. package/lib/clang/{19 → 23}/include/tbmintrin.h +25 -37
  175. package/lib/clang/{19 → 23}/include/tmmintrin.h +125 -130
  176. package/lib/clang/{19 → 23}/include/vaesintrin.h +1 -2
  177. package/lib/clang/{19 → 23}/include/vecintrin.h +1783 -60
  178. package/lib/clang/{19 → 23}/include/wasm_simd128.h +184 -21
  179. package/lib/clang/{19 → 23}/include/x86gprintrin.h +0 -14
  180. package/lib/clang/{19 → 23}/include/x86intrin.h +0 -18
  181. package/lib/clang/{19 → 23}/include/xmmintrin.h +190 -221
  182. package/lib/clang/{19 → 23}/include/xopintrin.h +20 -10
  183. package/lib/clang/23/include/zos_wrappers/grp.h +19 -0
  184. package/lib/clang/23/include/zos_wrappers/locale.h +19 -0
  185. package/lib/clang/23/include/zos_wrappers/math.h +31 -0
  186. package/lib/clang/23/include/zos_wrappers/poll.h +19 -0
  187. package/lib/clang/23/include/zos_wrappers/stdlib.h +20 -0
  188. package/lib/clang/23/include/zos_wrappers/string.h +19 -0
  189. package/lib/clang/23/include/zos_wrappers/time.h +19 -0
  190. package/lib/clang/23/include/zos_wrappers/variant.h +19 -0
  191. package/package.json +6 -6
  192. package/lib/clang/19/include/__clang_cuda_complex_builtins.h +0 -285
  193. package/lib/clang/19/include/avx512cdintrin.h +0 -125
  194. package/lib/clang/19/include/avx512ifmaintrin.h +0 -70
  195. package/lib/clang/19/include/avx512ifmavlintrin.h +0 -111
  196. package/lib/clang/19/include/avx512vlcdintrin.h +0 -230
  197. package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
  198. package/lib/clang/19/include/fma4intrin.h +0 -218
  199. package/lib/clang/19/include/hlsl/hlsl_basic_types.h +0 -74
  200. package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +0 -1697
  201. package/lib/clang/19/include/hlsl.h +0 -15
  202. package/lib/clang/19/include/llvm_libc_wrappers/ctype.h +0 -102
  203. package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +0 -80
  204. package/lib/clang/19/include/llvm_libc_wrappers/string.h +0 -96
  205. /package/lib/clang/{19 → 23}/include/__clang_cuda_builtin_vars.h +0 -0
  206. /package/lib/clang/{19 → 23}/include/__clang_cuda_cmath.h +0 -0
  207. /package/lib/clang/{19 → 23}/include/__clang_cuda_libdevice_declares.h +0 -0
  208. /package/lib/clang/{19 → 23}/include/__clang_hip_stdlib.h +0 -0
  209. /package/lib/clang/{19 → 23}/include/__stdarg___gnuc_va_list.h +0 -0
  210. /package/lib/clang/{19 → 23}/include/__stdarg___va_copy.h +0 -0
  211. /package/lib/clang/{19 → 23}/include/__stdarg_header_macro.h +0 -0
  212. /package/lib/clang/{19 → 23}/include/__stdarg_va_copy.h +0 -0
  213. /package/lib/clang/{19 → 23}/include/__stdarg_va_list.h +0 -0
  214. /package/lib/clang/{19 → 23}/include/__stddef_header_macro.h +0 -0
  215. /package/lib/clang/{19 → 23}/include/__stddef_max_align_t.h +0 -0
  216. /package/lib/clang/{19 → 23}/include/__stddef_null.h +0 -0
  217. /package/lib/clang/{19 → 23}/include/__stddef_nullptr_t.h +0 -0
  218. /package/lib/clang/{19 → 23}/include/__stddef_offsetof.h +0 -0
  219. /package/lib/clang/{19 → 23}/include/__stddef_ptrdiff_t.h +0 -0
  220. /package/lib/clang/{19 → 23}/include/__stddef_rsize_t.h +0 -0
  221. /package/lib/clang/{19 → 23}/include/__stddef_size_t.h +0 -0
  222. /package/lib/clang/{19 → 23}/include/__stddef_unreachable.h +0 -0
  223. /package/lib/clang/{19 → 23}/include/__stddef_wchar_t.h +0 -0
  224. /package/lib/clang/{19 → 23}/include/__stddef_wint_t.h +0 -0
  225. /package/lib/clang/{19 → 23}/include/__wmmintrin_aes.h +0 -0
  226. /package/lib/clang/{19 → 23}/include/__wmmintrin_pclmul.h +0 -0
  227. /package/lib/clang/{19 → 23}/include/ammintrin.h +0 -0
  228. /package/lib/clang/{19 → 23}/include/arm_bf16.h +0 -0
  229. /package/lib/clang/{19 → 23}/include/arm_cde.h +0 -0
  230. /package/lib/clang/{19 → 23}/include/arm_cmse.h +0 -0
  231. /package/lib/clang/{19 → 23}/include/arm_mve.h +0 -0
  232. /package/lib/clang/{19 → 23}/include/arm_neon_sve_bridge.h +0 -0
  233. /package/lib/clang/{19 → 23}/include/armintr.h +0 -0
  234. /package/lib/clang/{19 → 23}/include/avxneconvertintrin.h +0 -0
  235. /package/lib/clang/{19 → 23}/include/builtins.h +0 -0
  236. /package/lib/clang/{19 → 23}/include/cet.h +0 -0
  237. /package/lib/clang/{19 → 23}/include/cetintrin.h +0 -0
  238. /package/lib/clang/{19 → 23}/include/cldemoteintrin.h +0 -0
  239. /package/lib/clang/{19 → 23}/include/clflushoptintrin.h +0 -0
  240. /package/lib/clang/{19 → 23}/include/clwbintrin.h +0 -0
  241. /package/lib/clang/{19 → 23}/include/clzerointrin.h +0 -0
  242. /package/lib/clang/{19 → 23}/include/cuda_wrappers/algorithm +0 -0
  243. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.h +0 -0
  244. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
  245. /package/lib/clang/{19 → 23}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
  246. /package/lib/clang/{19 → 23}/include/cuda_wrappers/complex +0 -0
  247. /package/lib/clang/{19 → 23}/include/enqcmdintrin.h +0 -0
  248. /package/lib/clang/{19 → 23}/include/fxsrintrin.h +0 -0
  249. /package/lib/clang/{19 → 23}/include/hexagon_circ_brev_intrinsics.h +0 -0
  250. /package/lib/clang/{19 → 23}/include/hexagon_protos.h +0 -0
  251. /package/lib/clang/{19 → 23}/include/hresetintrin.h +0 -0
  252. /package/lib/clang/{19 → 23}/include/htmintrin.h +0 -0
  253. /package/lib/clang/{19 → 23}/include/htmxlintrin.h +0 -0
  254. /package/lib/clang/{19 → 23}/include/ia32intrin.h +0 -0
  255. /package/lib/clang/{19 → 23}/include/inttypes.h +0 -0
  256. /package/lib/clang/{19 → 23}/include/invpcidintrin.h +0 -0
  257. /package/lib/clang/{19 → 23}/include/iso646.h +0 -0
  258. /package/lib/clang/{19 → 23}/include/lwpintrin.h +0 -0
  259. /package/lib/clang/{19 → 23}/include/mm3dnow.h +0 -0
  260. /package/lib/clang/{19 → 23}/include/mm_malloc.h +0 -0
  261. /package/lib/clang/{19 → 23}/include/movdirintrin.h +0 -0
  262. /package/lib/clang/{19 → 23}/include/msa.h +0 -0
  263. /package/lib/clang/{19 → 23}/include/mwaitxintrin.h +0 -0
  264. /package/lib/clang/{19 → 23}/include/nmmintrin.h +0 -0
  265. /package/lib/clang/{19 → 23}/include/openmp_wrappers/cmath +0 -0
  266. /package/lib/clang/{19 → 23}/include/openmp_wrappers/new +0 -0
  267. /package/lib/clang/{19 → 23}/include/pconfigintrin.h +0 -0
  268. /package/lib/clang/{19 → 23}/include/pkuintrin.h +0 -0
  269. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmi2intrin.h +0 -0
  270. /package/lib/clang/{19 → 23}/include/ppc_wrappers/bmiintrin.h +0 -0
  271. /package/lib/clang/{19 → 23}/include/ppc_wrappers/emmintrin.h +0 -0
  272. /package/lib/clang/{19 → 23}/include/ppc_wrappers/immintrin.h +0 -0
  273. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mm_malloc.h +0 -0
  274. /package/lib/clang/{19 → 23}/include/ppc_wrappers/mmintrin.h +0 -0
  275. /package/lib/clang/{19 → 23}/include/ppc_wrappers/nmmintrin.h +0 -0
  276. /package/lib/clang/{19 → 23}/include/ppc_wrappers/pmmintrin.h +0 -0
  277. /package/lib/clang/{19 → 23}/include/ppc_wrappers/smmintrin.h +0 -0
  278. /package/lib/clang/{19 → 23}/include/ppc_wrappers/tmmintrin.h +0 -0
  279. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86gprintrin.h +0 -0
  280. /package/lib/clang/{19 → 23}/include/ppc_wrappers/x86intrin.h +0 -0
  281. /package/lib/clang/{19 → 23}/include/ppc_wrappers/xmmintrin.h +0 -0
  282. /package/lib/clang/{19 → 23}/include/prfchiintrin.h +0 -0
  283. /package/lib/clang/{19 → 23}/include/ptwriteintrin.h +0 -0
  284. /package/lib/clang/{19 → 23}/include/raointintrin.h +0 -0
  285. /package/lib/clang/{19 → 23}/include/rdpruintrin.h +0 -0
  286. /package/lib/clang/{19 → 23}/include/rdseedintrin.h +0 -0
  287. /package/lib/clang/{19 → 23}/include/rtmintrin.h +0 -0
  288. /package/lib/clang/{19 → 23}/include/s390intrin.h +0 -0
  289. /package/lib/clang/{19 → 23}/include/serializeintrin.h +0 -0
  290. /package/lib/clang/{19 → 23}/include/sgxintrin.h +0 -0
  291. /package/lib/clang/{19 → 23}/include/sha512intrin.h +0 -0
  292. /package/lib/clang/{19 → 23}/include/sm3intrin.h +0 -0
  293. /package/lib/clang/{19 → 23}/include/sm4intrin.h +0 -0
  294. /package/lib/clang/{19 → 23}/include/stdarg.h +0 -0
  295. /package/lib/clang/{19 → 23}/include/stdatomic.h +0 -0
  296. /package/lib/clang/{19 → 23}/include/stdbool.h +0 -0
  297. /package/lib/clang/{19 → 23}/include/stdckdint.h +0 -0
  298. /package/lib/clang/{19 → 23}/include/stddef.h +0 -0
  299. /package/lib/clang/{19 → 23}/include/stdnoreturn.h +0 -0
  300. /package/lib/clang/{19 → 23}/include/tgmath.h +0 -0
  301. /package/lib/clang/{19 → 23}/include/tsxldtrkintrin.h +0 -0
  302. /package/lib/clang/{19 → 23}/include/uintrintrin.h +0 -0
  303. /package/lib/clang/{19 → 23}/include/unwind.h +0 -0
  304. /package/lib/clang/{19 → 23}/include/usermsrintrin.h +0 -0
  305. /package/lib/clang/{19 → 23}/include/vadefs.h +0 -0
  306. /package/lib/clang/{19 → 23}/include/varargs.h +0 -0
  307. /package/lib/clang/{19 → 23}/include/velintrin.h +0 -0
  308. /package/lib/clang/{19 → 23}/include/velintrin_approx.h +0 -0
  309. /package/lib/clang/{19 → 23}/include/velintrin_gen.h +0 -0
  310. /package/lib/clang/{19 → 23}/include/vpclmulqdqintrin.h +0 -0
  311. /package/lib/clang/{19 → 23}/include/waitpkgintrin.h +0 -0
  312. /package/lib/clang/{19 → 23}/include/wbnoinvdintrin.h +0 -0
  313. /package/lib/clang/{19 → 23}/include/wmmintrin.h +0 -0
  314. /package/lib/clang/{19 → 23}/include/xsavecintrin.h +0 -0
  315. /package/lib/clang/{19 → 23}/include/xsaveintrin.h +0 -0
  316. /package/lib/clang/{19 → 23}/include/xsaveoptintrin.h +0 -0
  317. /package/lib/clang/{19 → 23}/include/xsavesintrin.h +0 -0
  318. /package/lib/clang/{19 → 23}/include/xtestintrin.h +0 -0
  319. /package/lib/clang/{19 → 23}/include/yvals_core.h +0 -0
  320. /package/lib/clang/{19 → 23}/include/zos_wrappers/builtins.h +0 -0
@@ -17,7 +17,6 @@
17
17
  #include <xmmintrin.h>
18
18
 
19
19
  typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16)));
20
- typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16)));
21
20
 
22
21
  typedef double __m128d_u __attribute__((__vector_size__(16), __aligned__(1)));
23
22
  typedef long long __m128i_u
@@ -25,14 +24,9 @@ typedef long long __m128i_u
25
24
 
26
25
  /* Type defines. */
27
26
  typedef double __v2df __attribute__((__vector_size__(16)));
28
- typedef long long __v2di __attribute__((__vector_size__(16)));
29
- typedef short __v8hi __attribute__((__vector_size__(16)));
30
- typedef char __v16qi __attribute__((__vector_size__(16)));
31
27
 
32
28
  /* Unsigned types */
33
29
  typedef unsigned long long __v2du __attribute__((__vector_size__(16)));
34
- typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
35
- typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
36
30
 
37
31
  /* We need an explicitly signed variant for char. Note that this shouldn't
38
32
  * appear in the interface though. */
@@ -50,11 +44,23 @@ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
50
44
 
51
45
  /* Define the default attributes for the functions in this file. */
52
46
  #define __DEFAULT_FN_ATTRS \
53
- __attribute__((__always_inline__, __nodebug__, \
54
- __target__("sse2,no-evex512"), __min_vector_width__(128)))
55
- #define __DEFAULT_FN_ATTRS_MMX \
56
- __attribute__((__always_inline__, __nodebug__, \
57
- __target__("mmx,sse2,no-evex512"), __min_vector_width__(64)))
47
+ __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
48
+ __min_vector_width__(128)))
49
+
50
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
51
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
52
+ #else
53
+ #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
54
+ #endif
55
+
56
+ #define __trunc64(x) \
57
+ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0)
58
+ #define __zext128(x) \
59
+ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
60
+ 1, 2, 3)
61
+ #define __anyext128(x) \
62
+ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
63
+ 1, -1, -1)
58
64
 
59
65
  /// Adds lower double-precision values in both operands and returns the
60
66
  /// sum in the lower 64 bits of the result. The upper 64 bits of the result
@@ -71,8 +77,8 @@ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
71
77
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
72
78
  /// sum of the lower 64 bits of both operands. The upper 64 bits are copied
73
79
  /// from the upper 64 bits of the first source operand.
74
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_sd(__m128d __a,
75
- __m128d __b) {
80
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_sd(__m128d __a,
81
+ __m128d __b) {
76
82
  __a[0] += __b[0];
77
83
  return __a;
78
84
  }
@@ -89,8 +95,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_sd(__m128d __a,
89
95
  /// A 128-bit vector of [2 x double] containing one of the source operands.
90
96
  /// \returns A 128-bit vector of [2 x double] containing the sums of both
91
97
  /// operands.
92
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_pd(__m128d __a,
93
- __m128d __b) {
98
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_pd(__m128d __a,
99
+ __m128d __b) {
94
100
  return (__m128d)((__v2df)__a + (__v2df)__b);
95
101
  }
96
102
 
@@ -111,8 +117,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_add_pd(__m128d __a,
111
117
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
112
118
  /// difference of the lower 64 bits of both operands. The upper 64 bits are
113
119
  /// copied from the upper 64 bits of the first source operand.
114
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_sd(__m128d __a,
115
- __m128d __b) {
120
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_sd(__m128d __a,
121
+ __m128d __b) {
116
122
  __a[0] -= __b[0];
117
123
  return __a;
118
124
  }
@@ -129,8 +135,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_sd(__m128d __a,
129
135
  /// A 128-bit vector of [2 x double] containing the subtrahend.
130
136
  /// \returns A 128-bit vector of [2 x double] containing the differences between
131
137
  /// both operands.
132
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_pd(__m128d __a,
133
- __m128d __b) {
138
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_pd(__m128d __a,
139
+ __m128d __b) {
134
140
  return (__m128d)((__v2df)__a - (__v2df)__b);
135
141
  }
136
142
 
@@ -150,8 +156,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sub_pd(__m128d __a,
150
156
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
151
157
  /// product of the lower 64 bits of both operands. The upper 64 bits are
152
158
  /// copied from the upper 64 bits of the first source operand.
153
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_sd(__m128d __a,
154
- __m128d __b) {
159
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_sd(__m128d __a,
160
+ __m128d __b) {
155
161
  __a[0] *= __b[0];
156
162
  return __a;
157
163
  }
@@ -168,8 +174,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_sd(__m128d __a,
168
174
  /// A 128-bit vector of [2 x double] containing one of the operands.
169
175
  /// \returns A 128-bit vector of [2 x double] containing the products of both
170
176
  /// operands.
171
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_pd(__m128d __a,
172
- __m128d __b) {
177
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_pd(__m128d __a,
178
+ __m128d __b) {
173
179
  return (__m128d)((__v2df)__a * (__v2df)__b);
174
180
  }
175
181
 
@@ -190,8 +196,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_mul_pd(__m128d __a,
190
196
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
191
197
  /// quotient of the lower 64 bits of both operands. The upper 64 bits are
192
198
  /// copied from the upper 64 bits of the first source operand.
193
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_sd(__m128d __a,
194
- __m128d __b) {
199
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_sd(__m128d __a,
200
+ __m128d __b) {
195
201
  __a[0] /= __b[0];
196
202
  return __a;
197
203
  }
@@ -209,8 +215,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_sd(__m128d __a,
209
215
  /// A 128-bit vector of [2 x double] containing the divisor.
210
216
  /// \returns A 128-bit vector of [2 x double] containing the quotients of both
211
217
  /// operands.
212
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_pd(__m128d __a,
213
- __m128d __b) {
218
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_pd(__m128d __a,
219
+ __m128d __b) {
214
220
  return (__m128d)((__v2df)__a / (__v2df)__b);
215
221
  }
216
222
 
@@ -235,8 +241,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_div_pd(__m128d __a,
235
241
  /// bits are copied from the upper 64 bits of operand \a __a.
236
242
  static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_sd(__m128d __a,
237
243
  __m128d __b) {
238
- __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b);
239
- return __extension__(__m128d){__c[0], __a[1]};
244
+ return __extension__(__m128d){__builtin_elementwise_sqrt(__b[0]), __a[1]};
240
245
  }
241
246
 
242
247
  /// Calculates the square root of the each of two values stored in a
@@ -251,7 +256,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_sd(__m128d __a,
251
256
  /// \returns A 128-bit vector of [2 x double] containing the square roots of the
252
257
  /// values in the operand.
253
258
  static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_pd(__m128d __a) {
254
- return __builtin_ia32_sqrtpd((__v2df)__a);
259
+ return __builtin_elementwise_sqrt(__a);
255
260
  }
256
261
 
257
262
  /// Compares lower 64-bit double-precision values of both operands, and
@@ -274,8 +279,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_pd(__m128d __a) {
274
279
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
275
280
  /// minimum value between both operands. The upper 64 bits are copied from
276
281
  /// the upper 64 bits of the first source operand.
277
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_sd(__m128d __a,
278
- __m128d __b) {
282
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_min_sd(__m128d __a,
283
+ __m128d __b) {
279
284
  return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b);
280
285
  }
281
286
 
@@ -295,8 +300,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_sd(__m128d __a,
295
300
  /// A 128-bit vector of [2 x double] containing one of the operands.
296
301
  /// \returns A 128-bit vector of [2 x double] containing the minimum values
297
302
  /// between both operands.
298
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_pd(__m128d __a,
299
- __m128d __b) {
303
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_min_pd(__m128d __a,
304
+ __m128d __b) {
300
305
  return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b);
301
306
  }
302
307
 
@@ -320,8 +325,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_pd(__m128d __a,
320
325
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
321
326
  /// maximum value between both operands. The upper 64 bits are copied from
322
327
  /// the upper 64 bits of the first source operand.
323
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_sd(__m128d __a,
324
- __m128d __b) {
328
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_max_sd(__m128d __a,
329
+ __m128d __b) {
325
330
  return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b);
326
331
  }
327
332
 
@@ -341,8 +346,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_sd(__m128d __a,
341
346
  /// A 128-bit vector of [2 x double] containing one of the operands.
342
347
  /// \returns A 128-bit vector of [2 x double] containing the maximum values
343
348
  /// between both operands.
344
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_pd(__m128d __a,
345
- __m128d __b) {
349
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_max_pd(__m128d __a,
350
+ __m128d __b) {
346
351
  return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b);
347
352
  }
348
353
 
@@ -358,8 +363,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_pd(__m128d __a,
358
363
  /// A 128-bit vector of [2 x double] containing one of the source operands.
359
364
  /// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
360
365
  /// values between both operands.
361
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_and_pd(__m128d __a,
362
- __m128d __b) {
366
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_and_pd(__m128d __a,
367
+ __m128d __b) {
363
368
  return (__m128d)((__v2du)__a & (__v2du)__b);
364
369
  }
365
370
 
@@ -378,8 +383,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_and_pd(__m128d __a,
378
383
  /// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the
379
384
  /// values in the second operand and the one's complement of the first
380
385
  /// operand.
381
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_andnot_pd(__m128d __a,
382
- __m128d __b) {
386
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
387
+ _mm_andnot_pd(__m128d __a, __m128d __b) {
383
388
  return (__m128d)(~(__v2du)__a & (__v2du)__b);
384
389
  }
385
390
 
@@ -395,8 +400,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_andnot_pd(__m128d __a,
395
400
  /// A 128-bit vector of [2 x double] containing one of the source operands.
396
401
  /// \returns A 128-bit vector of [2 x double] containing the bitwise OR of the
397
402
  /// values between both operands.
398
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_or_pd(__m128d __a,
399
- __m128d __b) {
403
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_or_pd(__m128d __a,
404
+ __m128d __b) {
400
405
  return (__m128d)((__v2du)__a | (__v2du)__b);
401
406
  }
402
407
 
@@ -412,8 +417,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_or_pd(__m128d __a,
412
417
  /// A 128-bit vector of [2 x double] containing one of the source operands.
413
418
  /// \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the
414
419
  /// values between both operands.
415
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_xor_pd(__m128d __a,
416
- __m128d __b) {
420
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_xor_pd(__m128d __a,
421
+ __m128d __b) {
417
422
  return (__m128d)((__v2du)__a ^ (__v2du)__b);
418
423
  }
419
424
 
@@ -1273,7 +1278,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_sd(__m128d __a,
1273
1278
  /// A 128-bit vector of [2 x double].
1274
1279
  /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
1275
1280
  /// converted values. The upper 64 bits are set to zero.
1276
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpd_ps(__m128d __a) {
1281
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
1282
+ _mm_cvtpd_ps(__m128d __a) {
1277
1283
  return __builtin_ia32_cvtpd2ps((__v2df)__a);
1278
1284
  }
1279
1285
 
@@ -1291,7 +1297,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpd_ps(__m128d __a) {
1291
1297
  /// floating-point elements are converted to double-precision values. The
1292
1298
  /// upper two elements are unused.
1293
1299
  /// \returns A 128-bit vector of [2 x double] containing the converted values.
1294
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtps_pd(__m128 __a) {
1300
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1301
+ _mm_cvtps_pd(__m128 __a) {
1295
1302
  return (__m128d) __builtin_convertvector(
1296
1303
  __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df);
1297
1304
  }
@@ -1312,7 +1319,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtps_pd(__m128 __a) {
1312
1319
  ///
1313
1320
  /// The upper two elements are unused.
1314
1321
  /// \returns A 128-bit vector of [2 x double] containing the converted values.
1315
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtepi32_pd(__m128i __a) {
1322
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1323
+ _mm_cvtepi32_pd(__m128i __a) {
1316
1324
  return (__m128d) __builtin_convertvector(
1317
1325
  __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df);
1318
1326
  }
@@ -1335,7 +1343,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtepi32_pd(__m128i __a) {
1335
1343
  /// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
1336
1344
  /// converted values. The upper 64 bits are set to zero.
1337
1345
  static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtpd_epi32(__m128d __a) {
1338
- return __builtin_ia32_cvtpd2dq((__v2df)__a);
1346
+ return (__m128i)__builtin_ia32_cvtpd2dq((__v2df)__a);
1339
1347
  }
1340
1348
 
1341
1349
  /// Converts the low-order element of a 128-bit vector of [2 x double]
@@ -1376,8 +1384,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsd_si32(__m128d __a) {
1376
1384
  /// \returns A 128-bit vector of [4 x float]. The lower 32 bits contain the
1377
1385
  /// converted value from the second parameter. The upper 96 bits are copied
1378
1386
  /// from the upper 96 bits of the first parameter.
1379
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtsd_ss(__m128 __a,
1380
- __m128d __b) {
1387
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
1388
+ _mm_cvtsd_ss(__m128 __a, __m128d __b) {
1381
1389
  return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b);
1382
1390
  }
1383
1391
 
@@ -1398,8 +1406,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtsd_ss(__m128 __a,
1398
1406
  /// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
1399
1407
  /// converted value from the second parameter. The upper 64 bits are copied
1400
1408
  /// from the upper 64 bits of the first parameter.
1401
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtsi32_sd(__m128d __a,
1402
- int __b) {
1409
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1410
+ _mm_cvtsi32_sd(__m128d __a, int __b) {
1403
1411
  __a[0] = __b;
1404
1412
  return __a;
1405
1413
  }
@@ -1423,8 +1431,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtsi32_sd(__m128d __a,
1423
1431
  /// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the
1424
1432
  /// converted value from the second parameter. The upper 64 bits are copied
1425
1433
  /// from the upper 64 bits of the first parameter.
1426
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtss_sd(__m128d __a,
1427
- __m128 __b) {
1434
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1435
+ _mm_cvtss_sd(__m128d __a, __m128 __b) {
1428
1436
  __a[0] = __b[0];
1429
1437
  return __a;
1430
1438
  }
@@ -1486,8 +1494,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_cvttsd_si32(__m128d __a) {
1486
1494
  /// \param __a
1487
1495
  /// A 128-bit vector of [2 x double].
1488
1496
  /// \returns A 64-bit vector of [2 x i32] containing the converted values.
1489
- static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_cvtpd_pi32(__m128d __a) {
1490
- return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a);
1497
+ static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtpd_pi32(__m128d __a) {
1498
+ return __trunc64(__builtin_ia32_cvtpd2dq((__v2df)__a));
1491
1499
  }
1492
1500
 
1493
1501
  /// Converts the two double-precision floating-point elements of a
@@ -1505,8 +1513,8 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_cvtpd_pi32(__m128d __a) {
1505
1513
  /// \param __a
1506
1514
  /// A 128-bit vector of [2 x double].
1507
1515
  /// \returns A 64-bit vector of [2 x i32] containing the converted values.
1508
- static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_cvttpd_pi32(__m128d __a) {
1509
- return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a);
1516
+ static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvttpd_pi32(__m128d __a) {
1517
+ return __trunc64(__builtin_ia32_cvttpd2dq((__v2df)__a));
1510
1518
  }
1511
1519
 
1512
1520
  /// Converts the two signed 32-bit integer elements of a 64-bit vector of
@@ -1520,8 +1528,9 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_cvttpd_pi32(__m128d __a) {
1520
1528
  /// \param __a
1521
1529
  /// A 64-bit vector of [2 x i32].
1522
1530
  /// \returns A 128-bit vector of [2 x double] containing the converted values.
1523
- static __inline__ __m128d __DEFAULT_FN_ATTRS_MMX _mm_cvtpi32_pd(__m64 __a) {
1524
- return __builtin_ia32_cvtpi2pd((__v2si)__a);
1531
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1532
+ _mm_cvtpi32_pd(__m64 __a) {
1533
+ return (__m128d) __builtin_convertvector((__v2si)__a, __v2df);
1525
1534
  }
1526
1535
 
1527
1536
  /// Returns the low-order element of a 128-bit vector of [2 x double] as
@@ -1535,7 +1544,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS_MMX _mm_cvtpi32_pd(__m64 __a) {
1535
1544
  /// A 128-bit vector of [2 x double]. The lower 64 bits are returned.
1536
1545
  /// \returns A double-precision floating-point value copied from the lower 64
1537
1546
  /// bits of \a __a.
1538
- static __inline__ double __DEFAULT_FN_ATTRS _mm_cvtsd_f64(__m128d __a) {
1547
+ static __inline__ double __DEFAULT_FN_ATTRS_CONSTEXPR
1548
+ _mm_cvtsd_f64(__m128d __a) {
1539
1549
  return __a[0];
1540
1550
  }
1541
1551
 
@@ -1770,7 +1780,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_undefined_pd(void) {
1770
1780
  /// \returns An initialized 128-bit floating-point vector of [2 x double]. The
1771
1781
  /// lower 64 bits contain the value of the parameter. The upper 64 bits are
1772
1782
  /// set to zero.
1773
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_sd(double __w) {
1783
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_sd(double __w) {
1774
1784
  return __extension__(__m128d){__w, 0.0};
1775
1785
  }
1776
1786
 
@@ -1786,7 +1796,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_sd(double __w) {
1786
1796
  /// A double-precision floating-point value used to initialize each vector
1787
1797
  /// element of the result.
1788
1798
  /// \returns An initialized 128-bit floating-point vector of [2 x double].
1789
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set1_pd(double __w) {
1799
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_pd(double __w) {
1790
1800
  return __extension__(__m128d){__w, __w};
1791
1801
  }
1792
1802
 
@@ -1802,7 +1812,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set1_pd(double __w) {
1802
1812
  /// A double-precision floating-point value used to initialize each vector
1803
1813
  /// element of the result.
1804
1814
  /// \returns An initialized 128-bit floating-point vector of [2 x double].
1805
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd1(double __w) {
1815
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_pd1(double __w) {
1806
1816
  return _mm_set1_pd(__w);
1807
1817
  }
1808
1818
 
@@ -1820,8 +1830,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd1(double __w) {
1820
1830
  /// A double-precision floating-point value used to initialize the lower 64
1821
1831
  /// bits of the result.
1822
1832
  /// \returns An initialized 128-bit floating-point vector of [2 x double].
1823
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd(double __w,
1824
- double __x) {
1833
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_pd(double __w,
1834
+ double __x) {
1825
1835
  return __extension__(__m128d){__x, __w};
1826
1836
  }
1827
1837
 
@@ -1840,8 +1850,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_set_pd(double __w,
1840
1850
  /// A double-precision floating-point value used to initialize the upper 64
1841
1851
  /// bits of the result.
1842
1852
  /// \returns An initialized 128-bit floating-point vector of [2 x double].
1843
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setr_pd(double __w,
1844
- double __x) {
1853
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_pd(double __w,
1854
+ double __x) {
1845
1855
  return __extension__(__m128d){__w, __x};
1846
1856
  }
1847
1857
 
@@ -1854,7 +1864,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setr_pd(double __w,
1854
1864
  ///
1855
1865
  /// \returns An initialized 128-bit floating-point vector of [2 x double] with
1856
1866
  /// all elements set to zero.
1857
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setzero_pd(void) {
1867
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_pd(void) {
1858
1868
  return __extension__(__m128d){0.0, 0.0};
1859
1869
  }
1860
1870
 
@@ -1873,8 +1883,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setzero_pd(void) {
1873
1883
  /// A 128-bit vector of [2 x double]. The lower 64 bits are written to the
1874
1884
  /// lower 64 bits of the result.
1875
1885
  /// \returns A 128-bit vector of [2 x double] containing the moved values.
1876
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_move_sd(__m128d __a,
1877
- __m128d __b) {
1886
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
1887
+ _mm_move_sd(__m128d __a, __m128d __b) {
1878
1888
  __a[0] = __b[0];
1879
1889
  return __a;
1880
1890
  }
@@ -2049,8 +2059,8 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_pd(double *__dp,
2049
2059
  /// A 128-bit vector of [16 x i8].
2050
2060
  /// \returns A 128-bit vector of [16 x i8] containing the sums of both
2051
2061
  /// parameters.
2052
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi8(__m128i __a,
2053
- __m128i __b) {
2062
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2063
+ _mm_add_epi8(__m128i __a, __m128i __b) {
2054
2064
  return (__m128i)((__v16qu)__a + (__v16qu)__b);
2055
2065
  }
2056
2066
 
@@ -2070,8 +2080,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi8(__m128i __a,
2070
2080
  /// A 128-bit vector of [8 x i16].
2071
2081
  /// \returns A 128-bit vector of [8 x i16] containing the sums of both
2072
2082
  /// parameters.
2073
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi16(__m128i __a,
2074
- __m128i __b) {
2083
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2084
+ _mm_add_epi16(__m128i __a, __m128i __b) {
2075
2085
  return (__m128i)((__v8hu)__a + (__v8hu)__b);
2076
2086
  }
2077
2087
 
@@ -2091,8 +2101,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi16(__m128i __a,
2091
2101
  /// A 128-bit vector of [4 x i32].
2092
2102
  /// \returns A 128-bit vector of [4 x i32] containing the sums of both
2093
2103
  /// parameters.
2094
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi32(__m128i __a,
2095
- __m128i __b) {
2104
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2105
+ _mm_add_epi32(__m128i __a, __m128i __b) {
2096
2106
  return (__m128i)((__v4su)__a + (__v4su)__b);
2097
2107
  }
2098
2108
 
@@ -2108,9 +2118,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi32(__m128i __a,
2108
2118
  /// \param __b
2109
2119
  /// A 64-bit integer.
2110
2120
  /// \returns A 64-bit integer containing the sum of both parameters.
2111
- static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_add_si64(__m64 __a,
2112
- __m64 __b) {
2113
- return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b);
2121
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_si64(__m64 __a,
2122
+ __m64 __b) {
2123
+ return (__m64)(((__v1du)__a)[0] + ((__v1du)__b)[0]);
2114
2124
  }
2115
2125
 
2116
2126
  /// Adds the corresponding elements of two 128-bit vectors of [2 x i64],
@@ -2129,8 +2139,8 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_add_si64(__m64 __a,
2129
2139
  /// A 128-bit vector of [2 x i64].
2130
2140
  /// \returns A 128-bit vector of [2 x i64] containing the sums of both
2131
2141
  /// parameters.
2132
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi64(__m128i __a,
2133
- __m128i __b) {
2142
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2143
+ _mm_add_epi64(__m128i __a, __m128i __b) {
2134
2144
  return (__m128i)((__v2du)__a + (__v2du)__b);
2135
2145
  }
2136
2146
 
@@ -2151,8 +2161,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi64(__m128i __a,
2151
2161
  /// A 128-bit signed [16 x i8] vector.
2152
2162
  /// \returns A 128-bit signed [16 x i8] vector containing the saturated sums of
2153
2163
  /// both parameters.
2154
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epi8(__m128i __a,
2155
- __m128i __b) {
2164
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2165
+ _mm_adds_epi8(__m128i __a, __m128i __b) {
2156
2166
  return (__m128i)__builtin_elementwise_add_sat((__v16qs)__a, (__v16qs)__b);
2157
2167
  }
2158
2168
 
@@ -2173,8 +2183,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epi8(__m128i __a,
2173
2183
  /// A 128-bit signed [8 x i16] vector.
2174
2184
  /// \returns A 128-bit signed [8 x i16] vector containing the saturated sums of
2175
2185
  /// both parameters.
2176
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epi16(__m128i __a,
2177
- __m128i __b) {
2186
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2187
+ _mm_adds_epi16(__m128i __a, __m128i __b) {
2178
2188
  return (__m128i)__builtin_elementwise_add_sat((__v8hi)__a, (__v8hi)__b);
2179
2189
  }
2180
2190
 
@@ -2195,8 +2205,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epi16(__m128i __a,
2195
2205
  /// A 128-bit unsigned [16 x i8] vector.
2196
2206
  /// \returns A 128-bit unsigned [16 x i8] vector containing the saturated sums
2197
2207
  /// of both parameters.
2198
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epu8(__m128i __a,
2199
- __m128i __b) {
2208
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2209
+ _mm_adds_epu8(__m128i __a, __m128i __b) {
2200
2210
  return (__m128i)__builtin_elementwise_add_sat((__v16qu)__a, (__v16qu)__b);
2201
2211
  }
2202
2212
 
@@ -2217,8 +2227,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epu8(__m128i __a,
2217
2227
  /// A 128-bit unsigned [8 x i16] vector.
2218
2228
  /// \returns A 128-bit unsigned [8 x i16] vector containing the saturated sums
2219
2229
  /// of both parameters.
2220
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epu16(__m128i __a,
2221
- __m128i __b) {
2230
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2231
+ _mm_adds_epu16(__m128i __a, __m128i __b) {
2222
2232
  return (__m128i)__builtin_elementwise_add_sat((__v8hu)__a, (__v8hu)__b);
2223
2233
  }
2224
2234
 
@@ -2236,9 +2246,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epu16(__m128i __a,
2236
2246
  /// A 128-bit unsigned [16 x i8] vector.
2237
2247
  /// \returns A 128-bit unsigned [16 x i8] vector containing the rounded
2238
2248
  /// averages of both parameters.
2239
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_avg_epu8(__m128i __a,
2240
- __m128i __b) {
2241
- return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
2249
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2250
+ _mm_avg_epu8(__m128i __a, __m128i __b) {
2251
+ return (__m128i)__builtin_ia32_pavgb128((__v16qu)__a, (__v16qu)__b);
2242
2252
  }
2243
2253
 
2244
2254
  /// Computes the rounded averages of corresponding elements of two
@@ -2255,9 +2265,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_avg_epu8(__m128i __a,
2255
2265
  /// A 128-bit unsigned [8 x i16] vector.
2256
2266
  /// \returns A 128-bit unsigned [8 x i16] vector containing the rounded
2257
2267
  /// averages of both parameters.
2258
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_avg_epu16(__m128i __a,
2259
- __m128i __b) {
2260
- return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
2268
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2269
+ _mm_avg_epu16(__m128i __a, __m128i __b) {
2270
+ return (__m128i)__builtin_ia32_pavgw128((__v8hu)__a, (__v8hu)__b);
2261
2271
  }
2262
2272
 
2263
2273
  /// Multiplies the corresponding elements of two 128-bit signed [8 x i16]
@@ -2280,8 +2290,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_avg_epu16(__m128i __a,
2280
2290
  /// A 128-bit signed [8 x i16] vector.
2281
2291
  /// \returns A 128-bit signed [4 x i32] vector containing the sums of products
2282
2292
  /// of both parameters.
2283
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_madd_epi16(__m128i __a,
2284
- __m128i __b) {
2293
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2294
+ _mm_madd_epi16(__m128i __a, __m128i __b) {
2285
2295
  return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b);
2286
2296
  }
2287
2297
 
@@ -2299,8 +2309,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_madd_epi16(__m128i __a,
2299
2309
  /// A 128-bit signed [8 x i16] vector.
2300
2310
  /// \returns A 128-bit signed [8 x i16] vector containing the greater value of
2301
2311
  /// each comparison.
2302
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi16(__m128i __a,
2303
- __m128i __b) {
2312
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2313
+ _mm_max_epi16(__m128i __a, __m128i __b) {
2304
2314
  return (__m128i)__builtin_elementwise_max((__v8hi)__a, (__v8hi)__b);
2305
2315
  }
2306
2316
 
@@ -2318,8 +2328,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi16(__m128i __a,
2318
2328
  /// A 128-bit unsigned [16 x i8] vector.
2319
2329
  /// \returns A 128-bit unsigned [16 x i8] vector containing the greater value of
2320
2330
  /// each comparison.
2321
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu8(__m128i __a,
2322
- __m128i __b) {
2331
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2332
+ _mm_max_epu8(__m128i __a, __m128i __b) {
2323
2333
  return (__m128i)__builtin_elementwise_max((__v16qu)__a, (__v16qu)__b);
2324
2334
  }
2325
2335
 
@@ -2337,8 +2347,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu8(__m128i __a,
2337
2347
  /// A 128-bit signed [8 x i16] vector.
2338
2348
  /// \returns A 128-bit signed [8 x i16] vector containing the smaller value of
2339
2349
  /// each comparison.
2340
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi16(__m128i __a,
2341
- __m128i __b) {
2350
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2351
+ _mm_min_epi16(__m128i __a, __m128i __b) {
2342
2352
  return (__m128i)__builtin_elementwise_min((__v8hi)__a, (__v8hi)__b);
2343
2353
  }
2344
2354
 
@@ -2356,8 +2366,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi16(__m128i __a,
2356
2366
  /// A 128-bit unsigned [16 x i8] vector.
2357
2367
  /// \returns A 128-bit unsigned [16 x i8] vector containing the smaller value of
2358
2368
  /// each comparison.
2359
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu8(__m128i __a,
2360
- __m128i __b) {
2369
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2370
+ _mm_min_epu8(__m128i __a, __m128i __b) {
2361
2371
  return (__m128i)__builtin_elementwise_min((__v16qu)__a, (__v16qu)__b);
2362
2372
  }
2363
2373
 
@@ -2375,8 +2385,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu8(__m128i __a,
2375
2385
  /// A 128-bit signed [8 x i16] vector.
2376
2386
  /// \returns A 128-bit signed [8 x i16] vector containing the upper 16 bits of
2377
2387
  /// each of the eight 32-bit products.
2378
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhi_epi16(__m128i __a,
2379
- __m128i __b) {
2388
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2389
+ _mm_mulhi_epi16(__m128i __a, __m128i __b) {
2380
2390
  return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b);
2381
2391
  }
2382
2392
 
@@ -2394,9 +2404,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhi_epi16(__m128i __a,
2394
2404
  /// A 128-bit unsigned [8 x i16] vector.
2395
2405
  /// \returns A 128-bit unsigned [8 x i16] vector containing the upper 16 bits
2396
2406
  /// of each of the eight 32-bit products.
2397
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhi_epu16(__m128i __a,
2398
- __m128i __b) {
2399
- return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b);
2407
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2408
+ _mm_mulhi_epu16(__m128i __a, __m128i __b) {
2409
+ return (__m128i)__builtin_ia32_pmulhuw128((__v8hu)__a, (__v8hu)__b);
2400
2410
  }
2401
2411
 
2402
2412
  /// Multiplies the corresponding elements of two signed [8 x i16]
@@ -2413,8 +2423,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhi_epu16(__m128i __a,
2413
2423
  /// A 128-bit signed [8 x i16] vector.
2414
2424
  /// \returns A 128-bit signed [8 x i16] vector containing the lower 16 bits of
2415
2425
  /// each of the eight 32-bit products.
2416
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mullo_epi16(__m128i __a,
2417
- __m128i __b) {
2426
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2427
+ _mm_mullo_epi16(__m128i __a, __m128i __b) {
2418
2428
  return (__m128i)((__v8hu)__a * (__v8hu)__b);
2419
2429
  }
2420
2430
 
@@ -2431,9 +2441,10 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mullo_epi16(__m128i __a,
2431
2441
  /// \param __b
2432
2442
  /// A 64-bit integer containing one of the source operands.
2433
2443
  /// \returns A 64-bit integer vector containing the product of both operands.
2434
- static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_mul_su32(__m64 __a,
2435
- __m64 __b) {
2436
- return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b);
2444
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_su32(__m64 __a,
2445
+ __m64 __b) {
2446
+ return __trunc64(__builtin_ia32_pmuludq128((__v4si)__zext128(__a),
2447
+ (__v4si)__zext128(__b)));
2437
2448
  }
2438
2449
 
2439
2450
  /// Multiplies 32-bit unsigned integer values contained in the lower
@@ -2449,8 +2460,8 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_mul_su32(__m64 __a,
2449
2460
  /// \param __b
2450
2461
  /// A [2 x i64] vector containing one of the source operands.
2451
2462
  /// \returns A [2 x i64] vector containing the product of both operands.
2452
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epu32(__m128i __a,
2453
- __m128i __b) {
2463
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2464
+ _mm_mul_epu32(__m128i __a, __m128i __b) {
2454
2465
  return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b);
2455
2466
  }
2456
2467
 
@@ -2470,9 +2481,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epu32(__m128i __a,
2470
2481
  /// A 128-bit integer vector containing one of the source operands.
2471
2482
  /// \returns A [2 x i64] vector containing the sums of the sets of absolute
2472
2483
  /// differences between both operands.
2473
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sad_epu8(__m128i __a,
2474
- __m128i __b) {
2475
- return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
2484
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2485
+ _mm_sad_epu8(__m128i __a, __m128i __b) {
2486
+ return __builtin_ia32_psadbw128((__v16qu)__a, (__v16qu)__b);
2476
2487
  }
2477
2488
 
2478
2489
  /// Subtracts the corresponding 8-bit integer values in the operands.
@@ -2487,8 +2498,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sad_epu8(__m128i __a,
2487
2498
  /// A 128-bit integer vector containing the subtrahends.
2488
2499
  /// \returns A 128-bit integer vector containing the differences of the values
2489
2500
  /// in the operands.
2490
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi8(__m128i __a,
2491
- __m128i __b) {
2501
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2502
+ _mm_sub_epi8(__m128i __a, __m128i __b) {
2492
2503
  return (__m128i)((__v16qu)__a - (__v16qu)__b);
2493
2504
  }
2494
2505
 
@@ -2504,8 +2515,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi8(__m128i __a,
2504
2515
  /// A 128-bit integer vector containing the subtrahends.
2505
2516
  /// \returns A 128-bit integer vector containing the differences of the values
2506
2517
  /// in the operands.
2507
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi16(__m128i __a,
2508
- __m128i __b) {
2518
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2519
+ _mm_sub_epi16(__m128i __a, __m128i __b) {
2509
2520
  return (__m128i)((__v8hu)__a - (__v8hu)__b);
2510
2521
  }
2511
2522
 
@@ -2521,8 +2532,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi16(__m128i __a,
2521
2532
  /// A 128-bit integer vector containing the subtrahends.
2522
2533
  /// \returns A 128-bit integer vector containing the differences of the values
2523
2534
  /// in the operands.
2524
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi32(__m128i __a,
2525
- __m128i __b) {
2535
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2536
+ _mm_sub_epi32(__m128i __a, __m128i __b) {
2526
2537
  return (__m128i)((__v4su)__a - (__v4su)__b);
2527
2538
  }
2528
2539
 
@@ -2539,9 +2550,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi32(__m128i __a,
2539
2550
  /// A 64-bit integer vector containing the subtrahend.
2540
2551
  /// \returns A 64-bit integer vector containing the difference of the values in
2541
2552
  /// the operands.
2542
- static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_sub_si64(__m64 __a,
2543
- __m64 __b) {
2544
- return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b);
2553
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_si64(__m64 __a,
2554
+ __m64 __b) {
2555
+ return (__m64)(((__v1du)__a)[0] - ((__v1du)__b)[0]);
2545
2556
  }
2546
2557
 
2547
2558
  /// Subtracts the corresponding elements of two [2 x i64] vectors.
@@ -2556,8 +2567,8 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX _mm_sub_si64(__m64 __a,
2556
2567
  /// A 128-bit integer vector containing the subtrahends.
2557
2568
  /// \returns A 128-bit integer vector containing the differences of the values
2558
2569
  /// in the operands.
2559
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi64(__m128i __a,
2560
- __m128i __b) {
2570
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2571
+ _mm_sub_epi64(__m128i __a, __m128i __b) {
2561
2572
  return (__m128i)((__v2du)__a - (__v2du)__b);
2562
2573
  }
2563
2574
 
@@ -2578,8 +2589,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi64(__m128i __a,
2578
2589
  /// A 128-bit integer vector containing the subtrahends.
2579
2590
  /// \returns A 128-bit integer vector containing the differences of the values
2580
2591
  /// in the operands.
2581
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epi8(__m128i __a,
2582
- __m128i __b) {
2592
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2593
+ _mm_subs_epi8(__m128i __a, __m128i __b) {
2583
2594
  return (__m128i)__builtin_elementwise_sub_sat((__v16qs)__a, (__v16qs)__b);
2584
2595
  }
2585
2596
 
@@ -2600,8 +2611,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epi8(__m128i __a,
2600
2611
  /// A 128-bit integer vector containing the subtrahends.
2601
2612
  /// \returns A 128-bit integer vector containing the differences of the values
2602
2613
  /// in the operands.
2603
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epi16(__m128i __a,
2604
- __m128i __b) {
2614
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2615
+ _mm_subs_epi16(__m128i __a, __m128i __b) {
2605
2616
  return (__m128i)__builtin_elementwise_sub_sat((__v8hi)__a, (__v8hi)__b);
2606
2617
  }
2607
2618
 
@@ -2621,8 +2632,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epi16(__m128i __a,
2621
2632
  /// A 128-bit integer vector containing the subtrahends.
2622
2633
  /// \returns A 128-bit integer vector containing the unsigned integer
2623
2634
  /// differences of the values in the operands.
2624
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epu8(__m128i __a,
2625
- __m128i __b) {
2635
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2636
+ _mm_subs_epu8(__m128i __a, __m128i __b) {
2626
2637
  return (__m128i)__builtin_elementwise_sub_sat((__v16qu)__a, (__v16qu)__b);
2627
2638
  }
2628
2639
 
@@ -2642,8 +2653,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epu8(__m128i __a,
2642
2653
  /// A 128-bit integer vector containing the subtrahends.
2643
2654
  /// \returns A 128-bit integer vector containing the unsigned integer
2644
2655
  /// differences of the values in the operands.
2645
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epu16(__m128i __a,
2646
- __m128i __b) {
2656
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2657
+ _mm_subs_epu16(__m128i __a, __m128i __b) {
2647
2658
  return (__m128i)__builtin_elementwise_sub_sat((__v8hu)__a, (__v8hu)__b);
2648
2659
  }
2649
2660
 
@@ -2659,8 +2670,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epu16(__m128i __a,
2659
2670
  /// A 128-bit integer vector containing one of the source operands.
2660
2671
  /// \returns A 128-bit integer vector containing the bitwise AND of the values
2661
2672
  /// in both operands.
2662
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_and_si128(__m128i __a,
2663
- __m128i __b) {
2673
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2674
+ _mm_and_si128(__m128i __a, __m128i __b) {
2664
2675
  return (__m128i)((__v2du)__a & (__v2du)__b);
2665
2676
  }
2666
2677
 
@@ -2678,8 +2689,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_and_si128(__m128i __a,
2678
2689
  /// A 128-bit vector containing the right source operand.
2679
2690
  /// \returns A 128-bit integer vector containing the bitwise AND of the one's
2680
2691
  /// complement of the first operand and the values in the second operand.
2681
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_andnot_si128(__m128i __a,
2682
- __m128i __b) {
2692
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2693
+ _mm_andnot_si128(__m128i __a, __m128i __b) {
2683
2694
  return (__m128i)(~(__v2du)__a & (__v2du)__b);
2684
2695
  }
2685
2696
  /// Performs a bitwise OR of two 128-bit integer vectors.
@@ -2694,8 +2705,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_andnot_si128(__m128i __a,
2694
2705
  /// A 128-bit integer vector containing one of the source operands.
2695
2706
  /// \returns A 128-bit integer vector containing the bitwise OR of the values
2696
2707
  /// in both operands.
2697
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_or_si128(__m128i __a,
2698
- __m128i __b) {
2708
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2709
+ _mm_or_si128(__m128i __a, __m128i __b) {
2699
2710
  return (__m128i)((__v2du)__a | (__v2du)__b);
2700
2711
  }
2701
2712
 
@@ -2711,8 +2722,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_or_si128(__m128i __a,
2711
2722
  /// A 128-bit integer vector containing one of the source operands.
2712
2723
  /// \returns A 128-bit integer vector containing the bitwise exclusive OR of the
2713
2724
  /// values in both operands.
2714
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_xor_si128(__m128i __a,
2715
- __m128i __b) {
2725
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2726
+ _mm_xor_si128(__m128i __a, __m128i __b) {
2716
2727
  return (__m128i)((__v2du)__a ^ (__v2du)__b);
2717
2728
  }
2718
2729
 
@@ -2734,11 +2745,11 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_xor_si128(__m128i __a,
2734
2745
  /// \a a.
2735
2746
  /// \returns A 128-bit integer vector containing the left-shifted value.
2736
2747
  #define _mm_slli_si128(a, imm) \
2737
- ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), \
2748
+ ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v16qi)(__m128i)(a), \
2738
2749
  (int)(imm)))
2739
2750
 
2740
2751
  #define _mm_bslli_si128(a, imm) \
2741
- ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), \
2752
+ ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v16qi)(__m128i)(a), \
2742
2753
  (int)(imm)))
2743
2754
 
2744
2755
  /// Left-shifts each 16-bit value in the 128-bit integer vector operand
@@ -2754,8 +2765,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_xor_si128(__m128i __a,
2754
2765
  /// An integer value specifying the number of bits to left-shift each value
2755
2766
  /// in operand \a __a.
2756
2767
  /// \returns A 128-bit integer vector containing the left-shifted values.
2757
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi16(__m128i __a,
2758
- int __count) {
2768
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2769
+ _mm_slli_epi16(__m128i __a, int __count) {
2759
2770
  return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count);
2760
2771
  }
2761
2772
 
@@ -2772,8 +2783,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi16(__m128i __a,
2772
2783
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2773
2784
  /// to left-shift each value in operand \a __a.
2774
2785
  /// \returns A 128-bit integer vector containing the left-shifted values.
2775
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi16(__m128i __a,
2776
- __m128i __count) {
2786
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2787
+ _mm_sll_epi16(__m128i __a, __m128i __count) {
2777
2788
  return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count);
2778
2789
  }
2779
2790
 
@@ -2790,8 +2801,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi16(__m128i __a,
2790
2801
  /// An integer value specifying the number of bits to left-shift each value
2791
2802
  /// in operand \a __a.
2792
2803
  /// \returns A 128-bit integer vector containing the left-shifted values.
2793
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi32(__m128i __a,
2794
- int __count) {
2804
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2805
+ _mm_slli_epi32(__m128i __a, int __count) {
2795
2806
  return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
2796
2807
  }
2797
2808
 
@@ -2808,8 +2819,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi32(__m128i __a,
2808
2819
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2809
2820
  /// to left-shift each value in operand \a __a.
2810
2821
  /// \returns A 128-bit integer vector containing the left-shifted values.
2811
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi32(__m128i __a,
2812
- __m128i __count) {
2822
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2823
+ _mm_sll_epi32(__m128i __a, __m128i __count) {
2813
2824
  return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count);
2814
2825
  }
2815
2826
 
@@ -2826,8 +2837,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi32(__m128i __a,
2826
2837
  /// An integer value specifying the number of bits to left-shift each value
2827
2838
  /// in operand \a __a.
2828
2839
  /// \returns A 128-bit integer vector containing the left-shifted values.
2829
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi64(__m128i __a,
2830
- int __count) {
2840
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2841
+ _mm_slli_epi64(__m128i __a, int __count) {
2831
2842
  return __builtin_ia32_psllqi128((__v2di)__a, __count);
2832
2843
  }
2833
2844
 
@@ -2844,8 +2855,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi64(__m128i __a,
2844
2855
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2845
2856
  /// to left-shift each value in operand \a __a.
2846
2857
  /// \returns A 128-bit integer vector containing the left-shifted values.
2847
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi64(__m128i __a,
2848
- __m128i __count) {
2858
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2859
+ _mm_sll_epi64(__m128i __a, __m128i __count) {
2849
2860
  return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count);
2850
2861
  }
2851
2862
 
@@ -2863,8 +2874,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi64(__m128i __a,
2863
2874
  /// An integer value specifying the number of bits to right-shift each value
2864
2875
  /// in operand \a __a.
2865
2876
  /// \returns A 128-bit integer vector containing the right-shifted values.
2866
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srai_epi16(__m128i __a,
2867
- int __count) {
2877
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2878
+ _mm_srai_epi16(__m128i __a, int __count) {
2868
2879
  return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count);
2869
2880
  }
2870
2881
 
@@ -2882,8 +2893,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srai_epi16(__m128i __a,
2882
2893
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2883
2894
  /// to right-shift each value in operand \a __a.
2884
2895
  /// \returns A 128-bit integer vector containing the right-shifted values.
2885
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi16(__m128i __a,
2886
- __m128i __count) {
2896
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2897
+ _mm_sra_epi16(__m128i __a, __m128i __count) {
2887
2898
  return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count);
2888
2899
  }
2889
2900
 
@@ -2901,8 +2912,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi16(__m128i __a,
2901
2912
  /// An integer value specifying the number of bits to right-shift each value
2902
2913
  /// in operand \a __a.
2903
2914
  /// \returns A 128-bit integer vector containing the right-shifted values.
2904
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srai_epi32(__m128i __a,
2905
- int __count) {
2915
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2916
+ _mm_srai_epi32(__m128i __a, int __count) {
2906
2917
  return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count);
2907
2918
  }
2908
2919
 
@@ -2920,8 +2931,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srai_epi32(__m128i __a,
2920
2931
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2921
2932
  /// to right-shift each value in operand \a __a.
2922
2933
  /// \returns A 128-bit integer vector containing the right-shifted values.
2923
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi32(__m128i __a,
2924
- __m128i __count) {
2934
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2935
+ _mm_sra_epi32(__m128i __a, __m128i __count) {
2925
2936
  return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count);
2926
2937
  }
2927
2938
 
@@ -2943,11 +2954,11 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi32(__m128i __a,
2943
2954
  /// \a a.
2944
2955
  /// \returns A 128-bit integer vector containing the right-shifted value.
2945
2956
  #define _mm_srli_si128(a, imm) \
2946
- ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), \
2957
+ ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v16qi)(__m128i)(a), \
2947
2958
  (int)(imm)))
2948
2959
 
2949
2960
  #define _mm_bsrli_si128(a, imm) \
2950
- ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), \
2961
+ ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v16qi)(__m128i)(a), \
2951
2962
  (int)(imm)))
2952
2963
 
2953
2964
  /// Right-shifts each of 16-bit values in the 128-bit integer vector
@@ -2963,8 +2974,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi32(__m128i __a,
2963
2974
  /// An integer value specifying the number of bits to right-shift each value
2964
2975
  /// in operand \a __a.
2965
2976
  /// \returns A 128-bit integer vector containing the right-shifted values.
2966
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi16(__m128i __a,
2967
- int __count) {
2977
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2978
+ _mm_srli_epi16(__m128i __a, int __count) {
2968
2979
  return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count);
2969
2980
  }
2970
2981
 
@@ -2981,8 +2992,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi16(__m128i __a,
2981
2992
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
2982
2993
  /// to right-shift each value in operand \a __a.
2983
2994
  /// \returns A 128-bit integer vector containing the right-shifted values.
2984
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi16(__m128i __a,
2985
- __m128i __count) {
2995
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2996
+ _mm_srl_epi16(__m128i __a, __m128i __count) {
2986
2997
  return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count);
2987
2998
  }
2988
2999
 
@@ -2999,8 +3010,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi16(__m128i __a,
2999
3010
  /// An integer value specifying the number of bits to right-shift each value
3000
3011
  /// in operand \a __a.
3001
3012
  /// \returns A 128-bit integer vector containing the right-shifted values.
3002
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi32(__m128i __a,
3003
- int __count) {
3013
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3014
+ _mm_srli_epi32(__m128i __a, int __count) {
3004
3015
  return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count);
3005
3016
  }
3006
3017
 
@@ -3017,8 +3028,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi32(__m128i __a,
3017
3028
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
3018
3029
  /// to right-shift each value in operand \a __a.
3019
3030
  /// \returns A 128-bit integer vector containing the right-shifted values.
3020
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi32(__m128i __a,
3021
- __m128i __count) {
3031
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3032
+ _mm_srl_epi32(__m128i __a, __m128i __count) {
3022
3033
  return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count);
3023
3034
  }
3024
3035
 
@@ -3035,8 +3046,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi32(__m128i __a,
3035
3046
  /// An integer value specifying the number of bits to right-shift each value
3036
3047
  /// in operand \a __a.
3037
3048
  /// \returns A 128-bit integer vector containing the right-shifted values.
3038
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi64(__m128i __a,
3039
- int __count) {
3049
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3050
+ _mm_srli_epi64(__m128i __a, int __count) {
3040
3051
  return __builtin_ia32_psrlqi128((__v2di)__a, __count);
3041
3052
  }
3042
3053
 
@@ -3053,8 +3064,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi64(__m128i __a,
3053
3064
  /// A 128-bit integer vector in which bits [63:0] specify the number of bits
3054
3065
  /// to right-shift each value in operand \a __a.
3055
3066
  /// \returns A 128-bit integer vector containing the right-shifted values.
3056
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi64(__m128i __a,
3057
- __m128i __count) {
3067
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3068
+ _mm_srl_epi64(__m128i __a, __m128i __count) {
3058
3069
  return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count);
3059
3070
  }
3060
3071
 
@@ -3072,8 +3083,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi64(__m128i __a,
3072
3083
  /// \param __b
3073
3084
  /// A 128-bit integer vector.
3074
3085
  /// \returns A 128-bit integer vector containing the comparison results.
3075
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi8(__m128i __a,
3076
- __m128i __b) {
3086
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3087
+ _mm_cmpeq_epi8(__m128i __a, __m128i __b) {
3077
3088
  return (__m128i)((__v16qi)__a == (__v16qi)__b);
3078
3089
  }
3079
3090
 
@@ -3091,8 +3102,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi8(__m128i __a,
3091
3102
  /// \param __b
3092
3103
  /// A 128-bit integer vector.
3093
3104
  /// \returns A 128-bit integer vector containing the comparison results.
3094
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi16(__m128i __a,
3095
- __m128i __b) {
3105
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3106
+ _mm_cmpeq_epi16(__m128i __a, __m128i __b) {
3096
3107
  return (__m128i)((__v8hi)__a == (__v8hi)__b);
3097
3108
  }
3098
3109
 
@@ -3110,8 +3121,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi16(__m128i __a,
3110
3121
  /// \param __b
3111
3122
  /// A 128-bit integer vector.
3112
3123
  /// \returns A 128-bit integer vector containing the comparison results.
3113
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi32(__m128i __a,
3114
- __m128i __b) {
3124
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3125
+ _mm_cmpeq_epi32(__m128i __a, __m128i __b) {
3115
3126
  return (__m128i)((__v4si)__a == (__v4si)__b);
3116
3127
  }
3117
3128
 
@@ -3130,8 +3141,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi32(__m128i __a,
3130
3141
  /// \param __b
3131
3142
  /// A 128-bit integer vector.
3132
3143
  /// \returns A 128-bit integer vector containing the comparison results.
3133
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi8(__m128i __a,
3134
- __m128i __b) {
3144
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3145
+ _mm_cmpgt_epi8(__m128i __a, __m128i __b) {
3135
3146
  /* This function always performs a signed comparison, but __v16qi is a char
3136
3147
  which may be signed or unsigned, so use __v16qs. */
3137
3148
  return (__m128i)((__v16qs)__a > (__v16qs)__b);
@@ -3152,8 +3163,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi8(__m128i __a,
3152
3163
  /// \param __b
3153
3164
  /// A 128-bit integer vector.
3154
3165
  /// \returns A 128-bit integer vector containing the comparison results.
3155
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi16(__m128i __a,
3156
- __m128i __b) {
3166
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3167
+ _mm_cmpgt_epi16(__m128i __a, __m128i __b) {
3157
3168
  return (__m128i)((__v8hi)__a > (__v8hi)__b);
3158
3169
  }
3159
3170
 
@@ -3172,8 +3183,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi16(__m128i __a,
3172
3183
  /// \param __b
3173
3184
  /// A 128-bit integer vector.
3174
3185
  /// \returns A 128-bit integer vector containing the comparison results.
3175
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi32(__m128i __a,
3176
- __m128i __b) {
3186
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3187
+ _mm_cmpgt_epi32(__m128i __a, __m128i __b) {
3177
3188
  return (__m128i)((__v4si)__a > (__v4si)__b);
3178
3189
  }
3179
3190
 
@@ -3192,8 +3203,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi32(__m128i __a,
3192
3203
  /// \param __b
3193
3204
  /// A 128-bit integer vector.
3194
3205
  /// \returns A 128-bit integer vector containing the comparison results.
3195
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi8(__m128i __a,
3196
- __m128i __b) {
3206
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3207
+ _mm_cmplt_epi8(__m128i __a, __m128i __b) {
3197
3208
  return _mm_cmpgt_epi8(__b, __a);
3198
3209
  }
3199
3210
 
@@ -3212,8 +3223,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi8(__m128i __a,
3212
3223
  /// \param __b
3213
3224
  /// A 128-bit integer vector.
3214
3225
  /// \returns A 128-bit integer vector containing the comparison results.
3215
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi16(__m128i __a,
3216
- __m128i __b) {
3226
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3227
+ _mm_cmplt_epi16(__m128i __a, __m128i __b) {
3217
3228
  return _mm_cmpgt_epi16(__b, __a);
3218
3229
  }
3219
3230
 
@@ -3232,8 +3243,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi16(__m128i __a,
3232
3243
  /// \param __b
3233
3244
  /// A 128-bit integer vector.
3234
3245
  /// \returns A 128-bit integer vector containing the comparison results.
3235
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi32(__m128i __a,
3236
- __m128i __b) {
3246
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3247
+ _mm_cmplt_epi32(__m128i __a, __m128i __b) {
3237
3248
  return _mm_cmpgt_epi32(__b, __a);
3238
3249
  }
3239
3250
 
@@ -3255,8 +3266,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi32(__m128i __a,
3255
3266
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
3256
3267
  /// converted value of the second operand. The upper 64 bits are copied from
3257
3268
  /// the upper 64 bits of the first operand.
3258
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cvtsi64_sd(__m128d __a,
3259
- long long __b) {
3269
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
3270
+ _mm_cvtsi64_sd(__m128d __a, long long __b) {
3260
3271
  __a[0] = __b;
3261
3272
  return __a;
3262
3273
  }
@@ -3310,7 +3321,8 @@ static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvttsd_si64(__m128d __a) {
3310
3321
  /// \param __a
3311
3322
  /// A 128-bit integer vector.
3312
3323
  /// \returns A 128-bit vector of [4 x float] containing the converted values.
3313
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtepi32_ps(__m128i __a) {
3324
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
3325
+ _mm_cvtepi32_ps(__m128i __a) {
3314
3326
  return (__m128) __builtin_convertvector((__v4si)__a, __v4sf);
3315
3327
  }
3316
3328
 
@@ -3361,7 +3373,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvttps_epi32(__m128 __a) {
3361
3373
  /// \param __a
3362
3374
  /// A 32-bit signed integer operand.
3363
3375
  /// \returns A 128-bit vector of [4 x i32].
3364
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtsi32_si128(int __a) {
3376
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3377
+ _mm_cvtsi32_si128(int __a) {
3365
3378
  return __extension__(__m128i)(__v4si){__a, 0, 0, 0};
3366
3379
  }
3367
3380
 
@@ -3376,7 +3389,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtsi32_si128(int __a) {
3376
3389
  /// \param __a
3377
3390
  /// A 64-bit signed integer operand containing the value to be converted.
3378
3391
  /// \returns A 128-bit vector of [2 x i64] containing the converted value.
3379
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtsi64_si128(long long __a) {
3392
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3393
+ _mm_cvtsi64_si128(long long __a) {
3380
3394
  return __extension__(__m128i)(__v2di){__a, 0};
3381
3395
  }
3382
3396
 
@@ -3391,7 +3405,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtsi64_si128(long long __a) {
3391
3405
  /// A vector of [4 x i32]. The least significant 32 bits are moved to the
3392
3406
  /// destination.
3393
3407
  /// \returns A 32-bit signed integer containing the moved value.
3394
- static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsi128_si32(__m128i __a) {
3408
+ static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
3409
+ _mm_cvtsi128_si32(__m128i __a) {
3395
3410
  __v4si __b = (__v4si)__a;
3396
3411
  return __b[0];
3397
3412
  }
@@ -3407,7 +3422,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsi128_si32(__m128i __a) {
3407
3422
  /// A vector of [2 x i64]. The least significant 64 bits are moved to the
3408
3423
  /// destination.
3409
3424
  /// \returns A 64-bit signed integer containing the moved value.
3410
- static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtsi128_si64(__m128i __a) {
3425
+ static __inline__ long long __DEFAULT_FN_ATTRS_CONSTEXPR
3426
+ _mm_cvtsi128_si64(__m128i __a) {
3411
3427
  return __a[0];
3412
3428
  }
3413
3429
 
@@ -3494,8 +3510,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_undefined_si128(void) {
3494
3510
  /// destination vector of [2 x i64].
3495
3511
  /// \returns An initialized 128-bit vector of [2 x i64] containing the values
3496
3512
  /// provided in the operands.
3497
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi64x(long long __q1,
3498
- long long __q0) {
3513
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3514
+ _mm_set_epi64x(long long __q1, long long __q0) {
3499
3515
  return __extension__(__m128i)(__v2di){__q0, __q1};
3500
3516
  }
3501
3517
 
@@ -3515,9 +3531,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi64x(long long __q1,
3515
3531
  /// destination vector of [2 x i64].
3516
3532
  /// \returns An initialized 128-bit vector of [2 x i64] containing the values
3517
3533
  /// provided in the operands.
3518
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi64(__m64 __q1,
3519
- __m64 __q0) {
3520
- return _mm_set_epi64x((long long)__q1, (long long)__q0);
3534
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3535
+ _mm_set_epi64(__m64 __q1, __m64 __q0) {
3536
+ return _mm_set_epi64x((long long)__q1[0], (long long)__q0[0]);
3521
3537
  }
3522
3538
 
3523
3539
  /// Initializes the 32-bit values in a 128-bit vector of [4 x i32] with
@@ -3542,8 +3558,10 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi64(__m64 __q1,
3542
3558
  /// vector.
3543
3559
  /// \returns An initialized 128-bit vector of [4 x i32] containing the values
3544
3560
  /// provided in the operands.
3545
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi32(int __i3, int __i2,
3546
- int __i1, int __i0) {
3561
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_epi32(int __i3,
3562
+ int __i2,
3563
+ int __i1,
3564
+ int __i0) {
3547
3565
  return __extension__(__m128i)(__v4si){__i0, __i1, __i2, __i3};
3548
3566
  }
3549
3567
 
@@ -3581,7 +3599,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi32(int __i3, int __i2,
3581
3599
  /// vector.
3582
3600
  /// \returns An initialized 128-bit vector of [8 x i16] containing the values
3583
3601
  /// provided in the operands.
3584
- static __inline__ __m128i __DEFAULT_FN_ATTRS
3602
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3585
3603
  _mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3,
3586
3604
  short __w2, short __w1, short __w0) {
3587
3605
  return __extension__(__m128i)(__v8hi){__w0, __w1, __w2, __w3,
@@ -3630,7 +3648,7 @@ _mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3,
3630
3648
  /// Initializes bits [7:0] of the destination vector.
3631
3649
  /// \returns An initialized 128-bit vector of [16 x i8] containing the values
3632
3650
  /// provided in the operands.
3633
- static __inline__ __m128i __DEFAULT_FN_ATTRS
3651
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3634
3652
  _mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11,
3635
3653
  char __b10, char __b9, char __b8, char __b7, char __b6, char __b5,
3636
3654
  char __b4, char __b3, char __b2, char __b1, char __b0) {
@@ -3652,7 +3670,8 @@ _mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11,
3652
3670
  /// vector.
3653
3671
  /// \returns An initialized 128-bit integer vector of [2 x i64] with both
3654
3672
  /// elements containing the value provided in the operand.
3655
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi64x(long long __q) {
3673
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3674
+ _mm_set1_epi64x(long long __q) {
3656
3675
  return _mm_set_epi64x(__q, __q);
3657
3676
  }
3658
3677
 
@@ -3669,7 +3688,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi64x(long long __q) {
3669
3688
  /// vector.
3670
3689
  /// \returns An initialized 128-bit vector of [2 x i64] with all elements
3671
3690
  /// containing the value provided in the operand.
3672
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi64(__m64 __q) {
3691
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3692
+ _mm_set1_epi64(__m64 __q) {
3673
3693
  return _mm_set_epi64(__q, __q);
3674
3694
  }
3675
3695
 
@@ -3686,7 +3706,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi64(__m64 __q) {
3686
3706
  /// vector.
3687
3707
  /// \returns An initialized 128-bit vector of [4 x i32] with all elements
3688
3708
  /// containing the value provided in the operand.
3689
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi32(int __i) {
3709
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi32(int __i) {
3690
3710
  return _mm_set_epi32(__i, __i, __i, __i);
3691
3711
  }
3692
3712
 
@@ -3703,7 +3723,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi32(int __i) {
3703
3723
  /// vector.
3704
3724
  /// \returns An initialized 128-bit vector of [8 x i16] with all elements
3705
3725
  /// containing the value provided in the operand.
3706
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi16(short __w) {
3726
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3727
+ _mm_set1_epi16(short __w) {
3707
3728
  return _mm_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w);
3708
3729
  }
3709
3730
 
@@ -3720,7 +3741,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi16(short __w) {
3720
3741
  /// vector.
3721
3742
  /// \returns An initialized 128-bit vector of [16 x i8] with all elements
3722
3743
  /// containing the value provided in the operand.
3723
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi8(char __b) {
3744
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi8(char __b) {
3724
3745
  return _mm_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b,
3725
3746
  __b, __b, __b, __b, __b);
3726
3747
  }
@@ -3739,8 +3760,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set1_epi8(char __b) {
3739
3760
  /// A 64-bit integral value used to initialize the upper 64 bits of the
3740
3761
  /// result.
3741
3762
  /// \returns An initialized 128-bit integer vector.
3742
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_setr_epi64(__m64 __q0,
3743
- __m64 __q1) {
3763
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3764
+ _mm_setr_epi64(__m64 __q0, __m64 __q1) {
3744
3765
  return _mm_set_epi64(__q1, __q0);
3745
3766
  }
3746
3767
 
@@ -3761,9 +3782,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_setr_epi64(__m64 __q0,
3761
3782
  /// \param __i3
3762
3783
  /// A 32-bit integral value used to initialize bits [127:96] of the result.
3763
3784
  /// \returns An initialized 128-bit integer vector.
3764
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_setr_epi32(int __i0, int __i1,
3765
- int __i2,
3766
- int __i3) {
3785
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3786
+ _mm_setr_epi32(int __i0, int __i1, int __i2, int __i3) {
3767
3787
  return _mm_set_epi32(__i3, __i2, __i1, __i0);
3768
3788
  }
3769
3789
 
@@ -3792,7 +3812,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_setr_epi32(int __i0, int __i1,
3792
3812
  /// \param __w7
3793
3813
  /// A 16-bit integral value used to initialize bits [127:112] of the result.
3794
3814
  /// \returns An initialized 128-bit integer vector.
3795
- static __inline__ __m128i __DEFAULT_FN_ATTRS
3815
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3796
3816
  _mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4,
3797
3817
  short __w5, short __w6, short __w7) {
3798
3818
  return _mm_set_epi16(__w7, __w6, __w5, __w4, __w3, __w2, __w1, __w0);
@@ -3839,7 +3859,7 @@ _mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4,
3839
3859
  /// \param __b15
3840
3860
  /// An 8-bit integral value used to initialize bits [127:120] of the result.
3841
3861
  /// \returns An initialized 128-bit integer vector.
3842
- static __inline__ __m128i __DEFAULT_FN_ATTRS
3862
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
3843
3863
  _mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
3844
3864
  char __b6, char __b7, char __b8, char __b9, char __b10,
3845
3865
  char __b11, char __b12, char __b13, char __b14, char __b15) {
@@ -3855,7 +3875,7 @@ _mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
3855
3875
  ///
3856
3876
  /// \returns An initialized 128-bit integer vector with all elements set to
3857
3877
  /// zero.
3858
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_setzero_si128(void) {
3878
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_si128(void) {
3859
3879
  return __extension__(__m128i)(__v2di){0LL, 0LL};
3860
3880
  }
3861
3881
 
@@ -4139,8 +4159,8 @@ void _mm_mfence(void);
4139
4159
  /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are
4140
4160
  /// written to the higher 64 bits of the result.
4141
4161
  /// \returns A 128-bit vector of [16 x i8] containing the converted values.
4142
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packs_epi16(__m128i __a,
4143
- __m128i __b) {
4162
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4163
+ _mm_packs_epi16(__m128i __a, __m128i __b) {
4144
4164
  return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b);
4145
4165
  }
4146
4166
 
@@ -4162,8 +4182,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packs_epi16(__m128i __a,
4162
4182
  /// A 128-bit integer vector of [4 x i32]. The converted [4 x i16] values
4163
4183
  /// are written to the higher 64 bits of the result.
4164
4184
  /// \returns A 128-bit vector of [8 x i16] containing the converted values.
4165
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packs_epi32(__m128i __a,
4166
- __m128i __b) {
4185
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4186
+ _mm_packs_epi32(__m128i __a, __m128i __b) {
4167
4187
  return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b);
4168
4188
  }
4169
4189
 
@@ -4185,8 +4205,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packs_epi32(__m128i __a,
4185
4205
  /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are
4186
4206
  /// written to the higher 64 bits of the result.
4187
4207
  /// \returns A 128-bit vector of [16 x i8] containing the converted values.
4188
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi16(__m128i __a,
4189
- __m128i __b) {
4208
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4209
+ _mm_packus_epi16(__m128i __a, __m128i __b) {
4190
4210
  return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b);
4191
4211
  }
4192
4212
 
@@ -4260,7 +4280,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi16(__m128i __a,
4260
4280
  /// A 128-bit integer vector containing the values with bits to be extracted.
4261
4281
  /// \returns The most significant bits from each 8-bit element in \a __a,
4262
4282
  /// written to bits [15:0]. The other bits are assigned zeros.
4263
- static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_epi8(__m128i __a) {
4283
+ static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
4284
+ _mm_movemask_epi8(__m128i __a) {
4264
4285
  return __builtin_ia32_pmovmskb128((__v16qi)__a);
4265
4286
  }
4266
4287
 
@@ -4393,8 +4414,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_epi8(__m128i __a) {
4393
4414
  /// Bits [119:112] are written to bits [111:104] of the result. \n
4394
4415
  /// Bits [127:120] are written to bits [127:120] of the result.
4395
4416
  /// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
4396
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi8(__m128i __a,
4397
- __m128i __b) {
4417
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4418
+ _mm_unpackhi_epi8(__m128i __a, __m128i __b) {
4398
4419
  return (__m128i)__builtin_shufflevector(
4399
4420
  (__v16qi)__a, (__v16qi)__b, 8, 16 + 8, 9, 16 + 9, 10, 16 + 10, 11,
4400
4421
  16 + 11, 12, 16 + 12, 13, 16 + 13, 14, 16 + 14, 15, 16 + 15);
@@ -4421,8 +4442,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi8(__m128i __a,
4421
4442
  /// Bits [111:96] are written to bits [95:80] of the result. \n
4422
4443
  /// Bits [127:112] are written to bits [127:112] of the result.
4423
4444
  /// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
4424
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi16(__m128i __a,
4425
- __m128i __b) {
4445
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4446
+ _mm_unpackhi_epi16(__m128i __a, __m128i __b) {
4426
4447
  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8 + 4, 5,
4427
4448
  8 + 5, 6, 8 + 6, 7, 8 + 7);
4428
4449
  }
@@ -4444,8 +4465,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi16(__m128i __a,
4444
4465
  /// Bits [95:64] are written to bits [64:32] of the destination. \n
4445
4466
  /// Bits [127:96] are written to bits [127:96] of the destination.
4446
4467
  /// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
4447
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi32(__m128i __a,
4448
- __m128i __b) {
4468
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4469
+ _mm_unpackhi_epi32(__m128i __a, __m128i __b) {
4449
4470
  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4 + 2, 3,
4450
4471
  4 + 3);
4451
4472
  }
@@ -4465,8 +4486,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi32(__m128i __a,
4465
4486
  /// A 128-bit vector of [2 x i64]. \n
4466
4487
  /// Bits [127:64] are written to bits [127:64] of the destination.
4467
4488
  /// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
4468
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi64(__m128i __a,
4469
- __m128i __b) {
4489
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4490
+ _mm_unpackhi_epi64(__m128i __a, __m128i __b) {
4470
4491
  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2 + 1);
4471
4492
  }
4472
4493
 
@@ -4499,8 +4520,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi64(__m128i __a,
4499
4520
  /// Bits [55:48] are written to bits [111:104] of the result. \n
4500
4521
  /// Bits [63:56] are written to bits [127:120] of the result.
4501
4522
  /// \returns A 128-bit vector of [16 x i8] containing the interleaved values.
4502
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi8(__m128i __a,
4503
- __m128i __b) {
4523
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4524
+ _mm_unpacklo_epi8(__m128i __a, __m128i __b) {
4504
4525
  return (__m128i)__builtin_shufflevector(
4505
4526
  (__v16qi)__a, (__v16qi)__b, 0, 16 + 0, 1, 16 + 1, 2, 16 + 2, 3, 16 + 3, 4,
4506
4527
  16 + 4, 5, 16 + 5, 6, 16 + 6, 7, 16 + 7);
@@ -4528,8 +4549,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi8(__m128i __a,
4528
4549
  /// Bits [47:32] are written to bits [95:80] of the result. \n
4529
4550
  /// Bits [63:48] are written to bits [127:112] of the result.
4530
4551
  /// \returns A 128-bit vector of [8 x i16] containing the interleaved values.
4531
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi16(__m128i __a,
4532
- __m128i __b) {
4552
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4553
+ _mm_unpacklo_epi16(__m128i __a, __m128i __b) {
4533
4554
  return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8 + 0, 1,
4534
4555
  8 + 1, 2, 8 + 2, 3, 8 + 3);
4535
4556
  }
@@ -4551,8 +4572,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi16(__m128i __a,
4551
4572
  /// Bits [31:0] are written to bits [64:32] of the destination. \n
4552
4573
  /// Bits [63:32] are written to bits [127:96] of the destination.
4553
4574
  /// \returns A 128-bit vector of [4 x i32] containing the interleaved values.
4554
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi32(__m128i __a,
4555
- __m128i __b) {
4575
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4576
+ _mm_unpacklo_epi32(__m128i __a, __m128i __b) {
4556
4577
  return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4 + 0, 1,
4557
4578
  4 + 1);
4558
4579
  }
@@ -4572,8 +4593,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi32(__m128i __a,
4572
4593
  /// A 128-bit vector of [2 x i64]. \n
4573
4594
  /// Bits [63:0] are written to bits [127:64] of the destination. \n
4574
4595
  /// \returns A 128-bit vector of [2 x i64] containing the interleaved values.
4575
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi64(__m128i __a,
4576
- __m128i __b) {
4596
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4597
+ _mm_unpacklo_epi64(__m128i __a, __m128i __b) {
4577
4598
  return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2 + 0);
4578
4599
  }
4579
4600
 
@@ -4588,7 +4609,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi64(__m128i __a,
4588
4609
  /// A 128-bit integer vector operand. The lower 64 bits are moved to the
4589
4610
  /// destination.
4590
4611
  /// \returns A 64-bit integer containing the lower 64 bits of the parameter.
4591
- static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_movepi64_pi64(__m128i __a) {
4612
+ static __inline__ __m64 __DEFAULT_FN_ATTRS_CONSTEXPR
4613
+ _mm_movepi64_pi64(__m128i __a) {
4592
4614
  return (__m64)__a[0];
4593
4615
  }
4594
4616
 
@@ -4603,8 +4625,9 @@ static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_movepi64_pi64(__m128i __a) {
4603
4625
  /// A 64-bit value.
4604
4626
  /// \returns A 128-bit integer vector. The lower 64 bits contain the value from
4605
4627
  /// the operand. The upper 64 bits are assigned zeros.
4606
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_movpi64_epi64(__m64 __a) {
4607
- return __extension__(__m128i)(__v2di){(long long)__a, 0};
4628
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4629
+ _mm_movpi64_epi64(__m64 __a) {
4630
+ return __builtin_shufflevector((__v1di)__a, _mm_setzero_si64(), 0, 1);
4608
4631
  }
4609
4632
 
4610
4633
  /// Moves the lower 64 bits of a 128-bit integer vector to a 128-bit
@@ -4619,7 +4642,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_movpi64_epi64(__m64 __a) {
4619
4642
  /// destination.
4620
4643
  /// \returns A 128-bit integer vector. The lower 64 bits contain the value from
4621
4644
  /// the operand. The upper 64 bits are assigned zeros.
4622
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_move_epi64(__m128i __a) {
4645
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4646
+ _mm_move_epi64(__m128i __a) {
4623
4647
  return __builtin_shufflevector((__v2di)__a, _mm_setzero_si128(), 0, 2);
4624
4648
  }
4625
4649
 
@@ -4638,8 +4662,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_move_epi64(__m128i __a) {
4638
4662
  /// A 128-bit vector of [2 x double]. \n
4639
4663
  /// Bits [127:64] are written to bits [127:64] of the destination.
4640
4664
  /// \returns A 128-bit vector of [2 x double] containing the interleaved values.
4641
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpackhi_pd(__m128d __a,
4642
- __m128d __b) {
4665
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
4666
+ _mm_unpackhi_pd(__m128d __a, __m128d __b) {
4643
4667
  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2 + 1);
4644
4668
  }
4645
4669
 
@@ -4658,8 +4682,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpackhi_pd(__m128d __a,
4658
4682
  /// A 128-bit vector of [2 x double]. \n
4659
4683
  /// Bits [63:0] are written to bits [127:64] of the destination.
4660
4684
  /// \returns A 128-bit vector of [2 x double] containing the interleaved values.
4661
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpacklo_pd(__m128d __a,
4662
- __m128d __b) {
4685
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
4686
+ _mm_unpacklo_pd(__m128d __a, __m128d __b) {
4663
4687
  return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2 + 0);
4664
4688
  }
4665
4689
 
@@ -4676,7 +4700,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_unpacklo_pd(__m128d __a,
4676
4700
  /// be extracted.
4677
4701
  /// \returns The sign bits from each of the double-precision elements in \a __a,
4678
4702
  /// written to bits [1:0]. The remaining bits are assigned values of zero.
4679
- static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pd(__m128d __a) {
4703
+ static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
4704
+ _mm_movemask_pd(__m128d __a) {
4680
4705
  return __builtin_ia32_movmskpd((__v2df)__a);
4681
4706
  }
4682
4707
 
@@ -4722,7 +4747,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pd(__m128d __a) {
4722
4747
  /// A 128-bit floating-point vector of [2 x double].
4723
4748
  /// \returns A 128-bit floating-point vector of [4 x float] containing the same
4724
4749
  /// bitwise pattern as the parameter.
4725
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_castpd_ps(__m128d __a) {
4750
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
4751
+ _mm_castpd_ps(__m128d __a) {
4726
4752
  return (__m128)__a;
4727
4753
  }
4728
4754
 
@@ -4737,7 +4763,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_castpd_ps(__m128d __a) {
4737
4763
  /// A 128-bit floating-point vector of [2 x double].
4738
4764
  /// \returns A 128-bit integer vector containing the same bitwise pattern as the
4739
4765
  /// parameter.
4740
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_castpd_si128(__m128d __a) {
4766
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4767
+ _mm_castpd_si128(__m128d __a) {
4741
4768
  return (__m128i)__a;
4742
4769
  }
4743
4770
 
@@ -4752,7 +4779,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_castpd_si128(__m128d __a) {
4752
4779
  /// A 128-bit floating-point vector of [4 x float].
4753
4780
  /// \returns A 128-bit floating-point vector of [2 x double] containing the same
4754
4781
  /// bitwise pattern as the parameter.
4755
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_castps_pd(__m128 __a) {
4782
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
4783
+ _mm_castps_pd(__m128 __a) {
4756
4784
  return (__m128d)__a;
4757
4785
  }
4758
4786
 
@@ -4767,7 +4795,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_castps_pd(__m128 __a) {
4767
4795
  /// A 128-bit floating-point vector of [4 x float].
4768
4796
  /// \returns A 128-bit integer vector containing the same bitwise pattern as the
4769
4797
  /// parameter.
4770
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_castps_si128(__m128 __a) {
4798
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
4799
+ _mm_castps_si128(__m128 __a) {
4771
4800
  return (__m128i)__a;
4772
4801
  }
4773
4802
 
@@ -4782,7 +4811,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_castps_si128(__m128 __a) {
4782
4811
  /// A 128-bit integer vector.
4783
4812
  /// \returns A 128-bit floating-point vector of [4 x float] containing the same
4784
4813
  /// bitwise pattern as the parameter.
4785
- static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_castsi128_ps(__m128i __a) {
4814
+ static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
4815
+ _mm_castsi128_ps(__m128i __a) {
4786
4816
  return (__m128)__a;
4787
4817
  }
4788
4818
 
@@ -4797,7 +4827,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_castsi128_ps(__m128i __a) {
4797
4827
  /// A 128-bit integer vector.
4798
4828
  /// \returns A 128-bit floating-point vector of [2 x double] containing the same
4799
4829
  /// bitwise pattern as the parameter.
4800
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_castsi128_pd(__m128i __a) {
4830
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR
4831
+ _mm_castsi128_pd(__m128i __a) {
4801
4832
  return (__m128d)__a;
4802
4833
  }
4803
4834
 
@@ -4889,8 +4920,11 @@ void _mm_pause(void);
4889
4920
  #if defined(__cplusplus)
4890
4921
  } // extern "C"
4891
4922
  #endif
4923
+
4924
+ #undef __anyext128
4925
+ #undef __trunc64
4892
4926
  #undef __DEFAULT_FN_ATTRS
4893
- #undef __DEFAULT_FN_ATTRS_MMX
4927
+ #undef __DEFAULT_FN_ATTRS_CONSTEXPR
4894
4928
 
4895
4929
  #define _MM_SHUFFLE2(x, y) (((x) << 1) | (y))
4896
4930