Browse Source
Corrects swapped add/subtract operators in packed 2-way multiply loop. Spec requires (p0 - p1) but implementation computed (p1 - p0). Even elements should add, odd elements should subtract. Fixed instructions: - PM2WSUB.H: P-ext spec - PM2WSUBA.H: P-ext spec Changed: Swapped += and -= for (j & 1) conditional Signed-off-by: Max Chou <max.chou@sifive.com>pull/2310/head
committed by
Chih-Min Chao
2 changed files with 4 additions and 4 deletions
@ -1,7 +1,7 @@ |
|||
require_rv32; |
|||
P_WIDEN_REDUCTION_LOOP(32, 16, false, false, { |
|||
if (j & 1) |
|||
p_res += p_rs1 * p_rs2; |
|||
else |
|||
p_res -= p_rs1 * p_rs2; |
|||
else |
|||
p_res += p_rs1 * p_rs2; |
|||
}) |
|||
@ -1,7 +1,7 @@ |
|||
require_rv32; |
|||
P_WIDEN_REDUCTION_LOOP(32, 16, true, false, { |
|||
if (j & 1) |
|||
p_res += p_rs1 * p_rs2; |
|||
else |
|||
p_res -= p_rs1 * p_rs2; |
|||
else |
|||
p_res += p_rs1 * p_rs2; |
|||
}) |
|||
Loading…
Reference in new issue