{ "_type": "SearchResponse", "queryContext": { "originalQuery": "swar integer" }, "webPages": { "webSearchUrl": "https://www.bing.com/search?q=swar+integer", "totalEstimatedMatches": 895000, "value": [ { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.0", "name": "A SWAR Algorithm for Popcount - playing with pointers", "url": "https://www.playingwithpointers.com/blog/swar.html", "isFamilyFriendly": true, "displayUrl": "https://www.playingwithpointers.com/blog/swar.html", "snippet": "A SWAR Algorithm for Popcount. Mar 2, 2013. An interesting way to get the popcount, or the number of bits set in an integer is via a SWAR (SIMD Within A Register) algorithm. While its performance is very good (16 instructions when compiled with gcc -O3), why the algorithm works is somewhat opaque:", "dateLastCrawled": "2021-10-10T22:08:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.1", "name": "IP Cores - LEON SIMD-within-a-Register Arithmetic | daiteq", "url": "https://www.daiteq.com/en/products/swar", "isFamilyFriendly": true, "displayUrl": "https://www.daiteq.com/en/products/swar", "snippet": "The SWAR instruction extensions are implemented as a SWAR unit that is connected in parallel to the integer ALU in the LEON2 integer pipeline (iu.vhd). The SWAR unit contains one or more SWAR modules and an optional module with SWAR accumulators. The actual configuration of the SWAR unit can be selected by the user before LEON2 synthesis using ...", "dateLastCrawled": "2021-11-13T17:38:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.2", "name": "Technical Summary: SWAR Technology", "url": "http://aggregate.org/SWAR/over.html", "isFamilyFriendly": true, "displayUrl": "aggregate.org/SWAR/over.html", "snippet": "Some SWAR operations can be performed trivially using ordinary 32-bit integer operations, without concern for the fact that the operation is really intended to operate independently in parallel on these 8-bit fields. We call any such SWAR operation polymorphic, since the function is unaffected by the field types (sizes).", "dateLastCrawled": "2021-10-13T20:52:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.3", "name": "c++ - How does this algorithm to count the number of set ...", "url": "https://stackoverflow.com/questions/22081738/how-does-this-algorithm-to-count-the-number-of-set-bits-in-a-32-bit-integer-work", "isFamilyFriendly": true, "displayUrl": "https://stackoverflow.com/questions/22081738", "snippet": "int SWAR(unsigned int i) { i = i - ((i >> 1) & 0x55555555); i = (i & 0x33333333) + ((i >> 2) & 0x33333333); return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24; } I have seen this code that counts the number of bits equals to 1 in 32-bit integer, and I noticed that its performance is better than __builtin_popcount but I can't understand ...", "dateLastCrawled": "2021-09-26T08:17:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.4", "name": "Subtracting packed 8-bit integers in an 64-bit integer by ...", "url": "https://stackoverflow.com/questions/59637731/subtracting-packed-8-bit-integers-in-an-64-bit-integer-by-1-in-parallel-swar-wi", "isFamilyFriendly": true, "displayUrl": "https://stackoverflow.com/questions/59637731", "snippet": "Subtracting packed 8-bit integers in an 64-bit integer by 1 in parallel, SWAR without hardware SIMD. Ask Question Asked 1 year, 9 months ago. Active 1 year, 9 months ago. Viewed 5k times 79 14. If I have a 64-bit integer that I'm interpreting as an array of packed 8-bit integers with 8 elements. ...", "dateLastCrawled": "2021-10-20T14:12:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.5", "name": "Subtracting packed 8-bit integers in an 64-bit integer by ...", "url": "https://newbedev.com/subtracting-packed-8-bit-integers-in-an-64-bit-integer-by-1-in-parallel-swar-without-hardware-simd", "isFamilyFriendly": true, "displayUrl": "https://newbedev.com/subtracting-packed-8-bit-integers-in-an-64-bit-integer-by-1-in...", "snippet": "SWAR sub z = x - y z = ((x | H) - (y &~H)) ^ ((x ^~y) & H) with H defined as 0x8080808080808080U (i.e. the MSBs of each packed integer). For a decrement, y is 0x0101010101010101U. We know that y has all of its MSBs clear, so we can skip one of the mask steps (i.e. y & ~H is the same as y in our case). The calculation proceeds as follows:", "dateLastCrawled": "2021-11-06T03:26:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.6", "name": "How to count the number of set bits in a 32-bit integer ...", "url": "https://newbedev.com/how-to-count-the-number-of-set-bits-in-a-32-bit-integer", "isFamilyFriendly": true, "displayUrl": "https://newbedev.com/how-to-count-the-number-of-set-bits-in-a-32-bit-integer", "snippet": "This bitwise-SWAR algorithm could parallelize to be done in multiple vector elements at once, instead of in a single integer register, for a speedup on CPUs with SIMD but no usable popcount instruction. (e.g. x86-64 code that has to run on any CPU, not just Nehalem or later.)", "dateLastCrawled": "2021-11-12T09:18:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.7", "name": "GitHub - swar/Swar-Chia-Plot-Manager: This is a Cross ...", "url": "https://github.com/swar/Swar-Chia-Plot-Manager", "isFamilyFriendly": true, "displayUrl": "https://github.com/swar/Swar-Chia-Plot-Manager", "snippet": "This is a Cross-Platform Plot Manager for Chia Plotting that is simple, easy-to-use, and reliable. - GitHub - swar/Swar-Chia-Plot-Manager: This is a Cross-Platform Plot Manager for Chia Plotting that is simple, easy-to-use, and reliable.", "dateLastCrawled": "2021-11-14T20:27:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.8", "name": "The Aggregate Magic Algorithms", "url": "http://aggregate.ee.engr.uky.edu/MAGIC/", "isFamilyFriendly": true, "displayUrl": "aggregate.ee.engr.uky.edu/MAGIC", "snippet": "Given a binary integer value x, the floor of the base 2 log of that number efficiently can be computed by the application of two variable-precision SWAR algorithms. The first \"folds\" the upper bits into the lower bits to construct a bit vector with the same most significant 1 as x , but all 1's below it.", "dateLastCrawled": "2021-11-15T18:54:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.9", "name": "ESA IP core extensions for LEON2FT - microelectronics.esa.int", "url": "http://microelectronics.esa.int/finalreport/FinalPresentation-ESA-IP-CoreExtensions-2020-05-18.pdf", "isFamilyFriendly": true, "displayUrl": "microelectronics.esa.int/finalreport/FinalPresentation-ESA-IP-CoreExtensions-2020-05...", "snippet": "3. +Integer argument for PRN code expansion and carrier generation, no SWAR, buffers 4. +SWAR for demodulation 5. +SWAR for correlation 6. +SWAR for sine/cosine lookup 7. +fused carrier generation and demodulation 8. +fused correlation 9. +just one PRN code expanded for all E,P,L 10. +HW support for PRN code expansion 11. +downsampling 1:3 12 ...", "dateLastCrawled": "2021-09-10T00:13:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.10", "name": "[Solved] TypeError: String Indices Must be Integers ...", "url": "https://www.pythonpool.com/string-indices-must-be-integers-solved/", "isFamilyFriendly": true, "displayUrl": "https://www.pythonpool.com/string-indices-must-be-integers-solved", "snippet": "Explanation: Firstly, we have taken an input string as str. Str = Pythonpool. Then, we have taken a variable p in which we have passed the index value as an integer in the range of the string. The range of index of string starts from 0 and ends at the length of string- 1. At last, we have printed the output.", "dateLastCrawled": "2021-11-15T13:11:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.11", "name": "CS 641 Lecture", "url": "https://www.cs.uaf.edu/2012/spring/cs641/lecture/02_14_SIMD.html", "isFamilyFriendly": true, "displayUrl": "https://www.cs.uaf.edu/2012/spring/cs641/lecture/02_14_SIMD.html", "snippet": "This use of bitwise operations is often called \"SIMD within a register (SWAR)\" or \"word-SIMD\"; see Sean Anderson's \"Bit Twiddling Hacks\" for a variety of amazing examples. Back in the 1980's, \"vector\" machines were quite popular in supercomputing centers.", "dateLastCrawled": "2021-09-18T18:28:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.12", "name": "acf/an_itoa.c at master · appnexus/acf · GitHub", "url": "https://github.com/appnexus/acf/blob/master/src/an_itoa.c", "isFamilyFriendly": true, "displayUrl": "https://github.com/appnexus/acf/blob/master/src/an_itoa.c", "snippet": "* The basic idea is to use SWAR (SIMD within a register) and perform * low-precision arithmetic on several values in parallel. * * Most non-obviousness lies in the conversion of integer division * constants to multiplication, shift and mask by hand. Decent * compilers do it for scalars, but we can't easily express a SWAR * integer division. *", "dateLastCrawled": "2021-08-28T01:44:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.13", "name": "XXHash | Richard Startin’s Blog", "url": "https://richardstartin.github.io/posts/xxhash", "isFamilyFriendly": true, "displayUrl": "https://richardstartin.github.io/posts/xxhash", "snippet": "XXHash is a fast (the XX stands for extremely) hash algorithm designed by Yann Collet which can hash data faster than it can be copied. This is not unreasonable: copying memory requires that the data be both read and written, yet producing a hash can get away with just reading the data; the result is of negligible size. Nevertheless, XXHash, which is used as the checksum in the LZ4 frame ...", "dateLastCrawled": "2021-11-15T23:20:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.14", "name": "High Performance Programming via SIMD: Single Instruction ...", "url": "https://www.cs.uaf.edu/courses/cs441/notes/simd/", "isFamilyFriendly": true, "displayUrl": "https://www.cs.uaf.edu/courses/cs441/notes/simd", "snippet": "High Performance Programming via SIMD: Single Instruction, Multiple Data. \"SIMD\" stands for Single Instruction Multiple Data: Single, meaning just one. Instruction, as in a machine code instruction, executed by hardware. Multiple, as in more than one--from 2 to a thousand or so. Data, as in floats or ints.", "dateLastCrawled": "2021-11-10T11:03:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.15", "name": "Linux Parallel Processing HOWTO: SIMD Within A Register (e ...", "url": "https://tldp.org/HOWTO/Parallel-Processing-HOWTO-4.html", "isFamilyFriendly": true, "displayUrl": "https://tldp.org/HOWTO/Parallel-Processing-HOWTO-4.html", "snippet": "Some SWAR operations can be performed trivially using ordinary 32-bit integer operations, without concern for the fact that the operation is really intended to operate independently in parallel on these 8-bit fields. We call any such SWAR operation polymorphic, since the function is unaffected by the field types (sizes).", "dateLastCrawled": "2021-08-16T04:33:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.16", "name": "Architectural Support for SWAR Text Processing with ...", "url": "https://www.cs.sfu.ca/~cameron/p337-cameron.pdf", "isFamilyFriendly": true, "displayUrl": "https://www.cs.sfu.ca/~cameron/p337-cameron.pdf", "snippet": "introduce a simple model and notation for SWAR operations in general and then present the four key features of IDISA. IDISA supports typical SWAR integer operations using a three-register model involving two input registers and one output register. Each register is of size N = 2K bits, for some integer K. Typical values of K for commodity proces-", "dateLastCrawled": "2021-09-13T01:59:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.17", "name": "Elizabeth Weaver - Tacoma/Pierce County Habitat F ...", "url": "https://www.zoominfo.com/p/Elizabeth-Weaver/1595144075", "isFamilyFriendly": true, "displayUrl": "https://www.zoominfo.com/p/Elizabeth-Weaver/1595144075", "snippet": "View Elizabeth Weaver's business profile as Grants Manager at Tacoma/Pierce County Habitat For Humanity. Find contact's direct phone number, email address, work history, and more.", "dateLastCrawled": "2021-09-15T09:22:00.0000000Z", "language": "en", "isNavigational": false }, { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.18", "name": "John Anderson (David), 62 - Bellevue, WA Has Court or ...", "url": "https://www.mylife.com/john-anderson/e13222362132", "isFamilyFriendly": true, "displayUrl": "https://www.mylife.com/john-anderson/e13222362132", "snippet": "John Anderson is 62 years old and was born on 09/01/1958. Previous to John's current city of Bellevue, WA, John Anderson lived in Everett WA. Sometimes John goes by various nicknames including Jon D Anderson, Jon D D Anderson, Jon David Jones, Jon D Jones and John D D Jones. For work these days, John is a Member at Flex Plan Services.", "dateLastCrawled": "2021-08-30T17:22:00.0000000Z", "language": "en", "isNavigational": false } ], "someResultsRemoved": true }, "rankingResponse": { "mainline": { "items": [ { "answerType": "WebPages", "resultIndex": 0, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.0" } }, { "answerType": "WebPages", "resultIndex": 1, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.1" } }, { "answerType": "WebPages", "resultIndex": 2, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.2" } }, { "answerType": "WebPages", "resultIndex": 3, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.3" } }, { "answerType": "WebPages", "resultIndex": 4, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.4" } }, { "answerType": "WebPages", "resultIndex": 5, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.5" } }, { "answerType": "WebPages", "resultIndex": 6, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.6" } }, { "answerType": "WebPages", "resultIndex": 7, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.7" } }, { "answerType": "WebPages", "resultIndex": 8, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.8" } }, { "answerType": "WebPages", "resultIndex": 9, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.9" } }, { "answerType": "WebPages", "resultIndex": 10, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.10" } }, { "answerType": "WebPages", "resultIndex": 11, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.11" } }, { "answerType": "WebPages", "resultIndex": 12, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.12" } }, { "answerType": "WebPages", "resultIndex": 13, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.13" } }, { "answerType": "WebPages", "resultIndex": 14, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.14" } }, { "answerType": "WebPages", "resultIndex": 15, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.15" } }, { "answerType": "WebPages", "resultIndex": 16, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.16" } }, { "answerType": "WebPages", "resultIndex": 17, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.17" } }, { "answerType": "WebPages", "resultIndex": 18, "value": { "id": "https://api.bing.microsoft.com/api/v7/#WebPages.18" } } ] } } }