// RUN: iree-compile %s -o ignored.mlir \
// RUN:     --iree-hal-target-backends=vmvx \
// RUN:     --iree-hal-dump-executable-configurations-to=- | \
// RUN: iree-compile - -o /dev/null \
// RUN:     --compile-mode=hal-executable \
// RUN:     --mlir-print-ir-before=iree-hal-serialize-executables 2>&1 | \
// RUN: FileCheck %s

// This test relies on piping stdout and that there is only a single
// executable (otherwise we'd need to look at files and that's harder
// cross-platform). Real automation of this requires xargs: compile and dump a
// directory of .mlir sources by specifying a path to the dump flag instead
// of `-` (indicating stdout) and then ls | xargs them to iree-compile or
// iree-opt.
//
// Example of dumping per-dispatch executable configurations and compiling each
// to their platform binary form, dumping their MLIR prior to lowering into the
// backend representation (SPIR-V/LLVM-IR/etc):
//  iree-compile some_input.mlir -o ignored.mlir \
//      --iree-hal-target-backends=vmvx \
//      --iree-hal-dump-executable-configurations-to=configs/ | \
//  ls -1 sources/ | xargs -i sh -c "iree-compile configs/{}
//      --compile-mode=hal-executable
//      --mlir-print-ir-before=iree-hal-serialize-executables"
//
// NOTE: executable configurations are not runnable: they only exist to allow
// for iteration on executable translation. If you want to run them you need
// corresponding host code to dispatch them and can use benchmarks instead.
//
// If modifying the configs and wanting to see the changes in a full program the
// --iree-hal-substitute-executable-configurations-from= flag can be used to
// substitute one or more executables dumped with this command from a path or
// for individual executables one or more `executable_name=file.mlir` pairs can
// be repeated in `--iree-hal-substitute-executable-configuration=`.

func.func @abs(%input : tensor<f32>) -> tensor<f32> {
  %result = math.absf %input : tensor<f32>
  return %result : tensor<f32>
}

// CHECK: IR Dump Before SerializeExecutablesPass
// CHECK: hal.executable public @abs_dispatch_0
// CHECK:   hal.executable.variant public @vmvx_bytecode_fb
// CHECK:     vm.func private @abs_dispatch_0_elementwise
