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.
- checksums.yaml +7 -0
- data/.codeclimate.yml +20 -0
- data/.gitignore +1 -0
- data/.rspec +2 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +110 -0
- data/Guardfile +18 -0
- data/README.md +7 -0
- data/Rakefile +7 -0
- data/TODO.md +3 -0
- data/bin/oclint +5 -0
- data/bin/oclint-0.8 +5 -0
- data/bin/oclint-json-compilation-database +5 -0
- data/bin/oclint-xcodebuild +5 -0
- data/externals/oclint/LICENSE +69 -0
- data/externals/oclint/bin/oclint +0 -0
- data/externals/oclint/bin/oclint-0.10.2 +0 -0
- data/externals/oclint/bin/oclint-json-compilation-database +88 -0
- data/externals/oclint/bin/oclint-xcodebuild +218 -0
- data/externals/oclint/lib/clang/3.7.0/asan_blacklist.txt +13 -0
- data/externals/oclint/lib/clang/3.7.0/include/Intrin.h +958 -0
- data/externals/oclint/lib/clang/3.7.0/include/__stddef_max_align_t.h +43 -0
- data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_aes.h +72 -0
- data/externals/oclint/lib/clang/3.7.0/include/__wmmintrin_pclmul.h +34 -0
- data/externals/oclint/lib/clang/3.7.0/include/adxintrin.h +88 -0
- data/externals/oclint/lib/clang/3.7.0/include/altivec.h +13528 -0
- data/externals/oclint/lib/clang/3.7.0/include/ammintrin.h +215 -0
- data/externals/oclint/lib/clang/3.7.0/include/arm_acle.h +304 -0
- data/externals/oclint/lib/clang/3.7.0/include/arm_neon.h +68419 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx2intrin.h +1256 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512bwintrin.h +1250 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512cdintrin.h +131 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512dqintrin.h +242 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512erintrin.h +285 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512fintrin.h +2457 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512vlbwintrin.h +1907 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512vldqintrin.h +353 -0
- data/externals/oclint/lib/clang/3.7.0/include/avx512vlintrin.h +1982 -0
- data/externals/oclint/lib/clang/3.7.0/include/avxintrin.h +1308 -0
- data/externals/oclint/lib/clang/3.7.0/include/bmi2intrin.h +99 -0
- data/externals/oclint/lib/clang/3.7.0/include/bmiintrin.h +153 -0
- data/externals/oclint/lib/clang/3.7.0/include/cpuid.h +209 -0
- data/externals/oclint/lib/clang/3.7.0/include/cuda_builtin_vars.h +110 -0
- data/externals/oclint/lib/clang/3.7.0/include/emmintrin.h +1480 -0
- data/externals/oclint/lib/clang/3.7.0/include/f16cintrin.h +63 -0
- data/externals/oclint/lib/clang/3.7.0/include/float.h +124 -0
- data/externals/oclint/lib/clang/3.7.0/include/fma4intrin.h +236 -0
- data/externals/oclint/lib/clang/3.7.0/include/fmaintrin.h +234 -0
- data/externals/oclint/lib/clang/3.7.0/include/fxsrintrin.h +55 -0
- data/externals/oclint/lib/clang/3.7.0/include/htmintrin.h +226 -0
- data/externals/oclint/lib/clang/3.7.0/include/htmxlintrin.h +363 -0
- data/externals/oclint/lib/clang/3.7.0/include/ia32intrin.h +101 -0
- data/externals/oclint/lib/clang/3.7.0/include/immintrin.h +203 -0
- data/externals/oclint/lib/clang/3.7.0/include/inttypes.h +102 -0
- data/externals/oclint/lib/clang/3.7.0/include/iso646.h +43 -0
- data/externals/oclint/lib/clang/3.7.0/include/limits.h +118 -0
- data/externals/oclint/lib/clang/3.7.0/include/lzcntintrin.h +72 -0
- data/externals/oclint/lib/clang/3.7.0/include/mm3dnow.h +167 -0
- data/externals/oclint/lib/clang/3.7.0/include/mm_malloc.h +75 -0
- data/externals/oclint/lib/clang/3.7.0/include/mmintrin.h +507 -0
- data/externals/oclint/lib/clang/3.7.0/include/module.modulemap +196 -0
- data/externals/oclint/lib/clang/3.7.0/include/nmmintrin.h +35 -0
- data/externals/oclint/lib/clang/3.7.0/include/pmmintrin.h +122 -0
- data/externals/oclint/lib/clang/3.7.0/include/popcntintrin.h +50 -0
- data/externals/oclint/lib/clang/3.7.0/include/prfchwintrin.h +39 -0
- data/externals/oclint/lib/clang/3.7.0/include/rdseedintrin.h +59 -0
- data/externals/oclint/lib/clang/3.7.0/include/rtmintrin.h +59 -0
- data/externals/oclint/lib/clang/3.7.0/include/s390intrin.h +39 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/allocator_interface.h +66 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/asan_interface.h +155 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h +118 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/coverage_interface.h +63 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h +114 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h +3070 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/lsan_interface.h +84 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/msan_interface.h +107 -0
- data/externals/oclint/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h +222 -0
- data/externals/oclint/lib/clang/3.7.0/include/shaintrin.h +79 -0
- data/externals/oclint/lib/clang/3.7.0/include/smmintrin.h +487 -0
- data/externals/oclint/lib/clang/3.7.0/include/stdalign.h +35 -0
- data/externals/oclint/lib/clang/3.7.0/include/stdarg.h +52 -0
- data/externals/oclint/lib/clang/3.7.0/include/stdatomic.h +190 -0
- data/externals/oclint/lib/clang/3.7.0/include/stdbool.h +44 -0
- data/externals/oclint/lib/clang/3.7.0/include/stddef.h +137 -0
- data/externals/oclint/lib/clang/3.7.0/include/stdint.h +707 -0
- data/externals/oclint/lib/clang/3.7.0/include/stdnoreturn.h +30 -0
- data/externals/oclint/lib/clang/3.7.0/include/tbmintrin.h +154 -0
- data/externals/oclint/lib/clang/3.7.0/include/tgmath.h +1374 -0
- data/externals/oclint/lib/clang/3.7.0/include/tmmintrin.h +230 -0
- data/externals/oclint/lib/clang/3.7.0/include/unwind.h +282 -0
- data/externals/oclint/lib/clang/3.7.0/include/vadefs.h +65 -0
- data/externals/oclint/lib/clang/3.7.0/include/varargs.h +26 -0
- data/externals/oclint/lib/clang/3.7.0/include/vecintrin.h +8946 -0
- data/externals/oclint/lib/clang/3.7.0/include/wmmintrin.h +42 -0
- data/externals/oclint/lib/clang/3.7.0/include/x86intrin.h +81 -0
- data/externals/oclint/lib/clang/3.7.0/include/xmmintrin.h +1008 -0
- data/externals/oclint/lib/clang/3.7.0/include/xopintrin.h +809 -0
- data/externals/oclint/lib/clang/3.7.0/include/xtestintrin.h +41 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-i386.a +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.builtins-x86_64.a +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.profile_osx.a +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.safestack_osx.a +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
- data/externals/oclint/lib/clang/3.7.0/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libHTMLReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libJSONReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libPMDReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libTextReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libXMLReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/reporters/libXcodeReporter.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libAvoidBranchingStatementAsLastInLoopRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libAvoidDefaultArgumentsOnVirtualMethodsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libAvoidPrivateStaticMembersRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBaseClassDestructorShouldBeVirtualOrProtectedRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBitwiseOperatorInConditionalRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBrokenNullCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libBrokenOddnessCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libCollapsibleIfStatementsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libConstantConditionalOperatorRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libConstantIfExpressionRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libCoveredSwitchStatementsDontNeedDefaultRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libCyclomaticComplexityRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDeadCodeRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDefaultLabelNotLastInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDestructorOfVirtualClassRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libDoubleNegativeRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyCatchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyDoWhileStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyElseBlockRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyFinallyStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyForStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyIfStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptySwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyTryStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libEmptyWhileStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libForLoopShouldBeWhileLoopRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libGotoStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libInvertedLogicRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libJumbledIncrementerRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongClassRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongLineRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongMethodRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libLongVariableNameRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libMisplacedNullCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libMissingBreakInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libMultipleUnaryOperatorRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNPathComplexityRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNcssMethodCountRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNestedBlockDepthRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libNonCaseLabelInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCAssignIvarOutsideAccessorsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCBoxedExpressionsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCContainerLiteralsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCNSNumberLiteralsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCObjectSubscriptingRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCVerifyIsEqualHashRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCVerifyMustCallSuperRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCVerifyProhibitedCallRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCVerifyProtectedMethodRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libObjCVerifySubclassMustImplementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libParameterReassignmentRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libPreferEarlyExitRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantConditionalOperatorRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantIfStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantLocalVariableRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libRedundantNilCheckRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libReturnFromFinallyBlockRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libShortVariableNameRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libSwitchStatementsShouldHaveDefaultRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libThrowExceptionFromFinallyBlockRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooFewBranchesInSwitchStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooManyFieldsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooManyMethodsRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libTooManyParametersRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnnecessaryElseStatementRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnnecessaryNullCheckForCXXDeallocRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnusedLocalVariableRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUnusedMethodParameterRule.dylib +0 -0
- data/externals/oclint/lib/oclint/rules/libUselessParenthesesRule.dylib +0 -0
- data/lib/coverage_plan.rb +19 -0
- data/lib/device.rb +27 -0
- data/lib/execute.rb +7 -0
- data/lib/lint_plan.rb +41 -0
- data/lib/rules.rb +23 -0
- data/lib/test_plan.rb +11 -0
- data/lib/version.rb +3 -0
- data/lib/xcode.rb +128 -0
- data/lib/xcodebuild-helper.rb +110 -0
- data/spec/coverage_plan_spec.rb +18 -0
- data/spec/device_spec.rb +24 -0
- data/spec/lint_plan_spec.rb +35 -0
- data/spec/rule_spec.rb +37 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/test_plan_spec.rb +11 -0
- data/spec/xcode_dsl_actions_spec.rb +136 -0
- data/spec/xcode_dsl_spec.rb +176 -0
- data/spec/xcode_spec.rb +79 -0
- data/xcodebuild-helper.gemspec +26 -0
- metadata +327 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/*===---- limits.h - Standard header for integer sizes --------------------===*\
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) 2009 Chris Lattner
|
|
4
|
+
*
|
|
5
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
* in the Software without restriction, including without limitation the rights
|
|
8
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
* furnished to do so, subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be included in
|
|
13
|
+
* all copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
* THE SOFTWARE.
|
|
22
|
+
*
|
|
23
|
+
\*===----------------------------------------------------------------------===*/
|
|
24
|
+
|
|
25
|
+
#ifndef __CLANG_LIMITS_H
|
|
26
|
+
#define __CLANG_LIMITS_H
|
|
27
|
+
|
|
28
|
+
/* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
|
|
29
|
+
Avert this #include_next madness. */
|
|
30
|
+
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
|
|
31
|
+
#define _GCC_LIMITS_H_
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
/* System headers include a number of constants from POSIX in <limits.h>.
|
|
35
|
+
Include it if we're hosted. */
|
|
36
|
+
#if __STDC_HOSTED__ && __has_include_next(<limits.h>)
|
|
37
|
+
#include_next <limits.h>
|
|
38
|
+
#endif
|
|
39
|
+
|
|
40
|
+
/* Many system headers try to "help us out" by defining these. No really, we
|
|
41
|
+
know how big each datatype is. */
|
|
42
|
+
#undef SCHAR_MIN
|
|
43
|
+
#undef SCHAR_MAX
|
|
44
|
+
#undef UCHAR_MAX
|
|
45
|
+
#undef SHRT_MIN
|
|
46
|
+
#undef SHRT_MAX
|
|
47
|
+
#undef USHRT_MAX
|
|
48
|
+
#undef INT_MIN
|
|
49
|
+
#undef INT_MAX
|
|
50
|
+
#undef UINT_MAX
|
|
51
|
+
#undef LONG_MIN
|
|
52
|
+
#undef LONG_MAX
|
|
53
|
+
#undef ULONG_MAX
|
|
54
|
+
|
|
55
|
+
#undef CHAR_BIT
|
|
56
|
+
#undef CHAR_MIN
|
|
57
|
+
#undef CHAR_MAX
|
|
58
|
+
|
|
59
|
+
/* C90/99 5.2.4.2.1 */
|
|
60
|
+
#define SCHAR_MAX __SCHAR_MAX__
|
|
61
|
+
#define SHRT_MAX __SHRT_MAX__
|
|
62
|
+
#define INT_MAX __INT_MAX__
|
|
63
|
+
#define LONG_MAX __LONG_MAX__
|
|
64
|
+
|
|
65
|
+
#define SCHAR_MIN (-__SCHAR_MAX__-1)
|
|
66
|
+
#define SHRT_MIN (-__SHRT_MAX__ -1)
|
|
67
|
+
#define INT_MIN (-__INT_MAX__ -1)
|
|
68
|
+
#define LONG_MIN (-__LONG_MAX__ -1L)
|
|
69
|
+
|
|
70
|
+
#define UCHAR_MAX (__SCHAR_MAX__*2 +1)
|
|
71
|
+
#define USHRT_MAX (__SHRT_MAX__ *2 +1)
|
|
72
|
+
#define UINT_MAX (__INT_MAX__ *2U +1U)
|
|
73
|
+
#define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
|
|
74
|
+
|
|
75
|
+
#ifndef MB_LEN_MAX
|
|
76
|
+
#define MB_LEN_MAX 1
|
|
77
|
+
#endif
|
|
78
|
+
|
|
79
|
+
#define CHAR_BIT __CHAR_BIT__
|
|
80
|
+
|
|
81
|
+
#ifdef __CHAR_UNSIGNED__ /* -funsigned-char */
|
|
82
|
+
#define CHAR_MIN 0
|
|
83
|
+
#define CHAR_MAX UCHAR_MAX
|
|
84
|
+
#else
|
|
85
|
+
#define CHAR_MIN SCHAR_MIN
|
|
86
|
+
#define CHAR_MAX __SCHAR_MAX__
|
|
87
|
+
#endif
|
|
88
|
+
|
|
89
|
+
/* C99 5.2.4.2.1: Added long long.
|
|
90
|
+
C++11 18.3.3.2: same contents as the Standard C Library header <limits.h>.
|
|
91
|
+
*/
|
|
92
|
+
#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
|
|
93
|
+
|
|
94
|
+
#undef LLONG_MIN
|
|
95
|
+
#undef LLONG_MAX
|
|
96
|
+
#undef ULLONG_MAX
|
|
97
|
+
|
|
98
|
+
#define LLONG_MAX __LONG_LONG_MAX__
|
|
99
|
+
#define LLONG_MIN (-__LONG_LONG_MAX__-1LL)
|
|
100
|
+
#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad
|
|
104
|
+
that we don't have something like #pragma poison that could be used to
|
|
105
|
+
deprecate a macro - the code should just use LLONG_MAX and friends.
|
|
106
|
+
*/
|
|
107
|
+
#if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__)
|
|
108
|
+
|
|
109
|
+
#undef LONG_LONG_MIN
|
|
110
|
+
#undef LONG_LONG_MAX
|
|
111
|
+
#undef ULONG_LONG_MAX
|
|
112
|
+
|
|
113
|
+
#define LONG_LONG_MAX __LONG_LONG_MAX__
|
|
114
|
+
#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL)
|
|
115
|
+
#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
|
|
116
|
+
#endif
|
|
117
|
+
|
|
118
|
+
#endif /* __CLANG_LIMITS_H */
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*===---- lzcntintrin.h - LZCNT 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 <lzcntintrin.h> directly; include <x86intrin.h> instead."
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
#ifndef __LZCNT__
|
|
29
|
+
# error "LZCNT instruction is not enabled"
|
|
30
|
+
#endif /* __LZCNT__ */
|
|
31
|
+
|
|
32
|
+
#ifndef __LZCNTINTRIN_H
|
|
33
|
+
#define __LZCNTINTRIN_H
|
|
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__ unsigned short __DEFAULT_FN_ATTRS
|
|
39
|
+
__lzcnt16(unsigned short __X)
|
|
40
|
+
{
|
|
41
|
+
return __X ? __builtin_clzs(__X) : 16;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
45
|
+
__lzcnt32(unsigned int __X)
|
|
46
|
+
{
|
|
47
|
+
return __X ? __builtin_clz(__X) : 32;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
51
|
+
_lzcnt_u32(unsigned int __X)
|
|
52
|
+
{
|
|
53
|
+
return __X ? __builtin_clz(__X) : 32;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#ifdef __x86_64__
|
|
57
|
+
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
58
|
+
__lzcnt64(unsigned long long __X)
|
|
59
|
+
{
|
|
60
|
+
return __X ? __builtin_clzll(__X) : 64;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static __inline__ unsigned long long __DEFAULT_FN_ATTRS
|
|
64
|
+
_lzcnt_u64(unsigned long long __X)
|
|
65
|
+
{
|
|
66
|
+
return __X ? __builtin_clzll(__X) : 64;
|
|
67
|
+
}
|
|
68
|
+
#endif
|
|
69
|
+
|
|
70
|
+
#undef __DEFAULT_FN_ATTRS
|
|
71
|
+
|
|
72
|
+
#endif /* __LZCNTINTRIN_H */
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/*===---- mm3dnow.h - 3DNow! 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 _MM3DNOW_H_INCLUDED
|
|
25
|
+
#define _MM3DNOW_H_INCLUDED
|
|
26
|
+
|
|
27
|
+
#include <mmintrin.h>
|
|
28
|
+
#include <prfchwintrin.h>
|
|
29
|
+
|
|
30
|
+
typedef float __v2sf __attribute__((__vector_size__(8)));
|
|
31
|
+
|
|
32
|
+
/* Define the default attributes for the functions in this file. */
|
|
33
|
+
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
|
|
34
|
+
|
|
35
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
36
|
+
_m_femms() {
|
|
37
|
+
__builtin_ia32_femms();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
41
|
+
_m_pavgusb(__m64 __m1, __m64 __m2) {
|
|
42
|
+
return (__m64)__builtin_ia32_pavgusb((__v8qi)__m1, (__v8qi)__m2);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
46
|
+
_m_pf2id(__m64 __m) {
|
|
47
|
+
return (__m64)__builtin_ia32_pf2id((__v2sf)__m);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
51
|
+
_m_pfacc(__m64 __m1, __m64 __m2) {
|
|
52
|
+
return (__m64)__builtin_ia32_pfacc((__v2sf)__m1, (__v2sf)__m2);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
56
|
+
_m_pfadd(__m64 __m1, __m64 __m2) {
|
|
57
|
+
return (__m64)__builtin_ia32_pfadd((__v2sf)__m1, (__v2sf)__m2);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
61
|
+
_m_pfcmpeq(__m64 __m1, __m64 __m2) {
|
|
62
|
+
return (__m64)__builtin_ia32_pfcmpeq((__v2sf)__m1, (__v2sf)__m2);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
66
|
+
_m_pfcmpge(__m64 __m1, __m64 __m2) {
|
|
67
|
+
return (__m64)__builtin_ia32_pfcmpge((__v2sf)__m1, (__v2sf)__m2);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
71
|
+
_m_pfcmpgt(__m64 __m1, __m64 __m2) {
|
|
72
|
+
return (__m64)__builtin_ia32_pfcmpgt((__v2sf)__m1, (__v2sf)__m2);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
76
|
+
_m_pfmax(__m64 __m1, __m64 __m2) {
|
|
77
|
+
return (__m64)__builtin_ia32_pfmax((__v2sf)__m1, (__v2sf)__m2);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
81
|
+
_m_pfmin(__m64 __m1, __m64 __m2) {
|
|
82
|
+
return (__m64)__builtin_ia32_pfmin((__v2sf)__m1, (__v2sf)__m2);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
86
|
+
_m_pfmul(__m64 __m1, __m64 __m2) {
|
|
87
|
+
return (__m64)__builtin_ia32_pfmul((__v2sf)__m1, (__v2sf)__m2);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
91
|
+
_m_pfrcp(__m64 __m) {
|
|
92
|
+
return (__m64)__builtin_ia32_pfrcp((__v2sf)__m);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
96
|
+
_m_pfrcpit1(__m64 __m1, __m64 __m2) {
|
|
97
|
+
return (__m64)__builtin_ia32_pfrcpit1((__v2sf)__m1, (__v2sf)__m2);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
101
|
+
_m_pfrcpit2(__m64 __m1, __m64 __m2) {
|
|
102
|
+
return (__m64)__builtin_ia32_pfrcpit2((__v2sf)__m1, (__v2sf)__m2);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
106
|
+
_m_pfrsqrt(__m64 __m) {
|
|
107
|
+
return (__m64)__builtin_ia32_pfrsqrt((__v2sf)__m);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
111
|
+
_m_pfrsqrtit1(__m64 __m1, __m64 __m2) {
|
|
112
|
+
return (__m64)__builtin_ia32_pfrsqit1((__v2sf)__m1, (__v2sf)__m2);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
116
|
+
_m_pfsub(__m64 __m1, __m64 __m2) {
|
|
117
|
+
return (__m64)__builtin_ia32_pfsub((__v2sf)__m1, (__v2sf)__m2);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
121
|
+
_m_pfsubr(__m64 __m1, __m64 __m2) {
|
|
122
|
+
return (__m64)__builtin_ia32_pfsubr((__v2sf)__m1, (__v2sf)__m2);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
126
|
+
_m_pi2fd(__m64 __m) {
|
|
127
|
+
return (__m64)__builtin_ia32_pi2fd((__v2si)__m);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
131
|
+
_m_pmulhrw(__m64 __m1, __m64 __m2) {
|
|
132
|
+
return (__m64)__builtin_ia32_pmulhrw((__v4hi)__m1, (__v4hi)__m2);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
136
|
+
_m_pf2iw(__m64 __m) {
|
|
137
|
+
return (__m64)__builtin_ia32_pf2iw((__v2sf)__m);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
141
|
+
_m_pfnacc(__m64 __m1, __m64 __m2) {
|
|
142
|
+
return (__m64)__builtin_ia32_pfnacc((__v2sf)__m1, (__v2sf)__m2);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
146
|
+
_m_pfpnacc(__m64 __m1, __m64 __m2) {
|
|
147
|
+
return (__m64)__builtin_ia32_pfpnacc((__v2sf)__m1, (__v2sf)__m2);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
151
|
+
_m_pi2fw(__m64 __m) {
|
|
152
|
+
return (__m64)__builtin_ia32_pi2fw((__v2si)__m);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
156
|
+
_m_pswapdsf(__m64 __m) {
|
|
157
|
+
return (__m64)__builtin_ia32_pswapdsf((__v2sf)__m);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
161
|
+
_m_pswapdsi(__m64 __m) {
|
|
162
|
+
return (__m64)__builtin_ia32_pswapdsi((__v2si)__m);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
#undef __DEFAULT_FN_ATTRS
|
|
166
|
+
|
|
167
|
+
#endif
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*===---- mm_malloc.h - Allocating and Freeing Aligned Memory Blocks -------===
|
|
2
|
+
*
|
|
3
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
* in the Software without restriction, including without limitation the rights
|
|
6
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
* furnished to do so, subject to the following conditions:
|
|
9
|
+
*
|
|
10
|
+
* The above copyright notice and this permission notice shall be included in
|
|
11
|
+
* all copies or substantial portions of the Software.
|
|
12
|
+
*
|
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
+
* THE SOFTWARE.
|
|
20
|
+
*
|
|
21
|
+
*===-----------------------------------------------------------------------===
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef __MM_MALLOC_H
|
|
25
|
+
#define __MM_MALLOC_H
|
|
26
|
+
|
|
27
|
+
#include <stdlib.h>
|
|
28
|
+
|
|
29
|
+
#ifdef _WIN32
|
|
30
|
+
#include <malloc.h>
|
|
31
|
+
#else
|
|
32
|
+
#ifndef __cplusplus
|
|
33
|
+
extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
|
|
34
|
+
#else
|
|
35
|
+
// Some systems (e.g. those with GNU libc) declare posix_memalign with an
|
|
36
|
+
// exception specifier. Via an "egregious workaround" in
|
|
37
|
+
// Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid
|
|
38
|
+
// redeclaration of glibc's declaration.
|
|
39
|
+
extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
|
|
40
|
+
#endif
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#if !(defined(_WIN32) && defined(_mm_malloc))
|
|
44
|
+
static __inline__ void *__attribute__((__always_inline__, __nodebug__,
|
|
45
|
+
__malloc__))
|
|
46
|
+
_mm_malloc(size_t __size, size_t __align)
|
|
47
|
+
{
|
|
48
|
+
if (__align == 1) {
|
|
49
|
+
return malloc(__size);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!(__align & (__align - 1)) && __align < sizeof(void *))
|
|
53
|
+
__align = sizeof(void *);
|
|
54
|
+
|
|
55
|
+
void *__mallocedMemory;
|
|
56
|
+
#if defined(__MINGW32__)
|
|
57
|
+
__mallocedMemory = __mingw_aligned_malloc(__size, __align);
|
|
58
|
+
#elif defined(_WIN32)
|
|
59
|
+
__mallocedMemory = _aligned_malloc(__size, __align);
|
|
60
|
+
#else
|
|
61
|
+
if (posix_memalign(&__mallocedMemory, __align, __size))
|
|
62
|
+
return 0;
|
|
63
|
+
#endif
|
|
64
|
+
|
|
65
|
+
return __mallocedMemory;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static __inline__ void __attribute__((__always_inline__, __nodebug__))
|
|
69
|
+
_mm_free(void *__p)
|
|
70
|
+
{
|
|
71
|
+
free(__p);
|
|
72
|
+
}
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
#endif /* __MM_MALLOC_H */
|
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
/*===---- mmintrin.h - MMX intrinsics --------------------------------------===
|
|
2
|
+
*
|
|
3
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
* in the Software without restriction, including without limitation the rights
|
|
6
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
* furnished to do so, subject to the following conditions:
|
|
9
|
+
*
|
|
10
|
+
* The above copyright notice and this permission notice shall be included in
|
|
11
|
+
* all copies or substantial portions of the Software.
|
|
12
|
+
*
|
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
+
* THE SOFTWARE.
|
|
20
|
+
*
|
|
21
|
+
*===-----------------------------------------------------------------------===
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef __MMINTRIN_H
|
|
25
|
+
#define __MMINTRIN_H
|
|
26
|
+
|
|
27
|
+
#ifndef __MMX__
|
|
28
|
+
#error "MMX instruction set not enabled"
|
|
29
|
+
#else
|
|
30
|
+
|
|
31
|
+
typedef long long __m64 __attribute__((__vector_size__(8)));
|
|
32
|
+
|
|
33
|
+
typedef int __v2si __attribute__((__vector_size__(8)));
|
|
34
|
+
typedef short __v4hi __attribute__((__vector_size__(8)));
|
|
35
|
+
typedef char __v8qi __attribute__((__vector_size__(8)));
|
|
36
|
+
|
|
37
|
+
/* Define the default attributes for the functions in this file. */
|
|
38
|
+
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
|
|
39
|
+
|
|
40
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
41
|
+
_mm_empty(void)
|
|
42
|
+
{
|
|
43
|
+
__builtin_ia32_emms();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
47
|
+
_mm_cvtsi32_si64(int __i)
|
|
48
|
+
{
|
|
49
|
+
return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static __inline__ int __DEFAULT_FN_ATTRS
|
|
53
|
+
_mm_cvtsi64_si32(__m64 __m)
|
|
54
|
+
{
|
|
55
|
+
return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
59
|
+
_mm_cvtsi64_m64(long long __i)
|
|
60
|
+
{
|
|
61
|
+
return (__m64)__i;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static __inline__ long long __DEFAULT_FN_ATTRS
|
|
65
|
+
_mm_cvtm64_si64(__m64 __m)
|
|
66
|
+
{
|
|
67
|
+
return (long long)__m;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
71
|
+
_mm_packs_pi16(__m64 __m1, __m64 __m2)
|
|
72
|
+
{
|
|
73
|
+
return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
77
|
+
_mm_packs_pi32(__m64 __m1, __m64 __m2)
|
|
78
|
+
{
|
|
79
|
+
return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
83
|
+
_mm_packs_pu16(__m64 __m1, __m64 __m2)
|
|
84
|
+
{
|
|
85
|
+
return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
89
|
+
_mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
|
|
90
|
+
{
|
|
91
|
+
return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
95
|
+
_mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
|
|
96
|
+
{
|
|
97
|
+
return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
101
|
+
_mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
|
|
102
|
+
{
|
|
103
|
+
return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
107
|
+
_mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
|
|
108
|
+
{
|
|
109
|
+
return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
113
|
+
_mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
|
|
114
|
+
{
|
|
115
|
+
return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
119
|
+
_mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
|
|
120
|
+
{
|
|
121
|
+
return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
125
|
+
_mm_add_pi8(__m64 __m1, __m64 __m2)
|
|
126
|
+
{
|
|
127
|
+
return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
131
|
+
_mm_add_pi16(__m64 __m1, __m64 __m2)
|
|
132
|
+
{
|
|
133
|
+
return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
137
|
+
_mm_add_pi32(__m64 __m1, __m64 __m2)
|
|
138
|
+
{
|
|
139
|
+
return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
143
|
+
_mm_adds_pi8(__m64 __m1, __m64 __m2)
|
|
144
|
+
{
|
|
145
|
+
return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
149
|
+
_mm_adds_pi16(__m64 __m1, __m64 __m2)
|
|
150
|
+
{
|
|
151
|
+
return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
155
|
+
_mm_adds_pu8(__m64 __m1, __m64 __m2)
|
|
156
|
+
{
|
|
157
|
+
return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
161
|
+
_mm_adds_pu16(__m64 __m1, __m64 __m2)
|
|
162
|
+
{
|
|
163
|
+
return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
167
|
+
_mm_sub_pi8(__m64 __m1, __m64 __m2)
|
|
168
|
+
{
|
|
169
|
+
return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
173
|
+
_mm_sub_pi16(__m64 __m1, __m64 __m2)
|
|
174
|
+
{
|
|
175
|
+
return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
179
|
+
_mm_sub_pi32(__m64 __m1, __m64 __m2)
|
|
180
|
+
{
|
|
181
|
+
return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
185
|
+
_mm_subs_pi8(__m64 __m1, __m64 __m2)
|
|
186
|
+
{
|
|
187
|
+
return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
191
|
+
_mm_subs_pi16(__m64 __m1, __m64 __m2)
|
|
192
|
+
{
|
|
193
|
+
return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
197
|
+
_mm_subs_pu8(__m64 __m1, __m64 __m2)
|
|
198
|
+
{
|
|
199
|
+
return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
203
|
+
_mm_subs_pu16(__m64 __m1, __m64 __m2)
|
|
204
|
+
{
|
|
205
|
+
return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
209
|
+
_mm_madd_pi16(__m64 __m1, __m64 __m2)
|
|
210
|
+
{
|
|
211
|
+
return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
215
|
+
_mm_mulhi_pi16(__m64 __m1, __m64 __m2)
|
|
216
|
+
{
|
|
217
|
+
return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
221
|
+
_mm_mullo_pi16(__m64 __m1, __m64 __m2)
|
|
222
|
+
{
|
|
223
|
+
return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
227
|
+
_mm_sll_pi16(__m64 __m, __m64 __count)
|
|
228
|
+
{
|
|
229
|
+
return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
233
|
+
_mm_slli_pi16(__m64 __m, int __count)
|
|
234
|
+
{
|
|
235
|
+
return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
239
|
+
_mm_sll_pi32(__m64 __m, __m64 __count)
|
|
240
|
+
{
|
|
241
|
+
return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
245
|
+
_mm_slli_pi32(__m64 __m, int __count)
|
|
246
|
+
{
|
|
247
|
+
return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
251
|
+
_mm_sll_si64(__m64 __m, __m64 __count)
|
|
252
|
+
{
|
|
253
|
+
return (__m64)__builtin_ia32_psllq(__m, __count);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
257
|
+
_mm_slli_si64(__m64 __m, int __count)
|
|
258
|
+
{
|
|
259
|
+
return (__m64)__builtin_ia32_psllqi(__m, __count);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
263
|
+
_mm_sra_pi16(__m64 __m, __m64 __count)
|
|
264
|
+
{
|
|
265
|
+
return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
269
|
+
_mm_srai_pi16(__m64 __m, int __count)
|
|
270
|
+
{
|
|
271
|
+
return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
275
|
+
_mm_sra_pi32(__m64 __m, __m64 __count)
|
|
276
|
+
{
|
|
277
|
+
return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
281
|
+
_mm_srai_pi32(__m64 __m, int __count)
|
|
282
|
+
{
|
|
283
|
+
return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
287
|
+
_mm_srl_pi16(__m64 __m, __m64 __count)
|
|
288
|
+
{
|
|
289
|
+
return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
293
|
+
_mm_srli_pi16(__m64 __m, int __count)
|
|
294
|
+
{
|
|
295
|
+
return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
299
|
+
_mm_srl_pi32(__m64 __m, __m64 __count)
|
|
300
|
+
{
|
|
301
|
+
return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
305
|
+
_mm_srli_pi32(__m64 __m, int __count)
|
|
306
|
+
{
|
|
307
|
+
return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
311
|
+
_mm_srl_si64(__m64 __m, __m64 __count)
|
|
312
|
+
{
|
|
313
|
+
return (__m64)__builtin_ia32_psrlq(__m, __count);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
317
|
+
_mm_srli_si64(__m64 __m, int __count)
|
|
318
|
+
{
|
|
319
|
+
return (__m64)__builtin_ia32_psrlqi(__m, __count);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
323
|
+
_mm_and_si64(__m64 __m1, __m64 __m2)
|
|
324
|
+
{
|
|
325
|
+
return __builtin_ia32_pand(__m1, __m2);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
329
|
+
_mm_andnot_si64(__m64 __m1, __m64 __m2)
|
|
330
|
+
{
|
|
331
|
+
return __builtin_ia32_pandn(__m1, __m2);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
335
|
+
_mm_or_si64(__m64 __m1, __m64 __m2)
|
|
336
|
+
{
|
|
337
|
+
return __builtin_ia32_por(__m1, __m2);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
341
|
+
_mm_xor_si64(__m64 __m1, __m64 __m2)
|
|
342
|
+
{
|
|
343
|
+
return __builtin_ia32_pxor(__m1, __m2);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
347
|
+
_mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
|
|
348
|
+
{
|
|
349
|
+
return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
353
|
+
_mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
|
|
354
|
+
{
|
|
355
|
+
return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
359
|
+
_mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
|
|
360
|
+
{
|
|
361
|
+
return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
365
|
+
_mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
|
|
366
|
+
{
|
|
367
|
+
return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
371
|
+
_mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
|
|
372
|
+
{
|
|
373
|
+
return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
377
|
+
_mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
|
|
378
|
+
{
|
|
379
|
+
return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
383
|
+
_mm_setzero_si64(void)
|
|
384
|
+
{
|
|
385
|
+
return (__m64){ 0LL };
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
389
|
+
_mm_set_pi32(int __i1, int __i0)
|
|
390
|
+
{
|
|
391
|
+
return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
395
|
+
_mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
|
|
396
|
+
{
|
|
397
|
+
return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
401
|
+
_mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
|
|
402
|
+
char __b1, char __b0)
|
|
403
|
+
{
|
|
404
|
+
return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
|
|
405
|
+
__b4, __b5, __b6, __b7);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
409
|
+
_mm_set1_pi32(int __i)
|
|
410
|
+
{
|
|
411
|
+
return _mm_set_pi32(__i, __i);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
415
|
+
_mm_set1_pi16(short __w)
|
|
416
|
+
{
|
|
417
|
+
return _mm_set_pi16(__w, __w, __w, __w);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
421
|
+
_mm_set1_pi8(char __b)
|
|
422
|
+
{
|
|
423
|
+
return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
427
|
+
_mm_setr_pi32(int __i0, int __i1)
|
|
428
|
+
{
|
|
429
|
+
return _mm_set_pi32(__i1, __i0);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
433
|
+
_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
|
|
434
|
+
{
|
|
435
|
+
return _mm_set_pi16(__w3, __w2, __w1, __w0);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS
|
|
439
|
+
_mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
|
|
440
|
+
char __b6, char __b7)
|
|
441
|
+
{
|
|
442
|
+
return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
#undef __DEFAULT_FN_ATTRS
|
|
446
|
+
|
|
447
|
+
/* Aliases for compatibility. */
|
|
448
|
+
#define _m_empty _mm_empty
|
|
449
|
+
#define _m_from_int _mm_cvtsi32_si64
|
|
450
|
+
#define _m_to_int _mm_cvtsi64_si32
|
|
451
|
+
#define _m_packsswb _mm_packs_pi16
|
|
452
|
+
#define _m_packssdw _mm_packs_pi32
|
|
453
|
+
#define _m_packuswb _mm_packs_pu16
|
|
454
|
+
#define _m_punpckhbw _mm_unpackhi_pi8
|
|
455
|
+
#define _m_punpckhwd _mm_unpackhi_pi16
|
|
456
|
+
#define _m_punpckhdq _mm_unpackhi_pi32
|
|
457
|
+
#define _m_punpcklbw _mm_unpacklo_pi8
|
|
458
|
+
#define _m_punpcklwd _mm_unpacklo_pi16
|
|
459
|
+
#define _m_punpckldq _mm_unpacklo_pi32
|
|
460
|
+
#define _m_paddb _mm_add_pi8
|
|
461
|
+
#define _m_paddw _mm_add_pi16
|
|
462
|
+
#define _m_paddd _mm_add_pi32
|
|
463
|
+
#define _m_paddsb _mm_adds_pi8
|
|
464
|
+
#define _m_paddsw _mm_adds_pi16
|
|
465
|
+
#define _m_paddusb _mm_adds_pu8
|
|
466
|
+
#define _m_paddusw _mm_adds_pu16
|
|
467
|
+
#define _m_psubb _mm_sub_pi8
|
|
468
|
+
#define _m_psubw _mm_sub_pi16
|
|
469
|
+
#define _m_psubd _mm_sub_pi32
|
|
470
|
+
#define _m_psubsb _mm_subs_pi8
|
|
471
|
+
#define _m_psubsw _mm_subs_pi16
|
|
472
|
+
#define _m_psubusb _mm_subs_pu8
|
|
473
|
+
#define _m_psubusw _mm_subs_pu16
|
|
474
|
+
#define _m_pmaddwd _mm_madd_pi16
|
|
475
|
+
#define _m_pmulhw _mm_mulhi_pi16
|
|
476
|
+
#define _m_pmullw _mm_mullo_pi16
|
|
477
|
+
#define _m_psllw _mm_sll_pi16
|
|
478
|
+
#define _m_psllwi _mm_slli_pi16
|
|
479
|
+
#define _m_pslld _mm_sll_pi32
|
|
480
|
+
#define _m_pslldi _mm_slli_pi32
|
|
481
|
+
#define _m_psllq _mm_sll_si64
|
|
482
|
+
#define _m_psllqi _mm_slli_si64
|
|
483
|
+
#define _m_psraw _mm_sra_pi16
|
|
484
|
+
#define _m_psrawi _mm_srai_pi16
|
|
485
|
+
#define _m_psrad _mm_sra_pi32
|
|
486
|
+
#define _m_psradi _mm_srai_pi32
|
|
487
|
+
#define _m_psrlw _mm_srl_pi16
|
|
488
|
+
#define _m_psrlwi _mm_srli_pi16
|
|
489
|
+
#define _m_psrld _mm_srl_pi32
|
|
490
|
+
#define _m_psrldi _mm_srli_pi32
|
|
491
|
+
#define _m_psrlq _mm_srl_si64
|
|
492
|
+
#define _m_psrlqi _mm_srli_si64
|
|
493
|
+
#define _m_pand _mm_and_si64
|
|
494
|
+
#define _m_pandn _mm_andnot_si64
|
|
495
|
+
#define _m_por _mm_or_si64
|
|
496
|
+
#define _m_pxor _mm_xor_si64
|
|
497
|
+
#define _m_pcmpeqb _mm_cmpeq_pi8
|
|
498
|
+
#define _m_pcmpeqw _mm_cmpeq_pi16
|
|
499
|
+
#define _m_pcmpeqd _mm_cmpeq_pi32
|
|
500
|
+
#define _m_pcmpgtb _mm_cmpgt_pi8
|
|
501
|
+
#define _m_pcmpgtw _mm_cmpgt_pi16
|
|
502
|
+
#define _m_pcmpgtd _mm_cmpgt_pi32
|
|
503
|
+
|
|
504
|
+
#endif /* __MMX__ */
|
|
505
|
+
|
|
506
|
+
#endif /* __MMINTRIN_H */
|
|
507
|
+
|