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

Reply via email to