# -------------------------------------------------------------------------------
# Build the mlir bytecode modules with iree-compile. Note the last two flags
# are for RVV support.
# https://github.com/llvm/llvm-project/blob/0eeab8b/llvm/lib/Target/RISCV/RISCVSubtarget.cpp#L30-L51
# -------------------------------------------------------------------------------

sparrow_static_module(
  NAME
    conv1x1_test
  SRC
    "conv1x1_test.mlir"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  EMITC
)

sparrow_vmvx_module(
  NAME
    conv1x1_test_vmvx
  SRC
    "conv1x1_test.mlir"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  EMITC
  VMVX
)

sparrow_test(
  NAME
    conv1x1_test_emitc_static
  SRCS
    "conv1x1_test.c"
  DEPS
    ::conv1x1_test_emitc
    ::conv1x1_test_lib
    model_util::util_static
  LINKOPTS
    "LINKER:--defsym=__stack_size__=64k"
  TESTFILES
    "conv1x1_test.run"
)

# Do not compile following models for Kelvin
if (${BUILD_WITH_KELVIN})
  return()
endif()

sparrow_test(
  NAME
    conv1x1_test_emitc_vmvx
  SRCS
    "conv1x1_test.c"
  DEPS
    ::conv1x1_test_vmvx_emitc
    model_util::util_vmvx
  LINKOPTS
    "LINKER:--defsym=__stack_size__=64k"
  COPTS
    "-DBUILD_VMVX"
  TESTFILES
    "conv1x1_vmvx_test.run"
)
