diff options
| author | gingerBill <bill@gingerbill.org> | 2021-10-25 13:10:56 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-10-25 13:10:56 +0100 |
| commit | a440d8d812223961f0934aefecaef4975a604c43 (patch) | |
| tree | aebedd62f7ed3a8956d5b94a91c74fb72dee5d94 /src/llvm_backend_expr.cpp | |
| parent | aaaddd03a6fc7194fa9315f802e369a0f62b9e07 (diff) | |
Improve use of vector muladd operations
Diffstat (limited to 'src/llvm_backend_expr.cpp')
| -rw-r--r-- | src/llvm_backend_expr.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 7ae1a7315..ad2c609ef 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -837,11 +837,10 @@ lbValue lb_emit_matrix_mul_vector(lbProcedure *p, lbValue lhs, lbValue rhs, Type LLVMValueRef vector = nullptr; for (i64 i = 0; i < column_count; i++) { - LLVMValueRef product = llvm_vector_mul(p, m_columns[i], v_rows[i]); if (i == 0) { - vector = product; + vector = llvm_vector_mul(p, m_columns[i], v_rows[i]); } else { - vector = llvm_vector_add(p, vector, product); + vector = llvm_vector_mul_add(p, m_columns[i], v_rows[i], vector); } } @@ -914,11 +913,10 @@ lbValue lb_emit_vector_mul_matrix(lbProcedure *p, lbValue lhs, lbValue rhs, Type LLVMValueRef vector = nullptr; for (i64 i = 0; i < row_count; i++) { - LLVMValueRef product = llvm_vector_mul(p, v_rows[i], m_columns[i]); if (i == 0) { - vector = product; + vector = llvm_vector_mul(p, v_rows[i], m_columns[i]); } else { - vector = llvm_vector_add(p, vector, product); + vector = llvm_vector_mul_add(p, v_rows[i], m_columns[i], vector); } } |