objective-ci 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+