blob: b267dc2640b369a11758a19a41343ab444d64c21 [file] [log] [blame]
# Copyright 2023 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# Tests loading and executing a bytecode module and issuing a few calls showing
# how to take input, produce output, and support temporary values within the
# trace session. See iree-run-trace.mlir for how to compile the module and
# invoke the iree-run-trace tool.
# Prepare the VM context for use; effectively a reset.
# API: iree_vm_context_create
type: context_load
---
# Load the builtin HAL module used to execute the program.
# API: iree_hal_module_create
type: module_load
module:
type: builtin
name: hal
---
# Load the compiled bytecode module.
# API: iree_vm_bytecode_module_create
type: module_load
module:
type: bytecode
name: module
# The test pulls the .vmfb from stdin but you can also reference relative or
# absolute file paths:
# path: ../iree-tmp/iree-run-trace.vmfb
path: <stdin>
---
# Call #0 of @mul.
# API: iree_vm_invoke
type: call
function: module.mul
args:
# arg[0]: the first `--input=` buffer. !input.get would retain the input for
# other calls to use but otherwise prefer taking ownership.
- !input.take 0
# arg[1]: constant value defined inline.
- !hal.buffer_view 4xf32=0,1,2,3
results:
# result[0]: store in blackboard slot 4 for later use.
- !blackboard.set 4
---
# Assigns one or more source values to a set of target values.
# Effectively: outputs.push(retain(blackboard[4]))
type: assign
from:
# from[0]: retain blackboard slot 4, leaving it for later use.
- !blackboard.get 4
to:
# to[0]: push on to the trace output list. --output= can save off the results
# and otherwise they are printed to stdout.
- !output.push
---
# Call #1 of @mul.
# API: iree_vm_invoke
type: call
function: module.mul
args:
# arg[0]: take the previously-stored value in blackboard slot 4.
- !blackboard.take 4
# arg[1]: another constant.
- !hal.buffer_view 4xf32=3,3,3,3
results:
# result[0]: push on to the trace output list.
- !output.push