Skip to content

Commit 3688f88

Browse files
authored
Widen Avx2's associated types to 256 bits (#123)
Split off from #115 to make review of that PR easier.
1 parent 76ddd59 commit 3688f88

File tree

3 files changed

+23
-20
lines changed

3 files changed

+23
-20
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ This release has an [MSRV][] of 1.88.
3535
The fallback level can be restored with the `force_support_fallback` cargo feature. We don't expect this to be necessary outside
3636
of tests.
3737
- Code generation for `select` and `unzip` operations on x86 has been improved. ([#115][] by [@valadaptive][])
38+
- Breaking change: The native-width associated types (`f32s`, `u8s`, etc.) for the `Avx2` struct have been widened from 128-bit
39+
types (like `f32x4`) to 256-bit types (like `f32x8`). ([#123][] by [@valadaptive][])
3840

3941
### Removed
4042

@@ -113,6 +115,7 @@ No changelog was kept for this release.
113115
[#99]: https://github.com/linebender/fearless_simd/pull/99
114116
[#105]: https://github.com/linebender/fearless_simd/pull/105
115117
[#115]: https://github.com/linebender/fearless_simd/pull/115
118+
[#123]: https://github.com/linebender/fearless_simd/pull/123
116119

117120
[Unreleased]: https://github.com/linebender/fearless_simd/compare/v0.3.0...HEAD
118121
[0.3.0]: https://github.com/linebender/fearless_simd/compare/v0.3.0...v0.2.0

fearless_simd/src/generated/avx2.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@ impl Avx2 {
3535
}
3636
impl Seal for Avx2 {}
3737
impl Simd for Avx2 {
38-
type f32s = f32x4<Self>;
39-
type u8s = u8x16<Self>;
40-
type i8s = i8x16<Self>;
41-
type u16s = u16x8<Self>;
42-
type i16s = i16x8<Self>;
43-
type u32s = u32x4<Self>;
44-
type i32s = i32x4<Self>;
45-
type mask8s = mask8x16<Self>;
46-
type mask16s = mask16x8<Self>;
47-
type mask32s = mask32x4<Self>;
38+
type f32s = f32x8<Self>;
39+
type u8s = u8x32<Self>;
40+
type i8s = i8x32<Self>;
41+
type u16s = u16x16<Self>;
42+
type i16s = i16x16<Self>;
43+
type u32s = u32x8<Self>;
44+
type i32s = i32x8<Self>;
45+
type mask8s = mask8x32<Self>;
46+
type mask16s = mask16x16<Self>;
47+
type mask32s = mask32x8<Self>;
4848
#[inline(always)]
4949
fn level(self) -> Level {
5050
Level::Avx2(self)

fearless_simd_gen/src/mk_avx2.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,16 +96,16 @@ fn mk_simd_impl() -> TokenStream {
9696
// be factored out for DRY.
9797
quote! {
9898
impl Simd for #level_tok {
99-
type f32s = f32x4<Self>;
100-
type u8s = u8x16<Self>;
101-
type i8s = i8x16<Self>;
102-
type u16s = u16x8<Self>;
103-
type i16s = i16x8<Self>;
104-
type u32s = u32x4<Self>;
105-
type i32s = i32x4<Self>;
106-
type mask8s = mask8x16<Self>;
107-
type mask16s = mask16x8<Self>;
108-
type mask32s = mask32x4<Self>;
99+
type f32s = f32x8<Self>;
100+
type u8s = u8x32<Self>;
101+
type i8s = i8x32<Self>;
102+
type u16s = u16x16<Self>;
103+
type i16s = i16x16<Self>;
104+
type u32s = u32x8<Self>;
105+
type i32s = i32x8<Self>;
106+
type mask8s = mask8x32<Self>;
107+
type mask16s = mask16x16<Self>;
108+
type mask32s = mask32x8<Self>;
109109
#[inline(always)]
110110
fn level(self) -> Level {
111111
Level::#level_tok(self)

0 commit comments

Comments
 (0)