假设我在一个 128 位变量/寄存器中有 16 个 ascii 字符(因此有 16 个 8 位数字)。我想创建一个位掩码,其中这些位将是高位,其位位置(索引)由这 16 个字符表示。
例如,如果由这 16 个字符组成的字符串是"CAD..."
,则在位掩码中第 67 位、第 65 位、第 68 位等应为 1。其余位应为 0。有什么特别有效的方法使用 SIMD 指令?
我知道其中一种技术是这样的加法:2^(67-1)+2^(65-1)+2^(68-1)+...
但这需要大量的操作。如果可能的话,我想用一个/两个操作/指令来做。
请让我知道一个解决方案。