#-------------------------------------------------------------------------------
# Build the mlir bytecode modules with iree-translate. Note the last two flags
# are for RVV support.
#-------------------------------------------------------------------------------

springbok_modules(
  NAME
    mobilenet_v1
  SRC
    "$ENV{ROOTDIR}/ml/ml-models-public/float_models/mobilenet_v1_0.25_224_float.tflite"
  C_IDENTIFIER
    "samples_float_model_mobilenet_v1"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  RVV_OFF
  PUBLIC
)

springbok_modules(
  NAME
    mnist
  SRC
    "$ENV{ROOTDIR}/toolchain/iree/iree/samples/models/mnist.mlir"
  C_IDENTIFIER
    "samples_float_model_mnist"
  FLAGS
    "-iree-input-type=mhlo"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  RVV_OFF
  PUBLIC
)

#-------------------------------------------------------------------------------
# Binaries to execute the IREE model input
#-------------------------------------------------------------------------------

iree_model_input(
  NAME
    mobilenet_input
  SHAPE
    "1, 224, 224, 3"
  SRC
    "https://storage.googleapis.com/download.tensorflow.org/ \
    example_images/YellowLabradorLooking_new.jpg"
)

iree_model_input(
  NAME
    mnist_input
  SHAPE
    "1, 28, 28, 1"
  SRC
    "https://raw.githubusercontent.com/google/iree/main/ \
    iree/samples/vision/mnist_test.png"
  RANGE
    "0, 1"
)

#-------------------------------------------------------------------------------
# Binaries to execute the MLIR bytecode modules
#-------------------------------------------------------------------------------


# If the program requires a larger stack size, add
#
#   LINKOPTS
#     "LINKER:--defsym=__stack_size__=<new stack size>"
#
# to increase it.

iree_cc_binary(
  NAME
    mobilenet_v1_bytecode_static
  SRCS
    "mobilenet_v1.c"
  DEPS
    ::mobilenet_v1_bytecode_module_static
    ::mobilenet_v1_bytecode_module_static_c
    ::mobilenet_input_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=200k"
)

iree_cc_binary(
  NAME
    mobilenet_v1_emitc_static
  SRCS
    "mobilenet_v1.c"
  DEPS
    ::mobilenet_v1_c_module_static_c
    ::mobilenet_v1_c_module_static_emitc
    ::mobilenet_input_c
    samples::util::util
    "m"
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=200k"
  COPTS
    "-DBUILD_EMITC"
)

iree_cc_binary(
  NAME
    mnist_bytecode_static
  SRCS
    "mnist.c"
  DEPS
    ::mnist_bytecode_module_static
    ::mnist_bytecode_module_static_c
    ::mnist_input_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__stack_size__=100k"
)

iree_cc_binary(
  NAME
    mnist_emitc_static
  SRCS
    "mnist.c"
  DEPS
    ::mnist_c_module_static_c
    ::mnist_c_module_static_emitc
    ::mnist_input_c
    samples::util::util
    "m"
  LINKOPTS
    "LINKER:--defsym=__stack_size__=100k"
  COPTS
    "-DBUILD_EMITC"
)
