]> git.lizzy.rs Git - rust.git/blob - library/portable-simd/crates/core_simd/src/vendor/x86.rs
Rollup merge of #85766 - workingjubilee:file-options, r=yaahc
[rust.git] / library / portable-simd / crates / core_simd / src / vendor / x86.rs
1 use crate::simd::*;
2
3 #[cfg(any(target_arch = "x86"))]
4 use core::arch::x86::*;
5
6 #[cfg(target_arch = "x86_64")]
7 use core::arch::x86_64::*;
8
9 from_transmute! { unsafe u8x16 => __m128i }
10 from_transmute! { unsafe u8x32 => __m256i }
11 //from_transmute! { unsafe u8x64 => __m512i }
12 from_transmute! { unsafe i8x16 => __m128i }
13 from_transmute! { unsafe i8x32 => __m256i }
14 //from_transmute! { unsafe i8x64 => __m512i }
15
16 from_transmute! { unsafe u16x8 => __m128i }
17 from_transmute! { unsafe u16x16 => __m256i }
18 from_transmute! { unsafe u16x32 => __m512i }
19 from_transmute! { unsafe i16x8 => __m128i }
20 from_transmute! { unsafe i16x16 => __m256i }
21 from_transmute! { unsafe i16x32 => __m512i }
22
23 from_transmute! { unsafe u32x4 => __m128i }
24 from_transmute! { unsafe u32x8 => __m256i }
25 from_transmute! { unsafe u32x16 => __m512i }
26 from_transmute! { unsafe i32x4 => __m128i }
27 from_transmute! { unsafe i32x8 => __m256i }
28 from_transmute! { unsafe i32x16 => __m512i }
29 from_transmute! { unsafe f32x4 => __m128 }
30 from_transmute! { unsafe f32x8 => __m256 }
31 from_transmute! { unsafe f32x16 => __m512 }
32
33 from_transmute! { unsafe u64x2 => __m128i }
34 from_transmute! { unsafe u64x4 => __m256i }
35 from_transmute! { unsafe u64x8 => __m512i }
36 from_transmute! { unsafe i64x2 => __m128i }
37 from_transmute! { unsafe i64x4 => __m256i }
38 from_transmute! { unsafe i64x8 => __m512i }
39 from_transmute! { unsafe f64x2 => __m128d }
40 from_transmute! { unsafe f64x4 => __m256d }
41 from_transmute! { unsafe f64x8 => __m512d }
42
43 #[cfg(target_pointer_width = "32")]
44 mod p32 {
45     use super::*;
46     from_transmute! { unsafe usizex4 => __m128i }
47     from_transmute! { unsafe usizex8 => __m256i }
48     from_transmute! { unsafe Simd<usize, 16> => __m512i }
49     from_transmute! { unsafe isizex4 => __m128i }
50     from_transmute! { unsafe isizex8 => __m256i }
51     from_transmute! { unsafe Simd<isize, 16> => __m512i }
52 }
53
54 #[cfg(target_pointer_width = "64")]
55 mod p64 {
56     use super::*;
57     from_transmute! { unsafe usizex2 => __m128i }
58     from_transmute! { unsafe usizex4 => __m256i }
59     from_transmute! { unsafe usizex8 => __m512i }
60     from_transmute! { unsafe isizex2 => __m128i }
61     from_transmute! { unsafe isizex4 => __m256i }
62     from_transmute! { unsafe isizex8 => __m512i }
63 }