@@ -20,6 +20,11 @@ fn simd_ops_f32() {
20
20
assert_eq ! ( a. lanes_lt( f32x4:: splat( 5.0 ) * b) , Mask :: from_int( i32x4:: from_array( [ 0 , 0 , -1 , 0 ] ) ) ) ;
21
21
assert_eq ! ( a. lanes_ge( f32x4:: splat( 5.0 ) * b) , Mask :: from_int( i32x4:: from_array( [ -1 , -1 , 0 , -1 ] ) ) ) ;
22
22
assert_eq ! ( a. lanes_gt( f32x4:: splat( 5.0 ) * b) , Mask :: from_int( i32x4:: from_array( [ -1 , 0 , 0 , -1 ] ) ) ) ;
23
+
24
+ assert_eq ! ( a. horizontal_sum( ) , 40.0 ) ;
25
+ assert_eq ! ( b. horizontal_sum( ) , 2.0 ) ;
26
+ assert_eq ! ( a. horizontal_product( ) , 100.0 * 100.0 ) ;
27
+ assert_eq ! ( b. horizontal_product( ) , -24.0 ) ;
23
28
}
24
29
25
30
fn simd_ops_f64 ( ) {
@@ -41,6 +46,11 @@ fn simd_ops_f64() {
41
46
assert_eq ! ( a. lanes_lt( f64x4:: splat( 5.0 ) * b) , Mask :: from_int( i64x4:: from_array( [ 0 , 0 , -1 , 0 ] ) ) ) ;
42
47
assert_eq ! ( a. lanes_ge( f64x4:: splat( 5.0 ) * b) , Mask :: from_int( i64x4:: from_array( [ -1 , -1 , 0 , -1 ] ) ) ) ;
43
48
assert_eq ! ( a. lanes_gt( f64x4:: splat( 5.0 ) * b) , Mask :: from_int( i64x4:: from_array( [ -1 , 0 , 0 , -1 ] ) ) ) ;
49
+
50
+ assert_eq ! ( a. horizontal_sum( ) , 40.0 ) ;
51
+ assert_eq ! ( b. horizontal_sum( ) , 2.0 ) ;
52
+ assert_eq ! ( a. horizontal_product( ) , 100.0 * 100.0 ) ;
53
+ assert_eq ! ( b. horizontal_product( ) , -24.0 ) ;
44
54
}
45
55
46
56
fn simd_ops_i32 ( ) {
@@ -78,7 +88,7 @@ fn simd_ops_i32() {
78
88
assert_eq ! ( a. horizontal_sum( ) , 40 ) ;
79
89
assert_eq ! ( b. horizontal_sum( ) , 2 ) ;
80
90
assert_eq ! ( a. horizontal_product( ) , 100 * 100 ) ;
81
- assert_eq ! ( b. horizontal_product( ) , 6 * - 4 ) ;
91
+ assert_eq ! ( b. horizontal_product( ) , - 24 ) ;
82
92
}
83
93
84
94
fn simd_intrinsics ( ) {
0 commit comments