diff --git a/core/simd/simd.odin b/core/simd/simd.odin index 385e24785..3ea22cbcb 100644 --- a/core/simd/simd.odin +++ b/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) }