bool test(accelerator_view &rv) { int data[] = {0, 0, 0, 0}; vector<int> Flags(data, data + sizeof(data) / sizeof(int)); extent<1> eflags(sizeof(data) / sizeof(int)); array<int, 1> aFlag(eflags, Flags.begin(), rv); const int size = 100; vector<int> A(size); vector<c> G(size); vector<c> G2(size); for(int i = 0; i < size; i++) { A[i] = INIT_VALUE; G[i].i = G[i].d = G[i].ui = G[i].f = i; G2[i].i = G2[i].d = G2[i].ui = G2[i].f = i; } extent<1> e(size); extent<2> eG(10, 10); array<int, 1> aA(e, A.begin(), rv); array<c, 2> aG(eG, G.begin(), rv); array<c, 2> aG2(eG, G2.begin(), rv); parallel_for_each(aA.get_extent(), [&](index<1>idx) __GPU { c *p = NULL; if (aFlag[0] == 0) p = &aG[0][0]; else p = &aG2[0][0]; double di = 0; for (int i = 0; i < 100; i++) { if (!Equal((*p).i, (int)i) || !Equal((*p).d, di) || !Equal((*p).ui, (unsigned __int32)i) || !Equal((*p).f, (float)i)) { aA[idx] = 1; } p++; di++; } });
bool test(accelerator_view &rv) { int data[] = {0, 0, 0, 0}; vector<int> Flags(data, data + sizeof(data) / sizeof(int)); extent<1> eflags(sizeof(data) / sizeof(int)); Concurrency::array<int, 1> aFlag(eflags, Flags.begin(), rv); const int size = 100; vector<int> A(size); for(int i = 0; i < size; i++) { A[i] = INIT_VALUE; } extent<1> e(size); Concurrency::array<int, 1> aA(e, A.begin(), rv); parallel_for_each(aA.get_extent().tile<1>(), [&](tiled_index<1>idx) __GPU_ONLY { tile_static type v1, v2; v1 = 0; v2 = 0; type *p; if (aFlag[0] == 0) p = &v1; else p = &v2; *p = (type)1; if (!Equal(v1, (type)1)) aA[idx] = 1; });
bool test(accelerator_view &rv) { int data[] = {0, 0, 0, 0}; vector<int> Flags(data, data + sizeof(data) / sizeof(int)); extent<1> eflags(sizeof(data) / sizeof(int)); array<int, 1> aFlag(eflags, Flags.begin(), rv); const int size = 100; vector<int> A(size); for(int i = 0; i < size; i++) { A[i] = INIT_VALUE; } extent<1> e(size); array<int, 1> aA(e, A.begin(), rv); parallel_for_each(aA.extent, [&](index<1>idx) __GPU { type arr[10]; arr[0] = 0; arr[1] = 1; arr[2] = 2; arr[3] = 3; arr[4] = 4; arr[5] = 5; arr[6] = 6; arr[7] = 7; arr[8] = 8; arr[9] = 9; type *p = NULL; if (aFlag[0] == 0) p = &arr[0]; else p = &arr[1]; p++; type *p2 = p; if (!Equal(*p2, (type)1)) aA[idx] = 1; p2--; type *p3 = p2; if (!Equal(*p3, (type)0)) aA[idx] = 1; p = &arr[0]; if (aFlag[0] == 0) p2 = &arr[9]; else p2 = &arr[8]; int diff = p2 - p; if ((diff != 9) || (diff != (&arr[9] - &arr[0]))) aA[idx] = 1; p2 = p + 9; if (!Equal(*p2, (type)9)) aA[idx] = 1; });