gccxml_gem 0.9.3-x86-darwin-11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. data/Rakefile +84 -0
  2. data/bin/gccxml +0 -0
  3. data/bin/gccxml_cc1plus +0 -0
  4. data/gccxml.rb +57 -0
  5. data/share/doc/gccxml-0.9/Copyright.txt +55 -0
  6. data/share/doc/gccxml-0.9/gccxml.html +168 -0
  7. data/share/doc/gccxml-0.9/gccxml.txt +293 -0
  8. data/share/gccxml-0.9/GCC/2.95/algorithm +76 -0
  9. data/share/gccxml-0.9/GCC/2.95/bitset +17 -0
  10. data/share/gccxml-0.9/GCC/2.95/cctype +24 -0
  11. data/share/gccxml-0.9/GCC/2.95/clocale +14 -0
  12. data/share/gccxml-0.9/GCC/2.95/cmath +33 -0
  13. data/share/gccxml-0.9/GCC/2.95/complex +38 -0
  14. data/share/gccxml-0.9/GCC/2.95/csetjmp +13 -0
  15. data/share/gccxml-0.9/GCC/2.95/csignal +14 -0
  16. data/share/gccxml-0.9/GCC/2.95/cstdarg +12 -0
  17. data/share/gccxml-0.9/GCC/2.95/cstddef +13 -0
  18. data/share/gccxml-0.9/GCC/2.95/cstdio +55 -0
  19. data/share/gccxml-0.9/GCC/2.95/cstdlib +66 -0
  20. data/share/gccxml-0.9/GCC/2.95/cstring +34 -0
  21. data/share/gccxml-0.9/GCC/2.95/ctime +24 -0
  22. data/share/gccxml-0.9/GCC/2.95/cwchar +65 -0
  23. data/share/gccxml-0.9/GCC/2.95/cwctype +31 -0
  24. data/share/gccxml-0.9/GCC/2.95/deque +19 -0
  25. data/share/gccxml-0.9/GCC/2.95/exception +20 -0
  26. data/share/gccxml-0.9/GCC/2.95/fstream +23 -0
  27. data/share/gccxml-0.9/GCC/2.95/functional +64 -0
  28. data/share/gccxml-0.9/GCC/2.95/gccxml_bitset +1066 -0
  29. data/share/gccxml-0.9/GCC/2.95/iomanip +20 -0
  30. data/share/gccxml-0.9/GCC/2.95/iosfwd +20 -0
  31. data/share/gccxml-0.9/GCC/2.95/iostream +27 -0
  32. data/share/gccxml-0.9/GCC/2.95/iterator +39 -0
  33. data/share/gccxml-0.9/GCC/2.95/list +19 -0
  34. data/share/gccxml-0.9/GCC/2.95/map +20 -0
  35. data/share/gccxml-0.9/GCC/2.95/memory +21 -0
  36. data/share/gccxml-0.9/GCC/2.95/new +13 -0
  37. data/share/gccxml-0.9/GCC/2.95/numeric +15 -0
  38. data/share/gccxml-0.9/GCC/2.95/pthread.h +16 -0
  39. data/share/gccxml-0.9/GCC/2.95/queue +20 -0
  40. data/share/gccxml-0.9/GCC/2.95/set +20 -0
  41. data/share/gccxml-0.9/GCC/2.95/sstream +24 -0
  42. data/share/gccxml-0.9/GCC/2.95/stack +19 -0
  43. data/share/gccxml-0.9/GCC/2.95/std/bastring.cc +524 -0
  44. data/share/gccxml-0.9/GCC/2.95/std/complext.h +397 -0
  45. data/share/gccxml-0.9/GCC/2.95/std/dcomplex.h +92 -0
  46. data/share/gccxml-0.9/GCC/2.95/std/fcomplex.h +88 -0
  47. data/share/gccxml-0.9/GCC/2.95/std/gslice_array.h +170 -0
  48. data/share/gccxml-0.9/GCC/2.95/std/indirect_array.h +157 -0
  49. data/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h +96 -0
  50. data/share/gccxml-0.9/GCC/2.95/std/mask_array.h +154 -0
  51. data/share/gccxml-0.9/GCC/2.95/std/slice_array.h +156 -0
  52. data/share/gccxml-0.9/GCC/2.95/std/std_valarray.h +728 -0
  53. data/share/gccxml-0.9/GCC/2.95/std/straits.h +162 -0
  54. data/share/gccxml-0.9/GCC/2.95/std/valarray_meta.h +1035 -0
  55. data/share/gccxml-0.9/GCC/2.95/stdexcept +17 -0
  56. data/share/gccxml-0.9/GCC/2.95/stl_alloc.h +1057 -0
  57. data/share/gccxml-0.9/GCC/2.95/stl_bvector.h +836 -0
  58. data/share/gccxml-0.9/GCC/2.95/stl_deque.h +1699 -0
  59. data/share/gccxml-0.9/GCC/2.95/stl_list.h +843 -0
  60. data/share/gccxml-0.9/GCC/2.95/stl_tree.h +1331 -0
  61. data/share/gccxml-0.9/GCC/2.95/stl_vector.h +828 -0
  62. data/share/gccxml-0.9/GCC/2.95/string +26 -0
  63. data/share/gccxml-0.9/GCC/2.95/strstream +23 -0
  64. data/share/gccxml-0.9/GCC/2.95/typeinfo +11 -0
  65. data/share/gccxml-0.9/GCC/2.95/utility +25 -0
  66. data/share/gccxml-0.9/GCC/2.95/valarray +52 -0
  67. data/share/gccxml-0.9/GCC/2.95/vector +19 -0
  68. data/share/gccxml-0.9/GCC/2.96/sstream +305 -0
  69. data/share/gccxml-0.9/GCC/3.0/pthread.h +16 -0
  70. data/share/gccxml-0.9/GCC/3.1/pthread.h +16 -0
  71. data/share/gccxml-0.9/GCC/3.2/bits/fstream.tcc +500 -0
  72. data/share/gccxml-0.9/GCC/3.2/bits/gthr-default.h +585 -0
  73. data/share/gccxml-0.9/GCC/3.2/bits/istream.tcc +1207 -0
  74. data/share/gccxml-0.9/GCC/3.2/bits/locale_facets.h +1810 -0
  75. data/share/gccxml-0.9/GCC/3.2/bits/locale_facets.tcc +2397 -0
  76. data/share/gccxml-0.9/GCC/3.2/bits/messages_members.h +108 -0
  77. data/share/gccxml-0.9/GCC/3.2/bits/ostream.tcc +713 -0
  78. data/share/gccxml-0.9/GCC/3.2/bits/sstream.tcc +241 -0
  79. data/share/gccxml-0.9/GCC/3.2/bits/stl_deque.h +1682 -0
  80. data/share/gccxml-0.9/GCC/3.2/bits/stl_list.h +989 -0
  81. data/share/gccxml-0.9/GCC/3.2/bits/stl_tree.h +1462 -0
  82. data/share/gccxml-0.9/GCC/3.2/bits/stl_vector.h +1085 -0
  83. data/share/gccxml-0.9/GCC/3.2/bits/valarray_meta.h +1063 -0
  84. data/share/gccxml-0.9/GCC/3.2/fstream +579 -0
  85. data/share/gccxml-0.9/GCC/3.2/pthread.h +16 -0
  86. data/share/gccxml-0.9/GCC/3.2/sstream +384 -0
  87. data/share/gccxml-0.9/GCC/3.3/bits/fstream.tcc +530 -0
  88. data/share/gccxml-0.9/GCC/3.3/bits/list.tcc +378 -0
  89. data/share/gccxml-0.9/GCC/3.3/bits/locale_facets.h +2050 -0
  90. data/share/gccxml-0.9/GCC/3.3/bits/messages_members.h +108 -0
  91. data/share/gccxml-0.9/GCC/3.3/bits/sstream.tcc +243 -0
  92. data/share/gccxml-0.9/GCC/3.3/bits/stl_deque.h +1603 -0
  93. data/share/gccxml-0.9/GCC/3.3/bits/stl_list.h +1167 -0
  94. data/share/gccxml-0.9/GCC/3.3/bits/stl_tree.h +1462 -0
  95. data/share/gccxml-0.9/GCC/3.3/bits/stl_vector.h +992 -0
  96. data/share/gccxml-0.9/GCC/3.3/bits/valarray_meta.h +1135 -0
  97. data/share/gccxml-0.9/GCC/3.3/fstream +842 -0
  98. data/share/gccxml-0.9/GCC/3.3/gccxml_builtins.h +22 -0
  99. data/share/gccxml-0.9/GCC/3.3/sstream +638 -0
  100. data/share/gccxml-0.9/GCC/3.4/bits/gthr-default.h +669 -0
  101. data/share/gccxml-0.9/GCC/3.4/gccxml_builtins.h +91 -0
  102. data/share/gccxml-0.9/GCC/4.0/emmintrin.h +5 -0
  103. data/share/gccxml-0.9/GCC/4.0/gccxml_apple_emmintrin.h +1037 -0
  104. data/share/gccxml-0.9/GCC/4.0/gccxml_apple_mmintrin.h +669 -0
  105. data/share/gccxml-0.9/GCC/4.0/gccxml_apple_xmmintrin.h +870 -0
  106. data/share/gccxml-0.9/GCC/4.0/gccxml_builtins.h +128 -0
  107. data/share/gccxml-0.9/GCC/4.0/gccxml_gnu_emmintrin.h +977 -0
  108. data/share/gccxml-0.9/GCC/4.0/gccxml_gnu_mmintrin.h +636 -0
  109. data/share/gccxml-0.9/GCC/4.0/gccxml_gnu_xmmintrin.h +833 -0
  110. data/share/gccxml-0.9/GCC/4.0/mmintrin.h +5 -0
  111. data/share/gccxml-0.9/GCC/4.0/xmmintrin.h +5 -0
  112. data/share/gccxml-0.9/GCC/4.1/bits/gthr-default.h +622 -0
  113. data/share/gccxml-0.9/GCC/4.1/emmintrin.h +5 -0
  114. data/share/gccxml-0.9/GCC/4.1/gccxml_apple_emmintrin.h +1509 -0
  115. data/share/gccxml-0.9/GCC/4.1/gccxml_apple_mmintrin.h +942 -0
  116. data/share/gccxml-0.9/GCC/4.1/gccxml_apple_xmmintrin.h +1192 -0
  117. data/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h +131 -0
  118. data/share/gccxml-0.9/GCC/4.1/gccxml_gnu_emmintrin.h +1004 -0
  119. data/share/gccxml-0.9/GCC/4.1/gccxml_gnu_mmintrin.h +637 -0
  120. data/share/gccxml-0.9/GCC/4.1/gccxml_gnu_xmmintrin.h +834 -0
  121. data/share/gccxml-0.9/GCC/4.1/mmintrin.h +5 -0
  122. data/share/gccxml-0.9/GCC/4.1/xmmintrin.h +5 -0
  123. data/share/gccxml-0.9/GCC/4.2/emmintrin.h +5 -0
  124. data/share/gccxml-0.9/GCC/4.2/gccxml_apple_emmintrin.h +1509 -0
  125. data/share/gccxml-0.9/GCC/4.2/gccxml_apple_mmintrin.h +942 -0
  126. data/share/gccxml-0.9/GCC/4.2/gccxml_apple_xmmintrin.h +1192 -0
  127. data/share/gccxml-0.9/GCC/4.2/gccxml_builtins.h +131 -0
  128. data/share/gccxml-0.9/GCC/4.2/gccxml_gnu_emmintrin.h +1013 -0
  129. data/share/gccxml-0.9/GCC/4.2/gccxml_gnu_mmintrin.h +663 -0
  130. data/share/gccxml-0.9/GCC/4.2/gccxml_gnu_xmmintrin.h +860 -0
  131. data/share/gccxml-0.9/GCC/4.2/mmintrin.h +5 -0
  132. data/share/gccxml-0.9/GCC/4.2/xmmintrin.h +5 -0
  133. data/share/gccxml-0.9/GCC/4.3/emmintrin.h +1043 -0
  134. data/share/gccxml-0.9/GCC/4.3/gccxml_builtins.h +183 -0
  135. data/share/gccxml-0.9/GCC/4.3/mmintrin.h +663 -0
  136. data/share/gccxml-0.9/GCC/4.3/xmmintrin.h +867 -0
  137. data/share/gccxml-0.9/GCC/4.4/bits/c++config.h +1431 -0
  138. data/share/gccxml-0.9/GCC/4.4/emmintrin.h +1041 -0
  139. data/share/gccxml-0.9/GCC/4.4/gccxml_builtins.h +153 -0
  140. data/share/gccxml-0.9/GCC/4.4/mmintrin.h +662 -0
  141. data/share/gccxml-0.9/GCC/4.4/xmmintrin.h +864 -0
  142. data/share/gccxml-0.9/GCC/4.5/gccxml_builtins.h +154 -0
  143. data/share/gccxml-0.9/GCC/4.5/iomanip +349 -0
  144. data/share/gccxml-0.9/GCC/COPYING.RUNTIME +73 -0
  145. data/share/gccxml-0.9/GCC/COPYING3 +674 -0
  146. data/share/gccxml-0.9/IBM/8.0/adapt_headers.sh +34 -0
  147. data/share/gccxml-0.9/IBM/8.0/stdlib.h.patch +27 -0
  148. data/share/gccxml-0.9/IBM/8.0/xstring.patch +19 -0
  149. data/share/gccxml-0.9/IBM/README +8 -0
  150. data/share/gccxml-0.9/IBM/find_flags +51 -0
  151. data/share/gccxml-0.9/IBM/find_flags_common +48 -0
  152. data/share/gccxml-0.9/Intel/find_flags +56 -0
  153. data/share/gccxml-0.9/Intel/pthread.h +16 -0
  154. data/share/gccxml-0.9/MIPSpro/7.3/exception +9 -0
  155. data/share/gccxml-0.9/MIPSpro/7.3/gccxml_mpro_internals.h +21 -0
  156. data/share/gccxml-0.9/MIPSpro/7.3/iomanip +161 -0
  157. data/share/gccxml-0.9/MIPSpro/7.3/ostream +9 -0
  158. data/share/gccxml-0.9/MIPSpro/7.3/stddef.h +9 -0
  159. data/share/gccxml-0.9/MIPSpro/7.3/stl_config.h +9 -0
  160. data/share/gccxml-0.9/MIPSpro/7.3/stl_locale.h +17 -0
  161. data/share/gccxml-0.9/MIPSpro/7.3/stl_monetary.h +14 -0
  162. data/share/gccxml-0.9/MIPSpro/7.3/stl_numeric_facets.h +13 -0
  163. data/share/gccxml-0.9/MIPSpro/7.3/stl_threads.h +11 -0
  164. data/share/gccxml-0.9/MIPSpro/7.3/string +18 -0
  165. data/share/gccxml-0.9/MIPSpro/find_flags +70 -0
  166. data/share/gccxml-0.9/MIPSpro/mipspro_defs.cxx +63 -0
  167. data/share/gccxml-0.9/Sun/5.8/Cstd.patch +156 -0
  168. data/share/gccxml-0.9/Sun/5.8/adapt_headers.sh +32 -0
  169. data/share/gccxml-0.9/Sun/5.8/std-5.10.patch +22 -0
  170. data/share/gccxml-0.9/Sun/README +8 -0
  171. data/share/gccxml-0.9/Sun/find_flags +51 -0
  172. data/share/gccxml-0.9/Sun/find_flags_common +42 -0
  173. data/share/gccxml-0.9/gccxml_config +2 -0
  174. data/share/gccxml-0.9/gccxml_identify_compiler.cc +13 -0
  175. data/share/man/man1/gccxml.1 +246 -0
  176. metadata +243 -0
@@ -0,0 +1,1041 @@
1
+ /* Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
2
+ Free Software Foundation, Inc.
3
+
4
+ This file is part of GCC.
5
+
6
+ GCC is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 3, or (at your option)
9
+ any later version.
10
+
11
+ GCC is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ Under Section 7 of GPL version 3, you are granted additional
17
+ permissions described in the GCC Runtime Library Exception, version
18
+ 3.1, as published by the Free Software Foundation.
19
+
20
+ You should have received a copy of the GNU General Public License and
21
+ a copy of the GCC Runtime Library Exception along with this program;
22
+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23
+ <http://www.gnu.org/licenses/>. */
24
+
25
+ /* Implemented from the specification included in the Intel C++ Compiler
26
+ User Guide and Reference, version 9.0. */
27
+
28
+ #ifndef _EMMINTRIN_H_INCLUDED
29
+ #define _EMMINTRIN_H_INCLUDED
30
+
31
+ #ifndef __SSE2__
32
+ # error "SSE2 instruction set not enabled"
33
+ #else
34
+
35
+ /* We need definitions from the SSE header files*/
36
+ #include <xmmintrin.h>
37
+
38
+ /* SSE2 */
39
+ typedef double __v2df __attribute__ ((__vector_size__ (16)));
40
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
41
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
42
+ typedef short __v8hi __attribute__ ((__vector_size__ (16)));
43
+ typedef char __v16qi __attribute__ ((__vector_size__ (16)));
44
+
45
+ /* The Intel API is flexible enough that we must allow aliasing with other
46
+ vector types, and their scalar components. */
47
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
48
+ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
49
+
50
+ /* Create a selector for use with the SHUFPD instruction. */
51
+ #define _MM_SHUFFLE2(fp1,fp0) \
52
+ (((fp1) << 1) | (fp0))
53
+
54
+ /* Create a vector with element 0 as F and the rest zero. */
55
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
56
+ _mm_set_sd (double __F)
57
+ ;
58
+
59
+ /* Create a vector with both elements equal to F. */
60
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
61
+ _mm_set1_pd (double __F)
62
+ ;
63
+
64
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
65
+ _mm_set_pd1 (double __F)
66
+ ;
67
+
68
+ /* Create a vector with the lower value X and upper value W. */
69
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
70
+ _mm_set_pd (double __W, double __X)
71
+ ;
72
+
73
+ /* Create a vector with the lower value W and upper value X. */
74
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
75
+ _mm_setr_pd (double __W, double __X)
76
+ ;
77
+
78
+ /* Create a vector of zeros. */
79
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
80
+ _mm_setzero_pd (void)
81
+ ;
82
+
83
+ /* Sets the low DPFP value of A from the low value of B. */
84
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
85
+ _mm_move_sd (__m128d __A, __m128d __B)
86
+ ;
87
+
88
+ /* Load two DPFP values from P. The address must be 16-byte aligned. */
89
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
90
+ _mm_load_pd (double const *__P)
91
+ ;
92
+
93
+ /* Load two DPFP values from P. The address need not be 16-byte aligned. */
94
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
95
+ _mm_loadu_pd (double const *__P)
96
+ ;
97
+
98
+ /* Create a vector with all two elements equal to *P. */
99
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
100
+ _mm_load1_pd (double const *__P)
101
+ ;
102
+
103
+ /* Create a vector with element 0 as *P and the rest zero. */
104
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
105
+ _mm_load_sd (double const *__P)
106
+ ;
107
+
108
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
109
+ _mm_load_pd1 (double const *__P)
110
+ ;
111
+
112
+ /* Load two DPFP values in reverse order. The address must be aligned. */
113
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
114
+ _mm_loadr_pd (double const *__P)
115
+ ;
116
+
117
+ /* Store two DPFP values. The address must be 16-byte aligned. */
118
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
119
+ _mm_store_pd (double *__P, __m128d __A)
120
+ ;
121
+
122
+ /* Store two DPFP values. The address need not be 16-byte aligned. */
123
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
124
+ _mm_storeu_pd (double *__P, __m128d __A)
125
+ ;
126
+
127
+ /* Stores the lower DPFP value. */
128
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
129
+ _mm_store_sd (double *__P, __m128d __A)
130
+ ;
131
+
132
+ extern __inline double __attribute__((__gnu_inline__, __always_inline__, __artificial__))
133
+ _mm_cvtsd_f64 (__m128d __A)
134
+ ;
135
+
136
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
137
+ _mm_storel_pd (double *__P, __m128d __A)
138
+ ;
139
+
140
+ /* Stores the upper DPFP value. */
141
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
142
+ _mm_storeh_pd (double *__P, __m128d __A)
143
+ ;
144
+
145
+ /* Store the lower DPFP value across two words.
146
+ The address must be 16-byte aligned. */
147
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
148
+ _mm_store1_pd (double *__P, __m128d __A)
149
+ ;
150
+
151
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
152
+ _mm_store_pd1 (double *__P, __m128d __A)
153
+ ;
154
+
155
+ /* Store two DPFP values in reverse order. The address must be aligned. */
156
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
157
+ _mm_storer_pd (double *__P, __m128d __A)
158
+ ;
159
+
160
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
161
+ _mm_cvtsi128_si32 (__m128i __A)
162
+ ;
163
+
164
+ #ifdef __x86_64__
165
+ /* Intel intrinsic. */
166
+ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
167
+ _mm_cvtsi128_si64 (__m128i __A)
168
+ ;
169
+
170
+ /* Microsoft intrinsic. */
171
+ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
172
+ _mm_cvtsi128_si64x (__m128i __A)
173
+ ;
174
+ #endif
175
+
176
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
177
+ _mm_add_pd (__m128d __A, __m128d __B)
178
+ ;
179
+
180
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
181
+ _mm_add_sd (__m128d __A, __m128d __B)
182
+ ;
183
+
184
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
185
+ _mm_sub_pd (__m128d __A, __m128d __B)
186
+ ;
187
+
188
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
189
+ _mm_sub_sd (__m128d __A, __m128d __B)
190
+ ;
191
+
192
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
193
+ _mm_mul_pd (__m128d __A, __m128d __B)
194
+ ;
195
+
196
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
197
+ _mm_mul_sd (__m128d __A, __m128d __B)
198
+ ;
199
+
200
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
201
+ _mm_div_pd (__m128d __A, __m128d __B)
202
+ ;
203
+
204
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
205
+ _mm_div_sd (__m128d __A, __m128d __B)
206
+ ;
207
+
208
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
209
+ _mm_sqrt_pd (__m128d __A)
210
+ ;
211
+
212
+ /* Return pair {sqrt (A[0), B[1]}. */
213
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
214
+ _mm_sqrt_sd (__m128d __A, __m128d __B)
215
+ ;
216
+
217
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
218
+ _mm_min_pd (__m128d __A, __m128d __B)
219
+ ;
220
+
221
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
222
+ _mm_min_sd (__m128d __A, __m128d __B)
223
+ ;
224
+
225
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
226
+ _mm_max_pd (__m128d __A, __m128d __B)
227
+ ;
228
+
229
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
230
+ _mm_max_sd (__m128d __A, __m128d __B)
231
+ ;
232
+
233
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
234
+ _mm_and_pd (__m128d __A, __m128d __B)
235
+ ;
236
+
237
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
238
+ _mm_andnot_pd (__m128d __A, __m128d __B)
239
+ ;
240
+
241
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
242
+ _mm_or_pd (__m128d __A, __m128d __B)
243
+ ;
244
+
245
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
246
+ _mm_xor_pd (__m128d __A, __m128d __B)
247
+ ;
248
+
249
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
250
+ _mm_cmpeq_pd (__m128d __A, __m128d __B)
251
+ ;
252
+
253
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
254
+ _mm_cmplt_pd (__m128d __A, __m128d __B)
255
+ ;
256
+
257
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
258
+ _mm_cmple_pd (__m128d __A, __m128d __B)
259
+ ;
260
+
261
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
262
+ _mm_cmpgt_pd (__m128d __A, __m128d __B)
263
+ ;
264
+
265
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
266
+ _mm_cmpge_pd (__m128d __A, __m128d __B)
267
+ ;
268
+
269
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
270
+ _mm_cmpneq_pd (__m128d __A, __m128d __B)
271
+ ;
272
+
273
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
274
+ _mm_cmpnlt_pd (__m128d __A, __m128d __B)
275
+ ;
276
+
277
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
278
+ _mm_cmpnle_pd (__m128d __A, __m128d __B)
279
+ ;
280
+
281
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
282
+ _mm_cmpngt_pd (__m128d __A, __m128d __B)
283
+ ;
284
+
285
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
286
+ _mm_cmpnge_pd (__m128d __A, __m128d __B)
287
+ ;
288
+
289
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
290
+ _mm_cmpord_pd (__m128d __A, __m128d __B)
291
+ ;
292
+
293
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
294
+ _mm_cmpunord_pd (__m128d __A, __m128d __B)
295
+ ;
296
+
297
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
298
+ _mm_cmpeq_sd (__m128d __A, __m128d __B)
299
+ ;
300
+
301
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
302
+ _mm_cmplt_sd (__m128d __A, __m128d __B)
303
+ ;
304
+
305
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
306
+ _mm_cmple_sd (__m128d __A, __m128d __B)
307
+ ;
308
+
309
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
310
+ _mm_cmpgt_sd (__m128d __A, __m128d __B)
311
+ ;
312
+
313
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
314
+ _mm_cmpge_sd (__m128d __A, __m128d __B)
315
+ ;
316
+
317
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
318
+ _mm_cmpneq_sd (__m128d __A, __m128d __B)
319
+ ;
320
+
321
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
322
+ _mm_cmpnlt_sd (__m128d __A, __m128d __B)
323
+ ;
324
+
325
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
326
+ _mm_cmpnle_sd (__m128d __A, __m128d __B)
327
+ ;
328
+
329
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
330
+ _mm_cmpngt_sd (__m128d __A, __m128d __B)
331
+ ;
332
+
333
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
334
+ _mm_cmpnge_sd (__m128d __A, __m128d __B)
335
+ ;
336
+
337
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
338
+ _mm_cmpord_sd (__m128d __A, __m128d __B)
339
+ ;
340
+
341
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
342
+ _mm_cmpunord_sd (__m128d __A, __m128d __B)
343
+ ;
344
+
345
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
346
+ _mm_comieq_sd (__m128d __A, __m128d __B)
347
+ ;
348
+
349
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
350
+ _mm_comilt_sd (__m128d __A, __m128d __B)
351
+ ;
352
+
353
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
354
+ _mm_comile_sd (__m128d __A, __m128d __B)
355
+ ;
356
+
357
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
358
+ _mm_comigt_sd (__m128d __A, __m128d __B)
359
+ ;
360
+
361
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
362
+ _mm_comige_sd (__m128d __A, __m128d __B)
363
+ ;
364
+
365
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
366
+ _mm_comineq_sd (__m128d __A, __m128d __B)
367
+ ;
368
+
369
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
370
+ _mm_ucomieq_sd (__m128d __A, __m128d __B)
371
+ ;
372
+
373
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
374
+ _mm_ucomilt_sd (__m128d __A, __m128d __B)
375
+ ;
376
+
377
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
378
+ _mm_ucomile_sd (__m128d __A, __m128d __B)
379
+ ;
380
+
381
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
382
+ _mm_ucomigt_sd (__m128d __A, __m128d __B)
383
+ ;
384
+
385
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
386
+ _mm_ucomige_sd (__m128d __A, __m128d __B)
387
+ ;
388
+
389
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
390
+ _mm_ucomineq_sd (__m128d __A, __m128d __B)
391
+ ;
392
+
393
+ /* Create a vector of Qi, where i is the element number. */
394
+
395
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
396
+ _mm_set_epi64x (long long __q1, long long __q0)
397
+ ;
398
+
399
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
400
+ _mm_set_epi64 (__m64 __q1, __m64 __q0)
401
+ ;
402
+
403
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
404
+ _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
405
+ ;
406
+
407
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
408
+ _mm_set_epi16 (short __q7, short __q6, short __q5, short __q4,
409
+ short __q3, short __q2, short __q1, short __q0)
410
+ ;
411
+
412
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
413
+ _mm_set_epi8 (char __q15, char __q14, char __q13, char __q12,
414
+ char __q11, char __q10, char __q09, char __q08,
415
+ char __q07, char __q06, char __q05, char __q04,
416
+ char __q03, char __q02, char __q01, char __q00)
417
+ ;
418
+
419
+ /* Set all of the elements of the vector to A. */
420
+
421
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
422
+ _mm_set1_epi64x (long long __A)
423
+ ;
424
+
425
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
426
+ _mm_set1_epi64 (__m64 __A)
427
+ ;
428
+
429
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
430
+ _mm_set1_epi32 (int __A)
431
+ ;
432
+
433
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
434
+ _mm_set1_epi16 (short __A)
435
+ ;
436
+
437
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
438
+ _mm_set1_epi8 (char __A)
439
+ ;
440
+
441
+ /* Create a vector of Qi, where i is the element number.
442
+ The parameter order is reversed from the _mm_set_epi* functions. */
443
+
444
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
445
+ _mm_setr_epi64 (__m64 __q0, __m64 __q1)
446
+ ;
447
+
448
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
449
+ _mm_setr_epi32 (int __q0, int __q1, int __q2, int __q3)
450
+ ;
451
+
452
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
453
+ _mm_setr_epi16 (short __q0, short __q1, short __q2, short __q3,
454
+ short __q4, short __q5, short __q6, short __q7)
455
+ ;
456
+
457
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
458
+ _mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03,
459
+ char __q04, char __q05, char __q06, char __q07,
460
+ char __q08, char __q09, char __q10, char __q11,
461
+ char __q12, char __q13, char __q14, char __q15)
462
+ ;
463
+
464
+ /* Create a vector with element 0 as *P and the rest zero. */
465
+
466
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
467
+ _mm_load_si128 (__m128i const *__P)
468
+ ;
469
+
470
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
471
+ _mm_loadu_si128 (__m128i const *__P)
472
+ ;
473
+
474
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
475
+ _mm_loadl_epi64 (__m128i const *__P)
476
+ ;
477
+
478
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
479
+ _mm_store_si128 (__m128i *__P, __m128i __B)
480
+ ;
481
+
482
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
483
+ _mm_storeu_si128 (__m128i *__P, __m128i __B)
484
+ ;
485
+
486
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
487
+ _mm_storel_epi64 (__m128i *__P, __m128i __B)
488
+ ;
489
+
490
+ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
491
+ _mm_movepi64_pi64 (__m128i __B)
492
+ ;
493
+
494
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
495
+ _mm_movpi64_epi64 (__m64 __A)
496
+ ;
497
+
498
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
499
+ _mm_move_epi64 (__m128i __A)
500
+ ;
501
+
502
+ /* Create a vector of zeros. */
503
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
504
+ _mm_setzero_si128 (void)
505
+ ;
506
+
507
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
508
+ _mm_cvtepi32_pd (__m128i __A)
509
+ ;
510
+
511
+ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
512
+ _mm_cvtepi32_ps (__m128i __A)
513
+ ;
514
+
515
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
516
+ _mm_cvtpd_epi32 (__m128d __A)
517
+ ;
518
+
519
+ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
520
+ _mm_cvtpd_pi32 (__m128d __A)
521
+ ;
522
+
523
+ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
524
+ _mm_cvtpd_ps (__m128d __A)
525
+ ;
526
+
527
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
528
+ _mm_cvttpd_epi32 (__m128d __A)
529
+ ;
530
+
531
+ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
532
+ _mm_cvttpd_pi32 (__m128d __A)
533
+ ;
534
+
535
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
536
+ _mm_cvtpi32_pd (__m64 __A)
537
+ ;
538
+
539
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
540
+ _mm_cvtps_epi32 (__m128 __A)
541
+ ;
542
+
543
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
544
+ _mm_cvttps_epi32 (__m128 __A)
545
+ ;
546
+
547
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
548
+ _mm_cvtps_pd (__m128 __A)
549
+ ;
550
+
551
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
552
+ _mm_cvtsd_si32 (__m128d __A)
553
+ ;
554
+
555
+ #ifdef __x86_64__
556
+ /* Intel intrinsic. */
557
+ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
558
+ _mm_cvtsd_si64 (__m128d __A)
559
+ ;
560
+
561
+ /* Microsoft intrinsic. */
562
+ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
563
+ _mm_cvtsd_si64x (__m128d __A)
564
+ ;
565
+ #endif
566
+
567
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
568
+ _mm_cvttsd_si32 (__m128d __A)
569
+ ;
570
+
571
+ #ifdef __x86_64__
572
+ /* Intel intrinsic. */
573
+ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
574
+ _mm_cvttsd_si64 (__m128d __A)
575
+ ;
576
+
577
+ /* Microsoft intrinsic. */
578
+ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
579
+ _mm_cvttsd_si64x (__m128d __A)
580
+ ;
581
+ #endif
582
+
583
+ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
584
+ _mm_cvtsd_ss (__m128 __A, __m128d __B)
585
+ ;
586
+
587
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
588
+ _mm_cvtsi32_sd (__m128d __A, int __B)
589
+ ;
590
+
591
+ #ifdef __x86_64__
592
+ /* Intel intrinsic. */
593
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
594
+ _mm_cvtsi64_sd (__m128d __A, long long __B)
595
+ ;
596
+
597
+ /* Microsoft intrinsic. */
598
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
599
+ _mm_cvtsi64x_sd (__m128d __A, long long __B)
600
+ ;
601
+ #endif
602
+
603
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
604
+ _mm_cvtss_sd (__m128d __A, __m128 __B)
605
+ ;
606
+
607
+ #ifdef __OPTIMIZE__
608
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
609
+ _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask)
610
+ ;
611
+ #else
612
+ #define _mm_shuffle_pd(A, B, N) \
613
+ ((__m128d)__builtin_ia32_shufpd ((__v2df)(__m128d)(A), \
614
+ (__v2df)(__m128d)(B), (int)(N)))
615
+ #endif
616
+
617
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
618
+ _mm_unpackhi_pd (__m128d __A, __m128d __B)
619
+ ;
620
+
621
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
622
+ _mm_unpacklo_pd (__m128d __A, __m128d __B)
623
+ ;
624
+
625
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
626
+ _mm_loadh_pd (__m128d __A, double const *__B)
627
+ ;
628
+
629
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
630
+ _mm_loadl_pd (__m128d __A, double const *__B)
631
+ ;
632
+
633
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
634
+ _mm_movemask_pd (__m128d __A)
635
+ ;
636
+
637
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
638
+ _mm_packs_epi16 (__m128i __A, __m128i __B)
639
+ ;
640
+
641
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
642
+ _mm_packs_epi32 (__m128i __A, __m128i __B)
643
+ ;
644
+
645
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
646
+ _mm_packus_epi16 (__m128i __A, __m128i __B)
647
+ ;
648
+
649
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
650
+ _mm_unpackhi_epi8 (__m128i __A, __m128i __B)
651
+ ;
652
+
653
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
654
+ _mm_unpackhi_epi16 (__m128i __A, __m128i __B)
655
+ ;
656
+
657
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
658
+ _mm_unpackhi_epi32 (__m128i __A, __m128i __B)
659
+ ;
660
+
661
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
662
+ _mm_unpackhi_epi64 (__m128i __A, __m128i __B)
663
+ ;
664
+
665
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
666
+ _mm_unpacklo_epi8 (__m128i __A, __m128i __B)
667
+ ;
668
+
669
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
670
+ _mm_unpacklo_epi16 (__m128i __A, __m128i __B)
671
+ ;
672
+
673
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
674
+ _mm_unpacklo_epi32 (__m128i __A, __m128i __B)
675
+ ;
676
+
677
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
678
+ _mm_unpacklo_epi64 (__m128i __A, __m128i __B)
679
+ ;
680
+
681
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
682
+ _mm_add_epi8 (__m128i __A, __m128i __B)
683
+ ;
684
+
685
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
686
+ _mm_add_epi16 (__m128i __A, __m128i __B)
687
+ ;
688
+
689
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
690
+ _mm_add_epi32 (__m128i __A, __m128i __B)
691
+ ;
692
+
693
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
694
+ _mm_add_epi64 (__m128i __A, __m128i __B)
695
+ ;
696
+
697
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
698
+ _mm_adds_epi8 (__m128i __A, __m128i __B)
699
+ ;
700
+
701
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
702
+ _mm_adds_epi16 (__m128i __A, __m128i __B)
703
+ ;
704
+
705
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
706
+ _mm_adds_epu8 (__m128i __A, __m128i __B)
707
+ ;
708
+
709
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
710
+ _mm_adds_epu16 (__m128i __A, __m128i __B)
711
+ ;
712
+
713
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
714
+ _mm_sub_epi8 (__m128i __A, __m128i __B)
715
+ ;
716
+
717
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
718
+ _mm_sub_epi16 (__m128i __A, __m128i __B)
719
+ ;
720
+
721
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
722
+ _mm_sub_epi32 (__m128i __A, __m128i __B)
723
+ ;
724
+
725
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
726
+ _mm_sub_epi64 (__m128i __A, __m128i __B)
727
+ ;
728
+
729
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
730
+ _mm_subs_epi8 (__m128i __A, __m128i __B)
731
+ ;
732
+
733
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
734
+ _mm_subs_epi16 (__m128i __A, __m128i __B)
735
+ ;
736
+
737
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
738
+ _mm_subs_epu8 (__m128i __A, __m128i __B)
739
+ ;
740
+
741
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
742
+ _mm_subs_epu16 (__m128i __A, __m128i __B)
743
+ ;
744
+
745
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
746
+ _mm_madd_epi16 (__m128i __A, __m128i __B)
747
+ ;
748
+
749
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
750
+ _mm_mulhi_epi16 (__m128i __A, __m128i __B)
751
+ ;
752
+
753
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
754
+ _mm_mullo_epi16 (__m128i __A, __m128i __B)
755
+ ;
756
+
757
+ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
758
+ _mm_mul_su32 (__m64 __A, __m64 __B)
759
+ ;
760
+
761
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
762
+ _mm_mul_epu32 (__m128i __A, __m128i __B)
763
+ ;
764
+
765
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
766
+ _mm_slli_epi16 (__m128i __A, int __B)
767
+ ;
768
+
769
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
770
+ _mm_slli_epi32 (__m128i __A, int __B)
771
+ ;
772
+
773
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
774
+ _mm_slli_epi64 (__m128i __A, int __B)
775
+ ;
776
+
777
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
778
+ _mm_srai_epi16 (__m128i __A, int __B)
779
+ ;
780
+
781
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
782
+ _mm_srai_epi32 (__m128i __A, int __B)
783
+ ;
784
+
785
+ #ifdef __OPTIMIZE__
786
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
787
+ _mm_srli_si128 (__m128i __A, const int __N)
788
+ ;
789
+
790
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
791
+ _mm_slli_si128 (__m128i __A, const int __N)
792
+ ;
793
+ #else
794
+ #define _mm_srli_si128(A, N) \
795
+ ((__m128i)__builtin_ia32_psrldqi128 ((__m128i)(A), (int)(N) * 8))
796
+ #define _mm_slli_si128(A, N) \
797
+ ((__m128i)__builtin_ia32_pslldqi128 ((__m128i)(A), (int)(N) * 8))
798
+ #endif
799
+
800
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
801
+ _mm_srli_epi16 (__m128i __A, int __B)
802
+ ;
803
+
804
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
805
+ _mm_srli_epi32 (__m128i __A, int __B)
806
+ ;
807
+
808
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
809
+ _mm_srli_epi64 (__m128i __A, int __B)
810
+ ;
811
+
812
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
813
+ _mm_sll_epi16 (__m128i __A, __m128i __B)
814
+ ;
815
+
816
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
817
+ _mm_sll_epi32 (__m128i __A, __m128i __B)
818
+ ;
819
+
820
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
821
+ _mm_sll_epi64 (__m128i __A, __m128i __B)
822
+ ;
823
+
824
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
825
+ _mm_sra_epi16 (__m128i __A, __m128i __B)
826
+ ;
827
+
828
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
829
+ _mm_sra_epi32 (__m128i __A, __m128i __B)
830
+ ;
831
+
832
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
833
+ _mm_srl_epi16 (__m128i __A, __m128i __B)
834
+ ;
835
+
836
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
837
+ _mm_srl_epi32 (__m128i __A, __m128i __B)
838
+ ;
839
+
840
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
841
+ _mm_srl_epi64 (__m128i __A, __m128i __B)
842
+ ;
843
+
844
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
845
+ _mm_and_si128 (__m128i __A, __m128i __B)
846
+ ;
847
+
848
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
849
+ _mm_andnot_si128 (__m128i __A, __m128i __B)
850
+ ;
851
+
852
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
853
+ _mm_or_si128 (__m128i __A, __m128i __B)
854
+ ;
855
+
856
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
857
+ _mm_xor_si128 (__m128i __A, __m128i __B)
858
+ ;
859
+
860
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
861
+ _mm_cmpeq_epi8 (__m128i __A, __m128i __B)
862
+ ;
863
+
864
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
865
+ _mm_cmpeq_epi16 (__m128i __A, __m128i __B)
866
+ ;
867
+
868
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
869
+ _mm_cmpeq_epi32 (__m128i __A, __m128i __B)
870
+ ;
871
+
872
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
873
+ _mm_cmplt_epi8 (__m128i __A, __m128i __B)
874
+ ;
875
+
876
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
877
+ _mm_cmplt_epi16 (__m128i __A, __m128i __B)
878
+ ;
879
+
880
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
881
+ _mm_cmplt_epi32 (__m128i __A, __m128i __B)
882
+ ;
883
+
884
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
885
+ _mm_cmpgt_epi8 (__m128i __A, __m128i __B)
886
+ ;
887
+
888
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
889
+ _mm_cmpgt_epi16 (__m128i __A, __m128i __B)
890
+ ;
891
+
892
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
893
+ _mm_cmpgt_epi32 (__m128i __A, __m128i __B)
894
+ ;
895
+
896
+ #ifdef __OPTIMIZE__
897
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
898
+ _mm_extract_epi16 (__m128i const __A, int const __N)
899
+ ;
900
+
901
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
902
+ _mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
903
+ ;
904
+ #else
905
+ #define _mm_extract_epi16(A, N) \
906
+ ((int) __builtin_ia32_vec_ext_v8hi ((__v8hi)(__m128i)(A), (int)(N)))
907
+ #define _mm_insert_epi16(A, D, N) \
908
+ ((__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)(__m128i)(A), \
909
+ (int)(D), (int)(N)))
910
+ #endif
911
+
912
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
913
+ _mm_max_epi16 (__m128i __A, __m128i __B)
914
+ ;
915
+
916
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
917
+ _mm_max_epu8 (__m128i __A, __m128i __B)
918
+ ;
919
+
920
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
921
+ _mm_min_epi16 (__m128i __A, __m128i __B)
922
+ ;
923
+
924
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
925
+ _mm_min_epu8 (__m128i __A, __m128i __B)
926
+ ;
927
+
928
+ extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
929
+ _mm_movemask_epi8 (__m128i __A)
930
+ ;
931
+
932
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
933
+ _mm_mulhi_epu16 (__m128i __A, __m128i __B)
934
+ ;
935
+
936
+ #ifdef __OPTIMIZE__
937
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
938
+ _mm_shufflehi_epi16 (__m128i __A, const int __mask)
939
+ ;
940
+
941
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
942
+ _mm_shufflelo_epi16 (__m128i __A, const int __mask)
943
+ ;
944
+
945
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
946
+ _mm_shuffle_epi32 (__m128i __A, const int __mask)
947
+ ;
948
+ #else
949
+ #define _mm_shufflehi_epi16(A, N) \
950
+ ((__m128i)__builtin_ia32_pshufhw ((__v8hi)(__m128i)(A), (int)(N)))
951
+ #define _mm_shufflelo_epi16(A, N) \
952
+ ((__m128i)__builtin_ia32_pshuflw ((__v8hi)(__m128i)(A), (int)(N)))
953
+ #define _mm_shuffle_epi32(A, N) \
954
+ ((__m128i)__builtin_ia32_pshufd ((__v4si)(__m128i)(A), (int)(N)))
955
+ #endif
956
+
957
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
958
+ _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
959
+ ;
960
+
961
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
962
+ _mm_avg_epu8 (__m128i __A, __m128i __B)
963
+ ;
964
+
965
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
966
+ _mm_avg_epu16 (__m128i __A, __m128i __B)
967
+ ;
968
+
969
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
970
+ _mm_sad_epu8 (__m128i __A, __m128i __B)
971
+ ;
972
+
973
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
974
+ _mm_stream_si32 (int *__A, int __B)
975
+ ;
976
+
977
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
978
+ _mm_stream_si128 (__m128i *__A, __m128i __B)
979
+ ;
980
+
981
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
982
+ _mm_stream_pd (double *__A, __m128d __B)
983
+ ;
984
+
985
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
986
+ _mm_clflush (void const *__A)
987
+ ;
988
+
989
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
990
+ _mm_lfence (void)
991
+ ;
992
+
993
+ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
994
+ _mm_mfence (void)
995
+ ;
996
+
997
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
998
+ _mm_cvtsi32_si128 (int __A)
999
+ ;
1000
+
1001
+ #ifdef __x86_64__
1002
+ /* Intel intrinsic. */
1003
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1004
+ _mm_cvtsi64_si128 (long long __A)
1005
+ ;
1006
+
1007
+ /* Microsoft intrinsic. */
1008
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1009
+ _mm_cvtsi64x_si128 (long long __A)
1010
+ ;
1011
+ #endif
1012
+
1013
+ /* Casts between various SP, DP, INT vector types. Note that these do no
1014
+ conversion of values, they just change the type. */
1015
+ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1016
+ _mm_castpd_ps(__m128d __A)
1017
+ ;
1018
+
1019
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1020
+ _mm_castpd_si128(__m128d __A)
1021
+ ;
1022
+
1023
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1024
+ _mm_castps_pd(__m128 __A)
1025
+ ;
1026
+
1027
+ extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1028
+ _mm_castps_si128(__m128 __A)
1029
+ ;
1030
+
1031
+ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1032
+ _mm_castsi128_ps(__m128i __A)
1033
+ ;
1034
+
1035
+ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1036
+ _mm_castsi128_pd(__m128i __A)
1037
+ ;
1038
+
1039
+ #endif /* __SSE2__ */
1040
+
1041
+ #endif /* _EMMINTRIN_H_INCLUDED */