blob: e54d03c5638cf294f398b399c2325a76fb8081dd [file] [log] [blame]
#!/bin/bash
#
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Script to run the toy IREE example
QEMU_PATH="${OUT}/host/qemu/riscv64-linux-user"
IREE_SRC="${ROOTDIR}/toolchain/iree"
IREE_BUILD_TOOLCHAIN="${CACHE}/toolchain_iree"
IREE_HOST_TOOLCHAIN="${OUT}/host/iree-build-host"
IREE_RISCV_TOOLCHAIN="${OUT}/host/iree-build-riscv"
# Generate the MLIR executable with iree-translate from iree-build-host.
# The artifact is built with dylib target in this script.
RISCV_TOOLCHAIN_ROOT="${IREE_BUILD_TOOLCHAIN}" \
${IREE_HOST_TOOLCHAIN}/install/bin/iree-translate \
-iree-mlir-to-vm-bytecode-module -iree-hal-target-backends=dylib-llvm-aot \
-iree-llvm-target-triple=riscv64 \
-iree-llvm-target-cpu=sifive-u74 \
-iree-llvm-target-abi=lp64d \
${IREE_SRC}/iree/tools/test/iree-run-module.mlir \
-o /tmp/iree-run-module-llvm_aot.vmfb
# Execute the iree runtime (iree-run-module) in RISCV Qemu simulator.
IREE_RUN_OUT=$(${QEMU_PATH}/qemu-riscv64 -cpu rv64,x-v=true,x-k=true,vlen=256,elen=64,vext_spec=v1.0 \
-L ${IREE_BUILD_TOOLCHAIN}/sysroot \
${IREE_RISCV_TOOLCHAIN}/iree/tools/iree-run-module --driver=dylib \
--module_file=/tmp/iree-run-module-llvm_aot.vmfb \
--entry_function=abs --function_input="f32=-10")
echo ${IREE_RUN_OUT}
# Check the result of running abs(-10).
if [[ ${IREE_RUN_OUT} == *"f32=10" ]]; then
echo "Smoke test passed"
else
echo "Smoke test failed with mismatch"
exit 1
fi