[INFO] fetching crate fast-tlsh 0.1.3... [INFO] checking fast-tlsh-0.1.3 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate fast-tlsh 0.1.3 into /workspace/builds/worker-0-tc2/source [INFO] validating manifest of crates.io crate fast-tlsh 0.1.3 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate fast-tlsh 0.1.3 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate fast-tlsh 0.1.3 [INFO] tweaked toml for crates.io crate fast-tlsh 0.1.3 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] crate crates.io crate fast-tlsh 0.1.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f05c4b64ec7b5b42ba49a39f6712cad55eae43a65caff6468dfa2512ad787d6e [INFO] running `Command { std: "docker" "start" "-a" "f05c4b64ec7b5b42ba49a39f6712cad55eae43a65caff6468dfa2512ad787d6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f05c4b64ec7b5b42ba49a39f6712cad55eae43a65caff6468dfa2512ad787d6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f05c4b64ec7b5b42ba49a39f6712cad55eae43a65caff6468dfa2512ad787d6e", kill_on_drop: false }` [INFO] [stdout] f05c4b64ec7b5b42ba49a39f6712cad55eae43a65caff6468dfa2512ad787d6e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2c90aa3751547f680dc72599f8d13f46794bcb5e5fc785a63e80735170a072f0 [INFO] running `Command { std: "docker" "start" "-a" "2c90aa3751547f680dc72599f8d13f46794bcb5e5fc785a63e80735170a072f0", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling proc-macro2 v1.0.82 [INFO] [stderr] Checking vsimd v0.8.0 [INFO] [stderr] Checking outref v0.5.1 [INFO] [stderr] Compiling fast-tlsh v0.1.3 (/tmp/fixit) [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Checking hex-simd v0.8.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking getrandom v0.2.14 [INFO] [stderr] Compiling syn v2.0.64 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_xoshiro v0.6.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling bitfield-struct v0.6.1 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `tlsh` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/hash.rs [INFO] [stderr] * src/macros.rs [INFO] [stderr] * src/params.rs [INFO] [stderr] * src/params/tests.rs [INFO] [stderr] * src/pearson/tests.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hash.rs:959:6 [INFO] [stderr] | [INFO] [stderr] 959 | ($size_checksum:expr_2021, $size_buckets:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hash.rs:959:32 [INFO] [stderr] | [INFO] [stderr] 959 | ($size_checksum:expr_2021, $size_buckets:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/macros.rs:64:6 [INFO] [stderr] | [INFO] [stderr] 64 | ($expr: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/params.rs:113:6 [INFO] [stderr] | [INFO] [stderr] 113 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/params.rs:126:6 [INFO] [stderr] | [INFO] [stderr] 126 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/params/tests.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | ($ty: ty, $base: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/pearson/tests.rs:82:10 [INFO] [stderr] | [INFO] [stderr] 82 | ($initial: expr_2021, $expected: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/pearson/tests.rs:82:31 [INFO] [stderr] | [INFO] [stderr] 82 | ($initial: expr_2021, $expected: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | gen.update(&buffer); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:164:16 [INFO] [stdout] | [INFO] [stdout] 164 | let hash = gen.finalize().unwrap(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | gen.update(&buffer); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:183:16 [INFO] [stdout] | [INFO] [stdout] 183 | let hash = gen.finalize().unwrap(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hash.rs:959:21 [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr, $size_buckets:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr_2021, $size_buckets:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hash.rs:959:41 [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr, $size_buckets:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr, $size_buckets:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/macros.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | ($expr: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 64 | ($expr: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/params.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | ($size_checksum:expr, $size_buckets:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 113 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/params.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | ($size_checksum:expr, $size_buckets:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 126 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/params/tests.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | ($ty: ty, $base: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 36 | ($ty: ty, $base: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/pearson/tests.rs:82:20 [INFO] [stdout] | [INFO] [stdout] 82 | ($initial: expr, $expected: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 82 | ($initial: expr_2021, $expected: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/pearson/tests.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 82 | ($initial: expr, $expected: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 82 | ($initial: expr, $expected: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | let mask_dibit_01 = _mm256_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | unsafe fn packed_distance_as_u32x8(x: __m256i, y: __m256i) -> __m256i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | let mask_dibit_10 = _mm256_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | let mask_nibble_0011 = _mm256_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_byte_00001111 = _mm256_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | let value_dword_0x01010101 = _mm256_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let z = _mm256_xor_si256(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | let ta = _mm256_and_si256(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:39:14 [INFO] [stdout] | [INFO] [stdout] 39 | let tb = _mm256_and_si256(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:14 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let tb = _mm256_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let ta = _mm256_xor_si256(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let tb = _mm256_xor_si256(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let sa = _mm256_and_si256(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm256_and_si256(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm256_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm256_and_si256(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm256_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm256_and_si256(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:34 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let sa = _mm256_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let sb = _mm256_and_si256(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm256_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sb = _mm256_and_si256(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let tb = _mm256_and_si256(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let sb = _mm256_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let s = _mm256_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let t = _mm256_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let s = _mm256_and_si256(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let t = _mm256_and_si256(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let s = _mm256_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm256_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | _mm256_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let x = _mm256_loadu_si256(body1 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:72:1 [INFO] [stdout] | [INFO] [stdout] 72 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let y = _mm256_loadu_si256(body2 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let x = _mm256_loadu_si256(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:91:1 [INFO] [stdout] | [INFO] [stdout] 91 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let y = _mm256_loadu_si256(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:103:14 [INFO] [stdout] | [INFO] [stdout] 103 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:32 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:36:25 [INFO] [stdout] | [INFO] [stdout] 36 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn packed_distance_as_u16x8(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:37:25 [INFO] [stdout] | [INFO] [stdout] 37 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:38:28 [INFO] [stdout] | [INFO] [stdout] 38 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:39:30 [INFO] [stdout] | [INFO] [stdout] 39 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:31 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:60:14 [INFO] [stdout] | [INFO] [stdout] 60 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:61:14 [INFO] [stdout] | [INFO] [stdout] 61 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:62:14 [INFO] [stdout] | [INFO] [stdout] 62 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let t = _mm_slli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let s = _mm_srli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let t = _mm_srli_epi16::<8>(t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | _mm_add_epi16(s, t) // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s1 = packed_distance_as_u16x8(x1, y1); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | let s2 = packed_distance_as_u16x8(x2, y2); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let s = _mm_add_epi16(s1, s2); // Both halfs SUM (16-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=192 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:112:17 [INFO] [stdout] | [INFO] [stdout] 112 | let mut s = _mm_set1_epi16(0); // SUM (16-bit sliced; 0..=192) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:33 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:32:25 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe fn packed_distance_as_u32x4(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:34:28 [INFO] [stdout] | [INFO] [stdout] 34 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | let value_dword_0x01010101 = _mm_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:31 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:31 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | _mm_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s1 = packed_distance_as_u32x4(x1, y1); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:30 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s2 = packed_distance_as_u32x4(x2, y2); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let s = _mm_add_epi32(s1, s2); // Both halfs SUM (32-bit sliced; 0..=192) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=768 on lane 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | _mm_cvtsi128_si32(s) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let mut s = _mm_set1_epi32(0); // SUM (32-bit sliced; 0..=384) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:102:1 [INFO] [stdout] | [INFO] [stdout] 102 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:108:33 [INFO] [stdout] | [INFO] [stdout] 108 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:109:17 [INFO] [stdout] | [INFO] [stdout] 109 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:109:33 [INFO] [stdout] | [INFO] [stdout] 109 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | s = _mm_add_epi32(s, packed_distance_as_u32x4(x, y)); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:110:30 [INFO] [stdout] | [INFO] [stdout] 110 | s = _mm_add_epi32(s, packed_distance_as_u32x4(x, y)); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=1536 on lane 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | _mm_cvtsi128_si32(s) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | let qv1 = _mm256_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:31:15 [INFO] [stdout] | [INFO] [stdout] 31 | let qv2 = _mm256_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:32:15 [INFO] [stdout] | [INFO] [stdout] 32 | let qv3 = _mm256_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | let hibit = _mm256_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | let shufb_lo = _mm256_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 36 | | -128, -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 37 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, [INFO] [stdout] 38 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:40:20 [INFO] [stdout] | [INFO] [stdout] 40 | let shufb_hi = _mm256_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 41 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, -128, [INFO] [stdout] 42 | | -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 43 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | let data = _mm256_xor_si256( [INFO] [stdout] | ________________^ [INFO] [stdout] 45 | | _mm256_loadu_si256(buckets.as_ptr() as *const __m256i), [INFO] [stdout] 46 | | hibit, [INFO] [stdout] 47 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | _mm256_loadu_si256(buckets.as_ptr() as *const __m256i), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qc2 = _mm256_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qb1 = _mm256_shuffle_epi8(qc2, shufb_hi); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qb1 = _mm256_movemask_epi8(qb1) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | let qc1 = _mm256_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let qc3 = _mm256_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 53 | let qb0 = _mm256_xor_si256(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | let qb0 = _mm256_xor_si256(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:55:15 [INFO] [stdout] | [INFO] [stdout] 55 | let qb0 = _mm256_shuffle_epi8(qb0, shufb_lo); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:56:15 [INFO] [stdout] | [INFO] [stdout] 56 | let qb0 = _mm256_movemask_epi8(qb0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_avx2::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:91:40 [INFO] [stdout] | [INFO] [stdout] 91 | (out[0], out[1]) = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 98 | / aggregation_func_template! { [INFO] [stdout] 99 | | aggregate_48 = (12, 48); [INFO] [stdout] 100 | | aggregate_128 = (32, 128); [INFO] [stdout] 101 | | aggregate_256 = (64, 256); [INFO] [stdout] 102 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | / pub(super) unsafe fn $name( [INFO] [stdout] 80 | | out: &mut [u8; $size_small], [INFO] [stdout] 81 | | buckets: &[u32; $size_large], [INFO] [stdout] 82 | | q1: u32, [INFO] [stdout] 83 | | q2: u32, [INFO] [stdout] 84 | | q3: u32 [INFO] [stdout] 85 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 98 | / aggregation_func_template! { [INFO] [stdout] 99 | | aggregate_48 = (12, 48); [INFO] [stdout] 100 | | aggregate_128 = (32, 128); [INFO] [stdout] 101 | | aggregate_256 = (64, 256); [INFO] [stdout] 102 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | let qv1 = _mm_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | let qv2 = _mm_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | let qv3 = _mm_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | let hibit = _mm_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 41 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let qc2 = _mm_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_packs_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | let qb1 = _mm_packs_epi16(qc2, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_undefined_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:43:36 [INFO] [stdout] | [INFO] [stdout] 43 | let qb1 = _mm_packs_epi16(qc2, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:44:15 [INFO] [stdout] | [INFO] [stdout] 44 | let qb1 = _mm_movemask_epi8(qb1) as u32 & 0xaa; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:45:15 [INFO] [stdout] | [INFO] [stdout] 45 | let qc1 = _mm_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:46:15 [INFO] [stdout] | [INFO] [stdout] 46 | let qc3 = _mm_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | let qb0 = _mm_xor_si128(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qb0 = _mm_xor_si128(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_packs_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qb0 = _mm_packs_epi16(qb0, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_undefined_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:49:36 [INFO] [stdout] | [INFO] [stdout] 49 | let qb0 = _mm_packs_epi16(qb0, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qb0 = _mm_movemask_epi8(qb0) as u32 & 0x55; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_sse2::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | *out = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 87 | / aggregation_func_template! { [INFO] [stdout] 88 | | aggregate_48 = (12, 48); [INFO] [stdout] 89 | | aggregate_128 = (32, 128); [INFO] [stdout] 90 | | aggregate_256 = (64, 256); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / pub(super) unsafe fn $name( [INFO] [stdout] 73 | | out: &mut [u8; $size_small], [INFO] [stdout] 74 | | buckets: &[u32; $size_large], [INFO] [stdout] 75 | | q1: u32, [INFO] [stdout] 76 | | q2: u32, [INFO] [stdout] 77 | | q3: u32 [INFO] [stdout] 78 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 87 | / aggregation_func_template! { [INFO] [stdout] 88 | | aggregate_48 = (12, 48); [INFO] [stdout] 89 | | aggregate_128 = (32, 128); [INFO] [stdout] 90 | | aggregate_256 = (64, 256); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | let qv1 = _mm_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | let qv2 = _mm_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:35:15 [INFO] [stdout] | [INFO] [stdout] 35 | let qv3 = _mm_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | let hibit = _mm_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | let shufb_lo = _mm_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 38 | | -128, -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, [INFO] [stdout] 39 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:40:30 [INFO] [stdout] | [INFO] [stdout] 40 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:41:15 [INFO] [stdout] | [INFO] [stdout] 41 | let qc2 = _mm_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let qb1 = _mm_shuffle_epi8( [INFO] [stdout] | _______________^ [INFO] [stdout] 43 | | qc2, [INFO] [stdout] 44 | | _mm_set_epi8( [INFO] [stdout] 45 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 46 | | ), [INFO] [stdout] 47 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / _mm_set_epi8( [INFO] [stdout] 45 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 46 | | ), [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qb1 = _mm_movemask_epi8(qb1) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qc1 = _mm_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qc3 = _mm_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | let qb0 = _mm_xor_si128(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let qb0 = _mm_xor_si128(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 53 | let qb0 = _mm_shuffle_epi8(qb0, shufb_lo); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | let qb0 = _mm_movemask_epi8(qb0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_ssse3::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | *out = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 91 | / aggregation_func_template! { [INFO] [stdout] 92 | | aggregate_48 = (12, 48); [INFO] [stdout] 93 | | aggregate_128 = (32, 128); [INFO] [stdout] 94 | | aggregate_256 = (64, 256); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | / pub(super) unsafe fn $name( [INFO] [stdout] 77 | | out: &mut [u8; $size_small], [INFO] [stdout] 78 | | buckets: &[u32; $size_large], [INFO] [stdout] 79 | | q1: u32, [INFO] [stdout] 80 | | q2: u32, [INFO] [stdout] 81 | | q3: u32 [INFO] [stdout] 82 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 91 | / aggregation_func_template! { [INFO] [stdout] 92 | | aggregate_48 = (12, 48); [INFO] [stdout] 93 | | aggregate_128 = (32, 128); [INFO] [stdout] 94 | | aggregate_256 = (64, 256); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 252 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `tlsh` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | gen.update(&buffer); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/hash.rs [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:164:16 [INFO] [stdout] | [INFO] [stdout] 164 | let hash = gen.finalize().unwrap(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/macros.rs [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/params.rs [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | gen.update(&buffer); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/generate/tests.rs:183:16 [INFO] [stdout] | [INFO] [stdout] 183 | let hash = gen.finalize().unwrap(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hash.rs:959:21 [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr, $size_buckets:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr_2021, $size_buckets:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hash.rs:959:41 [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr, $size_buckets:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 959 | ($size_checksum:expr, $size_buckets:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hash.rs:959:6 [INFO] [stderr] | [INFO] [stderr] 959 | ($size_checksum:expr_2021, $size_buckets:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hash.rs:959:32 [INFO] [stderr] | [INFO] [stderr] 959 | ($size_checksum:expr_2021, $size_buckets:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/macros.rs:64:6 [INFO] [stderr] | [INFO] [stderr] 64 | ($expr: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/params.rs:113:6 [INFO] [stderr] | [INFO] [stderr] 113 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/params.rs:126:6 [INFO] [stderr] | [INFO] [stderr] 126 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/macros.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | ($expr: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 64 | ($expr: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/params.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | ($size_checksum:expr, $size_buckets:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 113 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/params.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | ($size_checksum:expr, $size_buckets:tt) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 126 | ($size_checksum:expr_2021, $size_buckets:tt) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | let mask_dibit_01 = _mm256_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | unsafe fn packed_distance_as_u32x8(x: __m256i, y: __m256i) -> __m256i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | let mask_dibit_10 = _mm256_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | let mask_nibble_0011 = _mm256_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_byte_00001111 = _mm256_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | let value_dword_0x01010101 = _mm256_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let z = _mm256_xor_si256(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | let ta = _mm256_and_si256(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:39:14 [INFO] [stdout] | [INFO] [stdout] 39 | let tb = _mm256_and_si256(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:14 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let tb = _mm256_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let ta = _mm256_xor_si256(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let tb = _mm256_xor_si256(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let sa = _mm256_and_si256(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm256_and_si256(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm256_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm256_and_si256(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm256_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm256_and_si256(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:34 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let sa = _mm256_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let sb = _mm256_and_si256(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm256_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sb = _mm256_and_si256(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let tb = _mm256_and_si256(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let sb = _mm256_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let s = _mm256_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let t = _mm256_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let s = _mm256_and_si256(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let t = _mm256_and_si256(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let s = _mm256_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm256_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | _mm256_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let x = _mm256_loadu_si256(body1 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:72:1 [INFO] [stdout] | [INFO] [stdout] 72 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let y = _mm256_loadu_si256(body2 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let x = _mm256_loadu_si256(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:91:1 [INFO] [stdout] | [INFO] [stdout] 91 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let y = _mm256_loadu_si256(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:103:14 [INFO] [stdout] | [INFO] [stdout] 103 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:32 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:36:25 [INFO] [stdout] | [INFO] [stdout] 36 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn packed_distance_as_u16x8(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:37:25 [INFO] [stdout] | [INFO] [stdout] 37 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:38:28 [INFO] [stdout] | [INFO] [stdout] 38 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:39:30 [INFO] [stdout] | [INFO] [stdout] 39 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:31 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:60:14 [INFO] [stdout] | [INFO] [stdout] 60 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:61:14 [INFO] [stdout] | [INFO] [stdout] 61 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:62:14 [INFO] [stdout] | [INFO] [stdout] 62 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let t = _mm_slli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let s = _mm_srli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let t = _mm_srli_epi16::<8>(t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | _mm_add_epi16(s, t) // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s1 = packed_distance_as_u16x8(x1, y1); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | let s2 = packed_distance_as_u16x8(x2, y2); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let s = _mm_add_epi16(s1, s2); // Both halfs SUM (16-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=192 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:112:17 [INFO] [stdout] | [INFO] [stdout] 112 | let mut s = _mm_set1_epi16(0); // SUM (16-bit sliced; 0..=192) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:33 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:32:25 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe fn packed_distance_as_u32x4(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:34:28 [INFO] [stdout] | [INFO] [stdout] 34 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | let value_dword_0x01010101 = _mm_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:31 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:31 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | _mm_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s1 = packed_distance_as_u32x4(x1, y1); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:30 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s2 = packed_distance_as_u32x4(x2, y2); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let s = _mm_add_epi32(s1, s2); // Both halfs SUM (32-bit sliced; 0..=192) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=768 on lane 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | _mm_cvtsi128_si32(s) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let mut s = _mm_set1_epi32(0); // SUM (32-bit sliced; 0..=384) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:102:1 [INFO] [stdout] | [INFO] [stdout] 102 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:108:33 [INFO] [stdout] | [INFO] [stdout] 108 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:109:17 [INFO] [stdout] | [INFO] [stdout] 109 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:109:33 [INFO] [stdout] | [INFO] [stdout] 109 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | s = _mm_add_epi32(s, packed_distance_as_u32x4(x, y)); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:110:30 [INFO] [stdout] | [INFO] [stdout] 110 | s = _mm_add_epi32(s, packed_distance_as_u32x4(x, y)); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=1536 on lane 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | _mm_cvtsi128_si32(s) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | let qv1 = _mm256_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:31:15 [INFO] [stdout] | [INFO] [stdout] 31 | let qv2 = _mm256_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:32:15 [INFO] [stdout] | [INFO] [stdout] 32 | let qv3 = _mm256_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | let hibit = _mm256_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | let shufb_lo = _mm256_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 36 | | -128, -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 37 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, [INFO] [stdout] 38 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:40:20 [INFO] [stdout] | [INFO] [stdout] 40 | let shufb_hi = _mm256_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 41 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, -128, [INFO] [stdout] 42 | | -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 43 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | let data = _mm256_xor_si256( [INFO] [stdout] | ________________^ [INFO] [stdout] 45 | | _mm256_loadu_si256(buckets.as_ptr() as *const __m256i), [INFO] [stdout] 46 | | hibit, [INFO] [stdout] 47 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | _mm256_loadu_si256(buckets.as_ptr() as *const __m256i), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qc2 = _mm256_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qb1 = _mm256_shuffle_epi8(qc2, shufb_hi); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qb1 = _mm256_movemask_epi8(qb1) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | let qc1 = _mm256_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let qc3 = _mm256_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 53 | let qb0 = _mm256_xor_si256(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | let qb0 = _mm256_xor_si256(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:55:15 [INFO] [stdout] | [INFO] [stdout] 55 | let qb0 = _mm256_shuffle_epi8(qb0, shufb_lo); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:56:15 [INFO] [stdout] | [INFO] [stdout] 56 | let qb0 = _mm256_movemask_epi8(qb0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_avx2::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:91:40 [INFO] [stdout] | [INFO] [stdout] 91 | (out[0], out[1]) = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 98 | / aggregation_func_template! { [INFO] [stdout] 99 | | aggregate_48 = (12, 48); [INFO] [stdout] 100 | | aggregate_128 = (32, 128); [INFO] [stdout] 101 | | aggregate_256 = (64, 256); [INFO] [stdout] 102 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | / pub(super) unsafe fn $name( [INFO] [stdout] 80 | | out: &mut [u8; $size_small], [INFO] [stdout] 81 | | buckets: &[u32; $size_large], [INFO] [stdout] 82 | | q1: u32, [INFO] [stdout] 83 | | q2: u32, [INFO] [stdout] 84 | | q3: u32 [INFO] [stdout] 85 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 98 | / aggregation_func_template! { [INFO] [stdout] 99 | | aggregate_48 = (12, 48); [INFO] [stdout] 100 | | aggregate_128 = (32, 128); [INFO] [stdout] 101 | | aggregate_256 = (64, 256); [INFO] [stdout] 102 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | let qv1 = _mm_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | let qv2 = _mm_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | let qv3 = _mm_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | let hibit = _mm_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 41 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let qc2 = _mm_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_packs_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | let qb1 = _mm_packs_epi16(qc2, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_undefined_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:43:36 [INFO] [stdout] | [INFO] [stdout] 43 | let qb1 = _mm_packs_epi16(qc2, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:44:15 [INFO] [stdout] | [INFO] [stdout] 44 | let qb1 = _mm_movemask_epi8(qb1) as u32 & 0xaa; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:45:15 [INFO] [stdout] | [INFO] [stdout] 45 | let qc1 = _mm_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:46:15 [INFO] [stdout] | [INFO] [stdout] 46 | let qc3 = _mm_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | let qb0 = _mm_xor_si128(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qb0 = _mm_xor_si128(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_packs_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qb0 = _mm_packs_epi16(qb0, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_undefined_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:49:36 [INFO] [stdout] | [INFO] [stdout] 49 | let qb0 = _mm_packs_epi16(qb0, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qb0 = _mm_movemask_epi8(qb0) as u32 & 0x55; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_sse2::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | *out = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 87 | / aggregation_func_template! { [INFO] [stdout] 88 | | aggregate_48 = (12, 48); [INFO] [stdout] 89 | | aggregate_128 = (32, 128); [INFO] [stdout] 90 | | aggregate_256 = (64, 256); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / pub(super) unsafe fn $name( [INFO] [stdout] 73 | | out: &mut [u8; $size_small], [INFO] [stdout] 74 | | buckets: &[u32; $size_large], [INFO] [stdout] 75 | | q1: u32, [INFO] [stdout] 76 | | q2: u32, [INFO] [stdout] 77 | | q3: u32 [INFO] [stdout] 78 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 87 | / aggregation_func_template! { [INFO] [stdout] 88 | | aggregate_48 = (12, 48); [INFO] [stdout] 89 | | aggregate_128 = (32, 128); [INFO] [stdout] 90 | | aggregate_256 = (64, 256); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | let qv1 = _mm_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | let qv2 = _mm_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:35:15 [INFO] [stdout] | [INFO] [stdout] 35 | let qv3 = _mm_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | let hibit = _mm_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | let shufb_lo = _mm_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 38 | | -128, -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, [INFO] [stdout] 39 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:40:30 [INFO] [stdout] | [INFO] [stdout] 40 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:41:15 [INFO] [stdout] | [INFO] [stdout] 41 | let qc2 = _mm_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let qb1 = _mm_shuffle_epi8( [INFO] [stdout] | _______________^ [INFO] [stdout] 43 | | qc2, [INFO] [stdout] 44 | | _mm_set_epi8( [INFO] [stdout] 45 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 46 | | ), [INFO] [stdout] 47 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / _mm_set_epi8( [INFO] [stdout] 45 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 46 | | ), [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qb1 = _mm_movemask_epi8(qb1) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qc1 = _mm_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qc3 = _mm_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | let qb0 = _mm_xor_si128(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let qb0 = _mm_xor_si128(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 53 | let qb0 = _mm_shuffle_epi8(qb0, shufb_lo); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | let qb0 = _mm_movemask_epi8(qb0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_ssse3::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | *out = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 91 | / aggregation_func_template! { [INFO] [stdout] 92 | | aggregate_48 = (12, 48); [INFO] [stdout] 93 | | aggregate_128 = (32, 128); [INFO] [stdout] 94 | | aggregate_256 = (64, 256); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | / pub(super) unsafe fn $name( [INFO] [stdout] 77 | | out: &mut [u8; $size_small], [INFO] [stdout] 78 | | buckets: &[u32; $size_large], [INFO] [stdout] 79 | | q1: u32, [INFO] [stdout] 80 | | q2: u32, [INFO] [stdout] 81 | | q3: u32 [INFO] [stdout] 82 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 91 | / aggregation_func_template! { [INFO] [stdout] 92 | | aggregate_48 = (12, 48); [INFO] [stdout] 93 | | aggregate_128 = (32, 128); [INFO] [stdout] 94 | | aggregate_256 = (64, 256); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 249 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Migrating examples/hash-file.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.22s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling fast-tlsh v0.1.3 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 162 | let mut r#gen = TlshGenerator::new(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 162 | let mut r#gen = TlshGenerator::new(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | gen.update(&buffer); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | gen.update(&buffer); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 181 | let mut r#gen = TlshGenerator::new(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | gen.update(&buffer); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let mut gen = TlshGenerator::new(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 181 | let mut r#gen = TlshGenerator::new(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/generate/tests.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | gen.update(&buffer); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Tlsh` [INFO] [stdout] --> src/generate/tests.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::{Tlsh, TlshGenerator, TlshGeneratorFor}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | let mask_dibit_01 = _mm256_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | unsafe fn packed_distance_as_u32x8(x: __m256i, y: __m256i) -> __m256i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | let mask_dibit_10 = _mm256_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | let mask_nibble_0011 = _mm256_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_byte_00001111 = _mm256_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | let value_dword_0x01010101 = _mm256_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let z = _mm256_xor_si256(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | let ta = _mm256_and_si256(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:39:14 [INFO] [stdout] | [INFO] [stdout] 39 | let tb = _mm256_and_si256(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:14 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let tb = _mm256_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let ta = _mm256_xor_si256(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let tb = _mm256_xor_si256(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let sa = _mm256_and_si256(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm256_and_si256(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm256_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm256_and_si256(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm256_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm256_and_si256(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:34 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let sa = _mm256_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let sb = _mm256_and_si256(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm256_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sb = _mm256_and_si256(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let tb = _mm256_and_si256(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let sb = _mm256_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let s = _mm256_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let t = _mm256_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let s = _mm256_and_si256(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let t = _mm256_and_si256(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let s = _mm256_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm256_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | _mm256_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let x = _mm256_loadu_si256(body1 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:72:1 [INFO] [stdout] | [INFO] [stdout] 72 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let y = _mm256_loadu_si256(body2 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let x = _mm256_loadu_si256(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:91:1 [INFO] [stdout] | [INFO] [stdout] 91 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let y = _mm256_loadu_si256(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:103:14 [INFO] [stdout] | [INFO] [stdout] 103 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:32 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:36:25 [INFO] [stdout] | [INFO] [stdout] 36 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn packed_distance_as_u16x8(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:37:25 [INFO] [stdout] | [INFO] [stdout] 37 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:38:28 [INFO] [stdout] | [INFO] [stdout] 38 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:39:30 [INFO] [stdout] | [INFO] [stdout] 39 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:31 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:60:14 [INFO] [stdout] | [INFO] [stdout] 60 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:61:14 [INFO] [stdout] | [INFO] [stdout] 61 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:62:14 [INFO] [stdout] | [INFO] [stdout] 62 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let t = _mm_slli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let s = _mm_srli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let t = _mm_srli_epi16::<8>(t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | _mm_add_epi16(s, t) // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s1 = packed_distance_as_u16x8(x1, y1); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | let s2 = packed_distance_as_u16x8(x2, y2); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let s = _mm_add_epi16(s1, s2); // Both halfs SUM (16-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=192 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:112:17 [INFO] [stdout] | [INFO] [stdout] 112 | let mut s = _mm_set1_epi16(0); // SUM (16-bit sliced; 0..=192) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:33 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:32:25 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe fn packed_distance_as_u32x4(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:34:28 [INFO] [stdout] | [INFO] [stdout] 34 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | let value_dword_0x01010101 = _mm_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:31 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:31 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | _mm_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s1 = packed_distance_as_u32x4(x1, y1); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:30 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s2 = packed_distance_as_u32x4(x2, y2); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let s = _mm_add_epi32(s1, s2); // Both halfs SUM (32-bit sliced; 0..=192) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=768 on lane 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | _mm_cvtsi128_si32(s) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let mut s = _mm_set1_epi32(0); // SUM (32-bit sliced; 0..=384) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:102:1 [INFO] [stdout] | [INFO] [stdout] 102 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:108:33 [INFO] [stdout] | [INFO] [stdout] 108 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:109:17 [INFO] [stdout] | [INFO] [stdout] 109 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:109:33 [INFO] [stdout] | [INFO] [stdout] 109 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | s = _mm_add_epi32(s, packed_distance_as_u32x4(x, y)); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:110:30 [INFO] [stdout] | [INFO] [stdout] 110 | s = _mm_add_epi32(s, packed_distance_as_u32x4(x, y)); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=1536 on lane 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | _mm_cvtsi128_si32(s) as u32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | let qv1 = _mm256_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:31:15 [INFO] [stdout] | [INFO] [stdout] 31 | let qv2 = _mm256_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:32:15 [INFO] [stdout] | [INFO] [stdout] 32 | let qv3 = _mm256_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | let hibit = _mm256_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:35:20 [INFO] [stdout] | [INFO] [stdout] 35 | let shufb_lo = _mm256_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 36 | | -128, -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 37 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, [INFO] [stdout] 38 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:40:20 [INFO] [stdout] | [INFO] [stdout] 40 | let shufb_hi = _mm256_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 41 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, -128, [INFO] [stdout] 42 | | -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 43 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | let data = _mm256_xor_si256( [INFO] [stdout] | ________________^ [INFO] [stdout] 45 | | _mm256_loadu_si256(buckets.as_ptr() as *const __m256i), [INFO] [stdout] 46 | | hibit, [INFO] [stdout] 47 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | _mm256_loadu_si256(buckets.as_ptr() as *const __m256i), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qc2 = _mm256_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qb1 = _mm256_shuffle_epi8(qc2, shufb_hi); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qb1 = _mm256_movemask_epi8(qb1) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | let qc1 = _mm256_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let qc3 = _mm256_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 53 | let qb0 = _mm256_xor_si256(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | let qb0 = _mm256_xor_si256(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:55:15 [INFO] [stdout] | [INFO] [stdout] 55 | let qb0 = _mm256_shuffle_epi8(qb0, shufb_lo); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:56:15 [INFO] [stdout] | [INFO] [stdout] 56 | let qb0 = _mm256_movemask_epi8(qb0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_avx2::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:91:40 [INFO] [stdout] | [INFO] [stdout] 91 | (out[0], out[1]) = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 98 | / aggregation_func_template! { [INFO] [stdout] 99 | | aggregate_48 = (12, 48); [INFO] [stdout] 100 | | aggregate_128 = (32, 128); [INFO] [stdout] 101 | | aggregate_256 = (64, 256); [INFO] [stdout] 102 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | / pub(super) unsafe fn $name( [INFO] [stdout] 80 | | out: &mut [u8; $size_small], [INFO] [stdout] 81 | | buckets: &[u32; $size_large], [INFO] [stdout] 82 | | q1: u32, [INFO] [stdout] 83 | | q2: u32, [INFO] [stdout] 84 | | q3: u32 [INFO] [stdout] 85 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 98 | / aggregation_func_template! { [INFO] [stdout] 99 | | aggregate_48 = (12, 48); [INFO] [stdout] 100 | | aggregate_128 = (32, 128); [INFO] [stdout] 101 | | aggregate_256 = (64, 256); [INFO] [stdout] 102 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | let qv1 = _mm_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:38:15 [INFO] [stdout] | [INFO] [stdout] 38 | let qv2 = _mm_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | let qv3 = _mm_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | let hibit = _mm_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 41 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let qc2 = _mm_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_packs_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | let qb1 = _mm_packs_epi16(qc2, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_undefined_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:43:36 [INFO] [stdout] | [INFO] [stdout] 43 | let qb1 = _mm_packs_epi16(qc2, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:44:15 [INFO] [stdout] | [INFO] [stdout] 44 | let qb1 = _mm_movemask_epi8(qb1) as u32 & 0xaa; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:45:15 [INFO] [stdout] | [INFO] [stdout] 45 | let qc1 = _mm_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:46:15 [INFO] [stdout] | [INFO] [stdout] 46 | let qc3 = _mm_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | let qb0 = _mm_xor_si128(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qb0 = _mm_xor_si128(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_packs_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qb0 = _mm_packs_epi16(qb0, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_undefined_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:49:36 [INFO] [stdout] | [INFO] [stdout] 49 | let qb0 = _mm_packs_epi16(qb0, _mm_undefined_si128()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qb0 = _mm_movemask_epi8(qb0) as u32 & 0x55; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_sse2::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | *out = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 87 | / aggregation_func_template! { [INFO] [stdout] 88 | | aggregate_48 = (12, 48); [INFO] [stdout] 89 | | aggregate_128 = (32, 128); [INFO] [stdout] 90 | | aggregate_256 = (64, 256); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / pub(super) unsafe fn $name( [INFO] [stdout] 73 | | out: &mut [u8; $size_small], [INFO] [stdout] 74 | | buckets: &[u32; $size_large], [INFO] [stdout] 75 | | q1: u32, [INFO] [stdout] 76 | | q2: u32, [INFO] [stdout] 77 | | q3: u32 [INFO] [stdout] 78 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 87 | / aggregation_func_template! { [INFO] [stdout] 88 | | aggregate_48 = (12, 48); [INFO] [stdout] 89 | | aggregate_128 = (32, 128); [INFO] [stdout] 90 | | aggregate_256 = (64, 256); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | let qv1 = _mm_set1_epi32((q1 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | unsafe fn sub_aggregation(buckets: &[u32], q1: u32, q2: u32, q3: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | let qv2 = _mm_set1_epi32((q2 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:35:15 [INFO] [stdout] | [INFO] [stdout] 35 | let qv3 = _mm_set1_epi32((q3 ^ 0x80000000) as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | let hibit = _mm_set1_epi32(0x80000000u32 as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:37:20 [INFO] [stdout] | [INFO] [stdout] 37 | let shufb_lo = _mm_set_epi8( [INFO] [stdout] | ____________________^ [INFO] [stdout] 38 | | -128, -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, [INFO] [stdout] 39 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:40:30 [INFO] [stdout] | [INFO] [stdout] 40 | let data = _mm_xor_si128(_mm_loadu_si128(buckets.as_ptr() as *const __m128i), hibit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:41:15 [INFO] [stdout] | [INFO] [stdout] 41 | let qc2 = _mm_cmpgt_epi32(data, qv2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:42:15 [INFO] [stdout] | [INFO] [stdout] 42 | let qb1 = _mm_shuffle_epi8( [INFO] [stdout] | _______________^ [INFO] [stdout] 43 | | qc2, [INFO] [stdout] 44 | | _mm_set_epi8( [INFO] [stdout] 45 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 46 | | ), [INFO] [stdout] 47 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / _mm_set_epi8( [INFO] [stdout] 45 | | -128, -128, -128, -128, -128, -128, -128, -128, 12, -128, 8, -128, 4, -128, 0, -128, [INFO] [stdout] 46 | | ), [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:48:15 [INFO] [stdout] | [INFO] [stdout] 48 | let qb1 = _mm_movemask_epi8(qb1) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | let qc1 = _mm_cmpgt_epi32(data, qv1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cmpgt_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 50 | let qc3 = _mm_cmpgt_epi32(data, qv3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | let qb0 = _mm_xor_si128(qc2, qc1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | let qb0 = _mm_xor_si128(qb0, qc3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 53 | let qb0 = _mm_shuffle_epi8(qb0, shufb_lo); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_movemask_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | let qb0 = _mm_movemask_epi8(qb0) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `generate::bucket_aggregation::x86_ssse3::sub_aggregation` is unsafe and requires unsafe block [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | *out = sub_aggregation(subbuckets, q1, q2, q3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 91 | / aggregation_func_template! { [INFO] [stdout] 92 | | aggregate_48 = (12, 48); [INFO] [stdout] 93 | | aggregate_128 = (32, 128); [INFO] [stdout] 94 | | aggregate_256 = (64, 256); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/generate/bucket_aggregation/x86_ssse3.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | / pub(super) unsafe fn $name( [INFO] [stdout] 77 | | out: &mut [u8; $size_small], [INFO] [stdout] 78 | | buckets: &[u32; $size_large], [INFO] [stdout] 79 | | q1: u32, [INFO] [stdout] 80 | | q2: u32, [INFO] [stdout] 81 | | q3: u32 [INFO] [stdout] 82 | | ) { [INFO] [stdout] | |_____________^ [INFO] [stdout] ... [INFO] [stdout] 91 | / aggregation_func_template! { [INFO] [stdout] 92 | | aggregate_48 = (12, 48); [INFO] [stdout] 93 | | aggregate_128 = (32, 128); [INFO] [stdout] 94 | | aggregate_256 = (64, 256); [INFO] [stdout] 95 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `aggregation_func_template` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors; 238 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `fast-tlsh` (lib) due to 5 previous errors; 238 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | let mask_dibit_01 = _mm256_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | unsafe fn packed_distance_as_u32x8(x: __m256i, y: __m256i) -> __m256i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | let mask_dibit_10 = _mm256_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:31:28 [INFO] [stdout] | [INFO] [stdout] 31 | let mask_nibble_0011 = _mm256_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_byte_00001111 = _mm256_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | let value_dword_0x01010101 = _mm256_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let z = _mm256_xor_si256(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | let ta = _mm256_and_si256(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:39:14 [INFO] [stdout] | [INFO] [stdout] 39 | let tb = _mm256_and_si256(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:14 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | let ta = _mm256_or_si256(ta, _mm256_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let tb = _mm256_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let ta = _mm256_xor_si256(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_xor_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let tb = _mm256_xor_si256(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let sa = _mm256_and_si256(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm256_and_si256(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm256_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm256_and_si256(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm256_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm256_and_si256(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_or_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:50:34 [INFO] [stdout] | [INFO] [stdout] 50 | let tb = _mm256_or_si256(tb, _mm256_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let sa = _mm256_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let sb = _mm256_and_si256(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm256_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sb = _mm256_and_si256(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let tb = _mm256_and_si256(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let sb = _mm256_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let s = _mm256_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let t = _mm256_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let s = _mm256_and_si256(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_and_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let t = _mm256_and_si256(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let s = _mm256_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm256_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | _mm256_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let x = _mm256_loadu_si256(body1 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:72:1 [INFO] [stdout] | [INFO] [stdout] 72 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let y = _mm256_loadu_si256(body2 as *const u8 as *const __m256i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:83:14 [INFO] [stdout] | [INFO] [stdout] 83 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let x = _mm256_loadu_si256(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:91:1 [INFO] [stdout] | [INFO] [stdout] 91 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let y = _mm256_loadu_si256(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:103:14 [INFO] [stdout] | [INFO] [stdout] 103 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:107:32 [INFO] [stdout] | [INFO] [stdout] 107 | let x = _mm256_loadu_si256(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_loadu_si256` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | let y = _mm256_loadu_si256(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_avx2::packed_distance_as_u32x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | let s = packed_distance_as_u32x8(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let t = _mm256_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=192 on lanes 0,1,4,5) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let t = _mm256_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let s = _mm256_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0,4) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let s0 = _mm256_extract_epi32::<0>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_extract_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_avx2.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let s1 = _mm256_extract_epi32::<4>(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:36:25 [INFO] [stdout] | [INFO] [stdout] 36 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn packed_distance_as_u16x8(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:37:25 [INFO] [stdout] | [INFO] [stdout] 37 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:38:28 [INFO] [stdout] | [INFO] [stdout] 38 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:39:30 [INFO] [stdout] | [INFO] [stdout] 39 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:46:31 [INFO] [stdout] | [INFO] [stdout] 46 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:60:14 [INFO] [stdout] | [INFO] [stdout] 60 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:61:14 [INFO] [stdout] | [INFO] [stdout] 61 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:62:14 [INFO] [stdout] | [INFO] [stdout] 62 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let t = _mm_slli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let s = _mm_srli_epi16::<8>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let t = _mm_srli_epi16::<8>(t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | _mm_add_epi16(s, t) // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s1 = packed_distance_as_u16x8(x1, y1); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | let s2 = packed_distance_as_u16x8(x2, y2); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let s = _mm_add_epi16(s1, s2); // Both halfs SUM (16-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=192 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:112:17 [INFO] [stdout] | [INFO] [stdout] 112 | let mut s = _mm_set1_epi16(0); // SUM (16-bit sliced; 0..=192) after 4 loops [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn distance_64(body1: &[u8; 64], body2: &[u8; 64]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:114:33 [INFO] [stdout] | [INFO] [stdout] 114 | let x = _mm_loadu_si128(px.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | let y = _mm_loadu_si128(py.add(i)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse2::packed_distance_as_u16x8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | s = _mm_add_epi16(s, packed_distance_as_u16x8(x, y)); // SUM (16-bit sliced; 0..=48) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=384 on lanes 0-3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi16` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let s = _mm_add_epi16(s, t); // Both halfs SUM (16-bit sliced; 0..=768 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_cvtsi128_si32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse2.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let t = _mm_cvtsi128_si32(s) as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:32:25 [INFO] [stdout] | [INFO] [stdout] 32 | let mask_dibit_01 = _mm_set1_epi8(0b01_01_01_01i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe fn packed_distance_as_u32x4(x: __m128i, y: __m128i) -> __m128i { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | let mask_dibit_10 = _mm_set1_epi8(0b10_10_10_10u8 as i8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:34:28 [INFO] [stdout] | [INFO] [stdout] 34 | let mask_nibble_0011 = _mm_set1_epi8(0b0011_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi8` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let mask_byte_00001111 = _mm_set1_epi8(0b00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_set1_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | let value_dword_0x01010101 = _mm_set1_epi32(0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let z = _mm_xor_si128(x, y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | let ta = _mm_and_si128(y, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | let tb = _mm_and_si128(x, mask_dibit_01); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:43:31 [INFO] [stdout] | [INFO] [stdout] 43 | let ta = _mm_or_si128(ta, _mm_slli_epi32::<1>(ta)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_sub_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | let tb = _mm_sub_epi32(mask_dibit_10, tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let ta = _mm_xor_si128(ta, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_xor_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | let tb = _mm_xor_si128(tb, x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | let sa = _mm_and_si128(ta, z); // SUM 1 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | let tb = _mm_and_si128(tb, z); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:49:14 [INFO] [stdout] | [INFO] [stdout] 49 | let ta = _mm_srli_epi32::<2>(sa); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:50:14 [INFO] [stdout] | [INFO] [stdout] 50 | let sa = _mm_and_si128(sa, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | let tb = _mm_srli_epi32::<1>(tb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | let ta = _mm_and_si128(ta, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_or_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_slli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:53:31 [INFO] [stdout] | [INFO] [stdout] 53 | let tb = _mm_or_si128(tb, _mm_slli_epi32::<1>(tb)); // * 3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | let sa = _mm_add_epi32(sa, ta); // SUM 1 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | let sb = _mm_and_si128(tb, z); // SUM 2 (2-bit sliced; 0..=3) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | let tb = _mm_srli_epi32::<2>(sb); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | let sb = _mm_and_si128(sb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | let tb = _mm_and_si128(tb, mask_nibble_0011); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | let sb = _mm_add_epi32(sb, tb); // SUM 2 (4-bit sliced; 0..=6) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let s = _mm_add_epi32(sb, sa); // SUM (4-bit sliced; 0..=12) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | let t = _mm_srli_epi32::<4>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let s = _mm_and_si128(s, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_and_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let t = _mm_and_si128(t, mask_byte_00001111); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | let s = _mm_add_epi32(s, t); // SUM (8-bit sliced; 0..=24) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_mullo_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let s = _mm_mullo_epi32(s, value_dword_0x01010101); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_srli_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | _mm_srli_epi32::<24>(s) // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | let x1 = _mm_loadu_si128(px); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | pub unsafe fn distance_32(body1: &[u8; 32], body2: &[u8; 32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | let y1 = _mm_loadu_si128(py); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:82:14 [INFO] [stdout] | [INFO] [stdout] 82 | let s1 = packed_distance_as_u32x4(x1, y1); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:85:30 [INFO] [stdout] | [INFO] [stdout] 85 | let x2 = _mm_loadu_si128(px.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_loadu_si128` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::add` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let y2 = _mm_loadu_si128(py.add(1)); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `compare::dist_body::x86_sse4_1::packed_distance_as_u32x4` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | let s2 = packed_distance_as_u32x4(x2, y2); // SUM (32-bit sliced; 0..=96) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let s = _mm_add_epi32(s1, s2); // Both halfs SUM (32-bit sliced; 0..=192) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let t = _mm_shuffle_epi32::<0b11_10_11_10>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let s = _mm_add_epi32(s, t); // Both halfs SUM (32-bit sliced; 0..=384 on lanes 0-1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_shuffle_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let t = _mm_shuffle_epi32::<0b01_01_01_01>(s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::arch::x86_64::_mm_add_epi32` is unsafe and requires unsafe block [INFO] [stdout] --> src/compare/dist_body/x86_sse4_1.rs:94:13 [INFO] [stdout] | [WARN] too many lines in the log, truncating it