29
29
<div class="contents">
30
<h1>bmundef.h File Reference</h1><div class="dynheader">
31
This graph shows which files directly or indirectly include this file:</div>
30
<h1>bmsse2.h File Reference</h1><code>#include <mmintrin.h></code><br/>
31
<code>#include <emmintrin.h></code><br/>
32
<code>#include "<a class="el" href="a00092_source.html">bmdef.h</a>"</code><br/>
33
<code>#include "<a class="el" href="a00099_source.html">bmsse_util.h</a>"</code><br/>
34
<div class="dynheader">
35
Include dependency graph for bmsse2.h:</div>
32
36
<div class="dynsection">
33
<div class="center"><img src="a00143.png" border="0" usemap="#bmundef_8hdep_map" alt=""/></div>
34
<map name="bmundef_8hdep_map" id="bmundef_8hdep">
35
<area shape="rect" href="a00084.html" title="bm.h" alt="" coords="537,83,588,112"/><area shape="rect" href="a00085.html" title="bmalgo.h" alt="" coords="5,160,80,189"/><area shape="rect" href="a00092.html" title="bmserial.h" alt="" coords="1045,160,1125,189"/><area shape="rect" href="a00109.html" title="sample9.cpp" alt="" coords="32,237,128,267"/><area shape="rect" href="a00104.html" title="sample4.cpp" alt="" coords="999,237,1095,267"/><area shape="rect" href="a00101.html" title="sample1.cpp" alt="" coords="155,160,251,189"/><area shape="rect" href="a00102.html" title="sample2.cpp" alt="" coords="275,160,371,189"/><area shape="rect" href="a00103.html" title="sample3.cpp" alt="" coords="395,160,491,189"/><area shape="rect" href="a00105.html" title="sample5.cpp" alt="" coords="515,160,611,189"/><area shape="rect" href="a00106.html" title="sample6.cpp" alt="" coords="635,160,731,189"/><area shape="rect" href="a00107.html" title="sample7.cpp" alt="" coords="755,160,851,189"/><area shape="rect" href="a00108.html" title="sample8.cpp" alt="" coords="875,160,971,189"/></map>
37
<div class="center"><img src="a00145.png" border="0" usemap="#bmsse2_8h_map" alt=""/></div>
38
<map name="bmsse2_8h_map" id="bmsse2_8h">
39
<area shape="rect" href="a00092.html" title="bmdef.h" alt="" coords="224,83,291,112"/><area shape="rect" href="a00099.html" title="bmsse_util.h" alt="" coords="315,83,411,112"/></map>
38
42
<p><a href="a00097_source.html">Go to the source code of this file.</a></p>
39
43
<table border="0" cellpadding="0" cellspacing="0">
44
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
45
<tr><td class="memItemLeft" align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html">bm</a></td></tr>
46
<tr><td colspan="2"><h2>Defines</h2></td></tr>
47
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a9b8caa31ab90cbfbc99b5728352e5456">VECT_XOR_ARR_2_MASK</a>(dst, src, src_end, mask) sse2_xor_arr_2_mask((__m128i*)(dst), (__m128i*)(src), (__m128i*)(src_end), mask)</td></tr>
48
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a7d425b68d8217dc37d33c660e39a61e1">VECT_ANDNOT_ARR_2_MASK</a>(dst, src, src_end, mask) sse2_andnot_arr_2_mask((__m128i*)(dst), (__m128i*)(src), (__m128i*)(src_end), mask)</td></tr>
49
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ae022e7bc509d97359a348393a6b25b99">VECT_BITCOUNT</a>(first, last) sse2_bit_count((__m128i*) (first), (__m128i*) (last))</td></tr>
50
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a3459200618dab65142340f1abd760eb9">VECT_BITCOUNT_AND</a>(first, last, mask) sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_and)</td></tr>
51
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a07583d48db4ede7eadbc3156e9dd7d3b">VECT_BITCOUNT_OR</a>(first, last, mask) sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_or)</td></tr>
52
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a9954c72d227a3ca78df22a56efad6baf">VECT_BITCOUNT_XOR</a>(first, last, mask) sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_xor)</td></tr>
53
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a98aaf230431767be4838323266d0b493">VECT_BITCOUNT_SUB</a>(first, last, mask) sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_sub)</td></tr>
54
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#aa31c7d6d7d4cd67e1cc86c08221446ce">VECT_INVERT_ARR</a>(first, last) sse2_invert_arr(first, last);</td></tr>
55
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#aa6a3504bb5449abf6f5ec084b2ddfac6">VECT_AND_ARR</a>(dst, src, src_end) sse2_and_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td></tr>
56
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ae3cdeec275429ea0d60668da63e96df8">VECT_OR_ARR</a>(dst, src, src_end) sse2_or_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td></tr>
57
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#af079345cbcb256bb6216c0446fd775f2">VECT_SUB_ARR</a>(dst, src, src_end) sse2_sub_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td></tr>
58
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a1f520ac49859f992de5c00f43b851179">VECT_XOR_ARR</a>(dst, src, src_end) sse2_xor_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td></tr>
59
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a72b713f259e0542169a1228bebadcede">VECT_COPY_BLOCK</a>(dst, src, src_end) sse2_copy_block((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td></tr>
60
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#acefd3b9d39a2e2fb0c9d2aa5c3812e0b">VECT_SET_BLOCK</a>(dst, dst_end, value) sse2_set_block((__m128i*) dst, (__m128i*) (dst_end), (value))</td></tr>
61
<tr><td colspan="2"><h2>Functions</h2></td></tr>
62
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html#ga0f7e0b2eb9ac7b2c6a8cd3b8f15b071f">bm::sse2_bit_count</a> (const __m128i *block, const __m128i *block_end)</td></tr>
63
<tr><td class="memTemplParams" colspan="2">template<class Func > </td></tr>
64
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a8831a88ef538b3997d04d2ebf513160d">bm::sse2_bit_count_op</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, const __m128i *BMRESTRICT mask_block, Func sse2_func)</td></tr>
65
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a0479b7b6704c6ab64396e2365b8b5fa7">bm::sse2_bit_block_calc_count_change</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, unsigned *BMRESTRICT bit_count)</td></tr>
42
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 22 10:49:36 2009 for BitMagic by
67
<hr/><h2>Define Documentation</h2>
68
<a class="anchor" id="aa6a3504bb5449abf6f5ec084b2ddfac6"></a><!-- doxytag: member="bmsse2.h::VECT_AND_ARR" ref="aa6a3504bb5449abf6f5ec084b2ddfac6" args="(dst, src, src_end)" -->
70
<div class="memproto">
71
<table class="memname">
73
<td class="memname">#define VECT_AND_ARR</td>
75
<td class="paramtype">dst, </td>
78
<td class="paramkey"></td>
80
<td class="paramtype">src, </td>
83
<td class="paramkey"></td>
85
<td class="paramtype">src_end </td>
86
<td class="paramname"></td>
87
<td> ) </td>
88
<td> sse2_and_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td>
94
<p>Definition at line <a class="el" href="a00097_source.html#l00214">214</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
98
<a class="anchor" id="a7d425b68d8217dc37d33c660e39a61e1"></a><!-- doxytag: member="bmsse2.h::VECT_ANDNOT_ARR_2_MASK" ref="a7d425b68d8217dc37d33c660e39a61e1" args="(dst, src, src_end, mask)" -->
100
<div class="memproto">
101
<table class="memname">
103
<td class="memname">#define VECT_ANDNOT_ARR_2_MASK</td>
105
<td class="paramtype">dst, </td>
108
<td class="paramkey"></td>
110
<td class="paramtype">src, </td>
113
<td class="paramkey"></td>
115
<td class="paramtype">src_end, </td>
118
<td class="paramkey"></td>
120
<td class="paramtype">mask </td>
121
<td class="paramname"></td>
122
<td> ) </td>
123
<td> sse2_andnot_arr_2_mask((__m128i*)(dst), (__m128i*)(src), (__m128i*)(src_end), mask)</td>
129
<p>Definition at line <a class="el" href="a00097_source.html#l00193">193</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
133
<a class="anchor" id="ae022e7bc509d97359a348393a6b25b99"></a><!-- doxytag: member="bmsse2.h::VECT_BITCOUNT" ref="ae022e7bc509d97359a348393a6b25b99" args="(first, last)" -->
134
<div class="memitem">
135
<div class="memproto">
136
<table class="memname">
138
<td class="memname">#define VECT_BITCOUNT</td>
140
<td class="paramtype">first, </td>
143
<td class="paramkey"></td>
145
<td class="paramtype">last </td>
146
<td class="paramname"></td>
147
<td> ) </td>
148
<td> sse2_bit_count((__m128i*) (first), (__m128i*) (last))</td>
154
<p>Definition at line <a class="el" href="a00097_source.html#l00196">196</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
158
<a class="anchor" id="a3459200618dab65142340f1abd760eb9"></a><!-- doxytag: member="bmsse2.h::VECT_BITCOUNT_AND" ref="a3459200618dab65142340f1abd760eb9" args="(first, last, mask)" -->
159
<div class="memitem">
160
<div class="memproto">
161
<table class="memname">
163
<td class="memname">#define VECT_BITCOUNT_AND</td>
165
<td class="paramtype">first, </td>
168
<td class="paramkey"></td>
170
<td class="paramtype">last, </td>
173
<td class="paramkey"></td>
175
<td class="paramtype">mask </td>
176
<td class="paramname"></td>
177
<td> ) </td>
178
<td> sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_and)</td>
184
<p>Definition at line <a class="el" href="a00097_source.html#l00199">199</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
188
<a class="anchor" id="a07583d48db4ede7eadbc3156e9dd7d3b"></a><!-- doxytag: member="bmsse2.h::VECT_BITCOUNT_OR" ref="a07583d48db4ede7eadbc3156e9dd7d3b" args="(first, last, mask)" -->
189
<div class="memitem">
190
<div class="memproto">
191
<table class="memname">
193
<td class="memname">#define VECT_BITCOUNT_OR</td>
195
<td class="paramtype">first, </td>
198
<td class="paramkey"></td>
200
<td class="paramtype">last, </td>
203
<td class="paramkey"></td>
205
<td class="paramtype">mask </td>
206
<td class="paramname"></td>
207
<td> ) </td>
208
<td> sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_or)</td>
214
<p>Definition at line <a class="el" href="a00097_source.html#l00202">202</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
218
<a class="anchor" id="a98aaf230431767be4838323266d0b493"></a><!-- doxytag: member="bmsse2.h::VECT_BITCOUNT_SUB" ref="a98aaf230431767be4838323266d0b493" args="(first, last, mask)" -->
219
<div class="memitem">
220
<div class="memproto">
221
<table class="memname">
223
<td class="memname">#define VECT_BITCOUNT_SUB</td>
225
<td class="paramtype">first, </td>
228
<td class="paramkey"></td>
230
<td class="paramtype">last, </td>
233
<td class="paramkey"></td>
235
<td class="paramtype">mask </td>
236
<td class="paramname"></td>
237
<td> ) </td>
238
<td> sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_sub)</td>
244
<p>Definition at line <a class="el" href="a00097_source.html#l00208">208</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
248
<a class="anchor" id="a9954c72d227a3ca78df22a56efad6baf"></a><!-- doxytag: member="bmsse2.h::VECT_BITCOUNT_XOR" ref="a9954c72d227a3ca78df22a56efad6baf" args="(first, last, mask)" -->
249
<div class="memitem">
250
<div class="memproto">
251
<table class="memname">
253
<td class="memname">#define VECT_BITCOUNT_XOR</td>
255
<td class="paramtype">first, </td>
258
<td class="paramkey"></td>
260
<td class="paramtype">last, </td>
263
<td class="paramkey"></td>
265
<td class="paramtype">mask </td>
266
<td class="paramname"></td>
267
<td> ) </td>
268
<td> sse2_bit_count_op((__m128i*) (first), (__m128i*) (last), (__m128i*) (mask), sse2_xor)</td>
274
<p>Definition at line <a class="el" href="a00097_source.html#l00205">205</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
278
<a class="anchor" id="a72b713f259e0542169a1228bebadcede"></a><!-- doxytag: member="bmsse2.h::VECT_COPY_BLOCK" ref="a72b713f259e0542169a1228bebadcede" args="(dst, src, src_end)" -->
279
<div class="memitem">
280
<div class="memproto">
281
<table class="memname">
283
<td class="memname">#define VECT_COPY_BLOCK</td>
285
<td class="paramtype">dst, </td>
288
<td class="paramkey"></td>
290
<td class="paramtype">src, </td>
293
<td class="paramkey"></td>
295
<td class="paramtype">src_end </td>
296
<td class="paramname"></td>
297
<td> ) </td>
298
<td> sse2_copy_block((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td>
304
<p>Definition at line <a class="el" href="a00097_source.html#l00226">226</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
308
<a class="anchor" id="aa31c7d6d7d4cd67e1cc86c08221446ce"></a><!-- doxytag: member="bmsse2.h::VECT_INVERT_ARR" ref="aa31c7d6d7d4cd67e1cc86c08221446ce" args="(first, last)" -->
309
<div class="memitem">
310
<div class="memproto">
311
<table class="memname">
313
<td class="memname">#define VECT_INVERT_ARR</td>
315
<td class="paramtype">first, </td>
318
<td class="paramkey"></td>
320
<td class="paramtype">last </td>
321
<td class="paramname"></td>
322
<td> ) </td>
323
<td> sse2_invert_arr(first, last);</td>
329
<p>Definition at line <a class="el" href="a00097_source.html#l00211">211</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
333
<a class="anchor" id="ae3cdeec275429ea0d60668da63e96df8"></a><!-- doxytag: member="bmsse2.h::VECT_OR_ARR" ref="ae3cdeec275429ea0d60668da63e96df8" args="(dst, src, src_end)" -->
334
<div class="memitem">
335
<div class="memproto">
336
<table class="memname">
338
<td class="memname">#define VECT_OR_ARR</td>
340
<td class="paramtype">dst, </td>
343
<td class="paramkey"></td>
345
<td class="paramtype">src, </td>
348
<td class="paramkey"></td>
350
<td class="paramtype">src_end </td>
351
<td class="paramname"></td>
352
<td> ) </td>
353
<td> sse2_or_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td>
359
<p>Definition at line <a class="el" href="a00097_source.html#l00217">217</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
363
<a class="anchor" id="acefd3b9d39a2e2fb0c9d2aa5c3812e0b"></a><!-- doxytag: member="bmsse2.h::VECT_SET_BLOCK" ref="acefd3b9d39a2e2fb0c9d2aa5c3812e0b" args="(dst, dst_end, value)" -->
364
<div class="memitem">
365
<div class="memproto">
366
<table class="memname">
368
<td class="memname">#define VECT_SET_BLOCK</td>
370
<td class="paramtype">dst, </td>
373
<td class="paramkey"></td>
375
<td class="paramtype">dst_end, </td>
378
<td class="paramkey"></td>
380
<td class="paramtype">value </td>
381
<td class="paramname"></td>
382
<td> ) </td>
383
<td> sse2_set_block((__m128i*) dst, (__m128i*) (dst_end), (value))</td>
389
<p>Definition at line <a class="el" href="a00097_source.html#l00229">229</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
393
<a class="anchor" id="af079345cbcb256bb6216c0446fd775f2"></a><!-- doxytag: member="bmsse2.h::VECT_SUB_ARR" ref="af079345cbcb256bb6216c0446fd775f2" args="(dst, src, src_end)" -->
394
<div class="memitem">
395
<div class="memproto">
396
<table class="memname">
398
<td class="memname">#define VECT_SUB_ARR</td>
400
<td class="paramtype">dst, </td>
403
<td class="paramkey"></td>
405
<td class="paramtype">src, </td>
408
<td class="paramkey"></td>
410
<td class="paramtype">src_end </td>
411
<td class="paramname"></td>
412
<td> ) </td>
413
<td> sse2_sub_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td>
419
<p>Definition at line <a class="el" href="a00097_source.html#l00220">220</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
423
<a class="anchor" id="a1f520ac49859f992de5c00f43b851179"></a><!-- doxytag: member="bmsse2.h::VECT_XOR_ARR" ref="a1f520ac49859f992de5c00f43b851179" args="(dst, src, src_end)" -->
424
<div class="memitem">
425
<div class="memproto">
426
<table class="memname">
428
<td class="memname">#define VECT_XOR_ARR</td>
430
<td class="paramtype">dst, </td>
433
<td class="paramkey"></td>
435
<td class="paramtype">src, </td>
438
<td class="paramkey"></td>
440
<td class="paramtype">src_end </td>
441
<td class="paramname"></td>
442
<td> ) </td>
443
<td> sse2_xor_arr((__m128i*) dst, (__m128i*) (src), (__m128i*) (src_end))</td>
449
<p>Definition at line <a class="el" href="a00097_source.html#l00223">223</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
453
<a class="anchor" id="a9b8caa31ab90cbfbc99b5728352e5456"></a><!-- doxytag: member="bmsse2.h::VECT_XOR_ARR_2_MASK" ref="a9b8caa31ab90cbfbc99b5728352e5456" args="(dst, src, src_end, mask)" -->
454
<div class="memitem">
455
<div class="memproto">
456
<table class="memname">
458
<td class="memname">#define VECT_XOR_ARR_2_MASK</td>
460
<td class="paramtype">dst, </td>
463
<td class="paramkey"></td>
465
<td class="paramtype">src, </td>
468
<td class="paramkey"></td>
470
<td class="paramtype">src_end, </td>
473
<td class="paramkey"></td>
475
<td class="paramtype">mask </td>
476
<td class="paramname"></td>
477
<td> ) </td>
478
<td> sse2_xor_arr_2_mask((__m128i*)(dst), (__m128i*)(src), (__m128i*)(src_end), mask)</td>
484
<p>Definition at line <a class="el" href="a00097_source.html#l00190">190</a> of file <a class="el" href="a00097_source.html">bmsse2.h</a>.</p>
489
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Jan 8 20:09:19 2010 for BitMagic by
43
490
<a href="http://www.doxygen.org/index.html">
44
491
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>