xref: /llvm-project/libc/test/src/math/performance_testing/fmul_perf.cpp (revision a205a854e06d36c1d0def3e3bc3743defdb6abc1)
11ace91f9SJob Henandez Lara //===-- Performance test for the fmul function ----------------------------===//
21ace91f9SJob Henandez Lara //
31ace91f9SJob Henandez Lara // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
41ace91f9SJob Henandez Lara // See https://llvm.org/LICENSE.txt for license information.
51ace91f9SJob Henandez Lara // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
61ace91f9SJob Henandez Lara //
71ace91f9SJob Henandez Lara //===----------------------------------------------------------------------===//
81ace91f9SJob Henandez Lara 
91ace91f9SJob Henandez Lara #include "BinaryOpSingleOutputPerf.h"
10*a205a854SJob Henandez Lara #include "src/__support/FPUtil/generic/mul.h"
111ace91f9SJob Henandez Lara #include "src/math/fmul.h"
121ace91f9SJob Henandez Lara 
131ace91f9SJob Henandez Lara static constexpr size_t DOUBLE_ROUNDS = 40;
141ace91f9SJob Henandez Lara 
151ace91f9SJob Henandez Lara float fmul_placeholder_binary(double x, double y) {
16*a205a854SJob Henandez Lara   return LIBC_NAMESPACE::fputil::generic::mul<float>(x, y);
171ace91f9SJob Henandez Lara }
181ace91f9SJob Henandez Lara 
191ace91f9SJob Henandez Lara int main() {
201ace91f9SJob Henandez Lara   BINARY_OP_SINGLE_OUTPUT_PERF_EX(float, double, LIBC_NAMESPACE::fmul,
211ace91f9SJob Henandez Lara                                   fmul_placeholder_binary, DOUBLE_ROUNDS,
221ace91f9SJob Henandez Lara                                   "fmul_perf.log")
231ace91f9SJob Henandez Lara   return 0;
241ace91f9SJob Henandez Lara }
25