xcodebuild-helper 1.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 (202) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +20 -0
  3. data/.gitignore +1 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +110 -0
  8. data/Guardfile +18 -0
  9. data/README.md +7 -0
  10. data/Rakefile +7 -0
  11. data/TODO.md +3 -0
  12. data/bin/oclint +5 -0
  13. data/bin/oclint-0.8 +5 -0
  14. data/bin/oclint-json-compilation-database +5 -0
  15. data/bin/oclint-xcodebuild +5 -0
  16. data/externals/oclint/LICENSE +69 -0
  17. data/externals/oclint/bin/oclint +0 -0
  18. data/externals/oclint/bin/oclint-0.10.2 +0 -0
  19. data/externals/oclint/bin/oclint-json-compilation-database +88 -0
  20. data/externals/oclint/bin/oclint-xcodebuild +218 -0
  21. data/externals/oclint/lib/clang/3.7.0/asan_blacklist.txt +13 -0
  22. data/externals/oclint/lib/clang/3.7.0/include/Intrin.h +958 -0
  23. data/externals/oclint/lib/clang/3.7.0/include/__stddef_max_align_t.h +43 -0
  24. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_aes.h +72 -0
  25. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_pclmul.h +34 -0
  26. data/externals/oclint/lib/clang/3.7.0/include/adxintrin.h +88 -0
  27. data/externals/oclint/lib/clang/3.7.0/include/altivec.h +13528 -0
  28. data/externals/oclint/lib/clang/3.7.0/include/ammintrin.h +215 -0
  29. data/externals/oclint/lib/clang/3.7.0/include/arm_acle.h +304 -0
  30. data/externals/oclint/lib/clang/3.7.0/include/arm_neon.h +68419 -0
  31. data/externals/oclint/lib/clang/3.7.0/include/avx2intrin.h +1256 -0
  32. data/externals/oclint/lib/clang/3.7.0/include/avx512bwintrin.h +1250 -0
  33. data/externals/oclint/lib/clang/3.7.0/include/avx512cdintrin.h +131 -0
  34. data/externals/oclint/lib/clang/3.7.0/include/avx512dqintrin.h +242 -0
  35. data/externals/oclint/lib/clang/3.7.0/include/avx512erintrin.h +285 -0
  36. data/externals/oclint/lib/clang/3.7.0/include/avx512fintrin.h +2457 -0
  37. data/externals/oclint/lib/clang/3.7.0/include/avx512vlbwintrin.h +1907 -0
  38. data/externals/oclint/lib/clang/3.7.0/include/avx512vldqintrin.h +353 -0
  39. data/externals/oclint/lib/clang/3.7.0/include/avx512vlintrin.h +1982 -0
  40. data/externals/oclint/lib/clang/3.7.0/include/avxintrin.h +1308 -0
  41. data/externals/oclint/lib/clang/3.7.0/include/bmi2intrin.h +99 -0
  42. data/externals/oclint/lib/clang/3.7.0/include/bmiintrin.h +153 -0
  43. data/externals/oclint/lib/clang/3.7.0/include/cpuid.h +209 -0
  44. data/externals/oclint/lib/clang/3.7.0/include/cuda_builtin_vars.h +110 -0
  45. data/externals/oclint/lib/clang/3.7.0/include/emmintrin.h +1480 -0
  46. data/externals/oclint/lib/clang/3.7.0/include/f16cintrin.h +63 -0
  47. data/externals/oclint/lib/clang/3.7.0/include/float.h +124 -0
  48. data/externals/oclint/lib/clang/3.7.0/include/fma4intrin.h +236 -0
  49. data/externals/oclint/lib/clang/3.7.0/include/fmaintrin.h +234 -0
  50. data/externals/oclint/lib/clang/3.7.0/include/fxsrintrin.h +55 -0
  51. data/externals/oclint/lib/clang/3.7.0/include/htmintrin.h +226 -0
  52. data/externals/oclint/lib/clang/3.7.0/include/htmxlintrin.h +363 -0
  53. data/externals/oclint/lib/clang/3.7.0/include/ia32intrin.h +101 -0
  54. data/externals/oclint/lib/clang/3.7.0/include/immintrin.h +203 -0
  55. data/externals/oclint/lib/clang/3.7.0/include/inttypes.h +102 -0
  56. data/externals/oclint/lib/clang/3.7.0/include/iso646.h +43 -0
  57. data/externals/oclint/lib/clang/3.7.0/include/limits.h +118 -0
  58. data/externals/oclint/lib/clang/3.7.0/include/lzcntintrin.h +72 -0
  59. data/externals/oclint/lib/clang/3.7.0/include/mm3dnow.h +167 -0
  60. data/externals/oclint/lib/clang/3.7.0/include/mm_malloc.h +75 -0
  61. data/externals/oclint/lib/clang/3.7.0/include/mmintrin.h +507 -0
  62. data/externals/oclint/lib/clang/3.7.0/include/module.modulemap +196 -0
  63. data/externals/oclint/lib/clang/3.7.0/include/nmmintrin.h +35 -0
  64. data/externals/oclint/lib/clang/3.7.0/include/pmmintrin.h +122 -0
  65. data/externals/oclint/lib/clang/3.7.0/include/popcntintrin.h +50 -0
  66. data/externals/oclint/lib/clang/3.7.0/include/prfchwintrin.h +39 -0
  67. data/externals/oclint/lib/clang/3.7.0/include/rdseedintrin.h +59 -0
  68. data/externals/oclint/lib/clang/3.7.0/include/rtmintrin.h +59 -0
  69. data/externals/oclint/lib/clang/3.7.0/include/s390intrin.h +39 -0
  70. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/allocator_interface.h +66 -0
  71. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/asan_interface.h +155 -0
  72. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h +118 -0
  73. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/coverage_interface.h +63 -0
  74. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h +114 -0
  75. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h +3070 -0
  76. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/lsan_interface.h +84 -0
  77. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/msan_interface.h +107 -0
  78. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h +222 -0
  79. data/externals/oclint/lib/clang/3.7.0/include/shaintrin.h +79 -0
  80. data/externals/oclint/lib/clang/3.7.0/include/smmintrin.h +487 -0
  81. data/externals/oclint/lib/clang/3.7.0/include/stdalign.h +35 -0
  82. data/externals/oclint/lib/clang/3.7.0/include/stdarg.h +52 -0
  83. data/externals/oclint/lib/clang/3.7.0/include/stdatomic.h +190 -0
  84. data/externals/oclint/lib/clang/3.7.0/include/stdbool.h +44 -0
  85. data/externals/oclint/lib/clang/3.7.0/include/stddef.h +137 -0
  86. data/externals/oclint/lib/clang/3.7.0/include/stdint.h +707 -0
  87. data/externals/oclint/lib/clang/3.7.0/include/stdnoreturn.h +30 -0
  88. data/externals/oclint/lib/clang/3.7.0/include/tbmintrin.h +154 -0
  89. data/externals/oclint/lib/clang/3.7.0/include/tgmath.h +1374 -0
  90. data/externals/oclint/lib/clang/3.7.0/include/tmmintrin.h +230 -0
  91. data/externals/oclint/lib/clang/3.7.0/include/unwind.h +282 -0
  92. data/externals/oclint/lib/clang/3.7.0/include/vadefs.h +65 -0
  93. data/externals/oclint/lib/clang/3.7.0/include/varargs.h +26 -0
  94. data/externals/oclint/lib/clang/3.7.0/include/vecintrin.h +8946 -0
  95. data/externals/oclint/lib/clang/3.7.0/include/wmmintrin.h +42 -0
  96. data/externals/oclint/lib/clang/3.7.0/include/x86intrin.h +81 -0
  97. data/externals/oclint/lib/clang/3.7.0/include/xmmintrin.h +1008 -0
  98. data/externals/oclint/lib/clang/3.7.0/include/xopintrin.h +809 -0
  99. data/externals/oclint/lib/clang/3.7.0/include/xtestintrin.h +41 -0
  100. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  101. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  102. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-i386.a +0 -0
  103. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-x86_64.a +0 -0
  104. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.profile_osx.a +0 -0
  105. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.safestack_osx.a +0 -0
  106. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  107. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  108. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  109. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  110. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  111. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  112. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  113. data/externals/oclint/lib/oclint/reporters/libXcodeReporter.dylib +0 -0
  114. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libAvoidDefaultArgumentsOnVirtualMethodsRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libAvoidPrivateStaticMembersRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libBaseClassDestructorShouldBeVirtualOrProtectedRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libCoveredSwitchStatementsDontNeedDefaultRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libDestructorOfVirtualClassRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  134. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  135. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  136. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  137. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  138. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  139. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  140. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  141. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  142. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  143. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  144. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  145. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  146. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  147. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  148. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  149. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  150. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  151. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  152. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  153. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  154. data/externals/oclint/lib/oclint/rules/libObjCAssignIvarOutsideAccessorsRule.dylib +0 -0
  155. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  156. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  157. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  158. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  159. data/externals/oclint/lib/oclint/rules/libObjCVerifyIsEqualHashRule.dylib +0 -0
  160. data/externals/oclint/lib/oclint/rules/libObjCVerifyMustCallSuperRule.dylib +0 -0
  161. data/externals/oclint/lib/oclint/rules/libObjCVerifyProhibitedCallRule.dylib +0 -0
  162. data/externals/oclint/lib/oclint/rules/libObjCVerifyProtectedMethodRule.dylib +0 -0
  163. data/externals/oclint/lib/oclint/rules/libObjCVerifySubclassMustImplementRule.dylib +0 -0
  164. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  165. data/externals/oclint/lib/oclint/rules/libPreferEarlyExitRule.dylib +0 -0
  166. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  167. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  168. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  169. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  170. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  171. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  172. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  173. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  174. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  175. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  176. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  177. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  178. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  179. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  180. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  181. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  182. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  183. data/lib/coverage_plan.rb +19 -0
  184. data/lib/device.rb +27 -0
  185. data/lib/execute.rb +7 -0
  186. data/lib/lint_plan.rb +41 -0
  187. data/lib/rules.rb +23 -0
  188. data/lib/test_plan.rb +11 -0
  189. data/lib/version.rb +3 -0
  190. data/lib/xcode.rb +128 -0
  191. data/lib/xcodebuild-helper.rb +110 -0
  192. data/spec/coverage_plan_spec.rb +18 -0
  193. data/spec/device_spec.rb +24 -0
  194. data/spec/lint_plan_spec.rb +35 -0
  195. data/spec/rule_spec.rb +37 -0
  196. data/spec/spec_helper.rb +17 -0
  197. data/spec/test_plan_spec.rb +11 -0
  198. data/spec/xcode_dsl_actions_spec.rb +136 -0
  199. data/spec/xcode_dsl_spec.rb +176 -0
  200. data/spec/xcode_spec.rb +79 -0
  201. data/xcodebuild-helper.gemspec +26 -0
  202. metadata +327 -0
@@ -0,0 +1,809 @@
1
+ /*===---- xopintrin.h - XOP intrinsics -------------------------------------===
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to deal
5
+ * in the Software without restriction, including without limitation the rights
6
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ * copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __X86INTRIN_H
25
+ #error "Never use <xopintrin.h> directly; include <x86intrin.h> instead."
26
+ #endif
27
+
28
+ #ifndef __XOPINTRIN_H
29
+ #define __XOPINTRIN_H
30
+
31
+ #ifndef __XOP__
32
+ # error "XOP instruction set is not enabled"
33
+ #else
34
+
35
+ #include <fma4intrin.h>
36
+
37
+ /* Define the default attributes for the functions in this file. */
38
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
39
+
40
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
41
+ _mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C)
42
+ {
43
+ return (__m128i)__builtin_ia32_vpmacssww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
44
+ }
45
+
46
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
47
+ _mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C)
48
+ {
49
+ return (__m128i)__builtin_ia32_vpmacsww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
50
+ }
51
+
52
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
53
+ _mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C)
54
+ {
55
+ return (__m128i)__builtin_ia32_vpmacsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
56
+ }
57
+
58
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
59
+ _mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C)
60
+ {
61
+ return (__m128i)__builtin_ia32_vpmacswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
62
+ }
63
+
64
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
65
+ _mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C)
66
+ {
67
+ return (__m128i)__builtin_ia32_vpmacssdd((__v4si)__A, (__v4si)__B, (__v4si)__C);
68
+ }
69
+
70
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
71
+ _mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C)
72
+ {
73
+ return (__m128i)__builtin_ia32_vpmacsdd((__v4si)__A, (__v4si)__B, (__v4si)__C);
74
+ }
75
+
76
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
77
+ _mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C)
78
+ {
79
+ return (__m128i)__builtin_ia32_vpmacssdql((__v4si)__A, (__v4si)__B, (__v2di)__C);
80
+ }
81
+
82
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
83
+ _mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C)
84
+ {
85
+ return (__m128i)__builtin_ia32_vpmacsdql((__v4si)__A, (__v4si)__B, (__v2di)__C);
86
+ }
87
+
88
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
89
+ _mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C)
90
+ {
91
+ return (__m128i)__builtin_ia32_vpmacssdqh((__v4si)__A, (__v4si)__B, (__v2di)__C);
92
+ }
93
+
94
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
95
+ _mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C)
96
+ {
97
+ return (__m128i)__builtin_ia32_vpmacsdqh((__v4si)__A, (__v4si)__B, (__v2di)__C);
98
+ }
99
+
100
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
101
+ _mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C)
102
+ {
103
+ return (__m128i)__builtin_ia32_vpmadcsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
104
+ }
105
+
106
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
107
+ _mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C)
108
+ {
109
+ return (__m128i)__builtin_ia32_vpmadcswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
110
+ }
111
+
112
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
113
+ _mm_haddw_epi8(__m128i __A)
114
+ {
115
+ return (__m128i)__builtin_ia32_vphaddbw((__v16qi)__A);
116
+ }
117
+
118
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
119
+ _mm_haddd_epi8(__m128i __A)
120
+ {
121
+ return (__m128i)__builtin_ia32_vphaddbd((__v16qi)__A);
122
+ }
123
+
124
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
125
+ _mm_haddq_epi8(__m128i __A)
126
+ {
127
+ return (__m128i)__builtin_ia32_vphaddbq((__v16qi)__A);
128
+ }
129
+
130
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
131
+ _mm_haddd_epi16(__m128i __A)
132
+ {
133
+ return (__m128i)__builtin_ia32_vphaddwd((__v8hi)__A);
134
+ }
135
+
136
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
137
+ _mm_haddq_epi16(__m128i __A)
138
+ {
139
+ return (__m128i)__builtin_ia32_vphaddwq((__v8hi)__A);
140
+ }
141
+
142
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
143
+ _mm_haddq_epi32(__m128i __A)
144
+ {
145
+ return (__m128i)__builtin_ia32_vphadddq((__v4si)__A);
146
+ }
147
+
148
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
149
+ _mm_haddw_epu8(__m128i __A)
150
+ {
151
+ return (__m128i)__builtin_ia32_vphaddubw((__v16qi)__A);
152
+ }
153
+
154
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
155
+ _mm_haddd_epu8(__m128i __A)
156
+ {
157
+ return (__m128i)__builtin_ia32_vphaddubd((__v16qi)__A);
158
+ }
159
+
160
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
161
+ _mm_haddq_epu8(__m128i __A)
162
+ {
163
+ return (__m128i)__builtin_ia32_vphaddubq((__v16qi)__A);
164
+ }
165
+
166
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
167
+ _mm_haddd_epu16(__m128i __A)
168
+ {
169
+ return (__m128i)__builtin_ia32_vphadduwd((__v8hi)__A);
170
+ }
171
+
172
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
173
+ _mm_haddq_epu16(__m128i __A)
174
+ {
175
+ return (__m128i)__builtin_ia32_vphadduwq((__v8hi)__A);
176
+ }
177
+
178
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
179
+ _mm_haddq_epu32(__m128i __A)
180
+ {
181
+ return (__m128i)__builtin_ia32_vphaddudq((__v4si)__A);
182
+ }
183
+
184
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
185
+ _mm_hsubw_epi8(__m128i __A)
186
+ {
187
+ return (__m128i)__builtin_ia32_vphsubbw((__v16qi)__A);
188
+ }
189
+
190
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
191
+ _mm_hsubd_epi16(__m128i __A)
192
+ {
193
+ return (__m128i)__builtin_ia32_vphsubwd((__v8hi)__A);
194
+ }
195
+
196
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
197
+ _mm_hsubq_epi32(__m128i __A)
198
+ {
199
+ return (__m128i)__builtin_ia32_vphsubdq((__v4si)__A);
200
+ }
201
+
202
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
203
+ _mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C)
204
+ {
205
+ return (__m128i)__builtin_ia32_vpcmov(__A, __B, __C);
206
+ }
207
+
208
+ static __inline__ __m256i __DEFAULT_FN_ATTRS
209
+ _mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C)
210
+ {
211
+ return (__m256i)__builtin_ia32_vpcmov_256(__A, __B, __C);
212
+ }
213
+
214
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
215
+ _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
216
+ {
217
+ return (__m128i)__builtin_ia32_vpperm((__v16qi)__A, (__v16qi)__B, (__v16qi)__C);
218
+ }
219
+
220
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
221
+ _mm_rot_epi8(__m128i __A, __m128i __B)
222
+ {
223
+ return (__m128i)__builtin_ia32_vprotb((__v16qi)__A, (__v16qi)__B);
224
+ }
225
+
226
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
227
+ _mm_rot_epi16(__m128i __A, __m128i __B)
228
+ {
229
+ return (__m128i)__builtin_ia32_vprotw((__v8hi)__A, (__v8hi)__B);
230
+ }
231
+
232
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
233
+ _mm_rot_epi32(__m128i __A, __m128i __B)
234
+ {
235
+ return (__m128i)__builtin_ia32_vprotd((__v4si)__A, (__v4si)__B);
236
+ }
237
+
238
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
239
+ _mm_rot_epi64(__m128i __A, __m128i __B)
240
+ {
241
+ return (__m128i)__builtin_ia32_vprotq((__v2di)__A, (__v2di)__B);
242
+ }
243
+
244
+ #define _mm_roti_epi8(A, N) __extension__ ({ \
245
+ __m128i __A = (A); \
246
+ (__m128i)__builtin_ia32_vprotbi((__v16qi)__A, (N)); })
247
+
248
+ #define _mm_roti_epi16(A, N) __extension__ ({ \
249
+ __m128i __A = (A); \
250
+ (__m128i)__builtin_ia32_vprotwi((__v8hi)__A, (N)); })
251
+
252
+ #define _mm_roti_epi32(A, N) __extension__ ({ \
253
+ __m128i __A = (A); \
254
+ (__m128i)__builtin_ia32_vprotdi((__v4si)__A, (N)); })
255
+
256
+ #define _mm_roti_epi64(A, N) __extension__ ({ \
257
+ __m128i __A = (A); \
258
+ (__m128i)__builtin_ia32_vprotqi((__v2di)__A, (N)); })
259
+
260
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
261
+ _mm_shl_epi8(__m128i __A, __m128i __B)
262
+ {
263
+ return (__m128i)__builtin_ia32_vpshlb((__v16qi)__A, (__v16qi)__B);
264
+ }
265
+
266
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
267
+ _mm_shl_epi16(__m128i __A, __m128i __B)
268
+ {
269
+ return (__m128i)__builtin_ia32_vpshlw((__v8hi)__A, (__v8hi)__B);
270
+ }
271
+
272
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
273
+ _mm_shl_epi32(__m128i __A, __m128i __B)
274
+ {
275
+ return (__m128i)__builtin_ia32_vpshld((__v4si)__A, (__v4si)__B);
276
+ }
277
+
278
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
279
+ _mm_shl_epi64(__m128i __A, __m128i __B)
280
+ {
281
+ return (__m128i)__builtin_ia32_vpshlq((__v2di)__A, (__v2di)__B);
282
+ }
283
+
284
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
285
+ _mm_sha_epi8(__m128i __A, __m128i __B)
286
+ {
287
+ return (__m128i)__builtin_ia32_vpshab((__v16qi)__A, (__v16qi)__B);
288
+ }
289
+
290
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
291
+ _mm_sha_epi16(__m128i __A, __m128i __B)
292
+ {
293
+ return (__m128i)__builtin_ia32_vpshaw((__v8hi)__A, (__v8hi)__B);
294
+ }
295
+
296
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
297
+ _mm_sha_epi32(__m128i __A, __m128i __B)
298
+ {
299
+ return (__m128i)__builtin_ia32_vpshad((__v4si)__A, (__v4si)__B);
300
+ }
301
+
302
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
303
+ _mm_sha_epi64(__m128i __A, __m128i __B)
304
+ {
305
+ return (__m128i)__builtin_ia32_vpshaq((__v2di)__A, (__v2di)__B);
306
+ }
307
+
308
+ #define _mm_com_epu8(A, B, N) __extension__ ({ \
309
+ __m128i __A = (A); \
310
+ __m128i __B = (B); \
311
+ (__m128i)__builtin_ia32_vpcomub((__v16qi)__A, (__v16qi)__B, (N)); })
312
+
313
+ #define _mm_com_epu16(A, B, N) __extension__ ({ \
314
+ __m128i __A = (A); \
315
+ __m128i __B = (B); \
316
+ (__m128i)__builtin_ia32_vpcomuw((__v8hi)__A, (__v8hi)__B, (N)); })
317
+
318
+ #define _mm_com_epu32(A, B, N) __extension__ ({ \
319
+ __m128i __A = (A); \
320
+ __m128i __B = (B); \
321
+ (__m128i)__builtin_ia32_vpcomud((__v4si)__A, (__v4si)__B, (N)); })
322
+
323
+ #define _mm_com_epu64(A, B, N) __extension__ ({ \
324
+ __m128i __A = (A); \
325
+ __m128i __B = (B); \
326
+ (__m128i)__builtin_ia32_vpcomuq((__v2di)__A, (__v2di)__B, (N)); })
327
+
328
+ #define _mm_com_epi8(A, B, N) __extension__ ({ \
329
+ __m128i __A = (A); \
330
+ __m128i __B = (B); \
331
+ (__m128i)__builtin_ia32_vpcomb((__v16qi)__A, (__v16qi)__B, (N)); })
332
+
333
+ #define _mm_com_epi16(A, B, N) __extension__ ({ \
334
+ __m128i __A = (A); \
335
+ __m128i __B = (B); \
336
+ (__m128i)__builtin_ia32_vpcomw((__v8hi)__A, (__v8hi)__B, (N)); })
337
+
338
+ #define _mm_com_epi32(A, B, N) __extension__ ({ \
339
+ __m128i __A = (A); \
340
+ __m128i __B = (B); \
341
+ (__m128i)__builtin_ia32_vpcomd((__v4si)__A, (__v4si)__B, (N)); })
342
+
343
+ #define _mm_com_epi64(A, B, N) __extension__ ({ \
344
+ __m128i __A = (A); \
345
+ __m128i __B = (B); \
346
+ (__m128i)__builtin_ia32_vpcomq((__v2di)__A, (__v2di)__B, (N)); })
347
+
348
+ #define _MM_PCOMCTRL_LT 0
349
+ #define _MM_PCOMCTRL_LE 1
350
+ #define _MM_PCOMCTRL_GT 2
351
+ #define _MM_PCOMCTRL_GE 3
352
+ #define _MM_PCOMCTRL_EQ 4
353
+ #define _MM_PCOMCTRL_NEQ 5
354
+ #define _MM_PCOMCTRL_FALSE 6
355
+ #define _MM_PCOMCTRL_TRUE 7
356
+
357
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
358
+ _mm_comlt_epu8(__m128i __A, __m128i __B)
359
+ {
360
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LT);
361
+ }
362
+
363
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
364
+ _mm_comle_epu8(__m128i __A, __m128i __B)
365
+ {
366
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LE);
367
+ }
368
+
369
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
370
+ _mm_comgt_epu8(__m128i __A, __m128i __B)
371
+ {
372
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GT);
373
+ }
374
+
375
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
376
+ _mm_comge_epu8(__m128i __A, __m128i __B)
377
+ {
378
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GE);
379
+ }
380
+
381
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
382
+ _mm_comeq_epu8(__m128i __A, __m128i __B)
383
+ {
384
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_EQ);
385
+ }
386
+
387
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
388
+ _mm_comneq_epu8(__m128i __A, __m128i __B)
389
+ {
390
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_NEQ);
391
+ }
392
+
393
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
394
+ _mm_comfalse_epu8(__m128i __A, __m128i __B)
395
+ {
396
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_FALSE);
397
+ }
398
+
399
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
400
+ _mm_comtrue_epu8(__m128i __A, __m128i __B)
401
+ {
402
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_TRUE);
403
+ }
404
+
405
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
406
+ _mm_comlt_epu16(__m128i __A, __m128i __B)
407
+ {
408
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LT);
409
+ }
410
+
411
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
412
+ _mm_comle_epu16(__m128i __A, __m128i __B)
413
+ {
414
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LE);
415
+ }
416
+
417
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
418
+ _mm_comgt_epu16(__m128i __A, __m128i __B)
419
+ {
420
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GT);
421
+ }
422
+
423
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
424
+ _mm_comge_epu16(__m128i __A, __m128i __B)
425
+ {
426
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GE);
427
+ }
428
+
429
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
430
+ _mm_comeq_epu16(__m128i __A, __m128i __B)
431
+ {
432
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_EQ);
433
+ }
434
+
435
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
436
+ _mm_comneq_epu16(__m128i __A, __m128i __B)
437
+ {
438
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_NEQ);
439
+ }
440
+
441
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
442
+ _mm_comfalse_epu16(__m128i __A, __m128i __B)
443
+ {
444
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_FALSE);
445
+ }
446
+
447
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
448
+ _mm_comtrue_epu16(__m128i __A, __m128i __B)
449
+ {
450
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_TRUE);
451
+ }
452
+
453
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
454
+ _mm_comlt_epu32(__m128i __A, __m128i __B)
455
+ {
456
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LT);
457
+ }
458
+
459
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
460
+ _mm_comle_epu32(__m128i __A, __m128i __B)
461
+ {
462
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LE);
463
+ }
464
+
465
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
466
+ _mm_comgt_epu32(__m128i __A, __m128i __B)
467
+ {
468
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GT);
469
+ }
470
+
471
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
472
+ _mm_comge_epu32(__m128i __A, __m128i __B)
473
+ {
474
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GE);
475
+ }
476
+
477
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
478
+ _mm_comeq_epu32(__m128i __A, __m128i __B)
479
+ {
480
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_EQ);
481
+ }
482
+
483
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
484
+ _mm_comneq_epu32(__m128i __A, __m128i __B)
485
+ {
486
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_NEQ);
487
+ }
488
+
489
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
490
+ _mm_comfalse_epu32(__m128i __A, __m128i __B)
491
+ {
492
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_FALSE);
493
+ }
494
+
495
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
496
+ _mm_comtrue_epu32(__m128i __A, __m128i __B)
497
+ {
498
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_TRUE);
499
+ }
500
+
501
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
502
+ _mm_comlt_epu64(__m128i __A, __m128i __B)
503
+ {
504
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LT);
505
+ }
506
+
507
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
508
+ _mm_comle_epu64(__m128i __A, __m128i __B)
509
+ {
510
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LE);
511
+ }
512
+
513
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
514
+ _mm_comgt_epu64(__m128i __A, __m128i __B)
515
+ {
516
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GT);
517
+ }
518
+
519
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
520
+ _mm_comge_epu64(__m128i __A, __m128i __B)
521
+ {
522
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GE);
523
+ }
524
+
525
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
526
+ _mm_comeq_epu64(__m128i __A, __m128i __B)
527
+ {
528
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_EQ);
529
+ }
530
+
531
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
532
+ _mm_comneq_epu64(__m128i __A, __m128i __B)
533
+ {
534
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_NEQ);
535
+ }
536
+
537
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
538
+ _mm_comfalse_epu64(__m128i __A, __m128i __B)
539
+ {
540
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_FALSE);
541
+ }
542
+
543
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
544
+ _mm_comtrue_epu64(__m128i __A, __m128i __B)
545
+ {
546
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_TRUE);
547
+ }
548
+
549
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
550
+ _mm_comlt_epi8(__m128i __A, __m128i __B)
551
+ {
552
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LT);
553
+ }
554
+
555
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
556
+ _mm_comle_epi8(__m128i __A, __m128i __B)
557
+ {
558
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LE);
559
+ }
560
+
561
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
562
+ _mm_comgt_epi8(__m128i __A, __m128i __B)
563
+ {
564
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GT);
565
+ }
566
+
567
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
568
+ _mm_comge_epi8(__m128i __A, __m128i __B)
569
+ {
570
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GE);
571
+ }
572
+
573
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
574
+ _mm_comeq_epi8(__m128i __A, __m128i __B)
575
+ {
576
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_EQ);
577
+ }
578
+
579
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
580
+ _mm_comneq_epi8(__m128i __A, __m128i __B)
581
+ {
582
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_NEQ);
583
+ }
584
+
585
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
586
+ _mm_comfalse_epi8(__m128i __A, __m128i __B)
587
+ {
588
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_FALSE);
589
+ }
590
+
591
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
592
+ _mm_comtrue_epi8(__m128i __A, __m128i __B)
593
+ {
594
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_TRUE);
595
+ }
596
+
597
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
598
+ _mm_comlt_epi16(__m128i __A, __m128i __B)
599
+ {
600
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LT);
601
+ }
602
+
603
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
604
+ _mm_comle_epi16(__m128i __A, __m128i __B)
605
+ {
606
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LE);
607
+ }
608
+
609
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
610
+ _mm_comgt_epi16(__m128i __A, __m128i __B)
611
+ {
612
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GT);
613
+ }
614
+
615
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
616
+ _mm_comge_epi16(__m128i __A, __m128i __B)
617
+ {
618
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GE);
619
+ }
620
+
621
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
622
+ _mm_comeq_epi16(__m128i __A, __m128i __B)
623
+ {
624
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_EQ);
625
+ }
626
+
627
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
628
+ _mm_comneq_epi16(__m128i __A, __m128i __B)
629
+ {
630
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_NEQ);
631
+ }
632
+
633
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
634
+ _mm_comfalse_epi16(__m128i __A, __m128i __B)
635
+ {
636
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_FALSE);
637
+ }
638
+
639
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
640
+ _mm_comtrue_epi16(__m128i __A, __m128i __B)
641
+ {
642
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_TRUE);
643
+ }
644
+
645
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
646
+ _mm_comlt_epi32(__m128i __A, __m128i __B)
647
+ {
648
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LT);
649
+ }
650
+
651
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
652
+ _mm_comle_epi32(__m128i __A, __m128i __B)
653
+ {
654
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LE);
655
+ }
656
+
657
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
658
+ _mm_comgt_epi32(__m128i __A, __m128i __B)
659
+ {
660
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GT);
661
+ }
662
+
663
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
664
+ _mm_comge_epi32(__m128i __A, __m128i __B)
665
+ {
666
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GE);
667
+ }
668
+
669
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
670
+ _mm_comeq_epi32(__m128i __A, __m128i __B)
671
+ {
672
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_EQ);
673
+ }
674
+
675
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
676
+ _mm_comneq_epi32(__m128i __A, __m128i __B)
677
+ {
678
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_NEQ);
679
+ }
680
+
681
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
682
+ _mm_comfalse_epi32(__m128i __A, __m128i __B)
683
+ {
684
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_FALSE);
685
+ }
686
+
687
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
688
+ _mm_comtrue_epi32(__m128i __A, __m128i __B)
689
+ {
690
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_TRUE);
691
+ }
692
+
693
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
694
+ _mm_comlt_epi64(__m128i __A, __m128i __B)
695
+ {
696
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LT);
697
+ }
698
+
699
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
700
+ _mm_comle_epi64(__m128i __A, __m128i __B)
701
+ {
702
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LE);
703
+ }
704
+
705
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
706
+ _mm_comgt_epi64(__m128i __A, __m128i __B)
707
+ {
708
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GT);
709
+ }
710
+
711
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
712
+ _mm_comge_epi64(__m128i __A, __m128i __B)
713
+ {
714
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GE);
715
+ }
716
+
717
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
718
+ _mm_comeq_epi64(__m128i __A, __m128i __B)
719
+ {
720
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_EQ);
721
+ }
722
+
723
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
724
+ _mm_comneq_epi64(__m128i __A, __m128i __B)
725
+ {
726
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_NEQ);
727
+ }
728
+
729
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
730
+ _mm_comfalse_epi64(__m128i __A, __m128i __B)
731
+ {
732
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_FALSE);
733
+ }
734
+
735
+ static __inline__ __m128i __DEFAULT_FN_ATTRS
736
+ _mm_comtrue_epi64(__m128i __A, __m128i __B)
737
+ {
738
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_TRUE);
739
+ }
740
+
741
+ #define _mm_permute2_pd(X, Y, C, I) __extension__ ({ \
742
+ __m128d __X = (X); \
743
+ __m128d __Y = (Y); \
744
+ __m128i __C = (C); \
745
+ (__m128d)__builtin_ia32_vpermil2pd((__v2df)__X, (__v2df)__Y, \
746
+ (__v2di)__C, (I)); })
747
+
748
+ #define _mm256_permute2_pd(X, Y, C, I) __extension__ ({ \
749
+ __m256d __X = (X); \
750
+ __m256d __Y = (Y); \
751
+ __m256i __C = (C); \
752
+ (__m256d)__builtin_ia32_vpermil2pd256((__v4df)__X, (__v4df)__Y, \
753
+ (__v4di)__C, (I)); })
754
+
755
+ #define _mm_permute2_ps(X, Y, C, I) __extension__ ({ \
756
+ __m128 __X = (X); \
757
+ __m128 __Y = (Y); \
758
+ __m128i __C = (C); \
759
+ (__m128)__builtin_ia32_vpermil2ps((__v4sf)__X, (__v4sf)__Y, \
760
+ (__v4si)__C, (I)); })
761
+
762
+ #define _mm256_permute2_ps(X, Y, C, I) __extension__ ({ \
763
+ __m256 __X = (X); \
764
+ __m256 __Y = (Y); \
765
+ __m256i __C = (C); \
766
+ (__m256)__builtin_ia32_vpermil2ps256((__v8sf)__X, (__v8sf)__Y, \
767
+ (__v8si)__C, (I)); })
768
+
769
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
770
+ _mm_frcz_ss(__m128 __A)
771
+ {
772
+ return (__m128)__builtin_ia32_vfrczss((__v4sf)__A);
773
+ }
774
+
775
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
776
+ _mm_frcz_sd(__m128d __A)
777
+ {
778
+ return (__m128d)__builtin_ia32_vfrczsd((__v2df)__A);
779
+ }
780
+
781
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
782
+ _mm_frcz_ps(__m128 __A)
783
+ {
784
+ return (__m128)__builtin_ia32_vfrczps((__v4sf)__A);
785
+ }
786
+
787
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
788
+ _mm_frcz_pd(__m128d __A)
789
+ {
790
+ return (__m128d)__builtin_ia32_vfrczpd((__v2df)__A);
791
+ }
792
+
793
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
794
+ _mm256_frcz_ps(__m256 __A)
795
+ {
796
+ return (__m256)__builtin_ia32_vfrczps256((__v8sf)__A);
797
+ }
798
+
799
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
800
+ _mm256_frcz_pd(__m256d __A)
801
+ {
802
+ return (__m256d)__builtin_ia32_vfrczpd256((__v4df)__A);
803
+ }
804
+
805
+ #undef __DEFAULT_FN_ATTRS
806
+
807
+ #endif /* __XOP__ */
808
+
809
+ #endif /* __XOPINTRIN_H */