Browse Source

Fixed a reduce_add proc doing multiplication instead.

Barinzaya 4 months ago
parent
commit
8b6436201e
1 changed files with 6 additions and 6 deletions
  1. 6 6
      core/simd/simd.odin

+ 6 - 6
core/simd/simd.odin

@@ -2618,7 +2618,7 @@ reduce_add_pairs :: #force_inline proc "contextless" (v: #simd[$N]$E) -> E
 			17, 19, 21, 23, 25, 27, 29, 31,
 			33, 35, 37, 39, 41, 43, 45, 47,
 			49, 51, 53, 55, 57, 59, 61, 63)
-		v32 := x32 * y32
+		v32 := x32 + y32
 	}
 
 	when N >= 32 {
@@ -2628,29 +2628,29 @@ reduce_add_pairs :: #force_inline proc "contextless" (v: #simd[$N]$E) -> E
 		y16 := swizzle(v32,
 			1,  3,  5,  7,  9,  11, 13, 15,
 			17, 19, 21, 23, 25, 27, 29, 31)
-		v16 := x16 * y16
+		v16 := x16 + y16
 	}
 
 	when N >= 16 {
 		x8 := swizzle(v16, 0, 2, 4, 6, 8, 10, 12, 14)
 		y8 := swizzle(v16, 1, 3, 5, 7, 9, 11, 13, 15)
-		v8 := x8 * y8
+		v8 := x8 + y8
 	}
 
 	when N >= 8 {
 		x4 := swizzle(v8, 0, 2, 4, 6)
 		y4 := swizzle(v8, 1, 3, 5, 7)
-		v4 := x4 * y4
+		v4 := x4 + y4
 	}
 
 	when N >= 4 {
 		x2 := swizzle(v4, 0, 2)
 		y2 := swizzle(v4, 1, 3)
-		v2 := x2 * y2
+		v2 := x2 + y2
 	}
 
 	when N >= 2 {
-		return extract(v2, 0) * extract(v2, 1)
+		return extract(v2, 0) + extract(v2, 1)
 	} else {
 		return extract(v, 0)
 	}