xcodebuild-helper 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 */