// RUN: iree-opt --split-input-file --pass-pipeline='builtin.module(iree-hal-assign-target-devices{targetBackends=llvm-cpu},iree-transformation-pipeline)' %s | FileCheck %s
// RUN: iree-opt --split-input-file --pass-pipeline='builtin.module(iree-hal-assign-target-devices{targetBackends=llvm-cpu},iree-transformation-pipeline)' --iree-llvmcpu-link-embedded=false %s | FileCheck %s

// When lowering to CPU code through LLVM, certain LLVM intrinsics require
// linking against libm (the standard C library of math functions, `-lm`).
//
// We require that our linked executables be free standing with no runtime
// dependencies, so we link implementations of the required functions into
// our executables prior to invoking a linker tool like lld. These
// implementations are mostly from musl (https://musl.libc.org/) and are
// bundled at iree/builtins/musl/.
//
// This test checks that the LLVM lowerings for certain operations are
// correctly covered by our linker configurations.
//
// See https://github.com/iree-org/iree/issues/4717 for more details.

// CHECK: vm.func private @tanh
func.func @tanh(%input : tensor<f32>) -> (tensor<f32>) {
  // May introduce llvm.intr.fma (fmaf) during lowering
  %result = math.tanh %input : tensor<f32>
  return %result : tensor<f32>
}

// -----

// CHECK: vm.func private @ceil
func.func @ceil(%input : tensor<f32>) -> (tensor<f32>) {
  // May lower to llvm.intr.ceil (ceilf)
  %result = math.ceil %input : tensor<f32>
  return %result : tensor<f32>
}

// -----

// CHECK: vm.func private @floor
func.func @floor(%input : tensor<f32>) -> (tensor<f32>) {
  // May lower to llvm.intr.floor (floorf)
  %result = math.floor %input : tensor<f32>
  return %result : tensor<f32>
}

// CHECK: vm.func private @exp2
func.func @exp2(%input : tensor<f32>) -> (tensor<f32>) {
  // May lower to llvm.intr.exp2 (exp2f)
  %result = math.exp2 %input : tensor<f32>
  return %result : tensor<f32>
}
