rchikhi / rust-seq2kminmers

Iterate k-min-mers from a DNA sequence in Rust
13 stars 2 forks source link

Cannot compile on Apple M1 #4

Closed ekimb closed 1 year ago

ekimb commented 1 year ago

cargo run yields a lot of errors, presumably because some low-level functions and types are not compatible with M1 chips. Breaks ekimb/mapquik as well.

Complete output:

    Compiling rust-seq2kminmers v0.1.0 (/Users/bekim/rust-seq2kminmers)
error[E0412]: cannot find type `__m512i` in this scope
  --> src/nthash_avx512_32.rs:16:17
   |
16 |     _positions :__m512i,
   |                 ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
  --> src/nthash_avx512_32.rs:17:12
   |
17 |     _hVal :__m512i,
   |            ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
  --> src/nthash_avx512_32.rs:18:13
   |
18 |     _fhVal :__m512i,
   |             ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
  --> src/nthash_avx512_32.rs:19:13
   |
19 |     _rhVal :__m512i,
   |             ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m128i` in this scope
   --> src/nthash_avx512_32.rs:178:34
    |
178 | unsafe fn _mm_CKX_epu8(_kmerSeq: __m128i) -> __m128i{
    |                                  ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m128i` in this scope
   --> src/nthash_avx512_32.rs:178:46
    |
178 | unsafe fn _mm_CKX_epu8(_kmerSeq: __m128i) -> __m128i{
    |                                              ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:195:83
    |
195 | unsafe fn _mm512_rori31_epu32<const IMM: u32, const THIRTYTWO_MINUS_IMM: u32>(_v: __m512i) -> __m512i {
    |                                                                                   ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:195:95
    |
195 | unsafe fn _mm512_rori31_epu32<const IMM: u32, const THIRTYTWO_MINUS_IMM: u32>(_v: __m512i) -> __m512i {
    |                                                                                               ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:209:35
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    |                                   ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:209:48
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    |                                                ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:209:60
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    |                                                            ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:225:62
    |
225 | unsafe fn _mm512_LKX_epu32(kmerSeq: &[u8], offset :usize) -> __m512i {
    |                                                              ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:242:62
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    |                                                              ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:261:62
    |
261 | unsafe fn _mm512_LKR_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    |                                                              ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:281:57
    |
281 | unsafe fn _mm512_NTF_epu32(kmerSeq: &[u8], k: usize) -> __m512i {
    |                                                         ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:300:59
    |
300 | unsafe fn _mm512_NTR_epu32(kmerSeq: &[u8], k: usize, _ck: __m512i) -> __m512i {
    |                                                           ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:300:71
    |
300 | unsafe fn _mm512_NTR_epu32(kmerSeq: &[u8], k: usize, _ck: __m512i) -> __m512i {
    |                                                                       ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:330:67
    |
330 | unsafe fn _mm512_NTC_epu32_initial(kmerSeq: &[u8], k: usize, _ck: __m512i) -> (__m512i, __m512i, __m512i) {
    |                                                                   ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:330:80
    |
330 | unsafe fn _mm512_NTC_epu32_initial(kmerSeq: &[u8], k: usize, _ck: __m512i) -> (__m512i, __m512i, __m512i) {
    |                                                                                ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:330:89
    |
330 | unsafe fn _mm512_NTC_epu32_initial(kmerSeq: &[u8], k: usize, _ck: __m512i) -> (__m512i, __m512i, __m512i) {
    |                                                                                         ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:330:98
    |
330 | unsafe fn _mm512_NTC_epu32_initial(kmerSeq: &[u8], k: usize, _ck: __m512i) -> (__m512i, __m512i, __m512i) {
    |                                                                                                  ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:348:44
    |
348 | unsafe fn _mm512_NTF_epu32_sliding(_fhVal: __m512i, _k: __m512i, kmerSeq :&[u8], offsetOut :usize , offsetIn :usize) -> __m512i {
    |                                            ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:348:57
    |
348 | unsafe fn _mm512_NTF_epu32_sliding(_fhVal: __m512i, _k: __m512i, kmerSeq :&[u8], offsetOut :usize , offsetIn :usize) -> __m512i {
    |                                                         ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:348:121
    |
348 | unsafe fn _mm512_NTF_epu32_sliding(_fhVal: __m512i, _k: __m512i, kmerSeq :&[u8], offsetOut :usize , offsetIn :usize) -> __m512i {
    |                                                                                                                         ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:432:44
    |
432 | unsafe fn _mm512_NTR_epu32_sliding(_rhVal: __m512i, _km: __m512i, kmerSeq :&[u8], offsetOut :usize , offsetIn :usize) -> __m512i{
    |                                            ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:432:58
    |
432 | unsafe fn _mm512_NTR_epu32_sliding(_rhVal: __m512i, _km: __m512i, kmerSeq :&[u8], offsetOut :usize , offsetIn :usize) -> __m512i{
    |                                                          ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:432:122
    |
432 | unsafe fn _mm512_NTR_epu32_sliding(_rhVal: __m512i, _km: __m512i, kmerSeq :&[u8], offsetOut :usize , offsetIn :usize) -> __m512i{
    |                                                                                                                          ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:91
    |
513 | unsafe fn _mm512_NTC_epu32_sliding(kmerSeq: &[u8], offsetOut: usize, offsetIn: usize, _k: __m512i, _km: __m512i, _fhVal: __m512i, _rhVal:...
    |                                                                                           ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:105
    |
513 | ...fsetOut: usize, offsetIn: usize, _k: __m512i, _km: __m512i, _fhVal: __m512i, _rhVal: __m512i) -> (__m512i, __m512i, __m512i){
    |                                                       ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:122
    |
513 | ...ffsetIn: usize, _k: __m512i, _km: __m512i, _fhVal: __m512i, _rhVal: __m512i) -> (__m512i, __m512i, __m512i){
    |                                                       ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:139
    |
513 | ...k: __m512i, _km: __m512i, _fhVal: __m512i, _rhVal: __m512i) -> (__m512i, __m512i, __m512i){
    |                                                       ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:152
    |
513 | ...km: __m512i, _fhVal: __m512i, _rhVal: __m512i) -> (__m512i, __m512i, __m512i){
    |                                                       ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:161
    |
513 | ...2i, _fhVal: __m512i, _rhVal: __m512i) -> (__m512i, __m512i, __m512i){
    |                                                       ^^^^^^^ not found in this scope

error[E0412]: cannot find type `__m512i` in this scope
   --> src/nthash_avx512_32.rs:513:170
    |
513 | ...l: __m512i, _rhVal: __m512i) -> (__m512i, __m512i, __m512i){
    |                                                       ^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:43:30
    |
43  |         let mut _positions = _mm512_set_epi32(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
    |                              ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:44:23
    |
44  |         let mut _16 = _mm512_set_epi32(16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16);
    |                       ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:46:19
    |
46  |         let _ck = _mm512_set1_epi32((32 - (k % 32)) as i32);
    |                   ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:49:26
    |
49  |         let _hashBound = _mm512_set1_epi32((hash_bound) as i32); // TODO need to figure out why _sometimes_ I need to divide hash_bound b...
    |                          ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_cmp_epu32_mask` in this scope
  --> src/nthash_avx512_32.rs:55:20
   |
55 |         let mask = _mm512_cmp_epu32_mask(_hVal, _hashBound, 1 /*LT*/);
   |                    ^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compressstoreu_epi32` in this scope
  --> src/nthash_avx512_32.rs:57:9
   |
57 |         _mm512_mask_compressstoreu_epi32(hashes_ptr as *mut u8, mask, _hVal);
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compressstoreu_epi32` in this scope
  --> src/nthash_avx512_32.rs:58:9
   |
58 |         _mm512_mask_compressstoreu_epi32(pos_ptr as *mut u8, mask, _positions);
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_add_epi32` in this scope
   --> src/nthash_avx512_32.rs:59:22
    |
59  |         _positions = _mm512_add_epi32(_positions, _16);
    |                      ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:105:23
    |
105 |             let _16 = _mm512_set_epi32(16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16);
    |                       ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:106:23
    |
106 |             let _k  = _mm512_set1_epi32(self.k     as i32);
    |                       ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:107:23
    |
107 |             let _km = _mm512_set1_epi32((self.k-1) as i32);
    |                       ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:108:30
    |
108 |             let _hashBound = _mm512_set1_epi32((self.hash_bound) as i32); // TODO need to figure out why _sometimes I need to divide hash...
    |                              ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_cmp_epu32_mask` in this scope
   --> src/nthash_avx512_32.rs:130:32
    |
130 |                 let mut mask = _mm512_cmp_epu32_mask(_hVal, _hashBound, 1 /*LT*/);
    |                                ^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compressstoreu_epi32` in this scope
   --> src/nthash_avx512_32.rs:139:21
    |
139 |                     _mm512_mask_compressstoreu_epi32(self.hashes_ptr  as *mut u8, mask, _hVal);
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compressstoreu_epi32` in this scope
   --> src/nthash_avx512_32.rs:140:21
    |
140 |                     _mm512_mask_compressstoreu_epi32(self.pos_ptr  as *mut u8, mask, _positions);                
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_add_epi32` in this scope
   --> src/nthash_avx512_32.rs:142:30
    |
142 |                 _positions = _mm512_add_epi32(_positions, _16);
    |                              ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm_set1_epi8` in this scope
   --> src/nthash_avx512_32.rs:180:17
    |
180 |     let _mask = _mm_set1_epi8(0x0f);
    |                 ^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_set_epi8` in this scope
   --> src/nthash_avx512_32.rs:183:18
    |
183 |     let _table = _mm_set_epi8(
    |                  ^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_and_si128` in this scope
   --> src/nthash_avx512_32.rs:190:9
    |
190 |         _mm_and_si128(
    |         ^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_shuffle_epi8` in this scope
   --> src/nthash_avx512_32.rs:187:5
    |
187 |     _mm_shuffle_epi8(
    |     ^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_srli_epi32` in this scope
   --> src/nthash_avx512_32.rs:197:9
    |
197 |         _mm512_srli_epi32(
    |         ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_slli_epi32` in this scope
   --> src/nthash_avx512_32.rs:201:13
    |
201 |             _mm512_slli_epi32(
    |             ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_srli_epi32` in this scope
   --> src/nthash_avx512_32.rs:200:9
    |
200 |         _mm512_srli_epi32(
    |         ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_or_epi32` in this scope
   --> src/nthash_avx512_32.rs:196:5
    |
196 |     _mm512_or_epi32(
    |     ^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:210:15
    |
210 |     let _32 = _mm512_set1_epi32(32);
    |               ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_srlv_epi32` in this scope
   --> src/nthash_avx512_32.rs:213:9
    |
213 |         _mm512_srlv_epi32(
    |         ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_sub_epi32` in this scope
   --> src/nthash_avx512_32.rs:218:17
    |
218 |                 _mm512_sub_epi32(
    |                 ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_sllv_epi32` in this scope
   --> src/nthash_avx512_32.rs:217:13
    |
217 |             _mm512_sllv_epi32(_v,
    |             ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_srli_epi32` in this scope
   --> src/nthash_avx512_32.rs:216:9
    |
216 |         _mm512_srli_epi32(
    |         ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm512_or_epi32` in this scope
   --> src/nthash_avx512_32.rs:212:5
    |
212 |     _mm512_or_epi32(
    |     ^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`
...
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here

error[E0425]: cannot find function `_mm_loadu_si128` in this scope
   --> src/nthash_avx512_32.rs:228:13
    |
228 |             _mm_loadu_si128(
    |             ^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_cvtepu8_epi32` in this scope
   --> src/nthash_avx512_32.rs:226:5
    |
226 |     _mm512_cvtepu8_epi32(
    |     ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:243:17
    |
243 |     let _seed = _mm512_set_epi32(
    |                 ^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_permutexvar_epi32` in this scope
   --> src/nthash_avx512_32.rs:252:17
    |
252 |     let _kmer = _mm512_permutexvar_epi32(
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:262:17
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
262 |     let _seed = _mm512_set_epi32(
    |                 ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_permutexvar_epi32` in this scope
   --> src/nthash_avx512_32.rs:271:17
    |
271 |     let _kmer = _mm512_permutexvar_epi32(
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_setzero_si512` in this scope
   --> src/nthash_avx512_32.rs:282:21
    |
282 |     let mut _hVal = _mm512_setzero_si512();
    |                     ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_rol_epi32` in this scope
   --> src/nthash_avx512_32.rs:287:17
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
287 |         _hVal = _mm512_rol_epi32(_hVal, 1);
    |                 ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:291:17
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
291 |         _hVal = _mm512_xor_epi32(
    |                 ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_setzero_si512` in this scope
   --> src/nthash_avx512_32.rs:301:17
    |
301 |     let _zero = _mm512_setzero_si512();
    |                 ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_rorv_epi32` in this scope
   --> src/nthash_avx512_32.rs:314:17
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    | ------------------------------------------------------------------ similarly named function `_mm512_rorv31_epu32` defined here
...
314 |         _kmer = _mm512_rorv_epi32(
    |                 ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_rorv31_epu32`

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:318:17
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
318 |         _hVal = _mm512_xor_epi32(
    |                 ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_ror_epi32` in this scope
   --> src/nthash_avx512_32.rs:323:17
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
323 |         _hVal = _mm512_ror_epi32(_hVal, 1);
    |                 ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_cmpgt_epu32_mask` in this scope
   --> src/nthash_avx512_32.rs:335:9
    |
335 |         _mm512_cmpgt_epu32_mask(
    |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_blend_epi32` in this scope
   --> src/nthash_avx512_32.rs:334:17
    |
334 |     let _hVal = _mm512_mask_blend_epi32(
    |                 ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_rolv_epi32` in this scope
   --> src/nthash_avx512_32.rs:359:14
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    | ------------------------------------------------------------------ similarly named function `_mm512_rorv31_epu32` defined here
...
359 |     _out31 = _mm512_rolv_epi32(
    |              ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_rorv31_epu32`

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:363:21
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
363 |     let mut _kmer = _mm512_xor_epi32(
    |                     ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rol_epi32` in this scope
   --> src/nthash_avx512_32.rs:375:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
375 |             _mm512_rol_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:372:9
    |
372 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:370:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
370 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rol_epi32` in this scope
   --> src/nthash_avx512_32.rs:383:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
383 |             _mm512_rol_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:380:9
    |
380 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:378:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
378 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rol_epi32` in this scope
   --> src/nthash_avx512_32.rs:391:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
391 |             _mm512_rol_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:388:9
    |
388 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:386:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
386 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rol_epi32` in this scope
   --> src/nthash_avx512_32.rs:399:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
399 |             _mm512_rol_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:396:9
    |
396 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:394:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
394 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:405:9
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
405 |         _mm512_set1_epi32(15),
    |         ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_permutexvar_epi32` in this scope
   --> src/nthash_avx512_32.rs:404:21
    |
404 |     let mut _hVal = _mm512_permutexvar_epi32(
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:408:20
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
408 |     let _shift31 = _mm512_set_epi32(
    |                    ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rolv_epi32` in this scope
   --> src/nthash_avx512_32.rs:418:13
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    | ------------------------------------------------------------------ similarly named function `_mm512_rorv31_epu32` defined here
...
418 |     _hVal = _mm512_rolv_epi32(
    |             ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_rorv31_epu32`

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:423:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
423 |     _hVal = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rolv_epi32` in this scope
   --> src/nthash_avx512_32.rs:437:13
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    | ------------------------------------------------------------------ similarly named function `_mm512_rorv31_epu32` defined here
...
437 |     _in31 = _mm512_rolv_epi32(
    |             ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_rorv31_epu32`

error[E0425]: cannot find function `_mm512_ror_epi32` in this scope
   --> src/nthash_avx512_32.rs:443:14
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
443 |     _out31 = _mm512_ror_epi32(
    |              ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:447:21
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
447 |     let mut _kmer = _mm512_xor_epi32(
    |                     ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_ror_epi32` in this scope
   --> src/nthash_avx512_32.rs:459:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
459 |             _mm512_ror_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:456:9
    |
456 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:454:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
454 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_ror_epi32` in this scope
   --> src/nthash_avx512_32.rs:467:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
467 |             _mm512_ror_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:464:9
    |
464 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:462:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
462 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_ror_epi32` in this scope
   --> src/nthash_avx512_32.rs:475:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
475 |             _mm512_ror_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:472:9
    |
472 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:470:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
470 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_ror_epi32` in this scope
   --> src/nthash_avx512_32.rs:483:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
483 |             _mm512_ror_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_maskz_expand_epi32` in this scope
   --> src/nthash_avx512_32.rs:480:9
    |
480 |         _mm512_maskz_expand_epi32(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:478:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
478 |     _kmer = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_set1_epi32` in this scope
   --> src/nthash_avx512_32.rs:488:9
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
488 |         _mm512_set1_epi32(15),
    |         ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_permutexvar_epi32` in this scope
   --> src/nthash_avx512_32.rs:487:21
    |
487 |     let mut _hVal = _mm512_permutexvar_epi32(
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
   --> src/nthash_avx512_32.rs:492:20
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
492 |     let _shift31 = _mm512_set_epi32(
    |                    ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_rorv_epi32` in this scope
   --> src/nthash_avx512_32.rs:497:13
    |
209 | unsafe fn _mm512_rorv31_epu32(_v: __m512i, _s: __m512i) -> __m512i {
    | ------------------------------------------------------------------ similarly named function `_mm512_rorv31_epu32` defined here
...
497 |     _hVal = _mm512_rorv_epi32(
    |             ^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_rorv31_epu32`

error[E0425]: cannot find function `_mm512_xor_epi32` in this scope
   --> src/nthash_avx512_32.rs:502:13
    |
242 | unsafe fn _mm512_LKF_epu32(kmerSeq: &[u8], offset: usize) -> __m512i {
    | -------------------------------------------------------------------- similarly named function `_mm512_LKF_epu32` defined here
...
502 |     _hVal = _mm512_xor_epi32(
    |             ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `_mm512_LKF_epu32`

error[E0425]: cannot find function `_mm512_cmpgt_epu32_mask` in this scope
   --> src/nthash_avx512_32.rs:518:9
    |
518 |         _mm512_cmpgt_epu32_mask(
    |         ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_blend_epi32` in this scope
   --> src/nthash_avx512_32.rs:517:17
    |
517 |     let _hVal = _mm512_mask_blend_epi32(
    |                 ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
  --> src/hpc.rs:54:30
   |
54 |         let mut _positions = _mm512_set_epi32(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
   |                              ^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_set_epi32` in this scope
  --> src/hpc.rs:55:23
   |
55 |         let mut _16 = _mm512_set_epi32(16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16);
   |                       ^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_loadu_epi8` in this scope
  --> src/hpc.rs:79:24
   |
79 |             let v128 = _mm_loadu_epi8(ptr.offset((i as isize) * (width as isize)));
   |                        ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_slli_si128` in this scope
  --> src/hpc.rs:86:32
   |
86 |             let v128_shifted = _mm_slli_si128(v128,1);
   |                                ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_cmpeq_epi8_mask` in this scope
  --> src/hpc.rs:88:31
   |
88 |             let mut mask = (! _mm_cmpeq_epi8_mask(v128,v128_shifted)) & 0xFFFE;
   |                               ^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_setzero_si512` in this scope
   --> src/hpc.rs:102:31
    |
102 |             let tmp_res_512 = _mm512_setzero_si512();
    |                               ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_cvtepi8_epi32` in this scope
   --> src/hpc.rs:103:28
    |
103 |             let v128_512 = _mm512_cvtepi8_epi32(v128);
    |                            ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compress_epi32` in this scope
   --> src/hpc.rs:104:31
    |
104 |             let tmp_res_512 = _mm512_mask_compress_epi32(tmp_res_512, mask, v128_512);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_cvtepi32_epi8` in this scope
   --> src/hpc.rs:105:31
    |
105 |             let tmp_res_128 = _mm512_cvtepi32_epi8(tmp_res_512);
    |                               ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_mask_storeu_epi8` in this scope
   --> src/hpc.rs:107:13
    |
107 |             _mm_mask_storeu_epi8            (res_ptr.offset(hpc_len as isize) as *mut i8, mask128, tmp_res_128);
    |             ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compressstoreu_epi32` in this scope
   --> src/hpc.rs:108:13
    |
108 |             _mm512_mask_compressstoreu_epi32(pos_ptr.offset(hpc_len as isize) as *mut u8, mask,    _positions);
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_add_epi32` in this scope
   --> src/hpc.rs:110:27
    |
110 |              _positions = _mm512_add_epi32(_positions, _16);
    |                           ^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_loadu_epi8` in this scope
   --> src/hpc.rs:122:24
    |
122 |             let v128 = _mm_loadu_epi8(ptr.offset((i as isize) * (width as isize)));
    |                        ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_slli_si128` in this scope
   --> src/hpc.rs:123:32
    |
123 |             let v128_shifted = _mm_slli_si128(v128,1);
    |                                ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_cmpeq_epi8_mask` in this scope
   --> src/hpc.rs:124:31
    |
124 |             let mut mask = (! _mm_cmpeq_epi8_mask(v128,v128_shifted)) & 0xFFFE;
    |                               ^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_setzero_si512` in this scope
   --> src/hpc.rs:127:31
    |
127 |             let tmp_res_512 = _mm512_setzero_si512();
    |                               ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_cvtepi8_epi32` in this scope
   --> src/hpc.rs:128:28
    |
128 |             let v128_512 = _mm512_cvtepi8_epi32(v128);
    |                            ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compress_epi32` in this scope
   --> src/hpc.rs:129:31
    |
129 |             let tmp_res_512 = _mm512_mask_compress_epi32(tmp_res_512, mask, v128_512);
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_cvtepi32_epi8` in this scope
   --> src/hpc.rs:130:31
    |
130 |             let tmp_res_128 = _mm512_cvtepi32_epi8(tmp_res_512);
    |                               ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm_mask_storeu_epi8` in this scope
   --> src/hpc.rs:132:13
    |
132 |             _mm_mask_storeu_epi8            (res_ptr.offset(hpc_len as isize) as *mut i8, mask128, tmp_res_128);
    |             ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_mask_compressstoreu_epi32` in this scope
   --> src/hpc.rs:133:13
    |
133 |             _mm512_mask_compressstoreu_epi32(pos_ptr.offset(hpc_len as isize) as *mut u8, mask,    _positions);
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `_mm512_add_epi32` in this scope
   --> src/hpc.rs:134:27
    |
134 |              _positions = _mm512_add_epi32(_positions, _16);
    |                           ^^^^^^^^^^^^^^^^ not found in this scope

Some errors have detailed explanations: E0412, E0425.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `rust-seq2kminmers` (lib) due to 142 previous errors
rchikhi commented 1 year ago

did you compile with +nightly?

rchikhi commented 1 year ago

i'm not even sure why you're not getting the usual error when compiling without nightly..

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> src/lib.rs:1:12
  |
1 | #![feature(stdsimd)]
  |            ^^^^^^^

error[E0554]: `#![feature]` may not be used on the stable release channel
 --> src/lib.rs:2:12
  |
2 | #![feature(core_intrinsics)]
  |            ^^^^^^^^^^^^^^^

I tried compiling with nightly on a M1 OSX EC2 instance, worked.

ekimb commented 1 year ago

I had nightly-aarch64-apple-darwin as the active toolchain (and no nightly-x86_64), so I had to run

rustup install nightly-x86_64-apple-darwin rustup install stable-x86_64-apple-darwin

and

rustup default nightly-x86_64-apple-darwin

then cargo build --release gives the errors above, and cargo +nightly build --release compiles successfully.

But when I run target/release/rust-seq2kminmers now, I get

seq:    "AACTGCACTGCACTGCACTGCACACTGCACTGCACTGCACTGCACACTGCACTGCACTGACTGCACTGCACTGCACTGCACTGCCTGC"
HPC:    "ACTGCACTGCACTGCACTGCACACTGCACTGCACTGCACTGCACACTGCACTGCACTGACTGCACTGCACTGCACTGCACTGCTGC"
[1]    74322 illegal hardware instruction  target/release/rust-seq2kminmers

which seems to be an issue with encode_rle_simd in hpc.rs. Are you having the same issue on the EC2 instance?

rchikhi commented 1 year ago

Ahhh good find, I didn't know about nightly aarch vs x86, yes we're using x86 simd here

Yes that's fine now. The last error you're getting is because this project is mainly a library, the main.rs file is a toy example that runs SIMD instructions (https://github.com/rchikhi/rust-seq2kminmers/blob/master/src/main.rs#L42).

(I'll remove this crash in the next commit i'm working on)