Skip to content

Commit f67eb4e

Browse files
authored
Remove Into/From between x86 and portable types (rust-lang#292)
This is primarily doing to avoid falling into a portability trap by accident, and in general makes the vendor types (on x86) going towards as minimal as they can be. Along the way some tests were cleaned up which were still using the portable types.
1 parent d0c24da commit f67eb4e

File tree

8 files changed

+316
-445
lines changed

8 files changed

+316
-445
lines changed

coresimd/src/v128.rs

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ define_from!(
5555
u16x8,
5656
i16x8,
5757
u8x16,
58-
i8x16,
59-
__m128i
58+
i8x16
6059
);
6160
define_from!(
6261
i64x2,
@@ -66,8 +65,7 @@ define_from!(
6665
u16x8,
6766
i16x8,
6867
u8x16,
69-
i8x16,
70-
__m128i
68+
i8x16
7169
);
7270
define_from!(
7371
u32x4,
@@ -77,8 +75,7 @@ define_from!(
7775
u16x8,
7876
i16x8,
7977
u8x16,
80-
i8x16,
81-
__m128i
78+
i8x16
8279
);
8380
define_from!(
8481
i32x4,
@@ -88,8 +85,7 @@ define_from!(
8885
u16x8,
8986
i16x8,
9087
u8x16,
91-
i8x16,
92-
__m128i
88+
i8x16
9389
);
9490
define_from!(
9591
u16x8,
@@ -99,8 +95,7 @@ define_from!(
9995
i32x4,
10096
i16x8,
10197
u8x16,
102-
i8x16,
103-
__m128i
98+
i8x16
10499
);
105100
define_from!(
106101
i16x8,
@@ -110,8 +105,7 @@ define_from!(
110105
i32x4,
111106
u16x8,
112107
u8x16,
113-
i8x16,
114-
__m128i
108+
i8x16
115109
);
116110
define_from!(
117111
u8x16,
@@ -121,22 +115,9 @@ define_from!(
121115
i32x4,
122116
u16x8,
123117
i16x8,
124-
i8x16,
125-
__m128i
126-
);
127-
define_from!(
128-
i8x16,
129-
u64x2,
130-
i64x2,
131-
u32x4,
132-
i32x4,
133-
u16x8,
134-
i16x8,
135-
u8x16,
136-
__m128i
118+
i8x16
137119
);
138120
define_from!(
139-
__m128i,
140121
i8x16,
141122
u64x2,
142123
i64x2,

coresimd/src/v256.rs

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ define_from!(
8080
u16x16,
8181
i16x16,
8282
u8x32,
83-
i8x32,
84-
__m256i
83+
i8x32
8584
);
8685
define_from!(
8786
i64x4,
@@ -91,8 +90,7 @@ define_from!(
9190
u16x16,
9291
i16x16,
9392
u8x32,
94-
i8x32,
95-
__m256i
93+
i8x32
9694
);
9795
define_from!(
9896
u32x8,
@@ -102,8 +100,7 @@ define_from!(
102100
u16x16,
103101
i16x16,
104102
u8x32,
105-
i8x32,
106-
__m256i
103+
i8x32
107104
);
108105
define_from!(
109106
i32x8,
@@ -113,8 +110,7 @@ define_from!(
113110
u16x16,
114111
i16x16,
115112
u8x32,
116-
i8x32,
117-
__m256i
113+
i8x32
118114
);
119115
define_from!(
120116
u16x16,
@@ -124,8 +120,7 @@ define_from!(
124120
i32x8,
125121
i16x16,
126122
u8x32,
127-
i8x32,
128-
__m256i
123+
i8x32
129124
);
130125
define_from!(
131126
i16x16,
@@ -135,8 +130,7 @@ define_from!(
135130
i32x8,
136131
u16x16,
137132
u8x32,
138-
i8x32,
139-
__m256i
133+
i8x32
140134
);
141135
define_from!(
142136
u8x32,
@@ -146,22 +140,9 @@ define_from!(
146140
i32x8,
147141
u16x16,
148142
i16x16,
149-
i8x32,
150-
__m256i
151-
);
152-
define_from!(
153-
i8x32,
154-
u64x4,
155-
i64x4,
156-
u32x8,
157-
i32x8,
158-
u16x16,
159-
i16x16,
160-
u8x32,
161-
__m256i
143+
i8x32
162144
);
163145
define_from!(
164-
__m256i,
165146
i8x32,
166147
u64x4,
167148
i64x4,

coresimd/src/v64.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,12 @@ define_ty_doc! {
3535
/// 64-bit wide integer vector type.
3636
}
3737

38-
define_from!(u32x2, i32x2, u16x4, i16x4, u8x8, i8x8, __m64);
39-
define_from!(i32x2, u32x2, u16x4, i16x4, u8x8, i8x8, __m64);
40-
define_from!(u16x4, u32x2, i32x2, i16x4, u8x8, i8x8, __m64);
41-
define_from!(i16x4, u32x2, i32x2, u16x4, u8x8, i8x8, __m64);
42-
define_from!(u8x8, u32x2, i32x2, u16x4, i16x4, i8x8, __m64);
43-
define_from!(i8x8, u32x2, i32x2, u16x4, i16x4, u8x8, __m64);
44-
define_from!(__m64, i8x8, u32x2, i32x2, u16x4, i16x4, u8x8);
38+
define_from!(u32x2, i32x2, u16x4, i16x4, u8x8, i8x8);
39+
define_from!(i32x2, u32x2, u16x4, i16x4, u8x8, i8x8);
40+
define_from!(u16x4, u32x2, i32x2, i16x4, u8x8, i8x8);
41+
define_from!(i16x4, u32x2, i32x2, u16x4, u8x8, i8x8);
42+
define_from!(u8x8, u32x2, i32x2, u16x4, i16x4, i8x8);
43+
define_from!(i8x8, u32x2, i32x2, u16x4, i16x4, u8x8);
4544

4645
define_common_ops!(f32x2, u32x2, i32x2, u16x4, i16x4, u8x8, i8x8);
4746
define_float_ops!(f32x2);

coresimd/src/x86/i586/sse3.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ pub unsafe fn _mm_hsub_ps(a: __m128, b: __m128) -> __m128 {
6868
#[target_feature(enable = "sse3")]
6969
#[cfg_attr(test, assert_instr(lddqu))]
7070
pub unsafe fn _mm_lddqu_si128(mem_addr: *const __m128i) -> __m128i {
71-
__m128i::from(lddqu(mem_addr as *const _))
71+
mem::transmute(lddqu(mem_addr as *const _))
7272
}
7373

7474
/// Duplicate the low double-precision (64-bit) floating-point element

0 commit comments

Comments
 (0)