[EXPERIMENT] Test 8-bit tags for hashbrown by Amanieu · Pull Request #146909 · rust-lang/rust (original) (raw)

[TIMING:start] compile::Std { target: aarch64-unknown-linux-gnu, build_compiler: Compiler { stage: 1, host: aarch64-unknown-linux-gnu, forced_compiler: false }, crates: [], force_recompile: false, extra_rust_args: [], is_for_mir_opt_tests: false }
[TIMING:start] compile::StartupObjects { compiler: Compiler { stage: 1, host: aarch64-unknown-linux-gnu, forced_compiler: false }, target: aarch64-unknown-linux-gnu }
[TIMING:end] compile::StartupObjects { compiler: Compiler { stage: 1, host: aarch64-unknown-linux-gnu, forced_compiler: false }, target: aarch64-unknown-linux-gnu } -- 0.000
##[group]Building stage1 library artifacts (stage1 -> stage1, aarch64-unknown-linux-gnu)
    Updating git repository `https://github.com/gaujay/hashbrown.git`
    Updating crates.io index
---
   Compiling rustc-std-workspace-alloc v1.99.0 (/checkout/library/rustc-std-workspace-alloc)
   Compiling panic_unwind v0.0.0 (/checkout/library/panic_unwind)
   Compiling gimli v0.32.0
[RUSTC-TIMING] rustc_std_workspace_alloc test:false 0.031
   Compiling hashbrown v0.16.0 (https://github.com/gaujay/hashbrown.git?branch=8-bits-tag#fcce0699)
[RUSTC-TIMING] panic_unwind test:false 0.100
error[E0308]: mismatched types
     --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/control/group/neon.rs:72:61
      |
   72 |             let cmp = neon::vceq_u8(self.0, neon::vdup_n_u8(tag.0));
      |                                             --------------- ^^^^^ expected `u8`, found `i8`
      |                                             |
      |                                             arguments to this function are incorrect
      |
note: function defined here
     --> /checkout/library/core/src/../../stdarch/crates/core_arch/src/arm_shared/neon/generated.rs:10793:8
      |
10793 | pub fn vdup_n_u8(value: u8) -> uint8x8_t {
      |        ^^^^^^^^^
help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
      |
   72 |             let cmp = neon::vceq_u8(self.0, neon::vdup_n_u8(tag.0.try_into().unwrap()));
      |                                                                  ++++++++++++++++++++

error[E0308]: mismatched types
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/raw/mod.rs:1707:40
     |
1707 |             for bit in group.match_tag(tag_hash) {
     |                              --------- ^^^^^^^^ expected `Tag`, found `i32`
     |                              |
     |                              arguments to this method are incorrect
     |
note: method defined here
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/control/group/neon.rs:70:19
     |
  70 |     pub(crate) fn match_tag(self, tag: Tag) -> BitMask {
     |                   ^^^^^^^^^       --------

error[E0308]: mismatched types
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/raw/mod.rs:1916:40
     |
1916 |             for bit in group.match_tag(tag_hash) {
     |                              --------- ^^^^^^^^ expected `Tag`, found `i32`
     |                              |
     |                              arguments to this method are incorrect
     |
note: method defined here
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/control/group/neon.rs:70:19
     |
  70 |     pub(crate) fn match_tag(self, tag: Tag) -> BitMask {
     |                   ^^^^^^^^^       --------

error[E0308]: mismatched types
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/raw/mod.rs:4085:39
     |
4085 |         let bitmask = group.match_tag(tag_hash).into_iter();
     |                             --------- ^^^^^^^^ expected `Tag`, found `i32`
     |                             |
     |                             arguments to this method are incorrect
     |
note: method defined here
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/control/group/neon.rs:70:19
     |
  70 |     pub(crate) fn match_tag(self, tag: Tag) -> BitMask {
     |                   ^^^^^^^^^       --------

error[E0308]: mismatched types
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/raw/mod.rs:4139:53
     |
4139 |                 self.bitmask = self.group.match_tag(self.tag_hash).into_iter();
     |                                           --------- ^^^^^^^^^^^^^ expected `Tag`, found `i32`
     |                                           |
     |                                           arguments to this method are incorrect
     |
note: method defined here
    --> /cargo/git/checkouts/hashbrown-19ea029273e5a732/fcce069/src/control/group/neon.rs:70:19
     |
  70 |     pub(crate) fn match_tag(self, tag: Tag) -> BitMask {
     |                   ^^^^^^^^^       --------

[RUSTC-TIMING] alloc test:false 6.295
   Compiling std_detect v0.1.5 (/checkout/library/std_detect)
For more information about this error, try `rustc --explain E0308`.