@@ -436,16 +436,10 @@ TEST(workspaces, precompute3D_renamedIVars_TspV) {
436436}
437437
438438TEST (workspaces, tile_dotProduct_1) {
439- // FIXME: Disabled because currently the precompute algorithm does not appropriately
440- // find the correct forall substmt to next the WhereNode in after i has been
441- // split into i0 and i1. As an example, the first precompute below is incorrect
442- // since it should transform
443- // forall(i0, forall(i1, A() += B(i) * C(i))) -->
444- // forall(i0, where(forall(i1, A() += ws(i1)), forall(i1, ws(i1) += B(i) * C(i))))
445- //
446- // But currently the algorithm does
447- // forall(i0, forall(i1, A() += B(i) * C(i))) -->
448- // where(forall(i1, A() += ws(i1)), forall(i0, forall(i1, ws(i1) += B(i) * C(i))))
439+ // Test that precompute algorithm correctly decides the reduction operator of C_new(i1) = C(i) and B_new(i1) = B(i).
440+ // Current indexStmt is:
441+ // where(forall(i1, A += precomputed(i1)), forall(i0, where(where(forall(i1, precomputed(i1) += B_new(i1) * C_new(i1))
442+ // ,forall(i1, C_new(i1) = C(i))), forall(i1, B_new(i1) = B(i)))))
449443
450444 int N = 1024 ;
451445 Tensor<double > A (" A" );
@@ -505,10 +499,8 @@ TEST(workspaces, tile_dotProduct_1) {
505499}
506500
507501TEST (workspaces, tile_dotProduct_2) {
508- // FIXME: This is also currently disabled since split(...) scheduling commands
509- // only split on the FIRST INSTANCE of an indexVar (assumes only one).
510- // This is wrong if the indexVar is not renamed across iw_vars since an indexVar can
511- // then occur on BOTH the consumer and producer side and should be split across both.
502+ // Split on the ALL INSTANCES of an indexVar.
503+ // Test the wsaccel function that can disable the acceleration.
512504
513505 int N = 1024 ;
514506 Tensor<double > A (" A" );
0 commit comments