objective-ci 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +1 -3
  3. data/Rakefile +1 -1
  4. data/bin/oclint +4 -0
  5. data/bin/oclint-0.8 +1 -1
  6. data/bin/oclint-json-compilation-database +1 -1
  7. data/bin/oclint-xcodebuild +1 -1
  8. data/externals/oclint/LICENSE +69 -0
  9. data/externals/oclint/bin/oclint +0 -0
  10. data/externals/oclint/{oclint-0.8 → bin/oclint-0.8} +0 -0
  11. data/externals/oclint/{oclint-json-compilation-database → bin/oclint-json-compilation-database} +0 -0
  12. data/externals/oclint/{oclint-xcodebuild → bin/oclint-xcodebuild} +0 -0
  13. data/externals/oclint/lib/clang/3.4/asan_blacklist.txt +10 -0
  14. data/externals/oclint/lib/clang/3.4/include/Intrin.h +784 -0
  15. data/externals/oclint/lib/clang/3.4/include/__wmmintrin_aes.h +67 -0
  16. data/externals/oclint/lib/clang/3.4/include/__wmmintrin_pclmul.h +34 -0
  17. data/externals/oclint/lib/clang/3.4/include/altivec.h +11856 -0
  18. data/externals/oclint/lib/clang/3.4/include/ammintrin.h +68 -0
  19. data/externals/oclint/lib/clang/3.4/include/arm_neon.h +6802 -0
  20. data/externals/oclint/lib/clang/3.4/include/avx2intrin.h +1206 -0
  21. data/externals/oclint/lib/clang/3.4/include/avxintrin.h +1224 -0
  22. data/externals/oclint/lib/clang/3.4/include/bmi2intrin.h +94 -0
  23. data/externals/oclint/lib/clang/3.4/include/bmiintrin.h +115 -0
  24. data/externals/oclint/lib/clang/3.4/include/cpuid.h +156 -0
  25. data/externals/oclint/lib/clang/3.4/include/emmintrin.h +1451 -0
  26. data/externals/oclint/lib/clang/3.4/include/f16cintrin.h +58 -0
  27. data/externals/oclint/lib/clang/3.4/include/float.h +124 -0
  28. data/externals/oclint/lib/clang/3.4/include/fma4intrin.h +231 -0
  29. data/externals/oclint/lib/clang/3.4/include/fmaintrin.h +229 -0
  30. data/externals/oclint/lib/clang/3.4/include/immintrin.h +118 -0
  31. data/externals/oclint/lib/clang/3.4/include/iso646.h +43 -0
  32. data/externals/oclint/lib/clang/3.4/include/limits.h +119 -0
  33. data/externals/oclint/lib/clang/3.4/include/lzcntintrin.h +55 -0
  34. data/externals/oclint/lib/clang/3.4/include/mm3dnow.h +162 -0
  35. data/externals/oclint/lib/clang/3.4/include/mm_malloc.h +75 -0
  36. data/externals/oclint/lib/clang/3.4/include/mmintrin.h +503 -0
  37. data/externals/oclint/lib/clang/3.4/include/module.map +156 -0
  38. data/externals/oclint/lib/clang/3.4/include/nmmintrin.h +35 -0
  39. data/externals/oclint/lib/clang/3.4/include/pmmintrin.h +117 -0
  40. data/externals/oclint/lib/clang/3.4/include/popcntintrin.h +45 -0
  41. data/externals/oclint/lib/clang/3.4/include/prfchwintrin.h +39 -0
  42. data/externals/oclint/lib/clang/3.4/include/rdseedintrin.h +52 -0
  43. data/externals/oclint/lib/clang/3.4/include/rtmintrin.h +54 -0
  44. data/externals/oclint/lib/clang/3.4/include/sanitizer/asan_interface.h +137 -0
  45. data/externals/oclint/lib/clang/3.4/include/sanitizer/common_interface_defs.h +54 -0
  46. data/externals/oclint/lib/clang/3.4/include/sanitizer/dfsan_interface.h +87 -0
  47. data/externals/oclint/lib/clang/3.4/include/sanitizer/linux_syscall_hooks.h +3070 -0
  48. data/externals/oclint/lib/clang/3.4/include/sanitizer/lsan_interface.h +52 -0
  49. data/externals/oclint/lib/clang/3.4/include/sanitizer/msan_interface.h +162 -0
  50. data/externals/oclint/lib/clang/3.4/include/shaintrin.h +74 -0
  51. data/externals/oclint/lib/clang/3.4/include/smmintrin.h +468 -0
  52. data/externals/oclint/lib/clang/3.4/include/stdalign.h +35 -0
  53. data/externals/oclint/lib/clang/3.4/include/stdarg.h +50 -0
  54. data/externals/oclint/lib/clang/3.4/include/stdbool.h +44 -0
  55. data/externals/oclint/lib/clang/3.4/include/stddef.h +102 -0
  56. data/externals/oclint/lib/clang/3.4/include/stdint.h +708 -0
  57. data/externals/oclint/lib/clang/3.4/include/stdnoreturn.h +30 -0
  58. data/externals/oclint/lib/clang/3.4/include/tbmintrin.h +158 -0
  59. data/externals/oclint/lib/clang/3.4/include/tgmath.h +1374 -0
  60. data/externals/oclint/lib/clang/3.4/include/tmmintrin.h +225 -0
  61. data/externals/oclint/lib/clang/3.4/include/unwind.h +280 -0
  62. data/externals/oclint/lib/clang/3.4/include/varargs.h +26 -0
  63. data/externals/oclint/lib/clang/3.4/include/wmmintrin.h +42 -0
  64. data/externals/oclint/lib/clang/3.4/include/x86intrin.h +79 -0
  65. data/externals/oclint/lib/clang/3.4/include/xmmintrin.h +1001 -0
  66. data/externals/oclint/lib/clang/3.4/include/xopintrin.h +804 -0
  67. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  68. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.i386.a +0 -0
  69. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.profile_osx.a +0 -0
  70. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.ubsan_osx.a +0 -0
  71. data/externals/oclint/lib/clang/3.4/lib/darwin/libclang_rt.x86_64.a +0 -0
  72. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  73. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  74. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  75. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  76. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  77. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  78. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  79. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  80. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  81. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  82. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  83. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  84. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  85. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  86. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  87. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  88. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  89. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  90. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  91. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  92. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  93. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  94. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  95. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  96. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  97. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  98. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  99. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  100. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  101. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  102. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  103. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  104. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  105. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  106. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  107. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  108. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  109. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  110. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  111. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  112. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  113. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  114. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  134. data/lib/objective_ci/ci_tasks.rb +1 -1
  135. data/lib/objective_ci/version.rb +1 -1
  136. metadata +200 -84
@@ -0,0 +1,75 @@
1
+ /*===---- mm_malloc.h - Allocating and Freeing Aligned Memory Blocks -------===
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 __MM_MALLOC_H
25
+ #define __MM_MALLOC_H
26
+
27
+ #include <stdlib.h>
28
+
29
+ #ifdef _WIN32
30
+ #include <malloc.h>
31
+ #else
32
+ #ifndef __cplusplus
33
+ extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
34
+ #else
35
+ // Some systems (e.g. those with GNU libc) declare posix_memalign with an
36
+ // exception specifier. Via an "egregious workaround" in
37
+ // Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid
38
+ // redeclaration of glibc's declaration.
39
+ extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
40
+ #endif
41
+ #endif
42
+
43
+ #if !(defined(_WIN32) && defined(_mm_malloc))
44
+ static __inline__ void *__attribute__((__always_inline__, __nodebug__,
45
+ __malloc__))
46
+ _mm_malloc(size_t __size, size_t __align)
47
+ {
48
+ if (__align == 1) {
49
+ return malloc(__size);
50
+ }
51
+
52
+ if (!(__align & (__align - 1)) && __align < sizeof(void *))
53
+ __align = sizeof(void *);
54
+
55
+ void *__mallocedMemory;
56
+ #if defined(__MINGW32__)
57
+ __mallocedMemory = __mingw_aligned_malloc(__size, __align);
58
+ #elif defined(_WIN32)
59
+ __mallocedMemory = _aligned_malloc(__size, __align);
60
+ #else
61
+ if (posix_memalign(&__mallocedMemory, __align, __size))
62
+ return 0;
63
+ #endif
64
+
65
+ return __mallocedMemory;
66
+ }
67
+
68
+ static __inline__ void __attribute__((__always_inline__, __nodebug__))
69
+ _mm_free(void *__p)
70
+ {
71
+ free(__p);
72
+ }
73
+ #endif
74
+
75
+ #endif /* __MM_MALLOC_H */
@@ -0,0 +1,503 @@
1
+ /*===---- mmintrin.h - MMX 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 __MMINTRIN_H
25
+ #define __MMINTRIN_H
26
+
27
+ #ifndef __MMX__
28
+ #error "MMX instruction set not enabled"
29
+ #else
30
+
31
+ typedef long long __m64 __attribute__((__vector_size__(8)));
32
+
33
+ typedef int __v2si __attribute__((__vector_size__(8)));
34
+ typedef short __v4hi __attribute__((__vector_size__(8)));
35
+ typedef char __v8qi __attribute__((__vector_size__(8)));
36
+
37
+ static __inline__ void __attribute__((__always_inline__, __nodebug__))
38
+ _mm_empty(void)
39
+ {
40
+ __builtin_ia32_emms();
41
+ }
42
+
43
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
44
+ _mm_cvtsi32_si64(int __i)
45
+ {
46
+ return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
47
+ }
48
+
49
+ static __inline__ int __attribute__((__always_inline__, __nodebug__))
50
+ _mm_cvtsi64_si32(__m64 __m)
51
+ {
52
+ return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
53
+ }
54
+
55
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
56
+ _mm_cvtsi64_m64(long long __i)
57
+ {
58
+ return (__m64)__i;
59
+ }
60
+
61
+ static __inline__ long long __attribute__((__always_inline__, __nodebug__))
62
+ _mm_cvtm64_si64(__m64 __m)
63
+ {
64
+ return (long long)__m;
65
+ }
66
+
67
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
68
+ _mm_packs_pi16(__m64 __m1, __m64 __m2)
69
+ {
70
+ return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
71
+ }
72
+
73
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
74
+ _mm_packs_pi32(__m64 __m1, __m64 __m2)
75
+ {
76
+ return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
77
+ }
78
+
79
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
80
+ _mm_packs_pu16(__m64 __m1, __m64 __m2)
81
+ {
82
+ return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
83
+ }
84
+
85
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
86
+ _mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
87
+ {
88
+ return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
89
+ }
90
+
91
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
92
+ _mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
93
+ {
94
+ return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
95
+ }
96
+
97
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
98
+ _mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
99
+ {
100
+ return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
101
+ }
102
+
103
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
104
+ _mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
105
+ {
106
+ return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
107
+ }
108
+
109
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
110
+ _mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
111
+ {
112
+ return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
113
+ }
114
+
115
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
116
+ _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
117
+ {
118
+ return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
119
+ }
120
+
121
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
122
+ _mm_add_pi8(__m64 __m1, __m64 __m2)
123
+ {
124
+ return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
125
+ }
126
+
127
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
128
+ _mm_add_pi16(__m64 __m1, __m64 __m2)
129
+ {
130
+ return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
131
+ }
132
+
133
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
134
+ _mm_add_pi32(__m64 __m1, __m64 __m2)
135
+ {
136
+ return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
137
+ }
138
+
139
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
140
+ _mm_adds_pi8(__m64 __m1, __m64 __m2)
141
+ {
142
+ return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
143
+ }
144
+
145
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
146
+ _mm_adds_pi16(__m64 __m1, __m64 __m2)
147
+ {
148
+ return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
149
+ }
150
+
151
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
152
+ _mm_adds_pu8(__m64 __m1, __m64 __m2)
153
+ {
154
+ return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
155
+ }
156
+
157
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
158
+ _mm_adds_pu16(__m64 __m1, __m64 __m2)
159
+ {
160
+ return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
161
+ }
162
+
163
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
164
+ _mm_sub_pi8(__m64 __m1, __m64 __m2)
165
+ {
166
+ return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
167
+ }
168
+
169
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
170
+ _mm_sub_pi16(__m64 __m1, __m64 __m2)
171
+ {
172
+ return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
173
+ }
174
+
175
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
176
+ _mm_sub_pi32(__m64 __m1, __m64 __m2)
177
+ {
178
+ return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
179
+ }
180
+
181
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
182
+ _mm_subs_pi8(__m64 __m1, __m64 __m2)
183
+ {
184
+ return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
185
+ }
186
+
187
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
188
+ _mm_subs_pi16(__m64 __m1, __m64 __m2)
189
+ {
190
+ return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
191
+ }
192
+
193
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
194
+ _mm_subs_pu8(__m64 __m1, __m64 __m2)
195
+ {
196
+ return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
197
+ }
198
+
199
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
200
+ _mm_subs_pu16(__m64 __m1, __m64 __m2)
201
+ {
202
+ return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
203
+ }
204
+
205
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
206
+ _mm_madd_pi16(__m64 __m1, __m64 __m2)
207
+ {
208
+ return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
209
+ }
210
+
211
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
212
+ _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
213
+ {
214
+ return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
215
+ }
216
+
217
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
218
+ _mm_mullo_pi16(__m64 __m1, __m64 __m2)
219
+ {
220
+ return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
221
+ }
222
+
223
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
224
+ _mm_sll_pi16(__m64 __m, __m64 __count)
225
+ {
226
+ return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
227
+ }
228
+
229
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
230
+ _mm_slli_pi16(__m64 __m, int __count)
231
+ {
232
+ return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
233
+ }
234
+
235
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
236
+ _mm_sll_pi32(__m64 __m, __m64 __count)
237
+ {
238
+ return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
239
+ }
240
+
241
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
242
+ _mm_slli_pi32(__m64 __m, int __count)
243
+ {
244
+ return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
245
+ }
246
+
247
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
248
+ _mm_sll_si64(__m64 __m, __m64 __count)
249
+ {
250
+ return (__m64)__builtin_ia32_psllq(__m, __count);
251
+ }
252
+
253
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
254
+ _mm_slli_si64(__m64 __m, int __count)
255
+ {
256
+ return (__m64)__builtin_ia32_psllqi(__m, __count);
257
+ }
258
+
259
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
260
+ _mm_sra_pi16(__m64 __m, __m64 __count)
261
+ {
262
+ return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
263
+ }
264
+
265
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
266
+ _mm_srai_pi16(__m64 __m, int __count)
267
+ {
268
+ return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
269
+ }
270
+
271
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
272
+ _mm_sra_pi32(__m64 __m, __m64 __count)
273
+ {
274
+ return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
275
+ }
276
+
277
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
278
+ _mm_srai_pi32(__m64 __m, int __count)
279
+ {
280
+ return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
281
+ }
282
+
283
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
284
+ _mm_srl_pi16(__m64 __m, __m64 __count)
285
+ {
286
+ return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
287
+ }
288
+
289
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
290
+ _mm_srli_pi16(__m64 __m, int __count)
291
+ {
292
+ return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
293
+ }
294
+
295
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
296
+ _mm_srl_pi32(__m64 __m, __m64 __count)
297
+ {
298
+ return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
299
+ }
300
+
301
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
302
+ _mm_srli_pi32(__m64 __m, int __count)
303
+ {
304
+ return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
305
+ }
306
+
307
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
308
+ _mm_srl_si64(__m64 __m, __m64 __count)
309
+ {
310
+ return (__m64)__builtin_ia32_psrlq(__m, __count);
311
+ }
312
+
313
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
314
+ _mm_srli_si64(__m64 __m, int __count)
315
+ {
316
+ return (__m64)__builtin_ia32_psrlqi(__m, __count);
317
+ }
318
+
319
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
320
+ _mm_and_si64(__m64 __m1, __m64 __m2)
321
+ {
322
+ return __builtin_ia32_pand(__m1, __m2);
323
+ }
324
+
325
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
326
+ _mm_andnot_si64(__m64 __m1, __m64 __m2)
327
+ {
328
+ return __builtin_ia32_pandn(__m1, __m2);
329
+ }
330
+
331
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
332
+ _mm_or_si64(__m64 __m1, __m64 __m2)
333
+ {
334
+ return __builtin_ia32_por(__m1, __m2);
335
+ }
336
+
337
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
338
+ _mm_xor_si64(__m64 __m1, __m64 __m2)
339
+ {
340
+ return __builtin_ia32_pxor(__m1, __m2);
341
+ }
342
+
343
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
344
+ _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
345
+ {
346
+ return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
347
+ }
348
+
349
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
350
+ _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
351
+ {
352
+ return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
353
+ }
354
+
355
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
356
+ _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
357
+ {
358
+ return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
359
+ }
360
+
361
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
362
+ _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
363
+ {
364
+ return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2);
365
+ }
366
+
367
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
368
+ _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
369
+ {
370
+ return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
371
+ }
372
+
373
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
374
+ _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
375
+ {
376
+ return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
377
+ }
378
+
379
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
380
+ _mm_setzero_si64(void)
381
+ {
382
+ return (__m64){ 0LL };
383
+ }
384
+
385
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
386
+ _mm_set_pi32(int __i1, int __i0)
387
+ {
388
+ return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
389
+ }
390
+
391
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
392
+ _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
393
+ {
394
+ return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
395
+ }
396
+
397
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
398
+ _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
399
+ char __b1, char __b0)
400
+ {
401
+ return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
402
+ __b4, __b5, __b6, __b7);
403
+ }
404
+
405
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
406
+ _mm_set1_pi32(int __i)
407
+ {
408
+ return _mm_set_pi32(__i, __i);
409
+ }
410
+
411
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
412
+ _mm_set1_pi16(short __w)
413
+ {
414
+ return _mm_set_pi16(__w, __w, __w, __w);
415
+ }
416
+
417
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
418
+ _mm_set1_pi8(char __b)
419
+ {
420
+ return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
421
+ }
422
+
423
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
424
+ _mm_setr_pi32(int __i0, int __i1)
425
+ {
426
+ return _mm_set_pi32(__i1, __i0);
427
+ }
428
+
429
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
430
+ _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
431
+ {
432
+ return _mm_set_pi16(__w3, __w2, __w1, __w0);
433
+ }
434
+
435
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
436
+ _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
437
+ char __b6, char __b7)
438
+ {
439
+ return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
440
+ }
441
+
442
+
443
+ /* Aliases for compatibility. */
444
+ #define _m_empty _mm_empty
445
+ #define _m_from_int _mm_cvtsi32_si64
446
+ #define _m_to_int _mm_cvtsi64_si32
447
+ #define _m_packsswb _mm_packs_pi16
448
+ #define _m_packssdw _mm_packs_pi32
449
+ #define _m_packuswb _mm_packs_pu16
450
+ #define _m_punpckhbw _mm_unpackhi_pi8
451
+ #define _m_punpckhwd _mm_unpackhi_pi16
452
+ #define _m_punpckhdq _mm_unpackhi_pi32
453
+ #define _m_punpcklbw _mm_unpacklo_pi8
454
+ #define _m_punpcklwd _mm_unpacklo_pi16
455
+ #define _m_punpckldq _mm_unpacklo_pi32
456
+ #define _m_paddb _mm_add_pi8
457
+ #define _m_paddw _mm_add_pi16
458
+ #define _m_paddd _mm_add_pi32
459
+ #define _m_paddsb _mm_adds_pi8
460
+ #define _m_paddsw _mm_adds_pi16
461
+ #define _m_paddusb _mm_adds_pu8
462
+ #define _m_paddusw _mm_adds_pu16
463
+ #define _m_psubb _mm_sub_pi8
464
+ #define _m_psubw _mm_sub_pi16
465
+ #define _m_psubd _mm_sub_pi32
466
+ #define _m_psubsb _mm_subs_pi8
467
+ #define _m_psubsw _mm_subs_pi16
468
+ #define _m_psubusb _mm_subs_pu8
469
+ #define _m_psubusw _mm_subs_pu16
470
+ #define _m_pmaddwd _mm_madd_pi16
471
+ #define _m_pmulhw _mm_mulhi_pi16
472
+ #define _m_pmullw _mm_mullo_pi16
473
+ #define _m_psllw _mm_sll_pi16
474
+ #define _m_psllwi _mm_slli_pi16
475
+ #define _m_pslld _mm_sll_pi32
476
+ #define _m_pslldi _mm_slli_pi32
477
+ #define _m_psllq _mm_sll_si64
478
+ #define _m_psllqi _mm_slli_si64
479
+ #define _m_psraw _mm_sra_pi16
480
+ #define _m_psrawi _mm_srai_pi16
481
+ #define _m_psrad _mm_sra_pi32
482
+ #define _m_psradi _mm_srai_pi32
483
+ #define _m_psrlw _mm_srl_pi16
484
+ #define _m_psrlwi _mm_srli_pi16
485
+ #define _m_psrld _mm_srl_pi32
486
+ #define _m_psrldi _mm_srli_pi32
487
+ #define _m_psrlq _mm_srl_si64
488
+ #define _m_psrlqi _mm_srli_si64
489
+ #define _m_pand _mm_and_si64
490
+ #define _m_pandn _mm_andnot_si64
491
+ #define _m_por _mm_or_si64
492
+ #define _m_pxor _mm_xor_si64
493
+ #define _m_pcmpeqb _mm_cmpeq_pi8
494
+ #define _m_pcmpeqw _mm_cmpeq_pi16
495
+ #define _m_pcmpeqd _mm_cmpeq_pi32
496
+ #define _m_pcmpgtb _mm_cmpgt_pi8
497
+ #define _m_pcmpgtw _mm_cmpgt_pi16
498
+ #define _m_pcmpgtd _mm_cmpgt_pi32
499
+
500
+ #endif /* __MMX__ */
501
+
502
+ #endif /* __MMINTRIN_H */
503
+