After further investigation, it turns out that the problem is the >
operator (and isgreater() aswell). In fact, prepending this to the kernel:
#define isgreater(x, y) ((convert_int2(copysign((float2)1, y - x)) -
1) / 2)
and replacing the > operator with the explicit relational function fixes
the problem.
I also forgot to mention that I'm on Ivy Bridge hardware.
Il 29/09/2015 21:07, Lorenzo Pistone ha scritto:
Hello, the following kernel causes an assertion failed:
__kernel void test(__global float2* ff){
float2 f1 = ff[0], f2 = ff[1];
float2 dist = f1 - f2;
dist += convert_float2(fabs(dist) > 0.5f) *
convert_float2(copysign((coord)1, dist));
ff[3] = dist;
}
Result is:
ASSERTION FAILED: Not supported
at file
/home/pisto/sorgenti/beignet/backend/src/./ir/context.hpp,
function gbe::ir::ImmediateIndex
gbe::ir::Context::newIntegerImmediate(int64_t, gbe::ir::Type), line 95
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet