Created
January 13, 2017 00:45
-
-
Save merryhime/88e8cef10af08f0ea0f7ba6d364fe957 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BbAa contains BBBBbbbbAAAAaaaa | |
DdCc contains DDDDddddCCCCcccc | |
we want: DDDDCCCCBBBBAAAA | |
we want: ddddccccbbbbaaaa | |
const auto process_pair = [](const __m256i BbAa, const __m256i DdCc) { | |
const __m256i DbCa = _mm256_blend_epi32(BbAa, DdCc, 0b11001100); | |
const __m256i dBcA = _mm256_blend_epi32(BbAa, DdCc, 0b00110011); | |
const __m256i DCba = _mm256_permute4x64_epi64(DbCa, 0b11011000); | |
const __m256i dcBA = _mm256_permute4x64_epi64(dBcA, 0b11011000); | |
const __m256i DCBA = _mm256_blend_epi32(DCba, dcBA, 0b00001111); | |
const __m256i dcba = _mm256_blend_epi32(DCba, dcBA, 0b11110000); | |
return std::make_tuple(dcba, DCBA); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment