xref: /llvm-project/libc/test/src/math/performance_testing/fmull_perf.cpp (revision 1ace91f925ad87c3e5eb836ad58fdffe60c4aea6)
1*1ace91f9SJob Henandez Lara //===-- Performance test for the fmull function ---------------------------===//
2*1ace91f9SJob Henandez Lara //
3*1ace91f9SJob Henandez Lara // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*1ace91f9SJob Henandez Lara // See https://llvm.org/LICENSE.txt for license information.
5*1ace91f9SJob Henandez Lara // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*1ace91f9SJob Henandez Lara //
7*1ace91f9SJob Henandez Lara //===----------------------------------------------------------------------===//
8*1ace91f9SJob Henandez Lara 
9*1ace91f9SJob Henandez Lara #include "BinaryOpSingleOutputPerf.h"
10*1ace91f9SJob Henandez Lara #include "src/math/fmull.h"
11*1ace91f9SJob Henandez Lara 
12*1ace91f9SJob Henandez Lara static constexpr size_t LONG_DOUBLE_ROUNDS = 40;
13*1ace91f9SJob Henandez Lara 
14*1ace91f9SJob Henandez Lara float fmull_placeholder_binary(long double x, long double y) {
15*1ace91f9SJob Henandez Lara   return static_cast<float>(x * y);
16*1ace91f9SJob Henandez Lara }
17*1ace91f9SJob Henandez Lara 
18*1ace91f9SJob Henandez Lara int main() {
19*1ace91f9SJob Henandez Lara   BINARY_OP_SINGLE_OUTPUT_PERF_EX(float, long double, LIBC_NAMESPACE::fmull,
20*1ace91f9SJob Henandez Lara                                   fmull_placeholder_binary, LONG_DOUBLE_ROUNDS,
21*1ace91f9SJob Henandez Lara                                   "fmull_perf.log")
22*1ace91f9SJob Henandez Lara   return 0;
23*1ace91f9SJob Henandez Lara }
24