TEST(JIT, NonLinearLargeY) { const int d0 = 2; // This needs to be > 2 * (1 << 20) to properly check this. const int d1 = 3 * (1 << 20); array a = randn(d0); array b = randn(1, d1); // tile is jit-ted for both the operations array c = tile(a, 1, d1) + tile(b, d0, 1); eval(c); vector<float> ha(d0); vector<float> hb(d1); vector<float> hc(d0 * d1); a.host(ha.data()); b.host(hb.data()); c.host(hc.data()); for (int j = 0; j < d1; j++) { for (int i = 0; i < d0; i++) { ASSERT_EQ(hc[i + j * d0], ha[i] + hb[j]) << " at " << i << " , " << j; } } }
TEST(JIT, ISSUE_1646) { array test1 = randn(10, 10); array test2 = randn(10); array test3 = randn(10); for (int i = 0; i < 1000; i++) { test3 += sum(test1, 1); test2 += test3; } eval(test2); eval(test3); }