blob: 31721d1fa6b8f04081ff5a683d694c6ee28d7abb [file]
// Source module with hal.executable.source (extern kernel dispatch).
// Used by iree-link-executable-source.mlir.
module @module_d {
// Extern kernel executable (e.g., a pre-compiled GPU kernel object).
hal.executable.source private @extern_kernel <
objects = #hal.executable.objects<{}>
> {
hal.executable.export public @entry ordinal(0)
layout(#hal.pipeline.layout<constants = 2, bindings = [
#hal.pipeline.binding<storage_buffer, ReadOnly>,
#hal.pipeline.binding<storage_buffer>
]>) count(%device: !hal.device) -> (index, index, index) {
%c1 = arith.constant 1 : index
hal.return %c1, %c1, %c1 : index, index, index
} <workgroup_size = [64 : index, 1 : index, 1 : index]>
}
// Function that dispatches to the extern kernel.
util.func public @transform(%arg0: tensor<4xf32>) -> tensor<4xf32> {
%c4 = arith.constant 4 : i32
%c1 = arith.constant 1 : index
%0 = flow.dispatch @extern_kernel::@entry(%c4, %arg0)
: (i32, tensor<4xf32>) -> tensor<4xf32>
util.return %0 : tensor<4xf32>
}
}