]> git.lizzy.rs Git - rust.git/commitdiff
also test f32/f64 simd_reduce
authorRalf Jung <post@ralfj.de>
Sun, 6 Mar 2022 04:03:14 +0000 (23:03 -0500)
committerRalf Jung <post@ralfj.de>
Sun, 6 Mar 2022 04:03:14 +0000 (23:03 -0500)
tests/run-pass/portable-simd.rs

index 9d1ca12a9f10e041abcd87b44f5dd4bf471cd032..5d7420604bb7aa01817c1af5e0e2dcfc7d7354da 100644 (file)
@@ -20,6 +20,11 @@ fn simd_ops_f32() {
     assert_eq!(a.lanes_lt(f32x4::splat(5.0)*b), Mask::from_int(i32x4::from_array([0, 0, -1, 0])));
     assert_eq!(a.lanes_ge(f32x4::splat(5.0)*b), Mask::from_int(i32x4::from_array([-1, -1, 0, -1])));
     assert_eq!(a.lanes_gt(f32x4::splat(5.0)*b), Mask::from_int(i32x4::from_array([-1, 0, 0, -1])));
+
+    assert_eq!(a.horizontal_sum(), 40.0);
+    assert_eq!(b.horizontal_sum(), 2.0);
+    assert_eq!(a.horizontal_product(), 100.0*100.0);
+    assert_eq!(b.horizontal_product(), -24.0);
 }
 
 fn simd_ops_f64() {
@@ -41,6 +46,11 @@ fn simd_ops_f64() {
     assert_eq!(a.lanes_lt(f64x4::splat(5.0)*b), Mask::from_int(i64x4::from_array([0, 0, -1, 0])));
     assert_eq!(a.lanes_ge(f64x4::splat(5.0)*b), Mask::from_int(i64x4::from_array([-1, -1, 0, -1])));
     assert_eq!(a.lanes_gt(f64x4::splat(5.0)*b), Mask::from_int(i64x4::from_array([-1, 0, 0, -1])));
+
+    assert_eq!(a.horizontal_sum(), 40.0);
+    assert_eq!(b.horizontal_sum(), 2.0);
+    assert_eq!(a.horizontal_product(), 100.0*100.0);
+    assert_eq!(b.horizontal_product(), -24.0);
 }
 
 fn simd_ops_i32() {
@@ -78,7 +88,7 @@ fn simd_ops_i32() {
     assert_eq!(a.horizontal_sum(), 40);
     assert_eq!(b.horizontal_sum(), 2);
     assert_eq!(a.horizontal_product(), 100*100);
-    assert_eq!(b.horizontal_product(), 6*-4);
+    assert_eq!(b.horizontal_product(), -24);
 }
 
 fn simd_intrinsics() {