El truco de punto flotante que vectoriza clz y ctz

Vectorized CLZ and CTZ

El autor muestra cómo implementar clz y ctz vectorizados usando trucos de punto flotante: sustituir el entero en la mantisa de un double y restar para extraer el exponente. En Haswell, clz vectorizado corre a 0.45 ns por iteración frente a 1 ns del escalar. También explora alternativas con secuencias de Bruijn y una versión de 64 bits con vpsadbw que logra 0.63 ns.

En mi Haswell, esto corre a 0.45 ns por iteración, comparado con 1 ns para la versión escalar.

Más de este día

2026-10-12