// 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-all-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-all-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 SerializeAllExecutablesPass
// CHECK: hal.executable public @abs_dispatch_0
// CHECK:   hal.executable.variant public @vmvx_bytecode_fb
// CHECK:     vm.func private @abs_dispatch_0_elementwise
