Je souhaite extraire 8 bits d'une variable de registre __mm256i src
avec 8 positions spécifiées par un autre __mm256i offset
qui est composé de 8 entiers. Par exemple: si offset
est [1,3,5,21,100,200,201,202]
, je veux obtenir les 1er, 3ème, 5ème, 100ème, 200ème, 201ème, 202ème bits de src
et les emballer dans un int8
.Extraction de bits avec SIMD
Cette question est similaire à Extracting bits using bit manipulation, mais je veux une solution avec des instructions SIMD, car elle est beaucoup plus rapide.
il fonctionne parfaitement. – jianqiang
Je me demande si 'VPSHUFBITQMB' aidera ici. Bien que nous ne verrons pas cette instruction jusqu'à Ice Lake. – Mysticial