1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//! Target architecture definition trait with architecture-level constants.
//!
//! `SimdArch` is a sealed-by-convention trait implemented by ZST markers.
//! Constants here are architecture-wide and do not require a scalar type `T` binding,
//! unlike `SimdKernel<T>` which is type-parameterized.
/// ISA family classification for architecture markers.
///
/// Used for compile-time routing and documentation. Does not affect code generation.
/// Trait representing a SIMD instruction set architecture.
///
/// Implemented by Zero-Sized Types (ZSTs). Constants are queryable without a scalar
/// type parameter — contrast with `SimdKernel<T>` which requires `T` to be known.
/// Panics unless `Arch` can execute on this host.
///
/// Kernel methods are `#[target_feature]`-gated, so invoking one on a host
/// lacking those features is undefined behavior. Types parameterized by `Arch`
/// call this where they are built, which turns "the host supports `Arch`" into
/// an invariant of holding the value — the discharge every `unsafe` kernel call
/// downstream relies on. Constructors that can report failure return `None`
/// instead of calling this.
///
/// The probe caches its CPUID result, so repeated calls are a relaxed load.
///
/// # Panics
/// If `Arch::is_runtime_supported()` is false.
pub