41554 blogs · [ { "id": "01a0871c-e979-72e1-ab1b-8215b57e4531", "title": "SSE/AVX2: Generating mask where n leading (trailing) bytes are set", "url": "http://0x80.pl/notesen/2015-03-21-sse-generating-mask.html", "published_at": "2015-03-21T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b5ad1a8c", "title": "Not everything in AVX2 is 256-bit", "url": "http://0x80.pl/notesen/2015-03-21-avx2-is-not-256-bit.html", "published_at": "2015-03-21T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b63d62f1", "title": "Using SSE to convert from hexadecimal ASCII to number", "url": "http://0x80.pl/notesen/2014-10-22-sse-convert-hex-to-ascii.html", "published_at": "2014-10-22T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b7040672", "title": "Parsing decimal numbers --- part 2: SSE", "url": "http://0x80.pl/notesen/2014-10-15-parsing-decimal-numbers-part-2-sse.html", "published_at": "2014-10-15T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b7526f7e", "title": "Parsing decimal numbers --- part 1: SWAR", "url": "http://0x80.pl/notesen/2014-10-12-parsing-decimal-numbers-part-1-swar.html", "published_at": "2014-10-12T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b7b54e51", "title": "Using PEXT to convert from hexadecimal ASCII to number", "url": "http://0x80.pl/notesen/2014-10-09-pext-convert-ascii-hex-to-num.html", "published_at": "2014-10-09T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b88ab762", "title": "Using PEXT to convert from binary ASCII to number", "url": "http://0x80.pl/notesen/2014-10-06-pext-convert-ascii-bin-to-num.html", "published_at": "2014-10-06T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b969e577", "title": "Conversion numbers to octal representation", "url": "http://0x80.pl/notesen/2014-10-02-convert-to-oct.html", "published_at": "2014-10-02T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215b9f9de73", "title": "Determining if an integer is a power of 2 --- part 2", "url": "http://0x80.pl/notesen/2014-10-01-is-pow-2.html", "published_at": "2014-10-01T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215ba8d76ab", "title": "Conditionally fill word (for limited set of input values)", "url": "http://0x80.pl/notesen/2014-10-01-conditionally-fill-word.html", "published_at": "2014-10-01T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215bb7b9e97", "title": "Small win over compiler", "url": "http://0x80.pl/notesen/2014-09-30-win-over-compiler.html", "published_at": "2014-09-30T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215bbe2d883", "title": "Interpolation search revisited", "url": "http://0x80.pl/notesen/2014-09-25-interpolation-search.html", "published_at": "2014-09-25T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215bcd3dc5b", "title": "Software emulation of PDEP", "url": "http://0x80.pl/notesen/2014-09-23-pdep-soft-emu.html", "published_at": "2014-09-23T11:00:00+00:00" }, { "id": "01a0871c-e979-72e1-ab1b-8215bd6a8a7b", "title": "Conversion numbers to hexadecimal representation", "url": "http://0x80.pl/notesen/2014-09-21-convert-to-hex.html", "published_at": "2014-09-21T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479f9ebf900b", "title": "Conversion numbers to binary representation", "url": "http://0x80.pl/notesen/2014-09-11-convert-to-bin.html", "published_at": "2014-09-11T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479f9ecb22dc", "title": "C++ bitset vs array", "url": "http://0x80.pl/notesen/2014-03-22-cpp-bitset-vs-byteset.html", "published_at": "2014-03-22T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479f9f35d1fb", "title": "Quick and dirty ad-hoc git hosting", "url": "http://0x80.pl/notesen/2014-03-19-quick-git-server.html", "published_at": "2014-03-19T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479f9faf09da", "title": "Is const-correctness paranoia good?", "url": "http://0x80.pl/notesen/2014-03-19-const-correctness.html", "published_at": "2014-03-19T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa08a07a1", "title": "Scalar version of SSE move mask instruction", "url": "http://0x80.pl/notesen/2014-03-16-scalar-sse-movmask.html", "published_at": "2014-03-16T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa18806cd", "title": "SIMD-friendly Rabin-Karp modification", "url": "http://0x80.pl/notesen/2014-03-11-simd-friendly-karp-rabin.html", "published_at": "2014-03-11T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa1ea4902", "title": "C++ standard inaccuracy", "url": "http://0x80.pl/notesen/2014-03-11-cpp-standard.html", "published_at": "2014-03-11T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa27e738d", "title": "Integer log 10 of an unsigned integer --- SIMD version", "url": "http://0x80.pl/notesen/2014-03-09-simd-int-log-10.html", "published_at": "2014-03-09T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa2b3b69f", "title": "Mask for zero/non-zero bytes", "url": "http://0x80.pl/notesen/2014-03-09-mask-zero-nonzero-bytes.html", "published_at": "2014-03-09T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa2b4e831", "title": "GCC --- asm goto", "url": "http://0x80.pl/notesen/2014-03-09-asmgoto.html", "published_at": "2014-03-09T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa3a51de2", "title": "Slow-paths in GNU libc strstr", "url": "http://0x80.pl/notesen/2014-03-03-slow-strstr.html", "published_at": "2014-03-03T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa42e87b8", "title": "Penalties of errors in SSE floating point calculations", "url": "http://0x80.pl/notesen/2014-01-26-sse-penalties-of-errors.html", "published_at": "2014-01-26T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa5104647", "title": "x86 - ISA where 80% of instructions are unimportant", "url": "http://0x80.pl/notesen/2014-01-01-instruction-utilization.html", "published_at": "2014-01-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa5fa60b2", "title": "I accidentally created an infinite loop", "url": "http://0x80.pl/notesen/2013-12-30-infinite-loop.html", "published_at": "2013-12-30T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa6de41c0", "title": "Calculate floor value without FPU/SSE instruction", "url": "http://0x80.pl/notesen/2013-12-29-calculate-floor-without-fpu.html", "published_at": "2013-12-29T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa7540f2d", "title": "Convert float to int without FPU/SSE", "url": "http://0x80.pl/notesen/2013-12-27-convert-float-to-integer.html", "published_at": "2013-12-27T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa77be6ef", "title": "fopen a directory", "url": "http://0x80.pl/notesen/2013-12-25-fopen-directory.html", "published_at": "2013-12-25T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa7b461dd", "title": "x86 extensions are useless", "url": "http://0x80.pl/notesen/2013-12-12-instructions-usage.html", "published_at": "2013-12-12T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa87ad7d5", "title": "Problems with PDO for PostgreSQL on 32-bit machines", "url": "http://0x80.pl/notesen/2013-12-07-postgresql-pdo.html", "published_at": "2013-12-07T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa8abce3e", "title": "Encoding array of unsigned integers", "url": "http://0x80.pl/notesen/2013-11-23-integer-sequence-encoding.html", "published_at": "2013-11-23T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa8ebf019", "title": "FBSTP --- the most complex instruction in x86 ISA", "url": "http://0x80.pl/notesen/2013-11-07-fbstp.html", "published_at": "2013-11-07T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa96d940e", "title": "Short story about PostgreSQL SUM function", "url": "http://0x80.pl/notesen/2013-11-04-postresql-sum.html", "published_at": "2013-11-04T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fa99d71ce", "title": "PostgreSQL --- faster reads from static tables", "url": "http://0x80.pl/notesen/2013-11-02-postgres-reorder-tuples.html", "published_at": "2013-11-02T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faa1eba09", "title": "PostgreSQL: printf in PL/pgSQL", "url": "http://0x80.pl/notesen/2013-10-06-plpgsql-printf.html", "published_at": "2013-10-06T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faaa892da", "title": "SSE: trie lookup speedup", "url": "http://0x80.pl/notesen/2013-09-30-sse-trie.html", "published_at": "2013-09-30T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faaf1862d", "title": "Detecting intersection of convex polygons in 2D", "url": "http://0x80.pl/notesen/2013-09-15-convex-polygon-intersection.html", "published_at": "2013-09-15T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fabf0c971", "title": "PHP quirk", "url": "http://0x80.pl/notesen/2013-09-01-php-quirk.html", "published_at": "2013-09-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479facd61df0", "title": "Average of two unsigned integers", "url": "http://0x80.pl/notesen/2012-07-02-average-unsigned-ints.html", "published_at": "2012-07-02T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fad468e96", "title": "Speeding up LIKE '%text%' queries (at least in PostgeSQL)", "url": "http://0x80.pl/notesen/2012-05-25-sql-ngram-index.html", "published_at": "2012-05-25T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fad531766", "title": "SSE: conversion integers to decimal representation", "url": "http://0x80.pl/notesen/2011-10-21-sse-itoa.html", "published_at": "2011-10-21T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faddaf5ff", "title": "Traversing DAGs", "url": "http://0x80.pl/notesen/2011-04-11-traversing-dags.html", "published_at": "2011-04-11T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fae4780ac", "title": "DAWG as dictionary? Yes!", "url": "http://0x80.pl/notesen/2011-04-09-dawg-as-dictionary.html", "published_at": "2011-04-09T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fae4e7bb9", "title": "Python: C extensions --- sequence-like object", "url": "http://0x80.pl/notesen/2011-04-08-sequence-like-object.html", "published_at": "2011-04-08T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fae85abe8", "title": "Efficient trie representation", "url": "http://0x80.pl/notesen/2011-03-26-trie-representation.html", "published_at": "2011-03-26T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fae9b2af3", "title": "Python: test if object is iterable", "url": "http://0x80.pl/notesen/2011-02-26-python-is-iterable.html", "published_at": "2011-02-26T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faf37d476", "title": "Traversing tree without stack", "url": "http://0x80.pl/notesen/2011-02-17-traversing-trees.html", "published_at": "2011-02-17T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faf70000a", "title": "Branchless set mask if value greater or how to print hex values", "url": "http://0x80.pl/notesen/2010-06-09-brancheless-hex-print.html", "published_at": "2010-06-09T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faf7da226", "title": "Speedup reversing table of bytes", "url": "http://0x80.pl/notesen/2010-05-01-reverse-array-of-bytes.html", "published_at": "2010-05-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479faf82b07c", "title": "Determining if an integer is a power of 2", "url": "http://0x80.pl/notesen/2010-04-11-is-pow2.html", "published_at": "2010-04-11T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb03ba761", "title": "Brenchless conditional exchange", "url": "http://0x80.pl/notesen/2010-04-08-branchless-xchg.html", "published_at": "2010-04-08T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb0d4cfd7", "title": "STL: map with string as key --- access speedup", "url": "http://0x80.pl/notesen/2010-04-03-stl-map-of-strings.html", "published_at": "2010-04-03T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb1a83401", "title": "Fill word with selected bit", "url": "http://0x80.pl/notesen/2010-04-01-clone-bit.html", "published_at": "2010-04-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb2a1dc02", "title": "Branchless signum", "url": "http://0x80.pl/notesen/2010-04-01-branchless-signum.html", "published_at": "2010-04-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb35fa1e4", "title": "Transpose bits in byte using SIMD instructions", "url": "http://0x80.pl/notesen/2010-03-31-simd-transpose-bits.html", "published_at": "2010-03-31T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb3e0b601", "title": "PostgreSQL: get selected rows with given order", "url": "http://0x80.pl/notesen/2010-03-30-postgresq-get-rows-in-order.html", "published_at": "2010-03-30T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb497bf56", "title": "Join locate databases", "url": "http://0x80.pl/notesen/2008-12-03-join-locate.html", "published_at": "2008-12-03T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb4d83c5f", "title": "SSE4.1: PHMINPOSUW --- insertion sort", "url": "http://0x80.pl/notesen/2008-08-03-sse4-insertionsort.html", "published_at": "2008-08-03T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb4ef71b4", "title": "SSSE3: PMADDUBSW and image crossfading", "url": "http://0x80.pl/notesen/2008-06-21-sse4-crossfading.html", "published_at": "2008-06-21T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb5183496", "title": "SSE: conversion uint32 to float", "url": "http://0x80.pl/notesen/2008-06-18-sse-uint32-to-float.html", "published_at": "2008-06-18T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb5931020", "title": "Floating point tricks", "url": "http://0x80.pl/notesen/2008-06-15-fptricks.html", "published_at": "2008-06-15T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb5e72b52", "title": "RDTSC on Core2", "url": "http://0x80.pl/notesen/2008-06-08-rdtsc-on-core2.html", "published_at": "2008-06-08T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb64d98f0", "title": "PABSQ --- absolute value of two singed 64-bit numbers", "url": "http://0x80.pl/notesen/2008-06-08-pabsq.html", "published_at": "2008-06-08T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb694e556", "title": "GCC asm constraints", "url": "http://0x80.pl/notesen/2008-06-07-gcc-asm-constraints.html", "published_at": "2008-06-07T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb74ac293", "title": "SSSE3/SSE4: alpha blending --- operator over", "url": "http://0x80.pl/notesen/2008-06-03-sse4-alphaover.html", "published_at": "2008-06-03T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb7e8c3a6", "title": "SSE4: grater/less or equal relations for unsigned bytes/words", "url": "http://0x80.pl/notesen/2008-06-02-sse4-unsigned-gtlt.html", "published_at": "2008-06-02T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb7ed3a7f", "title": "16bpp/15bpp to 32bpp pixel conversions --- different methods", "url": "http://0x80.pl/notesen/2008-06-01-sse-pix16to32bpp.html", "published_at": "2008-06-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb860e85e", "title": "SSE: modify 32bpp images with lookup tables", "url": "http://0x80.pl/notesen/2008-06-01-sse-lookup32bpp.html", "published_at": "2008-06-01T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb8f823f2", "title": "SSE4 string search --- modification of Karp-Rabin algorithm", "url": "http://0x80.pl/notesen/2008-05-27-sse4-substring-locate.html", "published_at": "2008-05-27T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb8fbe57a", "title": "SSSE3: fast popcount", "url": "http://0x80.pl/notesen/2008-05-24-sse-popcount.html", "published_at": "2008-05-24T11:00:00+00:00" }, { "id": "01a0871c-e97a-7075-b012-479fb900d136", "title": "SSSE3: printing hex values", "url": "http://0x80.pl/notesen/2008-04-29-sse-hexprint.html", "published_at": "2008-04-29T11:00:00+00:00" } ] posts Claim your blog
Back to 0x80.pl
Blog · corpus.blog/blogs/0x80.pl/posts

0x80.pl

0x80.pl

2015

2014

2013

2012

2011

2010

2008