Есть ли способ перестроить инструкцию _mm_slli_si128
в AVX2, чтобы сдвинуть регистр __mm256i
на x байтов?
Кажется, что _mm256_slli_si256
выполняет два _mm_slli_si128
в [127: 0] и [255: 128].
Левый сдвиг должен работать на __m256i
следующим образом:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ..., 32] -> [2, 3, 4, 5, 6, 7, 8, 9, ..., 0]
Я видел в нить, что можно создать сдвиг с _mm256_permutevar8x32_ps
для 32 бит. Но мне нужно более общее решение для перехода на x байтов. Кто-нибудь уже решил решение этой проблемы?