xcodebuild-helper 1.0.0

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 (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 */