Full Code of nickbabcock/highway-rs for AI

master 6e3fbcea9df8 cached
43 files
812.6 KB
384.4k tokens
354 symbols
1 requests
Download .txt
Showing preview only (839K chars total). Download the full file or copy to clipboard to get everything.
Repository: nickbabcock/highway-rs
Branch: master
Commit: 6e3fbcea9df8
Files: 43
Total size: 812.6 KB

Directory structure:
gitextract_xno9aspu/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       └── main.yml
├── .gitignore
├── .gitmodules
├── CHANGELOG.md
├── Cargo.toml
├── LICENSE.txt
├── README.md
├── assets/
│   ├── analysis.R
│   ├── avx-crash-1
│   ├── highway.csv
│   └── portable-crash-1
├── benches/
│   └── bench_hashes.rs
├── compare/
│   ├── Cargo.toml
│   └── benches/
│       └── bench_hashes.rs
├── examples/
│   ├── hwysum.rs
│   └── no_panic.rs
├── fuzz/
│   ├── .gitignore
│   ├── Cargo.toml
│   ├── build.rs
│   └── fuzz_targets/
│       └── fuzz_highway.rs
├── release.toml
├── src/
│   ├── aarch64.rs
│   ├── builder.rs
│   ├── hash.rs
│   ├── internal.rs
│   ├── key.rs
│   ├── lib.rs
│   ├── macros.rs
│   ├── portable.rs
│   ├── traits.rs
│   ├── wasm.rs
│   └── x86/
│       ├── avx.rs
│       ├── macros.rs
│       ├── mod.rs
│       ├── sse.rs
│       ├── v2x64u.rs
│       └── v4x64u.rs
└── tests/
    ├── aarch64.rs
    ├── hash.rs
    ├── properties.rs
    ├── traits.rs
    └── wasm.rs

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: cargo
  directory: "/"
  schedule:
    interval: daily
  open-pull-requests-limit: 10


================================================
FILE: .github/workflows/main.yml
================================================
name: ci
on:
  pull_request:
  push:
    branches:
    - master
  schedule:
  - cron: '00 01 * * *'

jobs:
  test:
    name: test
    env:
      # For some builds, we use cross to test on 32-bit and big-endian
      # systems.
      CARGO: cargo
      # When CARGO is set to CROSS, TARGET is set to `--target matrix.target`.
      TARGET:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        build:
        - pinned
        - stable
        - stable-32
        - big-endian
        - beta
        - nightly
        - macos
        - win-msvc
        - win-gnu
        - aarch64-unknown-linux-gnu
        include:
        - build: pinned
          os: ubuntu-latest
          rust: 1.59.0
        - build: stable
          os: ubuntu-latest
          rust: stable
        - build: stable-32
          os: ubuntu-latest
          rust: stable
          target: i686-unknown-linux-gnu
        - build: big-endian
          os: ubuntu-latest
          rust: stable
          target: powerpc64-unknown-linux-gnu
        - build: beta
          os: ubuntu-latest
          rust: beta
        - build: nightly
          os: ubuntu-latest
          rust: nightly
        - build: macos
          os: macos-latest
          rust: stable
        - build: win-msvc
          os: windows-latest
          rust: stable
        - build: win-gnu
          os: windows-latest
          rust: stable-x86_64-gnu
        - build: aarch64-unknown-linux-gnu
          os: ubuntu-latest
          rust: stable
          target: aarch64-unknown-linux-gnu
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        submodules: true

    - name: Install Rust
      uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ matrix.rust }}

    - name: Use Cross
      if: matrix.target != ''
      run: |
        cargo install cross
        echo "CARGO=cross" >> $GITHUB_ENV
        echo "TARGET=--target ${{ matrix.target }}" >> $GITHUB_ENV

    - name: Build
      run: ${{ env.CARGO }} build --verbose $TARGET

    - name: Build docs
      run: ${{ env.CARGO }} doc --verbose $TARGET

    - name: Tests
      if: matrix.build != 'pinned'
      run: ${{ env.CARGO }} test --verbose $TARGET

    - name: No Std Tests
      if: matrix.build != 'pinned'
      run: ${{ env.CARGO }} test --no-default-features --verbose $TARGET

      # If you are wondering why we run tests in release mode, it's
      # because sometimes tests in debug mode hide undefined behavior:
      # https://stackoverflow.com/q/52433389/433785
    - name: Release tests
      if: matrix.build != 'pinned'
      run: ${{ env.CARGO }} test --release --verbose $TARGET

    - name: No panic tests
      if: matrix.build != 'pinned'
      run: ${{ env.CARGO }} build --release --verbose $TARGET --example no_panic

    - name: Compile benchmarks
      if: matrix.build == 'stable'
      run: cargo bench --verbose --no-run $TARGET

    - name: Run miri
      if: matrix.build == 'nightly'
      run: |
        rustup toolchain install nightly --component miri
        cargo miri setup
        cargo miri test

    - name: Compile fuzz
      if: matrix.build == 'nightly'
      run: |
        cargo install cargo-fuzz
        cargo fuzz build fuzz_highway

  wasm:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - uses: actions/setup-node@v4
      with:
        node-version: 20

    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        targets: wasm32-unknown-unknown

    - name: Install wasm-pack
      run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

    - name: Build (no SIMD)
      run: RUSTFLAGS="-C target-feature=-simd128" cargo build --target wasm32-unknown-unknown

    - name: Run tests (with SIMD)
      run: RUSTFLAGS="-C target-feature=+simd128" wasm-pack test --node -- --verbose

  instructions:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        feature: ["-sse4.1,-avx2", "-sse4.1,+avx2", "+sse4.1,+avx2", "+sse4.1,-avx2"]
    steps:
    - uses: actions/checkout@v4
    - name: Test
      run: RUSTFLAGS="-C target-feature=${{matrix.feature}}" cargo test --verbose
    - name: No Std Tests
      run: RUSTFLAGS="-C target-feature=${{matrix.feature}}" cargo test --no-default-features --verbose


================================================
FILE: .gitignore
================================================
**/target
**/*.rs.bk
Cargo.lock


================================================
FILE: .gitmodules
================================================
[submodule "fuzz/highwayhash"]
	path = fuzz/highwayhash
	url = https://github.com/google/highwayhash.git


================================================
FILE: CHANGELOG.md
================================================
## v1.3.0 - 2025-01-11

- Add the ability to checkpoint hashing state and resume it with another hasher. This feature is designated as experimental until more feedback is gathered.
- Fix Wasm SIMD, provably does not panic anymore

## v1.2.0 - 2024-06-21

- x86 SSE implementation now provably can't panic
- `HighwayHasher` debug representation now exhaustive
- Removed all `unsafe` Wasm SIMD implementation at no cost

## v1.1.0 - 2023-06-30

This release contains only performance optimizations:

- `PortableHash` throughput increases by 10-15% for all input
- `HighwayHasher` throughput increases by 20-60% for inputs under 1KB
- All hashing implementations received size efficiency improvements

## v1.0.0 - 2023-02-28

v1.0 is a re-release of v0.8.1 with the following changes that should have no observable effect

- Update to 2021 edition
- Simplify buffer filling logic

## v0.8.1 - 2022-10-11

- Annotate hashing constructors with `#[must_use]`
- A small performance increase, mainly for the portable implementation (other hashers may benefited as well), by eliminating all emitted panics
- Minor pedantic clippy lints applied

## v0.8.0 - 2022-02-28

- The `HighwayBuilder` type has been removed in favor of the former alias `HighwayHasher`
- Add Neon SIMD implementation for aarch64 targets which enabled throughput improvements of over 4x. The downside with this implementation is that all aarch64 environments are assumed to support NEON SIMD. Thus, aarch64 environments without NEON SIMD are not supported.
- Minimum supported rust version updated to 1.59 for aarch64 targets

## v0.7.0 - 2021-12-12

- Update minimum supported rust to 1.54
- Add Wasm SIMD implementation for 3x performance gain. See readme for caveats and how to opt-in
- `no_std` builds will use a SIMD implementation when opted in at compile time

## v0.6.4 - 2021-04-16

Allow for forwards compatibility with later rust compilers due to changes in some AVX2 usage

## v0.6.3 - 2020-12-04

Extremely minor update that removes the last vestiges of `unsafe` from the portable implementation -- without sacrificing performance. No changes in behavior.

## v0.6.2 - 2020-11-19

Fix hash calculation on big endian platforms. This regression was introduced in v0.5.0 and all users are advised to upgrade.

## v0.6.1 - 2020-11-08

No code changes -- just some docs updates and this crate is now tagged with the `hasher` keyword.

## v0.6.0 - 2020-10-25

- `no_std` compatible when default cargo features are disabled. To get SIMD implementations, one will need to call the `force_new` constructors explicitly.
- All highway hash implementations now implement the `Hasher` and `Write` trait
- Make `HighwayHasher` an alias to `HighwayBuilder` and recommend the use of `HighwayHasher` in documentation

## v0.5.0 - 2020-06-24

- 60% throughput increase to the portable highway hash implementation

## v0.4.0 - 2020-05-09

- Highway-rs is now dependency free!
- Use rust 2018 edition
- **Breaking change**: hashes take an owned `Key` instead of a reference. This is not only better API design, but it could also lead to marginal better performance as the hash implementations would clone the reference regardless. Unfortunately, it is a breaking change, but one should only need to remove an ampersand.

## v0.3.0 - 2019-08-08

Allow the use of highway hash in standard rust collections

```rust
use std::collections::HashMap;
use highway::{HighwayBuildHasher, Key};
let mut map =
  HashMap::with_hasher(HighwayBuildHasher::new(Key([
    0xcbf29ce484222325,
    0xc3a5c85c97cb3127,
    0xb492b66fbe98f273,
    0x9ae16a3b2f90404f,
  ])));

map.insert(1, 2);
assert_eq!(map.get(&1), Some(&2));
```

Or if utilizing a key is not important, one can use the default

```rust
use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use highway::HighwayHasher;
let mut map =
  HashMap::with_hasher(BuildHasherDefault::<HighwayHasher>::default());

map.insert(1, 2);
assert_eq!(map.get(&1), Some(&2));
```

- Added clone implementations to many structures
- impl Default for HighwayBuilder

## v0.2.0 - 2019-05-25

- Change 128bit hash return type from u128 to [u64; 2] to match the return type from the reference implementation
- Change 256bit hash return type from (u128, u128) to [u64; 4] to match the return type from the reference implementation

You can use the following code to migrate the current return types to the old ones.

```rust
fn u64_to_u128(data: &[u64]) -> u128 {
    u128::from(data[0]) + (u128::from(data[1]) << 64)
}

fn u64_to_u256(data: &[u64]) -> (u128, u128) {
    (u64_to_u128(data), u64_to_u128(&data[2..]))
}
```

## v0.1.4 - 2018-10-01

- Fix: debug arithmetic overflow panic in portable hash

## v0.1.3 - 2018-09-30

- Remove `SseHash::finalize64` as part of public API (accidentally included)

## v0.1.2 - 2018-09-23

- Fix: AVX enabled hash could segfault on unaligned loads of user input.

## v0.1.1 - 2018-09-20

- Fix: SIMD enabled hash functions would return the improper response when not compiled with either an explicit `target-cpu=native` or if `target-feature=+avx2` was omitted

## v0.1.0 - 2018-09-19

- Initial Release


================================================
FILE: Cargo.toml
================================================
[package]
name = "highway"
version = "1.3.0"
authors = ["Nick Babcock <nbabcock19@hotmail.com>"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/nickbabcock/highway-rs"
categories = ["algorithms", "cryptography", "no-std"]
description = "Native Rust port of Google's HighwayHash, which makes use of SIMD instructions for a fast and strong hash function"
keywords = ["HighwayHash", "hasher", "hash", "simd", "avx"]
include = ["src/**/*.rs", "benches"]
edition = "2021"

[features]
default = ["std"]
std = []

[dev-dependencies]
quickcheck = "~1.0"
quickcheck_macros = "~1.1"
no-panic = "0.1"

[target.'cfg(target_family = "wasm")'.dev-dependencies]
criterion = { version = "< 0.4.0", default-features = false }
wasm-bindgen-test = "0.3"
getrandom = { version = "0.2", features = ["js"] }

[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
criterion = { version = "< 0.4.0" }

[[bench]]
name = "bench_hashes"
harness = false

# Required for the no_panic to work
[profile.release]
lto = "fat"
codegen-units = 1

[[example]]
name = "hwysum"
required-features = ["std"]


================================================
FILE: LICENSE.txt
================================================
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
![ci](https://github.com/nickbabcock/highway-rs/workflows/ci/badge.svg) [![](https://docs.rs/highway/badge.svg)](https://docs.rs/highway) [![Rust](https://img.shields.io/badge/rust-1.59%2B-blue.svg?maxAge=3600)](https://github.com/nickbabcock/highway-rs) [![Version](https://img.shields.io/crates/v/highway.svg?style=flat-square)](https://crates.io/crates/highway)

# Highway-rs

This crate is a native Rust port of [Google's HighwayHash](https://github.com/google/highwayhash), which is a fast, keyed, and strong hash function, whose output is hardware independent.

## Features

 - ✔ pure / stable rust
 - ✔ zero dependencies
 - ✔ generate consistent 64, 128, and 256bit hashes across all hardware
 - ✔ > 10 GB/s with SIMD (SSE 4.1 AVX 2, NEON) aware instructions on x86 and aarch64 architectures
 - ✔ > 3 GB/s on Wasm with the Wasm SIMD extension
 - ✔ > 1 GB/s hardware agnostic implementation with zero unsafe code
 - ✔ incremental / streaming hashes that can be checkpointed and restored
 - ✔ zero heap allocations
 - ✔ `no_std` compatible
 - ✔ fuzzed against reference implementation to ensure stability and compatibility

## Caution

`HighwayHash` (the algorithm) has not undergone extensive cryptanalysis like SipHash (the default hashing algorithm in Rust), but according to the authors, HighwayHash output bits are uniformly distributed and should withstand differential and rotational attacks. Hence HighwayHash is referred to as a strong hash function, not a cryptographic hash function. I encourage anyone interested to [peruse the paper](https://arxiv.org/abs/1612.06257) to understand the risks.

## Examples

The quickest way to get started:

```rust
use highway::{HighwayHasher, HighwayHash};
let res: u64 = HighwayHasher::default().hash64(&[]);
let res2: [u64; 2] = HighwayHasher::default().hash128(&[]);
let res3: [u64; 4] = HighwayHasher::default().hash256(&[]);
```

A more complete tour of the API follows:

```rust
use highway::{HighwayHasher, HighwayHash, Key};

// HighwayHash requires a key that should be hidden from attackers
// to ensure outputs are unpredictable, so attackers can't mount
// DoS attacks.
let key = Key([1, 2, 3, 4]);

// A HighwayHasher is the recommended approach to hashing,
// as it will select the fastest algorithm available
let mut hasher = HighwayHasher::new(key);

// Append some data
hasher.append(&[255]);

// After all data has been appended, you ask for
// 64, 128, or 256bit output. The hasher is consumed
// after finalization.
let res: u64 = hasher.finalize64();

assert_eq!(0x07858f24d_2d79b2b2, res);
```

Creating a 128bit and 256bit hash is just as simple.

```rust
use highway::{HighwayHasher, HighwayHash, Key};

// Generate 128bit hash
let key = Key([1, 2, 3, 4]);
let mut hasher128 = HighwayHasher::new(key);
hasher128.append(&[255]);
let res128: [u64; 2] = hasher128.finalize128();
assert_eq!([0xbb007d2462e77f3c, 0x224508f916b3991f], res128);

// Generate 256bit hash
let key = Key([1, 2, 3, 4]);
let mut hasher256 = HighwayHasher::new(key);
hasher256.append(&[255]);
let res256: [u64; 4] = hasher256.finalize256();
let expected: [u64; 4] = [
    0x7161cadbf7cd70e1,
    0xaac4905de62b2f5e,
    0x7b02b936933faa7,
    0xc8efcfc45b239f8d,
];
assert_eq!(expected, res256);
```

Use highway hash in standard rust collections

```rust
use std::collections::HashMap;
use highway::{HighwayBuildHasher, Key};
let mut map =
  HashMap::with_hasher(HighwayBuildHasher::new(Key([
    0xcbf29ce484222325,
    0xc3a5c85c97cb3127,
    0xb492b66fbe98f273,
    0x9ae16a3b2f90404f,
  ])));

map.insert(1, 2);
assert_eq!(map.get(&1), Some(&2));
```

Or if utilizing a key is not important, one can use the default

```rust
use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use highway::HighwayHasher;
let mut map =
  HashMap::with_hasher(BuildHasherDefault::<HighwayHasher>::default());

map.insert(1, 2);
assert_eq!(map.get(&1), Some(&2));
```

Hashing a file, or anything implementing `Read`

```rust
use std::hash::Hasher;
use highway::{PortableHash, HighwayHash};

let mut file = &b"hello world"[..];

// We're using the `PortableHash` to show importing a specific hashing
// implementation (all hash outputs are already portable / hardware agnostic).
// The main reason for directly using `PortableHash` would be if avoiding
// `unsafe` code blocks is a top priority.
let mut hasher = PortableHash::default();
std::io::copy(&mut file, &mut hasher)?;
let hash64 = hasher.finish(); // core Hasher API
let hash256 = hasher.finalize256(); // HighwayHash API
```

## Use Cases

`HighwayHash` can be used against untrusted user input where weak hashes can't be used due to exploitation, verified cryptographic hashes are too slow, and a strong hash function meets requirements. Some specific scenarios given by the authors of HighwayHash:

- Use 64bit hashes to for authenticating short lived messages
- Use 256bit hashes for checksums. Think file storage (S3) or any longer lived data where there is a need for strong guarantees against collisions.

`HighwayHash` may not be a good fit if the payloads trend small (< 100 bytes) and speed is up of the utmost importance, as HighwayHash hits its stride at larger payloads.

## Wasm SIMD

When deploying HighwayHash to a Wasm environment, one can opt into using the Wasm SIMD instructions by adding a Rust flag:

```bash
RUSTFLAGS="-C target-feature=+simd128" wasm-pack build
```

Then `HighwayHasher` will automatically defer to the Wasm SIMD implementation via `WasmHash`.

Once opted in, the execution environment must support Wasm SIMD instructions, which Chrome, Firefox, and Node LTS have stabilized since mid-2021. The opt in is required as there is not a way for Wasm to detect SIMD capabilities at runtime. The mere presence of Wasm SIMD instructions will cause incompatible environments to fail to compile, so it is recommended to provide two Wasm payloads to downstream users: one with SIMD enabled and one without.

### `no_std` crates

This crate has a feature, `std`, that is enabled by default. To use this crate
in a `no_std` context, add the following to your `Cargo.toml`:

```toml
[dependencies]
highway = { version = "x", default-features = false }
```

Be aware that the `no_std` version is unable to detect CPU features and so will always default to the portable implementation. If building for a known SSE 4.1 or AVX 2 machine (and the majority of machines in the last decade will support SSE 4.1), then explicitly enable the target feature:

```bash
RUSTFLAGS="-C target-feature=+sse4.1" cargo test
RUSTFLAGS="-C target-feature=+avx2" cargo test
```

## Benchmarks

Benchmarks are ran with the following command:

```bash
(cd compare && cargo clean && RUSTFLAGS="-C target-cpu=native" cargo bench)
find ./compare/target -wholename "*/new/raw.csv" -print0 | xargs -0 xsv cat rows > assets/highway.csv
```

And can be analyzed with the [R script](assets/analysis.R) found in the assets directory

Keep in mind, benchmarks will vary by machine. Newer machines typically handle AVX payloads better than older.

We'll first take a look at the throughput when calculating the 64bit hash of a varying payload with various implementations

![64bit-highwayhash.png](assets/64bit-highwayhash.png)

Takeaways:

- The lower left corner of the graph illustrates HighwayHash's weakness: small payloads, as with a bit of squinting, one can see that HighwayHash ranks amongst the bottom.
- At larger payloads, HighwayHash can be competitive in performance as the CPU has room to stretch its proverbial SIMD legs on the input.
- AHash and t1ha perform fantastically and should be in one's toolkit for in memory data structures.

Now taking a look at calculating a 256bit hash value, we see a similar story.

![256bit-highwayhash.png](assets/256bit-highwayhash.png)

Takeaways:

- HighwayHash is by far the fastest compared to the other functions, but if one needs a cryptographic hash, then BLAKE3 should be chosen

Even with the best eyesight, the differences are indistinguishable at smaller payloads, so let's look at the hash rate: 

![256bit-highwayhash-rate.png](assets/256bit-highwayhash-rate.png)

Takeaways:

- At smaller payloads HighwayHash maintains its performance lead

HighwayHash uses more rounds of permutation when finalizing the 256bit output compared to the 64bit and this is reflected in the following graphic:

![64bit-vs-256bit-highwayhash.png](assets/64bit-vs-256bit-highwayhash.png)

Takeaways:

- At max, the 64bit hash can be computed 33% faster than the 256bit output
- After 64KiB there is no performance difference between 64bit and 256bit outputs 

For those more into numbers and are curious about specifics or want more details about the hash functions at small payloads size, here is a table that breaks down throughput (in GB/s) at all payload sizes

![highwayhash-table.png](assets/highwayhash-table.png)

### Builder Benchmarks

Have fun running the builder benchmarks to see how performance differs with flags:

*Default compilation*

```bash
cargo bench -- highway-builder
```

*Explicitly disable avx2*

```bash
RUSTFLAGS="-C target-feature=-avx2" cargo bench -- highway-builder
```

*Explicitly disable avx2 when targeting native cpu*

```bash
RUSTFLAGS="-C target-cpu=native -C target-feature=+sse4.1,-avx2" \
  cargo bench -- highway-builder
```


================================================
FILE: assets/analysis.R
================================================
library(scales)
library(tidyverse)
library(readr)
library(ggnewscale)

is_highwayhash <- Vectorize(function(fn) {
  switch(fn,
         "avx" = TRUE,
         "sse" = TRUE,
         "portable" = TRUE,
         FALSE)
})

get_line_type <- Vectorize(function(fn) {
  switch(fn,
         "avx" = "highwayhash",
         "sse" = "highwayhash",
         "portable" = "highwayhash",
         "other")
})

df <- read_csv("./highway.csv")
df <- mutate(
  df,
  fn = `function`,
  highwayhash = is_highwayhash(fn),
  line = get_line_type(fn),
  throughput = value * iteration_count * 10 ^ 9 / sample_measured_value,
  hashes_per_ms = iteration_count * 10 ^ 6 / sample_measured_value,
)

df64 <- df %>% filter(group == '64bit')
df64highway <- df64 %>% filter(highwayhash == TRUE)
df64other <- df64 %>% filter(highwayhash == FALSE)

df256 <- df %>% filter(group == '256bit')
df256highway <- df256 %>% filter(highwayhash == TRUE)
df256other <- df256 %>% filter(highwayhash == FALSE)

# We create a custom palette as we want hashes that produce both 64bit and
# 256bit results to have consistent colors between multiple graphs. Hashes
# that don't produce both are fine to have inconsistent colors so that we can
# use a smaller color palette (and a smaller color palette makes it easier to
# read the graph)
df64UniqueNames <- df64 %>% select(fn) %>% distinct() %>% pull() %>% sort()
df256UniqueNames <- df256 %>% select(fn) %>% distinct() %>% pull() %>% sort()
namesInBoth <- intersect(df64UniqueNames, df256UniqueNames)
neededColors <- max(length(df64UniqueNames), length(df256UniqueNames))
pal64 <- brewer.pal(neededColors, "Set1")[1:length(df64UniqueNames)]
pal256 <- brewer.pal(neededColors, "Set1")[1:length(df256UniqueNames)]
names(pal64) <- c(namesInBoth, setdiff(df64UniqueNames, namesInBoth))
names(pal256) <- c(namesInBoth, setdiff(df256UniqueNames, namesInBoth))

byte_rate <- function(l) {
  paste(scales::number_bytes(l, symbol = "GB", units = "si"), "/s")
}

ggplot(mapping=aes(value, throughput)) +
  stat_summary(data=df64, mapping=aes(value, throughput, color = fn), fun = mean, geom="point", size = 1.5) +
  scale_color_manual("Points", values=pal64, guide=FALSE) +
  ggnewscale::new_scale_color() +
  stat_summary(data=df64highway, mapping=aes(linetype = line, color = fn), fun = mean, geom="line", size = 1.2) +
  scale_color_manual("HighwayHash", values=pal64, guide=guide_legend(order = 1)) +
  scale_linetype(guide = FALSE) +
  ggnewscale::new_scale_color() +
  stat_summary(data=df64other, mapping=aes(linetype = line, color = fn), fun = mean, geom="line", size = 1.2) +
  scale_color_manual("Other Hashes", values=pal64, guide=guide_legend(order = 2)) +
  scale_y_continuous(labels = byte_rate, limits = c(0, NA), breaks = pretty_breaks(10)) +
  scale_x_continuous(trans='log2', limit = c(1, NA), breaks = c(1, 4, 16, 64, 256, 1024, 4096, 16384, 65536)) +
  labs(title = "Comparison of throughput for 64bit hash functions at varying payload lengths",
       caption = "solid lines are HighwayHash functions",
       col = "Hash function",
       y = "Throughput", 
       x = "Payload length in bytes")
ggsave('64bit-highwayhash.png', width = 8, height = 5, dpi = 100)

ggplot(mapping=aes(value, throughput)) +
  stat_summary(data=df256, mapping=aes(value, throughput, color = fn), fun = mean, geom="point", size = 1.5) +
  scale_color_manual("Points", values=pal256, guide=FALSE) +
  ggnewscale::new_scale_color() +
  stat_summary(data=df256highway, mapping=aes(linetype = line, color = fn), fun = mean, geom="line", size = 1.2) +
  scale_color_manual("HighwayHash", values=pal256, guide=guide_legend(order = 1)) +
  scale_linetype(guide = FALSE) +
  ggnewscale::new_scale_color() +
  stat_summary(data=df256other, mapping=aes(linetype = line, color = fn), fun = mean, geom="line", size = 1.2) +
  scale_color_manual("Other Hashes", values=pal256, guide=guide_legend(order = 2)) +
  scale_y_continuous(labels = byte_rate, limits = c(0, NA), breaks = pretty_breaks(10)) +
  scale_x_continuous(trans='log2', limit = c(1, NA), breaks = c(1, 4, 16, 64, 256, 1024, 4096, 16384, 65536)) +
  labs(title = "Comparison of throughput for 256bit hash functions at varying payload lengths",
       caption = "solid lines are HighwayHash functions",
       col = "Hash function",
       y = "Throughput",
       x = "Payload length in bytes")

ggsave('256bit-highwayhash.png', width = 8, height = 5, dpi = 100)

ggplot(mapping=aes(value, hashes_per_ms)) +
  stat_summary(data=df256, mapping=aes(value, hashes_per_ms, color = fn), fun = mean, geom="point", size = 1.5) +
  scale_color_manual("Points", values=pal256, guide=FALSE) +
  ggnewscale::new_scale_color() +
  stat_summary(data=df256highway, mapping=aes(linetype = line, color = fn), fun = mean, geom="line", size = 1.2) +
  scale_color_manual("HighwayHash", values=pal256, guide=guide_legend(order = 1)) +
  scale_linetype(guide = FALSE) +
  ggnewscale::new_scale_color() +
  stat_summary(data=df256other, mapping=aes(linetype = line, color = fn), fun = mean, geom="line", size = 1.2) +
  scale_color_manual("Other Hashes", values=pal256, guide=guide_legend(order = 2)) +
  scale_y_continuous(limits = c(0, NA), breaks = pretty_breaks(10)) +
  scale_x_continuous(trans='log2', limit = c(1, NA), breaks = c(1, 4, 16, 64, 256, 1024, 4096, 16384, 65536)) +
  labs(title = "Comparison of hash rate for 256bit hash functions at varying payload lengths",
       caption = "solid lines are HighwayHash functions",
       col = "Hash function",
       y = "Hashes per ms",
       x = "Payload length in bytes")
ggsave('256bit-highwayhash-rate.png', width = 8, height = 5, dpi = 100)

ggplot(df %>% filter(highwayhash == TRUE), aes(value, throughput, color = fn, line_type = group)) + 
  stat_summary(fun = mean, geom="point", size = 1.5) +
  stat_summary(aes(linetype = as.factor(group)), fun = mean, geom="line", size = 1.2) +
  scale_y_continuous(labels = byte_rate, limits = c(0, NA), breaks = pretty_breaks(10)) +
  scale_x_continuous(trans='log2', limit = c(1, NA), breaks = c(1, 4, 16, 64, 256, 1024, 4096, 16384, 65536)) +
  labs(title = "Comparison of throughput for 64bit vs 256bit HighwayHash",
       col = "HighwayHash",
       linetype = "Output",
       y = "Throughput",
       x = "Payload length in bytes") +
  scale_colour_manual(values = pal256)
ggsave('64bit-vs-256bit-highwayhash.png', width = 8, height = 5, dpi = 100)

reldf <- df %>%
  mutate(throughput = throughput / 10^9) %>%
  group_by(group, fn, highwayhash, value) %>%
  summarize(throughput = mean(throughput)) %>%
  ungroup() %>%
  group_by(value, group) %>%
  mutate(relative = throughput / max(throughput)) %>%
  ungroup() %>%
  complete(group, fn, value, fill = list(highwayhash = FALSE))

ordered <- reldf %>% distinct(fn, highwayhash) %>% arrange(!highwayhash, fn) %>% pull(fn)

# Group all highway hash functions next to each other in the graph
reldf$fn <- factor(reldf$fn, levels = ordered)

ggplot(reldf, aes(fn, as.factor(value))) +
  geom_tile(aes(fill = relative), color = "white") +
  facet_grid(group ~ .) +
  scale_x_discrete(position = "top") +
  scale_fill_gradient(name = "", low = "white", high = "steelblue", na.value = "#D8D8D8", labels = c("lowest", "highest (GB/s)"), breaks = c(0,1)) +
  xlab("Hash Library") +
  ylab("Payload Size (bytes)") +
  geom_text(size = 3.25, aes(label = ifelse(is.na(relative), "NA", format(round(throughput, 2), digits = 3)))) +
  theme(axis.text.x.top=element_text(angle=45, hjust=0, vjust=0)) +
  theme(legend.position="bottom") +
  theme(plot.caption = element_text(hjust=0)) +
  ggtitle("Comparison of Mean Throughput (GB/s) across Hash Functions") +
  labs(caption = "Shaded relative by payload and return size\n(eg: fnv has the highest throughput for a 64bit value with a 1 byte payload, so it is a deep blue)")
ggsave('highwayhash-table.png', width = 8, height = 6, dpi = 100)


================================================
FILE: assets/highway.csv
================================================
group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count
256bit,sse,4,4,bytes,985320.0,ns,23455
256bit,sse,4,4,bytes,1974919.0,ns,46910
256bit,sse,4,4,bytes,2979606.0,ns,70365
256bit,sse,4,4,bytes,3958816.0,ns,93820
256bit,sse,4,4,bytes,5032856.0,ns,117275
256bit,sse,4,4,bytes,6090283.0,ns,140730
256bit,sse,4,4,bytes,7026421.0,ns,164185
256bit,sse,4,4,bytes,7992793.0,ns,187640
256bit,sse,4,4,bytes,8968106.0,ns,211095
256bit,sse,4,4,bytes,9993142.0,ns,234550
256bit,sse,4,4,bytes,10911644.0,ns,258005
256bit,sse,4,4,bytes,12032504.0,ns,281460
256bit,sse,4,4,bytes,13017735.0,ns,304915
256bit,sse,4,4,bytes,13986052.0,ns,328370
256bit,sse,4,4,bytes,14821355.0,ns,351825
256bit,sse,4,4,bytes,15730790.0,ns,375280
256bit,sse,4,4,bytes,16857252.0,ns,398735
256bit,sse,4,4,bytes,17827622.0,ns,422190
256bit,sse,4,4,bytes,18846246.0,ns,445645
256bit,sse,4,4,bytes,19811588.0,ns,469100
256bit,sse,4,4,bytes,20791588.0,ns,492555
256bit,sse,4,4,bytes,21792520.0,ns,516010
256bit,sse,4,4,bytes,22787067.0,ns,539465
256bit,sse,4,4,bytes,23655663.0,ns,562920
256bit,sse,4,4,bytes,24698845.0,ns,586375
256bit,sse,4,4,bytes,25617487.0,ns,609830
256bit,sse,4,4,bytes,26856263.0,ns,633285
256bit,sse,4,4,bytes,27815273.0,ns,656740
256bit,sse,4,4,bytes,28604307.0,ns,680195
256bit,sse,4,4,bytes,29613974.0,ns,703650
256bit,sse,4,4,bytes,30700759.0,ns,727105
256bit,sse,4,4,bytes,31719804.0,ns,750560
256bit,sse,4,4,bytes,32554767.0,ns,774015
256bit,sse,4,4,bytes,33772511.0,ns,797470
256bit,sse,4,4,bytes,33893975.0,ns,820925
256bit,sse,4,4,bytes,35293060.0,ns,844380
256bit,sse,4,4,bytes,36261077.0,ns,867835
256bit,sse,4,4,bytes,37313825.0,ns,891290
256bit,sse,4,4,bytes,38457300.0,ns,914745
256bit,sse,4,4,bytes,39308933.0,ns,938200
256bit,sse,4,4,bytes,40329482.0,ns,961655
256bit,sse,4,4,bytes,41495838.0,ns,985110
256bit,sse,4,4,bytes,42270776.0,ns,1008565
256bit,sse,4,4,bytes,43460029.0,ns,1032020
256bit,sse,4,4,bytes,44359463.0,ns,1055475
256bit,sse,4,4,bytes,45420037.0,ns,1078930
256bit,sse,4,4,bytes,46105643.0,ns,1102385
256bit,sse,4,4,bytes,47245530.0,ns,1125840
256bit,sse,4,4,bytes,48198178.0,ns,1149295
256bit,sse,4,4,bytes,49046655.0,ns,1172750
256bit,sse,4,4,bytes,50013100.0,ns,1196205
256bit,sse,4,4,bytes,51005572.0,ns,1219660
256bit,sse,4,4,bytes,52161722.0,ns,1243115
256bit,sse,4,4,bytes,53106605.0,ns,1266570
256bit,sse,4,4,bytes,53949692.0,ns,1290025
256bit,sse,4,4,bytes,54955260.0,ns,1313480
256bit,sse,4,4,bytes,56379302.0,ns,1336935
256bit,sse,4,4,bytes,56497790.0,ns,1360390
256bit,sse,4,4,bytes,59304364.0,ns,1383845
256bit,sse,4,4,bytes,59788213.0,ns,1407300
256bit,sse,4,4,bytes,61220912.0,ns,1430755
256bit,sse,4,4,bytes,61460230.0,ns,1454210
256bit,sse,4,4,bytes,62251859.0,ns,1477665
256bit,sse,4,4,bytes,63911384.0,ns,1501120
256bit,sse,4,4,bytes,64578994.0,ns,1524575
256bit,sse,4,4,bytes,65325205.0,ns,1548030
256bit,sse,4,4,bytes,66347467.0,ns,1571485
256bit,sse,4,4,bytes,67348186.0,ns,1594940
256bit,sse,4,4,bytes,68360879.0,ns,1618395
256bit,sse,4,4,bytes,69421995.0,ns,1641850
256bit,sse,4,4,bytes,70726368.0,ns,1665305
256bit,sse,4,4,bytes,71117779.0,ns,1688760
256bit,sse,4,4,bytes,72567168.0,ns,1712215
256bit,sse,4,4,bytes,73197348.0,ns,1735670
256bit,sse,4,4,bytes,74599326.0,ns,1759125
256bit,sse,4,4,bytes,76578044.0,ns,1782580
256bit,sse,4,4,bytes,76719404.0,ns,1806035
256bit,sse,4,4,bytes,77073955.0,ns,1829490
256bit,sse,4,4,bytes,78201678.0,ns,1852945
256bit,sse,4,4,bytes,79017995.0,ns,1876400
256bit,sse,4,4,bytes,79909414.0,ns,1899855
256bit,sse,4,4,bytes,80991621.0,ns,1923310
256bit,sse,4,4,bytes,82202132.0,ns,1946765
256bit,sse,4,4,bytes,83181192.0,ns,1970220
256bit,sse,4,4,bytes,84391272.0,ns,1993675
256bit,sse,4,4,bytes,85710624.0,ns,2017130
256bit,sse,4,4,bytes,86493316.0,ns,2040585
256bit,sse,4,4,bytes,87362612.0,ns,2064040
256bit,sse,4,4,bytes,88895144.0,ns,2087495
256bit,sse,4,4,bytes,88862080.0,ns,2110950
256bit,sse,4,4,bytes,89806642.0,ns,2134405
256bit,sse,4,4,bytes,90769299.0,ns,2157860
256bit,sse,4,4,bytes,91844771.0,ns,2181315
256bit,sse,4,4,bytes,93057178.0,ns,2204770
256bit,sse,4,4,bytes,94557716.0,ns,2228225
256bit,sse,4,4,bytes,95198977.0,ns,2251680
256bit,sse,4,4,bytes,96515063.0,ns,2275135
256bit,sse,4,4,bytes,96848561.0,ns,2298590
256bit,sse,4,4,bytes,98384999.0,ns,2322045
256bit,sse,4,4,bytes,101109637.0,ns,2345500
256bit,sse,16384,16384,bytes,972816.0,ns,869
256bit,sse,16384,16384,bytes,1939830.0,ns,1738
256bit,sse,16384,16384,bytes,2948525.0,ns,2607
256bit,sse,16384,16384,bytes,3929136.0,ns,3476
256bit,sse,16384,16384,bytes,5076166.0,ns,4345
256bit,sse,16384,16384,bytes,6008272.0,ns,5214
256bit,sse,16384,16384,bytes,6933407.0,ns,6083
256bit,sse,16384,16384,bytes,7880973.0,ns,6952
256bit,sse,16384,16384,bytes,8960315.0,ns,7821
256bit,sse,16384,16384,bytes,10033161.0,ns,8690
256bit,sse,16384,16384,bytes,10924190.0,ns,9559
256bit,sse,16384,16384,bytes,11760724.0,ns,10428
256bit,sse,16384,16384,bytes,12683295.0,ns,11297
256bit,sse,16384,16384,bytes,13679153.0,ns,12166
256bit,sse,16384,16384,bytes,14650678.0,ns,13035
256bit,sse,16384,16384,bytes,15633501.0,ns,13904
256bit,sse,16384,16384,bytes,16644000.0,ns,14773
256bit,sse,16384,16384,bytes,17593922.0,ns,15642
256bit,sse,16384,16384,bytes,18527733.0,ns,16511
256bit,sse,16384,16384,bytes,19535735.0,ns,17380
256bit,sse,16384,16384,bytes,20474036.0,ns,18249
256bit,sse,16384,16384,bytes,21519650.0,ns,19118
256bit,sse,16384,16384,bytes,22464333.0,ns,19987
256bit,sse,16384,16384,bytes,23447116.0,ns,20856
256bit,sse,16384,16384,bytes,24370949.0,ns,21725
256bit,sse,16384,16384,bytes,25394963.0,ns,22594
256bit,sse,16384,16384,bytes,26342269.0,ns,23463
256bit,sse,16384,16384,bytes,27373887.0,ns,24332
256bit,sse,16384,16384,bytes,28328568.0,ns,25201
256bit,sse,16384,16384,bytes,29315191.0,ns,26070
256bit,sse,16384,16384,bytes,30255744.0,ns,26939
256bit,sse,16384,16384,bytes,31228058.0,ns,27808
256bit,sse,16384,16384,bytes,32228588.0,ns,28677
256bit,sse,16384,16384,bytes,33178481.0,ns,29546
256bit,sse,16384,16384,bytes,34140213.0,ns,30415
256bit,sse,16384,16384,bytes,35203194.0,ns,31284
256bit,sse,16384,16384,bytes,36111293.0,ns,32153
256bit,sse,16384,16384,bytes,37144476.0,ns,33022
256bit,sse,16384,16384,bytes,38057235.0,ns,33891
256bit,sse,16384,16384,bytes,39072643.0,ns,34760
256bit,sse,16384,16384,bytes,40196595.0,ns,35629
256bit,sse,16384,16384,bytes,41123275.0,ns,36498
256bit,sse,16384,16384,bytes,41988085.0,ns,37367
256bit,sse,16384,16384,bytes,43003801.0,ns,38236
256bit,sse,16384,16384,bytes,43941171.0,ns,39105
256bit,sse,16384,16384,bytes,45022163.0,ns,39974
256bit,sse,16384,16384,bytes,45889457.0,ns,40843
256bit,sse,16384,16384,bytes,46876570.0,ns,41712
256bit,sse,16384,16384,bytes,47855186.0,ns,42581
256bit,sse,16384,16384,bytes,48827582.0,ns,43450
256bit,sse,16384,16384,bytes,49827047.0,ns,44319
256bit,sse,16384,16384,bytes,50752644.0,ns,45188
256bit,sse,16384,16384,bytes,51760736.0,ns,46057
256bit,sse,16384,16384,bytes,52737680.0,ns,46926
256bit,sse,16384,16384,bytes,53780700.0,ns,47795
256bit,sse,16384,16384,bytes,54646961.0,ns,48664
256bit,sse,16384,16384,bytes,55671456.0,ns,49533
256bit,sse,16384,16384,bytes,56665412.0,ns,50402
256bit,sse,16384,16384,bytes,57623179.0,ns,51271
256bit,sse,16384,16384,bytes,58621154.0,ns,52140
256bit,sse,16384,16384,bytes,59571406.0,ns,53009
256bit,sse,16384,16384,bytes,60563319.0,ns,53878
256bit,sse,16384,16384,bytes,61810279.0,ns,54747
256bit,sse,16384,16384,bytes,62766464.0,ns,55616
256bit,sse,16384,16384,bytes,64055711.0,ns,56485
256bit,sse,16384,16384,bytes,64316837.0,ns,57354
256bit,sse,16384,16384,bytes,66002460.0,ns,58223
256bit,sse,16384,16384,bytes,67091577.0,ns,59092
256bit,sse,16384,16384,bytes,68077007.0,ns,59961
256bit,sse,16384,16384,bytes,69061626.0,ns,60830
256bit,sse,16384,16384,bytes,69989175.0,ns,61699
256bit,sse,16384,16384,bytes,70990816.0,ns,62568
256bit,sse,16384,16384,bytes,72017495.0,ns,63437
256bit,sse,16384,16384,bytes,72005331.0,ns,64306
256bit,sse,16384,16384,bytes,73279215.0,ns,65175
256bit,sse,16384,16384,bytes,74170604.0,ns,66044
256bit,sse,16384,16384,bytes,75384271.0,ns,66913
256bit,sse,16384,16384,bytes,76441459.0,ns,67782
256bit,sse,16384,16384,bytes,77216675.0,ns,68651
256bit,sse,16384,16384,bytes,79037767.0,ns,69520
256bit,sse,16384,16384,bytes,79147309.0,ns,70389
256bit,sse,16384,16384,bytes,80255433.0,ns,71258
256bit,sse,16384,16384,bytes,81143206.0,ns,72127
256bit,sse,16384,16384,bytes,82217316.0,ns,72996
256bit,sse,16384,16384,bytes,83647469.0,ns,73865
256bit,sse,16384,16384,bytes,84799883.0,ns,74734
256bit,sse,16384,16384,bytes,85922341.0,ns,75603
256bit,sse,16384,16384,bytes,87314210.0,ns,76472
256bit,sse,16384,16384,bytes,88242035.0,ns,77341
256bit,sse,16384,16384,bytes,87154383.0,ns,78210
256bit,sse,16384,16384,bytes,88818426.0,ns,79079
256bit,sse,16384,16384,bytes,89912101.0,ns,79948
256bit,sse,16384,16384,bytes,90748236.0,ns,80817
256bit,sse,16384,16384,bytes,91844670.0,ns,81686
256bit,sse,16384,16384,bytes,92700765.0,ns,82555
256bit,sse,16384,16384,bytes,93681481.0,ns,83424
256bit,sse,16384,16384,bytes,94694354.0,ns,84293
256bit,sse,16384,16384,bytes,95727220.0,ns,85162
256bit,sse,16384,16384,bytes,96782168.0,ns,86031
256bit,sse,16384,16384,bytes,97952713.0,ns,86900
256bit,sse,1,1,bytes,980932.0,ns,23465
256bit,sse,1,1,bytes,1965622.0,ns,46930
256bit,sse,1,1,bytes,2942354.0,ns,70395
256bit,sse,1,1,bytes,3969917.0,ns,93860
256bit,sse,1,1,bytes,5014782.0,ns,117325
256bit,sse,1,1,bytes,6067681.0,ns,140790
256bit,sse,1,1,bytes,6980573.0,ns,164255
256bit,sse,1,1,bytes,7950143.0,ns,187720
256bit,sse,1,1,bytes,8896789.0,ns,211185
256bit,sse,1,1,bytes,9898613.0,ns,234650
256bit,sse,1,1,bytes,10869685.0,ns,258115
256bit,sse,1,1,bytes,11898339.0,ns,281580
256bit,sse,1,1,bytes,12941190.0,ns,305045
256bit,sse,1,1,bytes,13938733.0,ns,328510
256bit,sse,1,1,bytes,14983734.0,ns,351975
256bit,sse,1,1,bytes,15390359.0,ns,375440
256bit,sse,1,1,bytes,16235611.0,ns,398905
256bit,sse,1,1,bytes,17725358.0,ns,422370
256bit,sse,1,1,bytes,18605689.0,ns,445835
256bit,sse,1,1,bytes,19581690.0,ns,469300
256bit,sse,1,1,bytes,20627598.0,ns,492765
256bit,sse,1,1,bytes,21472438.0,ns,516230
256bit,sse,1,1,bytes,22408705.0,ns,539695
256bit,sse,1,1,bytes,23553431.0,ns,563160
256bit,sse,1,1,bytes,24416176.0,ns,586625
256bit,sse,1,1,bytes,25448427.0,ns,610090
256bit,sse,1,1,bytes,26502830.0,ns,633555
256bit,sse,1,1,bytes,26733347.0,ns,657020
256bit,sse,1,1,bytes,27963972.0,ns,680485
256bit,sse,1,1,bytes,29456557.0,ns,703950
256bit,sse,1,1,bytes,30466565.0,ns,727415
256bit,sse,1,1,bytes,31517761.0,ns,750880
256bit,sse,1,1,bytes,32546015.0,ns,774345
256bit,sse,1,1,bytes,33460751.0,ns,797810
256bit,sse,1,1,bytes,34453114.0,ns,821275
256bit,sse,1,1,bytes,35758007.0,ns,844740
256bit,sse,1,1,bytes,36644989.0,ns,868205
256bit,sse,1,1,bytes,37585734.0,ns,891670
256bit,sse,1,1,bytes,38339691.0,ns,915135
256bit,sse,1,1,bytes,39333969.0,ns,938600
256bit,sse,1,1,bytes,40423358.0,ns,962065
256bit,sse,1,1,bytes,41373953.0,ns,985530
256bit,sse,1,1,bytes,42283577.0,ns,1008995
256bit,sse,1,1,bytes,43584424.0,ns,1032460
256bit,sse,1,1,bytes,44680115.0,ns,1055925
256bit,sse,1,1,bytes,48189849.0,ns,1079390
256bit,sse,1,1,bytes,46358326.0,ns,1102855
256bit,sse,1,1,bytes,47344648.0,ns,1126320
256bit,sse,1,1,bytes,48055531.0,ns,1149785
256bit,sse,1,1,bytes,49091820.0,ns,1173250
256bit,sse,1,1,bytes,50127036.0,ns,1196715
256bit,sse,1,1,bytes,51254531.0,ns,1220180
256bit,sse,1,1,bytes,52069163.0,ns,1243645
256bit,sse,1,1,bytes,53111531.0,ns,1267110
256bit,sse,1,1,bytes,54067397.0,ns,1290575
256bit,sse,1,1,bytes,55154172.0,ns,1314040
256bit,sse,1,1,bytes,55871037.0,ns,1337505
256bit,sse,1,1,bytes,57199291.0,ns,1360970
256bit,sse,1,1,bytes,56852269.0,ns,1384435
256bit,sse,1,1,bytes,58533466.0,ns,1407900
256bit,sse,1,1,bytes,59440977.0,ns,1431365
256bit,sse,1,1,bytes,60510939.0,ns,1454830
256bit,sse,1,1,bytes,61562176.0,ns,1478295
256bit,sse,1,1,bytes,62522810.0,ns,1501760
256bit,sse,1,1,bytes,64350766.0,ns,1525225
256bit,sse,1,1,bytes,64407315.0,ns,1548690
256bit,sse,1,1,bytes,65383277.0,ns,1572155
256bit,sse,1,1,bytes,66392034.0,ns,1595620
256bit,sse,1,1,bytes,67436697.0,ns,1619085
256bit,sse,1,1,bytes,68312849.0,ns,1642550
256bit,sse,1,1,bytes,68956024.0,ns,1666015
256bit,sse,1,1,bytes,70864083.0,ns,1689480
256bit,sse,1,1,bytes,71526243.0,ns,1712945
256bit,sse,1,1,bytes,72467220.0,ns,1736410
256bit,sse,1,1,bytes,73594622.0,ns,1759875
256bit,sse,1,1,bytes,74545217.0,ns,1783340
256bit,sse,1,1,bytes,75711934.0,ns,1806805
256bit,sse,1,1,bytes,76585562.0,ns,1830270
256bit,sse,1,1,bytes,77731900.0,ns,1853735
256bit,sse,1,1,bytes,79507517.0,ns,1877200
256bit,sse,1,1,bytes,79779969.0,ns,1900665
256bit,sse,1,1,bytes,80525931.0,ns,1924130
256bit,sse,1,1,bytes,81566096.0,ns,1947595
256bit,sse,1,1,bytes,82212227.0,ns,1971060
256bit,sse,1,1,bytes,82424453.0,ns,1994525
256bit,sse,1,1,bytes,84186385.0,ns,2017990
256bit,sse,1,1,bytes,84887027.0,ns,2041455
256bit,sse,1,1,bytes,85975267.0,ns,2064920
256bit,sse,1,1,bytes,86847028.0,ns,2088385
256bit,sse,1,1,bytes,87929983.0,ns,2111850
256bit,sse,1,1,bytes,89324071.0,ns,2135315
256bit,sse,1,1,bytes,90787038.0,ns,2158780
256bit,sse,1,1,bytes,91374585.0,ns,2182245
256bit,sse,1,1,bytes,92392057.0,ns,2205710
256bit,sse,1,1,bytes,93079076.0,ns,2229175
256bit,sse,1,1,bytes,94144810.0,ns,2252640
256bit,sse,1,1,bytes,95126845.0,ns,2276105
256bit,sse,1,1,bytes,96064683.0,ns,2299570
256bit,sse,1,1,bytes,97124859.0,ns,2323035
256bit,sse,1,1,bytes,98066785.0,ns,2346500
256bit,sse,64,64,bytes,987063.0,ns,24344
256bit,sse,64,64,bytes,1967985.0,ns,48688
256bit,sse,64,64,bytes,2950959.0,ns,73032
256bit,sse,64,64,bytes,3969174.0,ns,97376
256bit,sse,64,64,bytes,5122146.0,ns,121720
256bit,sse,64,64,bytes,6003225.0,ns,146064
256bit,sse,64,64,bytes,6965129.0,ns,170408
256bit,sse,64,64,bytes,8089287.0,ns,194752
256bit,sse,64,64,bytes,9153258.0,ns,219096
256bit,sse,64,64,bytes,10211929.0,ns,243440
256bit,sse,64,64,bytes,11073441.0,ns,267784
256bit,sse,64,64,bytes,11961034.0,ns,292128
256bit,sse,64,64,bytes,12833216.0,ns,316472
256bit,sse,64,64,bytes,13891085.0,ns,340816
256bit,sse,64,64,bytes,14871827.0,ns,365160
256bit,sse,64,64,bytes,15759991.0,ns,389504
256bit,sse,64,64,bytes,16738037.0,ns,413848
256bit,sse,64,64,bytes,17736191.0,ns,438192
256bit,sse,64,64,bytes,18700372.0,ns,462536
256bit,sse,64,64,bytes,19646526.0,ns,486880
256bit,sse,64,64,bytes,20804848.0,ns,511224
256bit,sse,64,64,bytes,21725754.0,ns,535568
256bit,sse,64,64,bytes,22737475.0,ns,559912
256bit,sse,64,64,bytes,23723176.0,ns,584256
256bit,sse,64,64,bytes,24808057.0,ns,608600
256bit,sse,64,64,bytes,25754863.0,ns,632944
256bit,sse,64,64,bytes,26805368.0,ns,657288
256bit,sse,64,64,bytes,27755340.0,ns,681632
256bit,sse,64,64,bytes,28658103.0,ns,705976
256bit,sse,64,64,bytes,29524534.0,ns,730320
256bit,sse,64,64,bytes,30482282.0,ns,754664
256bit,sse,64,64,bytes,31555129.0,ns,779008
256bit,sse,64,64,bytes,32642204.0,ns,803352
256bit,sse,64,64,bytes,33453701.0,ns,827696
256bit,sse,64,64,bytes,34363557.0,ns,852040
256bit,sse,64,64,bytes,35591992.0,ns,876384
256bit,sse,64,64,bytes,36400454.0,ns,900728
256bit,sse,64,64,bytes,37367433.0,ns,925072
256bit,sse,64,64,bytes,38410289.0,ns,949416
256bit,sse,64,64,bytes,39363548.0,ns,973760
256bit,sse,64,64,bytes,40447316.0,ns,998104
256bit,sse,64,64,bytes,41284251.0,ns,1022448
256bit,sse,64,64,bytes,42513539.0,ns,1046792
256bit,sse,64,64,bytes,43458241.0,ns,1071136
256bit,sse,64,64,bytes,44388806.0,ns,1095480
256bit,sse,64,64,bytes,45288212.0,ns,1119824
256bit,sse,64,64,bytes,46232593.0,ns,1144168
256bit,sse,64,64,bytes,47243844.0,ns,1168512
256bit,sse,64,64,bytes,48180519.0,ns,1192856
256bit,sse,64,64,bytes,49279187.0,ns,1217200
256bit,sse,64,64,bytes,50234209.0,ns,1241544
256bit,sse,64,64,bytes,51497313.0,ns,1265888
256bit,sse,64,64,bytes,52625285.0,ns,1290232
256bit,sse,64,64,bytes,53352162.0,ns,1314576
256bit,sse,64,64,bytes,54332150.0,ns,1338920
256bit,sse,64,64,bytes,55226164.0,ns,1363264
256bit,sse,64,64,bytes,56159866.0,ns,1387608
256bit,sse,64,64,bytes,57089128.0,ns,1411952
256bit,sse,64,64,bytes,58134704.0,ns,1436296
256bit,sse,64,64,bytes,59116773.0,ns,1460640
256bit,sse,64,64,bytes,60043916.0,ns,1484984
256bit,sse,64,64,bytes,60455762.0,ns,1509328
256bit,sse,64,64,bytes,62571825.0,ns,1533672
256bit,sse,64,64,bytes,63548794.0,ns,1558016
256bit,sse,64,64,bytes,64194177.0,ns,1582360
256bit,sse,64,64,bytes,65014331.0,ns,1606704
256bit,sse,64,64,bytes,65925018.0,ns,1631048
256bit,sse,64,64,bytes,66911324.0,ns,1655392
256bit,sse,64,64,bytes,67928660.0,ns,1679736
256bit,sse,64,64,bytes,69708035.0,ns,1704080
256bit,sse,64,64,bytes,70248389.0,ns,1728424
256bit,sse,64,64,bytes,72126423.0,ns,1752768
256bit,sse,64,64,bytes,73431576.0,ns,1777112
256bit,sse,64,64,bytes,74677987.0,ns,1801456
256bit,sse,64,64,bytes,75415400.0,ns,1825800
256bit,sse,64,64,bytes,75262038.0,ns,1850144
256bit,sse,64,64,bytes,76622296.0,ns,1874488
256bit,sse,64,64,bytes,77772242.0,ns,1898832
256bit,sse,64,64,bytes,78620911.0,ns,1923176
256bit,sse,64,64,bytes,79680093.0,ns,1947520
256bit,sse,64,64,bytes,80441713.0,ns,1971864
256bit,sse,64,64,bytes,81322742.0,ns,1996208
256bit,sse,64,64,bytes,82838891.0,ns,2020552
256bit,sse,64,64,bytes,84626289.0,ns,2044896
256bit,sse,64,64,bytes,84811214.0,ns,2069240
256bit,sse,64,64,bytes,85624375.0,ns,2093584
256bit,sse,64,64,bytes,86351829.0,ns,2117928
256bit,sse,64,64,bytes,87335186.0,ns,2142272
256bit,sse,64,64,bytes,88440196.0,ns,2166616
256bit,sse,64,64,bytes,90096231.0,ns,2190960
256bit,sse,64,64,bytes,90438886.0,ns,2215304
256bit,sse,64,64,bytes,91487440.0,ns,2239648
256bit,sse,64,64,bytes,92513128.0,ns,2263992
256bit,sse,64,64,bytes,94519266.0,ns,2288336
256bit,sse,64,64,bytes,95328388.0,ns,2312680
256bit,sse,64,64,bytes,96221076.0,ns,2337024
256bit,sse,64,64,bytes,97109023.0,ns,2361368
256bit,sse,64,64,bytes,98405180.0,ns,2385712
256bit,sse,64,64,bytes,100087528.0,ns,2410056
256bit,sse,64,64,bytes,100925774.0,ns,2434400
256bit,sse,16,16,bytes,976173.0,ns,23275
256bit,sse,16,16,bytes,1960641.0,ns,46550
256bit,sse,16,16,bytes,2937214.0,ns,69825
256bit,sse,16,16,bytes,3976809.0,ns,93100
256bit,sse,16,16,bytes,5219202.0,ns,116375
256bit,sse,16,16,bytes,6144447.0,ns,139650
256bit,sse,16,16,bytes,7044504.0,ns,162925
256bit,sse,16,16,bytes,7854547.0,ns,186200
256bit,sse,16,16,bytes,8771918.0,ns,209475
256bit,sse,16,16,bytes,9890193.0,ns,232750
256bit,sse,16,16,bytes,11086497.0,ns,256025
256bit,sse,16,16,bytes,11912562.0,ns,279300
256bit,sse,16,16,bytes,12737535.0,ns,302575
256bit,sse,16,16,bytes,13750839.0,ns,325850
256bit,sse,16,16,bytes,14689850.0,ns,349125
256bit,sse,16,16,bytes,15695738.0,ns,372400
256bit,sse,16,16,bytes,16668557.0,ns,395675
256bit,sse,16,16,bytes,17652614.0,ns,418950
256bit,sse,16,16,bytes,18690253.0,ns,442225
256bit,sse,16,16,bytes,19602053.0,ns,465500
256bit,sse,16,16,bytes,20651738.0,ns,488775
256bit,sse,16,16,bytes,21646326.0,ns,512050
256bit,sse,16,16,bytes,22613739.0,ns,535325
256bit,sse,16,16,bytes,23542282.0,ns,558600
256bit,sse,16,16,bytes,24511069.0,ns,581875
256bit,sse,16,16,bytes,25519867.0,ns,605150
256bit,sse,16,16,bytes,26463627.0,ns,628425
256bit,sse,16,16,bytes,27477620.0,ns,651700
256bit,sse,16,16,bytes,28574035.0,ns,674975
256bit,sse,16,16,bytes,29505931.0,ns,698250
256bit,sse,16,16,bytes,30499439.0,ns,721525
256bit,sse,16,16,bytes,31461773.0,ns,744800
256bit,sse,16,16,bytes,32577104.0,ns,768075
256bit,sse,16,16,bytes,33658647.0,ns,791350
256bit,sse,16,16,bytes,34425971.0,ns,814625
256bit,sse,16,16,bytes,35377475.0,ns,837900
256bit,sse,16,16,bytes,36323180.0,ns,861175
256bit,sse,16,16,bytes,37304042.0,ns,884450
256bit,sse,16,16,bytes,38258422.0,ns,907725
256bit,sse,16,16,bytes,39248553.0,ns,931000
256bit,sse,16,16,bytes,40197401.0,ns,954275
256bit,sse,16,16,bytes,41212108.0,ns,977550
256bit,sse,16,16,bytes,42224301.0,ns,1000825
256bit,sse,16,16,bytes,43166567.0,ns,1024100
256bit,sse,16,16,bytes,44124986.0,ns,1047375
256bit,sse,16,16,bytes,45159292.0,ns,1070650
256bit,sse,16,16,bytes,46118590.0,ns,1093925
256bit,sse,16,16,bytes,46981636.0,ns,1117200
256bit,sse,16,16,bytes,48025759.0,ns,1140475
256bit,sse,16,16,bytes,49102584.0,ns,1163750
256bit,sse,16,16,bytes,50274739.0,ns,1187025
256bit,sse,16,16,bytes,50778701.0,ns,1210300
256bit,sse,16,16,bytes,52917443.0,ns,1233575
256bit,sse,16,16,bytes,53782883.0,ns,1256850
256bit,sse,16,16,bytes,54782029.0,ns,1280125
256bit,sse,16,16,bytes,55729007.0,ns,1303400
256bit,sse,16,16,bytes,56626729.0,ns,1326675
256bit,sse,16,16,bytes,57933215.0,ns,1349950
256bit,sse,16,16,bytes,58958582.0,ns,1373225
256bit,sse,16,16,bytes,59699524.0,ns,1396500
256bit,sse,16,16,bytes,60306949.0,ns,1419775
256bit,sse,16,16,bytes,61263795.0,ns,1443050
256bit,sse,16,16,bytes,62458907.0,ns,1466325
256bit,sse,16,16,bytes,63798993.0,ns,1489600
256bit,sse,16,16,bytes,64333051.0,ns,1512875
256bit,sse,16,16,bytes,64978601.0,ns,1536150
256bit,sse,16,16,bytes,66387193.0,ns,1559425
256bit,sse,16,16,bytes,69260559.0,ns,1582700
256bit,sse,16,16,bytes,68410463.0,ns,1605975
256bit,sse,16,16,bytes,70152005.0,ns,1629250
256bit,sse,16,16,bytes,70805028.0,ns,1652525
256bit,sse,16,16,bytes,71186218.0,ns,1675800
256bit,sse,16,16,bytes,72035108.0,ns,1699075
256bit,sse,16,16,bytes,72998175.0,ns,1722350
256bit,sse,16,16,bytes,74255084.0,ns,1745625
256bit,sse,16,16,bytes,75288278.0,ns,1768900
256bit,sse,16,16,bytes,75949466.0,ns,1792175
256bit,sse,16,16,bytes,77218038.0,ns,1815450
256bit,sse,16,16,bytes,78252685.0,ns,1838725
256bit,sse,16,16,bytes,79089098.0,ns,1862000
256bit,sse,16,16,bytes,79920964.0,ns,1885275
256bit,sse,16,16,bytes,81016587.0,ns,1908550
256bit,sse,16,16,bytes,82402124.0,ns,1931825
256bit,sse,16,16,bytes,85929841.0,ns,1955100
256bit,sse,16,16,bytes,82851072.0,ns,1978375
256bit,sse,16,16,bytes,84526208.0,ns,2001650
256bit,sse,16,16,bytes,85327565.0,ns,2024925
256bit,sse,16,16,bytes,86258658.0,ns,2048200
256bit,sse,16,16,bytes,87239654.0,ns,2071475
256bit,sse,16,16,bytes,88276984.0,ns,2094750
256bit,sse,16,16,bytes,89351205.0,ns,2118025
256bit,sse,16,16,bytes,90192448.0,ns,2141300
256bit,sse,16,16,bytes,91308940.0,ns,2164575
256bit,sse,16,16,bytes,92426028.0,ns,2187850
256bit,sse,16,16,bytes,93594083.0,ns,2211125
256bit,sse,16,16,bytes,94256745.0,ns,2234400
256bit,sse,16,16,bytes,95116173.0,ns,2257675
256bit,sse,16,16,bytes,96054223.0,ns,2280950
256bit,sse,16,16,bytes,97296266.0,ns,2304225
256bit,sse,16,16,bytes,98162888.0,ns,2327500
256bit,sse,1024,1024,bytes,982174.0,ns,9360
256bit,sse,1024,1024,bytes,1971291.0,ns,18720
256bit,sse,1024,1024,bytes,2944017.0,ns,28080
256bit,sse,1024,1024,bytes,3929026.0,ns,37440
256bit,sse,1024,1024,bytes,5053923.0,ns,46800
256bit,sse,1024,1024,bytes,6034665.0,ns,56160
256bit,sse,1024,1024,bytes,6957855.0,ns,65520
256bit,sse,1024,1024,bytes,7999242.0,ns,74880
256bit,sse,1024,1024,bytes,9021252.0,ns,84240
256bit,sse,1024,1024,bytes,10087749.0,ns,93600
256bit,sse,1024,1024,bytes,11115979.0,ns,102960
256bit,sse,1024,1024,bytes,11992030.0,ns,112320
256bit,sse,1024,1024,bytes,12850218.0,ns,121680
256bit,sse,1024,1024,bytes,13775511.0,ns,131040
256bit,sse,1024,1024,bytes,14722749.0,ns,140400
256bit,sse,1024,1024,bytes,15674723.0,ns,149760
256bit,sse,1024,1024,bytes,16654974.0,ns,159120
256bit,sse,1024,1024,bytes,17648840.0,ns,168480
256bit,sse,1024,1024,bytes,18605556.0,ns,177840
256bit,sse,1024,1024,bytes,19577829.0,ns,187200
256bit,sse,1024,1024,bytes,20631842.0,ns,196560
256bit,sse,1024,1024,bytes,21650916.0,ns,205920
256bit,sse,1024,1024,bytes,22533468.0,ns,215280
256bit,sse,1024,1024,bytes,23510574.0,ns,224640
256bit,sse,1024,1024,bytes,24494059.0,ns,234000
256bit,sse,1024,1024,bytes,25533301.0,ns,243360
256bit,sse,1024,1024,bytes,26456212.0,ns,252720
256bit,sse,1024,1024,bytes,27779911.0,ns,262080
256bit,sse,1024,1024,bytes,28823132.0,ns,271440
256bit,sse,1024,1024,bytes,29435106.0,ns,280800
256bit,sse,1024,1024,bytes,30495339.0,ns,290160
256bit,sse,1024,1024,bytes,31529853.0,ns,299520
256bit,sse,1024,1024,bytes,32344476.0,ns,308880
256bit,sse,1024,1024,bytes,33345976.0,ns,318240
256bit,sse,1024,1024,bytes,33892104.0,ns,327600
256bit,sse,1024,1024,bytes,35726051.0,ns,336960
256bit,sse,1024,1024,bytes,36835409.0,ns,346320
256bit,sse,1024,1024,bytes,37783668.0,ns,355680
256bit,sse,1024,1024,bytes,38611956.0,ns,365040
256bit,sse,1024,1024,bytes,39893967.0,ns,374400
256bit,sse,1024,1024,bytes,40628575.0,ns,383760
256bit,sse,1024,1024,bytes,41545362.0,ns,393120
256bit,sse,1024,1024,bytes,42555209.0,ns,402480
256bit,sse,1024,1024,bytes,43538948.0,ns,411840
256bit,sse,1024,1024,bytes,44649176.0,ns,421200
256bit,sse,1024,1024,bytes,45542478.0,ns,430560
256bit,sse,1024,1024,bytes,46481131.0,ns,439920
256bit,sse,1024,1024,bytes,47604995.0,ns,449280
256bit,sse,1024,1024,bytes,48445246.0,ns,458640
256bit,sse,1024,1024,bytes,49346687.0,ns,468000
256bit,sse,1024,1024,bytes,51012250.0,ns,477360
256bit,sse,1024,1024,bytes,52214316.0,ns,486720
256bit,sse,1024,1024,bytes,53241456.0,ns,496080
256bit,sse,1024,1024,bytes,54035387.0,ns,505440
256bit,sse,1024,1024,bytes,55305635.0,ns,514800
256bit,sse,1024,1024,bytes,56135545.0,ns,524160
256bit,sse,1024,1024,bytes,56856891.0,ns,533520
256bit,sse,1024,1024,bytes,56069270.0,ns,542880
256bit,sse,1024,1024,bytes,57642497.0,ns,552240
256bit,sse,1024,1024,bytes,58667312.0,ns,561600
256bit,sse,1024,1024,bytes,59811678.0,ns,570960
256bit,sse,1024,1024,bytes,60656799.0,ns,580320
256bit,sse,1024,1024,bytes,61704848.0,ns,589680
256bit,sse,1024,1024,bytes,62728741.0,ns,599040
256bit,sse,1024,1024,bytes,63838150.0,ns,608400
256bit,sse,1024,1024,bytes,64596354.0,ns,617760
256bit,sse,1024,1024,bytes,65662690.0,ns,627120
256bit,sse,1024,1024,bytes,67056974.0,ns,636480
256bit,sse,1024,1024,bytes,67806100.0,ns,645840
256bit,sse,1024,1024,bytes,69031931.0,ns,655200
256bit,sse,1024,1024,bytes,69890839.0,ns,664560
256bit,sse,1024,1024,bytes,70787779.0,ns,673920
256bit,sse,1024,1024,bytes,71940560.0,ns,683280
256bit,sse,1024,1024,bytes,72609293.0,ns,692640
256bit,sse,1024,1024,bytes,74247915.0,ns,702000
256bit,sse,1024,1024,bytes,74723467.0,ns,711360
256bit,sse,1024,1024,bytes,75008243.0,ns,720720
256bit,sse,1024,1024,bytes,77569736.0,ns,730080
256bit,sse,1024,1024,bytes,79038243.0,ns,739440
256bit,sse,1024,1024,bytes,79238408.0,ns,748800
256bit,sse,1024,1024,bytes,80345329.0,ns,758160
256bit,sse,1024,1024,bytes,82080958.0,ns,767520
256bit,sse,1024,1024,bytes,83090043.0,ns,776880
256bit,sse,1024,1024,bytes,83280741.0,ns,786240
256bit,sse,1024,1024,bytes,84716022.0,ns,795600
256bit,sse,1024,1024,bytes,85388001.0,ns,804960
256bit,sse,1024,1024,bytes,86349116.0,ns,814320
256bit,sse,1024,1024,bytes,87489611.0,ns,823680
256bit,sse,1024,1024,bytes,88784667.0,ns,833040
256bit,sse,1024,1024,bytes,89353597.0,ns,842400
256bit,sse,1024,1024,bytes,90835699.0,ns,851760
256bit,sse,1024,1024,bytes,91294417.0,ns,861120
256bit,sse,1024,1024,bytes,92042123.0,ns,870480
256bit,sse,1024,1024,bytes,94099721.0,ns,879840
256bit,sse,1024,1024,bytes,94069130.0,ns,889200
256bit,sse,1024,1024,bytes,94785086.0,ns,898560
256bit,sse,1024,1024,bytes,96587671.0,ns,907920
256bit,sse,1024,1024,bytes,96780863.0,ns,917280
256bit,sse,1024,1024,bytes,97205360.0,ns,926640
256bit,sse,1024,1024,bytes,98891782.0,ns,936000
256bit,sse,65536,65536,bytes,986482.0,ns,225
256bit,sse,65536,65536,bytes,1985778.0,ns,450
256bit,sse,65536,65536,bytes,2950638.0,ns,675
256bit,sse,65536,65536,bytes,3935458.0,ns,900
256bit,sse,65536,65536,bytes,5127333.0,ns,1125
256bit,sse,65536,65536,bytes,6244294.0,ns,1350
256bit,sse,65536,65536,bytes,6949218.0,ns,1575
256bit,sse,65536,65536,bytes,8045329.0,ns,1800
256bit,sse,65536,65536,bytes,8859170.0,ns,2025
256bit,sse,65536,65536,bytes,9944540.0,ns,2250
256bit,sse,65536,65536,bytes,11088776.0,ns,2475
256bit,sse,65536,65536,bytes,12028317.0,ns,2700
256bit,sse,65536,65536,bytes,12914897.0,ns,2925
256bit,sse,65536,65536,bytes,14048771.0,ns,3150
256bit,sse,65536,65536,bytes,15075556.0,ns,3375
256bit,sse,65536,65536,bytes,15664545.0,ns,3600
256bit,sse,65536,65536,bytes,16458063.0,ns,3825
256bit,sse,65536,65536,bytes,17776600.0,ns,4050
256bit,sse,65536,65536,bytes,19216272.0,ns,4275
256bit,sse,65536,65536,bytes,20130663.0,ns,4500
256bit,sse,65536,65536,bytes,20960577.0,ns,4725
256bit,sse,65536,65536,bytes,21835926.0,ns,4950
256bit,sse,65536,65536,bytes,22852514.0,ns,5175
256bit,sse,65536,65536,bytes,23882270.0,ns,5400
256bit,sse,65536,65536,bytes,25085336.0,ns,5625
256bit,sse,65536,65536,bytes,26179105.0,ns,5850
256bit,sse,65536,65536,bytes,26960183.0,ns,6075
256bit,sse,65536,65536,bytes,27851191.0,ns,6300
256bit,sse,65536,65536,bytes,28737409.0,ns,6525
256bit,sse,65536,65536,bytes,29917034.0,ns,6750
256bit,sse,65536,65536,bytes,30670728.0,ns,6975
256bit,sse,65536,65536,bytes,31795285.0,ns,7200
256bit,sse,65536,65536,bytes,32868002.0,ns,7425
256bit,sse,65536,65536,bytes,34089295.0,ns,7650
256bit,sse,65536,65536,bytes,35104334.0,ns,7875
256bit,sse,65536,65536,bytes,35957346.0,ns,8100
256bit,sse,65536,65536,bytes,37068306.0,ns,8325
256bit,sse,65536,65536,bytes,40216636.0,ns,8550
256bit,sse,65536,65536,bytes,39632784.0,ns,8775
256bit,sse,65536,65536,bytes,40357525.0,ns,9000
256bit,sse,65536,65536,bytes,41049682.0,ns,9225
256bit,sse,65536,65536,bytes,42033659.0,ns,9450
256bit,sse,65536,65536,bytes,42769129.0,ns,9675
256bit,sse,65536,65536,bytes,43611725.0,ns,9900
256bit,sse,65536,65536,bytes,44824922.0,ns,10125
256bit,sse,65536,65536,bytes,45741098.0,ns,10350
256bit,sse,65536,65536,bytes,47042414.0,ns,10575
256bit,sse,65536,65536,bytes,48413093.0,ns,10800
256bit,sse,65536,65536,bytes,49071877.0,ns,11025
256bit,sse,65536,65536,bytes,50258612.0,ns,11250
256bit,sse,65536,65536,bytes,50940369.0,ns,11475
256bit,sse,65536,65536,bytes,52055288.0,ns,11700
256bit,sse,65536,65536,bytes,51916992.0,ns,11925
256bit,sse,65536,65536,bytes,53310004.0,ns,12150
256bit,sse,65536,65536,bytes,54125358.0,ns,12375
256bit,sse,65536,65536,bytes,55059929.0,ns,12600
256bit,sse,65536,65536,bytes,56358535.0,ns,12825
256bit,sse,65536,65536,bytes,57106033.0,ns,13050
256bit,sse,65536,65536,bytes,58535495.0,ns,13275
256bit,sse,65536,65536,bytes,59604545.0,ns,13500
256bit,sse,65536,65536,bytes,60566679.0,ns,13725
256bit,sse,65536,65536,bytes,61500832.0,ns,13950
256bit,sse,65536,65536,bytes,62403592.0,ns,14175
256bit,sse,65536,65536,bytes,63378152.0,ns,14400
256bit,sse,65536,65536,bytes,64547073.0,ns,14625
256bit,sse,65536,65536,bytes,65894247.0,ns,14850
256bit,sse,65536,65536,bytes,66706204.0,ns,15075
256bit,sse,65536,65536,bytes,67649652.0,ns,15300
256bit,sse,65536,65536,bytes,68523781.0,ns,15525
256bit,sse,65536,65536,bytes,70057970.0,ns,15750
256bit,sse,65536,65536,bytes,70555737.0,ns,15975
256bit,sse,65536,65536,bytes,71567086.0,ns,16200
256bit,sse,65536,65536,bytes,72956820.0,ns,16425
256bit,sse,65536,65536,bytes,73503470.0,ns,16650
256bit,sse,65536,65536,bytes,74304906.0,ns,16875
256bit,sse,65536,65536,bytes,75463828.0,ns,17100
256bit,sse,65536,65536,bytes,75564702.0,ns,17325
256bit,sse,65536,65536,bytes,76601321.0,ns,17550
256bit,sse,65536,65536,bytes,77625866.0,ns,17775
256bit,sse,65536,65536,bytes,78324459.0,ns,18000
256bit,sse,65536,65536,bytes,80540995.0,ns,18225
256bit,sse,65536,65536,bytes,81883628.0,ns,18450
256bit,sse,65536,65536,bytes,82265267.0,ns,18675
256bit,sse,65536,65536,bytes,83446487.0,ns,18900
256bit,sse,65536,65536,bytes,84264597.0,ns,19125
256bit,sse,65536,65536,bytes,85296324.0,ns,19350
256bit,sse,65536,65536,bytes,86241818.0,ns,19575
256bit,sse,65536,65536,bytes,87098000.0,ns,19800
256bit,sse,65536,65536,bytes,89095379.0,ns,20025
256bit,sse,65536,65536,bytes,89561304.0,ns,20250
256bit,sse,65536,65536,bytes,91698521.0,ns,20475
256bit,sse,65536,65536,bytes,92617585.0,ns,20700
256bit,sse,65536,65536,bytes,93753523.0,ns,20925
256bit,sse,65536,65536,bytes,93712985.0,ns,21150
256bit,sse,65536,65536,bytes,94573922.0,ns,21375
256bit,sse,65536,65536,bytes,96093861.0,ns,21600
256bit,sse,65536,65536,bytes,96154407.0,ns,21825
256bit,sse,65536,65536,bytes,97269470.0,ns,22050
256bit,sse,65536,65536,bytes,98748763.0,ns,22275
256bit,sse,65536,65536,bytes,99364733.0,ns,22500
256bit,sse,4096,4096,bytes,988005.0,ns,3151
256bit,sse,4096,4096,bytes,1992211.0,ns,6302
256bit,sse,4096,4096,bytes,2966279.0,ns,9453
256bit,sse,4096,4096,bytes,3963813.0,ns,12604
256bit,sse,4096,4096,bytes,5058532.0,ns,15755
256bit,sse,4096,4096,bytes,6014716.0,ns,18906
256bit,sse,4096,4096,bytes,6991176.0,ns,22057
256bit,sse,4096,4096,bytes,7990495.0,ns,25208
256bit,sse,4096,4096,bytes,8990564.0,ns,28359
256bit,sse,4096,4096,bytes,9955805.0,ns,31510
256bit,sse,4096,4096,bytes,10998875.0,ns,34661
256bit,sse,4096,4096,bytes,12036072.0,ns,37812
256bit,sse,4096,4096,bytes,12992017.0,ns,40963
256bit,sse,4096,4096,bytes,13853319.0,ns,44114
256bit,sse,4096,4096,bytes,14865088.0,ns,47265
256bit,sse,4096,4096,bytes,15902099.0,ns,50416
256bit,sse,4096,4096,bytes,16896857.0,ns,53567
256bit,sse,4096,4096,bytes,17851667.0,ns,56718
256bit,sse,4096,4096,bytes,18889418.0,ns,59869
256bit,sse,4096,4096,bytes,19806626.0,ns,63020
256bit,sse,4096,4096,bytes,20742131.0,ns,66171
256bit,sse,4096,4096,bytes,21799027.0,ns,69322
256bit,sse,4096,4096,bytes,22779138.0,ns,72473
256bit,sse,4096,4096,bytes,23767482.0,ns,75624
256bit,sse,4096,4096,bytes,24762863.0,ns,78775
256bit,sse,4096,4096,bytes,25759573.0,ns,81926
256bit,sse,4096,4096,bytes,26613190.0,ns,85077
256bit,sse,4096,4096,bytes,27648347.0,ns,88228
256bit,sse,4096,4096,bytes,28671959.0,ns,91379
256bit,sse,4096,4096,bytes,29843666.0,ns,94530
256bit,sse,4096,4096,bytes,30696902.0,ns,97681
256bit,sse,4096,4096,bytes,31741307.0,ns,100832
256bit,sse,4096,4096,bytes,32537267.0,ns,103983
256bit,sse,4096,4096,bytes,33520097.0,ns,107134
256bit,sse,4096,4096,bytes,34597093.0,ns,110285
256bit,sse,4096,4096,bytes,35571582.0,ns,113436
256bit,sse,4096,4096,bytes,36812121.0,ns,116587
256bit,sse,4096,4096,bytes,38065846.0,ns,119738
256bit,sse,4096,4096,bytes,38659254.0,ns,122889
256bit,sse,4096,4096,bytes,39620208.0,ns,126040
256bit,sse,4096,4096,bytes,40488001.0,ns,129191
256bit,sse,4096,4096,bytes,41589834.0,ns,132342
256bit,sse,4096,4096,bytes,42473018.0,ns,135493
256bit,sse,4096,4096,bytes,43674972.0,ns,138644
256bit,sse,4096,4096,bytes,44655313.0,ns,141795
256bit,sse,4096,4096,bytes,45848913.0,ns,144946
256bit,sse,4096,4096,bytes,46608529.0,ns,148097
256bit,sse,4096,4096,bytes,47302340.0,ns,151248
256bit,sse,4096,4096,bytes,48432308.0,ns,154399
256bit,sse,4096,4096,bytes,49547997.0,ns,157550
256bit,sse,4096,4096,bytes,50726341.0,ns,160701
256bit,sse,4096,4096,bytes,51977206.0,ns,163852
256bit,sse,4096,4096,bytes,52651851.0,ns,167003
256bit,sse,4096,4096,bytes,53576211.0,ns,170154
256bit,sse,4096,4096,bytes,54277258.0,ns,173305
256bit,sse,4096,4096,bytes,55345857.0,ns,176456
256bit,sse,4096,4096,bytes,56263445.0,ns,179607
256bit,sse,4096,4096,bytes,57136251.0,ns,182758
256bit,sse,4096,4096,bytes,58902637.0,ns,185909
256bit,sse,4096,4096,bytes,59462232.0,ns,189060
256bit,sse,4096,4096,bytes,60409878.0,ns,192211
256bit,sse,4096,4096,bytes,62075053.0,ns,195362
256bit,sse,4096,4096,bytes,62688328.0,ns,198513
256bit,sse,4096,4096,bytes,63265384.0,ns,201664
256bit,sse,4096,4096,bytes,64212934.0,ns,204815
256bit,sse,4096,4096,bytes,65203431.0,ns,207966
256bit,sse,4096,4096,bytes,66322059.0,ns,211117
256bit,sse,4096,4096,bytes,71822611.0,ns,214268
256bit,sse,4096,4096,bytes,67295694.0,ns,217419
256bit,sse,4096,4096,bytes,68560560.0,ns,220570
256bit,sse,4096,4096,bytes,69402164.0,ns,223721
256bit,sse,4096,4096,bytes,70381264.0,ns,226872
256bit,sse,4096,4096,bytes,71580402.0,ns,230023
256bit,sse,4096,4096,bytes,72917511.0,ns,233174
256bit,sse,4096,4096,bytes,74778125.0,ns,236325
256bit,sse,4096,4096,bytes,75926458.0,ns,239476
256bit,sse,4096,4096,bytes,76896077.0,ns,242627
256bit,sse,4096,4096,bytes,77506297.0,ns,245778
256bit,sse,4096,4096,bytes,78052355.0,ns,248929
256bit,sse,4096,4096,bytes,79078663.0,ns,252080
256bit,sse,4096,4096,bytes,80008797.0,ns,255231
256bit,sse,4096,4096,bytes,81555662.0,ns,258382
256bit,sse,4096,4096,bytes,80811727.0,ns,261533
256bit,sse,4096,4096,bytes,81877581.0,ns,264684
256bit,sse,4096,4096,bytes,83177905.0,ns,267835
256bit,sse,4096,4096,bytes,84147624.0,ns,270986
256bit,sse,4096,4096,bytes,85163613.0,ns,274137
256bit,sse,4096,4096,bytes,86432357.0,ns,277288
256bit,sse,4096,4096,bytes,87384372.0,ns,280439
256bit,sse,4096,4096,bytes,88345916.0,ns,283590
256bit,sse,4096,4096,bytes,88955235.0,ns,286741
256bit,sse,4096,4096,bytes,89827206.0,ns,289892
256bit,sse,4096,4096,bytes,91078027.0,ns,293043
256bit,sse,4096,4096,bytes,92299057.0,ns,296194
256bit,sse,4096,4096,bytes,93092812.0,ns,299345
256bit,sse,4096,4096,bytes,93877875.0,ns,302496
256bit,sse,4096,4096,bytes,95738217.0,ns,305647
256bit,sse,4096,4096,bytes,98096448.0,ns,308798
256bit,sse,4096,4096,bytes,98165178.0,ns,311949
256bit,sse,4096,4096,bytes,98807630.0,ns,315100
256bit,sse,256,256,bytes,1025317.0,ns,18547
256bit,sse,256,256,bytes,2062817.0,ns,37094
256bit,sse,256,256,bytes,3090438.0,ns,55641
256bit,sse,256,256,bytes,4299146.0,ns,74188
256bit,sse,256,256,bytes,5547611.0,ns,92735
256bit,sse,256,256,bytes,6372614.0,ns,111282
256bit,sse,256,256,bytes,7320280.0,ns,129829
256bit,sse,256,256,bytes,8315359.0,ns,148376
256bit,sse,256,256,bytes,8837822.0,ns,166923
256bit,sse,256,256,bytes,9596647.0,ns,185470
256bit,sse,256,256,bytes,10705654.0,ns,204017
256bit,sse,256,256,bytes,11961464.0,ns,222564
256bit,sse,256,256,bytes,12892548.0,ns,241111
256bit,sse,256,256,bytes,13733311.0,ns,259658
256bit,sse,256,256,bytes,14742156.0,ns,278205
256bit,sse,256,256,bytes,15642474.0,ns,296752
256bit,sse,256,256,bytes,16628133.0,ns,315299
256bit,sse,256,256,bytes,17631669.0,ns,333846
256bit,sse,256,256,bytes,18557974.0,ns,352393
256bit,sse,256,256,bytes,19556932.0,ns,370940
256bit,sse,256,256,bytes,20577830.0,ns,389487
256bit,sse,256,256,bytes,21736592.0,ns,408034
256bit,sse,256,256,bytes,22479117.0,ns,426581
256bit,sse,256,256,bytes,23420873.0,ns,445128
256bit,sse,256,256,bytes,24252167.0,ns,463675
256bit,sse,256,256,bytes,25241755.0,ns,482222
256bit,sse,256,256,bytes,26277833.0,ns,500769
256bit,sse,256,256,bytes,27169453.0,ns,519316
256bit,sse,256,256,bytes,28181515.0,ns,537863
256bit,sse,256,256,bytes,29243010.0,ns,556410
256bit,sse,256,256,bytes,30490704.0,ns,574957
256bit,sse,256,256,bytes,31041369.0,ns,593504
256bit,sse,256,256,bytes,32274765.0,ns,612051
256bit,sse,256,256,bytes,32759415.0,ns,630598
256bit,sse,256,256,bytes,33959726.0,ns,649145
256bit,sse,256,256,bytes,35326049.0,ns,667692
256bit,sse,256,256,bytes,36242435.0,ns,686239
256bit,sse,256,256,bytes,37203609.0,ns,704786
256bit,sse,256,256,bytes,38345869.0,ns,723333
256bit,sse,256,256,bytes,39247250.0,ns,741880
256bit,sse,256,256,bytes,40045721.0,ns,760427
256bit,sse,256,256,bytes,41011392.0,ns,778974
256bit,sse,256,256,bytes,42070274.0,ns,797521
256bit,sse,256,256,bytes,43066334.0,ns,816068
256bit,sse,256,256,bytes,44396236.0,ns,834615
256bit,sse,256,256,bytes,45226197.0,ns,853162
256bit,sse,256,256,bytes,46358745.0,ns,871709
256bit,sse,256,256,bytes,46868809.0,ns,890256
256bit,sse,256,256,bytes,47884085.0,ns,908803
256bit,sse,256,256,bytes,48930743.0,ns,927350
256bit,sse,256,256,bytes,49712602.0,ns,945897
256bit,sse,256,256,bytes,50684758.0,ns,964444
256bit,sse,256,256,bytes,51802781.0,ns,982991
256bit,sse,256,256,bytes,52542281.0,ns,1001538
256bit,sse,256,256,bytes,54246109.0,ns,1020085
256bit,sse,256,256,bytes,54880655.0,ns,1038632
256bit,sse,256,256,bytes,55645661.0,ns,1057179
256bit,sse,256,256,bytes,56704483.0,ns,1075726
256bit,sse,256,256,bytes,57574011.0,ns,1094273
256bit,sse,256,256,bytes,58705342.0,ns,1112820
256bit,sse,256,256,bytes,61884639.0,ns,1131367
256bit,sse,256,256,bytes,60334846.0,ns,1149914
256bit,sse,256,256,bytes,61266413.0,ns,1168461
256bit,sse,256,256,bytes,62437310.0,ns,1187008
256bit,sse,256,256,bytes,63436585.0,ns,1205555
256bit,sse,256,256,bytes,64497191.0,ns,1224102
256bit,sse,256,256,bytes,65365385.0,ns,1242649
256bit,sse,256,256,bytes,66349643.0,ns,1261196
256bit,sse,256,256,bytes,67742385.0,ns,1279743
256bit,sse,256,256,bytes,68297249.0,ns,1298290
256bit,sse,256,256,bytes,69484035.0,ns,1316837
256bit,sse,256,256,bytes,70145424.0,ns,1335384
256bit,sse,256,256,bytes,71131314.0,ns,1353931
256bit,sse,256,256,bytes,72079413.0,ns,1372478
256bit,sse,256,256,bytes,73276531.0,ns,1391025
256bit,sse,256,256,bytes,74055964.0,ns,1409572
256bit,sse,256,256,bytes,74410554.0,ns,1428119
256bit,sse,256,256,bytes,75199639.0,ns,1446666
256bit,sse,256,256,bytes,76434596.0,ns,1465213
256bit,sse,256,256,bytes,77321228.0,ns,1483760
256bit,sse,256,256,bytes,78418352.0,ns,1502307
256bit,sse,256,256,bytes,79646747.0,ns,1520854
256bit,sse,256,256,bytes,80608603.0,ns,1539401
256bit,sse,256,256,bytes,81333323.0,ns,1557948
256bit,sse,256,256,bytes,82388708.0,ns,1576495
256bit,sse,256,256,bytes,83222987.0,ns,1595042
256bit,sse,256,256,bytes,84360551.0,ns,1613589
256bit,sse,256,256,bytes,85428418.0,ns,1632136
256bit,sse,256,256,bytes,86160882.0,ns,1650683
256bit,sse,256,256,bytes,87488229.0,ns,1669230
256bit,sse,256,256,bytes,88257023.0,ns,1687777
256bit,sse,256,256,bytes,89292198.0,ns,1706324
256bit,sse,256,256,bytes,90507690.0,ns,1724871
256bit,sse,256,256,bytes,90964146.0,ns,1743418
256bit,sse,256,256,bytes,92057022.0,ns,1761965
256bit,sse,256,256,bytes,93526740.0,ns,1780512
256bit,sse,256,256,bytes,94803399.0,ns,1799059
256bit,sse,256,256,bytes,94993856.0,ns,1817606
256bit,sse,256,256,bytes,96371321.0,ns,1836153
256bit,sse,256,256,bytes,97757306.0,ns,1854700
256bit,blake2b_simd,4,4,bytes,987836.0,ns,4668
256bit,blake2b_simd,4,4,bytes,1963357.0,ns,9336
256bit,blake2b_simd,4,4,bytes,2948757.0,ns,14004
256bit,blake2b_simd,4,4,bytes,3960197.0,ns,18672
256bit,blake2b_simd,4,4,bytes,5010453.0,ns,23340
256bit,blake2b_simd,4,4,bytes,6015972.0,ns,28008
256bit,blake2b_simd,4,4,bytes,6997656.0,ns,32676
256bit,blake2b_simd,4,4,bytes,7972775.0,ns,37344
256bit,blake2b_simd,4,4,bytes,8929301.0,ns,42012
256bit,blake2b_simd,4,4,bytes,9942665.0,ns,46680
256bit,blake2b_simd,4,4,bytes,10935079.0,ns,51348
256bit,blake2b_simd,4,4,bytes,11962652.0,ns,56016
256bit,blake2b_simd,4,4,bytes,12979802.0,ns,60684
256bit,blake2b_simd,4,4,bytes,13932620.0,ns,65352
256bit,blake2b_simd,4,4,bytes,14984067.0,ns,70020
256bit,blake2b_simd,4,4,bytes,16006129.0,ns,74688
256bit,blake2b_simd,4,4,bytes,16985387.0,ns,79356
256bit,blake2b_simd,4,4,bytes,17974075.0,ns,84024
256bit,blake2b_simd,4,4,bytes,18984712.0,ns,88692
256bit,blake2b_simd,4,4,bytes,19860393.0,ns,93360
256bit,blake2b_simd,4,4,bytes,20890249.0,ns,98028
256bit,blake2b_simd,4,4,bytes,21901560.0,ns,102696
256bit,blake2b_simd,4,4,bytes,22789042.0,ns,107364
256bit,blake2b_simd,4,4,bytes,23719827.0,ns,112032
256bit,blake2b_simd,4,4,bytes,24654351.0,ns,116700
256bit,blake2b_simd,4,4,bytes,25706469.0,ns,121368
256bit,blake2b_simd,4,4,bytes,26687962.0,ns,126036
256bit,blake2b_simd,4,4,bytes,27581005.0,ns,130704
256bit,blake2b_simd,4,4,bytes,28551808.0,ns,135372
256bit,blake2b_simd,4,4,bytes,29758393.0,ns,140040
256bit,blake2b_simd,4,4,bytes,30960349.0,ns,144708
256bit,blake2b_simd,4,4,bytes,31839436.0,ns,149376
256bit,blake2b_simd,4,4,bytes,32795379.0,ns,154044
256bit,blake2b_simd,4,4,bytes,33550768.0,ns,158712
256bit,blake2b_simd,4,4,bytes,34515861.0,ns,163380
256bit,blake2b_simd,4,4,bytes,35726373.0,ns,168048
256bit,blake2b_simd,4,4,bytes,36580742.0,ns,172716
256bit,blake2b_simd,4,4,bytes,37609406.0,ns,177384
256bit,blake2b_simd,4,4,bytes,38534951.0,ns,182052
256bit,blake2b_simd,4,4,bytes,39520491.0,ns,186720
256bit,blake2b_simd,4,4,bytes,40684717.0,ns,191388
256bit,blake2b_simd,4,4,bytes,41601173.0,ns,196056
256bit,blake2b_simd,4,4,bytes,42353547.0,ns,200724
256bit,blake2b_simd,4,4,bytes,43384125.0,ns,205392
256bit,blake2b_simd,4,4,bytes,44256328.0,ns,210060
256bit,blake2b_simd,4,4,bytes,45339450.0,ns,214728
256bit,blake2b_simd,4,4,bytes,46361236.0,ns,219396
256bit,blake2b_simd,4,4,bytes,47481035.0,ns,224064
256bit,blake2b_simd,4,4,bytes,48565425.0,ns,228732
256bit,blake2b_simd,4,4,bytes,49398644.0,ns,233400
256bit,blake2b_simd,4,4,bytes,50161276.0,ns,238068
256bit,blake2b_simd,4,4,bytes,51496850.0,ns,242736
256bit,blake2b_simd,4,4,bytes,52200038.0,ns,247404
256bit,blake2b_simd,4,4,bytes,53264420.0,ns,252072
256bit,blake2b_simd,4,4,bytes,54141983.0,ns,256740
256bit,blake2b_simd,4,4,bytes,55211546.0,ns,261408
256bit,blake2b_simd,4,4,bytes,56186286.0,ns,266076
256bit,blake2b_simd,4,4,bytes,57272480.0,ns,270744
256bit,blake2b_simd,4,4,bytes,58377499.0,ns,275412
256bit,blake2b_simd,4,4,bytes,59163608.0,ns,280080
256bit,blake2b_simd,4,4,bytes,60798486.0,ns,284748
256bit,blake2b_simd,4,4,bytes,61303312.0,ns,289416
256bit,blake2b_simd,4,4,bytes,62111252.0,ns,294084
256bit,blake2b_simd,4,4,bytes,63290466.0,ns,298752
256bit,blake2b_simd,4,4,bytes,64156317.0,ns,303420
256bit,blake2b_simd,4,4,bytes,65246888.0,ns,308088
256bit,blake2b_simd,4,4,bytes,66404740.0,ns,312756
256bit,blake2b_simd,4,4,bytes,67746404.0,ns,317424
256bit,blake2b_simd,4,4,bytes,67965857.0,ns,322092
256bit,blake2b_simd,4,4,bytes,69162993.0,ns,326760
256bit,blake2b_simd,4,4,bytes,70111778.0,ns,331428
256bit,blake2b_simd,4,4,bytes,70968537.0,ns,336096
256bit,blake2b_simd,4,4,bytes,72084417.0,ns,340764
256bit,blake2b_simd,4,4,bytes,73130834.0,ns,345432
256bit,blake2b_simd,4,4,bytes,73915090.0,ns,350100
256bit,blake2b_simd,4,4,bytes,75828520.0,ns,354768
256bit,blake2b_simd,4,4,bytes,76518914.0,ns,359436
256bit,blake2b_simd,4,4,bytes,77064812.0,ns,364104
256bit,blake2b_simd,4,4,bytes,78537657.0,ns,368772
256bit,blake2b_simd,4,4,bytes,78212073.0,ns,373440
256bit,blake2b_simd,4,4,bytes,79565900.0,ns,378108
256bit,blake2b_simd,4,4,bytes,80334265.0,ns,382776
256bit,blake2b_simd,4,4,bytes,81395190.0,ns,387444
256bit,blake2b_simd,4,4,bytes,82429374.0,ns,392112
256bit,blake2b_simd,4,4,bytes,83185629.0,ns,396780
256bit,blake2b_simd,4,4,bytes,84560342.0,ns,401448
256bit,blake2b_simd,4,4,bytes,86002809.0,ns,406116
256bit,blake2b_simd,4,4,bytes,86978832.0,ns,410784
256bit,blake2b_simd,4,4,bytes,88418514.0,ns,415452
256bit,blake2b_simd,4,4,bytes,89070405.0,ns,420120
256bit,blake2b_simd,4,4,bytes,90378766.0,ns,424788
256bit,blake2b_simd,4,4,bytes,89754147.0,ns,429456
256bit,blake2b_simd,4,4,bytes,90964659.0,ns,434124
256bit,blake2b_simd,4,4,bytes,91538731.0,ns,438792
256bit,blake2b_simd,4,4,bytes,93818043.0,ns,443460
256bit,blake2b_simd,4,4,bytes,94977467.0,ns,448128
256bit,blake2b_simd,4,4,bytes,96044375.0,ns,452796
256bit,blake2b_simd,4,4,bytes,96828119.0,ns,457464
256bit,blake2b_simd,4,4,bytes,97795183.0,ns,462132
256bit,blake2b_simd,4,4,bytes,98853744.0,ns,466800
256bit,blake2b_simd,16384,16384,bytes,990800.0,ns,84
256bit,blake2b_simd,16384,16384,bytes,2000917.0,ns,168
256bit,blake2b_simd,16384,16384,bytes,2976006.0,ns,252
256bit,blake2b_simd,16384,16384,bytes,3989030.0,ns,336
256bit,blake2b_simd,16384,16384,bytes,5063301.0,ns,420
256bit,blake2b_simd,16384,16384,bytes,6024232.0,ns,504
256bit,blake2b_simd,16384,16384,bytes,6981109.0,ns,588
256bit,blake2b_simd,16384,16384,bytes,7967601.0,ns,672
256bit,blake2b_simd,16384,16384,bytes,8983448.0,ns,756
256bit,blake2b_simd,16384,16384,bytes,10426828.0,ns,840
256bit,blake2b_simd,16384,16384,bytes,10920222.0,ns,924
256bit,blake2b_simd,16384,16384,bytes,11703826.0,ns,1008
256bit,blake2b_simd,16384,16384,bytes,12890954.0,ns,1092
256bit,blake2b_simd,16384,16384,bytes,13982014.0,ns,1176
256bit,blake2b_simd,16384,16384,bytes,15034023.0,ns,1260
256bit,blake2b_simd,16384,16384,bytes,15984575.0,ns,1344
256bit,blake2b_simd,16384,16384,bytes,16957301.0,ns,1428
256bit,blake2b_simd,16384,16384,bytes,17825767.0,ns,1512
256bit,blake2b_simd,16384,16384,bytes,18727075.0,ns,1596
256bit,blake2b_simd,16384,16384,bytes,19755738.0,ns,1680
256bit,blake2b_simd,16384,16384,bytes,20771617.0,ns,1764
256bit,blake2b_simd,16384,16384,bytes,21708774.0,ns,1848
256bit,blake2b_simd,16384,16384,bytes,22667483.0,ns,1932
256bit,blake2b_simd,16384,16384,bytes,23828748.0,ns,2016
256bit,blake2b_simd,16384,16384,bytes,24780956.0,ns,2100
256bit,blake2b_simd,16384,16384,bytes,25895473.0,ns,2184
256bit,blake2b_simd,16384,16384,bytes,26679997.0,ns,2268
256bit,blake2b_simd,16384,16384,bytes,27546430.0,ns,2352
256bit,blake2b_simd,16384,16384,bytes,28546066.0,ns,2436
256bit,blake2b_simd,16384,16384,bytes,29584999.0,ns,2520
256bit,blake2b_simd,16384,16384,bytes,30764161.0,ns,2604
256bit,blake2b_simd,16384,16384,bytes,31782964.0,ns,2688
256bit,blake2b_simd,16384,16384,bytes,32443721.0,ns,2772
256bit,blake2b_simd,16384,16384,bytes,33479518.0,ns,2856
256bit,blake2b_simd,16384,16384,bytes,34641447.0,ns,2940
256bit,blake2b_simd,16384,16384,bytes,35461930.0,ns,3024
256bit,blake2b_simd,16384,16384,bytes,36767142.0,ns,3108
256bit,blake2b_simd,16384,16384,bytes,37561566.0,ns,3192
256bit,blake2b_simd,16384,16384,bytes,38400475.0,ns,3276
256bit,blake2b_simd,16384,16384,bytes,39565240.0,ns,3360
256bit,blake2b_simd,16384,16384,bytes,40460236.0,ns,3444
256bit,blake2b_simd,16384,16384,bytes,41377626.0,ns,3528
256bit,blake2b_simd,16384,16384,bytes,42239807.0,ns,3612
256bit,blake2b_simd,16384,16384,bytes,43375037.0,ns,3696
256bit,blake2b_simd,16384,16384,bytes,44848441.0,ns,3780
256bit,blake2b_simd,16384,16384,bytes,45800016.0,ns,3864
256bit,blake2b_simd,16384,16384,bytes,46699030.0,ns,3948
256bit,blake2b_simd,16384,16384,bytes,47278082.0,ns,4032
256bit,blake2b_simd,16384,16384,bytes,48376988.0,ns,4116
256bit,blake2b_simd,16384,16384,bytes,49392967.0,ns,4200
256bit,blake2b_simd,16384,16384,bytes,50278765.0,ns,4284
256bit,blake2b_simd,16384,16384,bytes,51371903.0,ns,4368
256bit,blake2b_simd,16384,16384,bytes,52633922.0,ns,4452
256bit,blake2b_simd,16384,16384,bytes,53647908.0,ns,4536
256bit,blake2b_simd,16384,16384,bytes,54341256.0,ns,4620
256bit,blake2b_simd,16384,16384,bytes,55244820.0,ns,4704
256bit,blake2b_simd,16384,16384,bytes,56254405.0,ns,4788
256bit,blake2b_simd,16384,16384,bytes,57191313.0,ns,4872
256bit,blake2b_simd,16384,16384,bytes,58074918.0,ns,4956
256bit,blake2b_simd,16384,16384,bytes,59080045.0,ns,5040
256bit,blake2b_simd,16384,16384,bytes,60441585.0,ns,5124
256bit,blake2b_simd,16384,16384,bytes,61413901.0,ns,5208
256bit,blake2b_simd,16384,16384,bytes,62025443.0,ns,5292
256bit,blake2b_simd,16384,16384,bytes,63054418.0,ns,5376
256bit,blake2b_simd,16384,16384,bytes,64663412.0,ns,5460
256bit,blake2b_simd,16384,16384,bytes,64931508.0,ns,5544
256bit,blake2b_simd,16384,16384,bytes,66098164.0,ns,5628
256bit,blake2b_simd,16384,16384,bytes,67973551.0,ns,5712
256bit,blake2b_simd,16384,16384,bytes,68196070.0,ns,5796
256bit,blake2b_simd,16384,16384,bytes,68636725.0,ns,5880
256bit,blake2b_simd,16384,16384,bytes,70347995.0,ns,5964
256bit,blake2b_simd,16384,16384,bytes,71538388.0,ns,6048
256bit,blake2b_simd,16384,16384,bytes,72585676.0,ns,6132
256bit,blake2b_simd,16384,16384,bytes,73481034.0,ns,6216
256bit,blake2b_simd,16384,16384,bytes,73940645.0,ns,6300
256bit,blake2b_simd,16384,16384,bytes,75746769.0,ns,6384
256bit,blake2b_simd,16384,16384,bytes,75975146.0,ns,6468
256bit,blake2b_simd,16384,16384,bytes,76983702.0,ns,6552
256bit,blake2b_simd,16384,16384,bytes,78260148.0,ns,6636
256bit,blake2b_simd,16384,16384,bytes,78064425.0,ns,6720
256bit,blake2b_simd,16384,16384,bytes,79097514.0,ns,6804
256bit,blake2b_simd,16384,16384,bytes,80227412.0,ns,6888
256bit,blake2b_simd,16384,16384,bytes,80974584.0,ns,6972
256bit,blake2b_simd,16384,16384,bytes,82008697.0,ns,7056
256bit,blake2b_simd,16384,16384,bytes,83327989.0,ns,7140
256bit,blake2b_simd,16384,16384,bytes,84215079.0,ns,7224
256bit,blake2b_simd,16384,16384,bytes,85724714.0,ns,7308
256bit,blake2b_simd,16384,16384,bytes,86878678.0,ns,7392
256bit,blake2b_simd,16384,16384,bytes,88044644.0,ns,7476
256bit,blake2b_simd,16384,16384,bytes,89202955.0,ns,7560
256bit,blake2b_simd,16384,16384,bytes,90136595.0,ns,7644
256bit,blake2b_simd,16384,16384,bytes,90805259.0,ns,7728
256bit,blake2b_simd,16384,16384,bytes,92307950.0,ns,7812
256bit,blake2b_simd,16384,16384,bytes,93028390.0,ns,7896
256bit,blake2b_simd,16384,16384,bytes,93677106.0,ns,7980
256bit,blake2b_simd,16384,16384,bytes,95109584.0,ns,8064
256bit,blake2b_simd,16384,16384,bytes,95616334.0,ns,8148
256bit,blake2b_simd,16384,16384,bytes,96942829.0,ns,8232
256bit,blake2b_simd,16384,16384,bytes,97477054.0,ns,8316
256bit,blake2b_simd,16384,16384,bytes,98478113.0,ns,8400
256bit,blake2b_simd,1,1,bytes,979700.0,ns,4637
256bit,blake2b_simd,1,1,bytes,1958468.0,ns,9274
256bit,blake2b_simd,1,1,bytes,2931976.0,ns,13911
256bit,blake2b_simd,1,1,bytes,3982541.0,ns,18548
256bit,blake2b_simd,1,1,bytes,5167395.0,ns,23185
256bit,blake2b_simd,1,1,bytes,6128107.0,ns,27822
256bit,blake2b_simd,1,1,bytes,6965055.0,ns,32459
256bit,blake2b_simd,1,1,bytes,7790739.0,ns,37096
256bit,blake2b_simd,1,1,bytes,8887401.0,ns,41733
256bit,blake2b_simd,1,1,bytes,9996261.0,ns,46370
256bit,blake2b_simd,1,1,bytes,10935591.0,ns,51007
256bit,blake2b_simd,1,1,bytes,11856471.0,ns,55644
256bit,blake2b_simd,1,1,bytes,12881495.0,ns,60281
256bit,blake2b_simd,1,1,bytes,13788807.0,ns,64918
256bit,blake2b_simd,1,1,bytes,14833452.0,ns,69555
256bit,blake2b_simd,1,1,bytes,15839241.0,ns,74192
256bit,blake2b_simd,1,1,bytes,16799604.0,ns,78829
256bit,blake2b_simd,1,1,bytes,17742124.0,ns,83466
256bit,blake2b_simd,1,1,bytes,18898741.0,ns,88103
256bit,blake2b_simd,1,1,bytes,19819828.0,ns,92740
256bit,blake2b_simd,1,1,bytes,20791302.0,ns,97377
256bit,blake2b_simd,1,1,bytes,21772595.0,ns,102014
256bit,blake2b_simd,1,1,bytes,22724322.0,ns,106651
256bit,blake2b_simd,1,1,bytes,23606525.0,ns,111288
256bit,blake2b_simd,1,1,bytes,24638264.0,ns,115925
256bit,blake2b_simd,1,1,bytes,26293007.0,ns,120562
256bit,blake2b_simd,1,1,bytes,27052467.0,ns,125199
256bit,blake2b_simd,1,1,bytes,27520505.0,ns,129836
256bit,blake2b_simd,1,1,bytes,28590748.0,ns,134473
256bit,blake2b_simd,1,1,bytes,29700406.0,ns,139110
256bit,blake2b_simd,1,1,bytes,30689074.0,ns,143747
256bit,blake2b_simd,1,1,bytes,33529423.0,ns,148384
256bit,blake2b_simd,1,1,bytes,32290466.0,ns,153021
256bit,blake2b_simd,1,1,bytes,33614577.0,ns,157658
256bit,blake2b_simd,1,1,bytes,34377029.0,ns,162295
256bit,blake2b_simd,1,1,bytes,35613814.0,ns,166932
256bit,blake2b_simd,1,1,bytes,36582992.0,ns,171569
256bit,blake2b_simd,1,1,bytes,37385652.0,ns,176206
256bit,blake2b_simd,1,1,bytes,38388486.0,ns,180843
256bit,blake2b_simd,1,1,bytes,39574753.0,ns,185480
256bit,blake2b_simd,1,1,bytes,40433331.0,ns,190117
256bit,blake2b_simd,1,1,bytes,41362503.0,ns,194754
256bit,blake2b_simd,1,1,bytes,42307787.0,ns,199391
256bit,blake2b_simd,1,1,bytes,43351129.0,ns,204028
256bit,blake2b_simd,1,1,bytes,44317426.0,ns,208665
256bit,blake2b_simd,1,1,bytes,45056701.0,ns,213302
256bit,blake2b_simd,1,1,bytes,46008728.0,ns,217939
256bit,blake2b_simd,1,1,bytes,47029085.0,ns,222576
256bit,blake2b_simd,1,1,bytes,48166528.0,ns,227213
256bit,blake2b_simd,1,1,bytes,49058369.0,ns,231850
256bit,blake2b_simd,1,1,bytes,50005897.0,ns,236487
256bit,blake2b_simd,1,1,bytes,50945671.0,ns,241124
256bit,blake2b_simd,1,1,bytes,51983971.0,ns,245761
256bit,blake2b_simd,1,1,bytes,52803665.0,ns,250398
256bit,blake2b_simd,1,1,bytes,53870032.0,ns,255035
256bit,blake2b_simd,1,1,bytes,55007253.0,ns,259672
256bit,blake2b_simd,1,1,bytes,55765408.0,ns,264309
256bit,blake2b_simd,1,1,bytes,57117123.0,ns,268946
256bit,blake2b_simd,1,1,bytes,57836532.0,ns,273583
256bit,blake2b_simd,1,1,bytes,58797465.0,ns,278220
256bit,blake2b_simd,1,1,bytes,59759240.0,ns,282857
256bit,blake2b_simd,1,1,bytes,60755071.0,ns,287494
256bit,blake2b_simd,1,1,bytes,61718120.0,ns,292131
256bit,blake2b_simd,1,1,bytes,63934803.0,ns,296768
256bit,blake2b_simd,1,1,bytes,66392399.0,ns,301405
256bit,blake2b_simd,1,1,bytes,66313305.0,ns,306042
256bit,blake2b_simd,1,1,bytes,66905052.0,ns,310679
256bit,blake2b_simd,1,1,bytes,67087532.0,ns,315316
256bit,blake2b_simd,1,1,bytes,67910991.0,ns,319953
256bit,blake2b_simd,1,1,bytes,68959764.0,ns,324590
256bit,blake2b_simd,1,1,bytes,69945885.0,ns,329227
256bit,blake2b_simd,1,1,bytes,72242534.0,ns,333864
256bit,blake2b_simd,1,1,bytes,70313050.0,ns,338501
256bit,blake2b_simd,1,1,bytes,73033680.0,ns,343138
256bit,blake2b_simd,1,1,bytes,72888834.0,ns,347775
256bit,blake2b_simd,1,1,bytes,73770463.0,ns,352412
256bit,blake2b_simd,1,1,bytes,75627306.0,ns,357049
256bit,blake2b_simd,1,1,bytes,76520490.0,ns,361686
256bit,blake2b_simd,1,1,bytes,77664055.0,ns,366323
256bit,blake2b_simd,1,1,bytes,78470963.0,ns,370960
256bit,blake2b_simd,1,1,bytes,78677280.0,ns,375597
256bit,blake2b_simd,1,1,bytes,79371235.0,ns,380234
256bit,blake2b_simd,1,1,bytes,80407329.0,ns,384871
256bit,blake2b_simd,1,1,bytes,81424250.0,ns,389508
256bit,blake2b_simd,1,1,bytes,82434582.0,ns,394145
256bit,blake2b_simd,1,1,bytes,83450427.0,ns,398782
256bit,blake2b_simd,1,1,bytes,84771471.0,ns,403419
256bit,blake2b_simd,1,1,bytes,85730046.0,ns,408056
256bit,blake2b_simd,1,1,bytes,86259637.0,ns,412693
256bit,blake2b_simd,1,1,bytes,88798309.0,ns,417330
256bit,blake2b_simd,1,1,bytes,89942273.0,ns,421967
256bit,blake2b_simd,1,1,bytes,94319331.0,ns,426604
256bit,blake2b_simd,1,1,bytes,93302660.0,ns,431241
256bit,blake2b_simd,1,1,bytes,91624836.0,ns,435878
256bit,blake2b_simd,1,1,bytes,92164116.0,ns,440515
256bit,blake2b_simd,1,1,bytes,93259227.0,ns,445152
256bit,blake2b_simd,1,1,bytes,94100095.0,ns,449789
256bit,blake2b_simd,1,1,bytes,96095880.0,ns,454426
256bit,blake2b_simd,1,1,bytes,96170343.0,ns,459063
256bit,blake2b_simd,1,1,bytes,97083925.0,ns,463700
256bit,blake2b_simd,64,64,bytes,976953.0,ns,4810
256bit,blake2b_simd,64,64,bytes,1977192.0,ns,9620
256bit,blake2b_simd,64,64,bytes,3007569.0,ns,14430
256bit,blake2b_simd,64,64,bytes,3974985.0,ns,19240
256bit,blake2b_simd,64,64,bytes,5189224.0,ns,24050
256bit,blake2b_simd,64,64,bytes,6165175.0,ns,28860
256bit,blake2b_simd,64,64,bytes,6987505.0,ns,33670
256bit,blake2b_simd,64,64,bytes,7870707.0,ns,38480
256bit,blake2b_simd,64,64,bytes,8869785.0,ns,43290
256bit,blake2b_simd,64,64,bytes,10003038.0,ns,48100
256bit,blake2b_simd,64,64,bytes,11120392.0,ns,52910
256bit,blake2b_simd,64,64,bytes,12142534.0,ns,57720
256bit,blake2b_simd,64,64,bytes,13161266.0,ns,62530
256bit,blake2b_simd,64,64,bytes,14362561.0,ns,67340
256bit,blake2b_simd,64,64,bytes,15712571.0,ns,72150
256bit,blake2b_simd,64,64,bytes,16194595.0,ns,76960
256bit,blake2b_simd,64,64,bytes,16562671.0,ns,81770
256bit,blake2b_simd,64,64,bytes,17898113.0,ns,86580
256bit,blake2b_simd,64,64,bytes,18701042.0,ns,91390
256bit,blake2b_simd,64,64,bytes,19744646.0,ns,96200
256bit,blake2b_simd,64,64,bytes,20639953.0,ns,101010
256bit,blake2b_simd,64,64,bytes,21598000.0,ns,105820
256bit,blake2b_simd,64,64,bytes,22592497.0,ns,110630
256bit,blake2b_simd,64,64,bytes,23597635.0,ns,115440
256bit,blake2b_simd,64,64,bytes,24570233.0,ns,120250
256bit,blake2b_simd,64,64,bytes,25500215.0,ns,125060
256bit,blake2b_simd,64,64,bytes,26479997.0,ns,129870
256bit,blake2b_simd,64,64,bytes,27426330.0,ns,134680
256bit,blake2b_simd,64,64,bytes,28485582.0,ns,139490
256bit,blake2b_simd,64,64,bytes,29450553.0,ns,144300
256bit,blake2b_simd,64,64,bytes,30425684.0,ns,149110
256bit,blake2b_simd,64,64,bytes,31396566.0,ns,153920
256bit,blake2b_simd,64,64,bytes,32455958.0,ns,158730
256bit,blake2b_simd,64,64,bytes,33482538.0,ns,163540
256bit,blake2b_simd,64,64,bytes,34315145.0,ns,168350
256bit,blake2b_simd,64,64,bytes,35304582.0,ns,173160
256bit,blake2b_simd,64,64,bytes,36217324.0,ns,177970
256bit,blake2b_simd,64,64,bytes,37164992.0,ns,182780
256bit,blake2b_simd,64,64,bytes,38166212.0,ns,187590
256bit,blake2b_simd,64,64,bytes,39163596.0,ns,192400
256bit,blake2b_simd,64,64,bytes,40078571.0,ns,197210
256bit,blake2b_simd,64,64,bytes,41285566.0,ns,202020
256bit,blake2b_simd,64,64,bytes,42466051.0,ns,206830
256bit,blake2b_simd,64,64,bytes,43485756.0,ns,211640
256bit,blake2b_simd,64,64,bytes,44259892.0,ns,216450
256bit,blake2b_simd,64,64,bytes,45764458.0,ns,221260
256bit,blake2b_simd,64,64,bytes,46639366.0,ns,226070
256bit,blake2b_simd,64,64,bytes,47638974.0,ns,230880
256bit,blake2b_simd,64,64,bytes,48548197.0,ns,235690
256bit,blake2b_simd,64,64,bytes,49459134.0,ns,240500
256bit,blake2b_simd,64,64,bytes,51752484.0,ns,245310
256bit,blake2b_simd,64,64,bytes,51944462.0,ns,250120
256bit,blake2b_simd,64,64,bytes,52304403.0,ns,254930
256bit,blake2b_simd,64,64,bytes,53328046.0,ns,259740
256bit,blake2b_simd,64,64,bytes,54515834.0,ns,264550
256bit,blake2b_simd,64,64,bytes,55846226.0,ns,269360
256bit,blake2b_simd,64,64,bytes,56556981.0,ns,274170
256bit,blake2b_simd,64,64,bytes,57345021.0,ns,278980
256bit,blake2b_simd,64,64,bytes,58422759.0,ns,283790
256bit,blake2b_simd,64,64,bytes,59266537.0,ns,288600
256bit,blake2b_simd,64,64,bytes,60759622.0,ns,293410
256bit,blake2b_simd,64,64,bytes,61705076.0,ns,298220
256bit,blake2b_simd,64,64,bytes,62967487.0,ns,303030
256bit,blake2b_simd,64,64,bytes,63840941.0,ns,307840
256bit,blake2b_simd,64,64,bytes,64524885.0,ns,312650
256bit,blake2b_simd,64,64,bytes,65205170.0,ns,317460
256bit,blake2b_simd,64,64,bytes,66395913.0,ns,322270
256bit,blake2b_simd,64,64,bytes,66190460.0,ns,327080
256bit,blake2b_simd,64,64,bytes,67721576.0,ns,331890
256bit,blake2b_simd,64,64,bytes,68670016.0,ns,336700
256bit,blake2b_simd,64,64,bytes,69650476.0,ns,341510
256bit,blake2b_simd,64,64,bytes,70739376.0,ns,346320
256bit,blake2b_simd,64,64,bytes,71640193.0,ns,351130
256bit,blake2b_simd,64,64,bytes,72634911.0,ns,355940
256bit,blake2b_simd,64,64,bytes,73493608.0,ns,360750
256bit,blake2b_simd,64,64,bytes,74545336.0,ns,365560
256bit,blake2b_simd,64,64,bytes,75731561.0,ns,370370
256bit,blake2b_simd,64,64,bytes,76641883.0,ns,375180
256bit,blake2b_simd,64,64,bytes,77564335.0,ns,379990
256bit,blake2b_simd,64,64,bytes,78549868.0,ns,384800
256bit,blake2b_simd,64,64,bytes,79544025.0,ns,389610
256bit,blake2b_simd,64,64,bytes,80778672.0,ns,394420
256bit,blake2b_simd,64,64,bytes,81503353.0,ns,399230
256bit,blake2b_simd,64,64,bytes,82364044.0,ns,404040
256bit,blake2b_simd,64,64,bytes,83722669.0,ns,408850
256bit,blake2b_simd,64,64,bytes,84303413.0,ns,413660
256bit,blake2b_simd,64,64,bytes,85458931.0,ns,418470
256bit,blake2b_simd,64,64,bytes,86689952.0,ns,423280
256bit,blake2b_simd,64,64,bytes,87530605.0,ns,428090
256bit,blake2b_simd,64,64,bytes,88719894.0,ns,432900
256bit,blake2b_simd,64,64,bytes,89745564.0,ns,437710
256bit,blake2b_simd,64,64,bytes,90363640.0,ns,442520
256bit,blake2b_simd,64,64,bytes,91304865.0,ns,447330
256bit,blake2b_simd,64,64,bytes,92282328.0,ns,452140
256bit,blake2b_simd,64,64,bytes,93324169.0,ns,456950
256bit,blake2b_simd,64,64,bytes,94275022.0,ns,461760
256bit,blake2b_simd,64,64,bytes,95208012.0,ns,466570
256bit,blake2b_simd,64,64,bytes,96932429.0,ns,471380
256bit,blake2b_simd,64,64,bytes,98155395.0,ns,476190
256bit,blake2b_simd,64,64,bytes,99183036.0,ns,481000
256bit,blake2b_simd,16,16,bytes,986452.0,ns,4754
256bit,blake2b_simd,16,16,bytes,1980038.0,ns,9508
256bit,blake2b_simd,16,16,bytes,2939820.0,ns,14262
256bit,blake2b_simd,16,16,bytes,3927725.0,ns,19016
256bit,blake2b_simd,16,16,bytes,5026202.0,ns,23770
256bit,blake2b_simd,16,16,bytes,6102907.0,ns,28524
256bit,blake2b_simd,16,16,bytes,6977445.0,ns,33278
256bit,blake2b_simd,16,16,bytes,7987062.0,ns,38032
256bit,blake2b_simd,16,16,bytes,8992421.0,ns,42786
256bit,blake2b_simd,16,16,bytes,9920531.0,ns,47540
256bit,blake2b_simd,16,16,bytes,10882458.0,ns,52294
256bit,blake2b_simd,16,16,bytes,11887214.0,ns,57048
256bit,blake2b_simd,16,16,bytes,12914644.0,ns,61802
256bit,blake2b_simd,16,16,bytes,13887481.0,ns,66556
256bit,blake2b_simd,16,16,bytes,14835260.0,ns,71310
256bit,blake2b_simd,16,16,bytes,15732260.0,ns,76064
256bit,blake2b_simd,16,16,bytes,16794798.0,ns,80818
256bit,blake2b_simd,16,16,bytes,17755481.0,ns,85572
256bit,blake2b_simd,16,16,bytes,18727839.0,ns,90326
256bit,blake2b_simd,16,16,bytes,19830392.0,ns,95080
256bit,blake2b_simd,16,16,bytes,20722824.0,ns,99834
256bit,blake2b_simd,16,16,bytes,21587474.0,ns,104588
256bit,blake2b_simd,16,16,bytes,22594334.0,ns,109342
256bit,blake2b_simd,16,16,bytes,23626805.0,ns,114096
256bit,blake2b_simd,16,16,bytes,24792081.0,ns,118850
256bit,blake2b_simd,16,16,bytes,25499096.0,ns,123604
256bit,blake2b_simd,16,16,bytes,26601443.0,ns,128358
256bit,blake2b_simd,16,16,bytes,27574438.0,ns,133112
256bit,blake2b_simd,16,16,bytes,28532617.0,ns,137866
256bit,blake2b_simd,16,16,bytes,29568553.0,ns,142620
256bit,blake2b_simd,16,16,bytes,30358861.0,ns,147374
256bit,blake2b_simd,16,16,bytes,31463378.0,ns,152128
256bit,blake2b_simd,16,16,bytes,32373135.0,ns,156882
256bit,blake2b_simd,16,16,bytes,33550381.0,ns,161636
256bit,blake2b_simd,16,16,bytes,34402127.0,ns,166390
256bit,blake2b_simd,16,16,bytes,35403697.0,ns,171144
256bit,blake2b_simd,16,16,bytes,36354523.0,ns,175898
256bit,blake2b_simd,16,16,bytes,37682047.0,ns,180652
256bit,blake2b_simd,16,16,bytes,38510509.0,ns,185406
256bit,blake2b_simd,16,16,bytes,39529032.0,ns,190160
256bit,blake2b_simd,16,16,bytes,40673677.0,ns,194914
256bit,blake2b_simd,16,16,bytes,41805400.0,ns,199668
256bit,blake2b_simd,16,16,bytes,42617496.0,ns,204422
256bit,blake2b_simd,16,16,bytes,43273916.0,ns,209176
256bit,blake2b_simd,16,16,bytes,44138806.0,ns,213930
256bit,blake2b_simd,16,16,bytes,45185222.0,ns,218684
256bit,blake2b_simd,16,16,bytes,46216602.0,ns,223438
256bit,blake2b_simd,16,16,bytes,46995787.0,ns,228192
256bit,blake2b_simd,16,16,bytes,48306200.0,ns,232946
256bit,blake2b_simd,16,16,bytes,49100292.0,ns,237700
256bit,blake2b_simd,16,16,bytes,50368246.0,ns,242454
256bit,blake2b_simd,16,16,bytes,50894376.0,ns,247208
256bit,blake2b_simd,16,16,bytes,52309260.0,ns,251962
256bit,blake2b_simd,16,16,bytes,53239283.0,ns,256716
256bit,blake2b_simd,16,16,bytes,53967008.0,ns,261470
256bit,blake2b_simd,16,16,bytes,55247937.0,ns,266224
256bit,blake2b_simd,16,16,bytes,56367806.0,ns,270978
256bit,blake2b_simd,16,16,bytes,56981263.0,ns,275732
256bit,blake2b_simd,16,16,bytes,60363599.0,ns,280486
256bit,blake2b_simd,16,16,bytes,58689309.0,ns,285240
256bit,blake2b_simd,16,16,bytes,59703785.0,ns,289994
256bit,blake2b_simd,16,16,bytes,61442741.0,ns,294748
256bit,blake2b_simd,16,16,bytes,62571116.0,ns,299502
256bit,blake2b_simd,16,16,bytes,62761460.0,ns,304256
256bit,blake2b_simd,16,16,bytes,64023422.0,ns,309010
256bit,blake2b_simd,16,16,bytes,64749213.0,ns,313764
256bit,blake2b_simd,16,16,bytes,65620405.0,ns,318518
256bit,blake2b_simd,16,16,bytes,66639240.0,ns,323272
256bit,blake2b_simd,16,16,bytes,67744711.0,ns,328026
256bit,blake2b_simd,16,16,bytes,68892743.0,ns,332780
256bit,blake2b_simd,16,16,bytes,69711984.0,ns,337534
256bit,blake2b_simd,16,16,bytes,70616700.0,ns,342288
256bit,blake2b_simd,16,16,bytes,71663558.0,ns,347042
256bit,blake2b_simd,16,16,bytes,72963893.0,ns,351796
256bit,blake2b_simd,16,16,bytes,73824754.0,ns,356550
256bit,blake2b_simd,16,16,bytes,74945582.0,ns,361304
256bit,blake2b_simd,16,16,bytes,76425614.0,ns,366058
256bit,blake2b_simd,16,16,bytes,77486288.0,ns,370812
256bit,blake2b_simd,16,16,bytes,77761576.0,ns,375566
256bit,blake2b_simd,16,16,bytes,78601177.0,ns,380320
256bit,blake2b_simd,16,16,bytes,79517785.0,ns,385074
256bit,blake2b_simd,16,16,bytes,80631983.0,ns,389828
256bit,blake2b_simd,16,16,bytes,81563941.0,ns,394582
256bit,blake2b_simd,16,16,bytes,82474527.0,ns,399336
256bit,blake2b_simd,16,16,bytes,83498352.0,ns,404090
256bit,blake2b_simd,16,16,bytes,84462421.0,ns,408844
256bit,blake2b_simd,16,16,bytes,86063803.0,ns,413598
256bit,blake2b_simd,16,16,bytes,86822960.0,ns,418352
256bit,blake2b_simd,16,16,bytes,88103887.0,ns,423106
256bit,blake2b_simd,16,16,bytes,89402799.0,ns,427860
256bit,blake2b_simd,16,16,bytes,90196621.0,ns,432614
256bit,blake2b_simd,16,16,bytes,91033086.0,ns,437368
256bit,blake2b_simd,16,16,bytes,91486015.0,ns,442122
256bit,blake2b_simd,16,16,bytes,92391081.0,ns,446876
256bit,blake2b_simd,16,16,bytes,95106510.0,ns,451630
256bit,blake2b_simd,16,16,bytes,94282599.0,ns,456384
256bit,blake2b_simd,16,16,bytes,95166085.0,ns,461138
256bit,blake2b_simd,16,16,bytes,96331771.0,ns,465892
256bit,blake2b_simd,16,16,bytes,98299836.0,ns,470646
256bit,blake2b_simd,16,16,bytes,98926587.0,ns,475400
256bit,blake2b_simd,1024,1024,bytes,978798.0,ns,1174
256bit,blake2b_simd,1024,1024,bytes,1959629.0,ns,2348
256bit,blake2b_simd,1024,1024,bytes,2939728.0,ns,3522
256bit,blake2b_simd,1024,1024,bytes,3929166.0,ns,4696
256bit,blake2b_simd,1024,1024,bytes,5008215.0,ns,5870
256bit,blake2b_simd,1024,1024,bytes,6001902.0,ns,7044
256bit,blake2b_simd,1024,1024,bytes,6943488.0,ns,8218
256bit,blake2b_simd,1024,1024,bytes,7980115.0,ns,9392
256bit,blake2b_simd,1024,1024,bytes,9026314.0,ns,10566
256bit,blake2b_simd,1024,1024,bytes,9999478.0,ns,11740
256bit,blake2b_simd,1024,1024,bytes,10930786.0,ns,12914
256bit,blake2b_simd,1024,1024,bytes,11850679.0,ns,14088
256bit,blake2b_simd,1024,1024,bytes,12772388.0,ns,15262
256bit,blake2b_simd,1024,1024,bytes,13753740.0,ns,16436
256bit,blake2b_simd,1024,1024,bytes,14764878.0,ns,17610
256bit,blake2b_simd,1024,1024,bytes,15730070.0,ns,18784
256bit,blake2b_simd,1024,1024,bytes,16708688.0,ns,19958
256bit,blake2b_simd,1024,1024,bytes,17633902.0,ns,21132
256bit,blake2b_simd,1024,1024,bytes,18576981.0,ns,22306
256bit,blake2b_simd,1024,1024,bytes,19599663.0,ns,23480
256bit,blake2b_simd,1024,1024,bytes,20629458.0,ns,24654
256bit,blake2b_simd,1024,1024,bytes,21561956.0,ns,25828
256bit,blake2b_simd,1024,1024,bytes,22567004.0,ns,27002
256bit,blake2b_simd,1024,1024,bytes,23507317.0,ns,28176
256bit,blake2b_simd,1024,1024,bytes,24477249.0,ns,29350
256bit,blake2b_simd,1024,1024,bytes,25450454.0,ns,30524
256bit,blake2b_simd,1024,1024,bytes,26435383.0,ns,31698
256bit,blake2b_simd,1024,1024,bytes,27545553.0,ns,32872
256bit,blake2b_simd,1024,1024,bytes,28470356.0,ns,34046
256bit,blake2b_simd,1024,1024,bytes,29460144.0,ns,35220
256bit,blake2b_simd,1024,1024,bytes,30493918.0,ns,36394
256bit,blake2b_simd,1024,1024,bytes,31330223.0,ns,37568
256bit,blake2b_simd,1024,1024,bytes,32402057.0,ns,38742
256bit,blake2b_simd,1024,1024,bytes,33349425.0,ns,39916
256bit,blake2b_simd,1024,1024,bytes,34304186.0,ns,41090
256bit,blake2b_simd,1024,1024,bytes,35346343.0,ns,42264
256bit,blake2b_simd,1024,1024,bytes,36308189.0,ns,43438
256bit,blake2b_simd,1024,1024,bytes,37325782.0,ns,44612
256bit,blake2b_simd,1024,1024,bytes,38162998.0,ns,45786
256bit,blake2b_simd,1024,1024,bytes,39191500.0,ns,46960
256bit,blake2b_simd,1024,1024,bytes,40319543.0,ns,48134
256bit,blake2b_simd,1024,1024,bytes,41125239.0,ns,49308
256bit,blake2b_simd,1024,1024,bytes,42148010.0,ns,50482
256bit,blake2b_simd,1024,1024,bytes,43071923.0,ns,51656
256bit,blake2b_simd,1024,1024,bytes,44070198.0,ns,52830
256bit,blake2b_simd,1024,1024,bytes,45019417.0,ns,54004
256bit,blake2b_simd,1024,1024,bytes,46657920.0,ns,55178
256bit,blake2b_simd,1024,1024,bytes,47465341.0,ns,56352
256bit,blake2b_simd,1024,1024,bytes,48178578.0,ns,57526
256bit,blake2b_simd,1024,1024,bytes,49213802.0,ns,58700
256bit,blake2b_simd,1024,1024,bytes,49954274.0,ns,59874
256bit,blake2b_simd,1024,1024,bytes,50941556.0,ns,61048
256bit,blake2b_simd,1024,1024,bytes,52023963.0,ns,62222
256bit,blake2b_simd,1024,1024,bytes,53077682.0,ns,63396
256bit,blake2b_simd,1024,1024,bytes,53984013.0,ns,64570
256bit,blake2b_simd,1024,1024,bytes,55529046.0,ns,65744
256bit,blake2b_simd,1024,1024,bytes,56073990.0,ns,66918
256bit,blake2b_simd,1024,1024,bytes,56971231.0,ns,68092
256bit,blake2b_simd,1024,1024,bytes,57801943.0,ns,69266
256bit,blake2b_simd,1024,1024,bytes,59341127.0,ns,70440
256bit,blake2b_simd,1024,1024,bytes,60201136.0,ns,71614
256bit,blake2b_simd,1024,1024,bytes,61035376.0,ns,72788
256bit,blake2b_simd,1024,1024,bytes,61690593.0,ns,73962
256bit,blake2b_simd,1024,1024,bytes,63793667.0,ns,75136
256bit,blake2b_simd,1024,1024,bytes,64562772.0,ns,76310
256bit,blake2b_simd,1024,1024,bytes,65708059.0,ns,77484
256bit,blake2b_simd,1024,1024,bytes,65344936.0,ns,78658
256bit,blake2b_simd,1024,1024,bytes,66608285.0,ns,79832
256bit,blake2b_simd,1024,1024,bytes,67619053.0,ns,81006
256bit,blake2b_simd,1024,1024,bytes,68746797.0,ns,82180
256bit,blake2b_simd,1024,1024,bytes,70021641.0,ns,83354
256bit,blake2b_simd,1024,1024,bytes,72117292.0,ns,84528
256bit,blake2b_simd,1024,1024,bytes,72720167.0,ns,85702
256bit,blake2b_simd,1024,1024,bytes,73846589.0,ns,86876
256bit,blake2b_simd,1024,1024,bytes,74492085.0,ns,88050
256bit,blake2b_simd,1024,1024,bytes,76048933.0,ns,89224
256bit,blake2b_simd,1024,1024,bytes,76885677.0,ns,90398
256bit,blake2b_simd,1024,1024,bytes,77422236.0,ns,91572
256bit,blake2b_simd,1024,1024,bytes,78445258.0,ns,92746
256bit,blake2b_simd,1024,1024,bytes,79253439.0,ns,93920
256bit,blake2b_simd,1024,1024,bytes,80291270.0,ns,95094
256bit,blake2b_simd,1024,1024,bytes,81182128.0,ns,96268
256bit,blake2b_simd,1024,1024,bytes,82905954.0,ns,97442
256bit,blake2b_simd,1024,1024,bytes,82468550.0,ns,98616
256bit,blake2b_simd,1024,1024,bytes,83149290.0,ns,99790
256bit,blake2b_simd,1024,1024,bytes,84188003.0,ns,100964
256bit,blake2b_simd,1024,1024,bytes,85221846.0,ns,102138
256bit,blake2b_simd,1024,1024,bytes,86495554.0,ns,103312
256bit,blake2b_simd,1024,1024,bytes,87613463.0,ns,104486
256bit,blake2b_simd,1024,1024,bytes,89176431.0,ns,105660
256bit,blake2b_simd,1024,1024,bytes,90373797.0,ns,106834
256bit,blake2b_simd,1024,1024,bytes,91300534.0,ns,108008
256bit,blake2b_simd,1024,1024,bytes,91945593.0,ns,109182
256bit,blake2b_simd,1024,1024,bytes,93343953.0,ns,110356
256bit,blake2b_simd,1024,1024,bytes,94907192.0,ns,111530
256bit,blake2b_simd,1024,1024,bytes,94946799.0,ns,112704
256bit,blake2b_simd,1024,1024,bytes,96396047.0,ns,113878
256bit,blake2b_simd,1024,1024,bytes,97047157.0,ns,115052
256bit,blake2b_simd,1024,1024,bytes,99121454.0,ns,116226
256bit,blake2b_simd,1024,1024,bytes,98906794.0,ns,117400
256bit,blake2b_simd,65536,65536,bytes,1019085.0,ns,22
256bit,blake2b_simd,65536,65536,bytes,2048669.0,ns,44
256bit,blake2b_simd,65536,65536,bytes,3078784.0,ns,66
256bit,blake2b_simd,65536,65536,bytes,4104992.0,ns,88
256bit,blake2b_simd,65536,65536,bytes,5216373.0,ns,110
256bit,blake2b_simd,65536,65536,bytes,6283932.0,ns,132
256bit,blake2b_simd,65536,65536,bytes,7259191.0,ns,154
256bit,blake2b_simd,65536,65536,bytes,8381434.0,ns,176
256bit,blake2b_simd,65536,65536,bytes,9451827.0,ns,198
256bit,blake2b_simd,65536,65536,bytes,10513302.0,ns,220
256bit,blake2b_simd,65536,65536,bytes,11437424.0,ns,242
256bit,blake2b_simd,65536,65536,bytes,12394620.0,ns,264
256bit,blake2b_simd,65536,65536,bytes,13472357.0,ns,286
256bit,blake2b_simd,65536,65536,bytes,14604417.0,ns,308
256bit,blake2b_simd,65536,65536,bytes,15651973.0,ns,330
256bit,blake2b_simd,65536,65536,bytes,15896796.0,ns,352
256bit,blake2b_simd,65536,65536,bytes,16945889.0,ns,374
256bit,blake2b_simd,65536,65536,bytes,18183843.0,ns,396
256bit,blake2b_simd,65536,65536,bytes,19416376.0,ns,418
256bit,blake2b_simd,65536,65536,bytes,20254804.0,ns,440
256bit,blake2b_simd,65536,65536,bytes,21317572.0,ns,462
256bit,blake2b_simd,65536,65536,bytes,22347207.0,ns,484
256bit,blake2b_simd,65536,65536,bytes,23379725.0,ns,506
256bit,blake2b_simd,65536,65536,bytes,24266457.0,ns,528
256bit,blake2b_simd,65536,65536,bytes,25423276.0,ns,550
256bit,blake2b_simd,65536,65536,bytes,26461756.0,ns,572
256bit,blake2b_simd,65536,65536,bytes,27427017.0,ns,594
256bit,blake2b_simd,65536,65536,bytes,28324420.0,ns,616
256bit,blake2b_simd,65536,65536,bytes,29395234.0,ns,638
256bit,blake2b_simd,65536,65536,bytes,30513255.0,ns,660
256bit,blake2b_simd,65536,65536,bytes,31520479.0,ns,682
256bit,blake2b_simd,65536,65536,bytes,32430614.0,ns,704
256bit,blake2b_simd,65536,65536,bytes,33427125.0,ns,726
256bit,blake2b_simd,65536,65536,bytes,34478841.0,ns,748
256bit,blake2b_simd,65536,65536,bytes,35612716.0,ns,770
256bit,blake2b_simd,65536,65536,bytes,36693198.0,ns,792
256bit,blake2b_simd,65536,65536,bytes,37759173.0,ns,814
256bit,blake2b_simd,65536,65536,bytes,38465747.0,ns,836
256bit,blake2b_simd,65536,65536,bytes,39923904.0,ns,858
256bit,blake2b_simd,65536,65536,bytes,40233427.0,ns,880
256bit,blake2b_simd,65536,65536,bytes,41607803.0,ns,902
256bit,blake2b_simd,65536,65536,bytes,42580018.0,ns,924
256bit,blake2b_simd,65536,65536,bytes,43566339.0,ns,946
256bit,blake2b_simd,65536,65536,bytes,44637913.0,ns,968
256bit,blake2b_simd,65536,65536,bytes,45568700.0,ns,990
256bit,blake2b_simd,65536,65536,bytes,46722411.0,ns,1012
256bit,blake2b_simd,65536,65536,bytes,47710255.0,ns,1034
256bit,blake2b_simd,65536,65536,bytes,48590466.0,ns,1056
256bit,blake2b_simd,65536,65536,bytes,49661228.0,ns,1078
256bit,blake2b_simd,65536,65536,bytes,50766417.0,ns,1100
256bit,blake2b_simd,65536,65536,bytes,51709235.0,ns,1122
256bit,blake2b_simd,65536,65536,bytes,52761212.0,ns,1144
256bit,blake2b_simd,65536,65536,bytes,53747394.0,ns,1166
256bit,blake2b_simd,65536,65536,bytes,54723065.0,ns,1188
256bit,blake2b_simd,65536,65536,bytes,55815489.0,ns,1210
256bit,blake2b_simd,65536,65536,bytes,56951961.0,ns,1232
256bit,blake2b_simd,65536,65536,bytes,57963609.0,ns,1254
256bit,blake2b_simd,65536,65536,bytes,58765587.0,ns,1276
256bit,blake2b_simd,65536,65536,bytes,59997480.0,ns,1298
256bit,blake2b_simd,65536,65536,bytes,60892035.0,ns,1320
256bit,blake2b_simd,65536,65536,bytes,61720624.0,ns,1342
256bit,blake2b_simd,65536,65536,bytes,62988877.0,ns,1364
256bit,blake2b_simd,65536,65536,bytes,64072445.0,ns,1386
256bit,blake2b_simd,65536,65536,bytes,65329545.0,ns,1408
256bit,blake2b_simd,65536,65536,bytes,65955597.0,ns,1430
256bit,blake2b_simd,65536,65536,bytes,66807459.0,ns,1452
256bit,blake2b_simd,65536,65536,bytes,67972744.0,ns,1474
256bit,blake2b_simd,65536,65536,bytes,68962041.0,ns,1496
256bit,blake2b_simd,65536,65536,bytes,69922114.0,ns,1518
256bit,blake2b_simd,65536,65536,bytes,71068631.0,ns,1540
256bit,blake2b_simd,65536,65536,bytes,72290716.0,ns,1562
256bit,blake2b_simd,65536,65536,bytes,73429395.0,ns,1584
256bit,blake2b_simd,65536,65536,bytes,75923071.0,ns,1606
256bit,blake2b_simd,65536,65536,bytes,74978419.0,ns,1628
256bit,blake2b_simd,65536,65536,bytes,76021955.0,ns,1650
256bit,blake2b_simd,65536,65536,bytes,76932517.0,ns,1672
256bit,blake2b_simd,65536,65536,bytes,78020093.0,ns,1694
256bit,blake2b_simd,65536,65536,bytes,78999681.0,ns,1716
256bit,blake2b_simd,65536,65536,bytes,79926057.0,ns,1738
256bit,blake2b_simd,65536,65536,bytes,81073719.0,ns,1760
256bit,blake2b_simd,65536,65536,bytes,82368823.0,ns,1782
256bit,blake2b_simd,65536,65536,bytes,83056570.0,ns,1804
256bit,blake2b_simd,65536,65536,bytes,84173955.0,ns,1826
256bit,blake2b_simd,65536,65536,bytes,85067818.0,ns,1848
256bit,blake2b_simd,65536,65536,bytes,86234506.0,ns,1870
256bit,blake2b_simd,65536,65536,bytes,88053815.0,ns,1892
256bit,blake2b_simd,65536,65536,bytes,88889707.0,ns,1914
256bit,blake2b_simd,65536,65536,bytes,89806050.0,ns,1936
256bit,blake2b_simd,65536,65536,bytes,91230307.0,ns,1958
256bit,blake2b_simd,65536,65536,bytes,91892485.0,ns,1980
256bit,blake2b_simd,65536,65536,bytes,91949482.0,ns,2002
256bit,blake2b_simd,65536,65536,bytes,93346885.0,ns,2024
256bit,blake2b_simd,65536,65536,bytes,94354898.0,ns,2046
256bit,blake2b_simd,65536,65536,bytes,95172287.0,ns,2068
256bit,blake2b_simd,65536,65536,bytes,96587219.0,ns,2090
256bit,blake2b_simd,65536,65536,bytes,97233584.0,ns,2112
256bit,blake2b_simd,65536,65536,bytes,98232535.0,ns,2134
256bit,blake2b_simd,65536,65536,bytes,99733854.0,ns,2156
256bit,blake2b_simd,65536,65536,bytes,100251226.0,ns,2178
256bit,blake2b_simd,65536,65536,bytes,101447250.0,ns,2200
256bit,blake2b_simd,4096,4096,bytes,992143.0,ns,328
256bit,blake2b_simd,4096,4096,bytes,1962715.0,ns,656
256bit,blake2b_simd,4096,4096,bytes,2942534.0,ns,984
256bit,blake2b_simd,4096,4096,bytes,3951749.0,ns,1312
256bit,blake2b_simd,4096,4096,bytes,5077237.0,ns,1640
256bit,blake2b_simd,4096,4096,bytes,6082936.0,ns,1968
256bit,blake2b_simd,4096,4096,bytes,6917738.0,ns,2296
256bit,blake2b_simd,4096,4096,bytes,8068605.0,ns,2624
256bit,blake2b_simd,4096,4096,bytes,9099502.0,ns,2952
256bit,blake2b_simd,4096,4096,bytes,10003115.0,ns,3280
256bit,blake2b_simd,4096,4096,bytes,10920705.0,ns,3608
256bit,blake2b_simd,4096,4096,bytes,11817154.0,ns,3936
256bit,blake2b_simd,4096,4096,bytes,12859844.0,ns,4264
256bit,blake2b_simd,4096,4096,bytes,13864010.0,ns,4592
256bit,blake2b_simd,4096,4096,bytes,14857584.0,ns,4920
256bit,blake2b_simd,4096,4096,bytes,15801716.0,ns,5248
256bit,blake2b_simd,4096,4096,bytes,16787617.0,ns,5576
256bit,blake2b_simd,4096,4096,bytes,17749161.0,ns,5904
256bit,blake2b_simd,4096,4096,bytes,18693002.0,ns,6232
256bit,blake2b_simd,4096,4096,bytes,19657552.0,ns,6560
256bit,blake2b_simd,4096,4096,bytes,20735098.0,ns,6888
256bit,blake2b_simd,4096,4096,bytes,21625907.0,ns,7216
256bit,blake2b_simd,4096,4096,bytes,22604974.0,ns,7544
256bit,blake2b_simd,4096,4096,bytes,23740450.0,ns,7872
256bit,blake2b_simd,4096,4096,bytes,24081617.0,ns,8200
256bit,blake2b_simd,4096,4096,bytes,25921105.0,ns,8528
256bit,blake2b_simd,4096,4096,bytes,27002048.0,ns,8856
256bit,blake2b_simd,4096,4096,bytes,27776774.0,ns,9184
256bit,blake2b_simd,4096,4096,bytes,28735752.0,ns,9512
256bit,blake2b_simd,4096,4096,bytes,29733487.0,ns,9840
256bit,blake2b_simd,4096,4096,bytes,30823455.0,ns,10168
256bit,blake2b_simd,4096,4096,bytes,31836791.0,ns,10496
256bit,blake2b_simd,4096,4096,bytes,32826989.0,ns,10824
256bit,blake2b_simd,4096,4096,bytes,33764177.0,ns,11152
256bit,blake2b_simd,4096,4096,bytes,34886279.0,ns,11480
256bit,blake2b_simd,4096,4096,bytes,36092019.0,ns,11808
256bit,blake2b_simd,4096,4096,bytes,37029840.0,ns,12136
256bit,blake2b_simd,4096,4096,bytes,38081127.0,ns,12464
256bit,blake2b_simd,4096,4096,bytes,38786549.0,ns,12792
256bit,blake2b_simd,4096,4096,bytes,39688383.0,ns,13120
256bit,blake2b_simd,4096,4096,bytes,40633001.0,ns,13448
256bit,blake2b_simd,4096,4096,bytes,41701440.0,ns,13776
256bit,blake2b_simd,4096,4096,bytes,42914907.0,ns,14104
256bit,blake2b_simd,4096,4096,bytes,44567736.0,ns,14432
256bit,blake2b_simd,4096,4096,bytes,45702865.0,ns,14760
256bit,blake2b_simd,4096,4096,bytes,46200930.0,ns,15088
256bit,blake2b_simd,4096,4096,bytes,47145700.0,ns,15416
256bit,blake2b_simd,4096,4096,bytes,47897994.0,ns,15744
256bit,blake2b_simd,4096,4096,bytes,48643815.0,ns,16072
256bit,blake2b_simd,4096,4096,bytes,49545384.0,ns,16400
256bit,blake2b_simd,4096,4096,bytes,50529249.0,ns,16728
256bit,blake2b_simd,4096,4096,bytes,51633709.0,ns,17056
256bit,blake2b_simd,4096,4096,bytes,52619931.0,ns,17384
256bit,blake2b_simd,4096,4096,bytes,53846782.0,ns,17712
256bit,blake2b_simd,4096,4096,bytes,54469678.0,ns,18040
256bit,blake2b_simd,4096,4096,bytes,55780531.0,ns,18368
256bit,blake2b_simd,4096,4096,bytes,56447923.0,ns,18696
256bit,blake2b_simd,4096,4096,bytes,57452850.0,ns,19024
256bit,blake2b_simd,4096,4096,bytes,59176754.0,ns,19352
256bit,blake2b_simd,4096,4096,bytes,61632056.0,ns,19680
256bit,blake2b_simd,4096,4096,bytes,61721946.0,ns,20008
256bit,blake2b_simd,4096,4096,bytes,64765415.0,ns,20336
256bit,blake2b_simd,4096,4096,bytes,63071665.0,ns,20664
256bit,blake2b_simd,4096,4096,bytes,64588045.0,ns,20992
256bit,blake2b_simd,4096,4096,bytes,65659878.0,ns,21320
256bit,blake2b_simd,4096,4096,bytes,66011675.0,ns,21648
256bit,blake2b_simd,4096,4096,bytes,67054964.0,ns,21976
256bit,blake2b_simd,4096,4096,bytes,67497946.0,ns,22304
256bit,blake2b_simd,4096,4096,bytes,68600989.0,ns,22632
256bit,blake2b_simd,4096,4096,bytes,69322896.0,ns,22960
256bit,blake2b_simd,4096,4096,bytes,70614792.0,ns,23288
256bit,blake2b_simd,4096,4096,bytes,71531421.0,ns,23616
256bit,blake2b_simd,4096,4096,bytes,73060452.0,ns,23944
256bit,blake2b_simd,4096,4096,bytes,73503815.0,ns,24272
256bit,blake2b_simd,4096,4096,bytes,74338905.0,ns,24600
256bit,blake2b_simd,4096,4096,bytes,75489541.0,ns,24928
256bit,blake2b_simd,4096,4096,bytes,76621343.0,ns,25256
256bit,blake2b_simd,4096,4096,bytes,78247060.0,ns,25584
256bit,blake2b_simd,4096,4096,bytes,78741450.0,ns,25912
256bit,blake2b_simd,4096,4096,bytes,80186189.0,ns,26240
256bit,blake2b_simd,4096,4096,bytes,80286341.0,ns,26568
256bit,blake2b_simd,4096,4096,bytes,81609070.0,ns,26896
256bit,blake2b_simd,4096,4096,bytes,82144966.0,ns,27224
256bit,blake2b_simd,4096,4096,bytes,83160944.0,ns,27552
256bit,blake2b_simd,4096,4096,bytes,84621085.0,ns,27880
256bit,blake2b_simd,4096,4096,bytes,85768928.0,ns,28208
256bit,blake2b_simd,4096,4096,bytes,86186407.0,ns,28536
256bit,blake2b_simd,4096,4096,bytes,87283491.0,ns,28864
256bit,blake2b_simd,4096,4096,bytes,88040393.0,ns,29192
256bit,blake2b_simd,4096,4096,bytes,89240676.0,ns,29520
256bit,blake2b_simd,4096,4096,bytes,91446356.0,ns,29848
256bit,blake2b_simd,4096,4096,bytes,91892190.0,ns,30176
256bit,blake2b_simd,4096,4096,bytes,92587925.0,ns,30504
256bit,blake2b_simd,4096,4096,bytes,93865424.0,ns,30832
256bit,blake2b_simd,4096,4096,bytes,93995334.0,ns,31160
256bit,blake2b_simd,4096,4096,bytes,95960733.0,ns,31488
256bit,blake2b_simd,4096,4096,bytes,96674953.0,ns,31816
256bit,blake2b_simd,4096,4096,bytes,97508872.0,ns,32144
256bit,blake2b_simd,4096,4096,bytes,98588148.0,ns,32472
256bit,blake2b_simd,4096,4096,bytes,99429235.0,ns,32800
256bit,blake2b_simd,256,256,bytes,987003.0,ns,3289
256bit,blake2b_simd,256,256,bytes,1985328.0,ns,6578
256bit,blake2b_simd,256,256,bytes,2973715.0,ns,9867
256bit,blake2b_simd,256,256,bytes,3962270.0,ns,13156
256bit,blake2b_simd,256,256,bytes,5020831.0,ns,16445
256bit,blake2b_simd,256,256,bytes,6034614.0,ns,19734
256bit,blake2b_simd,256,256,bytes,7014055.0,ns,23023
256bit,blake2b_simd,256,256,bytes,8029321.0,ns,26312
256bit,blake2b_simd,256,256,bytes,9054547.0,ns,29601
256bit,blake2b_simd,256,256,bytes,10013988.0,ns,32890
256bit,blake2b_simd,256,256,bytes,10990350.0,ns,36179
256bit,blake2b_simd,256,256,bytes,12048491.0,ns,39468
256bit,blake2b_simd,256,256,bytes,13038930.0,ns,42757
256bit,blake2b_simd,256,256,bytes,13954096.0,ns,46046
256bit,blake2b_simd,256,256,bytes,14656674.0,ns,49335
256bit,blake2b_simd,256,256,bytes,15207740.0,ns,52624
256bit,blake2b_simd,256,256,bytes,16607786.0,ns,55913
256bit,blake2b_simd,256,256,bytes,17659292.0,ns,59202
256bit,blake2b_simd,256,256,bytes,18597603.0,ns,62491
256bit,blake2b_simd,256,256,bytes,19604444.0,ns,65780
256bit,blake2b_simd,256,256,bytes,20558394.0,ns,69069
256bit,blake2b_simd,256,256,bytes,21557680.0,ns,72358
256bit,blake2b_simd,256,256,bytes,22603426.0,ns,75647
256bit,blake2b_simd,256,256,bytes,23490378.0,ns,78936
256bit,blake2b_simd,256,256,bytes,24547744.0,ns,82225
256bit,blake2b_simd,256,256,bytes,25461047.0,ns,85514
256bit,blake2b_simd,256,256,bytes,26514689.0,ns,88803
256bit,blake2b_simd,256,256,bytes,27430325.0,ns,92092
256bit,blake2b_simd,256,256,bytes,28565472.0,ns,95381
256bit,blake2b_simd,256,256,bytes,29738051.0,ns,98670
256bit,blake2b_simd,256,256,bytes,30824685.0,ns,101959
256bit,blake2b_simd,256,256,bytes,31595184.0,ns,105248
256bit,blake2b_simd,256,256,bytes,32438380.0,ns,108537
256bit,blake2b_simd,256,256,bytes,33327325.0,ns,111826
256bit,blake2b_simd,256,256,bytes,34290804.0,ns,115115
256bit,blake2b_simd,256,256,bytes,35599353.0,ns,118404
256bit,blake2b_simd,256,256,bytes,36597408.0,ns,121693
256bit,blake2b_simd,256,256,bytes,37619277.0,ns,124982
256bit,blake2b_simd,256,256,bytes,38508603.0,ns,128271
256bit,blake2b_simd,256,256,bytes,39290043.0,ns,131560
256bit,blake2b_simd,256,256,bytes,40347431.0,ns,134849
256bit,blake2b_simd,256,256,bytes,41490834.0,ns,138138
256bit,blake2b_simd,256,256,bytes,42447950.0,ns,141427
256bit,blake2b_simd,256,256,bytes,43193961.0,ns,144716
256bit,blake2b_simd,256,256,bytes,44494045.0,ns,148005
256bit,blake2b_simd,256,256,bytes,45202233.0,ns,151294
256bit,blake2b_simd,256,256,bytes,46146364.0,ns,154583
256bit,blake2b_simd,256,256,bytes,47321412.0,ns,157872
256bit,blake2b_simd,256,256,bytes,48335925.0,ns,161161
256bit,blake2b_simd,256,256,bytes,49041026.0,ns,164450
256bit,blake2b_simd,256,256,bytes,50108695.0,ns,167739
256bit,blake2b_simd,256,256,bytes,51019951.0,ns,171028
256bit,blake2b_simd,256,256,bytes,52060679.0,ns,174317
256bit,blake2b_simd,256,256,bytes,52669346.0,ns,177606
256bit,blake2b_simd,256,256,bytes,54392662.0,ns,180895
256bit,blake2b_simd,256,256,bytes,55545512.0,ns,184184
256bit,blake2b_simd,256,256,bytes,56498440.0,ns,187473
256bit,blake2b_simd,256,256,bytes,57581377.0,ns,190762
256bit,blake2b_simd,256,256,bytes,58527272.0,ns,194051
256bit,blake2b_simd,256,256,bytes,59594258.0,ns,197340
256bit,blake2b_simd,256,256,bytes,60522880.0,ns,200629
256bit,blake2b_simd,256,256,bytes,61699827.0,ns,203918
256bit,blake2b_simd,256,256,bytes,62529849.0,ns,207207
256bit,blake2b_simd,256,256,bytes,63601494.0,ns,210496
256bit,blake2b_simd,256,256,bytes,64219791.0,ns,213785
256bit,blake2b_simd,256,256,bytes,65453978.0,ns,217074
256bit,blake2b_simd,256,256,bytes,66166395.0,ns,220363
256bit,blake2b_simd,256,256,bytes,67338312.0,ns,223652
256bit,blake2b_simd,256,256,bytes,68320637.0,ns,226941
256bit,blake2b_simd,256,256,bytes,69200563.0,ns,230230
256bit,blake2b_simd,256,256,bytes,70387261.0,ns,233519
256bit,blake2b_simd,256,256,bytes,71992991.0,ns,236808
256bit,blake2b_simd,256,256,bytes,72666682.0,ns,240097
256bit,blake2b_simd,256,256,bytes,74169336.0,ns,243386
256bit,blake2b_simd,256,256,bytes,74355862.0,ns,246675
256bit,blake2b_simd,256,256,bytes,75391119.0,ns,249964
256bit,blake2b_simd,256,256,bytes,76366779.0,ns,253253
256bit,blake2b_simd,256,256,bytes,75906707.0,ns,256542
256bit,blake2b_simd,256,256,bytes,77437714.0,ns,259831
256bit,blake2b_simd,256,256,bytes,78379220.0,ns,263120
256bit,blake2b_simd,256,256,bytes,79388356.0,ns,266409
256bit,blake2b_simd,256,256,bytes,80535365.0,ns,269698
256bit,blake2b_simd,256,256,bytes,81470970.0,ns,272987
256bit,blake2b_simd,256,256,bytes,82605566.0,ns,276276
256bit,blake2b_simd,256,256,bytes,84120022.0,ns,279565
256bit,blake2b_simd,256,256,bytes,85166308.0,ns,282854
256bit,blake2b_simd,256,256,bytes,86365539.0,ns,286143
256bit,blake2b_simd,256,256,bytes,86701183.0,ns,289432
256bit,blake2b_simd,256,256,bytes,87480096.0,ns,292721
256bit,blake2b_simd,256,256,bytes,88691741.0,ns,296010
256bit,blake2b_simd,256,256,bytes,89550918.0,ns,299299
256bit,blake2b_simd,256,256,bytes,90127364.0,ns,302588
256bit,blake2b_simd,256,256,bytes,91249055.0,ns,305877
256bit,blake2b_simd,256,256,bytes,92524092.0,ns,309166
256bit,blake2b_simd,256,256,bytes,94315546.0,ns,312455
256bit,blake2b_simd,256,256,bytes,94659228.0,ns,315744
256bit,blake2b_simd,256,256,bytes,95271591.0,ns,319033
256bit,blake2b_simd,256,256,bytes,96447085.0,ns,322322
256bit,blake2b_simd,256,256,bytes,97286967.0,ns,325611
256bit,blake2b_simd,256,256,bytes,98261837.0,ns,328900
256bit,portable,4,4,bytes,989508.0,ns,4686
256bit,portable,4,4,bytes,1961553.0,ns,9372
256bit,portable,4,4,bytes,3015374.0,ns,14058
256bit,portable,4,4,bytes,3964657.0,ns,18744
256bit,portable,4,4,bytes,4991827.0,ns,23430
256bit,portable,4,4,bytes,5961709.0,ns,28116
256bit,portable,4,4,bytes,6942890.0,ns,32802
256bit,portable,4,4,bytes,7941717.0,ns,37488
256bit,portable,4,4,bytes,8952868.0,ns,42174
256bit,portable,4,4,bytes,10011398.0,ns,46860
256bit,portable,4,4,bytes,11054108.0,ns,51546
256bit,portable,4,4,bytes,11915592.0,ns,56232
256bit,portable,4,4,bytes,12881885.0,ns,60918
256bit,portable,4,4,bytes,13811751.0,ns,65604
256bit,portable,4,4,bytes,14845512.0,ns,70290
256bit,portable,4,4,bytes,15933872.0,ns,74976
256bit,portable,4,4,bytes,16778691.0,ns,79662
256bit,portable,4,4,bytes,17758061.0,ns,84348
256bit,portable,4,4,bytes,18793438.0,ns,89034
256bit,portable,4,4,bytes,19851858.0,ns,93720
256bit,portable,4,4,bytes,20945747.0,ns,98406
256bit,portable,4,4,bytes,21921405.0,ns,103092
256bit,portable,4,4,bytes,22824581.0,ns,107778
256bit,portable,4,4,bytes,23624567.0,ns,112464
256bit,portable,4,4,bytes,24645806.0,ns,117150
256bit,portable,4,4,bytes,25715728.0,ns,121836
256bit,portable,4,4,bytes,26660393.0,ns,126522
256bit,portable,4,4,bytes,27810538.0,ns,131208
256bit,portable,4,4,bytes,28729992.0,ns,135894
256bit,portable,4,4,bytes,29714121.0,ns,140580
256bit,portable,4,4,bytes,30672059.0,ns,145266
256bit,portable,4,4,bytes,31596040.0,ns,149952
256bit,portable,4,4,bytes,32652609.0,ns,154638
256bit,portable,4,4,bytes,33583655.0,ns,159324
256bit,portable,4,4,bytes,34536142.0,ns,164010
256bit,portable,4,4,bytes,35650659.0,ns,168696
256bit,portable,4,4,bytes,36829964.0,ns,173382
256bit,portable,4,4,bytes,37816636.0,ns,178068
256bit,portable,4,4,bytes,38813939.0,ns,182754
256bit,portable,4,4,bytes,39456062.0,ns,187440
256bit,portable,4,4,bytes,40458384.0,ns,192126
256bit,portable,4,4,bytes,41437081.0,ns,196812
256bit,portable,4,4,bytes,42420118.0,ns,201498
256bit,portable,4,4,bytes,43382726.0,ns,206184
256bit,portable,4,4,bytes,44595442.0,ns,210870
256bit,portable,4,4,bytes,45532760.0,ns,215556
256bit,portable,4,4,bytes,46512179.0,ns,220242
256bit,portable,4,4,bytes,47492420.0,ns,224928
256bit,portable,4,4,bytes,48606718.0,ns,229614
256bit,portable,4,4,bytes,49645632.0,ns,234300
256bit,portable,4,4,bytes,50402625.0,ns,238986
256bit,portable,4,4,bytes,51629417.0,ns,243672
256bit,portable,4,4,bytes,52652460.0,ns,248358
256bit,portable,4,4,bytes,53568509.0,ns,253044
256bit,portable,4,4,bytes,54308237.0,ns,257730
256bit,portable,4,4,bytes,55326150.0,ns,262416
256bit,portable,4,4,bytes,56347289.0,ns,267102
256bit,portable,4,4,bytes,57239591.0,ns,271788
256bit,portable,4,4,bytes,58240812.0,ns,276474
256bit,portable,4,4,bytes,59104499.0,ns,281160
256bit,portable,4,4,bytes,60161397.0,ns,285846
256bit,portable,4,4,bytes,61155695.0,ns,290532
256bit,portable,4,4,bytes,62192104.0,ns,295218
256bit,portable,4,4,bytes,63121186.0,ns,299904
256bit,portable,4,4,bytes,64629058.0,ns,304590
256bit,portable,4,4,bytes,65092910.0,ns,309276
256bit,portable,4,4,bytes,66263665.0,ns,313962
256bit,portable,4,4,bytes,67159694.0,ns,318648
256bit,portable,4,4,bytes,67164083.0,ns,323334
256bit,portable,4,4,bytes,68649072.0,ns,328020
256bit,portable,4,4,bytes,69501406.0,ns,332706
256bit,portable,4,4,bytes,70564351.0,ns,337392
256bit,portable,4,4,bytes,71275912.0,ns,342078
256bit,portable,4,4,bytes,72996221.0,ns,346764
256bit,portable,4,4,bytes,74063320.0,ns,351450
256bit,portable,4,4,bytes,75232568.0,ns,356136
256bit,portable,4,4,bytes,76056695.0,ns,360822
256bit,portable,4,4,bytes,77055360.0,ns,365508
256bit,portable,4,4,bytes,78569284.0,ns,370194
256bit,portable,4,4,bytes,77292956.0,ns,374880
256bit,portable,4,4,bytes,79037804.0,ns,379566
256bit,portable,4,4,bytes,80827788.0,ns,384252
256bit,portable,4,4,bytes,81712185.0,ns,388938
256bit,portable,4,4,bytes,82402960.0,ns,393624
256bit,portable,4,4,bytes,85107640.0,ns,398310
256bit,portable,4,4,bytes,84335528.0,ns,402996
256bit,portable,4,4,bytes,86861844.0,ns,407682
256bit,portable,4,4,bytes,87653574.0,ns,412368
256bit,portable,4,4,bytes,88612964.0,ns,417054
256bit,portable,4,4,bytes,89133504.0,ns,421740
256bit,portable,4,4,bytes,90690210.0,ns,426426
256bit,portable,4,4,bytes,91161654.0,ns,431112
256bit,portable,4,4,bytes,91829457.0,ns,435798
256bit,portable,4,4,bytes,93053474.0,ns,440484
256bit,portable,4,4,bytes,93566418.0,ns,445170
256bit,portable,4,4,bytes,94091486.0,ns,449856
256bit,portable,4,4,bytes,94750049.0,ns,454542
256bit,portable,4,4,bytes,95562838.0,ns,459228
256bit,portable,4,4,bytes,97771967.0,ns,463914
256bit,portable,4,4,bytes,98877017.0,ns,468600
256bit,portable,16384,16384,bytes,980079.0,ns,113
256bit,portable,16384,16384,bytes,1965620.0,ns,226
256bit,portable,16384,16384,bytes,2949758.0,ns,339
256bit,portable,16384,16384,bytes,3977248.0,ns,452
256bit,portable,16384,16384,bytes,4959472.0,ns,565
256bit,portable,16384,16384,bytes,5972004.0,ns,678
256bit,portable,16384,16384,bytes,7029240.0,ns,791
256bit,portable,16384,16384,bytes,7990164.0,ns,904
256bit,portable,16384,16384,bytes,9035780.0,ns,1017
256bit,portable,16384,16384,bytes,10027232.0,ns,1130
256bit,portable,16384,16384,bytes,10963244.0,ns,1243
256bit,portable,16384,16384,bytes,11922797.0,ns,1356
256bit,portable,16384,16384,bytes,12917753.0,ns,1469
256bit,portable,16384,16384,bytes,13797102.0,ns,1582
256bit,portable,16384,16384,bytes,14719691.0,ns,1695
256bit,portable,16384,16384,bytes,15730358.0,ns,1808
256bit,portable,16384,16384,bytes,16746997.0,ns,1921
256bit,portable,16384,16384,bytes,17740495.0,ns,2034
256bit,portable,16384,16384,bytes,18738096.0,ns,2147
256bit,portable,16384,16384,bytes,19665147.0,ns,2260
256bit,portable,16384,16384,bytes,20642810.0,ns,2373
256bit,portable,16384,16384,bytes,21654089.0,ns,2486
256bit,portable,16384,16384,bytes,22869150.0,ns,2599
256bit,portable,16384,16384,bytes,24025277.0,ns,2712
256bit,portable,16384,16384,bytes,24643673.0,ns,2825
256bit,portable,16384,16384,bytes,25754514.0,ns,2938
256bit,portable,16384,16384,bytes,26762947.0,ns,3051
256bit,portable,16384,16384,bytes,27711256.0,ns,3164
256bit,portable,16384,16384,bytes,28553191.0,ns,3277
256bit,portable,16384,16384,bytes,29485739.0,ns,3390
256bit,portable,16384,16384,bytes,30548388.0,ns,3503
256bit,portable,16384,16384,bytes,31462160.0,ns,3616
256bit,portable,16384,16384,bytes,32138768.0,ns,3729
256bit,portable,16384,16384,bytes,33539705.0,ns,3842
256bit,portable,16384,16384,bytes,34719798.0,ns,3955
256bit,portable,16384,16384,bytes,36139000.0,ns,4068
256bit,portable,16384,16384,bytes,37202639.0,ns,4181
256bit,portable,16384,16384,bytes,37819582.0,ns,4294
256bit,portable,16384,16384,bytes,38722736.0,ns,4407
256bit,portable,16384,16384,bytes,39800933.0,ns,4520
256bit,portable,16384,16384,bytes,40729192.0,ns,4633
256bit,portable,16384,16384,bytes,41620673.0,ns,4746
256bit,portable,16384,16384,bytes,42712347.0,ns,4859
256bit,portable,16384,16384,bytes,43663379.0,ns,4972
256bit,portable,16384,16384,bytes,44617992.0,ns,5085
256bit,portable,16384,16384,bytes,45672312.0,ns,5198
256bit,portable,16384,16384,bytes,46594333.0,ns,5311
256bit,portable,16384,16384,bytes,47776818.0,ns,5424
256bit,portable,16384,16384,bytes,48700601.0,ns,5537
256bit,portable,16384,16384,bytes,49504504.0,ns,5650
256bit,portable,16384,16384,bytes,50560056.0,ns,5763
256bit,portable,16384,16384,bytes,51686107.0,ns,5876
256bit,portable,16384,16384,bytes,53048591.0,ns,5989
256bit,portable,16384,16384,bytes,54057414.0,ns,6102
256bit,portable,16384,16384,bytes,54700642.0,ns,6215
256bit,portable,16384,16384,bytes,55803574.0,ns,6328
256bit,portable,16384,16384,bytes,56473067.0,ns,6441
256bit,portable,16384,16384,bytes,57556916.0,ns,6554
256bit,portable,16384,16384,bytes,58591760.0,ns,6667
256bit,portable,16384,16384,bytes,59599964.0,ns,6780
256bit,portable,16384,16384,bytes,60782903.0,ns,6893
256bit,portable,16384,16384,bytes,61607445.0,ns,7006
256bit,portable,16384,16384,bytes,62488504.0,ns,7119
256bit,portable,16384,16384,bytes,63734534.0,ns,7232
256bit,portable,16384,16384,bytes,64471807.0,ns,7345
256bit,portable,16384,16384,bytes,65540938.0,ns,7458
256bit,portable,16384,16384,bytes,66530106.0,ns,7571
256bit,portable,16384,16384,bytes,67699438.0,ns,7684
256bit,portable,16384,16384,bytes,67036531.0,ns,7797
256bit,portable,16384,16384,bytes,68536443.0,ns,7910
256bit,portable,16384,16384,bytes,69750993.0,ns,8023
256bit,portable,16384,16384,bytes,70617930.0,ns,8136
256bit,portable,16384,16384,bytes,71782359.0,ns,8249
256bit,portable,16384,16384,bytes,72952081.0,ns,8362
256bit,portable,16384,16384,bytes,74413876.0,ns,8475
256bit,portable,16384,16384,bytes,74785317.0,ns,8588
256bit,portable,16384,16384,bytes,75756570.0,ns,8701
256bit,portable,16384,16384,bytes,76675184.0,ns,8814
256bit,portable,16384,16384,bytes,78088422.0,ns,8927
256bit,portable,16384,16384,bytes,78636493.0,ns,9040
256bit,portable,16384,16384,bytes,79787110.0,ns,9153
256bit,portable,16384,16384,bytes,81200101.0,ns,9266
256bit,portable,16384,16384,bytes,81604988.0,ns,9379
256bit,portable,16384,16384,bytes,82559307.0,ns,9492
256bit,portable,16384,16384,bytes,83862536.0,ns,9605
256bit,portable,16384,16384,bytes,84546779.0,ns,9718
256bit,portable,16384,16384,bytes,86074689.0,ns,9831
256bit,portable,16384,16384,bytes,87068694.0,ns,9944
256bit,portable,16384,16384,bytes,88036431.0,ns,10057
256bit,portable,16384,16384,bytes,88592519.0,ns,10170
256bit,portable,16384,16384,bytes,89492714.0,ns,10283
256bit,portable,16384,16384,bytes,89998444.0,ns,10396
256bit,portable,16384,16384,bytes,92223120.0,ns,10509
256bit,portable,16384,16384,bytes,93351015.0,ns,10622
256bit,portable,16384,16384,bytes,94106995.0,ns,10735
256bit,portable,16384,16384,bytes,95101089.0,ns,10848
256bit,portable,16384,16384,bytes,97233637.0,ns,10961
256bit,portable,16384,16384,bytes,95398425.0,ns,11074
256bit,portable,16384,16384,bytes,97476226.0,ns,11187
256bit,portable,16384,16384,bytes,98507553.0,ns,11300
256bit,portable,1,1,bytes,995049.0,ns,4549
256bit,portable,1,1,bytes,1990670.0,ns,9098
256bit,portable,1,1,bytes,2990298.0,ns,13647
256bit,portable,1,1,bytes,3979886.0,ns,18196
256bit,portable,1,1,bytes,4950038.0,ns,22745
256bit,portable,1,1,bytes,6013509.0,ns,27294
256bit,portable,1,1,bytes,6893468.0,ns,31843
256bit,portable,1,1,bytes,7905850.0,ns,36392
256bit,portable,1,1,bytes,8884437.0,ns,40941
256bit,portable,1,1,bytes,9908562.0,ns,45490
256bit,portable,1,1,bytes,10907830.0,ns,50039
256bit,portable,1,1,bytes,11821373.0,ns,54588
256bit,portable,1,1,bytes,12830229.0,ns,59137
256bit,portable,1,1,bytes,13875825.0,ns,63686
256bit,portable,1,1,bytes,14962722.0,ns,68235
256bit,portable,1,1,bytes,15943673.0,ns,72784
256bit,portable,1,1,bytes,17163203.0,ns,77333
256bit,portable,1,1,bytes,18363957.0,ns,81882
256bit,portable,1,1,bytes,18911988.0,ns,86431
256bit,portable,1,1,bytes,19846682.0,ns,90980
256bit,portable,1,1,bytes,20836531.0,ns,95529
256bit,portable,1,1,bytes,21987580.0,ns,100078
256bit,portable,1,1,bytes,22842682.0,ns,104627
256bit,portable,1,1,bytes,23861595.0,ns,109176
256bit,portable,1,1,bytes,24889628.0,ns,113725
256bit,portable,1,1,bytes,25843328.0,ns,118274
256bit,portable,1,1,bytes,27014234.0,ns,122823
256bit,portable,1,1,bytes,27773163.0,ns,127372
256bit,portable,1,1,bytes,28494966.0,ns,131921
256bit,portable,1,1,bytes,29619714.0,ns,136470
256bit,portable,1,1,bytes,30388269.0,ns,141019
256bit,portable,1,1,bytes,31596256.0,ns,145568
256bit,portable,1,1,bytes,32402384.0,ns,150117
256bit,portable,1,1,bytes,33692190.0,ns,154666
256bit,portable,1,1,bytes,34560726.0,ns,159215
256bit,portable,1,1,bytes,35707004.0,ns,163764
256bit,portable,1,1,bytes,35747342.0,ns,168313
256bit,portable,1,1,bytes,37226711.0,ns,172862
256bit,portable,1,1,bytes,37632339.0,ns,177411
256bit,portable,1,1,bytes,39807414.0,ns,181960
256bit,portable,1,1,bytes,40397875.0,ns,186509
256bit,portable,1,1,bytes,41314324.0,ns,191058
256bit,portable,1,1,bytes,42269662.0,ns,195607
256bit,portable,1,1,bytes,43045105.0,ns,200156
256bit,portable,1,1,bytes,44248636.0,ns,204705
256bit,portable,1,1,bytes,45175753.0,ns,209254
256bit,portable,1,1,bytes,46289680.0,ns,213803
256bit,portable,1,1,bytes,47329325.0,ns,218352
256bit,portable,1,1,bytes,48240401.0,ns,222901
256bit,portable,1,1,bytes,49214203.0,ns,227450
256bit,portable,1,1,bytes,50379559.0,ns,231999
256bit,portable,1,1,bytes,51073259.0,ns,236548
256bit,portable,1,1,bytes,52087808.0,ns,241097
256bit,portable,1,1,bytes,53194830.0,ns,245646
256bit,portable,1,1,bytes,54011087.0,ns,250195
256bit,portable,1,1,bytes,55034270.0,ns,254744
256bit,portable,1,1,bytes,56242047.0,ns,259293
256bit,portable,1,1,bytes,57253420.0,ns,263842
256bit,portable,1,1,bytes,58343419.0,ns,268391
256bit,portable,1,1,bytes,59025347.0,ns,272940
256bit,portable,1,1,bytes,63843924.0,ns,277489
256bit,portable,1,1,bytes,61582254.0,ns,282038
256bit,portable,1,1,bytes,61971551.0,ns,286587
256bit,portable,1,1,bytes,63047448.0,ns,291136
256bit,portable,1,1,bytes,63806883.0,ns,295685
256bit,portable,1,1,bytes,64875884.0,ns,300234
256bit,portable,1,1,bytes,66069985.0,ns,304783
256bit,portable,1,1,bytes,67308641.0,ns,309332
256bit,portable,1,1,bytes,67762875.0,ns,313881
256bit,portable,1,1,bytes,68786637.0,ns,318430
256bit,portable,1,1,bytes,69751529.0,ns,322979
256bit,portable,1,1,bytes,71036174.0,ns,327528
256bit,portable,1,1,bytes,71803226.0,ns,332077
256bit,portable,1,1,bytes,73431891.0,ns,336626
256bit,portable,1,1,bytes,73944013.0,ns,341175
256bit,portable,1,1,bytes,74917031.0,ns,345724
256bit,portable,1,1,bytes,76525227.0,ns,350273
256bit,portable,1,1,bytes,76896722.0,ns,354822
256bit,portable,1,1,bytes,78057136.0,ns,359371
256bit,portable,1,1,bytes,78592223.0,ns,363920
256bit,portable,1,1,bytes,80315229.0,ns,368469
256bit,portable,1,1,bytes,81350305.0,ns,373018
256bit,portable,1,1,bytes,82104821.0,ns,377567
256bit,portable,1,1,bytes,82485062.0,ns,382116
256bit,portable,1,1,bytes,83602235.0,ns,386665
256bit,portable,1,1,bytes,84519696.0,ns,391214
256bit,portable,1,1,bytes,85792379.0,ns,395763
256bit,portable,1,1,bytes,86802357.0,ns,400312
256bit,portable,1,1,bytes,87292476.0,ns,404861
256bit,portable,1,1,bytes,88257669.0,ns,409410
256bit,portable,1,1,bytes,89136625.0,ns,413959
256bit,portable,1,1,bytes,90338209.0,ns,418508
256bit,portable,1,1,bytes,91303524.0,ns,423057
256bit,portable,1,1,bytes,93154275.0,ns,427606
256bit,portable,1,1,bytes,94385416.0,ns,432155
256bit,portable,1,1,bytes,94354577.0,ns,436704
256bit,portable,1,1,bytes,95508281.0,ns,441253
256bit,portable,1,1,bytes,96696950.0,ns,445802
256bit,portable,1,1,bytes,97481166.0,ns,450351
256bit,portable,1,1,bytes,98625423.0,ns,454900
256bit,portable,64,64,bytes,979750.0,ns,4615
256bit,portable,64,64,bytes,1968216.0,ns,9230
256bit,portable,64,64,bytes,2960880.0,ns,13845
256bit,portable,64,64,bytes,3954487.0,ns,18460
256bit,portable,64,64,bytes,4983298.0,ns,23075
256bit,portable,64,64,bytes,5966886.0,ns,27690
256bit,portable,64,64,bytes,6917820.0,ns,32305
256bit,portable,64,64,bytes,7938899.0,ns,36920
256bit,portable,64,64,bytes,8904943.0,ns,41535
256bit,portable,64,64,bytes,9925850.0,ns,46150
256bit,portable,64,64,bytes,10926070.0,ns,50765
256bit,portable,64,64,bytes,11921620.0,ns,55380
256bit,portable,64,64,bytes,12854208.0,ns,59995
256bit,portable,64,64,bytes,13755819.0,ns,64610
256bit,portable,64,64,bytes,14930542.0,ns,69225
256bit,portable,64,64,bytes,15890682.0,ns,73840
256bit,portable,64,64,bytes,16931230.0,ns,78455
256bit,portable,64,64,bytes,17842427.0,ns,83070
256bit,portable,64,64,bytes,18661369.0,ns,87685
256bit,portable,64,64,bytes,19759163.0,ns,92300
256bit,portable,64,64,bytes,20684399.0,ns,96915
256bit,portable,64,64,bytes,21747749.0,ns,101530
256bit,portable,64,64,bytes,22748588.0,ns,106145
256bit,portable,64,64,bytes,23656060.0,ns,110760
256bit,portable,64,64,bytes,24670575.0,ns,115375
256bit,portable,64,64,bytes,25675283.0,ns,119990
256bit,portable,64,64,bytes,26490597.0,ns,124605
256bit,portable,64,64,bytes,27719246.0,ns,129220
256bit,portable,64,64,bytes,28725284.0,ns,133835
256bit,portable,64,64,bytes,29691166.0,ns,138450
256bit,portable,64,64,bytes,30625799.0,ns,143065
256bit,portable,64,64,bytes,31624876.0,ns,147680
256bit,portable,64,64,bytes,32698556.0,ns,152295
256bit,portable,64,64,bytes,33490065.0,ns,156910
256bit,portable,64,64,bytes,34464063.0,ns,161525
256bit,portable,64,64,bytes,35372356.0,ns,166140
256bit,portable,64,64,bytes,36502473.0,ns,170755
256bit,portable,64,64,bytes,37636208.0,ns,175370
256bit,portable,64,64,bytes,38370387.0,ns,179985
256bit,portable,64,64,bytes,39507508.0,ns,184600
256bit,portable,64,64,bytes,40332891.0,ns,189215
256bit,portable,64,64,bytes,41230503.0,ns,193830
256bit,portable,64,64,bytes,42378867.0,ns,198445
256bit,portable,64,64,bytes,43169872.0,ns,203060
256bit,portable,64,64,bytes,44554830.0,ns,207675
256bit,portable,64,64,bytes,45318014.0,ns,212290
256bit,portable,64,64,bytes,46237186.0,ns,216905
256bit,portable,64,64,bytes,47083341.0,ns,221520
256bit,portable,64,64,bytes,48259878.0,ns,226135
256bit,portable,64,64,bytes,49332293.0,ns,230750
256bit,portable,64,64,bytes,49286898.0,ns,235365
256bit,portable,64,64,bytes,50379242.0,ns,239980
256bit,portable,64,64,bytes,51766575.0,ns,244595
256bit,portable,64,64,bytes,53102567.0,ns,249210
256bit,portable,64,64,bytes,54160898.0,ns,253825
256bit,portable,64,64,bytes,54966803.0,ns,258440
256bit,portable,64,64,bytes,55714658.0,ns,263055
256bit,portable,64,64,bytes,56532648.0,ns,267670
256bit,portable,64,64,bytes,57607579.0,ns,272285
256bit,portable,64,64,bytes,58352127.0,ns,276900
256bit,portable,64,64,bytes,59469150.0,ns,281515
256bit,portable,64,64,bytes,60991331.0,ns,286130
256bit,portable,64,64,bytes,62061062.0,ns,290745
256bit,portable,64,64,bytes,63334124.0,ns,295360
256bit,portable,64,64,bytes,63934415.0,ns,299975
256bit,portable,64,64,bytes,64861474.0,ns,304590
256bit,portable,64,64,bytes,65622674.0,ns,309205
256bit,portable,64,64,bytes,67394814.0,ns,313820
256bit,portable,64,64,bytes,68430511.0,ns,318435
256bit,portable,64,64,bytes,69596697.0,ns,323050
256bit,portable,64,64,bytes,75486466.0,ns,327665
256bit,portable,64,64,bytes,71365200.0,ns,332280
256bit,portable,64,64,bytes,72368225.0,ns,336895
256bit,portable,64,64,bytes,72049923.0,ns,341510
256bit,portable,64,64,bytes,73533299.0,ns,346125
256bit,portable,64,64,bytes,74837371.0,ns,350740
256bit,portable,64,64,bytes,76183223.0,ns,355355
256bit,portable,64,64,bytes,76929403.0,ns,359970
256bit,portable,64,64,bytes,77775067.0,ns,364585
256bit,portable,64,64,bytes,78791395.0,ns,369200
256bit,portable,64,64,bytes,79571964.0,ns,373815
256bit,portable,64,64,bytes,80856937.0,ns,378430
256bit,portable,64,64,bytes,82525348.0,ns,383045
256bit,portable,64,64,bytes,83202449.0,ns,387660
256bit,portable,64,64,bytes,83496621.0,ns,392275
256bit,portable,64,64,bytes,85067474.0,ns,396890
256bit,portable,64,64,bytes,85465128.0,ns,401505
256bit,portable,64,64,bytes,86659100.0,ns,406120
256bit,portable,64,64,bytes,87578371.0,ns,410735
256bit,portable,64,64,bytes,89028213.0,ns,415350
256bit,portable,64,64,bytes,89566135.0,ns,419965
256bit,portable,64,64,bytes,90351011.0,ns,424580
256bit,portable,64,64,bytes,91237211.0,ns,429195
256bit,portable,64,64,bytes,92903478.0,ns,433810
256bit,portable,64,64,bytes,93785408.0,ns,438425
256bit,portable,64,64,bytes,94391350.0,ns,443040
256bit,portable,64,64,bytes,96015167.0,ns,447655
256bit,portable,64,64,bytes,96105670.0,ns,452270
256bit,portable,64,64,bytes,97337613.0,ns,456885
256bit,portable,64,64,bytes,97196356.0,ns,461500
256bit,portable,16,16,bytes,999628.0,ns,4627
256bit,portable,16,16,bytes,2007662.0,ns,9254
256bit,portable,16,16,bytes,2988654.0,ns,13881
256bit,portable,16,16,bytes,3961399.0,ns,18508
256bit,portable,16,16,bytes,4992637.0,ns,23135
256bit,portable,16,16,bytes,6010362.0,ns,27762
256bit,portable,16,16,bytes,6945344.0,ns,32389
256bit,portable,16,16,bytes,8008012.0,ns,37016
256bit,portable,16,16,bytes,8933659.0,ns,41643
256bit,portable,16,16,bytes,9930181.0,ns,46270
256bit,portable,16,16,bytes,10981808.0,ns,50897
256bit,portable,16,16,bytes,11883739.0,ns,55524
256bit,portable,16,16,bytes,12943132.0,ns,60151
256bit,portable,16,16,bytes,13914233.0,ns,64778
256bit,portable,16,16,bytes,14850640.0,ns,69405
256bit,portable,16,16,bytes,15775014.0,ns,74032
256bit,portable,16,16,bytes,16852260.0,ns,78659
256bit,portable,16,16,bytes,17772736.0,ns,83286
256bit,portable,16,16,bytes,18882104.0,ns,87913
256bit,portable,16,16,bytes,19851656.0,ns,92540
256bit,portable,16,16,bytes,20762742.0,ns,97167
256bit,portable,16,16,bytes,21845620.0,ns,101794
256bit,portable,16,16,bytes,22695840.0,ns,106421
256bit,portable,16,16,bytes,23860687.0,ns,111048
256bit,portable,16,16,bytes,24756774.0,ns,115675
256bit,portable,16,16,bytes,25732898.0,ns,120302
256bit,portable,16,16,bytes,26716994.0,ns,124929
256bit,portable,16,16,bytes,27676347.0,ns,129556
256bit,portable,16,16,bytes,28592074.0,ns,134183
256bit,portable,16,16,bytes,29578454.0,ns,138810
256bit,portable,16,16,bytes,30577943.0,ns,143437
256bit,portable,16,16,bytes,31700386.0,ns,148064
256bit,portable,16,16,bytes,32678142.0,ns,152691
256bit,portable,16,16,bytes,33628874.0,ns,157318
256bit,portable,16,16,bytes,34581593.0,ns,161945
256bit,portable,16,16,bytes,35599937.0,ns,166572
256bit,portable,16,16,bytes,36763621.0,ns,171199
256bit,portable,16,16,bytes,37658466.0,ns,175826
256bit,portable,16,16,bytes,38668273.0,ns,180453
256bit,portable,16,16,bytes,39565835.0,ns,185080
256bit,portable,16,16,bytes,40716593.0,ns,189707
256bit,portable,16,16,bytes,41747451.0,ns,194334
256bit,portable,16,16,bytes,42945007.0,ns,198961
256bit,portable,16,16,bytes,44056622.0,ns,203588
256bit,portable,16,16,bytes,44713921.0,ns,208215
256bit,portable,16,16,bytes,45390851.0,ns,212842
256bit,portable,16,16,bytes,46529595.0,ns,217469
256bit,portable,16,16,bytes,47537428.0,ns,222096
256bit,portable,16,16,bytes,48406386.0,ns,226723
256bit,portable,16,16,bytes,49582302.0,ns,231350
256bit,portable,16,16,bytes,50414327.0,ns,235977
256bit,portable,16,16,bytes,51452659.0,ns,240604
256bit,portable,16,16,bytes,52408734.0,ns,245231
256bit,portable,16,16,bytes,53634655.0,ns,249858
256bit,portable,16,16,bytes,54397461.0,ns,254485
256bit,portable,16,16,bytes,55642908.0,ns,259112
256bit,portable,16,16,bytes,57040691.0,ns,263739
256bit,portable,16,16,bytes,57545308.0,ns,268366
256bit,portable,16,16,bytes,58397823.0,ns,272993
256bit,portable,16,16,bytes,59914152.0,ns,277620
256bit,portable,16,16,bytes,60965541.0,ns,282247
256bit,portable,16,16,bytes,62165441.0,ns,286874
256bit,portable,16,16,bytes,62824437.0,ns,291501
256bit,portable,16,16,bytes,63576248.0,ns,296128
256bit,portable,16,16,bytes,64857347.0,ns,300755
256bit,portable,16,16,bytes,65468117.0,ns,305382
256bit,portable,16,16,bytes,66310555.0,ns,310009
256bit,portable,16,16,bytes,67622421.0,ns,314636
256bit,portable,16,16,bytes,68802233.0,ns,319263
256bit,portable,16,16,bytes,69397746.0,ns,323890
256bit,portable,16,16,bytes,70165510.0,ns,328517
256bit,portable,16,16,bytes,71506733.0,ns,333144
256bit,portable,16,16,bytes,71905438.0,ns,337771
256bit,portable,16,16,bytes,73650274.0,ns,342398
256bit,portable,16,16,bytes,75122199.0,ns,347025
256bit,portable,16,16,bytes,75743470.0,ns,351652
256bit,portable,16,16,bytes,79317567.0,ns,356279
256bit,portable,16,16,bytes,77291931.0,ns,360906
256bit,portable,16,16,bytes,78102917.0,ns,365533
256bit,portable,16,16,bytes,79108898.0,ns,370160
256bit,portable,16,16,bytes,80020135.0,ns,374787
256bit,portable,16,16,bytes,81296393.0,ns,379414
256bit,portable,16,16,bytes,82575438.0,ns,384041
256bit,portable,16,16,bytes,82911611.0,ns,388668
256bit,portable,16,16,bytes,84136963.0,ns,393295
256bit,portable,16,16,bytes,84881692.0,ns,397922
256bit,portable,16,16,bytes,86551293.0,ns,402549
256bit,portable,16,16,bytes,87969666.0,ns,407176
256bit,portable,16,16,bytes,89000803.0,ns,411803
256bit,portable,16,16,bytes,89144118.0,ns,416430
256bit,portable,16,16,bytes,90016092.0,ns,421057
256bit,portable,16,16,bytes,90911309.0,ns,425684
256bit,portable,16,16,bytes,91855729.0,ns,430311
256bit,portable,16,16,bytes,94574827.0,ns,434938
256bit,portable,16,16,bytes,95213042.0,ns,439565
256bit,portable,16,16,bytes,95643387.0,ns,444192
256bit,portable,16,16,bytes,96222418.0,ns,448819
256bit,portable,16,16,bytes,97893244.0,ns,453446
256bit,portable,16,16,bytes,98415515.0,ns,458073
256bit,portable,16,16,bytes,99127000.0,ns,462700
256bit,portable,1024,1024,bytes,980881.0,ns,1384
256bit,portable,1024,1024,bytes,1973846.0,ns,2768
256bit,portable,1024,1024,bytes,2964858.0,ns,4152
256bit,portable,1024,1024,bytes,3946870.0,ns,5536
256bit,portable,1024,1024,bytes,4998928.0,ns,6920
256bit,portable,1024,1024,bytes,6004197.0,ns,8304
256bit,portable,1024,1024,bytes,6979968.0,ns,9688
256bit,portable,1024,1024,bytes,8147878.0,ns,11072
256bit,portable,1024,1024,bytes,8947141.0,ns,12456
256bit,portable,1024,1024,bytes,10006051.0,ns,13840
256bit,portable,1024,1024,bytes,10997003.0,ns,15224
256bit,portable,1024,1024,bytes,12051376.0,ns,16608
256bit,portable,1024,1024,bytes,13031766.0,ns,17992
256bit,portable,1024,1024,bytes,14038096.0,ns,19376
256bit,portable,1024,1024,bytes,14959503.0,ns,20760
256bit,portable,1024,1024,bytes,15911318.0,ns,22144
256bit,portable,1024,1024,bytes,16851151.0,ns,23528
256bit,portable,1024,1024,bytes,17826834.0,ns,24912
256bit,portable,1024,1024,bytes,18844033.0,ns,26296
256bit,portable,1024,1024,bytes,19763178.0,ns,27680
256bit,portable,1024,1024,bytes,20822148.0,ns,29064
256bit,portable,1024,1024,bytes,21775307.0,ns,30448
256bit,portable,1024,1024,bytes,22739135.0,ns,31832
256bit,portable,1024,1024,bytes,23693435.0,ns,33216
256bit,portable,1024,1024,bytes,24748669.0,ns,34600
256bit,portable,1024,1024,bytes,25711256.0,ns,35984
256bit,portable,1024,1024,bytes,26708559.0,ns,37368
256bit,portable,1024,1024,bytes,27696553.0,ns,38752
256bit,portable,1024,1024,bytes,28619303.0,ns,40136
256bit,portable,1024,1024,bytes,29800429.0,ns,41520
256bit,portable,1024,1024,bytes,30743228.0,ns,42904
256bit,portable,1024,1024,bytes,31663392.0,ns,44288
256bit,portable,1024,1024,bytes,32005168.0,ns,45672
256bit,portable,1024,1024,bytes,32918830.0,ns,47056
256bit,portable,1024,1024,bytes,34285231.0,ns,48440
256bit,portable,1024,1024,bytes,35334903.0,ns,49824
256bit,portable,1024,1024,bytes,36276491.0,ns,51208
256bit,portable,1024,1024,bytes,37278923.0,ns,52592
256bit,portable,1024,1024,bytes,38278630.0,ns,53976
256bit,portable,1024,1024,bytes,40325206.0,ns,55360
256bit,portable,1024,1024,bytes,40659458.0,ns,56744
256bit,portable,1024,1024,bytes,41621963.0,ns,58128
256bit,portable,1024,1024,bytes,42646729.0,ns,59512
256bit,portable,1024,1024,bytes,43573787.0,ns,60896
256bit,portable,1024,1024,bytes,44462140.0,ns,62280
256bit,portable,1024,1024,bytes,45534328.0,ns,63664
256bit,portable,1024,1024,bytes,46468610.0,ns,65048
256bit,portable,1024,1024,bytes,47505188.0,ns,66432
256bit,portable,1024,1024,bytes,48507971.0,ns,67816
256bit,portable,1024,1024,bytes,49423017.0,ns,69200
256bit,portable,1024,1024,bytes,50088639.0,ns,70584
256bit,portable,1024,1024,bytes,50079506.0,ns,71968
256bit,portable,1024,1024,bytes,51837817.0,ns,73352
256bit,portable,1024,1024,bytes,52941194.0,ns,74736
256bit,portable,1024,1024,bytes,53970148.0,ns,76120
256bit,portable,1024,1024,bytes,55407606.0,ns,77504
256bit,portable,1024,1024,bytes,55901802.0,ns,78888
256bit,portable,1024,1024,bytes,56974641.0,ns,80272
256bit,portable,1024,1024,bytes,58098726.0,ns,81656
256bit,portable,1024,1024,bytes,58885636.0,ns,83040
256bit,portable,1024,1024,bytes,59784895.0,ns,84424
256bit,portable,1024,1024,bytes,61235904.0,ns,85808
256bit,portable,1024,1024,bytes,63398622.0,ns,87192
256bit,portable,1024,1024,bytes,63907007.0,ns,88576
256bit,portable,1024,1024,bytes,63385012.0,ns,89960
256bit,portable,1024,1024,bytes,65215026.0,ns,91344
256bit,portable,1024,1024,bytes,65742177.0,ns,92728
256bit,portable,1024,1024,bytes,66606675.0,ns,94112
256bit,portable,1024,1024,bytes,67706595.0,ns,95496
256bit,portable,1024,1024,bytes,68690243.0,ns,96880
256bit,portable,1024,1024,bytes,69696471.0,ns,98264
256bit,portable,1024,1024,bytes,70629742.0,ns,99648
256bit,portable,1024,1024,bytes,71212565.0,ns,101032
256bit,portable,1024,1024,bytes,73275757.0,ns,102416
256bit,portable,1024,1024,bytes,74306002.0,ns,103800
256bit,portable,1024,1024,bytes,73958979.0,ns,105184
256bit,portable,1024,1024,bytes,75480656.0,ns,106568
256bit,portable,1024,1024,bytes,77320064.0,ns,107952
256bit,portable,1024,1024,bytes,78029825.0,ns,109336
256bit,portable,1024,1024,bytes,78089670.0,ns,110720
256bit,portable,1024,1024,bytes,80100758.0,ns,112104
256bit,portable,1024,1024,bytes,81051581.0,ns,113488
256bit,portable,1024,1024,bytes,82181228.0,ns,114872
256bit,portable,1024,1024,bytes,83195864.0,ns,116256
256bit,portable,1024,1024,bytes,84173119.0,ns,117640
256bit,portable,1024,1024,bytes,85150593.0,ns,119024
256bit,portable,1024,1024,bytes,86443745.0,ns,120408
256bit,portable,1024,1024,bytes,87074984.0,ns,121792
256bit,portable,1024,1024,bytes,88851267.0,ns,123176
256bit,portable,1024,1024,bytes,89762089.0,ns,124560
256bit,portable,1024,1024,bytes,90108443.0,ns,125944
256bit,portable,1024,1024,bytes,91098011.0,ns,127328
256bit,portable,1024,1024,bytes,91997596.0,ns,128712
256bit,portable,1024,1024,bytes,92859790.0,ns,130096
256bit,portable,1024,1024,bytes,93913380.0,ns,131480
256bit,portable,1024,1024,bytes,94914621.0,ns,132864
256bit,portable,1024,1024,bytes,95787265.0,ns,134248
256bit,portable,1024,1024,bytes,96834944.0,ns,135632
256bit,portable,1024,1024,bytes,97864208.0,ns,137016
256bit,portable,1024,1024,bytes,100235001.0,ns,138400
256bit,portable,65536,65536,bytes,1004066.0,ns,29
256bit,portable,65536,65536,bytes,1979166.0,ns,58
256bit,portable,65536,65536,bytes,2989773.0,ns,87
256bit,portable,65536,65536,bytes,3972428.0,ns,116
256bit,portable,65536,65536,bytes,4981505.0,ns,145
256bit,portable,65536,65536,bytes,6036616.0,ns,174
256bit,portable,65536,65536,bytes,7066153.0,ns,203
256bit,portable,65536,65536,bytes,8098641.0,ns,232
256bit,portable,65536,65536,bytes,9123648.0,ns,261
256bit,portable,65536,65536,bytes,10154113.0,ns,290
256bit,portable,65536,65536,bytes,11156445.0,ns,319
256bit,portable,65536,65536,bytes,12105095.0,ns,348
256bit,portable,65536,65536,bytes,12959885.0,ns,377
256bit,portable,65536,65536,bytes,14000681.0,ns,406
256bit,portable,65536,65536,bytes,14947096.0,ns,435
256bit,portable,65536,65536,bytes,15903718.0,ns,464
256bit,portable,65536,65536,bytes,16878870.0,ns,493
256bit,portable,65536,65536,bytes,17876975.0,ns,522
256bit,portable,65536,65536,bytes,18838147.0,ns,551
256bit,portable,65536,65536,bytes,19923240.0,ns,580
256bit,portable,65536,65536,bytes,20821982.0,ns,609
256bit,portable,65536,65536,bytes,21913274.0,ns,638
256bit,portable,65536,65536,bytes,22807121.0,ns,667
256bit,portable,65536,65536,bytes,23831223.0,ns,696
256bit,portable,65536,65536,bytes,24778990.0,ns,725
256bit,portable,65536,65536,bytes,25766405.0,ns,754
256bit,portable,65536,65536,bytes,26779517.0,ns,783
256bit,portable,65536,65536,bytes,27803532.0,ns,812
256bit,portable,65536,65536,bytes,28810020.0,ns,841
256bit,portable,65536,65536,bytes,30453003.0,ns,870
256bit,portable,65536,65536,bytes,30120289.0,ns,899
256bit,portable,65536,65536,bytes,31809954.0,ns,928
256bit,portable,65536,65536,bytes,33230669.0,ns,957
256bit,portable,65536,65536,bytes,33953445.0,ns,986
256bit,portable,65536,65536,bytes,35107779.0,ns,1015
256bit,portable,65536,65536,bytes,36239970.0,ns,1044
256bit,portable,65536,65536,bytes,36985169.0,ns,1073
256bit,portable,65536,65536,bytes,38122240.0,ns,1102
256bit,portable,65536,65536,bytes,39008349.0,ns,1131
256bit,portable,65536,65536,bytes,39992427.0,ns,1160
256bit,portable,65536,65536,bytes,40981003.0,ns,1189
256bit,portable,65536,65536,bytes,41965151.0,ns,1218
256bit,portable,65536,65536,bytes,42968705.0,ns,1247
256bit,portable,65536,65536,bytes,44099093.0,ns,1276
256bit,portable,65536,65536,bytes,45011362.0,ns,1305
256bit,portable,65536,65536,bytes,46046859.0,ns,1334
256bit,portable,65536,65536,bytes,47069830.0,ns,1363
256bit,portable,65536,65536,bytes,48237348.0,ns,1392
256bit,portable,65536,65536,bytes,49070366.0,ns,1421
256bit,portable,65536,65536,bytes,50108948.0,ns,1450
256bit,portable,65536,65536,bytes,50948087.0,ns,1479
256bit,portable,65536,65536,bytes,51894062.0,ns,1508
256bit,portable,65536,65536,bytes,52903909.0,ns,1537
256bit,portable,65536,65536,bytes,53980383.0,ns,1566
256bit,portable,65536,65536,bytes,54938118.0,ns,1595
256bit,portable,65536,65536,bytes,55922056.0,ns,1624
256bit,portable,65536,65536,bytes,56979305.0,ns,1653
256bit,portable,65536,65536,bytes,58014438.0,ns,1682
256bit,portable,65536,65536,bytes,59575032.0,ns,1711
256bit,portable,65536,65536,bytes,60055644.0,ns,1740
256bit,portable,65536,65536,bytes,61159029.0,ns,1769
256bit,portable,65536,65536,bytes,62184828.0,ns,1798
256bit,portable,65536,65536,bytes,62114417.0,ns,1827
256bit,portable,65536,65536,bytes,63445515.0,ns,1856
256bit,portable,65536,65536,bytes,64397219.0,ns,1885
256bit,portable,65536,65536,bytes,65395233.0,ns,1914
256bit,portable,65536,65536,bytes,66457632.0,ns,1943
256bit,portable,65536,65536,bytes,67641562.0,ns,1972
256bit,portable,65536,65536,bytes,68348778.0,ns,2001
256bit,portable,65536,65536,bytes,69364446.0,ns,2030
256bit,portable,65536,65536,bytes,69576416.0,ns,2059
256bit,portable,65536,65536,bytes,71780480.0,ns,2088
256bit,portable,65536,65536,bytes,72884496.0,ns,2117
256bit,portable,65536,65536,bytes,73994841.0,ns,2146
256bit,portable,65536,65536,bytes,75117469.0,ns,2175
256bit,portable,65536,65536,bytes,75875111.0,ns,2204
256bit,portable,65536,65536,bytes,77041138.0,ns,2233
256bit,portable,65536,65536,bytes,78715504.0,ns,2262
256bit,portable,65536,65536,bytes,79296834.0,ns,2291
256bit,portable,65536,65536,bytes,80069205.0,ns,2320
256bit,portable,65536,65536,bytes,81140349.0,ns,2349
256bit,portable,65536,65536,bytes,81867143.0,ns,2378
256bit,portable,65536,65536,bytes,82894464.0,ns,2407
256bit,portable,65536,65536,bytes,84039809.0,ns,2436
256bit,portable,65536,65536,bytes,84817631.0,ns,2465
256bit,portable,65536,65536,bytes,85842998.0,ns,2494
256bit,portable,65536,65536,bytes,86961252.0,ns,2523
256bit,portable,65536,65536,bytes,88411214.0,ns,2552
256bit,portable,65536,65536,bytes,89432572.0,ns,2581
256bit,portable,65536,65536,bytes,89866414.0,ns,2610
256bit,portable,65536,65536,bytes,91055844.0,ns,2639
256bit,portable,65536,65536,bytes,92069550.0,ns,2668
256bit,portable,65536,65536,bytes,91611630.0,ns,2697
256bit,portable,65536,65536,bytes,92600899.0,ns,2726
256bit,portable,65536,65536,bytes,93838060.0,ns,2755
256bit,portable,65536,65536,bytes,95331049.0,ns,2784
256bit,portable,65536,65536,bytes,96788678.0,ns,2813
256bit,portable,65536,65536,bytes,97366548.0,ns,2842
256bit,portable,65536,65536,bytes,98478339.0,ns,2871
256bit,portable,65536,65536,bytes,99240211.0,ns,2900
256bit,portable,4096,4096,bytes,974188.0,ns,422
256bit,portable,4096,4096,bytes,1963746.0,ns,844
256bit,portable,4096,4096,bytes,2953736.0,ns,1266
256bit,portable,4096,4096,bytes,3929927.0,ns,1688
256bit,portable,4096,4096,bytes,4928592.0,ns,2110
256bit,portable,4096,4096,bytes,5949812.0,ns,2532
256bit,portable,4096,4096,bytes,6937215.0,ns,2954
256bit,portable,4096,4096,bytes,7937735.0,ns,3376
256bit,portable,4096,4096,bytes,8964684.0,ns,3798
256bit,portable,4096,4096,bytes,9887834.0,ns,4220
256bit,portable,4096,4096,bytes,10864788.0,ns,4642
256bit,portable,4096,4096,bytes,11801946.0,ns,5064
256bit,portable,4096,4096,bytes,12735257.0,ns,5486
256bit,portable,4096,4096,bytes,13507711.0,ns,5908
256bit,portable,4096,4096,bytes,14228048.0,ns,6330
256bit,portable,4096,4096,bytes,15700013.0,ns,6752
256bit,portable,4096,4096,bytes,16909191.0,ns,7174
256bit,portable,4096,4096,bytes,17871055.0,ns,7596
256bit,portable,4096,4096,bytes,18805749.0,ns,8018
256bit,portable,4096,4096,bytes,19818150.0,ns,8440
256bit,portable,4096,4096,bytes,20845962.0,ns,8862
256bit,portable,4096,4096,bytes,21806494.0,ns,9284
256bit,portable,4096,4096,bytes,22742378.0,ns,9706
256bit,portable,4096,4096,bytes,23737999.0,ns,10128
256bit,portable,4096,4096,bytes,24804202.0,ns,10550
256bit,portable,4096,4096,bytes,25626581.0,ns,10972
256bit,portable,4096,4096,bytes,26581663.0,ns,11394
256bit,portable,4096,4096,bytes,27520052.0,ns,11816
256bit,portable,4096,4096,bytes,28603420.0,ns,12238
256bit,portable,4096,4096,bytes,29710102.0,ns,12660
256bit,portable,4096,4096,bytes,30688189.0,ns,13082
256bit,portable,4096,4096,bytes,31438378.0,ns,13504
256bit,portable,4096,4096,bytes,32520051.0,ns,13926
256bit,portable,4096,4096,bytes,33467039.0,ns,14348
256bit,portable,4096,4096,bytes,34372746.0,ns,14770
256bit,portable,4096,4096,bytes,35433028.0,ns,15192
256bit,portable,4096,4096,bytes,36709678.0,ns,15614
256bit,portable,4096,4096,bytes,37554829.0,ns,16036
256bit,portable,4096,4096,bytes,38446710.0,ns,16458
256bit,portable,4096,4096,bytes,39516891.0,ns,16880
256bit,portable,4096,4096,bytes,40283943.0,ns,17302
256bit,portable,4096,4096,bytes,41215329.0,ns,17724
256bit,portable,4096,4096,bytes,42364864.0,ns,18146
256bit,portable,4096,4096,bytes,43311269.0,ns,18568
256bit,portable,4096,4096,bytes,44306016.0,ns,18990
256bit,portable,4096,4096,bytes,45392480.0,ns,19412
256bit,portable,4096,4096,bytes,46880105.0,ns,19834
256bit,portable,4096,4096,bytes,45908270.0,ns,20256
256bit,portable,4096,4096,bytes,47690869.0,ns,20678
256bit,portable,4096,4096,bytes,49029236.0,ns,21100
256bit,portable,4096,4096,bytes,49955442.0,ns,21522
256bit,portable,4096,4096,bytes,49996391.0,ns,21944
256bit,portable,4096,4096,bytes,52141485.0,ns,22366
256bit,portable,4096,4096,bytes,53641783.0,ns,22788
256bit,portable,4096,4096,bytes,54717606.0,ns,23210
256bit,portable,4096,4096,bytes,55628993.0,ns,23632
256bit,portable,4096,4096,bytes,56190070.0,ns,24054
256bit,portable,4096,4096,bytes,57356929.0,ns,24476
256bit,portable,4096,4096,bytes,58183704.0,ns,24898
256bit,portable,4096,4096,bytes,59304192.0,ns,25320
256bit,portable,4096,4096,bytes,59997682.0,ns,25742
256bit,portable,4096,4096,bytes,61091210.0,ns,26164
256bit,portable,4096,4096,bytes,61932563.0,ns,26586
256bit,portable,4096,4096,bytes,63362526.0,ns,27008
256bit,portable,4096,4096,bytes,64526530.0,ns,27430
256bit,portable,4096,4096,bytes,65301726.0,ns,27852
256bit,portable,4096,4096,bytes,66304668.0,ns,28274
256bit,portable,4096,4096,bytes,67550799.0,ns,28696
256bit,portable,4096,4096,bytes,67984442.0,ns,29118
256bit,portable,4096,4096,bytes,67578021.0,ns,29540
256bit,portable,4096,4096,bytes,69319551.0,ns,29962
256bit,portable,4096,4096,bytes,70458807.0,ns,30384
256bit,portable,4096,4096,bytes,71146246.0,ns,30806
256bit,portable,4096,4096,bytes,72269058.0,ns,31228
256bit,portable,4096,4096,bytes,73897151.0,ns,31650
256bit,portable,4096,4096,bytes,74703028.0,ns,32072
256bit,portable,4096,4096,bytes,76152396.0,ns,32494
256bit,portable,4096,4096,bytes,77598820.0,ns,32916
256bit,portable,4096,4096,bytes,77755652.0,ns,33338
256bit,portable,4096,4096,bytes,78590362.0,ns,33760
256bit,portable,4096,4096,bytes,79835432.0,ns,34182
256bit,portable,4096,4096,bytes,80712252.0,ns,34604
256bit,portable,4096,4096,bytes,81522556.0,ns,35026
256bit,portable,4096,4096,bytes,82767193.0,ns,35448
256bit,portable,4096,4096,bytes,83811576.0,ns,35870
256bit,portable,4096,4096,bytes,84865779.0,ns,36292
256bit,portable,4096,4096,bytes,85577312.0,ns,36714
256bit,portable,4096,4096,bytes,86505344.0,ns,37136
256bit,portable,4096,4096,bytes,87932256.0,ns,37558
256bit,portable,4096,4096,bytes,86480659.0,ns,37980
256bit,portable,4096,4096,bytes,88596312.0,ns,38402
256bit,portable,4096,4096,bytes,89548621.0,ns,38824
256bit,portable,4096,4096,bytes,90665361.0,ns,39246
256bit,portable,4096,4096,bytes,91400212.0,ns,39668
256bit,portable,4096,4096,bytes,93524475.0,ns,40090
256bit,portable,4096,4096,bytes,94078348.0,ns,40512
256bit,portable,4096,4096,bytes,94542568.0,ns,40934
256bit,portable,4096,4096,bytes,95128806.0,ns,41356
256bit,portable,4096,4096,bytes,97523796.0,ns,41778
256bit,portable,4096,4096,bytes,98394465.0,ns,42200
256bit,portable,256,256,bytes,977425.0,ns,3132
256bit,portable,256,256,bytes,1966082.0,ns,6264
256bit,portable,256,256,bytes,2952925.0,ns,9396
256bit,portable,256,256,bytes,3956991.0,ns,12528
256bit,portable,256,256,bytes,4929996.0,ns,15660
256bit,portable,256,256,bytes,5924103.0,ns,18792
256bit,portable,256,256,bytes,6914685.0,ns,21924
256bit,portable,256,256,bytes,7900194.0,ns,25056
256bit,portable,256,256,bytes,8969124.0,ns,28188
256bit,portable,256,256,bytes,10004170.0,ns,31320
256bit,portable,256,256,bytes,10975914.0,ns,34452
256bit,portable,256,256,bytes,11959490.0,ns,37584
256bit,portable,256,256,bytes,12833947.0,ns,40716
256bit,portable,256,256,bytes,13863333.0,ns,43848
256bit,portable,256,256,bytes,14763640.0,ns,46980
256bit,portable,256,256,bytes,15702600.0,ns,50112
256bit,portable,256,256,bytes,16688290.0,ns,53244
256bit,portable,256,256,bytes,17702086.0,ns,56376
256bit,portable,256,256,bytes,18635056.0,ns,59508
256bit,portable,256,256,bytes,19756396.0,ns,62640
256bit,portable,256,256,bytes,20810607.0,ns,65772
256bit,portable,256,256,bytes,21795789.0,ns,68904
256bit,portable,256,256,bytes,22571987.0,ns,72036
256bit,portable,256,256,bytes,23474689.0,ns,75168
256bit,portable,256,256,bytes,24584588.0,ns,78300
256bit,portable,256,256,bytes,25663428.0,ns,81432
256bit,portable,256,256,bytes,29642820.0,ns,84564
256bit,portable,256,256,bytes,27687680.0,ns,87696
256bit,portable,256,256,bytes,28527882.0,ns,90828
256bit,portable,256,256,bytes,29537419.0,ns,93960
256bit,portable,256,256,bytes,30497530.0,ns,97092
256bit,portable,256,256,bytes,31407024.0,ns,100224
256bit,portable,256,256,bytes,32631062.0,ns,103356
256bit,portable,256,256,bytes,33964340.0,ns,106488
256bit,portable,256,256,bytes,34822786.0,ns,109620
256bit,portable,256,256,bytes,35478575.0,ns,112752
256bit,portable,256,256,bytes,36654149.0,ns,115884
256bit,portable,256,256,bytes,37864733.0,ns,119016
256bit,portable,256,256,bytes,38782773.0,ns,122148
256bit,portable,256,256,bytes,39416347.0,ns,125280
256bit,portable,256,256,bytes,40318729.0,ns,128412
256bit,portable,256,256,bytes,41636015.0,ns,131544
256bit,portable,256,256,bytes,42652827.0,ns,134676
256bit,portable,256,256,bytes,43432080.0,ns,137808
256bit,portable,256,256,bytes,44224009.0,ns,140940
256bit,portable,256,256,bytes,45194131.0,ns,144072
256bit,portable,256,256,bytes,46337218.0,ns,147204
256bit,portable,256,256,bytes,47256336.0,ns,150336
256bit,portable,256,256,bytes,48266935.0,ns,153468
256bit,portable,256,256,bytes,49551037.0,ns,156600
256bit,portable,256,256,bytes,50401909.0,ns,159732
256bit,portable,256,256,bytes,51155926.0,ns,162864
256bit,portable,256,256,bytes,52272548.0,ns,165996
256bit,portable,256,256,bytes,53139822.0,ns,169128
256bit,portable,256,256,bytes,54109652.0,ns,172260
256bit,portable,256,256,bytes,54931909.0,ns,175392
256bit,portable,256,256,bytes,55979701.0,ns,178524
256bit,portable,256,256,bytes,56582161.0,ns,181656
256bit,portable,256,256,bytes,58370816.0,ns,184788
256bit,portable,256,256,bytes,59348871.0,ns,187920
256bit,portable,256,256,bytes,60087178.0,ns,191052
256bit,portable,256,256,bytes,61331144.0,ns,194184
256bit,portable,256,256,bytes,61887280.0,ns,197316
256bit,portable,256,256,bytes,62958416.0,ns,200448
256bit,portable,256,256,bytes,63822071.0,ns,203580
256bit,portable,256,256,bytes,64798335.0,ns,206712
256bit,portable,256,256,bytes,65965683.0,ns,209844
256bit,portable,256,256,bytes,67226763.0,ns,212976
256bit,portable,256,256,bytes,67912678.0,ns,216108
256bit,portable,256,256,bytes,68827782.0,ns,219240
256bit,portable,256,256,bytes,69727880.0,ns,222372
256bit,portable,256,256,bytes,70734961.0,ns,225504
256bit,portable,256,256,bytes,72314433.0,ns,228636
256bit,portable,256,256,bytes,73548098.0,ns,231768
256bit,portable,256,256,bytes,74284671.0,ns,234900
256bit,portable,256,256,bytes,74764541.0,ns,238032
256bit,portable,256,256,bytes,75647215.0,ns,241164
256bit,portable,256,256,bytes,76688171.0,ns,244296
256bit,portable,256,256,bytes,77581345.0,ns,247428
256bit,portable,256,256,bytes,78578006.0,ns,250560
256bit,portable,256,256,bytes,79634603.0,ns,253692
256bit,portable,256,256,bytes,80453824.0,ns,256824
256bit,portable,256,256,bytes,81784808.0,ns,259956
256bit,portable,256,256,bytes,82845272.0,ns,263088
256bit,portable,256,256,bytes,83410345.0,ns,266220
256bit,portable,256,256,bytes,84852971.0,ns,269352
256bit,portable,256,256,bytes,86115765.0,ns,272484
256bit,portable,256,256,bytes,87332439.0,ns,275616
256bit,portable,256,256,bytes,88056307.0,ns,278748
256bit,portable,256,256,bytes,88435735.0,ns,281880
256bit,portable,256,256,bytes,89415614.0,ns,285012
256bit,portable,256,256,bytes,90263982.0,ns,288144
256bit,portable,256,256,bytes,91163888.0,ns,291276
256bit,portable,256,256,bytes,92608358.0,ns,294408
256bit,portable,256,256,bytes,96242439.0,ns,297540
256bit,portable,256,256,bytes,95211922.0,ns,300672
256bit,portable,256,256,bytes,95647748.0,ns,303804
256bit,portable,256,256,bytes,96087293.0,ns,306936
256bit,portable,256,256,bytes,97627566.0,ns,310068
256bit,portable,256,256,bytes,98948891.0,ns,313200
256bit,avx,4,4,bytes,983847.0,ns,23060
256bit,avx,4,4,bytes,1956424.0,ns,46120
256bit,avx,4,4,bytes,2942906.0,ns,69180
256bit,avx,4,4,bytes,4002540.0,ns,92240
256bit,avx,4,4,bytes,5209704.0,ns,115300
256bit,avx,4,4,bytes,6148998.0,ns,138360
256bit,avx,4,4,bytes,6897112.0,ns,161420
256bit,avx,4,4,bytes,7998065.0,ns,184480
256bit,avx,4,4,bytes,8869767.0,ns,207540
256bit,avx,4,4,bytes,9929720.0,ns,230600
256bit,avx,4,4,bytes,11016396.0,ns,253660
256bit,avx,4,4,bytes,11930559.0,ns,276720
256bit,avx,4,4,bytes,12801831.0,ns,299780
256bit,avx,4,4,bytes,13818410.0,ns,322840
256bit,avx,4,4,bytes,14769626.0,ns,345900
256bit,avx,4,4,bytes,15757941.0,ns,368960
256bit,avx,4,4,bytes,16720337.0,ns,392020
256bit,avx,4,4,bytes,17741088.0,ns,415080
256bit,avx,4,4,bytes,18703033.0,ns,438140
256bit,avx,4,4,bytes,19704081.0,ns,461200
256bit,avx,4,4,bytes,20769236.0,ns,484260
256bit,avx,4,4,bytes,21382473.0,ns,507320
256bit,avx,4,4,bytes,22637400.0,ns,530380
256bit,avx,4,4,bytes,23667266.0,ns,553440
256bit,avx,4,4,bytes,24641876.0,ns,576500
256bit,avx,4,4,bytes,25658808.0,ns,599560
256bit,avx,4,4,bytes,26605642.0,ns,622620
256bit,avx,4,4,bytes,27605903.0,ns,645680
256bit,avx,4,4,bytes,28576804.0,ns,668740
256bit,avx,4,4,bytes,29615178.0,ns,691800
256bit,avx,4,4,bytes,30581079.0,ns,714860
256bit,avx,4,4,bytes,31511285.0,ns,737920
256bit,avx,4,4,bytes,32526062.0,ns,760980
256bit,avx,4,4,bytes,33520920.0,ns,784040
256bit,avx,4,4,bytes,34538053.0,ns,807100
256bit,avx,4,4,bytes,35559000.0,ns,830160
256bit,avx,4,4,bytes,36597984.0,ns,853220
256bit,avx,4,4,bytes,37663278.0,ns,876280
256bit,avx,4,4,bytes,38899640.0,ns,899340
256bit,avx,4,4,bytes,39112328.0,ns,922400
256bit,avx,4,4,bytes,40344742.0,ns,945460
256bit,avx,4,4,bytes,41346503.0,ns,968520
256bit,avx,4,4,bytes,42256410.0,ns,991580
256bit,avx,4,4,bytes,43353533.0,ns,1014640
256bit,avx,4,4,bytes,44310521.0,ns,1037700
256bit,avx,4,4,bytes,45508298.0,ns,1060760
256bit,avx,4,4,bytes,46411852.0,ns,1083820
256bit,avx,4,4,bytes,47223941.0,ns,1106880
256bit,avx,4,4,bytes,48193379.0,ns,1129940
256bit,avx,4,4,bytes,49195712.0,ns,1153000
256bit,avx,4,4,bytes,50200066.0,ns,1176060
256bit,avx,4,4,bytes,51195038.0,ns,1199120
256bit,avx,4,4,bytes,52207060.0,ns,1222180
256bit,avx,4,4,bytes,53129850.0,ns,1245240
256bit,avx,4,4,bytes,54277412.0,ns,1268300
256bit,avx,4,4,bytes,55460186.0,ns,1291360
256bit,avx,4,4,bytes,56039102.0,ns,1314420
256bit,avx,4,4,bytes,57007008.0,ns,1337480
256bit,avx,4,4,bytes,58023039.0,ns,1360540
256bit,avx,4,4,bytes,59022886.0,ns,1383600
256bit,avx,4,4,bytes,60029166.0,ns,1406660
256bit,avx,4,4,bytes,60975963.0,ns,1429720
256bit,avx,4,4,bytes,62000097.0,ns,1452780
256bit,avx,4,4,bytes,63091632.0,ns,1475840
256bit,avx,4,4,bytes,64063066.0,ns,1498900
256bit,avx,4,4,bytes,64909229.0,ns,1521960
256bit,avx,4,4,bytes,65893096.0,ns,1545020
256bit,avx,4,4,bytes,66937841.0,ns,1568080
256bit,avx,4,4,bytes,68134788.0,ns,1591140
256bit,avx,4,4,bytes,68845761.0,ns,1614200
256bit,avx,4,4,bytes,69812005.0,ns,1637260
256bit,avx,4,4,bytes,70891912.0,ns,1660320
256bit,avx,4,4,bytes,71598061.0,ns,1683380
256bit,avx,4,4,bytes,72923063.0,ns,1706440
256bit,avx,4,4,bytes,73939424.0,ns,1729500
256bit,avx,4,4,bytes,75106106.0,ns,1752560
256bit,avx,4,4,bytes,76519773.0,ns,1775620
256bit,avx,4,4,bytes,77203837.0,ns,1798680
256bit,avx,4,4,bytes,78131186.0,ns,1821740
256bit,avx,4,4,bytes,79125712.0,ns,1844800
256bit,avx,4,4,bytes,80077660.0,ns,1867860
256bit,avx,4,4,bytes,81222215.0,ns,1890920
256bit,avx,4,4,bytes,81494678.0,ns,1913980
256bit,avx,4,4,bytes,82690643.0,ns,1937040
256bit,avx,4,4,bytes,84059038.0,ns,1960100
256bit,avx,4,4,bytes,85485844.0,ns,1983160
256bit,avx,4,4,bytes,86328241.0,ns,2006220
256bit,avx,4,4,bytes,87197428.0,ns,2029280
256bit,avx,4,4,bytes,87864104.0,ns,2052340
256bit,avx,4,4,bytes,88601021.0,ns,2075400
256bit,avx,4,4,bytes,89592423.0,ns,2098460
256bit,avx,4,4,bytes,90575711.0,ns,2121520
256bit,avx,4,4,bytes,91691551.0,ns,2144580
256bit,avx,4,4,bytes,92750111.0,ns,2167640
256bit,avx,4,4,bytes,94166449.0,ns,2190700
256bit,avx,4,4,bytes,94752193.0,ns,2213760
256bit,avx,4,4,bytes,95707180.0,ns,2236820
256bit,avx,4,4,bytes,96707203.0,ns,2259880
256bit,avx,4,4,bytes,97635303.0,ns,2282940
256bit,avx,4,4,bytes,98691135.0,ns,2306000
256bit,avx,16384,16384,bytes,981131.0,ns,1102
256bit,avx,16384,16384,bytes,1981440.0,ns,2204
256bit,avx,16384,16384,bytes,2953985.0,ns,3306
256bit,avx,16384,16384,bytes,3978781.0,ns,4408
256bit,avx,16384,16384,bytes,5189091.0,ns,5510
256bit,avx,16384,16384,bytes,6139104.0,ns,6612
256bit,avx,16384,16384,bytes,6966971.0,ns,7714
256bit,avx,16384,16384,bytes,7985085.0,ns,8816
256bit,avx,16384,16384,bytes,8939093.0,ns,9918
256bit,avx,16384,16384,bytes,10034625.0,ns,11020
256bit,avx,16384,16384,bytes,11039010.0,ns,12122
256bit,avx,16384,16384,bytes,11892177.0,ns,13224
256bit,avx,16384,16384,bytes,12899430.0,ns,14326
256bit,avx,16384,16384,bytes,13866274.0,ns,15428
256bit,avx,16384,16384,bytes,15038857.0,ns,16530
256bit,avx,16384,16384,bytes,15816413.0,ns,17632
256bit,avx,16384,16384,bytes,16767177.0,ns,18734
256bit,avx,16384,16384,bytes,17792492.0,ns,19836
256bit,avx,16384,16384,bytes,18785107.0,ns,20938
256bit,avx,16384,16384,bytes,19725959.0,ns,22040
256bit,avx,16384,16384,bytes,20778860.0,ns,23142
256bit,avx,16384,16384,bytes,21699296.0,ns,24244
256bit,avx,16384,16384,bytes,22686577.0,ns,25346
256bit,avx,16384,16384,bytes,23707688.0,ns,26448
256bit,avx,16384,16384,bytes,24649352.0,ns,27550
256bit,avx,16384,16384,bytes,25665753.0,ns,28652
256bit,avx,16384,16384,bytes,26669437.0,ns,29754
256bit,avx,16384,16384,bytes,27640549.0,ns,30856
256bit,avx,16384,16384,bytes,28574611.0,ns,31958
256bit,avx,16384,16384,bytes,29631979.0,ns,33060
256bit,avx,16384,16384,bytes,30604213.0,ns,34162
256bit,avx,16384,16384,bytes,31613309.0,ns,35264
256bit,avx,16384,16384,bytes,32568660.0,ns,36366
256bit,avx,16384,16384,bytes,33614977.0,ns,37468
256bit,avx,16384,16384,bytes,34662927.0,ns,38570
256bit,avx,16384,16384,bytes,35556871.0,ns,39672
256bit,avx,16384,16384,bytes,36512444.0,ns,40774
256bit,avx,16384,16384,bytes,37500650.0,ns,41876
256bit,avx,16384,16384,bytes,38480006.0,ns,42978
256bit,avx,16384,16384,bytes,39683186.0,ns,44080
256bit,avx,16384,16384,bytes,40776971.0,ns,45182
256bit,avx,16384,16384,bytes,41659005.0,ns,46284
256bit,avx,16384,16384,bytes,42520857.0,ns,47386
256bit,avx,16384,16384,bytes,43414460.0,ns,48488
256bit,avx,16384,16384,bytes,44468843.0,ns,49590
256bit,avx,16384,16384,bytes,45445347.0,ns,50692
256bit,avx,16384,16384,bytes,46417640.0,ns,51794
256bit,avx,16384,16384,bytes,47439369.0,ns,52896
256bit,avx,16384,16384,bytes,48408518.0,ns,53998
256bit,avx,16384,16384,bytes,49316870.0,ns,55100
256bit,avx,16384,16384,bytes,50329723.0,ns,56202
256bit,avx,16384,16384,bytes,51336694.0,ns,57304
256bit,avx,16384,16384,bytes,52315531.0,ns,58406
256bit,avx,16384,16384,bytes,53428921.0,ns,59508
256bit,avx,16384,16384,bytes,54387215.0,ns,60610
256bit,avx,16384,16384,bytes,55460072.0,ns,61712
256bit,avx,16384,16384,bytes,56241561.0,ns,62814
256bit,avx,16384,16384,bytes,57181473.0,ns,63916
256bit,avx,16384,16384,bytes,58195488.0,ns,65018
256bit,avx,16384,16384,bytes,59219702.0,ns,66120
256bit,avx,16384,16384,bytes,60193038.0,ns,67222
256bit,avx,16384,16384,bytes,61165092.0,ns,68324
256bit,avx,16384,16384,bytes,61817595.0,ns,69426
256bit,avx,16384,16384,bytes,64518624.0,ns,70528
256bit,avx,16384,16384,bytes,65172528.0,ns,71630
256bit,avx,16384,16384,bytes,65920493.0,ns,72732
256bit,avx,16384,16384,bytes,66889762.0,ns,73834
256bit,avx,16384,16384,bytes,67587129.0,ns,74936
256bit,avx,16384,16384,bytes,68535568.0,ns,76038
256bit,avx,16384,16384,bytes,69599948.0,ns,77140
256bit,avx,16384,16384,bytes,70623492.0,ns,78242
256bit,avx,16384,16384,bytes,72459624.0,ns,79344
256bit,avx,16384,16384,bytes,72464403.0,ns,80446
256bit,avx,16384,16384,bytes,73512422.0,ns,81548
256bit,avx,16384,16384,bytes,74500547.0,ns,82650
256bit,avx,16384,16384,bytes,75703225.0,ns,83752
256bit,avx,16384,16384,bytes,76403076.0,ns,84854
256bit,avx,16384,16384,bytes,77600242.0,ns,85956
256bit,avx,16384,16384,bytes,78553411.0,ns,87058
256bit,avx,16384,16384,bytes,79755505.0,ns,88160
256bit,avx,16384,16384,bytes,80526695.0,ns,89262
256bit,avx,16384,16384,bytes,81406252.0,ns,90364
256bit,avx,16384,16384,bytes,82831934.0,ns,91466
256bit,avx,16384,16384,bytes,83409043.0,ns,92568
256bit,avx,16384,16384,bytes,84736429.0,ns,93670
256bit,avx,16384,16384,bytes,85792954.0,ns,94772
256bit,avx,16384,16384,bytes,86391702.0,ns,95874
256bit,avx,16384,16384,bytes,88257812.0,ns,96976
256bit,avx,16384,16384,bytes,88473404.0,ns,98078
256bit,avx,16384,16384,bytes,89780611.0,ns,99180
256bit,avx,16384,16384,bytes,89628309.0,ns,100282
256bit,avx,16384,16384,bytes,95774307.0,ns,101384
256bit,avx,16384,16384,bytes,92032310.0,ns,102486
256bit,avx,16384,16384,bytes,92932877.0,ns,103588
256bit,avx,16384,16384,bytes,93778950.0,ns,104690
256bit,avx,16384,16384,bytes,94755362.0,ns,105792
256bit,avx,16384,16384,bytes,95668733.0,ns,106894
256bit,avx,16384,16384,bytes,97030436.0,ns,107996
256bit,avx,16384,16384,bytes,97741328.0,ns,109098
256bit,avx,16384,16384,bytes,99424027.0,ns,110200
256bit,avx,1,1,bytes,983476.0,ns,21708
256bit,avx,1,1,bytes,1962204.0,ns,43416
256bit,avx,1,1,bytes,2939260.0,ns,65124
256bit,avx,1,1,bytes,3978684.0,ns,86832
256bit,avx,1,1,bytes,5029340.0,ns,108540
256bit,avx,1,1,bytes,6010762.0,ns,130248
256bit,avx,1,1,bytes,6879310.0,ns,151956
256bit,avx,1,1,bytes,7821295.0,ns,173664
256bit,avx,1,1,bytes,8822578.0,ns,195372
256bit,avx,1,1,bytes,9833346.0,ns,217080
256bit,avx,1,1,bytes,10813959.0,ns,238788
256bit,avx,1,1,bytes,11804319.0,ns,260496
256bit,avx,1,1,bytes,12758910.0,ns,282204
256bit,avx,1,1,bytes,13666662.0,ns,303912
256bit,avx,1,1,bytes,14691228.0,ns,325620
256bit,avx,1,1,bytes,15654226.0,ns,347328
256bit,avx,1,1,bytes,16671367.0,ns,369036
256bit,avx,1,1,bytes,18333026.0,ns,390744
256bit,avx,1,1,bytes,18517529.0,ns,412452
256bit,avx,1,1,bytes,19543087.0,ns,434160
256bit,avx,1,1,bytes,20555901.0,ns,455868
256bit,avx,1,1,bytes,21710755.0,ns,477576
256bit,avx,1,1,bytes,22656321.0,ns,499284
256bit,avx,1,1,bytes,23626160.0,ns,520992
256bit,avx,1,1,bytes,24466544.0,ns,542700
256bit,avx,1,1,bytes,25456171.0,ns,564408
256bit,avx,1,1,bytes,26418470.0,ns,586116
256bit,avx,1,1,bytes,27407927.0,ns,607824
256bit,avx,1,1,bytes,28421491.0,ns,629532
256bit,avx,1,1,bytes,29343281.0,ns,651240
256bit,avx,1,1,bytes,30305297.0,ns,672948
256bit,avx,1,1,bytes,31291088.0,ns,694656
256bit,avx,1,1,bytes,32357634.0,ns,716364
256bit,avx,1,1,bytes,33294352.0,ns,738072
256bit,avx,1,1,bytes,34183228.0,ns,759780
256bit,avx,1,1,bytes,35344896.0,ns,781488
256bit,avx,1,1,bytes,36194726.0,ns,803196
256bit,avx,1,1,bytes,37235063.0,ns,824904
256bit,avx,1,1,bytes,38127535.0,ns,846612
256bit,avx,1,1,bytes,39132593.0,ns,868320
256bit,avx,1,1,bytes,40111913.0,ns,890028
256bit,avx,1,1,bytes,41031436.0,ns,911736
256bit,avx,1,1,bytes,42072203.0,ns,933444
256bit,avx,1,1,bytes,43023039.0,ns,955152
256bit,avx,1,1,bytes,44002698.0,ns,976860
256bit,avx,1,1,bytes,44972558.0,ns,998568
256bit,avx,1,1,bytes,45918272.0,ns,1020276
256bit,avx,1,1,bytes,47274144.0,ns,1041984
256bit,avx,1,1,bytes,47917479.0,ns,1063692
256bit,avx,1,1,bytes,48948016.0,ns,1085400
256bit,avx,1,1,bytes,50026015.0,ns,1107108
256bit,avx,1,1,bytes,50832587.0,ns,1128816
256bit,avx,1,1,bytes,51823733.0,ns,1150524
256bit,avx,1,1,bytes,52831288.0,ns,1172232
256bit,avx,1,1,bytes,53870922.0,ns,1193940
256bit,avx,1,1,bytes,54940604.0,ns,1215648
256bit,avx,1,1,bytes,55721804.0,ns,1237356
256bit,avx,1,1,bytes,56786425.0,ns,1259064
256bit,avx,1,1,bytes,57974445.0,ns,1280772
256bit,avx,1,1,bytes,58863200.0,ns,1302480
256bit,avx,1,1,bytes,59884090.0,ns,1324188
256bit,avx,1,1,bytes,60794235.0,ns,1345896
256bit,avx,1,1,bytes,62011921.0,ns,1367604
256bit,avx,1,1,bytes,62830342.0,ns,1389312
256bit,avx,1,1,bytes,63834161.0,ns,1411020
256bit,avx,1,1,bytes,64305682.0,ns,1432728
256bit,avx,1,1,bytes,65434599.0,ns,1454436
256bit,avx,1,1,bytes,66500274.0,ns,1476144
256bit,avx,1,1,bytes,67578341.0,ns,1497852
256bit,avx,1,1,bytes,68393666.0,ns,1519560
256bit,avx,1,1,bytes,69466283.0,ns,1541268
256bit,avx,1,1,bytes,70353837.0,ns,1562976
256bit,avx,1,1,bytes,71374585.0,ns,1584684
256bit,avx,1,1,bytes,79089148.0,ns,1606392
256bit,avx,1,1,bytes,73820417.0,ns,1628100
256bit,avx,1,1,bytes,74282615.0,ns,1649808
256bit,avx,1,1,bytes,75428884.0,ns,1671516
256bit,avx,1,1,bytes,76320535.0,ns,1693224
256bit,avx,1,1,bytes,77306407.0,ns,1714932
256bit,avx,1,1,bytes,78598626.0,ns,1736640
256bit,avx,1,1,bytes,79157678.0,ns,1758348
256bit,avx,1,1,bytes,80219216.0,ns,1780056
256bit,avx,1,1,bytes,81117965.0,ns,1801764
256bit,avx,1,1,bytes,82085765.0,ns,1823472
256bit,avx,1,1,bytes,83583932.0,ns,1845180
256bit,avx,1,1,bytes,84115831.0,ns,1866888
256bit,avx,1,1,bytes,85065944.0,ns,1888596
256bit,avx,1,1,bytes,85995328.0,ns,1910304
256bit,avx,1,1,bytes,86884164.0,ns,1932012
256bit,avx,1,1,bytes,87951667.0,ns,1953720
256bit,avx,1,1,bytes,88921111.0,ns,1975428
256bit,avx,1,1,bytes,91099310.0,ns,1997136
256bit,avx,1,1,bytes,90873187.0,ns,2018844
256bit,avx,1,1,bytes,91945625.0,ns,2040552
256bit,avx,1,1,bytes,92858950.0,ns,2062260
256bit,avx,1,1,bytes,93791887.0,ns,2083968
256bit,avx,1,1,bytes,95001237.0,ns,2105676
256bit,avx,1,1,bytes,95790351.0,ns,2127384
256bit,avx,1,1,bytes,96810277.0,ns,2149092
256bit,avx,1,1,bytes,97653425.0,ns,2170800
256bit,avx,64,64,bytes,975412.0,ns,31041
256bit,avx,64,64,bytes,1968896.0,ns,62082
256bit,avx,64,64,bytes,2947102.0,ns,93123
256bit,avx,64,64,bytes,3964135.0,ns,124164
256bit,avx,64,64,bytes,6466925.0,ns,155205
256bit,avx,64,64,bytes,8500476.0,ns,186246
256bit,avx,64,64,bytes,9327582.0,ns,217287
256bit,avx,64,64,bytes,9215467.0,ns,248328
256bit,avx,64,64,bytes,9512047.0,ns,279369
256bit,avx,64,64,bytes,9821850.0,ns,310410
256bit,avx,64,64,bytes,10833921.0,ns,341451
256bit,avx,64,64,bytes,11689823.0,ns,372492
256bit,avx,64,64,bytes,12695743.0,ns,403533
256bit,avx,64,64,bytes,13690211.0,ns,434574
256bit,avx,64,64,bytes,14601299.0,ns,465615
256bit,avx,64,64,bytes,15886043.0,ns,496656
256bit,avx,64,64,bytes,16965283.0,ns,527697
256bit,avx,64,64,bytes,17897301.0,ns,558738
256bit,avx,64,64,bytes,18870088.0,ns,589779
256bit,avx,64,64,bytes,19797064.0,ns,620820
256bit,avx,64,64,bytes,20770633.0,ns,651861
256bit,avx,64,64,bytes,21892516.0,ns,682902
256bit,avx,64,64,bytes,22717196.0,ns,713943
256bit,avx,64,64,bytes,23826284.0,ns,744984
256bit,avx,64,64,bytes,24752450.0,ns,776025
256bit,avx,64,64,bytes,25666274.0,ns,807066
256bit,avx,64,64,bytes,26215456.0,ns,838107
256bit,avx,64,64,bytes,27153788.0,ns,869148
256bit,avx,64,64,bytes,28414626.0,ns,900189
256bit,avx,64,64,bytes,29302469.0,ns,931230
256bit,avx,64,64,bytes,30340270.0,ns,962271
256bit,avx,64,64,bytes,31434257.0,ns,993312
256bit,avx,64,64,bytes,32247469.0,ns,1024353
256bit,avx,64,64,bytes,33193141.0,ns,1055394
256bit,avx,64,64,bytes,34302530.0,ns,1086435
256bit,avx,64,64,bytes,35191737.0,ns,1117476
256bit,avx,64,64,bytes,36153661.0,ns,1148517
256bit,avx,64,64,bytes,37460958.0,ns,1179558
256bit,avx,64,64,bytes,38218361.0,ns,1210599
256bit,avx,64,64,bytes,39130421.0,ns,1241640
256bit,avx,64,64,bytes,40080594.0,ns,1272681
256bit,avx,64,64,bytes,41252371.0,ns,1303722
256bit,avx,64,64,bytes,42045634.0,ns,1334763
256bit,avx,64,64,bytes,43042374.0,ns,1365804
256bit,avx,64,64,bytes,43963392.0,ns,1396845
256bit,avx,64,64,bytes,45849860.0,ns,1427886
256bit,avx,64,64,bytes,45869298.0,ns,1458927
256bit,avx,64,64,bytes,47064640.0,ns,1489968
256bit,avx,64,64,bytes,48183417.0,ns,1521009
256bit,avx,64,64,bytes,49314075.0,ns,1552050
256bit,avx,64,64,bytes,50108389.0,ns,1583091
256bit,avx,64,64,bytes,51020529.0,ns,1614132
256bit,avx,64,64,bytes,51778193.0,ns,1645173
256bit,avx,64,64,bytes,53094457.0,ns,1676214
256bit,avx,64,64,bytes,54064868.0,ns,1707255
256bit,avx,64,64,bytes,55107258.0,ns,1738296
256bit,avx,64,64,bytes,55958993.0,ns,1769337
256bit,avx,64,64,bytes,56160523.0,ns,1800378
256bit,avx,64,64,bytes,57642402.0,ns,1831419
256bit,avx,64,64,bytes,58592954.0,ns,1862460
256bit,avx,64,64,bytes,59709597.0,ns,1893501
256bit,avx,64,64,bytes,60566140.0,ns,1924542
256bit,avx,64,64,bytes,61535218.0,ns,1955583
256bit,avx,64,64,bytes,62571296.0,ns,1986624
256bit,avx,64,64,bytes,63556907.0,ns,2017665
256bit,avx,64,64,bytes,64565792.0,ns,2048706
256bit,avx,64,64,bytes,65925700.0,ns,2079747
256bit,avx,64,64,bytes,66634920.0,ns,2110788
256bit,avx,64,64,bytes,67464422.0,ns,2141829
256bit,avx,64,64,bytes,68405277.0,ns,2172870
256bit,avx,64,64,bytes,69575650.0,ns,2203911
256bit,avx,64,64,bytes,70391706.0,ns,2234952
256bit,avx,64,64,bytes,71378221.0,ns,2265993
256bit,avx,64,64,bytes,72126038.0,ns,2297034
256bit,avx,64,64,bytes,73981894.0,ns,2328075
256bit,avx,64,64,bytes,75315371.0,ns,2359116
256bit,avx,64,64,bytes,75976079.0,ns,2390157
256bit,avx,64,64,bytes,76820689.0,ns,2421198
256bit,avx,64,64,bytes,77943634.0,ns,2452239
256bit,avx,64,64,bytes,78683662.0,ns,2483280
256bit,avx,64,64,bytes,79841934.0,ns,2514321
256bit,avx,64,64,bytes,81188076.0,ns,2545362
256bit,avx,64,64,bytes,81696443.0,ns,2576403
256bit,avx,64,64,bytes,82673135.0,ns,2607444
256bit,avx,64,64,bytes,83669967.0,ns,2638485
256bit,avx,64,64,bytes,84509830.0,ns,2669526
256bit,avx,64,64,bytes,85573719.0,ns,2700567
256bit,avx,64,64,bytes,86532539.0,ns,2731608
256bit,avx,64,64,bytes,87667145.0,ns,2762649
256bit,avx,64,64,bytes,87490690.0,ns,2793690
256bit,avx,64,64,bytes,88790059.0,ns,2824731
256bit,avx,64,64,bytes,89814224.0,ns,2855772
256bit,avx,64,64,bytes,91413492.0,ns,2886813
256bit,avx,64,64,bytes,92257129.0,ns,2917854
256bit,avx,64,64,bytes,92917436.0,ns,2948895
256bit,avx,64,64,bytes,93839345.0,ns,2979936
256bit,avx,64,64,bytes,94767224.0,ns,3010977
256bit,avx,64,64,bytes,95824431.0,ns,3042018
256bit,avx,64,64,bytes,97001490.0,ns,3073059
256bit,avx,64,64,bytes,97833716.0,ns,3104100
256bit,avx,16,16,bytes,981533.0,ns,22697
256bit,avx,16,16,bytes,1978636.0,ns,45394
256bit,avx,16,16,bytes,2962463.0,ns,68091
256bit,avx,16,16,bytes,3972510.0,ns,90788
256bit,avx,16,16,bytes,5251724.0,ns,113485
256bit,avx,16,16,bytes,6137684.0,ns,136182
256bit,avx,16,16,bytes,6969520.0,ns,158879
256bit,avx,16,16,bytes,7884515.0,ns,181576
256bit,avx,16,16,bytes,8794061.0,ns,204273
256bit,avx,16,16,bytes,9756196.0,ns,226970
256bit,avx,16,16,bytes,10864432.0,ns,249667
256bit,avx,16,16,bytes,11892154.0,ns,272364
256bit,avx,16,16,bytes,12901851.0,ns,295061
256bit,avx,16,16,bytes,14679411.0,ns,317758
256bit,avx,16,16,bytes,15120777.0,ns,340455
256bit,avx,16,16,bytes,15656805.0,ns,363152
256bit,avx,16,16,bytes,16722770.0,ns,385849
256bit,avx,16,16,bytes,17775450.0,ns,408546
256bit,avx,16,16,bytes,18753757.0,ns,431243
256bit,avx,16,16,bytes,19768642.0,ns,453940
256bit,avx,16,16,bytes,20743444.0,ns,476637
256bit,avx,16,16,bytes,21765665.0,ns,499334
256bit,avx,16,16,bytes,22720877.0,ns,522031
256bit,avx,16,16,bytes,23715595.0,ns,544728
256bit,avx,16,16,bytes,24601374.0,ns,567425
256bit,avx,16,16,bytes,25676657.0,ns,590122
256bit,avx,16,16,bytes,26601131.0,ns,612819
256bit,avx,16,16,bytes,27566914.0,ns,635516
256bit,avx,16,16,bytes,28587992.0,ns,658213
256bit,avx,16,16,bytes,29548264.0,ns,680910
256bit,avx,16,16,bytes,30523365.0,ns,703607
256bit,avx,16,16,bytes,31512993.0,ns,726304
256bit,avx,16,16,bytes,32476151.0,ns,749001
256bit,avx,16,16,bytes,33498021.0,ns,771698
256bit,avx,16,16,bytes,34544018.0,ns,794395
256bit,avx,16,16,bytes,35511634.0,ns,817092
256bit,avx,16,16,bytes,36447910.0,ns,839789
256bit,avx,16,16,bytes,37477816.0,ns,862486
256bit,avx,16,16,bytes,38467685.0,ns,885183
256bit,avx,16,16,bytes,39368032.0,ns,907880
256bit,avx,16,16,bytes,40392367.0,ns,930577
256bit,avx,16,16,bytes,41417404.0,ns,953274
256bit,avx,16,16,bytes,42286992.0,ns,975971
256bit,avx,16,16,bytes,43280338.0,ns,998668
256bit,avx,16,16,bytes,44386620.0,ns,1021365
256bit,avx,16,16,bytes,45316724.0,ns,1044062
256bit,avx,16,16,bytes,46315280.0,ns,1066759
256bit,avx,16,16,bytes,47242058.0,ns,1089456
256bit,avx,16,16,bytes,48256634.0,ns,1112153
256bit,avx,16,16,bytes,49244758.0,ns,1134850
256bit,avx,16,16,bytes,50214981.0,ns,1157547
256bit,avx,16,16,bytes,51308839.0,ns,1180244
256bit,avx,16,16,bytes,52228242.0,ns,1202941
256bit,avx,16,16,bytes,53359893.0,ns,1225638
256bit,avx,16,16,bytes,54424055.0,ns,1248335
256bit,avx,16,16,bytes,55211285.0,ns,1271032
256bit,avx,16,16,bytes,56214550.0,ns,1293729
256bit,avx,16,16,bytes,57373353.0,ns,1316426
256bit,avx,16,16,bytes,58280312.0,ns,1339123
256bit,avx,16,16,bytes,59185859.0,ns,1361820
256bit,avx,16,16,bytes,60166191.0,ns,1384517
256bit,avx,16,16,bytes,61171419.0,ns,1407214
256bit,avx,16,16,bytes,61973517.0,ns,1429911
256bit,avx,16,16,bytes,63294806.0,ns,1452608
256bit,avx,16,16,bytes,64300782.0,ns,1475305
256bit,avx,16,16,bytes,64667416.0,ns,1498002
256bit,avx,16,16,bytes,65569163.0,ns,1520699
256bit,avx,16,16,bytes,66781801.0,ns,1543396
256bit,avx,16,16,bytes,67787481.0,ns,1566093
256bit,avx,16,16,bytes,68668661.0,ns,1588790
256bit,avx,16,16,bytes,69692525.0,ns,1611487
256bit,avx,16,16,bytes,70724734.0,ns,1634184
256bit,avx,16,16,bytes,71823924.0,ns,1656881
256bit,avx,16,16,bytes,73027063.0,ns,1679578
256bit,avx,16,16,bytes,73926808.0,ns,1702275
256bit,avx,16,16,bytes,74859455.0,ns,1724972
256bit,avx,16,16,bytes,75757871.0,ns,1747669
256bit,avx,16,16,bytes,76814889.0,ns,1770366
256bit,avx,16,16,bytes,77635813.0,ns,1793063
256bit,avx,16,16,bytes,78656309.0,ns,1815760
256bit,avx,16,16,bytes,79491473.0,ns,1838457
256bit,avx,16,16,bytes,80897210.0,ns,1861154
256bit,avx,16,16,bytes,81615195.0,ns,1883851
256bit,avx,16,16,bytes,82528649.0,ns,1906548
256bit,avx,16,16,bytes,84537181.0,ns,1929245
256bit,avx,16,16,bytes,84948602.0,ns,1951942
256bit,avx,16,16,bytes,85783594.0,ns,1974639
256bit,avx,16,16,bytes,86719337.0,ns,1997336
256bit,avx,16,16,bytes,87676585.0,ns,2020033
256bit,avx,16,16,bytes,88594474.0,ns,2042730
256bit,avx,16,16,bytes,89630213.0,ns,2065427
256bit,avx,16,16,bytes,90649779.0,ns,2088124
256bit,avx,16,16,bytes,91481272.0,ns,2110821
256bit,avx,16,16,bytes,92695702.0,ns,2133518
256bit,avx,16,16,bytes,93746790.0,ns,2156215
256bit,avx,16,16,bytes,94539284.0,ns,2178912
256bit,avx,16,16,bytes,95428507.0,ns,2201609
256bit,avx,16,16,bytes,96227518.0,ns,2224306
256bit,avx,16,16,bytes,97217547.0,ns,2247003
256bit,avx,16,16,bytes,98022978.0,ns,2269700
256bit,avx,1024,1024,bytes,1072437.0,ns,11749
256bit,avx,1024,1024,bytes,2158580.0,ns,23498
256bit,avx,1024,1024,bytes,3265263.0,ns,35247
256bit,avx,1024,1024,bytes,4361756.0,ns,46996
256bit,avx,1024,1024,bytes,5359399.0,ns,58745
256bit,avx,1024,1024,bytes,6127642.0,ns,70494
256bit,avx,1024,1024,bytes,6976763.0,ns,82243
256bit,avx,1024,1024,bytes,7846539.0,ns,93992
256bit,avx,1024,1024,bytes,8875152.0,ns,105741
256bit,avx,1024,1024,bytes,9878297.0,ns,117490
256bit,avx,1024,1024,bytes,10888403.0,ns,129239
256bit,avx,1024,1024,bytes,11920926.0,ns,140988
256bit,avx,1024,1024,bytes,12866868.0,ns,152737
256bit,avx,1024,1024,bytes,13837361.0,ns,164486
256bit,avx,1024,1024,bytes,14794795.0,ns,176235
256bit,avx,1024,1024,bytes,15753506.0,ns,187984
256bit,avx,1024,1024,bytes,16787279.0,ns,199733
256bit,avx,1024,1024,bytes,17774339.0,ns,211482
256bit,avx,1024,1024,bytes,18725706.0,ns,223231
256bit,avx,1024,1024,bytes,19668344.0,ns,234980
256bit,avx,1024,1024,bytes,20696537.0,ns,246729
256bit,avx,1024,1024,bytes,21698185.0,ns,258478
256bit,avx,1024,1024,bytes,22668598.0,ns,270227
256bit,avx,1024,1024,bytes,23744372.0,ns,281976
256bit,avx,1024,1024,bytes,24684004.0,ns,293725
256bit,avx,1024,1024,bytes,25648994.0,ns,305474
256bit,avx,1024,1024,bytes,26988964.0,ns,317223
256bit,avx,1024,1024,bytes,27710338.0,ns,328972
256bit,avx,1024,1024,bytes,28725437.0,ns,340721
256bit,avx,1024,1024,bytes,29980392.0,ns,352470
256bit,avx,1024,1024,bytes,30830993.0,ns,364219
256bit,avx,1024,1024,bytes,31766578.0,ns,375968
256bit,avx,1024,1024,bytes,32722962.0,ns,387717
256bit,avx,1024,1024,bytes,33627719.0,ns,399466
256bit,avx,1024,1024,bytes,34545758.0,ns,411215
256bit,avx,1024,1024,bytes,35500601.0,ns,422964
256bit,avx,1024,1024,bytes,36544552.0,ns,434713
256bit,avx,1024,1024,bytes,37732079.0,ns,446462
256bit,avx,1024,1024,bytes,38810590.0,ns,458211
256bit,avx,1024,1024,bytes,39413074.0,ns,469960
256bit,avx,1024,1024,bytes,40402442.0,ns,481709
256bit,avx,1024,1024,bytes,41323519.0,ns,493458
256bit,avx,1024,1024,bytes,42459937.0,ns,505207
256bit,avx,1024,1024,bytes,43360154.0,ns,516956
256bit,avx,1024,1024,bytes,44299497.0,ns,528705
256bit,avx,1024,1024,bytes,45100648.0,ns,540454
256bit,avx,1024,1024,bytes,45631350.0,ns,552203
256bit,avx,1024,1024,bytes,46957344.0,ns,563952
256bit,avx,1024,1024,bytes,47940690.0,ns,575701
256bit,avx,1024,1024,bytes,49088572.0,ns,587450
256bit,avx,1024,1024,bytes,49941156.0,ns,599199
256bit,avx,1024,1024,bytes,50967405.0,ns,610948
256bit,avx,1024,1024,bytes,51962463.0,ns,622697
256bit,avx,1024,1024,bytes,53113751.0,ns,634446
256bit,avx,1024,1024,bytes,54085856.0,ns,646195
256bit,avx,1024,1024,bytes,55076285.0,ns,657944
256bit,avx,1024,1024,bytes,56057487.0,ns,669693
256bit,avx,1024,1024,bytes,56972963.0,ns,681442
256bit,avx,1024,1024,bytes,57859364.0,ns,693191
256bit,avx,1024,1024,bytes,58798735.0,ns,704940
256bit,avx,1024,1024,bytes,60304113.0,ns,716689
256bit,avx,1024,1024,bytes,61051666.0,ns,728438
256bit,avx,1024,1024,bytes,62063539.0,ns,740187
256bit,avx,1024,1024,bytes,62916242.0,ns,751936
256bit,avx,1024,1024,bytes,63747626.0,ns,763685
256bit,avx,1024,1024,bytes,64759318.0,ns,775434
256bit,avx,1024,1024,bytes,65668811.0,ns,787183
256bit,avx,1024,1024,bytes,66733645.0,ns,798932
256bit,avx,1024,1024,bytes,68117898.0,ns,810681
256bit,avx,1024,1024,bytes,68802654.0,ns,822430
256bit,avx,1024,1024,bytes,69654566.0,ns,834179
256bit,avx,1024,1024,bytes,70768904.0,ns,845928
256bit,avx,1024,1024,bytes,71647860.0,ns,857677
256bit,avx,1024,1024,bytes,72747919.0,ns,869426
256bit,avx,1024,1024,bytes,74048303.0,ns,881175
256bit,avx,1024,1024,bytes,74691558.0,ns,892924
256bit,avx,1024,1024,bytes,75657170.0,ns,904673
256bit,avx,1024,1024,bytes,76641969.0,ns,916422
256bit,avx,1024,1024,bytes,77446732.0,ns,928171
256bit,avx,1024,1024,bytes,78394949.0,ns,939920
256bit,avx,1024,1024,bytes,79828655.0,ns,951669
256bit,avx,1024,1024,bytes,80813924.0,ns,963418
256bit,avx,1024,1024,bytes,82198495.0,ns,975167
256bit,avx,1024,1024,bytes,83055209.0,ns,986916
256bit,avx,1024,1024,bytes,83939906.0,ns,998665
256bit,avx,1024,1024,bytes,84946917.0,ns,1010414
256bit,avx,1024,1024,bytes,86061145.0,ns,1022163
256bit,avx,1024,1024,bytes,86786114.0,ns,1033912
256bit,avx,1024,1024,bytes,88024249.0,ns,1045661
256bit,avx,1024,1024,bytes,89021211.0,ns,1057410
256bit,avx,1024,1024,bytes,89799494.0,ns,1069159
256bit,avx,1024,1024,bytes,90693107.0,ns,1080908
256bit,avx,1024,1024,bytes,91659112.0,ns,1092657
256bit,avx,1024,1024,bytes,92686460.0,ns,1104406
256bit,avx,1024,1024,bytes,93991363.0,ns,1116155
256bit,avx,1024,1024,bytes,95016151.0,ns,1127904
256bit,avx,1024,1024,bytes,95945872.0,ns,1139653
256bit,avx,1024,1024,bytes,97269891.0,ns,1151402
256bit,avx,1024,1024,bytes,97728753.0,ns,1163151
256bit,avx,1024,1024,bytes,98758967.0,ns,1174900
256bit,avx,65536,65536,bytes,981702.0,ns,281
256bit,avx,65536,65536,bytes,1966782.0,ns,562
256bit,avx,65536,65536,bytes,2961830.0,ns,843
256bit,avx,65536,65536,bytes,3980984.0,ns,1124
256bit,avx,65536,65536,bytes,5113336.0,ns,1405
256bit,avx,65536,65536,bytes,6030375.0,ns,1686
256bit,avx,65536,65536,bytes,6900964.0,ns,1967
256bit,avx,65536,65536,bytes,7887015.0,ns,2248
256bit,avx,65536,65536,bytes,8983007.0,ns,2529
256bit,avx,65536,65536,bytes,10013303.0,ns,2810
256bit,avx,65536,65536,bytes,10987882.0,ns,3091
256bit,avx,65536,65536,bytes,11974313.0,ns,3372
256bit,avx,65536,65536,bytes,13028551.0,ns,3653
256bit,avx,65536,65536,bytes,13531430.0,ns,3934
256bit,avx,65536,65536,bytes,14595339.0,ns,4215
256bit,avx,65536,65536,bytes,15562765.0,ns,4496
256bit,avx,65536,65536,bytes,16752047.0,ns,4777
256bit,avx,65536,65536,bytes,17671078.0,ns,5058
256bit,avx,65536,65536,bytes,18737283.0,ns,5339
256bit,avx,65536,65536,bytes,19721390.0,ns,5620
256bit,avx,65536,65536,bytes,20637788.0,ns,5901
256bit,avx,65536,65536,bytes,21622706.0,ns,6182
256bit,avx,65536,65536,bytes,22540436.0,ns,6463
256bit,avx,65536,65536,bytes,23674522.0,ns,6744
256bit,avx,65536,65536,bytes,24602490.0,ns,7025
256bit,avx,65536,65536,bytes,25548746.0,ns,7306
256bit,avx,65536,65536,bytes,26583891.0,ns,7587
256bit,avx,65536,65536,bytes,27553891.0,ns,7868
256bit,avx,65536,65536,bytes,28578365.0,ns,8149
256bit,avx,65536,65536,bytes,29471239.0,ns,8430
256bit,avx,65536,65536,bytes,30457970.0,ns,8711
256bit,avx,65536,65536,bytes,31445553.0,ns,8992
256bit,avx,65536,65536,bytes,32487593.0,ns,9273
256bit,avx,65536,65536,bytes,33515354.0,ns,9554
256bit,avx,65536,65536,bytes,36135924.0,ns,9835
256bit,avx,65536,65536,bytes,35247656.0,ns,10116
256bit,avx,65536,65536,bytes,36467915.0,ns,10397
256bit,avx,65536,65536,bytes,37526977.0,ns,10678
256bit,avx,65536,65536,bytes,38582120.0,ns,10959
256bit,avx,65536,65536,bytes,39471486.0,ns,11240
256bit,avx,65536,65536,bytes,40490951.0,ns,11521
256bit,avx,65536,65536,bytes,41085300.0,ns,11802
256bit,avx,65536,65536,bytes,41904723.0,ns,12083
256bit,avx,65536,65536,bytes,43262987.0,ns,12364
256bit,avx,65536,65536,bytes,44179454.0,ns,12645
256bit,avx,65536,65536,bytes,45173400.0,ns,12926
256bit,avx,65536,65536,bytes,46291404.0,ns,13207
256bit,avx,65536,65536,bytes,47187583.0,ns,13488
256bit,avx,65536,65536,bytes,48215344.0,ns,13769
256bit,avx,65536,65536,bytes,49161349.0,ns,14050
256bit,avx,65536,65536,bytes,49869521.0,ns,14331
256bit,avx,65536,65536,bytes,52071218.0,ns,14612
256bit,avx,65536,65536,bytes,52450236.0,ns,14893
256bit,avx,65536,65536,bytes,53599930.0,ns,15174
256bit,avx,65536,65536,bytes,54968946.0,ns,15455
256bit,avx,65536,65536,bytes,55846900.0,ns,15736
256bit,avx,65536,65536,bytes,56434607.0,ns,16017
256bit,avx,65536,65536,bytes,57238800.0,ns,16298
256bit,avx,65536,65536,bytes,58310223.0,ns,16579
256bit,avx,65536,65536,bytes,59638531.0,ns,16860
256bit,avx,65536,65536,bytes,60405082.0,ns,17141
256bit,avx,65536,65536,bytes,61242556.0,ns,17422
256bit,avx,65536,65536,bytes,62496302.0,ns,17703
256bit,avx,65536,65536,bytes,63413229.0,ns,17984
256bit,avx,65536,65536,bytes,65222239.0,ns,18265
256bit,avx,65536,65536,bytes,65756734.0,ns,18546
256bit,avx,65536,65536,bytes,66384909.0,ns,18827
256bit,avx,65536,65536,bytes,67648081.0,ns,19108
256bit,avx,65536,65536,bytes,68815870.0,ns,19389
256bit,avx,65536,65536,bytes,69567041.0,ns,19670
256bit,avx,65536,65536,bytes,70540188.0,ns,19951
256bit,avx,65536,65536,bytes,71244057.0,ns,20232
256bit,avx,65536,65536,bytes,72101701.0,ns,20513
256bit,avx,65536,65536,bytes,73511937.0,ns,20794
256bit,avx,65536,65536,bytes,74048546.0,ns,21075
256bit,avx,65536,65536,bytes,75068121.0,ns,21356
256bit,avx,65536,65536,bytes,76180544.0,ns,21637
256bit,avx,65536,65536,bytes,77107560.0,ns,21918
256bit,avx,65536,65536,bytes,77971108.0,ns,22199
256bit,avx,65536,65536,bytes,79364651.0,ns,22480
256bit,avx,65536,65536,bytes,80021039.0,ns,22761
256bit,avx,65536,65536,bytes,81462784.0,ns,23042
256bit,avx,65536,65536,bytes,82759952.0,ns,23323
256bit,avx,65536,65536,bytes,82903707.0,ns,23604
256bit,avx,65536,65536,bytes,83888115.0,ns,23885
256bit,avx,65536,65536,bytes,84941941.0,ns,24166
256bit,avx,65536,65536,bytes,84785536.0,ns,24447
256bit,avx,65536,65536,bytes,86378751.0,ns,24728
256bit,avx,65536,65536,bytes,87245494.0,ns,25009
256bit,avx,65536,65536,bytes,88404396.0,ns,25290
256bit,avx,65536,65536,bytes,89447596.0,ns,25571
256bit,avx,65536,65536,bytes,90396826.0,ns,25852
256bit,avx,65536,65536,bytes,91269520.0,ns,26133
256bit,avx,65536,65536,bytes,92552262.0,ns,26414
256bit,avx,65536,65536,bytes,93191465.0,ns,26695
256bit,avx,65536,65536,bytes,95007007.0,ns,26976
256bit,avx,65536,65536,bytes,95681272.0,ns,27257
256bit,avx,65536,65536,bytes,97065837.0,ns,27538
256bit,avx,65536,65536,bytes,97876470.0,ns,27819
256bit,avx,65536,65536,bytes,99061043.0,ns,28100
256bit,avx,4096,4096,bytes,1004827.0,ns,3990
256bit,avx,4096,4096,bytes,1968275.0,ns,7980
256bit,avx,4096,4096,bytes,2985846.0,ns,11970
256bit,avx,4096,4096,bytes,4103220.0,ns,15960
256bit,avx,4096,4096,bytes,5310636.0,ns,19950
256bit,avx,4096,4096,bytes,6153983.0,ns,23940
256bit,avx,4096,4096,bytes,6908540.0,ns,27930
256bit,avx,4096,4096,bytes,7871035.0,ns,31920
256bit,avx,4096,4096,bytes,8942291.0,ns,35910
256bit,avx,4096,4096,bytes,9903314.0,ns,39900
256bit,avx,4096,4096,bytes,10944711.0,ns,43890
256bit,avx,4096,4096,bytes,11891978.0,ns,47880
256bit,avx,4096,4096,bytes,12843212.0,ns,51870
256bit,avx,4096,4096,bytes,13798374.0,ns,55860
256bit,avx,4096,4096,bytes,14753313.0,ns,59850
256bit,avx,4096,4096,bytes,15749657.0,ns,63840
256bit,avx,4096,4096,bytes,16742190.0,ns,67830
256bit,avx,4096,4096,bytes,17736758.0,ns,71820
256bit,avx,4096,4096,bytes,18638596.0,ns,75810
256bit,avx,4096,4096,bytes,19651771.0,ns,79800
256bit,avx,4096,4096,bytes,20640617.0,ns,83790
256bit,avx,4096,4096,bytes,21608672.0,ns,87780
256bit,avx,4096,4096,bytes,22591458.0,ns,91770
256bit,avx,4096,4096,bytes,23601245.0,ns,95760
256bit,avx,4096,4096,bytes,24617072.0,ns,99750
256bit,avx,4096,4096,bytes,25555834.0,ns,103740
256bit,avx,4096,4096,bytes,26514312.0,ns,107730
256bit,avx,4096,4096,bytes,27582050.0,ns,111720
256bit,avx,4096,4096,bytes,28362480.0,ns,115710
256bit,avx,4096,4096,bytes,29686124.0,ns,119700
256bit,avx,4096,4096,bytes,31077414.0,ns,123690
256bit,avx,4096,4096,bytes,31933976.0,ns,127680
256bit,avx,4096,4096,bytes,32938474.0,ns,131670
256bit,avx,4096,4096,bytes,33903703.0,ns,135660
256bit,avx,4096,4096,bytes,34872783.0,ns,139650
256bit,avx,4096,4096,bytes,35564188.0,ns,143640
256bit,avx,4096,4096,bytes,36641786.0,ns,147630
256bit,avx,4096,4096,bytes,37769417.0,ns,151620
256bit,avx,4096,4096,bytes,38518085.0,ns,155610
256bit,avx,4096,4096,bytes,39605429.0,ns,159600
256bit,avx,4096,4096,bytes,40460219.0,ns,163590
256bit,avx,4096,4096,bytes,41505853.0,ns,167580
256bit,avx,4096,4096,bytes,42500191.0,ns,171570
256bit,avx,4096,4096,bytes,43441818.0,ns,175560
256bit,avx,4096,4096,bytes,44646126.0,ns,179550
256bit,avx,4096,4096,bytes,45638469.0,ns,183540
256bit,avx,4096,4096,bytes,46559728.0,ns,187530
256bit,avx,4096,4096,bytes,47516190.0,ns,191520
256bit,avx,4096,4096,bytes,48412750.0,ns,195510
256bit,avx,4096,4096,bytes,49455670.0,ns,199500
256bit,avx,4096,4096,bytes,50438257.0,ns,203490
256bit,avx,4096,4096,bytes,51478860.0,ns,207480
256bit,avx,4096,4096,bytes,52528384.0,ns,211470
256bit,avx,4096,4096,bytes,53913070.0,ns,215460
256bit,avx,4096,4096,bytes,54888920.0,ns,219450
256bit,avx,4096,4096,bytes,55462992.0,ns,223440
256bit,avx,4096,4096,bytes,56260022.0,ns,227430
256bit,avx,4096,4096,bytes,57327312.0,ns,231420
256bit,avx,4096,4096,b
Download .txt
gitextract_xno9aspu/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       └── main.yml
├── .gitignore
├── .gitmodules
├── CHANGELOG.md
├── Cargo.toml
├── LICENSE.txt
├── README.md
├── assets/
│   ├── analysis.R
│   ├── avx-crash-1
│   ├── highway.csv
│   └── portable-crash-1
├── benches/
│   └── bench_hashes.rs
├── compare/
│   ├── Cargo.toml
│   └── benches/
│       └── bench_hashes.rs
├── examples/
│   ├── hwysum.rs
│   └── no_panic.rs
├── fuzz/
│   ├── .gitignore
│   ├── Cargo.toml
│   ├── build.rs
│   └── fuzz_targets/
│       └── fuzz_highway.rs
├── release.toml
├── src/
│   ├── aarch64.rs
│   ├── builder.rs
│   ├── hash.rs
│   ├── internal.rs
│   ├── key.rs
│   ├── lib.rs
│   ├── macros.rs
│   ├── portable.rs
│   ├── traits.rs
│   ├── wasm.rs
│   └── x86/
│       ├── avx.rs
│       ├── macros.rs
│       ├── mod.rs
│       ├── sse.rs
│       ├── v2x64u.rs
│       └── v4x64u.rs
└── tests/
    ├── aarch64.rs
    ├── hash.rs
    ├── properties.rs
    ├── traits.rs
    └── wasm.rs
Download .txt
SYMBOL INDEX (354 symbols across 23 files)

FILE: benches/bench_hashes.rs
  function bit64_hash (line 6) | fn bit64_hash(c: &mut Criterion) {
  function bit256_hash (line 44) | fn bit256_hash(c: &mut Criterion) {

FILE: compare/benches/bench_hashes.rs
  function bit64_hash (line 10) | fn bit64_hash(c: &mut Criterion) {
  function bit256_hash (line 94) | fn bit256_hash(c: &mut Criterion) {

FILE: examples/hwysum.rs
  function main (line 9) | fn main() {

FILE: examples/no_panic.rs
  function hash_data (line 8) | fn hash_data<H: HighwayHash>(mut hasher: H, data: &[u8]) -> u64 {
  function main (line 14) | fn main() {

FILE: fuzz/build.rs
  function main (line 1) | fn main() {

FILE: fuzz/fuzz_targets/fuzz_highway.rs
  function HighwayHash64 (line 14) | fn HighwayHash64(data: *const u8, size: size_t, key: *const u64) -> u64;
  type FuzzKey (line 18) | pub struct FuzzKey {

FILE: src/aarch64.rs
  type NeonHash (line 11) | pub struct NeonHash {
    method force_new (line 84) | pub unsafe fn force_new(key: Key) -> Self {
    method force_from_checkpoint (line 111) | pub unsafe fn force_from_checkpoint(data: [u8; 164]) -> Self {
    method zipper_merge (line 126) | unsafe fn zipper_merge(v: &V2x64U) -> V2x64U {
    method update (line 133) | unsafe fn update(&mut self, (packetH, packetL): (V2x64U, V2x64U)) {
    method permute_and_update (line 162) | unsafe fn permute_and_update(&mut self) {
    method finalize64 (line 168) | pub(crate) unsafe fn finalize64(&mut self) -> u64 {
    method finalize128 (line 183) | pub(crate) unsafe fn finalize128(&mut self) -> [u64; 2] {
    method finalize256 (line 198) | pub(crate) unsafe fn finalize256(&mut self) -> [u64; 4] {
    method modular_reduction (line 218) | unsafe fn modular_reduction(x: &V2x64U, init: &V2x64U) -> V2x64U {
    method load_multiple_of_four (line 231) | unsafe fn load_multiple_of_four(bytes: &[u8], size: u64) -> V2x64U {
    method remainder (line 252) | unsafe fn remainder(bytes: &[u8]) -> (V2x64U, V2x64U) {
    method update_remainder (line 272) | unsafe fn update_remainder(&mut self) {
    method rotate_32_by (line 282) | unsafe fn rotate_32_by(&mut self, count: i32) {
    method data_to_lanes (line 297) | unsafe fn data_to_lanes(packet: &[u8]) -> (V2x64U, V2x64U) {
    method append (line 305) | unsafe fn append(&mut self, data: &[u8]) {
  method append (line 25) | fn append(&mut self, data: &[u8]) {
  method finalize64 (line 32) | fn finalize64(mut self) -> u64 {
  method finalize128 (line 37) | fn finalize128(mut self) -> [u64; 2] {
  method finalize256 (line 42) | fn finalize256(mut self) -> [u64; 4] {
  method checkpoint (line 47) | fn checkpoint(&self) -> [u8; 164] {
  function take (line 325) | fn take<const N: usize>(data: &[u8]) -> [u8; N] {
  function _mm_slli_si128_8 (line 331) | unsafe fn _mm_slli_si128_8(a: uint64x2_t) -> uint64x2_t {
  type V2x64U (line 339) | pub struct V2x64U(pub uint64x2_t);
    method fmt (line 348) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
    method zeroed (line 355) | unsafe fn zeroed() -> Self {
    method new (line 360) | pub unsafe fn new(hi: u64, low: u64) -> Self {
    method as_arr (line 364) | pub unsafe fn as_arr(&self) -> [u64; 2] {
    method rotate_by_32 (line 371) | pub unsafe fn rotate_by_32(&self) -> Self {
    method and_not (line 378) | pub unsafe fn and_not(&self, neg_mask: &V2x64U) -> Self {
    method add_assign (line 383) | unsafe fn add_assign(&mut self, other: Self) {
    method sub_assign (line 388) | unsafe fn sub_assign(&mut self, other: Self) {
    method bitand_assign (line 393) | unsafe fn bitand_assign(&mut self, other: Self) {
    method bitor_assign (line 398) | unsafe fn bitor_assign(&mut self, other: Self) {
    method bitxor_assign (line 403) | unsafe fn bitxor_assign(&mut self, other: Self) {
    method from (line 410) | fn from(v: uint64x2_t) -> Self {
    method from (line 417) | fn from(v: uint32x4_t) -> Self {
    method from (line 424) | fn from(v: int32x4_t) -> Self {
    method from (line 431) | fn from(v: uint16x8_t) -> Self {
    method from (line 438) | fn from(v: uint8x16_t) -> Self {
  method default (line 342) | fn default() -> Self {
  method add_assign (line 445) | fn add_assign(&mut self, other: Self) {
  method sub_assign (line 452) | fn sub_assign(&mut self, other: Self) {
  method bitand_assign (line 459) | fn bitand_assign(&mut self, other: Self) {
  type Output (line 465) | type Output = Self;
  method bitand (line 467) | fn bitand(self, other: Self) -> Self {
  method bitor_assign (line 476) | fn bitor_assign(&mut self, other: Self) {
  type Output (line 482) | type Output = Self;
  method bitor (line 484) | fn bitor(self, other: Self) -> Self {
  method bitxor_assign (line 493) | fn bitxor_assign(&mut self, other: Self) {
  type Output (line 499) | type Output = Self;
  method add (line 502) | fn add(self, other: Self) -> Self {
  type Output (line 510) | type Output = Self;
  method bitxor (line 513) | fn bitxor(self, other: Self) -> Self {
  function test_as_arr (line 525) | fn test_as_arr() {
  function test_rotate_by_32 (line 534) | fn test_rotate_by_32() {
  function test_add (line 544) | fn test_add() {
  function test_mm_slli_si128_8 (line 554) | fn test_mm_slli_si128_8() {

FILE: src/builder.rs
  type HighwayHasher (line 39) | pub struct HighwayHasher {
    method new (line 147) | pub fn new(key: Key) -> Self {
    method from_checkpoint (line 223) | pub fn from_checkpoint(data: [u8; 164]) -> Self {
    method append (line 297) | fn append(&mut self, data: &[u8]) {
    method finalize64 (line 316) | fn finalize64(&mut self) -> u64 {
    method finalize128 (line 335) | fn finalize128(&mut self) -> [u64; 2] {
    method finalize256 (line 354) | fn finalize256(&mut self) -> [u64; 4] {
    method checkpoint (line 373) | fn checkpoint(&self) -> [u8; 164] {
  method fmt (line 45) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
  method clone (line 71) | fn clone(&self) -> Self {
  method append (line 119) | fn append(&mut self, data: &[u8]) {
  method finalize64 (line 124) | fn finalize64(mut self) -> u64 {
  method finalize128 (line 129) | fn finalize128(mut self) -> [u64; 2] {
  method finalize256 (line 134) | fn finalize256(mut self) -> [u64; 4] {
  method checkpoint (line 139) | fn checkpoint(&self) -> [u8; 164] {
  method default (line 394) | fn default() -> Self {
  function test_has_debug_representation_with_data (line 407) | fn test_has_debug_representation_with_data() {

FILE: src/hash.rs
  type HighwayBuildHasher (line 7) | pub struct HighwayBuildHasher {
    method new (line 14) | pub fn new(key: Key) -> Self {
  type Hasher (line 20) | type Hasher = HighwayHasher;
  method build_hasher (line 22) | fn build_hasher(&self) -> Self::Hasher {

FILE: src/internal.rs
  function unordered_load3 (line 6) | pub fn unordered_load3(from: &[u8]) -> u64 {
  constant PACKET_SIZE (line 18) | pub const PACKET_SIZE: usize = 32;
  type HashPacket (line 25) | pub struct HashPacket {
    method len (line 32) | pub const fn len(&self) -> usize {
    method is_empty (line 37) | pub const fn is_empty(&self) -> bool {
    method as_slice (line 42) | pub fn as_slice(&self) -> &[u8] {
    method inner (line 48) | pub const fn inner(&self) -> &[u8; PACKET_SIZE] {
    method fill (line 53) | pub fn fill<'a>(&mut self, data: &'a [u8]) -> Option<&'a [u8]> {
    method set_to (line 68) | pub fn set_to(&mut self, data: &[u8]) {
  function test_hash_packet (line 85) | fn test_hash_packet() {
  function test_hash_cusp_full_packet (line 97) | fn test_hash_cusp_full_packet() {
  function test_hash_packet_set_to (line 104) | fn test_hash_packet_set_to() {

FILE: src/key.rs
  type Key (line 6) | pub struct Key(pub [u64; 4]);
    type Output (line 9) | type Output = u64;
    method index (line 10) | fn index(&self, index: usize) -> &u64 {

FILE: src/portable.rs
  type PortableHash (line 14) | pub struct PortableHash {
    method new (line 67) | pub fn new(key: Key) -> Self {
    method from_checkpoint (line 102) | pub fn from_checkpoint(data: [u8; 164]) -> Self {
    method finalize64 (line 133) | pub(crate) fn finalize64(&mut self) -> u64 {
    method finalize128 (line 148) | pub(crate) fn finalize128(&mut self) -> [u64; 2] {
    method finalize256 (line 170) | pub(crate) fn finalize256(&mut self) -> [u64; 4] {
    method module_reduction (line 195) | const fn module_reduction(a3_unmasked: u64, a2: u64, a1: u64, a0: u64)...
    method permute (line 202) | const fn permute(v: &[u64; 4]) -> [u64; 4] {
    method permute_and_update (line 211) | fn permute_and_update(&mut self) {
    method update (line 216) | fn update(&mut self, lanes: [u64; 4]) {
    method zipper_merge_and_add (line 243) | fn zipper_merge_and_add(v1: u64, v0: u64, lane: &mut [u64; 4], add1: u...
    method data_to_lanes (line 263) | fn data_to_lanes(d: &[u8]) -> [u64; 4] {
    method rotate_32_by (line 271) | fn rotate_32_by(count: u64, lanes: &mut [u64; 4]) {
    method update_lanes (line 280) | fn update_lanes(&mut self, size: u64) {
    method remainder (line 288) | fn remainder(bytes: &[u8]) -> [u8; 32] {
    method update_remainder (line 318) | fn update_remainder(&mut self) {
    method append (line 325) | fn append(&mut self, data: &[u8]) {
  method append (line 24) | fn append(&mut self, data: &[u8]) {
  method finalize64 (line 29) | fn finalize64(mut self) -> u64 {
  method finalize128 (line 34) | fn finalize128(mut self) -> [u64; 2] {
  method finalize256 (line 39) | fn finalize256(mut self) -> [u64; 4] {
  method checkpoint (line 44) | fn checkpoint(&self) -> [u8; 164] {

FILE: src/traits.rs
  type HighwayHash (line 2) | pub trait HighwayHash: Sized {
    method hash64 (line 5) | fn hash64(mut self, data: &[u8]) -> u64 {
    method hash128 (line 12) | fn hash128(mut self, data: &[u8]) -> [u64; 2] {
    method hash256 (line 19) | fn hash256(mut self, data: &[u8]) -> [u64; 4] {
    method append (line 28) | fn append(&mut self, data: &[u8]);
    method finalize64 (line 31) | fn finalize64(self) -> u64;
    method finalize128 (line 34) | fn finalize128(self) -> [u64; 2];
    method finalize256 (line 37) | fn finalize256(self) -> [u64; 4];
    method checkpoint (line 43) | fn checkpoint(&self) -> [u8; 164];

FILE: src/wasm.rs
  type WasmHash (line 11) | pub struct WasmHash {
    method new (line 76) | pub fn new(key: Key) -> Self {
    method from_checkpoint (line 99) | pub fn from_checkpoint(data: [u8; 164]) -> Self {
    method zipper_merge (line 114) | fn zipper_merge(v: &V2x64U) -> V2x64U {
    method update (line 123) | fn update(&mut self, (packetH, packetL): (V2x64U, V2x64U)) {
    method permute_and_update (line 140) | fn permute_and_update(&mut self) {
    method finalize64 (line 146) | pub(crate) fn finalize64(&mut self) -> u64 {
    method finalize128 (line 162) | pub(crate) fn finalize128(&mut self) -> [u64; 2] {
    method finalize256 (line 180) | pub(crate) fn finalize256(&mut self) -> [u64; 4] {
    method modular_reduction (line 204) | fn modular_reduction(x: &V2x64U, init: &V2x64U) -> V2x64U {
    method load_multiple_of_four (line 218) | fn load_multiple_of_four(bytes: &[u8]) -> V2x64U {
    method remainder (line 239) | fn remainder(bytes: &[u8]) -> (V2x64U, V2x64U) {
    method update_remainder (line 268) | fn update_remainder(&mut self) {
    method rotate_32_by (line 278) | fn rotate_32_by(&mut self, count: u32) {
    method data_to_lanes (line 293) | fn data_to_lanes(packet: &[u8]) -> (V2x64U, V2x64U) {
    method append (line 304) | fn append(&mut self, data: &[u8]) {
  method append (line 25) | fn append(&mut self, data: &[u8]) {
  method finalize64 (line 30) | fn finalize64(mut self) -> u64 {
  method finalize128 (line 35) | fn finalize128(mut self) -> [u64; 2] {
  method finalize256 (line 40) | fn finalize256(mut self) -> [u64; 4] {
  method checkpoint (line 45) | fn checkpoint(&self) -> [u8; 164] {
  function le_u64 (line 328) | fn le_u64(x: &[u8]) -> u64 {
  function _mm_mul_epu32 (line 333) | fn _mm_mul_epu32(a: wasm32::v128, b: wasm32::v128) -> wasm32::v128 {
  function _mm_srli_epi64 (line 341) | fn _mm_srli_epi64(a: wasm32::v128, amt: u32) -> wasm32::v128 {
  function _mm_srl_epi32 (line 346) | fn _mm_srl_epi32(a: wasm32::v128, amt: u32) -> wasm32::v128 {
  function _mm_sll_epi32 (line 351) | fn _mm_sll_epi32(a: wasm32::v128, amt: u32) -> wasm32::v128 {
  function _mm_slli_si128_8 (line 356) | fn _mm_slli_si128_8(a: wasm32::v128) -> wasm32::v128 {
  type V2x64U (line 363) | pub struct V2x64U(pub v128);
    method fmt (line 372) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
    method zeroed (line 379) | fn zeroed() -> Self {
    method new (line 384) | pub fn new(hi: u64, low: u64) -> Self {
    method as_arr (line 388) | fn as_arr(&self) -> [u64; 2] {
    method rotate_by_32 (line 395) | pub fn rotate_by_32(&self) -> Self {
    method and_not (line 402) | pub fn and_not(&self, neg_mask: &V2x64U) -> Self {
    method add_assign (line 407) | fn add_assign(&mut self, other: Self) {
    method sub_assign (line 412) | fn sub_assign(&mut self, other: Self) {
    method bitand_assign (line 417) | fn bitand_assign(&mut self, other: Self) {
    method bitor_assign (line 422) | fn bitor_assign(&mut self, other: Self) {
    method bitxor_assign (line 427) | fn bitxor_assign(&mut self, other: Self) {
    method shl_assign (line 432) | fn shl_assign(&mut self, count: u32) {
    method shr_assign (line 437) | fn shr_assign(&mut self, count: u32) {
    method from (line 444) | fn from(v: v128) -> Self {
    method shl_assign (line 528) | fn shl_assign(&mut self, count: u32) {
    method shr_assign (line 535) | fn shr_assign(&mut self, count: u32) {
  method default (line 366) | fn default() -> Self {
  method add_assign (line 451) | fn add_assign(&mut self, other: Self) {
  method sub_assign (line 458) | fn sub_assign(&mut self, other: Self) {
  method bitand_assign (line 465) | fn bitand_assign(&mut self, other: Self) {
  type Output (line 471) | type Output = Self;
  method bitand (line 473) | fn bitand(self, other: Self) -> Self {
  method bitor_assign (line 482) | fn bitor_assign(&mut self, other: Self) {
  type Output (line 488) | type Output = Self;
  method bitor (line 490) | fn bitor(self, other: Self) -> Self {
  method bitxor_assign (line 499) | fn bitxor_assign(&mut self, other: Self) {
  type Output (line 505) | type Output = Self;
  method add (line 508) | fn add(self, other: Self) -> Self {
  type Output (line 516) | type Output = Self;
  method bitxor (line 519) | fn bitxor(self, other: Self) -> Self {
  function test_as_arr (line 546) | fn test_as_arr() {
  function test_rotate_by_32 (line 553) | fn test_rotate_by_32() {
  function test_add (line 561) | fn test_add() {
  function test_mm_srli_epi64 (line 569) | fn test_mm_srli_epi64() {
  function test_zipper_merge (line 576) | fn test_zipper_merge() {
  function test_mm_mul_epu32 (line 583) | fn test_mm_mul_epu32() {
  function test_mm_slli_si128_8 (line 591) | fn test_mm_slli_si128_8() {

FILE: src/x86/avx.rs
  type AvxHash (line 13) | pub struct AvxHash {
    method force_new (line 67) | pub unsafe fn force_new(key: Key) -> Self {
    method new (line 94) | pub fn new(key: Key) -> Option<Self> {
    method force_from_checkpoint (line 118) | pub unsafe fn force_from_checkpoint(data: [u8; 164]) -> Self {
    method from_checkpoint (line 151) | pub fn from_checkpoint(data: [u8; 164]) -> Option<Self> {
    method finalize64 (line 169) | pub(crate) unsafe fn finalize64(&mut self) -> u64 {
    method finalize128 (line 189) | pub(crate) unsafe fn finalize128(&mut self) -> [u64; 2] {
    method finalize256 (line 208) | pub(crate) unsafe fn finalize256(&mut self) -> [u64; 4] {
    method data_to_lanes (line 228) | unsafe fn data_to_lanes(packet: &[u8]) -> V4x64U {
    method remainder (line 233) | unsafe fn remainder(bytes: &[u8]) -> V4x64U {
    method update_remainder (line 262) | unsafe fn update_remainder(&mut self) {
    method zipper_merge (line 277) | unsafe fn zipper_merge(v: &V4x64U) -> V4x64U {
    method update (line 284) | unsafe fn update(&mut self, packet: V4x64U) {
    method permute (line 295) | unsafe fn permute(v: &V4x64U) -> V4x64U {
    method modular_reduction (line 307) | unsafe fn modular_reduction(x: &V4x64U, init: &V4x64U) -> V4x64U {
    method append (line 324) | unsafe fn append(&mut self, data: &[u8]) {
  method append (line 23) | fn append(&mut self, data: &[u8]) {
  method finalize64 (line 30) | fn finalize64(mut self) -> u64 {
  method finalize128 (line 35) | fn finalize128(mut self) -> [u64; 2] {
  method finalize256 (line 40) | fn finalize256(mut self) -> [u64; 4] {
  method checkpoint (line 45) | fn checkpoint(&self) -> [u8; 164] {

FILE: src/x86/sse.rs
  type SseHash (line 13) | pub struct SseHash {
    method force_new (line 87) | pub unsafe fn force_new(key: Key) -> Self {
    method new (line 111) | pub fn new(key: Key) -> Option<Self> {
    method force_from_checkpoint (line 135) | pub unsafe fn force_from_checkpoint(data: [u8; 164]) -> Self {
    method from_checkpoint (line 152) | pub fn from_checkpoint(data: [u8; 164]) -> Option<Self> {
    method zipper_merge (line 170) | unsafe fn zipper_merge(v: &V2x64U) -> V2x64U {
    method update (line 175) | unsafe fn update(&mut self, (packetH, packetL): (V2x64U, V2x64U)) {
    method permute_and_update (line 193) | unsafe fn permute_and_update(&mut self) {
    method finalize64 (line 200) | pub(crate) unsafe fn finalize64(&mut self) -> u64 {
    method finalize128 (line 218) | pub(crate) unsafe fn finalize128(&mut self) -> [u64; 2] {
    method finalize256 (line 236) | pub(crate) unsafe fn finalize256(&mut self) -> [u64; 4] {
    method modular_reduction (line 259) | unsafe fn modular_reduction(x: &V2x64U, init: &V2x64U) -> V2x64U {
    method load_multiple_of_four (line 273) | unsafe fn load_multiple_of_four(bytes: &[u8]) -> V2x64U {
    method remainder (line 294) | unsafe fn remainder(bytes: &[u8]) -> (V2x64U, V2x64U) {
    method update_remainder (line 315) | unsafe fn update_remainder(&mut self) {
    method rotate_32_by (line 326) | unsafe fn rotate_32_by(&mut self, count: i64) {
    method data_to_lanes (line 341) | unsafe fn data_to_lanes(packet: &[u8]) -> (V2x64U, V2x64U) {
    method append (line 350) | unsafe fn append(&mut self, data: &[u8]) {
  method append (line 27) | fn append(&mut self, data: &[u8]) {
  method finalize64 (line 34) | fn finalize64(mut self) -> u64 {
  method finalize128 (line 39) | fn finalize128(mut self) -> [u64; 2] {
  method finalize256 (line 44) | fn finalize256(mut self) -> [u64; 4] {
  method checkpoint (line 49) | fn checkpoint(&self) -> [u8; 164] {
  function test_zipper_merge (line 378) | fn test_zipper_merge() {

FILE: src/x86/v2x64u.rs
  type V2x64U (line 9) | pub struct V2x64U(pub __m128i);
    method fmt (line 19) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
    method zeroed (line 27) | unsafe fn zeroed() -> Self {
    method new (line 33) | pub unsafe fn new(hi: u64, low: u64) -> Self {
    method as_arr (line 38) | pub unsafe fn as_arr(&self) -> [u64; 2] {
    method rotate_by_32 (line 46) | pub unsafe fn rotate_by_32(&self) -> Self {
    method shuffle (line 52) | pub unsafe fn shuffle(&self, mask: &V2x64U) -> Self {
    method and_not (line 58) | pub unsafe fn and_not(&self, neg_mask: &V2x64U) -> Self {
    method add_assign (line 64) | unsafe fn add_assign(&mut self, other: Self) {
    method sub_assign (line 70) | unsafe fn sub_assign(&mut self, other: Self) {
    method bitand_assign (line 76) | unsafe fn bitand_assign(&mut self, other: Self) {
    method bitor_assign (line 82) | unsafe fn bitor_assign(&mut self, other: Self) {
    method bitxor_assign (line 88) | unsafe fn bitxor_assign(&mut self, other: Self) {
    method shl_assign (line 94) | unsafe fn shl_assign(&mut self, count: __m128i) {
    method shr_assign (line 100) | unsafe fn shr_assign(&mut self, count: __m128i) {
    method from (line 107) | fn from(v: __m128i) -> Self {
    method shl_assign (line 191) | fn shl_assign(&mut self, count: __m128i) {
    method shr_assign (line 198) | fn shr_assign(&mut self, count: __m128i) {
  method default (line 13) | fn default() -> Self {
  method add_assign (line 114) | fn add_assign(&mut self, other: Self) {
  method sub_assign (line 121) | fn sub_assign(&mut self, other: Self) {
  method bitand_assign (line 128) | fn bitand_assign(&mut self, other: Self) {
  type Output (line 134) | type Output = Self;
  method bitand (line 136) | fn bitand(self, other: Self) -> Self {
  method bitor_assign (line 145) | fn bitor_assign(&mut self, other: Self) {
  type Output (line 151) | type Output = Self;
  method bitor (line 153) | fn bitor(self, other: Self) -> Self {
  method bitxor_assign (line 162) | fn bitxor_assign(&mut self, other: Self) {
  type Output (line 168) | type Output = Self;
  method add (line 171) | fn add(self, other: Self) -> Self {
  type Output (line 179) | type Output = Self;
  method bitxor (line 182) | fn bitxor(self, other: Self) -> Self {
  function test_as_arr (line 209) | fn test_as_arr() {
  function test_rotate_by_32 (line 219) | fn test_rotate_by_32() {
  function test_add (line 230) | fn test_add() {
  function test_mm_srli_epi64 (line 241) | fn test_mm_srli_epi64() {
  function test_mm_mul_epu32 (line 251) | fn test_mm_mul_epu32() {
  function test_mm_slli_si128_8 (line 262) | fn test_mm_slli_si128_8() {

FILE: src/x86/v4x64u.rs
  type V4x64U (line 8) | pub struct V4x64U(pub __m256i);
    method fmt (line 18) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
    method zeroed (line 32) | pub unsafe fn zeroed() -> Self {
    method new (line 38) | pub unsafe fn new(highest: u64, high: u64, low: u64, lowest: u64) -> S...
    method as_arr (line 48) | pub unsafe fn as_arr(&self) -> [u64; 4] {
    method rotate_by_32 (line 56) | pub unsafe fn rotate_by_32(&self) -> Self {
    method shr_by_32 (line 62) | pub unsafe fn shr_by_32(&self) -> Self {
    method shuffle (line 68) | pub unsafe fn shuffle(&self, mask: &V4x64U) -> Self {
    method mul_low32 (line 74) | pub unsafe fn mul_low32(&self, x: &V4x64U) -> Self {
    method and_not (line 80) | pub unsafe fn and_not(&self, neg_mask: &V4x64U) -> Self {
    method add_assign (line 86) | unsafe fn add_assign(&mut self, other: Self) {
    method sub_assign (line 92) | unsafe fn sub_assign(&mut self, other: Self) {
    method bitand_assign (line 98) | unsafe fn bitand_assign(&mut self, other: Self) {
    method bitor_assign (line 104) | unsafe fn bitor_assign(&mut self, other: Self) {
    method bitxor_assign (line 110) | unsafe fn bitxor_assign(&mut self, other: Self) {
    method from (line 117) | fn from(v: __m256i) -> Self {
  method default (line 12) | fn default() -> Self {
  method add_assign (line 124) | fn add_assign(&mut self, other: Self) {
  method sub_assign (line 131) | fn sub_assign(&mut self, other: Self) {
  method bitand_assign (line 138) | fn bitand_assign(&mut self, other: Self) {
  type Output (line 144) | type Output = Self;
  method bitand (line 146) | fn bitand(self, other: Self) -> Self {
  method bitor_assign (line 155) | fn bitor_assign(&mut self, other: Self) {
  type Output (line 161) | type Output = Self;
  method bitor (line 163) | fn bitor(self, other: Self) -> Self {
  method bitxor_assign (line 172) | fn bitxor_assign(&mut self, other: Self) {
  type Output (line 178) | type Output = Self;
  method add (line 181) | fn add(self, other: Self) -> Self {
  type Output (line 189) | type Output = Self;
  method bitxor (line 192) | fn bitxor(self, other: Self) -> Self {

FILE: tests/aarch64.rs
  function hash_zeroes (line 5) | fn hash_zeroes() {
  function hash_simple (line 12) | fn hash_simple() {
  function neon_eq_portable (line 20) | fn neon_eq_portable() {

FILE: tests/hash.rs
  function hash_zeroes (line 4) | fn hash_zeroes() {
  function portable_hash_simple (line 11) | fn portable_hash_simple() {
  function portable_hash_append (line 19) | fn portable_hash_append() {
  function portable_hash_simple2 (line 29) | fn portable_hash_simple2() {
  function portable_hash_append2 (line 36) | fn portable_hash_append2() {
  function hash_all (line 44) | pub fn hash_all() {
  function test_hash_all (line 478) | fn test_hash_all() {
  function u64_to_u128 (line 482) | fn u64_to_u128(data: &[u64]) -> u128 {
  function u64_to_u256 (line 486) | fn u64_to_u256(data: &[u64]) -> (u128, u128) {
  function sse_hash_zeroes (line 492) | fn sse_hash_zeroes() {
  function sse_hash_eq_portable (line 506) | fn sse_hash_eq_portable() {
  function avx_hash_eq_portable (line 550) | fn avx_hash_eq_portable() {
  function portable_survive_crash (line 586) | fn portable_survive_crash() {
  function avx_survive_crash (line 594) | fn avx_survive_crash() {
  function builder_hash_eq_portable (line 606) | fn builder_hash_eq_portable() {

FILE: tests/properties.rs
  function portable64_eq (line 8) | fn portable64_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> b...
  function portable128_eq (line 16) | fn portable128_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> ...
  function portable256_eq (line 24) | fn portable256_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> ...
  function builder64_eq (line 32) | fn builder64_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bo...
  function builder128_eq (line 40) | fn builder128_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> b...
  function builder256_eq (line 48) | fn builder256_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> b...
  function all64_eq (line 56) | fn all64_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function all128_eq (line 82) | fn all128_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function all256_eq (line 108) | fn all256_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function checkpoint_eq (line 134) | fn checkpoint_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) {
  function avx64_eq (line 170) | fn avx64_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function avx128_eq (line 178) | fn avx128_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function avx256_eq (line 186) | fn avx256_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function sse64_eq (line 194) | fn sse64_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function sse128_eq (line 202) | fn sse128_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {
  function sse256_eq (line 210) | fn sse256_eq(k1: u64, k2: u64, k3: u64, k4: u64, data: Vec<u8>) -> bool {

FILE: tests/traits.rs
  function hash (line 3) | fn hash<H>() -> std::io::Result<u64>
  function hashers_should_implement_write_and_hasher (line 16) | fn hashers_should_implement_write_and_hasher() {
  function x86_hashers_should_implement_write_and_hasher (line 23) | fn x86_hashers_should_implement_write_and_hasher() {

FILE: tests/wasm.rs
  function hash_zeroes (line 8) | fn hash_zeroes() {
  function hash_simple (line 15) | fn hash_simple() {
  function wasm_eq_portable (line 23) | fn wasm_eq_portable() {
  function wasm_hash_all (line 56) | fn wasm_hash_all() {
Condensed preview — 43 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (854K chars).
[
  {
    "path": ".github/dependabot.yml",
    "chars": 127,
    "preview": "version: 2\nupdates:\n- package-ecosystem: cargo\n  directory: \"/\"\n  schedule:\n    interval: daily\n  open-pull-requests-lim"
  },
  {
    "path": ".github/workflows/main.yml",
    "chars": 4394,
    "preview": "name: ci\non:\n  pull_request:\n  push:\n    branches:\n    - master\n  schedule:\n  - cron: '00 01 * * *'\n\njobs:\n  test:\n    n"
  },
  {
    "path": ".gitignore",
    "chars": 32,
    "preview": "**/target\n**/*.rs.bk\nCargo.lock\n"
  },
  {
    "path": ".gitmodules",
    "chars": 105,
    "preview": "[submodule \"fuzz/highwayhash\"]\n\tpath = fuzz/highwayhash\n\turl = https://github.com/google/highwayhash.git\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 5140,
    "preview": "## v1.3.0 - 2025-01-11\n\n- Add the ability to checkpoint hashing state and resume it with another hasher. This feature is"
  },
  {
    "path": "Cargo.toml",
    "chars": 1098,
    "preview": "[package]\nname = \"highway\"\nversion = \"1.3.0\"\nauthors = [\"Nick Babcock <nbabcock19@hotmail.com>\"]\nlicense = \"MIT\"\nreadme "
  },
  {
    "path": "LICENSE.txt",
    "chars": 1023,
    "preview": "Permission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentati"
  },
  {
    "path": "README.md",
    "chars": 9313,
    "preview": "![ci](https://github.com/nickbabcock/highway-rs/workflows/ci/badge.svg) [![](https://docs.rs/highway/badge.svg)](https:/"
  },
  {
    "path": "assets/analysis.R",
    "chars": 7869,
    "preview": "library(scales)\nlibrary(tidyverse)\nlibrary(readr)\nlibrary(ggnewscale)\n\nis_highwayhash <- Vectorize(function(fn) {\n  swit"
  },
  {
    "path": "assets/highway.csv",
    "chars": 649155,
    "preview": "group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count\n256bit,sse,4,4,bytes,9853"
  },
  {
    "path": "benches/bench_hashes.rs",
    "chars": 2816,
    "preview": "use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput};\n#[cfg(target_arch = \"x86_64\")]\nuse"
  },
  {
    "path": "compare/Cargo.toml",
    "chars": 574,
    "preview": "[package]\nname = \"compare\"\nversion = \"0.0.1\"\nauthors = [\"Nick Babcock <nbabcock19@hotmail.com>\"]\nlicense = \"MIT\"\nreadme "
  },
  {
    "path": "compare/benches/bench_hashes.rs",
    "chars": 5304,
    "preview": "use blake2b_simd::Params;\nuse criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput};\n#[cfg(ta"
  },
  {
    "path": "examples/hwysum.rs",
    "chars": 591,
    "preview": "use highway::HighwayHash;\n\n// This is a simple example of how to hash data from stdin using a\n// HighwayHasher. Analagou"
  },
  {
    "path": "examples/no_panic.rs",
    "chars": 1176,
    "preview": "use highway::{HighwayHash, PortableHash};\nuse std::io::Read;\n\n// Using debug_assertions as a poor man's way to omit no_p"
  },
  {
    "path": "fuzz/.gitignore",
    "chars": 25,
    "preview": "\ntarget\ncorpus\nartifacts\n"
  },
  {
    "path": "fuzz/Cargo.toml",
    "chars": 471,
    "preview": "\n[package]\nname = \"highway-fuzz\"\nversion = \"0.0.1\"\nauthors = [\"Automatically generated\"]\nedition = \"2018\"\npublish = fals"
  },
  {
    "path": "fuzz/build.rs",
    "chars": 144,
    "preview": "fn main() {\n    cc::Build::new()\n        .include(\"highwayhash\")\n        .file(\"highwayhash/c/highwayhash.c\")\n        .c"
  },
  {
    "path": "fuzz/fuzz_targets/fuzz_highway.rs",
    "chars": 2622,
    "preview": "#![no_main]\n\nuse highway::{HighwayHash, HighwayHasher, Key, PortableHash};\nuse libc::size_t;\nuse libfuzzer_sys::arbitrar"
  },
  {
    "path": "release.toml",
    "chars": 87,
    "preview": "tag-message = \"Release {{version}}\"\npre-release-commit-message = \"Release {{version}}\"\n"
  },
  {
    "path": "src/aarch64.rs",
    "chars": 16252,
    "preview": "#![allow(unsafe_code)]\nuse crate::internal::{unordered_load3, HashPacket, PACKET_SIZE};\nuse crate::{HighwayHash, Key, Po"
  },
  {
    "path": "src/builder.rs",
    "chars": 14900,
    "preview": "#![allow(unsafe_code)]\n\nuse crate::key::Key;\nuse crate::traits::HighwayHash;\nuse core::{default::Default, fmt::Debug, me"
  },
  {
    "path": "src/hash.rs",
    "chars": 549,
    "preview": "use crate::builder::HighwayHasher;\nuse crate::key::Key;\nuse core::hash::BuildHasher;\n\n/// Constructs a hasher used in ru"
  },
  {
    "path": "src/internal.rs",
    "chars": 3078,
    "preview": "#[cfg(any(\n    target_arch = \"x86_64\",\n    target_arch = \"aarch64\",\n    all(target_family = \"wasm\", target_feature = \"si"
  },
  {
    "path": "src/key.rs",
    "chars": 315,
    "preview": "use core::ops::Index;\n\n/// Key used in `HighwayHash` that will drastically change the hash outputs.\n#[derive(Debug, Defa"
  },
  {
    "path": "src/lib.rs",
    "chars": 6430,
    "preview": "/*!\n\nThis crate is a native Rust port of [Google's HighwayHash](https://github.com/google/highwayhash), which is a fast,"
  },
  {
    "path": "src/macros.rs",
    "chars": 1479,
    "preview": "macro_rules! impl_write {\n    ($hasher_struct:ty) => {\n        #[cfg(feature = \"std\")]\n        impl ::std::io::Write for"
  },
  {
    "path": "src/portable.rs",
    "chars": 10838,
    "preview": "use crate::internal::{HashPacket, PACKET_SIZE};\nuse crate::key::Key;\nuse crate::traits::HighwayHash;\n\n/// Hardware agnos"
  },
  {
    "path": "src/traits.rs",
    "chars": 1867,
    "preview": "/// The common set of methods for hashing data.\npub trait HighwayHash: Sized {\n    /// Convenience function for hashing "
  },
  {
    "path": "src/wasm.rs",
    "chars": 17290,
    "preview": "use crate::internal::{unordered_load3, HashPacket, PACKET_SIZE};\nuse crate::{HighwayHash, Key, PortableHash};\nuse core::"
  },
  {
    "path": "src/x86/avx.rs",
    "chars": 11588,
    "preview": "#![allow(unsafe_code)]\nuse super::{v2x64u::V2x64U, v4x64u::V4x64U};\nuse crate::internal::unordered_load3;\nuse crate::int"
  },
  {
    "path": "src/x86/macros.rs",
    "chars": 458,
    "preview": "/// The function, [_MM_SHUFFLE](https://doc.rust-lang.org/core/arch/x86_64/fn._MM_SHUFFLE.html) is\n/// only supported on"
  },
  {
    "path": "src/x86/mod.rs",
    "chars": 112,
    "preview": "#[macro_use]\nmod macros;\nmod avx;\nmod sse;\nmod v2x64u;\nmod v4x64u;\n\npub use avx::AvxHash;\npub use sse::SseHash;\n"
  },
  {
    "path": "src/x86/sse.rs",
    "chars": 13256,
    "preview": "#![allow(unsafe_code)]\nuse super::v2x64u::V2x64U;\nuse crate::internal::unordered_load3;\nuse crate::internal::{HashPacket"
  },
  {
    "path": "src/x86/v2x64u.rs",
    "chars": 6526,
    "preview": "#![allow(unsafe_code)]\nuse core::arch::x86_64::*;\nuse core::ops::{\n    Add, AddAssign, BitAnd, BitAndAssign, BitOr, BitO"
  },
  {
    "path": "src/x86/v4x64u.rs",
    "chars": 4539,
    "preview": "#![allow(unsafe_code)]\nuse core::arch::x86_64::*;\nuse core::ops::{\n    Add, AddAssign, BitAnd, BitAndAssign, BitOr, BitO"
  },
  {
    "path": "tests/aarch64.rs",
    "chars": 1584,
    "preview": "#![cfg(target_arch = \"aarch64\")]\nuse highway::{HighwayHash, Key, NeonHash, PortableHash};\n\n#[test]\nfn hash_zeroes() {\n  "
  },
  {
    "path": "tests/hash.rs",
    "chars": 19123,
    "preview": "use highway::{HighwayHash, HighwayHasher, Key, PortableHash};\n\n#[test]\nfn hash_zeroes() {\n    let key = Key([0, 0, 0, 0]"
  },
  {
    "path": "tests/properties.rs",
    "chars": 7518,
    "preview": "#[macro_use]\nextern crate quickcheck_macros;\n\nmod quick_tests {\n    use highway::{HighwayHash, HighwayHasher, Key, Porta"
  },
  {
    "path": "tests/traits.rs",
    "chars": 772,
    "preview": "#![cfg(feature = \"std\")]\n\nfn hash<H>() -> std::io::Result<u64>\nwhere\n    H: std::hash::Hasher,\n    H: std::io::Write,\n  "
  },
  {
    "path": "tests/wasm.rs",
    "chars": 1606,
    "preview": "#![cfg(all(target_family = \"wasm\", target_feature = \"simd128\"))]\nuse highway::{HighwayHash, Key, PortableHash, WasmHash}"
  }
]

// ... and 2 more files (download for full content)

About this extraction

This page contains the full source code of the nickbabcock/highway-rs GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 43 files (812.6 KB), approximately 384.4k tokens, and a symbol index with 354 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!