Skip to content

Commit 744661d

Browse files
authored
Use load_array_ref to implement from_slice (#184)
I *meant* to use this method to implement the `from_slice` method, but apparently used `load_array` instead.
1 parent ccf4763 commit 744661d

2 files changed

Lines changed: 38 additions & 37 deletions

File tree

fearless_simd/src/generated/simd_types.rs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ impl<S: Simd> SimdBase<S> for f32x4<S> {
9797
}
9898
#[inline(always)]
9999
fn from_slice(simd: S, slice: &[f32]) -> Self {
100-
simd.load_array_f32x4(slice.try_into().unwrap())
100+
simd.load_array_ref_f32x4(slice.try_into().unwrap())
101101
}
102102
#[inline(always)]
103103
fn store_slice(&self, slice: &mut [f32]) {
@@ -327,7 +327,7 @@ impl<S: Simd> SimdBase<S> for i8x16<S> {
327327
}
328328
#[inline(always)]
329329
fn from_slice(simd: S, slice: &[i8]) -> Self {
330-
simd.load_array_i8x16(slice.try_into().unwrap())
330+
simd.load_array_ref_i8x16(slice.try_into().unwrap())
331331
}
332332
#[inline(always)]
333333
fn store_slice(&self, slice: &mut [i8]) {
@@ -493,7 +493,7 @@ impl<S: Simd> SimdBase<S> for u8x16<S> {
493493
}
494494
#[inline(always)]
495495
fn from_slice(simd: S, slice: &[u8]) -> Self {
496-
simd.load_array_u8x16(slice.try_into().unwrap())
496+
simd.load_array_ref_u8x16(slice.try_into().unwrap())
497497
}
498498
#[inline(always)]
499499
fn store_slice(&self, slice: &mut [u8]) {
@@ -664,7 +664,7 @@ impl<S: Simd> SimdBase<S> for mask8x16<S> {
664664
}
665665
#[inline(always)]
666666
fn from_slice(simd: S, slice: &[i8]) -> Self {
667-
simd.load_array_mask8x16(slice.try_into().unwrap())
667+
simd.load_array_ref_mask8x16(slice.try_into().unwrap())
668668
}
669669
#[inline(always)]
670670
fn store_slice(&self, slice: &mut [i8]) {
@@ -806,7 +806,7 @@ impl<S: Simd> SimdBase<S> for i16x8<S> {
806806
}
807807
#[inline(always)]
808808
fn from_slice(simd: S, slice: &[i16]) -> Self {
809-
simd.load_array_i16x8(slice.try_into().unwrap())
809+
simd.load_array_ref_i16x8(slice.try_into().unwrap())
810810
}
811811
#[inline(always)]
812812
fn store_slice(&self, slice: &mut [i16]) {
@@ -972,7 +972,7 @@ impl<S: Simd> SimdBase<S> for u16x8<S> {
972972
}
973973
#[inline(always)]
974974
fn from_slice(simd: S, slice: &[u16]) -> Self {
975-
simd.load_array_u16x8(slice.try_into().unwrap())
975+
simd.load_array_ref_u16x8(slice.try_into().unwrap())
976976
}
977977
#[inline(always)]
978978
fn store_slice(&self, slice: &mut [u16]) {
@@ -1143,7 +1143,7 @@ impl<S: Simd> SimdBase<S> for mask16x8<S> {
11431143
}
11441144
#[inline(always)]
11451145
fn from_slice(simd: S, slice: &[i16]) -> Self {
1146-
simd.load_array_mask16x8(slice.try_into().unwrap())
1146+
simd.load_array_ref_mask16x8(slice.try_into().unwrap())
11471147
}
11481148
#[inline(always)]
11491149
fn store_slice(&self, slice: &mut [i16]) {
@@ -1285,7 +1285,7 @@ impl<S: Simd> SimdBase<S> for i32x4<S> {
12851285
}
12861286
#[inline(always)]
12871287
fn from_slice(simd: S, slice: &[i32]) -> Self {
1288-
simd.load_array_i32x4(slice.try_into().unwrap())
1288+
simd.load_array_ref_i32x4(slice.try_into().unwrap())
12891289
}
12901290
#[inline(always)]
12911291
fn store_slice(&self, slice: &mut [i32]) {
@@ -1463,7 +1463,7 @@ impl<S: Simd> SimdBase<S> for u32x4<S> {
14631463
}
14641464
#[inline(always)]
14651465
fn from_slice(simd: S, slice: &[u32]) -> Self {
1466-
simd.load_array_u32x4(slice.try_into().unwrap())
1466+
simd.load_array_ref_u32x4(slice.try_into().unwrap())
14671467
}
14681468
#[inline(always)]
14691469
fn store_slice(&self, slice: &mut [u32]) {
@@ -1646,7 +1646,7 @@ impl<S: Simd> SimdBase<S> for mask32x4<S> {
16461646
}
16471647
#[inline(always)]
16481648
fn from_slice(simd: S, slice: &[i32]) -> Self {
1649-
simd.load_array_mask32x4(slice.try_into().unwrap())
1649+
simd.load_array_ref_mask32x4(slice.try_into().unwrap())
16501650
}
16511651
#[inline(always)]
16521652
fn store_slice(&self, slice: &mut [i32]) {
@@ -1788,7 +1788,7 @@ impl<S: Simd> SimdBase<S> for f64x2<S> {
17881788
}
17891789
#[inline(always)]
17901790
fn from_slice(simd: S, slice: &[f64]) -> Self {
1791-
simd.load_array_f64x2(slice.try_into().unwrap())
1791+
simd.load_array_ref_f64x2(slice.try_into().unwrap())
17921792
}
17931793
#[inline(always)]
17941794
fn store_slice(&self, slice: &mut [f64]) {
@@ -2009,7 +2009,7 @@ impl<S: Simd> SimdBase<S> for mask64x2<S> {
20092009
}
20102010
#[inline(always)]
20112011
fn from_slice(simd: S, slice: &[i64]) -> Self {
2012-
simd.load_array_mask64x2(slice.try_into().unwrap())
2012+
simd.load_array_ref_mask64x2(slice.try_into().unwrap())
20132013
}
20142014
#[inline(always)]
20152015
fn store_slice(&self, slice: &mut [i64]) {
@@ -2151,7 +2151,7 @@ impl<S: Simd> SimdBase<S> for f32x8<S> {
21512151
}
21522152
#[inline(always)]
21532153
fn from_slice(simd: S, slice: &[f32]) -> Self {
2154-
simd.load_array_f32x8(slice.try_into().unwrap())
2154+
simd.load_array_ref_f32x8(slice.try_into().unwrap())
21552155
}
21562156
#[inline(always)]
21572157
fn store_slice(&self, slice: &mut [f32]) {
@@ -2388,7 +2388,7 @@ impl<S: Simd> SimdBase<S> for i8x32<S> {
23882388
}
23892389
#[inline(always)]
23902390
fn from_slice(simd: S, slice: &[i8]) -> Self {
2391-
simd.load_array_i8x32(slice.try_into().unwrap())
2391+
simd.load_array_ref_i8x32(slice.try_into().unwrap())
23922392
}
23932393
#[inline(always)]
23942394
fn store_slice(&self, slice: &mut [i8]) {
@@ -2561,7 +2561,7 @@ impl<S: Simd> SimdBase<S> for u8x32<S> {
25612561
}
25622562
#[inline(always)]
25632563
fn from_slice(simd: S, slice: &[u8]) -> Self {
2564-
simd.load_array_u8x32(slice.try_into().unwrap())
2564+
simd.load_array_ref_u8x32(slice.try_into().unwrap())
25652565
}
25662566
#[inline(always)]
25672567
fn store_slice(&self, slice: &mut [u8]) {
@@ -2739,7 +2739,7 @@ impl<S: Simd> SimdBase<S> for mask8x32<S> {
27392739
}
27402740
#[inline(always)]
27412741
fn from_slice(simd: S, slice: &[i8]) -> Self {
2742-
simd.load_array_mask8x32(slice.try_into().unwrap())
2742+
simd.load_array_ref_mask8x32(slice.try_into().unwrap())
27432743
}
27442744
#[inline(always)]
27452745
fn store_slice(&self, slice: &mut [i8]) {
@@ -2893,7 +2893,7 @@ impl<S: Simd> SimdBase<S> for i16x16<S> {
28932893
}
28942894
#[inline(always)]
28952895
fn from_slice(simd: S, slice: &[i16]) -> Self {
2896-
simd.load_array_i16x16(slice.try_into().unwrap())
2896+
simd.load_array_ref_i16x16(slice.try_into().unwrap())
28972897
}
28982898
#[inline(always)]
28992899
fn store_slice(&self, slice: &mut [i16]) {
@@ -3071,7 +3071,7 @@ impl<S: Simd> SimdBase<S> for u16x16<S> {
30713071
}
30723072
#[inline(always)]
30733073
fn from_slice(simd: S, slice: &[u16]) -> Self {
3074-
simd.load_array_u16x16(slice.try_into().unwrap())
3074+
simd.load_array_ref_u16x16(slice.try_into().unwrap())
30753075
}
30763076
#[inline(always)]
30773077
fn store_slice(&self, slice: &mut [u16]) {
@@ -3249,7 +3249,7 @@ impl<S: Simd> SimdBase<S> for mask16x16<S> {
32493249
}
32503250
#[inline(always)]
32513251
fn from_slice(simd: S, slice: &[i16]) -> Self {
3252-
simd.load_array_mask16x16(slice.try_into().unwrap())
3252+
simd.load_array_ref_mask16x16(slice.try_into().unwrap())
32533253
}
32543254
#[inline(always)]
32553255
fn store_slice(&self, slice: &mut [i16]) {
@@ -3398,7 +3398,7 @@ impl<S: Simd> SimdBase<S> for i32x8<S> {
33983398
}
33993399
#[inline(always)]
34003400
fn from_slice(simd: S, slice: &[i32]) -> Self {
3401-
simd.load_array_i32x8(slice.try_into().unwrap())
3401+
simd.load_array_ref_i32x8(slice.try_into().unwrap())
34023402
}
34033403
#[inline(always)]
34043404
fn store_slice(&self, slice: &mut [i32]) {
@@ -3583,7 +3583,7 @@ impl<S: Simd> SimdBase<S> for u32x8<S> {
35833583
}
35843584
#[inline(always)]
35853585
fn from_slice(simd: S, slice: &[u32]) -> Self {
3586-
simd.load_array_u32x8(slice.try_into().unwrap())
3586+
simd.load_array_ref_u32x8(slice.try_into().unwrap())
35873587
}
35883588
#[inline(always)]
35893589
fn store_slice(&self, slice: &mut [u32]) {
@@ -3773,7 +3773,7 @@ impl<S: Simd> SimdBase<S> for mask32x8<S> {
37733773
}
37743774
#[inline(always)]
37753775
fn from_slice(simd: S, slice: &[i32]) -> Self {
3776-
simd.load_array_mask32x8(slice.try_into().unwrap())
3776+
simd.load_array_ref_mask32x8(slice.try_into().unwrap())
37773777
}
37783778
#[inline(always)]
37793779
fn store_slice(&self, slice: &mut [i32]) {
@@ -3922,7 +3922,7 @@ impl<S: Simd> SimdBase<S> for f64x4<S> {
39223922
}
39233923
#[inline(always)]
39243924
fn from_slice(simd: S, slice: &[f64]) -> Self {
3925-
simd.load_array_f64x4(slice.try_into().unwrap())
3925+
simd.load_array_ref_f64x4(slice.try_into().unwrap())
39263926
}
39273927
#[inline(always)]
39283928
fn store_slice(&self, slice: &mut [f64]) {
@@ -4150,7 +4150,7 @@ impl<S: Simd> SimdBase<S> for mask64x4<S> {
41504150
}
41514151
#[inline(always)]
41524152
fn from_slice(simd: S, slice: &[i64]) -> Self {
4153-
simd.load_array_mask64x4(slice.try_into().unwrap())
4153+
simd.load_array_ref_mask64x4(slice.try_into().unwrap())
41544154
}
41554155
#[inline(always)]
41564156
fn store_slice(&self, slice: &mut [i64]) {
@@ -4304,7 +4304,7 @@ impl<S: Simd> SimdBase<S> for f32x16<S> {
43044304
}
43054305
#[inline(always)]
43064306
fn from_slice(simd: S, slice: &[f32]) -> Self {
4307-
simd.load_array_f32x16(slice.try_into().unwrap())
4307+
simd.load_array_ref_f32x16(slice.try_into().unwrap())
43084308
}
43094309
#[inline(always)]
43104310
fn store_slice(&self, slice: &mut [f32]) {
@@ -4535,7 +4535,7 @@ impl<S: Simd> SimdBase<S> for i8x64<S> {
45354535
}
45364536
#[inline(always)]
45374537
fn from_slice(simd: S, slice: &[i8]) -> Self {
4538-
simd.load_array_i8x64(slice.try_into().unwrap())
4538+
simd.load_array_ref_i8x64(slice.try_into().unwrap())
45394539
}
45404540
#[inline(always)]
45414541
fn store_slice(&self, slice: &mut [i8]) {
@@ -4702,7 +4702,7 @@ impl<S: Simd> SimdBase<S> for u8x64<S> {
47024702
}
47034703
#[inline(always)]
47044704
fn from_slice(simd: S, slice: &[u8]) -> Self {
4705-
simd.load_array_u8x64(slice.try_into().unwrap())
4705+
simd.load_array_ref_u8x64(slice.try_into().unwrap())
47064706
}
47074707
#[inline(always)]
47084708
fn store_slice(&self, slice: &mut [u8]) {
@@ -4874,7 +4874,7 @@ impl<S: Simd> SimdBase<S> for mask8x64<S> {
48744874
}
48754875
#[inline(always)]
48764876
fn from_slice(simd: S, slice: &[i8]) -> Self {
4877-
simd.load_array_mask8x64(slice.try_into().unwrap())
4877+
simd.load_array_ref_mask8x64(slice.try_into().unwrap())
48784878
}
48794879
#[inline(always)]
48804880
fn store_slice(&self, slice: &mut [i8]) {
@@ -5022,7 +5022,7 @@ impl<S: Simd> SimdBase<S> for i16x32<S> {
50225022
}
50235023
#[inline(always)]
50245024
fn from_slice(simd: S, slice: &[i16]) -> Self {
5025-
simd.load_array_i16x32(slice.try_into().unwrap())
5025+
simd.load_array_ref_i16x32(slice.try_into().unwrap())
50265026
}
50275027
#[inline(always)]
50285028
fn store_slice(&self, slice: &mut [i16]) {
@@ -5194,7 +5194,7 @@ impl<S: Simd> SimdBase<S> for u16x32<S> {
51945194
}
51955195
#[inline(always)]
51965196
fn from_slice(simd: S, slice: &[u16]) -> Self {
5197-
simd.load_array_u16x32(slice.try_into().unwrap())
5197+
simd.load_array_ref_u16x32(slice.try_into().unwrap())
51985198
}
51995199
#[inline(always)]
52005200
fn store_slice(&self, slice: &mut [u16]) {
@@ -5366,7 +5366,7 @@ impl<S: Simd> SimdBase<S> for mask16x32<S> {
53665366
}
53675367
#[inline(always)]
53685368
fn from_slice(simd: S, slice: &[i16]) -> Self {
5369-
simd.load_array_mask16x32(slice.try_into().unwrap())
5369+
simd.load_array_ref_mask16x32(slice.try_into().unwrap())
53705370
}
53715371
#[inline(always)]
53725372
fn store_slice(&self, slice: &mut [i16]) {
@@ -5514,7 +5514,7 @@ impl<S: Simd> SimdBase<S> for i32x16<S> {
55145514
}
55155515
#[inline(always)]
55165516
fn from_slice(simd: S, slice: &[i32]) -> Self {
5517-
simd.load_array_i32x16(slice.try_into().unwrap())
5517+
simd.load_array_ref_i32x16(slice.try_into().unwrap())
55185518
}
55195519
#[inline(always)]
55205520
fn store_slice(&self, slice: &mut [i32]) {
@@ -5698,7 +5698,7 @@ impl<S: Simd> SimdBase<S> for u32x16<S> {
56985698
}
56995699
#[inline(always)]
57005700
fn from_slice(simd: S, slice: &[u32]) -> Self {
5701-
simd.load_array_u32x16(slice.try_into().unwrap())
5701+
simd.load_array_ref_u32x16(slice.try_into().unwrap())
57025702
}
57035703
#[inline(always)]
57045704
fn store_slice(&self, slice: &mut [u32]) {
@@ -5882,7 +5882,7 @@ impl<S: Simd> SimdBase<S> for mask32x16<S> {
58825882
}
58835883
#[inline(always)]
58845884
fn from_slice(simd: S, slice: &[i32]) -> Self {
5885-
simd.load_array_mask32x16(slice.try_into().unwrap())
5885+
simd.load_array_ref_mask32x16(slice.try_into().unwrap())
58865886
}
58875887
#[inline(always)]
58885888
fn store_slice(&self, slice: &mut [i32]) {
@@ -6025,7 +6025,7 @@ impl<S: Simd> SimdBase<S> for f64x8<S> {
60256025
}
60266026
#[inline(always)]
60276027
fn from_slice(simd: S, slice: &[f64]) -> Self {
6028-
simd.load_array_f64x8(slice.try_into().unwrap())
6028+
simd.load_array_ref_f64x8(slice.try_into().unwrap())
60296029
}
60306030
#[inline(always)]
60316031
fn store_slice(&self, slice: &mut [f64]) {
@@ -6247,7 +6247,7 @@ impl<S: Simd> SimdBase<S> for mask64x8<S> {
62476247
}
62486248
#[inline(always)]
62496249
fn from_slice(simd: S, slice: &[i64]) -> Self {
6250-
simd.load_array_mask64x8(slice.try_into().unwrap())
6250+
simd.load_array_ref_mask64x8(slice.try_into().unwrap())
62516251
}
62526252
#[inline(always)]
62536253
fn store_slice(&self, slice: &mut [i64]) {

fearless_simd_gen/src/mk_simd_types.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ fn simd_vec_impl(ty: &VecType) -> TokenStream {
289289
_ => unreachable!(),
290290
};
291291
let from_array_op = generic_op_name("load_array", ty);
292+
let from_array_ref_op = generic_op_name("load_array_ref", ty);
292293
let store_array_op = generic_op_name("store_array", ty);
293294
let as_array_ref_op = generic_op_name("as_array_ref", ty);
294295
let as_array_mut_op = generic_op_name("as_array_mut", ty);
@@ -317,7 +318,7 @@ fn simd_vec_impl(ty: &VecType) -> TokenStream {
317318

318319
#[inline(always)]
319320
fn from_slice(simd: S, slice: &[#scalar]) -> Self {
320-
simd.#from_array_op(slice.try_into().unwrap())
321+
simd.#from_array_ref_op(slice.try_into().unwrap())
321322
}
322323

323324
#[inline(always)]

0 commit comments

Comments
 (0)