1*c90c8d38SSiva Chandra //===-- Implementation of the round function for aarch64 ------------------===//
2*c90c8d38SSiva Chandra //
3*c90c8d38SSiva Chandra // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*c90c8d38SSiva Chandra // See https://llvm.org/LICENSE.txt for license information.
5*c90c8d38SSiva Chandra // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*c90c8d38SSiva Chandra //
7*c90c8d38SSiva Chandra //===----------------------------------------------------------------------===//
8*c90c8d38SSiva Chandra 
9*c90c8d38SSiva Chandra #include "src/math/round.h"
10*c90c8d38SSiva Chandra #include "src/__support/common.h"
11*c90c8d38SSiva Chandra 
12*c90c8d38SSiva Chandra namespace __llvm_libc {
13*c90c8d38SSiva Chandra 
14*c90c8d38SSiva Chandra LLVM_LIBC_FUNCTION(double, round, (double x)) {
15*c90c8d38SSiva Chandra   double y;
16*c90c8d38SSiva Chandra   __asm__ __volatile__("frinta %d0, %d1\n\t" : "=w"(y) : "w"(x));
17*c90c8d38SSiva Chandra   return y;
18*c90c8d38SSiva Chandra }
19*c90c8d38SSiva Chandra 
20*c90c8d38SSiva Chandra } // namespace __llvm_libc
21