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,58 @@
1
+ /*===---- f16cintrin.h - F16C 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
+ #if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
25
+ #error "Never use <f16cintrin.h> directly; include <x86intrin.h> instead."
26
+ #endif
27
+
28
+ #ifndef __F16C__
29
+ # error "F16C instruction is not enabled"
30
+ #endif /* __F16C__ */
31
+
32
+ #ifndef __F16CINTRIN_H
33
+ #define __F16CINTRIN_H
34
+
35
+ typedef float __v8sf __attribute__ ((__vector_size__ (32)));
36
+ typedef float __m256 __attribute__ ((__vector_size__ (32)));
37
+
38
+ #define _mm_cvtps_ph(a, imm) __extension__ ({ \
39
+ __m128 __a = (a); \
40
+ (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)__a, (imm)); })
41
+
42
+ #define _mm256_cvtps_ph(a, imm) __extension__ ({ \
43
+ __m256 __a = (a); \
44
+ (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)__a, (imm)); })
45
+
46
+ static __inline __m128 __attribute__((__always_inline__, __nodebug__))
47
+ _mm_cvtph_ps(__m128i __a)
48
+ {
49
+ return (__m128)__builtin_ia32_vcvtph2ps((__v8hi)__a);
50
+ }
51
+
52
+ static __inline __m256 __attribute__((__always_inline__, __nodebug__))
53
+ _mm256_cvtph_ps(__m128i __a)
54
+ {
55
+ return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a);
56
+ }
57
+
58
+ #endif /* __F16CINTRIN_H */
@@ -0,0 +1,124 @@
1
+ /*===---- float.h - Characteristics of floating point types ----------------===
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 __FLOAT_H
25
+ #define __FLOAT_H
26
+
27
+ /* If we're on MinGW, fall back to the system's float.h, which might have
28
+ * additional definitions provided for Windows.
29
+ * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
30
+ */
31
+ #if (defined(__MINGW32__) || defined(_MSC_VER)) && \
32
+ defined(__has_include_next) && __has_include_next(<float.h>)
33
+ # include_next <float.h>
34
+
35
+ /* Undefine anything that we'll be redefining below. */
36
+ # undef FLT_EVAL_METHOD
37
+ # undef FLT_ROUNDS
38
+ # undef FLT_RADIX
39
+ # undef FLT_MANT_DIG
40
+ # undef DBL_MANT_DIG
41
+ # undef LDBL_MANT_DIG
42
+ # undef DECIMAL_DIG
43
+ # undef FLT_DIG
44
+ # undef DBL_DIG
45
+ # undef LDBL_DIG
46
+ # undef FLT_MIN_EXP
47
+ # undef DBL_MIN_EXP
48
+ # undef LDBL_MIN_EXP
49
+ # undef FLT_MIN_10_EXP
50
+ # undef DBL_MIN_10_EXP
51
+ # undef LDBL_MIN_10_EXP
52
+ # undef FLT_MAX_EXP
53
+ # undef DBL_MAX_EXP
54
+ # undef LDBL_MAX_EXP
55
+ # undef FLT_MAX_10_EXP
56
+ # undef DBL_MAX_10_EXP
57
+ # undef LDBL_MAX_10_EXP
58
+ # undef FLT_MAX
59
+ # undef DBL_MAX
60
+ # undef LDBL_MAX
61
+ # undef FLT_EPSILON
62
+ # undef DBL_EPSILON
63
+ # undef LDBL_EPSILON
64
+ # undef FLT_MIN
65
+ # undef DBL_MIN
66
+ # undef LDBL_MIN
67
+ # if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
68
+ # undef FLT_TRUE_MIN
69
+ # undef DBL_TRUE_MIN
70
+ # undef LDBL_TRUE_MIN
71
+ # endif
72
+ #endif
73
+
74
+ /* Characteristics of floating point types, C99 5.2.4.2.2 */
75
+
76
+ #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
77
+ #define FLT_ROUNDS (__builtin_flt_rounds())
78
+ #define FLT_RADIX __FLT_RADIX__
79
+
80
+ #define FLT_MANT_DIG __FLT_MANT_DIG__
81
+ #define DBL_MANT_DIG __DBL_MANT_DIG__
82
+ #define LDBL_MANT_DIG __LDBL_MANT_DIG__
83
+
84
+ #define DECIMAL_DIG __DECIMAL_DIG__
85
+
86
+ #define FLT_DIG __FLT_DIG__
87
+ #define DBL_DIG __DBL_DIG__
88
+ #define LDBL_DIG __LDBL_DIG__
89
+
90
+ #define FLT_MIN_EXP __FLT_MIN_EXP__
91
+ #define DBL_MIN_EXP __DBL_MIN_EXP__
92
+ #define LDBL_MIN_EXP __LDBL_MIN_EXP__
93
+
94
+ #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
95
+ #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
96
+ #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
97
+
98
+ #define FLT_MAX_EXP __FLT_MAX_EXP__
99
+ #define DBL_MAX_EXP __DBL_MAX_EXP__
100
+ #define LDBL_MAX_EXP __LDBL_MAX_EXP__
101
+
102
+ #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
103
+ #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
104
+ #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
105
+
106
+ #define FLT_MAX __FLT_MAX__
107
+ #define DBL_MAX __DBL_MAX__
108
+ #define LDBL_MAX __LDBL_MAX__
109
+
110
+ #define FLT_EPSILON __FLT_EPSILON__
111
+ #define DBL_EPSILON __DBL_EPSILON__
112
+ #define LDBL_EPSILON __LDBL_EPSILON__
113
+
114
+ #define FLT_MIN __FLT_MIN__
115
+ #define DBL_MIN __DBL_MIN__
116
+ #define LDBL_MIN __LDBL_MIN__
117
+
118
+ #if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
119
+ # define FLT_TRUE_MIN __FLT_DENORM_MIN__
120
+ # define DBL_TRUE_MIN __DBL_DENORM_MIN__
121
+ # define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
122
+ #endif
123
+
124
+ #endif /* __FLOAT_H */
@@ -0,0 +1,231 @@
1
+ /*===---- fma4intrin.h - FMA4 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 <fma4intrin.h> directly; include <x86intrin.h> instead."
26
+ #endif
27
+
28
+ #ifndef __FMA4INTRIN_H
29
+ #define __FMA4INTRIN_H
30
+
31
+ #ifndef __FMA4__
32
+ # error "FMA4 instruction set is not enabled"
33
+ #else
34
+
35
+ #include <pmmintrin.h>
36
+
37
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
38
+ _mm_macc_ps(__m128 __A, __m128 __B, __m128 __C)
39
+ {
40
+ return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
41
+ }
42
+
43
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
44
+ _mm_macc_pd(__m128d __A, __m128d __B, __m128d __C)
45
+ {
46
+ return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
47
+ }
48
+
49
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
50
+ _mm_macc_ss(__m128 __A, __m128 __B, __m128 __C)
51
+ {
52
+ return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
53
+ }
54
+
55
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
56
+ _mm_macc_sd(__m128d __A, __m128d __B, __m128d __C)
57
+ {
58
+ return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
59
+ }
60
+
61
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
62
+ _mm_msub_ps(__m128 __A, __m128 __B, __m128 __C)
63
+ {
64
+ return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
65
+ }
66
+
67
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
68
+ _mm_msub_pd(__m128d __A, __m128d __B, __m128d __C)
69
+ {
70
+ return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
71
+ }
72
+
73
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
74
+ _mm_msub_ss(__m128 __A, __m128 __B, __m128 __C)
75
+ {
76
+ return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
77
+ }
78
+
79
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
80
+ _mm_msub_sd(__m128d __A, __m128d __B, __m128d __C)
81
+ {
82
+ return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
83
+ }
84
+
85
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
86
+ _mm_nmacc_ps(__m128 __A, __m128 __B, __m128 __C)
87
+ {
88
+ return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
89
+ }
90
+
91
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
92
+ _mm_nmacc_pd(__m128d __A, __m128d __B, __m128d __C)
93
+ {
94
+ return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
95
+ }
96
+
97
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
98
+ _mm_nmacc_ss(__m128 __A, __m128 __B, __m128 __C)
99
+ {
100
+ return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
101
+ }
102
+
103
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
104
+ _mm_nmacc_sd(__m128d __A, __m128d __B, __m128d __C)
105
+ {
106
+ return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
107
+ }
108
+
109
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
110
+ _mm_nmsub_ps(__m128 __A, __m128 __B, __m128 __C)
111
+ {
112
+ return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
113
+ }
114
+
115
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
116
+ _mm_nmsub_pd(__m128d __A, __m128d __B, __m128d __C)
117
+ {
118
+ return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
119
+ }
120
+
121
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
122
+ _mm_nmsub_ss(__m128 __A, __m128 __B, __m128 __C)
123
+ {
124
+ return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
125
+ }
126
+
127
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
128
+ _mm_nmsub_sd(__m128d __A, __m128d __B, __m128d __C)
129
+ {
130
+ return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
131
+ }
132
+
133
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
134
+ _mm_maddsub_ps(__m128 __A, __m128 __B, __m128 __C)
135
+ {
136
+ return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
137
+ }
138
+
139
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
140
+ _mm_maddsub_pd(__m128d __A, __m128d __B, __m128d __C)
141
+ {
142
+ return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
143
+ }
144
+
145
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
146
+ _mm_msubadd_ps(__m128 __A, __m128 __B, __m128 __C)
147
+ {
148
+ return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
149
+ }
150
+
151
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
152
+ _mm_msubadd_pd(__m128d __A, __m128d __B, __m128d __C)
153
+ {
154
+ return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
155
+ }
156
+
157
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
158
+ _mm256_macc_ps(__m256 __A, __m256 __B, __m256 __C)
159
+ {
160
+ return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
161
+ }
162
+
163
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
164
+ _mm256_macc_pd(__m256d __A, __m256d __B, __m256d __C)
165
+ {
166
+ return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
167
+ }
168
+
169
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
170
+ _mm256_msub_ps(__m256 __A, __m256 __B, __m256 __C)
171
+ {
172
+ return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
173
+ }
174
+
175
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
176
+ _mm256_msub_pd(__m256d __A, __m256d __B, __m256d __C)
177
+ {
178
+ return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
179
+ }
180
+
181
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
182
+ _mm256_nmacc_ps(__m256 __A, __m256 __B, __m256 __C)
183
+ {
184
+ return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
185
+ }
186
+
187
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
188
+ _mm256_nmacc_pd(__m256d __A, __m256d __B, __m256d __C)
189
+ {
190
+ return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
191
+ }
192
+
193
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
194
+ _mm256_nmsub_ps(__m256 __A, __m256 __B, __m256 __C)
195
+ {
196
+ return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
197
+ }
198
+
199
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
200
+ _mm256_nmsub_pd(__m256d __A, __m256d __B, __m256d __C)
201
+ {
202
+ return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
203
+ }
204
+
205
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
206
+ _mm256_maddsub_ps(__m256 __A, __m256 __B, __m256 __C)
207
+ {
208
+ return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
209
+ }
210
+
211
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
212
+ _mm256_maddsub_pd(__m256d __A, __m256d __B, __m256d __C)
213
+ {
214
+ return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
215
+ }
216
+
217
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
218
+ _mm256_msubadd_ps(__m256 __A, __m256 __B, __m256 __C)
219
+ {
220
+ return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
221
+ }
222
+
223
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
224
+ _mm256_msubadd_pd(__m256d __A, __m256d __B, __m256d __C)
225
+ {
226
+ return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
227
+ }
228
+
229
+ #endif /* __FMA4__ */
230
+
231
+ #endif /* __FMA4INTRIN_H */
@@ -0,0 +1,229 @@
1
+ /*===---- fma4intrin.h - FMA4 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 __IMMINTRIN_H
25
+ #error "Never use <fmaintrin.h> directly; include <immintrin.h> instead."
26
+ #endif
27
+
28
+ #ifndef __FMAINTRIN_H
29
+ #define __FMAINTRIN_H
30
+
31
+ #ifndef __FMA__
32
+ # error "FMA instruction set is not enabled"
33
+ #else
34
+
35
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
36
+ _mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C)
37
+ {
38
+ return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
39
+ }
40
+
41
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
42
+ _mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C)
43
+ {
44
+ return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
45
+ }
46
+
47
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
48
+ _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C)
49
+ {
50
+ return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
51
+ }
52
+
53
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
54
+ _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C)
55
+ {
56
+ return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
57
+ }
58
+
59
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
60
+ _mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C)
61
+ {
62
+ return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
63
+ }
64
+
65
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
66
+ _mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C)
67
+ {
68
+ return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
69
+ }
70
+
71
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
72
+ _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C)
73
+ {
74
+ return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
75
+ }
76
+
77
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
78
+ _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C)
79
+ {
80
+ return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
81
+ }
82
+
83
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
84
+ _mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C)
85
+ {
86
+ return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
87
+ }
88
+
89
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
90
+ _mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C)
91
+ {
92
+ return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
93
+ }
94
+
95
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
96
+ _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C)
97
+ {
98
+ return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
99
+ }
100
+
101
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
102
+ _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C)
103
+ {
104
+ return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
105
+ }
106
+
107
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
108
+ _mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C)
109
+ {
110
+ return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
111
+ }
112
+
113
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
114
+ _mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C)
115
+ {
116
+ return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
117
+ }
118
+
119
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
120
+ _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C)
121
+ {
122
+ return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
123
+ }
124
+
125
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
126
+ _mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C)
127
+ {
128
+ return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
129
+ }
130
+
131
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
132
+ _mm_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C)
133
+ {
134
+ return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
135
+ }
136
+
137
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
138
+ _mm_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C)
139
+ {
140
+ return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
141
+ }
142
+
143
+ static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
144
+ _mm_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C)
145
+ {
146
+ return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
147
+ }
148
+
149
+ static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
150
+ _mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C)
151
+ {
152
+ return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
153
+ }
154
+
155
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
156
+ _mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C)
157
+ {
158
+ return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
159
+ }
160
+
161
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
162
+ _mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C)
163
+ {
164
+ return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
165
+ }
166
+
167
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
168
+ _mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C)
169
+ {
170
+ return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
171
+ }
172
+
173
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
174
+ _mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C)
175
+ {
176
+ return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
177
+ }
178
+
179
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
180
+ _mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C)
181
+ {
182
+ return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
183
+ }
184
+
185
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
186
+ _mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C)
187
+ {
188
+ return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
189
+ }
190
+
191
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
192
+ _mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C)
193
+ {
194
+ return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
195
+ }
196
+
197
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
198
+ _mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C)
199
+ {
200
+ return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
201
+ }
202
+
203
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
204
+ _mm256_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C)
205
+ {
206
+ return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
207
+ }
208
+
209
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
210
+ _mm256_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C)
211
+ {
212
+ return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
213
+ }
214
+
215
+ static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
216
+ _mm256_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C)
217
+ {
218
+ return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
219
+ }
220
+
221
+ static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
222
+ _mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C)
223
+ {
224
+ return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
225
+ }
226
+
227
+ #endif /* __FMA__ */
228
+
229
+ #endif /* __FMAINTRIN_H */