Multi-level (2) for-loop with a barrier inside crashes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pocl |
Fix Released
|
Critical
|
Unassigned |
Bug Description
This can be reproduced in tests/regressio
Its kernel:
"kernel \n"
"void test_kernel(
" __global int *result,\n"
" int a) {\n"
" int gid = get_global_
" int i, j;\n"
" for (i = 0; i < 32; ++i) {\n"
" result[gid] = input[gid];\n"
" for (j = 0; j < 32; ++j) {\n"
" result[gid] = input[gid] * input[gid + j];\n"
" barrier(
" }\n"
" }\n"
"}\n";
Crashes the kernel compiler with:
opt: WorkitemReplica
Related branches
Changed in pocl: | |
status: | In Progress → Fix Released |
This case actually crashed because of computation after the loop exit block's "loop back" branch, not due to the multi-level for-loop itself.