Fixed a reduce_add proc doing multiplication instead.

This commit is contained in:
Barinzaya
2025-05-03 13:04:11 -04:00
parent 7e34d707bb
commit 8b6436201e
+6 -6
View File
@@ -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)
}