Architectural support for SWAR text processing with parallel bit streams: the inductive doubling principle