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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_complex_builtins.h +3 -3
  4. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_intrinsics.h +32 -0
  5. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_libdevice_declares.h +6 -0
  6. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_math.h +1 -1
  7. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_runtime_wrapper.h +62 -7
  8. package/lib/clang/14.0.0/include/__clang_cuda_texture_intrinsics.h +740 -0
  9. package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_runtime_wrapper.h +17 -4
  10. package/lib/clang/{13.0.0 → 14.0.0}/include/__wmmintrin_aes.h +1 -1
  11. package/lib/clang/{13.0.0 → 14.0.0}/include/altivec.h +202 -92
  12. package/lib/clang/{13.0.0 → 14.0.0}/include/ammintrin.h +4 -0
  13. package/lib/clang/{13.0.0 → 14.0.0}/include/amxintrin.h +17 -16
  14. package/lib/clang/{13.0.0 → 14.0.0}/include/arm_acle.h +6 -0
  15. package/lib/clang/{13.0.0 → 14.0.0}/include/arm_neon.h +4467 -4469
  16. package/lib/clang/14.0.0/include/arm_neon_sve_bridge.h +184 -0
  17. package/lib/clang/{13.0.0 → 14.0.0}/include/avx2intrin.h +181 -181
  18. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512bf16intrin.h +3 -3
  19. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512bwintrin.h +71 -71
  20. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512dqintrin.h +365 -365
  21. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512erintrin.h +102 -102
  22. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512fintrin.h +1573 -1569
  23. package/lib/clang/14.0.0/include/avx512fp16intrin.h +3349 -0
  24. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vbmi2intrin.h +48 -48
  25. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlbf16intrin.h +51 -3
  26. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlbwintrin.h +94 -94
  27. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vldqintrin.h +134 -134
  28. package/lib/clang/14.0.0/include/avx512vlfp16intrin.h +2068 -0
  29. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlintrin.h +563 -563
  30. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlvbmi2intrin.h +96 -96
  31. package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlvnniintrin.h +8 -8
  32. package/lib/clang/{13.0.0 → 14.0.0}/include/avxintrin.h +189 -192
  33. package/lib/clang/{13.0.0 → 14.0.0}/include/cetintrin.h +10 -0
  34. package/lib/clang/{13.0.0 → 14.0.0}/include/cpuid.h +2 -1
  35. package/lib/clang/14.0.0/include/crc32intrin.h +100 -0
  36. package/lib/clang/{13.0.0 → 14.0.0}/include/emmintrin.h +21 -17
  37. package/lib/clang/{13.0.0 → 14.0.0}/include/f16cintrin.h +4 -4
  38. package/lib/clang/{13.0.0 → 14.0.0}/include/float.h +15 -6
  39. package/lib/clang/{13.0.0 → 14.0.0}/include/gfniintrin.h +47 -48
  40. package/lib/clang/{13.0.0 → 14.0.0}/include/hexagon_protos.h +0 -11
  41. package/lib/clang/{13.0.0 → 14.0.0}/include/hexagon_types.h +0 -32
  42. package/lib/clang/{13.0.0 → 14.0.0}/include/hvx_hexagon_protos.h +1200 -409
  43. package/lib/clang/{13.0.0 → 14.0.0}/include/ia32intrin.h +6 -6
  44. package/lib/clang/{13.0.0 → 14.0.0}/include/immintrin.h +26 -8
  45. package/lib/clang/{13.0.0 → 14.0.0}/include/intrin.h +24 -16
  46. package/lib/clang/{13.0.0 → 14.0.0}/include/keylockerintrin.h +2 -8
  47. package/lib/clang/{13.0.0 → 14.0.0}/include/limits.h +20 -0
  48. package/lib/clang/{13.0.0 → 14.0.0}/include/mmintrin.h +4 -0
  49. package/lib/clang/{13.0.0 → 14.0.0}/include/nmmintrin.h +4 -0
  50. package/lib/clang/{13.0.0 → 14.0.0}/include/opencl-c-base.h +69 -11
  51. package/lib/clang/{13.0.0 → 14.0.0}/include/opencl-c.h +1699 -459
  52. package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/complex +10 -1
  53. package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/complex.h +9 -0
  54. package/lib/clang/{13.0.0 → 14.0.0}/include/pmmintrin.h +4 -0
  55. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/emmintrin.h +3 -2
  56. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/mm_malloc.h +2 -2
  57. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/mmintrin.h +3 -2
  58. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/pmmintrin.h +3 -2
  59. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/smmintrin.h +4 -3
  60. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/tmmintrin.h +3 -2
  61. package/lib/clang/{13.0.0 → 14.0.0}/include/ppc_wrappers/xmmintrin.h +3 -2
  62. package/lib/clang/{13.0.0 → 14.0.0}/include/prfchwintrin.h +5 -2
  63. package/lib/clang/14.0.0/include/riscv_vector.h +95423 -0
  64. package/lib/clang/{13.0.0 → 14.0.0}/include/smmintrin.h +80 -159
  65. package/lib/clang/{13.0.0 → 14.0.0}/include/stdatomic.h +14 -1
  66. package/lib/clang/{13.0.0 → 14.0.0}/include/stdint.h +168 -0
  67. package/lib/clang/{13.0.0 → 14.0.0}/include/tmmintrin.h +10 -6
  68. package/lib/clang/{13.0.0 → 14.0.0}/include/unwind.h +2 -1
  69. package/lib/clang/{13.0.0 → 14.0.0}/include/vaesintrin.h +1 -1
  70. package/lib/clang/{13.0.0 → 14.0.0}/include/vpclmulqdqintrin.h +6 -6
  71. package/lib/clang/{13.0.0 → 14.0.0}/include/wasm_simd128.h +167 -24
  72. package/lib/clang/{13.0.0 → 14.0.0}/include/wmmintrin.h +4 -0
  73. package/lib/clang/{13.0.0 → 14.0.0}/include/x86gprintrin.h +12 -0
  74. package/lib/clang/{13.0.0 → 14.0.0}/include/xmmintrin.h +9 -5
  75. package/lib/clang/{13.0.0 → 14.0.0}/include/xopintrin.h +31 -31
  76. package/package.json +6 -6
  77. package/lib/clang/13.0.0/include/riscv_vector.h +0 -123865
  78. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_builtin_vars.h +0 -0
  79. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_cmath.h +0 -0
  80. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_device_functions.h +0 -0
  81. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_cuda_math_forward_declares.h +0 -0
  82. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_cmath.h +0 -0
  83. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_libdevice_declares.h +0 -0
  84. /package/lib/clang/{13.0.0 → 14.0.0}/include/__clang_hip_math.h +0 -0
  85. /package/lib/clang/{13.0.0 → 14.0.0}/include/__stddef_max_align_t.h +0 -0
  86. /package/lib/clang/{13.0.0 → 14.0.0}/include/__wmmintrin_pclmul.h +0 -0
  87. /package/lib/clang/{13.0.0 → 14.0.0}/include/adxintrin.h +0 -0
  88. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm64intr.h +0 -0
  89. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_bf16.h +0 -0
  90. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_cde.h +0 -0
  91. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_cmse.h +0 -0
  92. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_fp16.h +0 -0
  93. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_mve.h +0 -0
  94. /package/lib/clang/{13.0.0 → 14.0.0}/include/arm_sve.h +0 -0
  95. /package/lib/clang/{13.0.0 → 14.0.0}/include/armintr.h +0 -0
  96. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512bitalgintrin.h +0 -0
  97. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512cdintrin.h +0 -0
  98. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512ifmaintrin.h +0 -0
  99. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512ifmavlintrin.h +0 -0
  100. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512pfintrin.h +0 -0
  101. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vbmiintrin.h +0 -0
  102. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vbmivlintrin.h +0 -0
  103. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlbitalgintrin.h +0 -0
  104. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlcdintrin.h +0 -0
  105. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vlvp2intersectintrin.h +0 -0
  106. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vnniintrin.h +0 -0
  107. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vp2intersectintrin.h +0 -0
  108. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vpopcntdqintrin.h +0 -0
  109. /package/lib/clang/{13.0.0 → 14.0.0}/include/avx512vpopcntdqvlintrin.h +0 -0
  110. /package/lib/clang/{13.0.0 → 14.0.0}/include/avxvnniintrin.h +0 -0
  111. /package/lib/clang/{13.0.0 → 14.0.0}/include/bmi2intrin.h +0 -0
  112. /package/lib/clang/{13.0.0 → 14.0.0}/include/bmiintrin.h +0 -0
  113. /package/lib/clang/{13.0.0 → 14.0.0}/include/builtins.h +0 -0
  114. /package/lib/clang/{13.0.0 → 14.0.0}/include/cet.h +0 -0
  115. /package/lib/clang/{13.0.0 → 14.0.0}/include/cldemoteintrin.h +0 -0
  116. /package/lib/clang/{13.0.0 → 14.0.0}/include/clflushoptintrin.h +0 -0
  117. /package/lib/clang/{13.0.0 → 14.0.0}/include/clwbintrin.h +0 -0
  118. /package/lib/clang/{13.0.0 → 14.0.0}/include/clzerointrin.h +0 -0
  119. /package/lib/clang/{13.0.0 → 14.0.0}/include/cuda_wrappers/algorithm +0 -0
  120. /package/lib/clang/{13.0.0 → 14.0.0}/include/cuda_wrappers/complex +0 -0
  121. /package/lib/clang/{13.0.0 → 14.0.0}/include/cuda_wrappers/new +0 -0
  122. /package/lib/clang/{13.0.0 → 14.0.0}/include/enqcmdintrin.h +0 -0
  123. /package/lib/clang/{13.0.0 → 14.0.0}/include/fma4intrin.h +0 -0
  124. /package/lib/clang/{13.0.0 → 14.0.0}/include/fmaintrin.h +0 -0
  125. /package/lib/clang/{13.0.0 → 14.0.0}/include/fxsrintrin.h +0 -0
  126. /package/lib/clang/{13.0.0 → 14.0.0}/include/hexagon_circ_brev_intrinsics.h +0 -0
  127. /package/lib/clang/{13.0.0 → 14.0.0}/include/hresetintrin.h +0 -0
  128. /package/lib/clang/{13.0.0 → 14.0.0}/include/htmintrin.h +0 -0
  129. /package/lib/clang/{13.0.0 → 14.0.0}/include/htmxlintrin.h +0 -0
  130. /package/lib/clang/{13.0.0 → 14.0.0}/include/inttypes.h +0 -0
  131. /package/lib/clang/{13.0.0 → 14.0.0}/include/invpcidintrin.h +0 -0
  132. /package/lib/clang/{13.0.0 → 14.0.0}/include/iso646.h +0 -0
  133. /package/lib/clang/{13.0.0 → 14.0.0}/include/lwpintrin.h +0 -0
  134. /package/lib/clang/{13.0.0 → 14.0.0}/include/lzcntintrin.h +0 -0
  135. /package/lib/clang/{13.0.0 → 14.0.0}/include/mm3dnow.h +0 -0
  136. /package/lib/clang/{13.0.0 → 14.0.0}/include/mm_malloc.h +0 -0
  137. /package/lib/clang/{13.0.0 → 14.0.0}/include/module.modulemap +0 -0
  138. /package/lib/clang/{13.0.0 → 14.0.0}/include/movdirintrin.h +0 -0
  139. /package/lib/clang/{13.0.0 → 14.0.0}/include/msa.h +0 -0
  140. /package/lib/clang/{13.0.0 → 14.0.0}/include/mwaitxintrin.h +0 -0
  141. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  142. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/cmath +0 -0
  143. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/complex_cmath.h +0 -0
  144. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/math.h +0 -0
  145. /package/lib/clang/{13.0.0 → 14.0.0}/include/openmp_wrappers/new +0 -0
  146. /package/lib/clang/{13.0.0 → 14.0.0}/include/pconfigintrin.h +0 -0
  147. /package/lib/clang/{13.0.0 → 14.0.0}/include/pkuintrin.h +0 -0
  148. /package/lib/clang/{13.0.0 → 14.0.0}/include/popcntintrin.h +0 -0
  149. /package/lib/clang/{13.0.0 → 14.0.0}/include/ptwriteintrin.h +0 -0
  150. /package/lib/clang/{13.0.0 → 14.0.0}/include/rdseedintrin.h +0 -0
  151. /package/lib/clang/{13.0.0 → 14.0.0}/include/rtmintrin.h +0 -0
  152. /package/lib/clang/{13.0.0 → 14.0.0}/include/s390intrin.h +0 -0
  153. /package/lib/clang/{13.0.0 → 14.0.0}/include/serializeintrin.h +0 -0
  154. /package/lib/clang/{13.0.0 → 14.0.0}/include/sgxintrin.h +0 -0
  155. /package/lib/clang/{13.0.0 → 14.0.0}/include/shaintrin.h +0 -0
  156. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdalign.h +0 -0
  157. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdarg.h +0 -0
  158. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdbool.h +0 -0
  159. /package/lib/clang/{13.0.0 → 14.0.0}/include/stddef.h +0 -0
  160. /package/lib/clang/{13.0.0 → 14.0.0}/include/stdnoreturn.h +0 -0
  161. /package/lib/clang/{13.0.0 → 14.0.0}/include/tbmintrin.h +0 -0
  162. /package/lib/clang/{13.0.0 → 14.0.0}/include/tgmath.h +0 -0
  163. /package/lib/clang/{13.0.0 → 14.0.0}/include/tsxldtrkintrin.h +0 -0
  164. /package/lib/clang/{13.0.0 → 14.0.0}/include/uintrintrin.h +0 -0
  165. /package/lib/clang/{13.0.0 → 14.0.0}/include/vadefs.h +0 -0
  166. /package/lib/clang/{13.0.0 → 14.0.0}/include/varargs.h +0 -0
  167. /package/lib/clang/{13.0.0 → 14.0.0}/include/vecintrin.h +0 -0
  168. /package/lib/clang/{13.0.0 → 14.0.0}/include/waitpkgintrin.h +0 -0
  169. /package/lib/clang/{13.0.0 → 14.0.0}/include/wbnoinvdintrin.h +0 -0
  170. /package/lib/clang/{13.0.0 → 14.0.0}/include/x86intrin.h +0 -0
  171. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsavecintrin.h +0 -0
  172. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsaveintrin.h +0 -0
  173. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsaveoptintrin.h +0 -0
  174. /package/lib/clang/{13.0.0 → 14.0.0}/include/xsavesintrin.h +0 -0
  175. /package/lib/clang/{13.0.0 → 14.0.0}/include/xtestintrin.h +0 -0
@@ -19,6 +19,10 @@
19
19
  #define __CR6_EQ_REV 1
20
20
  #define __CR6_LT 2
21
21
  #define __CR6_LT_REV 3
22
+ #define __CR6_GT 4
23
+ #define __CR6_GT_REV 5
24
+ #define __CR6_SO 6
25
+ #define __CR6_SO_REV 7
22
26
 
23
27
  /* Constants for vec_test_data_class */
24
28
  #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0)
@@ -1810,6 +1814,11 @@ vec_cmpeq(vector unsigned __int128 __a, vector unsigned __int128 __b) {
1810
1814
  return (vector bool __int128)__builtin_altivec_vcmpequq(
1811
1815
  (vector bool __int128)__a, (vector bool __int128)__b);
1812
1816
  }
1817
+
1818
+ static __inline__ vector bool __int128 __ATTRS_o_ai
1819
+ vec_cmpeq(vector bool __int128 __a, vector bool __int128 __b) {
1820
+ return (vector bool __int128)__builtin_altivec_vcmpequq(__a, __b);
1821
+ }
1813
1822
  #endif
1814
1823
 
1815
1824
  #ifdef __POWER9_VECTOR__
@@ -1887,6 +1896,11 @@ vec_cmpne(vector signed __int128 __a, vector signed __int128 __b) {
1887
1896
  return (vector bool __int128) ~(__builtin_altivec_vcmpequq(
1888
1897
  (vector bool __int128)__a, (vector bool __int128)__b));
1889
1898
  }
1899
+
1900
+ static __inline__ vector bool __int128 __ATTRS_o_ai
1901
+ vec_cmpne(vector bool __int128 __a, vector bool __int128 __b) {
1902
+ return (vector bool __int128) ~(__builtin_altivec_vcmpequq(__a, __b));
1903
+ }
1890
1904
  #endif
1891
1905
 
1892
1906
  /* vec_cmpnez */
@@ -2472,7 +2486,7 @@ vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2472
2486
  #ifdef __POWER8_VECTOR__
2473
2487
  /* vec_popcnt */
2474
2488
 
2475
- static __inline__ vector signed char __ATTRS_o_ai
2489
+ static __inline__ vector unsigned char __ATTRS_o_ai
2476
2490
  vec_popcnt(vector signed char __a) {
2477
2491
  return __builtin_altivec_vpopcntb(__a);
2478
2492
  }
@@ -2480,7 +2494,7 @@ static __inline__ vector unsigned char __ATTRS_o_ai
2480
2494
  vec_popcnt(vector unsigned char __a) {
2481
2495
  return __builtin_altivec_vpopcntb(__a);
2482
2496
  }
2483
- static __inline__ vector signed short __ATTRS_o_ai
2497
+ static __inline__ vector unsigned short __ATTRS_o_ai
2484
2498
  vec_popcnt(vector signed short __a) {
2485
2499
  return __builtin_altivec_vpopcnth(__a);
2486
2500
  }
@@ -2488,7 +2502,7 @@ static __inline__ vector unsigned short __ATTRS_o_ai
2488
2502
  vec_popcnt(vector unsigned short __a) {
2489
2503
  return __builtin_altivec_vpopcnth(__a);
2490
2504
  }
2491
- static __inline__ vector signed int __ATTRS_o_ai
2505
+ static __inline__ vector unsigned int __ATTRS_o_ai
2492
2506
  vec_popcnt(vector signed int __a) {
2493
2507
  return __builtin_altivec_vpopcntw(__a);
2494
2508
  }
@@ -2496,7 +2510,7 @@ static __inline__ vector unsigned int __ATTRS_o_ai
2496
2510
  vec_popcnt(vector unsigned int __a) {
2497
2511
  return __builtin_altivec_vpopcntw(__a);
2498
2512
  }
2499
- static __inline__ vector signed long long __ATTRS_o_ai
2513
+ static __inline__ vector unsigned long long __ATTRS_o_ai
2500
2514
  vec_popcnt(vector signed long long __a) {
2501
2515
  return __builtin_altivec_vpopcntd(__a);
2502
2516
  }
@@ -3049,13 +3063,10 @@ static __inline__ vector unsigned char __ATTRS_o_ai
3049
3063
  vec_xl_len_r(const unsigned char *__a, size_t __b) {
3050
3064
  vector unsigned char __res =
3051
3065
  (vector unsigned char)__builtin_vsx_lxvll(__a, (__b << 56));
3052
- #ifdef __LITTLE_ENDIAN__
3053
3066
  vector unsigned char __mask =
3054
3067
  (vector unsigned char)__builtin_altivec_lvsr(16 - __b, (int *)NULL);
3055
- __res = (vector unsigned char)__builtin_altivec_vperm_4si(
3068
+ return (vector unsigned char)__builtin_altivec_vperm_4si(
3056
3069
  (vector int)__res, (vector int)__res, __mask);
3057
- #endif
3058
- return __res;
3059
3070
  }
3060
3071
 
3061
3072
  // vec_xst_len
@@ -3130,15 +3141,11 @@ static __inline__ void __ATTRS_o_ai vec_xst_len(vector double __a, double *__b,
3130
3141
  static __inline__ void __ATTRS_o_ai vec_xst_len_r(vector unsigned char __a,
3131
3142
  unsigned char *__b,
3132
3143
  size_t __c) {
3133
- #ifdef __LITTLE_ENDIAN__
3134
3144
  vector unsigned char __mask =
3135
3145
  (vector unsigned char)__builtin_altivec_lvsl(16 - __c, (int *)NULL);
3136
3146
  vector unsigned char __res =
3137
3147
  __builtin_altivec_vperm_4si((vector int)__a, (vector int)__a, __mask);
3138
3148
  return __builtin_vsx_stxvll((vector int)__res, __b, (__c << 56));
3139
- #else
3140
- return __builtin_vsx_stxvll((vector int)__a, __b, (__c << 56));
3141
- #endif
3142
3149
  }
3143
3150
  #endif
3144
3151
  #endif
@@ -7106,6 +7113,11 @@ vec_orc(vector float __a, vector bool int __b) {
7106
7113
  return (vector float)((vector unsigned int)__a | ~__b);
7107
7114
  }
7108
7115
 
7116
+ static __inline__ vector float __ATTRS_o_ai vec_orc(vector float __a,
7117
+ vector float __b) {
7118
+ return (vector float)((vector unsigned int)__a | ~(vector unsigned int)__b);
7119
+ }
7120
+
7109
7121
  static __inline__ vector signed long long __ATTRS_o_ai
7110
7122
  vec_orc(vector signed long long __a, vector signed long long __b) {
7111
7123
  return __a | ~__b;
@@ -7150,6 +7162,12 @@ static __inline__ vector double __ATTRS_o_ai
7150
7162
  vec_orc(vector bool long long __a, vector double __b) {
7151
7163
  return (vector double)(__a | ~(vector unsigned long long)__b);
7152
7164
  }
7165
+
7166
+ static __inline__ vector double __ATTRS_o_ai vec_orc(vector double __a,
7167
+ vector double __b) {
7168
+ return (vector double)((vector bool long long)__a |
7169
+ ~(vector unsigned long long)__b);
7170
+ }
7153
7171
  #endif
7154
7172
 
7155
7173
  /* vec_vor */
@@ -8399,9 +8417,20 @@ static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a) {
8399
8417
  }
8400
8418
 
8401
8419
  #ifdef __VSX__
8420
+ #ifdef __XL_COMPAT_ALTIVEC__
8421
+ static __inline__ vector double __ATTRS_o_ai vec_rint(vector double __a);
8422
+ static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
8423
+ double __fpscr = __builtin_readflm();
8424
+ __builtin_setrnd(0);
8425
+ vector double __rounded = vec_rint(__a);
8426
+ __builtin_setflm(__fpscr);
8427
+ return __rounded;
8428
+ }
8429
+ #else
8402
8430
  static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) {
8403
8431
  return __builtin_vsx_xvrdpi(__a);
8404
8432
  }
8433
+ #endif
8405
8434
 
8406
8435
  /* vec_rint */
8407
8436
 
@@ -8839,7 +8868,7 @@ static __inline__ vector long long __ATTRS_o_ai
8839
8868
  vec_sl(vector long long __a, vector unsigned long long __b) {
8840
8869
  return (vector long long)vec_sl((vector unsigned long long)__a, __b);
8841
8870
  }
8842
- #else
8871
+ #elif defined(__VSX__)
8843
8872
  static __inline__ vector unsigned char __ATTRS_o_ai
8844
8873
  vec_vspltb(vector unsigned char __a, unsigned char __b);
8845
8874
  static __inline__ vector unsigned long long __ATTRS_o_ai
@@ -8885,7 +8914,7 @@ static __inline__ vector long long __ATTRS_o_ai
8885
8914
  vec_sl(vector long long __a, vector unsigned long long __b) {
8886
8915
  return (vector long long)vec_sl((vector unsigned long long)__a, __b);
8887
8916
  }
8888
- #endif
8917
+ #endif /* __VSX__ */
8889
8918
 
8890
8919
  /* vec_vslb */
8891
8920
 
@@ -10350,7 +10379,7 @@ static __inline__ vector long long __ATTRS_o_ai
10350
10379
  vec_sr(vector long long __a, vector unsigned long long __b) {
10351
10380
  return (vector long long)vec_sr((vector unsigned long long)__a, __b);
10352
10381
  }
10353
- #else
10382
+ #elif defined(__VSX__)
10354
10383
  static __inline__ vector unsigned long long __ATTRS_o_ai
10355
10384
  vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
10356
10385
  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
@@ -10394,7 +10423,7 @@ static __inline__ vector long long __ATTRS_o_ai
10394
10423
  vec_sr(vector long long __a, vector unsigned long long __b) {
10395
10424
  return (vector long long)vec_sr((vector unsigned long long)__a, __b);
10396
10425
  }
10397
- #endif
10426
+ #endif /* __VSX__ */
10398
10427
 
10399
10428
  /* vec_vsrb */
10400
10429
 
@@ -10480,7 +10509,7 @@ static __inline__ vector unsigned long long __ATTRS_o_ai
10480
10509
  vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
10481
10510
  return (vector unsigned long long)((vector signed long long)__a >> __b);
10482
10511
  }
10483
- #else
10512
+ #elif defined(__VSX__)
10484
10513
  static __inline__ vector signed long long __ATTRS_o_ai
10485
10514
  vec_sra(vector signed long long __a, vector unsigned long long __b) {
10486
10515
  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
@@ -10492,7 +10521,7 @@ vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
10492
10521
  __b %= (vector unsigned long long)(sizeof(unsigned long long) * __CHAR_BIT__);
10493
10522
  return (vector unsigned long long)((vector signed long long)__a >> __b);
10494
10523
  }
10495
- #endif
10524
+ #endif /* __VSX__ */
10496
10525
 
10497
10526
  /* vec_vsrab */
10498
10527
 
@@ -13441,74 +13470,74 @@ vec_vxor(vector bool long long __a, vector bool long long __b) {
13441
13470
  /* vec_extract */
13442
13471
 
13443
13472
  static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a,
13444
- unsigned int __b) {
13473
+ signed int __b) {
13445
13474
  return __a[__b & 0xf];
13446
13475
  }
13447
13476
 
13448
13477
  static __inline__ unsigned char __ATTRS_o_ai
13449
- vec_extract(vector unsigned char __a, unsigned int __b) {
13478
+ vec_extract(vector unsigned char __a, signed int __b) {
13450
13479
  return __a[__b & 0xf];
13451
13480
  }
13452
13481
 
13453
13482
  static __inline__ unsigned char __ATTRS_o_ai vec_extract(vector bool char __a,
13454
- unsigned int __b) {
13483
+ signed int __b) {
13455
13484
  return __a[__b & 0xf];
13456
13485
  }
13457
13486
 
13458
13487
  static __inline__ signed short __ATTRS_o_ai vec_extract(vector signed short __a,
13459
- unsigned int __b) {
13488
+ signed int __b) {
13460
13489
  return __a[__b & 0x7];
13461
13490
  }
13462
13491
 
13463
13492
  static __inline__ unsigned short __ATTRS_o_ai
13464
- vec_extract(vector unsigned short __a, unsigned int __b) {
13493
+ vec_extract(vector unsigned short __a, signed int __b) {
13465
13494
  return __a[__b & 0x7];
13466
13495
  }
13467
13496
 
13468
13497
  static __inline__ unsigned short __ATTRS_o_ai vec_extract(vector bool short __a,
13469
- unsigned int __b) {
13498
+ signed int __b) {
13470
13499
  return __a[__b & 0x7];
13471
13500
  }
13472
13501
 
13473
13502
  static __inline__ signed int __ATTRS_o_ai vec_extract(vector signed int __a,
13474
- unsigned int __b) {
13503
+ signed int __b) {
13475
13504
  return __a[__b & 0x3];
13476
13505
  }
13477
13506
 
13478
13507
  static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector unsigned int __a,
13479
- unsigned int __b) {
13508
+ signed int __b) {
13480
13509
  return __a[__b & 0x3];
13481
13510
  }
13482
13511
 
13483
13512
  static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector bool int __a,
13484
- unsigned int __b) {
13513
+ signed int __b) {
13485
13514
  return __a[__b & 0x3];
13486
13515
  }
13487
13516
 
13488
13517
  #ifdef __VSX__
13489
13518
  static __inline__ signed long long __ATTRS_o_ai
13490
- vec_extract(vector signed long long __a, unsigned int __b) {
13519
+ vec_extract(vector signed long long __a, signed int __b) {
13491
13520
  return __a[__b & 0x1];
13492
13521
  }
13493
13522
 
13494
13523
  static __inline__ unsigned long long __ATTRS_o_ai
13495
- vec_extract(vector unsigned long long __a, unsigned int __b) {
13524
+ vec_extract(vector unsigned long long __a, signed int __b) {
13496
13525
  return __a[__b & 0x1];
13497
13526
  }
13498
13527
 
13499
13528
  static __inline__ unsigned long long __ATTRS_o_ai
13500
- vec_extract(vector bool long long __a, unsigned int __b) {
13529
+ vec_extract(vector bool long long __a, signed int __b) {
13501
13530
  return __a[__b & 0x1];
13502
13531
  }
13503
13532
 
13504
13533
  static __inline__ double __ATTRS_o_ai vec_extract(vector double __a,
13505
- unsigned int __b) {
13534
+ signed int __b) {
13506
13535
  return __a[__b & 0x1];
13507
13536
  }
13508
13537
  #endif
13509
13538
 
13510
13539
  static __inline__ float __ATTRS_o_ai vec_extract(vector float __a,
13511
- unsigned int __b) {
13540
+ signed int __b) {
13512
13541
  return __a[__b & 0x3];
13513
13542
  }
13514
13543
 
@@ -13568,82 +13597,82 @@ vec_extract_fp32_from_shortl(vector unsigned short __a) {
13568
13597
 
13569
13598
  static __inline__ vector signed char __ATTRS_o_ai
13570
13599
  vec_insert(signed char __a, vector signed char __b, int __c) {
13571
- __b[__c] = __a;
13600
+ __b[__c & 0xF] = __a;
13572
13601
  return __b;
13573
13602
  }
13574
13603
 
13575
13604
  static __inline__ vector unsigned char __ATTRS_o_ai
13576
13605
  vec_insert(unsigned char __a, vector unsigned char __b, int __c) {
13577
- __b[__c] = __a;
13606
+ __b[__c & 0xF] = __a;
13578
13607
  return __b;
13579
13608
  }
13580
13609
 
13581
13610
  static __inline__ vector bool char __ATTRS_o_ai vec_insert(unsigned char __a,
13582
13611
  vector bool char __b,
13583
13612
  int __c) {
13584
- __b[__c] = __a;
13613
+ __b[__c & 0xF] = __a;
13585
13614
  return __b;
13586
13615
  }
13587
13616
 
13588
13617
  static __inline__ vector signed short __ATTRS_o_ai
13589
13618
  vec_insert(signed short __a, vector signed short __b, int __c) {
13590
- __b[__c] = __a;
13619
+ __b[__c & 0x7] = __a;
13591
13620
  return __b;
13592
13621
  }
13593
13622
 
13594
13623
  static __inline__ vector unsigned short __ATTRS_o_ai
13595
13624
  vec_insert(unsigned short __a, vector unsigned short __b, int __c) {
13596
- __b[__c] = __a;
13625
+ __b[__c & 0x7] = __a;
13597
13626
  return __b;
13598
13627
  }
13599
13628
 
13600
13629
  static __inline__ vector bool short __ATTRS_o_ai
13601
13630
  vec_insert(unsigned short __a, vector bool short __b, int __c) {
13602
- __b[__c] = __a;
13631
+ __b[__c & 0x7] = __a;
13603
13632
  return __b;
13604
13633
  }
13605
13634
 
13606
13635
  static __inline__ vector signed int __ATTRS_o_ai
13607
13636
  vec_insert(signed int __a, vector signed int __b, int __c) {
13608
- __b[__c] = __a;
13637
+ __b[__c & 0x3] = __a;
13609
13638
  return __b;
13610
13639
  }
13611
13640
 
13612
13641
  static __inline__ vector unsigned int __ATTRS_o_ai
13613
13642
  vec_insert(unsigned int __a, vector unsigned int __b, int __c) {
13614
- __b[__c] = __a;
13643
+ __b[__c & 0x3] = __a;
13615
13644
  return __b;
13616
13645
  }
13617
13646
 
13618
13647
  static __inline__ vector bool int __ATTRS_o_ai vec_insert(unsigned int __a,
13619
13648
  vector bool int __b,
13620
13649
  int __c) {
13621
- __b[__c] = __a;
13650
+ __b[__c & 0x3] = __a;
13622
13651
  return __b;
13623
13652
  }
13624
13653
 
13625
13654
  #ifdef __VSX__
13626
13655
  static __inline__ vector signed long long __ATTRS_o_ai
13627
13656
  vec_insert(signed long long __a, vector signed long long __b, int __c) {
13628
- __b[__c] = __a;
13657
+ __b[__c & 0x1] = __a;
13629
13658
  return __b;
13630
13659
  }
13631
13660
 
13632
13661
  static __inline__ vector unsigned long long __ATTRS_o_ai
13633
13662
  vec_insert(unsigned long long __a, vector unsigned long long __b, int __c) {
13634
- __b[__c] = __a;
13663
+ __b[__c & 0x1] = __a;
13635
13664
  return __b;
13636
13665
  }
13637
13666
 
13638
13667
  static __inline__ vector bool long long __ATTRS_o_ai
13639
13668
  vec_insert(unsigned long long __a, vector bool long long __b, int __c) {
13640
- __b[__c] = __a;
13669
+ __b[__c & 0x1] = __a;
13641
13670
  return __b;
13642
13671
  }
13643
13672
  static __inline__ vector double __ATTRS_o_ai vec_insert(double __a,
13644
13673
  vector double __b,
13645
13674
  int __c) {
13646
- __b[__c] = __a;
13675
+ __b[__c & 0x1] = __a;
13647
13676
  return __b;
13648
13677
  }
13649
13678
  #endif
@@ -13651,7 +13680,7 @@ static __inline__ vector double __ATTRS_o_ai vec_insert(double __a,
13651
13680
  static __inline__ vector float __ATTRS_o_ai vec_insert(float __a,
13652
13681
  vector float __b,
13653
13682
  int __c) {
13654
- __b[__c] = __a;
13683
+ __b[__c & 0x3] = __a;
13655
13684
  return __b;
13656
13685
  }
13657
13686
 
@@ -14812,42 +14841,43 @@ static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a,
14812
14841
  #ifdef __VSX__
14813
14842
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed long long __a,
14814
14843
  vector signed long long __b) {
14844
+ #ifdef __POWER8_VECTOR__
14815
14845
  return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, __b);
14846
+ #else
14847
+ // No vcmpequd on Power7 so we xor the two vectors and compare against zero as
14848
+ // 32-bit elements.
14849
+ return vec_all_eq((vector signed int)vec_xor(__a, __b), (vector signed int)0);
14850
+ #endif
14816
14851
  }
14817
14852
 
14818
14853
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector long long __a,
14819
14854
  vector bool long long __b) {
14820
- return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, (vector long long)__b);
14855
+ return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
14821
14856
  }
14822
14857
 
14823
14858
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
14824
14859
  vector unsigned long long __b) {
14825
- return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
14826
- (vector long long)__b);
14860
+ return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
14827
14861
  }
14828
14862
 
14829
14863
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
14830
14864
  vector bool long long __b) {
14831
- return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
14832
- (vector long long)__b);
14865
+ return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
14833
14866
  }
14834
14867
 
14835
14868
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
14836
14869
  vector long long __b) {
14837
- return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
14838
- (vector long long)__b);
14870
+ return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
14839
14871
  }
14840
14872
 
14841
14873
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
14842
14874
  vector unsigned long long __b) {
14843
- return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
14844
- (vector long long)__b);
14875
+ return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
14845
14876
  }
14846
14877
 
14847
14878
  static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
14848
14879
  vector bool long long __b) {
14849
- return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
14850
- (vector long long)__b);
14880
+ return vec_all_eq((vector signed long long)__a, (vector signed long long)__b);
14851
14881
  }
14852
14882
  #endif
14853
14883
 
@@ -14877,6 +14907,11 @@ static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned __int128 __a,
14877
14907
  vector unsigned __int128 __b) {
14878
14908
  return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
14879
14909
  }
14910
+
14911
+ static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool __int128 __a,
14912
+ vector bool __int128 __b) {
14913
+ return __builtin_altivec_vcmpequq_p(__CR6_LT, __a, __b);
14914
+ }
14880
14915
  #endif
14881
14916
 
14882
14917
  /* vec_all_ge */
@@ -15822,6 +15857,11 @@ static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned __int128 __a,
15822
15857
  vector unsigned __int128 __b) {
15823
15858
  return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
15824
15859
  }
15860
+
15861
+ static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool __int128 __a,
15862
+ vector bool __int128 __b) {
15863
+ return __builtin_altivec_vcmpequq_p(__CR6_EQ, __a, __b);
15864
+ }
15825
15865
  #endif
15826
15866
 
15827
15867
  /* vec_all_nge */
@@ -16111,6 +16151,11 @@ static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned __int128 __a,
16111
16151
  vector unsigned __int128 __b) {
16112
16152
  return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
16113
16153
  }
16154
+
16155
+ static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool __int128 __a,
16156
+ vector bool __int128 __b) {
16157
+ return __builtin_altivec_vcmpequq_p(__CR6_EQ_REV, __a, __b);
16158
+ }
16114
16159
  #endif
16115
16160
 
16116
16161
  /* vec_any_ge */
@@ -17020,43 +17065,43 @@ static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a,
17020
17065
  #ifdef __VSX__
17021
17066
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
17022
17067
  vector signed long long __b) {
17068
+ #ifdef __POWER8_VECTOR__
17023
17069
  return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, __b);
17070
+ #else
17071
+ // Take advantage of the optimized sequence for vec_all_eq when vcmpequd is
17072
+ // not available.
17073
+ return !vec_all_eq(__a, __b);
17074
+ #endif
17024
17075
  }
17025
17076
 
17026
17077
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
17027
17078
  vector unsigned long long __b) {
17028
- return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, (vector long long)__a,
17029
- (vector long long)__b);
17079
+ return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
17030
17080
  }
17031
17081
 
17032
17082
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
17033
17083
  vector bool long long __b) {
17034
- return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a,
17035
- (vector signed long long)__b);
17084
+ return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
17036
17085
  }
17037
17086
 
17038
17087
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
17039
17088
  vector bool long long __b) {
17040
- return __builtin_altivec_vcmpequd_p(
17041
- __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
17089
+ return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
17042
17090
  }
17043
17091
 
17044
17092
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
17045
17093
  vector signed long long __b) {
17046
- return __builtin_altivec_vcmpequd_p(
17047
- __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
17094
+ return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
17048
17095
  }
17049
17096
 
17050
17097
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
17051
17098
  vector unsigned long long __b) {
17052
- return __builtin_altivec_vcmpequd_p(
17053
- __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
17099
+ return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
17054
17100
  }
17055
17101
 
17056
17102
  static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
17057
17103
  vector bool long long __b) {
17058
- return __builtin_altivec_vcmpequd_p(
17059
- __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
17104
+ return vec_any_ne((vector signed long long)__a, (vector signed long long)__b);
17060
17105
  }
17061
17106
  #endif
17062
17107
 
@@ -17086,6 +17131,11 @@ static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned __int128 __a,
17086
17131
  vector unsigned __int128 __b) {
17087
17132
  return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
17088
17133
  }
17134
+
17135
+ static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool __int128 __a,
17136
+ vector bool __int128 __b) {
17137
+ return __builtin_altivec_vcmpequq_p(__CR6_LT_REV, __a, __b);
17138
+ }
17089
17139
  #endif
17090
17140
 
17091
17141
  /* vec_any_nge */
@@ -17203,6 +17253,7 @@ provided.
17203
17253
  #define vec_ncipher_be __builtin_altivec_crypto_vncipher
17204
17254
  #define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
17205
17255
 
17256
+ #ifdef __VSX__
17206
17257
  static __inline__ vector unsigned long long __attribute__((__always_inline__))
17207
17258
  __builtin_crypto_vsbox(vector unsigned long long __a) {
17208
17259
  return __builtin_altivec_crypto_vsbox(__a);
@@ -17231,6 +17282,7 @@ __builtin_crypto_vncipherlast(vector unsigned long long __a,
17231
17282
  vector unsigned long long __b) {
17232
17283
  return __builtin_altivec_crypto_vncipherlast(__a, __b);
17233
17284
  }
17285
+ #endif /* __VSX__ */
17234
17286
 
17235
17287
  #define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
17236
17288
  #define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
@@ -17346,12 +17398,22 @@ vec_vbpermq(vector unsigned char __a, vector unsigned char __b) {
17346
17398
  }
17347
17399
 
17348
17400
  #if defined(__powerpc64__) && defined(__SIZEOF_INT128__)
17349
- static __inline__ vector unsigned long long __attribute__((__always_inline__))
17401
+ static __inline__ vector unsigned long long __ATTRS_o_ai
17350
17402
  vec_bperm(vector unsigned __int128 __a, vector unsigned char __b) {
17351
17403
  return __builtin_altivec_vbpermq((vector unsigned char)__a,
17352
17404
  (vector unsigned char)__b);
17353
17405
  }
17354
17406
  #endif
17407
+ static __inline__ vector unsigned char __ATTRS_o_ai
17408
+ vec_bperm(vector unsigned char __a, vector unsigned char __b) {
17409
+ return __builtin_altivec_vbpermq(__a, __b);
17410
+ }
17411
+ #endif // __POWER8_VECTOR__
17412
+ #ifdef __POWER9_VECTOR__
17413
+ static __inline__ vector unsigned long long __ATTRS_o_ai
17414
+ vec_bperm(vector unsigned long long __a, vector unsigned char __b) {
17415
+ return __builtin_altivec_vbpermd(__a, __b);
17416
+ }
17355
17417
  #endif
17356
17418
 
17357
17419
 
@@ -18198,13 +18260,13 @@ vec_expandm(vector unsigned __int128 __a) {
18198
18260
 
18199
18261
  #define vec_cntm(__a, __mp) \
18200
18262
  _Generic((__a), vector unsigned char \
18201
- : __builtin_altivec_vcntmbb((__a), (unsigned int)(__mp)), \
18263
+ : __builtin_altivec_vcntmbb((__a), (unsigned char)(__mp)), \
18202
18264
  vector unsigned short \
18203
- : __builtin_altivec_vcntmbh((__a), (unsigned int)(__mp)), \
18265
+ : __builtin_altivec_vcntmbh((__a), (unsigned char)(__mp)), \
18204
18266
  vector unsigned int \
18205
- : __builtin_altivec_vcntmbw((__a), (unsigned int)(__mp)), \
18267
+ : __builtin_altivec_vcntmbw((__a), (unsigned char)(__mp)), \
18206
18268
  vector unsigned long long \
18207
- : __builtin_altivec_vcntmbd((__a), (unsigned int)(__mp)))
18269
+ : __builtin_altivec_vcntmbd((__a), (unsigned char)(__mp)))
18208
18270
 
18209
18271
  /* vec_gen[b|h|w|d|q]m */
18210
18272
 
@@ -18319,10 +18381,10 @@ vec_cfuge(vector unsigned long long __a, vector unsigned long long __b) {
18319
18381
  : __builtin_vsx_xxgenpcvdm((__a), (int)(__imm)))
18320
18382
  #endif /* __VSX__ */
18321
18383
 
18322
- /* vec_clrl */
18384
+ /* vec_clr_first */
18323
18385
 
18324
18386
  static __inline__ vector signed char __ATTRS_o_ai
18325
- vec_clrl(vector signed char __a, unsigned int __n) {
18387
+ vec_clr_first(vector signed char __a, unsigned int __n) {
18326
18388
  #ifdef __LITTLE_ENDIAN__
18327
18389
  return __builtin_altivec_vclrrb(__a, __n);
18328
18390
  #else
@@ -18331,7 +18393,7 @@ vec_clrl(vector signed char __a, unsigned int __n) {
18331
18393
  }
18332
18394
 
18333
18395
  static __inline__ vector unsigned char __ATTRS_o_ai
18334
- vec_clrl(vector unsigned char __a, unsigned int __n) {
18396
+ vec_clr_first(vector unsigned char __a, unsigned int __n) {
18335
18397
  #ifdef __LITTLE_ENDIAN__
18336
18398
  return __builtin_altivec_vclrrb((vector signed char)__a, __n);
18337
18399
  #else
@@ -18339,10 +18401,10 @@ vec_clrl(vector unsigned char __a, unsigned int __n) {
18339
18401
  #endif
18340
18402
  }
18341
18403
 
18342
- /* vec_clrr */
18404
+ /* vec_clr_last */
18343
18405
 
18344
18406
  static __inline__ vector signed char __ATTRS_o_ai
18345
- vec_clrr(vector signed char __a, unsigned int __n) {
18407
+ vec_clr_last(vector signed char __a, unsigned int __n) {
18346
18408
  #ifdef __LITTLE_ENDIAN__
18347
18409
  return __builtin_altivec_vclrlb(__a, __n);
18348
18410
  #else
@@ -18351,7 +18413,7 @@ vec_clrr(vector signed char __a, unsigned int __n) {
18351
18413
  }
18352
18414
 
18353
18415
  static __inline__ vector unsigned char __ATTRS_o_ai
18354
- vec_clrr(vector unsigned char __a, unsigned int __n) {
18416
+ vec_clr_last(vector unsigned char __a, unsigned int __n) {
18355
18417
  #ifdef __LITTLE_ENDIAN__
18356
18418
  return __builtin_altivec_vclrlb((vector signed char)__a, __n);
18357
18419
  #else
@@ -18733,36 +18795,39 @@ static __inline__ vector double __ATTRS_o_ai vec_splatid(const float __a) {
18733
18795
 
18734
18796
  static __inline__ vector signed int __ATTRS_o_ai vec_splati_ins(
18735
18797
  vector signed int __a, const unsigned int __b, const signed int __c) {
18798
+ const unsigned int __d = __b & 0x01;
18736
18799
  #ifdef __LITTLE_ENDIAN__
18737
- __a[1 - __b] = __c;
18738
- __a[3 - __b] = __c;
18800
+ __a[1 - __d] = __c;
18801
+ __a[3 - __d] = __c;
18739
18802
  #else
18740
- __a[__b] = __c;
18741
- __a[2 + __b] = __c;
18803
+ __a[__d] = __c;
18804
+ __a[2 + __d] = __c;
18742
18805
  #endif
18743
18806
  return __a;
18744
18807
  }
18745
18808
 
18746
18809
  static __inline__ vector unsigned int __ATTRS_o_ai vec_splati_ins(
18747
18810
  vector unsigned int __a, const unsigned int __b, const unsigned int __c) {
18811
+ const unsigned int __d = __b & 0x01;
18748
18812
  #ifdef __LITTLE_ENDIAN__
18749
- __a[1 - __b] = __c;
18750
- __a[3 - __b] = __c;
18813
+ __a[1 - __d] = __c;
18814
+ __a[3 - __d] = __c;
18751
18815
  #else
18752
- __a[__b] = __c;
18753
- __a[2 + __b] = __c;
18816
+ __a[__d] = __c;
18817
+ __a[2 + __d] = __c;
18754
18818
  #endif
18755
18819
  return __a;
18756
18820
  }
18757
18821
 
18758
18822
  static __inline__ vector float __ATTRS_o_ai
18759
18823
  vec_splati_ins(vector float __a, const unsigned int __b, const float __c) {
18824
+ const unsigned int __d = __b & 0x01;
18760
18825
  #ifdef __LITTLE_ENDIAN__
18761
- __a[1 - __b] = __c;
18762
- __a[3 - __b] = __c;
18826
+ __a[1 - __d] = __c;
18827
+ __a[3 - __d] = __c;
18763
18828
  #else
18764
- __a[__b] = __c;
18765
- __a[2 + __b] = __c;
18829
+ __a[__d] = __c;
18830
+ __a[2 + __d] = __c;
18766
18831
  #endif
18767
18832
  return __a;
18768
18833
  }
@@ -18976,6 +19041,51 @@ vec_sra(vector signed __int128 __a, vector unsigned __int128 __b) {
18976
19041
  #endif /* __SIZEOF_INT128__ */
18977
19042
  #endif /* __POWER10_VECTOR__ */
18978
19043
 
19044
+ #ifdef __POWER8_VECTOR__
19045
+ #define __bcdadd(__a, __b, __ps) __builtin_ppc_bcdadd((__a), (__b), (__ps))
19046
+ #define __bcdsub(__a, __b, __ps) __builtin_ppc_bcdsub((__a), (__b), (__ps))
19047
+
19048
+ static __inline__ long __bcdadd_ofl(vector unsigned char __a,
19049
+ vector unsigned char __b) {
19050
+ return __builtin_ppc_bcdadd_p(__CR6_SO, __a, __b);
19051
+ }
19052
+
19053
+ static __inline__ long __bcdsub_ofl(vector unsigned char __a,
19054
+ vector unsigned char __b) {
19055
+ return __builtin_ppc_bcdsub_p(__CR6_SO, __a, __b);
19056
+ }
19057
+
19058
+ static __inline__ long __bcd_invalid(vector unsigned char __a) {
19059
+ return __builtin_ppc_bcdsub_p(__CR6_SO, __a, __a);
19060
+ }
19061
+
19062
+ static __inline__ long __bcdcmpeq(vector unsigned char __a,
19063
+ vector unsigned char __b) {
19064
+ return __builtin_ppc_bcdsub_p(__CR6_EQ, __a, __b);
19065
+ }
19066
+
19067
+ static __inline__ long __bcdcmplt(vector unsigned char __a,
19068
+ vector unsigned char __b) {
19069
+ return __builtin_ppc_bcdsub_p(__CR6_LT, __a, __b);
19070
+ }
19071
+
19072
+ static __inline__ long __bcdcmpgt(vector unsigned char __a,
19073
+ vector unsigned char __b) {
19074
+ return __builtin_ppc_bcdsub_p(__CR6_GT, __a, __b);
19075
+ }
19076
+
19077
+ static __inline__ long __bcdcmple(vector unsigned char __a,
19078
+ vector unsigned char __b) {
19079
+ return __builtin_ppc_bcdsub_p(__CR6_GT_REV, __a, __b);
19080
+ }
19081
+
19082
+ static __inline__ long __bcdcmpge(vector unsigned char __a,
19083
+ vector unsigned char __b) {
19084
+ return __builtin_ppc_bcdsub_p(__CR6_LT_REV, __a, __b);
19085
+ }
19086
+
19087
+ #endif // __POWER8_VECTOR__
19088
+
18979
19089
  #undef __ATTRS_o_ai
18980
19090
 
18981
19091
  #endif /* __ALTIVEC_H */