The test run directive compiles CLIF to machine code using the SingleFunctionCompiler; the trampolines created here are limited in that they only really understand how to handle small booleans: b1 and b8. They should support larger boolean types, both scalar and vector.
The underlying issue here is that Cranelift's load and store do not operate on boolean types so the trampoline must convert them from an equivalent integer type in memory to their boolean type before calling the compiled function (and vice-versa for the return).
The
test rundirective compiles CLIF to machine code using theSingleFunctionCompiler; the trampolines created here are limited in that they only really understand how to handle small booleans:b1andb8. They should support larger boolean types, both scalar and vector.The underlying issue here is that Cranelift's
loadandstoredo not operate on boolean types so the trampoline must convert them from an equivalent integer type in memory to their boolean type before calling the compiled function (and vice-versa for the return).