1
0
Fork 0
mirror of https://github.com/BLAKE3-team/BLAKE3 synced 2024-05-09 03:26:16 +02:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Sriranga Veeraraghavan 8e4662b61c
Merge bab101ce8d into 4ec3be8bfa 2024-04-06 12:04:18 +08:00
Jack O'Connor 4ec3be8bfa format the state matrix better in reference_impl.rs 2024-03-20 15:44:05 -07:00
Sriranga Veeraraghavan bab101ce8d
minor fixes for Xcode 14.2 warnings when building BLAKE3 with neon enabled 2023-09-11 09:50:55 -07:00
3 changed files with 14 additions and 18 deletions

View File

@ -89,6 +89,7 @@ static void cpuidex(uint32_t out[4], uint32_t id, uint32_t sid) {
#endif
enum cpu_feature {
NONE = 0,
SSE2 = 1 << 0,
SSSE3 = 1 << 1,
SSE41 = 1 << 2,
@ -265,11 +266,11 @@ void blake3_hash_many(const uint8_t *const *inputs, size_t num_inputs,
blake3_hash_many_neon(inputs, num_inputs, blocks, key, counter,
increment_counter, flags, flags_start, flags_end, out);
return;
#endif
#else
blake3_hash_many_portable(inputs, num_inputs, blocks, key, counter,
increment_counter, flags, flags_start, flags_end,
out);
#endif
}
// The dynamically detected SIMD degree of the current platform.

View File

@ -279,6 +279,10 @@ void blake3_hash_many_neon(const uint8_t *const *inputs, size_t num_inputs,
uint64_t counter, bool increment_counter,
uint8_t flags, uint8_t flags_start,
uint8_t flags_end, uint8_t *out);
void blake3_hash4_neon(const uint8_t *const *inputs, size_t blocks,
const uint32_t key[8], uint64_t counter,
bool increment_counter, uint8_t flags,
uint8_t flags_start, uint8_t flags_end, uint8_t *out);
#endif

View File

@ -78,23 +78,14 @@ fn compress(
block_len: u32,
flags: u32,
) -> [u32; 16] {
let counter_low = counter as u32;
let counter_high = (counter >> 32) as u32;
#[rustfmt::skip]
let mut state = [
chaining_value[0],
chaining_value[1],
chaining_value[2],
chaining_value[3],
chaining_value[4],
chaining_value[5],
chaining_value[6],
chaining_value[7],
IV[0],
IV[1],
IV[2],
IV[3],
counter as u32,
(counter >> 32) as u32,
block_len,
flags,
chaining_value[0], chaining_value[1], chaining_value[2], chaining_value[3],
chaining_value[4], chaining_value[5], chaining_value[6], chaining_value[7],
IV[0], IV[1], IV[2], IV[3],
counter_low, counter_high, block_len, flags,
];
let mut block = *block_words;