]> git.proxmox.com Git - rustc.git/blob - vendor/packed_simd_2/src/v256.rs
New upstream version 1.53.0+dfsg1
[rustc.git] / vendor / packed_simd_2 / src / v256.rs
1 //! 256-bit wide vector types
2 #[rustfmt::skip]
3
4 use crate::*;
5
6 impl_i!([i8; 32]: i8x32, m8x32 | i8, u32 | test_v256 |
7 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
8 x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31 |
9 From: |
10 /// A 256-bit vector with 32 `i8` lanes.
11 );
12 impl_u!([u8; 32]: u8x32, m8x32 | u8, u32 | test_v256 |
13 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
14 x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31 |
15 From: |
16 /// A 256-bit vector with 32 `u8` lanes.
17 );
18 impl_m!([m8; 32]: m8x32 | i8, u32 | test_v256 |
19 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
20 x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31 |
21 From: |
22 /// A 256-bit vector mask with 32 `m8` lanes.
23 );
24
25 impl_i!([i16; 16]: i16x16, m16x16 | i16, u16 | test_v256 |
26 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 |
27 From: i8x16, u8x16 |
28 /// A 256-bit vector with 16 `i16` lanes.
29 );
30 impl_u!([u16; 16]: u16x16, m16x16 | u16, u16 | test_v256 |
31 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 |
32 From: u8x16 |
33 /// A 256-bit vector with 16 `u16` lanes.
34 );
35 impl_m!([m16; 16]: m16x16 | i16, u16 | test_v256 |
36 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 |
37 From: m8x16 |
38 /// A 256-bit vector mask with 16 `m16` lanes.
39 );
40
41 impl_i!([i32; 8]: i32x8, m32x8 | i32, u8 | test_v256 | x0, x1, x2, x3, x4, x5, x6, x7 |
42 From: i8x8, u8x8, i16x8, u16x8 |
43 /// A 256-bit vector with 8 `i32` lanes.
44 );
45 impl_u!([u32; 8]: u32x8, m32x8 | u32, u8 | test_v256 | x0, x1, x2, x3, x4, x5, x6, x7 |
46 From: u8x8, u16x8 |
47 /// A 256-bit vector with 8 `u32` lanes.
48 );
49 impl_f!([f32; 8]: f32x8, m32x8 | f32 | test_v256 | x0, x1, x2, x3, x4, x5, x6, x7 |
50 From: i8x8, u8x8, i16x8, u16x8 |
51 /// A 256-bit vector with 8 `f32` lanes.
52 );
53 impl_m!([m32; 8]: m32x8 | i32, u8 | test_v256 | x0, x1, x2, x3, x4, x5, x6, x7 |
54 From: m8x8, m16x8 |
55 /// A 256-bit vector mask with 8 `m32` lanes.
56 );
57
58 impl_i!([i64; 4]: i64x4, m64x4 | i64, u8 | test_v256 | x0, x1, x2, x3 |
59 From: i8x4, u8x4, i16x4, u16x4, i32x4, u32x4 |
60 /// A 256-bit vector with 4 `i64` lanes.
61 );
62 impl_u!([u64; 4]: u64x4, m64x4 | u64, u8 | test_v256 | x0, x1, x2, x3 |
63 From: u8x4, u16x4, u32x4 |
64 /// A 256-bit vector with 4 `u64` lanes.
65 );
66 impl_f!([f64; 4]: f64x4, m64x4 | f64 | test_v256 | x0, x1, x2, x3 |
67 From: i8x4, u8x4, i16x4, u16x4, i32x4, u32x4, f32x4 |
68 /// A 256-bit vector with 4 `f64` lanes.
69 );
70 impl_m!([m64; 4]: m64x4 | i64, u8 | test_v256 | x0, x1, x2, x3 |
71 From: m8x4, m16x4, m32x4 |
72 /// A 256-bit vector mask with 4 `m64` lanes.
73 );
74
75 impl_i!([i128; 2]: i128x2, m128x2 | i128, u8 | test_v256 | x0, x1 |
76 From: i8x2, u8x2, i16x2, u16x2, i32x2, u32x2, i64x2, u64x2 |
77 /// A 256-bit vector with 2 `i128` lanes.
78 );
79 impl_u!([u128; 2]: u128x2, m128x2 | u128, u8 | test_v256 | x0, x1 |
80 From: u8x2, u16x2, u32x2, u64x2 |
81 /// A 256-bit vector with 2 `u128` lanes.
82 );
83 impl_m!([m128; 2]: m128x2 | i128, u8 | test_v256 | x0, x1 |
84 From: m8x2, m16x2, m32x2, m64x2 |
85 /// A 256-bit vector mask with 2 `m128` lanes.
86 );