blob: 70048e189a72c5d0a714925f030d49e415685bca [file]
// RUN: iree-opt --split-input-file --pass-pipeline='builtin.module(util.func(iree-hal-inline-memoize-regions,canonicalize))' %s | FileCheck %s
// CHECK-LABEL: @constant_memoize
util.func public @constant_memoize(%device: !hal.device, %affinity: i64) -> index {
// CHECK-NOT: hal.device.memoize
%result = hal.device.memoize<%device : !hal.device> affinity(%affinity) -> index {
// CHECK: %[[C4:.+]] = arith.constant 4
%c4 = arith.constant 4 : index
// CHECK-NOT: hal.return
hal.return %c4 : index
}
// CHECK: util.return %[[C4]]
util.return %result : index
}
// -----
// CHECK-LABEL: @command_buffer_memoize
util.func public @command_buffer_memoize(
// CHECK-SAME: (%[[DEVICE:.+]]: !hal.device, %[[AFFINITY:.+]]: i64)
%device: !hal.device, %affinity: i64) -> !hal.command_buffer {
// CHECK-NOT: hal.device.memoize
%result = hal.device.memoize<%device : !hal.device> affinity(%affinity) -> !hal.command_buffer {
// CHECK: %[[CMD:.+]] = hal.command_buffer.create
// CHECK-SAME: device(%[[DEVICE]] : !hal.device)
// CHECK-SAME: mode(OneShot)
// CHECK-SAME: affinity(%[[AFFINITY]])
%cmd = hal.command_buffer.create device(%device : !hal.device)
mode(None)
categories("Transfer|Dispatch")
affinity(%affinity) : !hal.command_buffer
// CHECK-NEXT: hal.command_buffer.execution_barrier<%[[CMD]] : !hal.command_buffer>
hal.command_buffer.execution_barrier<%cmd : !hal.command_buffer> source(CommandIssue)
target(CommandProcess)
flags(None)
// CHECK-NEXT: hal.command_buffer.finalize<%[[CMD]] : !hal.command_buffer>
hal.command_buffer.finalize<%cmd : !hal.command_buffer>
// CHECK-NOT: hal.return
hal.return %cmd : !hal.command_buffer
}
// CHECK: util.return %[[CMD]]
util.return %result : !hal.command_buffer
}