Skip to content

[EXPERIMENT] require simd types be used in target_feature-annotated functions #143682

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

JamieCunliffe
Copy link
Contributor

A hacky patch for a crater run to determine how widespread breakage would be if SIMD types could only be used in functions appropriately annotated with target_feature.

r? @davidtwco

@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jul 9, 2025
@davidtwco
Copy link
Member

This will need rebased for the try build to pass.

@JamieCunliffe JamieCunliffe force-pushed the target-feature-type branch from 6ab7666 to 24569e6 Compare July 9, 2025 12:50
@rust-log-analyzer

This comment has been minimized.

@JamieCunliffe JamieCunliffe force-pushed the target-feature-type branch from 24569e6 to ddd98d5 Compare July 9, 2025 15:10
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-miri failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] blake3 test:false 2.108
   Compiling scoped-tls v1.0.1
[RUSTC-TIMING] scoped_tls test:false 0.111
   Compiling zerofrom-derive v0.1.6
error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:100:9
    |
100 |     let MASK = _mm256_set_epi64x(
    |         ^^^^

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:109:21
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
    | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:109:45
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
    | |                                             ^^^^^
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:110:21
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
    | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:110:45
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
    | |                                             ^^^^^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:112:21
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
111 | |
112 | |             x[$i] = _mm256_shuffle_epi8(x[$i], MASK);
    | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:112:41
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
111 | |
112 | |             x[$i] = _mm256_shuffle_epi8(x[$i], MASK);
    | |                                         ^^^^^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:115:38
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
...   |
115 | |             let y = _mm256_add_epi64(x[$i], _mm256_set_m128i(t, t));
    | |                                      ^^^^^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:115:45
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
...   |
115 | |             let y = _mm256_add_epi64(x[$i], _mm256_set_m128i(t, t));
    | |                                             ^^^^^^^^^^^^^^^^^^^^^^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:115:17
    |
107 | /     macro_rules! unrolled_iterations {
108 | |         ($($i:literal),*) => {$(
109 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add(8 + $i) as *const _), 1);
110 | |             x[$i] = _mm256_insertf128_si256(x[$i], _mm_loadu_si128(data.add($i) as *const _), 0);
...   |
115 | |             let y = _mm256_add_epi64(x[$i], _mm256_set_m128i(t, t));
    | |                 ^
...   |
119 | |         )*};
120 | |     }
    | |_____- in this expansion of `unrolled_iterations!`
121 |
122 |       unrolled_iterations!(0, 1, 2, 3, 4, 5, 6, 7);
    |       -------------------------------------------- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:158:45
    |
158 |             let y = sha512_update_x_avx2(x, _mm256_set_m128i(t, t));
    |                                             ^^^^^^^^^^^^^^^^^^^^^^

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:158:17
    |
158 |             let y = sha512_update_x_avx2(x, _mm256_set_m128i(t, t));
    |                 ^

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:256:17
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
256 | |             let mut t0 = $ALIGNR8(x[1], x[0], 8);
    | |                 ^^^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:256:35
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
256 | |             let mut t0 = $ALIGNR8(x[1], x[0], 8);
    | |                                   ^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:256:41
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
256 | |             let mut t0 = $ALIGNR8(x[1], x[0], 8);
    | |                                         ^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:258:17
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
258 | |             let mut t3 = $ALIGNR8(x[5], x[4], 8);
    | |                 ^^^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:258:35
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
258 | |             let mut t3 = $ALIGNR8(x[5], x[4], 8);
    | |                                   ^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:258:41
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
258 | |             let mut t3 = $ALIGNR8(x[5], x[4], 8);
    | |                                         ^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:260:17
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
260 | |             let mut t2 = $SRL64(t0, 1);
    | |                 ^^^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:260:33
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
260 | |             let mut t2 = $SRL64(t0, 1);
    | |                                 ^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:262:20
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
262 | |             x[0] = $ADD64(x[0], t3);
    | |                    ^^^^^^^^^^^^^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:262:27
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
262 | |             x[0] = $ADD64(x[0], t3);
    | |                           ^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:262:33
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
262 | |             x[0] = $ADD64(x[0], t3);
    | |                                 ^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:264:18
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
264 | |             t3 = $SRL64(t0, 7);
    | |                  ^^^^^^^^^^^^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:264:25
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
264 | |             t3 = $SRL64(t0, 7);
    | |                         ^^
...   |
320 | |     };
321 | | }
    | |_- in this expansion of `fn_sha512_update_x!`
...
331 | / fn_sha512_update_x!(sha512_update_x_avx2, __m256i, {
332 | |         ADD64 = _mm256_add_epi64,
333 | |         ALIGNR8 = _mm256_alignr_epi8,
334 | |         SRL64 = _mm256_srli_epi64,
335 | |         SLL64 = _mm256_slli_epi64,
336 | |         XOR = _mm256_xor_si256,
337 | | });
    | |__- in this macro invocation

error: The `core::arch::x86_64::__m256i` type depends on the target feature `avx` being enabled
   --> /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/sha512/x86.rs:266:17
    |
246 | / macro_rules! fn_sha512_update_x {
247 | |     ($name:ident, $ty:ident, {
248 | |         ADD64 = $ADD64:ident,
249 | |         ALIGNR8 = $ALIGNR8:ident,
...   |
266 | |             let mut t1 = $SLL64(t0, 64 - 8);
    | |                 ^^^^^^
...   |
320 | |     };

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants