Cómo convertir eficientemente un mapa de bits de 8 bits a una matriz de enteros 0/1 con x86 SIMD

Quiero convertir un entero de 8 bits en una matriz de tamaño 8 con cada valor que contenga el valor de bit de un entero.

Por ejemplo: tengoint8_t x = 8; Quiero convertir esto aint8_t array_x = {0,0,0,0,1,0,0,0};

Esto tiene que hacerse de manera eficiente, ya que este cálculo es parte del bloque de procesamiento de señal. ¿Hay una manera eficiente de hacer esto? Verifiqué la mezcla de las instrucciones. No se ajustaba a mis requisitos cuando tenía elementos de matriz de tamaño de 8 bits. la plataforma de desarrollo es AMD Ryzen.

Respuestas a la pregunta(2)

Su respuesta a la pregunta