The following code modifies elements of the array D.
for (i = 0; i < _PB_NI; i++)
for (j = 0; j < _PB_NJ; j++)
{
for (k = 0; k < _PB_NK; ++k)
{
double Mul = A[i][k] * B[k][j];
D[i][j][k] += Mul;
C[i][j] += Mul;
}
}
Nevertheless, the code is recognised as a matrix-matrix multiplication, since the second and third dimensions of D are accessed with non-zero strides.
This fixes the typo, which was made during the translation to C++ bindings (https://reviews.llvm.org/D35845).Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Thanks for the patch. I have one concern with the the regression test: A single CHECK-NOT test is not a robust test to check anything, the test would succeed even if nothing is printed at all.
I am still accepting the patch in the interest of getting this fixed. However, I may replace the test by something else, e.g. by checking that the output with and without the flag is the same.
The test need an assertions-enabled build (REQUIRES: asserts) to print anything. That is, it will always pass on non-assert builds.
Thanks for the review! I have updated the test case to take it into the account.
I am still accepting the patch in the interest of getting this fixed. However, I may replace the test by something else, e.g. by checking that the output with and without the flag is the same.
Could the ast be checked for this purpose?