Changeset View
Changeset View
Standalone View
Standalone View
src/crypto/sha256_avx2.cpp
Show First 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | inline void Write8(uint8_t *out, int offset, __m256i v) { | ||||
WriteLE32(out + 32 + offset, _mm256_extract_epi32(v, 6)); | WriteLE32(out + 32 + offset, _mm256_extract_epi32(v, 6)); | ||||
WriteLE32(out + 64 + offset, _mm256_extract_epi32(v, 5)); | WriteLE32(out + 64 + offset, _mm256_extract_epi32(v, 5)); | ||||
WriteLE32(out + 96 + offset, _mm256_extract_epi32(v, 4)); | WriteLE32(out + 96 + offset, _mm256_extract_epi32(v, 4)); | ||||
WriteLE32(out + 128 + offset, _mm256_extract_epi32(v, 3)); | WriteLE32(out + 128 + offset, _mm256_extract_epi32(v, 3)); | ||||
WriteLE32(out + 160 + offset, _mm256_extract_epi32(v, 2)); | WriteLE32(out + 160 + offset, _mm256_extract_epi32(v, 2)); | ||||
WriteLE32(out + 192 + offset, _mm256_extract_epi32(v, 1)); | WriteLE32(out + 192 + offset, _mm256_extract_epi32(v, 1)); | ||||
WriteLE32(out + 224 + offset, _mm256_extract_epi32(v, 0)); | WriteLE32(out + 224 + offset, _mm256_extract_epi32(v, 0)); | ||||
} | } | ||||
} | } // namespace | ||||
void Transform_8way(uint8_t *out, const uint8_t *in) { | void Transform_8way(uint8_t *out, const uint8_t *in) { | ||||
// Transform 1 | // Transform 1 | ||||
__m256i a = K(0x6a09e667ul); | __m256i a = K(0x6a09e667ul); | ||||
__m256i b = K(0xbb67ae85ul); | __m256i b = K(0xbb67ae85ul); | ||||
__m256i c = K(0x3c6ef372ul); | __m256i c = K(0x3c6ef372ul); | ||||
__m256i d = K(0xa54ff53aul); | __m256i d = K(0xa54ff53aul); | ||||
__m256i e = K(0x510e527ful); | __m256i e = K(0x510e527ful); | ||||
▲ Show 20 Lines • Show All 331 Lines • ▼ Show 20 Lines | void Transform_8way(uint8_t *out, const uint8_t *in) { | ||||
Write8(out, 4, Add(b, K(0xbb67ae85ul))); | Write8(out, 4, Add(b, K(0xbb67ae85ul))); | ||||
Write8(out, 8, Add(c, K(0x3c6ef372ul))); | Write8(out, 8, Add(c, K(0x3c6ef372ul))); | ||||
Write8(out, 12, Add(d, K(0xa54ff53aul))); | Write8(out, 12, Add(d, K(0xa54ff53aul))); | ||||
Write8(out, 16, Add(e, K(0x510e527ful))); | Write8(out, 16, Add(e, K(0x510e527ful))); | ||||
Write8(out, 20, Add(f, K(0x9b05688cul))); | Write8(out, 20, Add(f, K(0x9b05688cul))); | ||||
Write8(out, 24, Add(g, K(0x1f83d9abul))); | Write8(out, 24, Add(g, K(0x1f83d9abul))); | ||||
Write8(out, 28, Add(h, K(0x5be0cd19ul))); | Write8(out, 28, Add(h, K(0x5be0cd19ul))); | ||||
} | } | ||||
} | } // namespace sha256d64_avx2 | ||||
#endif | #endif |