xcodebuild-helper 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +20 -0
  3. data/.gitignore +1 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +110 -0
  8. data/Guardfile +18 -0
  9. data/README.md +7 -0
  10. data/Rakefile +7 -0
  11. data/TODO.md +3 -0
  12. data/bin/oclint +5 -0
  13. data/bin/oclint-0.8 +5 -0
  14. data/bin/oclint-json-compilation-database +5 -0
  15. data/bin/oclint-xcodebuild +5 -0
  16. data/externals/oclint/LICENSE +69 -0
  17. data/externals/oclint/bin/oclint +0 -0
  18. data/externals/oclint/bin/oclint-0.10.2 +0 -0
  19. data/externals/oclint/bin/oclint-json-compilation-database +88 -0
  20. data/externals/oclint/bin/oclint-xcodebuild +218 -0
  21. data/externals/oclint/lib/clang/3.7.0/asan_blacklist.txt +13 -0
  22. data/externals/oclint/lib/clang/3.7.0/include/Intrin.h +958 -0
  23. data/externals/oclint/lib/clang/3.7.0/include/__stddef_max_align_t.h +43 -0
  24. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_aes.h +72 -0
  25. data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_pclmul.h +34 -0
  26. data/externals/oclint/lib/clang/3.7.0/include/adxintrin.h +88 -0
  27. data/externals/oclint/lib/clang/3.7.0/include/altivec.h +13528 -0
  28. data/externals/oclint/lib/clang/3.7.0/include/ammintrin.h +215 -0
  29. data/externals/oclint/lib/clang/3.7.0/include/arm_acle.h +304 -0
  30. data/externals/oclint/lib/clang/3.7.0/include/arm_neon.h +68419 -0
  31. data/externals/oclint/lib/clang/3.7.0/include/avx2intrin.h +1256 -0
  32. data/externals/oclint/lib/clang/3.7.0/include/avx512bwintrin.h +1250 -0
  33. data/externals/oclint/lib/clang/3.7.0/include/avx512cdintrin.h +131 -0
  34. data/externals/oclint/lib/clang/3.7.0/include/avx512dqintrin.h +242 -0
  35. data/externals/oclint/lib/clang/3.7.0/include/avx512erintrin.h +285 -0
  36. data/externals/oclint/lib/clang/3.7.0/include/avx512fintrin.h +2457 -0
  37. data/externals/oclint/lib/clang/3.7.0/include/avx512vlbwintrin.h +1907 -0
  38. data/externals/oclint/lib/clang/3.7.0/include/avx512vldqintrin.h +353 -0
  39. data/externals/oclint/lib/clang/3.7.0/include/avx512vlintrin.h +1982 -0
  40. data/externals/oclint/lib/clang/3.7.0/include/avxintrin.h +1308 -0
  41. data/externals/oclint/lib/clang/3.7.0/include/bmi2intrin.h +99 -0
  42. data/externals/oclint/lib/clang/3.7.0/include/bmiintrin.h +153 -0
  43. data/externals/oclint/lib/clang/3.7.0/include/cpuid.h +209 -0
  44. data/externals/oclint/lib/clang/3.7.0/include/cuda_builtin_vars.h +110 -0
  45. data/externals/oclint/lib/clang/3.7.0/include/emmintrin.h +1480 -0
  46. data/externals/oclint/lib/clang/3.7.0/include/f16cintrin.h +63 -0
  47. data/externals/oclint/lib/clang/3.7.0/include/float.h +124 -0
  48. data/externals/oclint/lib/clang/3.7.0/include/fma4intrin.h +236 -0
  49. data/externals/oclint/lib/clang/3.7.0/include/fmaintrin.h +234 -0
  50. data/externals/oclint/lib/clang/3.7.0/include/fxsrintrin.h +55 -0
  51. data/externals/oclint/lib/clang/3.7.0/include/htmintrin.h +226 -0
  52. data/externals/oclint/lib/clang/3.7.0/include/htmxlintrin.h +363 -0
  53. data/externals/oclint/lib/clang/3.7.0/include/ia32intrin.h +101 -0
  54. data/externals/oclint/lib/clang/3.7.0/include/immintrin.h +203 -0
  55. data/externals/oclint/lib/clang/3.7.0/include/inttypes.h +102 -0
  56. data/externals/oclint/lib/clang/3.7.0/include/iso646.h +43 -0
  57. data/externals/oclint/lib/clang/3.7.0/include/limits.h +118 -0
  58. data/externals/oclint/lib/clang/3.7.0/include/lzcntintrin.h +72 -0
  59. data/externals/oclint/lib/clang/3.7.0/include/mm3dnow.h +167 -0
  60. data/externals/oclint/lib/clang/3.7.0/include/mm_malloc.h +75 -0
  61. data/externals/oclint/lib/clang/3.7.0/include/mmintrin.h +507 -0
  62. data/externals/oclint/lib/clang/3.7.0/include/module.modulemap +196 -0
  63. data/externals/oclint/lib/clang/3.7.0/include/nmmintrin.h +35 -0
  64. data/externals/oclint/lib/clang/3.7.0/include/pmmintrin.h +122 -0
  65. data/externals/oclint/lib/clang/3.7.0/include/popcntintrin.h +50 -0
  66. data/externals/oclint/lib/clang/3.7.0/include/prfchwintrin.h +39 -0
  67. data/externals/oclint/lib/clang/3.7.0/include/rdseedintrin.h +59 -0
  68. data/externals/oclint/lib/clang/3.7.0/include/rtmintrin.h +59 -0
  69. data/externals/oclint/lib/clang/3.7.0/include/s390intrin.h +39 -0
  70. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/allocator_interface.h +66 -0
  71. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/asan_interface.h +155 -0
  72. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h +118 -0
  73. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/coverage_interface.h +63 -0
  74. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h +114 -0
  75. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h +3070 -0
  76. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/lsan_interface.h +84 -0
  77. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/msan_interface.h +107 -0
  78. data/externals/oclint/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h +222 -0
  79. data/externals/oclint/lib/clang/3.7.0/include/shaintrin.h +79 -0
  80. data/externals/oclint/lib/clang/3.7.0/include/smmintrin.h +487 -0
  81. data/externals/oclint/lib/clang/3.7.0/include/stdalign.h +35 -0
  82. data/externals/oclint/lib/clang/3.7.0/include/stdarg.h +52 -0
  83. data/externals/oclint/lib/clang/3.7.0/include/stdatomic.h +190 -0
  84. data/externals/oclint/lib/clang/3.7.0/include/stdbool.h +44 -0
  85. data/externals/oclint/lib/clang/3.7.0/include/stddef.h +137 -0
  86. data/externals/oclint/lib/clang/3.7.0/include/stdint.h +707 -0
  87. data/externals/oclint/lib/clang/3.7.0/include/stdnoreturn.h +30 -0
  88. data/externals/oclint/lib/clang/3.7.0/include/tbmintrin.h +154 -0
  89. data/externals/oclint/lib/clang/3.7.0/include/tgmath.h +1374 -0
  90. data/externals/oclint/lib/clang/3.7.0/include/tmmintrin.h +230 -0
  91. data/externals/oclint/lib/clang/3.7.0/include/unwind.h +282 -0
  92. data/externals/oclint/lib/clang/3.7.0/include/vadefs.h +65 -0
  93. data/externals/oclint/lib/clang/3.7.0/include/varargs.h +26 -0
  94. data/externals/oclint/lib/clang/3.7.0/include/vecintrin.h +8946 -0
  95. data/externals/oclint/lib/clang/3.7.0/include/wmmintrin.h +42 -0
  96. data/externals/oclint/lib/clang/3.7.0/include/x86intrin.h +81 -0
  97. data/externals/oclint/lib/clang/3.7.0/include/xmmintrin.h +1008 -0
  98. data/externals/oclint/lib/clang/3.7.0/include/xopintrin.h +809 -0
  99. data/externals/oclint/lib/clang/3.7.0/include/xtestintrin.h +41 -0
  100. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  101. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  102. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-i386.a +0 -0
  103. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-x86_64.a +0 -0
  104. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.profile_osx.a +0 -0
  105. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.safestack_osx.a +0 -0
  106. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  107. data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  108. data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
  109. data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
  110. data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
  111. data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
  112. data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
  113. data/externals/oclint/lib/oclint/reporters/libXcodeReporter.dylib +0 -0
  114. data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
  115. data/externals/oclint/lib/oclint/rules/libAvoidDefaultArgumentsOnVirtualMethodsRule.dylib +0 -0
  116. data/externals/oclint/lib/oclint/rules/libAvoidPrivateStaticMembersRule.dylib +0 -0
  117. data/externals/oclint/lib/oclint/rules/libBaseClassDestructorShouldBeVirtualOrProtectedRule.dylib +0 -0
  118. data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
  119. data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
  120. data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
  121. data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
  122. data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
  123. data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
  124. data/externals/oclint/lib/oclint/rules/libCoveredSwitchStatementsDontNeedDefaultRule.dylib +0 -0
  125. data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
  126. data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
  127. data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
  128. data/externals/oclint/lib/oclint/rules/libDestructorOfVirtualClassRule.dylib +0 -0
  129. data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
  130. data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
  131. data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
  132. data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
  133. data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
  134. data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
  135. data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
  136. data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
  137. data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
  138. data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
  139. data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
  140. data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
  141. data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
  142. data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
  143. data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
  144. data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
  145. data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
  146. data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
  147. data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
  148. data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
  149. data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
  150. data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
  151. data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
  152. data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
  153. data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
  154. data/externals/oclint/lib/oclint/rules/libObjCAssignIvarOutsideAccessorsRule.dylib +0 -0
  155. data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
  156. data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
  157. data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
  158. data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
  159. data/externals/oclint/lib/oclint/rules/libObjCVerifyIsEqualHashRule.dylib +0 -0
  160. data/externals/oclint/lib/oclint/rules/libObjCVerifyMustCallSuperRule.dylib +0 -0
  161. data/externals/oclint/lib/oclint/rules/libObjCVerifyProhibitedCallRule.dylib +0 -0
  162. data/externals/oclint/lib/oclint/rules/libObjCVerifyProtectedMethodRule.dylib +0 -0
  163. data/externals/oclint/lib/oclint/rules/libObjCVerifySubclassMustImplementRule.dylib +0 -0
  164. data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
  165. data/externals/oclint/lib/oclint/rules/libPreferEarlyExitRule.dylib +0 -0
  166. data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
  167. data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
  168. data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
  169. data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
  170. data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
  171. data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
  172. data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
  173. data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
  174. data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
  175. data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
  176. data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
  177. data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
  178. data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
  179. data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
  180. data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
  181. data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
  182. data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
  183. data/lib/coverage_plan.rb +19 -0
  184. data/lib/device.rb +27 -0
  185. data/lib/execute.rb +7 -0
  186. data/lib/lint_plan.rb +41 -0
  187. data/lib/rules.rb +23 -0
  188. data/lib/test_plan.rb +11 -0
  189. data/lib/version.rb +3 -0
  190. data/lib/xcode.rb +128 -0
  191. data/lib/xcodebuild-helper.rb +110 -0
  192. data/spec/coverage_plan_spec.rb +18 -0
  193. data/spec/device_spec.rb +24 -0
  194. data/spec/lint_plan_spec.rb +35 -0
  195. data/spec/rule_spec.rb +37 -0
  196. data/spec/spec_helper.rb +17 -0
  197. data/spec/test_plan_spec.rb +11 -0
  198. data/spec/xcode_dsl_actions_spec.rb +136 -0
  199. data/spec/xcode_dsl_spec.rb +176 -0
  200. data/spec/xcode_spec.rb +79 -0
  201. data/xcodebuild-helper.gemspec +26 -0
  202. metadata +327 -0
@@ -0,0 +1,63 @@
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 the default attributes for the functions in this file. */
39
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
40
+
41
+ #define _mm_cvtps_ph(a, imm) __extension__ ({ \
42
+ __m128 __a = (a); \
43
+ (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)__a, (imm)); })
44
+
45
+ #define _mm256_cvtps_ph(a, imm) __extension__ ({ \
46
+ __m256 __a = (a); \
47
+ (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)__a, (imm)); })
48
+
49
+ static __inline __m128 __DEFAULT_FN_ATTRS
50
+ _mm_cvtph_ps(__m128i __a)
51
+ {
52
+ return (__m128)__builtin_ia32_vcvtph2ps((__v8hi)__a);
53
+ }
54
+
55
+ static __inline __m256 __DEFAULT_FN_ATTRS
56
+ _mm256_cvtph_ps(__m128i __a)
57
+ {
58
+ return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a);
59
+ }
60
+
61
+ #undef __DEFAULT_FN_ATTRS
62
+
63
+ #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)) && __STDC_HOSTED__ && \
32
+ __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,236 @@
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
+ /* Define the default attributes for the functions in this file. */
38
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
39
+
40
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
41
+ _mm_macc_ps(__m128 __A, __m128 __B, __m128 __C)
42
+ {
43
+ return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
44
+ }
45
+
46
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
47
+ _mm_macc_pd(__m128d __A, __m128d __B, __m128d __C)
48
+ {
49
+ return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
50
+ }
51
+
52
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
53
+ _mm_macc_ss(__m128 __A, __m128 __B, __m128 __C)
54
+ {
55
+ return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
56
+ }
57
+
58
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
59
+ _mm_macc_sd(__m128d __A, __m128d __B, __m128d __C)
60
+ {
61
+ return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
62
+ }
63
+
64
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
65
+ _mm_msub_ps(__m128 __A, __m128 __B, __m128 __C)
66
+ {
67
+ return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
68
+ }
69
+
70
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
71
+ _mm_msub_pd(__m128d __A, __m128d __B, __m128d __C)
72
+ {
73
+ return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
74
+ }
75
+
76
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
77
+ _mm_msub_ss(__m128 __A, __m128 __B, __m128 __C)
78
+ {
79
+ return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
80
+ }
81
+
82
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
83
+ _mm_msub_sd(__m128d __A, __m128d __B, __m128d __C)
84
+ {
85
+ return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
86
+ }
87
+
88
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
89
+ _mm_nmacc_ps(__m128 __A, __m128 __B, __m128 __C)
90
+ {
91
+ return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
92
+ }
93
+
94
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
95
+ _mm_nmacc_pd(__m128d __A, __m128d __B, __m128d __C)
96
+ {
97
+ return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
98
+ }
99
+
100
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
101
+ _mm_nmacc_ss(__m128 __A, __m128 __B, __m128 __C)
102
+ {
103
+ return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
104
+ }
105
+
106
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
107
+ _mm_nmacc_sd(__m128d __A, __m128d __B, __m128d __C)
108
+ {
109
+ return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
110
+ }
111
+
112
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
113
+ _mm_nmsub_ps(__m128 __A, __m128 __B, __m128 __C)
114
+ {
115
+ return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
116
+ }
117
+
118
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
119
+ _mm_nmsub_pd(__m128d __A, __m128d __B, __m128d __C)
120
+ {
121
+ return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
122
+ }
123
+
124
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
125
+ _mm_nmsub_ss(__m128 __A, __m128 __B, __m128 __C)
126
+ {
127
+ return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
128
+ }
129
+
130
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
131
+ _mm_nmsub_sd(__m128d __A, __m128d __B, __m128d __C)
132
+ {
133
+ return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
134
+ }
135
+
136
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
137
+ _mm_maddsub_ps(__m128 __A, __m128 __B, __m128 __C)
138
+ {
139
+ return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
140
+ }
141
+
142
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
143
+ _mm_maddsub_pd(__m128d __A, __m128d __B, __m128d __C)
144
+ {
145
+ return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
146
+ }
147
+
148
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
149
+ _mm_msubadd_ps(__m128 __A, __m128 __B, __m128 __C)
150
+ {
151
+ return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
152
+ }
153
+
154
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
155
+ _mm_msubadd_pd(__m128d __A, __m128d __B, __m128d __C)
156
+ {
157
+ return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
158
+ }
159
+
160
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
161
+ _mm256_macc_ps(__m256 __A, __m256 __B, __m256 __C)
162
+ {
163
+ return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
164
+ }
165
+
166
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
167
+ _mm256_macc_pd(__m256d __A, __m256d __B, __m256d __C)
168
+ {
169
+ return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
170
+ }
171
+
172
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
173
+ _mm256_msub_ps(__m256 __A, __m256 __B, __m256 __C)
174
+ {
175
+ return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
176
+ }
177
+
178
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
179
+ _mm256_msub_pd(__m256d __A, __m256d __B, __m256d __C)
180
+ {
181
+ return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
182
+ }
183
+
184
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
185
+ _mm256_nmacc_ps(__m256 __A, __m256 __B, __m256 __C)
186
+ {
187
+ return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
188
+ }
189
+
190
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
191
+ _mm256_nmacc_pd(__m256d __A, __m256d __B, __m256d __C)
192
+ {
193
+ return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
194
+ }
195
+
196
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
197
+ _mm256_nmsub_ps(__m256 __A, __m256 __B, __m256 __C)
198
+ {
199
+ return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
200
+ }
201
+
202
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
203
+ _mm256_nmsub_pd(__m256d __A, __m256d __B, __m256d __C)
204
+ {
205
+ return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
206
+ }
207
+
208
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
209
+ _mm256_maddsub_ps(__m256 __A, __m256 __B, __m256 __C)
210
+ {
211
+ return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
212
+ }
213
+
214
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
215
+ _mm256_maddsub_pd(__m256d __A, __m256d __B, __m256d __C)
216
+ {
217
+ return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
218
+ }
219
+
220
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
221
+ _mm256_msubadd_ps(__m256 __A, __m256 __B, __m256 __C)
222
+ {
223
+ return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
224
+ }
225
+
226
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
227
+ _mm256_msubadd_pd(__m256d __A, __m256d __B, __m256d __C)
228
+ {
229
+ return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
230
+ }
231
+
232
+ #undef __DEFAULT_FN_ATTRS
233
+
234
+ #endif /* __FMA4__ */
235
+
236
+ #endif /* __FMA4INTRIN_H */
@@ -0,0 +1,234 @@
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
+ /* Define the default attributes for the functions in this file. */
36
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
37
+
38
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
39
+ _mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C)
40
+ {
41
+ return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
42
+ }
43
+
44
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
45
+ _mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C)
46
+ {
47
+ return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
48
+ }
49
+
50
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
51
+ _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C)
52
+ {
53
+ return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
54
+ }
55
+
56
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
57
+ _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C)
58
+ {
59
+ return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
60
+ }
61
+
62
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
63
+ _mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C)
64
+ {
65
+ return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
66
+ }
67
+
68
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
69
+ _mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C)
70
+ {
71
+ return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
72
+ }
73
+
74
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
75
+ _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C)
76
+ {
77
+ return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
78
+ }
79
+
80
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
81
+ _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C)
82
+ {
83
+ return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
84
+ }
85
+
86
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
87
+ _mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C)
88
+ {
89
+ return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
90
+ }
91
+
92
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
93
+ _mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C)
94
+ {
95
+ return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
96
+ }
97
+
98
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
99
+ _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C)
100
+ {
101
+ return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
102
+ }
103
+
104
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
105
+ _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C)
106
+ {
107
+ return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
108
+ }
109
+
110
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
111
+ _mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C)
112
+ {
113
+ return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
114
+ }
115
+
116
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
117
+ _mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C)
118
+ {
119
+ return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
120
+ }
121
+
122
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
123
+ _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C)
124
+ {
125
+ return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
126
+ }
127
+
128
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
129
+ _mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C)
130
+ {
131
+ return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
132
+ }
133
+
134
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
135
+ _mm_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C)
136
+ {
137
+ return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
138
+ }
139
+
140
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
141
+ _mm_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C)
142
+ {
143
+ return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
144
+ }
145
+
146
+ static __inline__ __m128 __DEFAULT_FN_ATTRS
147
+ _mm_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C)
148
+ {
149
+ return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
150
+ }
151
+
152
+ static __inline__ __m128d __DEFAULT_FN_ATTRS
153
+ _mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C)
154
+ {
155
+ return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
156
+ }
157
+
158
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
159
+ _mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C)
160
+ {
161
+ return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
162
+ }
163
+
164
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
165
+ _mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C)
166
+ {
167
+ return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
168
+ }
169
+
170
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
171
+ _mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C)
172
+ {
173
+ return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
174
+ }
175
+
176
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
177
+ _mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C)
178
+ {
179
+ return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
180
+ }
181
+
182
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
183
+ _mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C)
184
+ {
185
+ return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
186
+ }
187
+
188
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
189
+ _mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C)
190
+ {
191
+ return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
192
+ }
193
+
194
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
195
+ _mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C)
196
+ {
197
+ return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
198
+ }
199
+
200
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
201
+ _mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C)
202
+ {
203
+ return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
204
+ }
205
+
206
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
207
+ _mm256_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C)
208
+ {
209
+ return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
210
+ }
211
+
212
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
213
+ _mm256_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C)
214
+ {
215
+ return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
216
+ }
217
+
218
+ static __inline__ __m256 __DEFAULT_FN_ATTRS
219
+ _mm256_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C)
220
+ {
221
+ return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
222
+ }
223
+
224
+ static __inline__ __m256d __DEFAULT_FN_ATTRS
225
+ _mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C)
226
+ {
227
+ return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
228
+ }
229
+
230
+ #undef __DEFAULT_FN_ATTRS
231
+
232
+ #endif /* __FMA__ */
233
+
234
+ #endif /* __FMAINTRIN_H */