blob: 9d1517e203d19bd1be98b2f5521283f1eb5642b7 (
plain)
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
|
//! Code-generation utilities
crate mod bit_manip;
crate mod llvm;
crate mod math;
crate mod reductions;
crate mod shuffle;
crate mod shuffle1_dyn;
crate mod swap_bytes;
macro_rules! impl_simd_array {
([$elem_ty:ident; $elem_count:expr]:
$tuple_id:ident | $($elem_tys:ident),*) => {
#[derive(Copy, Clone)]
#[repr(simd)]
pub struct $tuple_id($(crate $elem_tys),*);
//^^^^^^^ leaked through SimdArray
impl crate::sealed::Seal for [$elem_ty; $elem_count] {}
impl crate::sealed::SimdArray for [$elem_ty; $elem_count] {
type Tuple = $tuple_id;
type T = $elem_ty;
const N: usize = $elem_count;
type NT = [u32; $elem_count];
}
impl crate::sealed::Seal for $tuple_id {}
impl crate::sealed::Simd for $tuple_id {
type Element = $elem_ty;
const LANES: usize = $elem_count;
type LanesType = [u32; $elem_count];
}
}
}
crate mod pointer_sized_int;
crate mod v16;
crate use self::v16::*;
crate mod v32;
crate use self::v32::*;
crate mod v64;
crate use self::v64::*;
crate mod v128;
crate use self::v128::*;
crate mod v256;
crate use self::v256::*;
crate mod v512;
crate use self::v512::*;
crate mod vSize;
crate use self::vSize::*;
crate mod vPtr;
crate use self::vPtr::*;
|