7#include <botan/argon2.h>
9#include <botan/compiler.h>
10#include <botan/internal/isa_extn.h>
11#include <botan/internal/simd_4x64.h>
45BOTAN_FN_ISA_AVX2
void Argon2::blamka_avx2(uint64_t N[128], uint64_t T[128]) {
46 for(
size_t i = 0; i != 8; ++i) {
54 A.store_le(&T[16 * i + 4 * 0]);
55 B.store_le(&T[16 * i + 4 * 1]);
56 C.store_le(&T[16 * i + 4 * 2]);
57 D.store_le(&T[16 * i + 4 * 3]);
60 for(
size_t i = 0; i != 8; ++i) {
68 A.store_le2(&T[2 * i + 32 * 0], &T[2 * i + 32 * 0 + 16]);
69 B.store_le2(&T[2 * i + 32 * 1], &T[2 * i + 32 * 1 + 16]);
70 C.store_le2(&T[2 * i + 32 * 2], &T[2 * i + 32 * 2 + 16]);
71 D.store_le2(&T[2 * i + 32 * 3], &T[2 * i + 32 * 3 + 16]);
74 for(
size_t i = 0; i != 128 / 8; ++i) {
82 n0.store_le(&N[8 * i]);
83 n1.store_le(&N[8 * i + 4]);
static void twist(SIMD_4x64 &B, SIMD_4x64 &C, SIMD_4x64 &D)
static BOTAN_FN_ISA_SIMD_4X64 SIMD_4x64 load_le2(const void *inl, const void *inh)
static BOTAN_FN_ISA_SIMD_4X64 SIMD_4x64 load_le(const void *in)
static BOTAN_FN_ISA_SIMD_4X64 SIMD_4x64 mul2_32(SIMD_4x64 x, SIMD_4x64 y)
static void untwist(SIMD_4x64 &B, SIMD_4x64 &C, SIMD_4x64 &D)
#define BOTAN_FORCE_INLINE