LLVM ERROR happens when compile OpenCl with pyopencl on CPU devices

I am trying to use pyopencl to implement my kernel function on python, but I get an error when I build the OpenCL program as

“LLVM ERROR: Do not know how to split this operator’s operand!”.

I provide a python script below.


import os
import itertools
import pyopencl as cl

input file path

Example_ClFileName = ‘Example.cl’

set the environment to get the compiler output

os.environ[‘PYOPENCL_COMPILER_OUTPUT’] = ‘1’

get all available platforms

platforms = cl.get_platforms()

get all devices of given type

devices = list( itertools.chain.from_iterable( [ platform.get_devices( cl.device_type.CPU ) for platform in platforms ] ) )

construct context

context = cl.Context( devices = devices )

read the OpenCL source file as a string

with open( Example_ClFileName, ‘r’ ) as fileObj:
programStr = ‘’.join( fileObj.readlines() )

build the opencl source file

program = cl.Program( context, programStr ).build( options = ) #The error happens this line


and the OpenCL script here.


__kernel void scaleUpElement( __global const float8* inData )
{
float8 nextRow_m1 = 0.625f * convert_float8( inData[1] );
printf( “nextRow_m1 = %f\n”, nextRow_m1 );
}


I run these scripts on 2 devices which are 12th Gen Intel(R) Core™ i9-12900KF and 6th Gen Intel(R) Core™ i7-6700K.

As a result, I can build on 6th Gen Intel(R) Core™ i7-6700K, but I can’t build on 12th Gen Intel(R) Core™ i9-12900KF and get the above error.

Is there anyway to run these scripts on i9-12900KF? and Why it works on i7-6700K but does not work on i9-12900KF?