The attached kernel crashes the Intel OpenCL Runtime 15.1 (Ubuntu):
Both operands to ICmp instruction are not of the same type! %37 = icmp slt i32 %35, i64 0 Both operands to a binary operator are not of the same type! %47 = add i32 %36, i64 1 Both operands to a binary operator are not of the same type! %48 = add i32 %47, i64 %24 Both operands to ICmp instruction are not of the same type! %51 = icmp slt i64 %44, i32 %50 Both operands to ICmp instruction are not of the same type! %52 = icmp slt i32 %50, i64 0 Invalid operands for select instruction! %54 = select i1 %53, i64 %44, i32 %50 Broken module found, compilation aborted! Stack dump: 0. Running pass 'Function Pass Manager' on module 'main'. 1. Running pass 'Module Verifier' on function '@layerpot' [1] 25966 abort python -c
Here's a quick one-liner to reproduce the crash.
python -c 'import pyopencl as cl ; ctx = cl._csc(); cl.Program(ctx, open("qbx.cl.txt").read()).build()'