Miscompile with a kernel with id-dependent computation before exit and also early exit
Bug #940549 reported by
Pekka Jääskeläinen
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pocl |
Fix Released
|
Critical
|
Pekka Jääskeläinen |
Bug Description
These curious cases keep popping up ;)
"kernel \n"
"void test_kernel(
" __global int *result) {\n"
" size_t gid = get_global_
" if (input[0] > 2) return;\n"
" result[gid] = 0;\n"
" barrier(
" result[gid] += input[gid];\n"
" if (gid == 0) {\n"
" result[gid] = 42;\n"
" }\n"
"}\n";
Produces:
F(1: 42 != 1)
While only gid == 0 should have '42' so the if is always executed.
Hard to say what is the actual cause of this case but at least it has 3 entries to the exit node and there is thread id dependent computation in the last block so it can be related to the tail replication somehow.
Related branches
Changed in pocl: | |
status: | New → Fix Released |
To post a comment you must log in.